Index: src/gpu/gl/GrGLCaps.cpp |
diff --git a/src/gpu/gl/GrGLCaps.cpp b/src/gpu/gl/GrGLCaps.cpp |
index 85a72600d071505a21e6522ef7730abdda36740a..2a97137f1293a0502087b1bfc84791b0f728818a 100644 |
--- a/src/gpu/gl/GrGLCaps.cpp |
+++ b/src/gpu/gl/GrGLCaps.cpp |
@@ -12,13 +12,7 @@ |
#include "SkTSearch.h" |
#include "SkTSort.h" |
-GrGLCaps::GrGLCaps() { |
- this->reset(); |
-} |
- |
-void GrGLCaps::reset() { |
- INHERITED::reset(); |
- |
+GrGLCaps::GrGLCaps(const GrGLContextInfo& ctxInfo, const GrGLInterface* glInterface) { |
fVerifiedColorConfigs.reset(); |
fStencilFormats.reset(); |
fStencilVerifiedColorConfigs.reset(); |
@@ -51,59 +45,12 @@ void GrGLCaps::reset() { |
fReadPixelsSupportedCache.reset(); |
- fShaderCaps.reset(SkNEW(GrGLSLCaps)); |
- |
-} |
- |
-GrGLCaps::GrGLCaps(const GrGLCaps& caps) : GrCaps() { |
- *this = caps; |
-} |
+ this->init(ctxInfo, glInterface); |
-GrGLCaps& GrGLCaps::operator= (const GrGLCaps& caps) { |
- INHERITED::operator=(caps); |
- fVerifiedColorConfigs = caps.fVerifiedColorConfigs; |
- fStencilFormats = caps.fStencilFormats; |
- fStencilVerifiedColorConfigs = caps.fStencilVerifiedColorConfigs; |
- fLATCAlias = caps.fLATCAlias; |
- fMaxFragmentUniformVectors = caps.fMaxFragmentUniformVectors; |
- fMaxVertexAttributes = caps.fMaxVertexAttributes; |
- fMaxFragmentTextureUnits = caps.fMaxFragmentTextureUnits; |
- fMSFBOType = caps.fMSFBOType; |
- fInvalidateFBType = caps.fInvalidateFBType; |
- fMapBufferType = caps.fMapBufferType; |
- fRGBA8RenderbufferSupport = caps.fRGBA8RenderbufferSupport; |
- fBGRAIsInternalFormat = caps.fBGRAIsInternalFormat; |
- fTextureSwizzleSupport = caps.fTextureSwizzleSupport; |
- fUnpackRowLengthSupport = caps.fUnpackRowLengthSupport; |
- fUnpackFlipYSupport = caps.fUnpackFlipYSupport; |
- fPackRowLengthSupport = caps.fPackRowLengthSupport; |
- fPackFlipYSupport = caps.fPackFlipYSupport; |
- fTextureUsageSupport = caps.fTextureUsageSupport; |
- fTexStorageSupport = caps.fTexStorageSupport; |
- fTextureRedSupport = caps.fTextureRedSupport; |
- fImagingSupport = caps.fImagingSupport; |
- fTwoFormatLimit = caps.fTwoFormatLimit; |
- fFragCoordsConventionSupport = caps.fFragCoordsConventionSupport; |
- fVertexArrayObjectSupport = caps.fVertexArrayObjectSupport; |
- fES2CompatibilitySupport = caps.fES2CompatibilitySupport; |
- fMultisampleDisableSupport = caps.fMultisampleDisableSupport; |
- fUseNonVBOVertexAndIndexDynamicData = caps.fUseNonVBOVertexAndIndexDynamicData; |
- fIsCoreProfile = caps.fIsCoreProfile; |
- fFullClearIsFree = caps.fFullClearIsFree; |
- |
- *(reinterpret_cast<GrGLSLCaps*>(fShaderCaps.get())) = |
- *(reinterpret_cast<GrGLSLCaps*>(caps.fShaderCaps.get())); |
- |
- return *this; |
+ fShaderCaps.reset(SkNEW_ARGS(GrGLSLCaps, (ctxInfo, glInterface, *this))); |
} |
-bool GrGLCaps::init(const GrGLContextInfo& ctxInfo, const GrGLInterface* gli) { |
- |
- this->reset(); |
- if (!ctxInfo.isInitialized()) { |
- return false; |
- } |
- |
+void GrGLCaps::init(const GrGLContextInfo& ctxInfo, const GrGLInterface* gli) { |
GrGLStandard standard = ctxInfo.standard(); |
GrGLVersion version = ctxInfo.version(); |
@@ -375,10 +322,6 @@ bool GrGLCaps::init(const GrGLContextInfo& ctxInfo, const GrGLInterface* gli) { |
this->initConfigTexturableTable(ctxInfo, gli); |
this->initConfigRenderableTable(ctxInfo); |
- |
- reinterpret_cast<GrGLSLCaps*>(fShaderCaps.get())->init(ctxInfo, gli, *this); |
- |
- return true; |
} |
void GrGLCaps::initConfigRenderableTable(const GrGLContextInfo& ctxInfo) { |
@@ -948,46 +891,21 @@ SkString GrGLCaps::dump() const { |
//////////////////////////////////////////////////////////////////////////////////////////// |
-GrGLSLCaps::GrGLSLCaps() { |
- this->reset(); |
-} |
- |
- |
-void GrGLSLCaps::reset() { |
- INHERITED::reset(); |
- |
+GrGLSLCaps::GrGLSLCaps(const GrGLContextInfo& ctxInfo, |
+ const GrGLInterface* gli, |
+ const GrGLCaps& glCaps) { |
fDropsTileOnZeroDivide = false; |
fFBFetchSupport = false; |
fFBFetchNeedsCustomOutput = false; |
fAdvBlendEqInteraction = kNotSupported_AdvBlendEqInteraction; |
fFBFetchColorName = NULL; |
fFBFetchExtensionString = NULL; |
+ this->init(ctxInfo, gli, glCaps); |
} |
-GrGLSLCaps::GrGLSLCaps(const GrGLSLCaps& caps) : GrShaderCaps() { |
- *this = caps; |
-} |
- |
-GrGLSLCaps& GrGLSLCaps::operator= (const GrGLSLCaps& caps) { |
- INHERITED::operator=(caps); |
- fDropsTileOnZeroDivide = caps.fDropsTileOnZeroDivide; |
- fFBFetchSupport = caps.fFBFetchSupport; |
- fFBFetchNeedsCustomOutput = caps.fFBFetchNeedsCustomOutput; |
- fAdvBlendEqInteraction = caps.fAdvBlendEqInteraction; |
- fFBFetchColorName = caps.fFBFetchColorName; |
- fFBFetchExtensionString = caps.fFBFetchExtensionString; |
- |
- return *this; |
-} |
- |
-bool GrGLSLCaps::init(const GrGLContextInfo& ctxInfo, |
+void GrGLSLCaps::init(const GrGLContextInfo& ctxInfo, |
const GrGLInterface* gli, |
const GrGLCaps& glCaps) { |
- this->reset(); |
- if (!ctxInfo.isInitialized()) { |
- return false; |
- } |
- |
GrGLStandard standard = ctxInfo.standard(); |
GrGLVersion version = ctxInfo.version(); |
@@ -1081,8 +999,6 @@ bool GrGLSLCaps::init(const GrGLContextInfo& ctxInfo, |
} |
this->initShaderPrecisionTable(ctxInfo, gli); |
- |
- return true; |
} |
SkString GrGLSLCaps::dump() const { |