Index: src/gpu/gl/GrGLCaps.h |
diff --git a/src/gpu/gl/GrGLCaps.h b/src/gpu/gl/GrGLCaps.h |
index 230bffc7a657cbbceee01801830768f46f08199e..a650348a13ba9d629616d3032ac5d512492638e1 100644 |
--- a/src/gpu/gl/GrGLCaps.h |
+++ b/src/gpu/gl/GrGLCaps.h |
@@ -123,12 +123,25 @@ public: |
GrGLCaps(const GrContextOptions& contextOptions, const GrGLContextInfo& ctxInfo, |
const GrGLInterface* glInterface); |
+ bool isConfigTexturable(GrPixelConfig config) const override { |
+ SkASSERT(kGrPixelConfigCnt > config); |
+ return SkToBool(fConfigTable[config].fFlags & ConfigInfo::kTextureable_Flag); |
+ } |
+ |
+ bool isConfigRenderable(GrPixelConfig config, bool withMSAA) const override { |
+ SkASSERT(kGrPixelConfigCnt > config); |
+ if (withMSAA) { |
+ return SkToBool(fConfigTable[config].fFlags & ConfigInfo::kRenderableWithMSAA_Flag); |
+ } else { |
+ return SkToBool(fConfigTable[config].fFlags & ConfigInfo::kRenderable_Flag); |
+ } |
+ } |
+ |
/** Returns conversions to various GL format parameters for a GrPixelCfonig. */ |
const ConfigFormats& configGLFormats(GrPixelConfig config) const { |
return fConfigTable[config].fFormats; |
} |
- |
/** |
* Gets an array of legal stencil formats. These formats are not guaranteed |
* to be supported by the driver but are legal GLenum names given the GL |
@@ -227,15 +240,12 @@ public: |
/// maximum number of texture units accessible in the fragment shader. |
int maxFragmentTextureUnits() const { return fMaxFragmentTextureUnits; } |
- /// ES requires an extension to support RGBA8 in RenderBufferStorage |
- bool rgba8RenderbufferSupport() const { return fRGBA8RenderbufferSupport; } |
- |
/** |
* Depending on the ES extensions present the BGRA external format may |
- * correspond either a BGRA or RGBA internalFormat. On desktop GL it is |
+ * correspond to either a BGRA or RGBA internalFormat. On desktop GL it is |
* RGBA. |
*/ |
- bool bgraIsInternalFormat() const { return fBGRAIsInternalFormat; } |
+ bool bgraIsInternalFormat() const; |
/// Is there support for GL_UNPACK_ROW_LENGTH |
bool unpackRowLengthSupport() const { return fUnpackRowLengthSupport; } |
@@ -309,19 +319,6 @@ public: |
*/ |
SkString dump() const override; |
- /** |
- * LATC can appear under one of three possible names. In order to know |
- * which GL internal format to use, we need to keep track of which name |
- * we found LATC under. The default is LATC. |
- */ |
- enum LATCAlias { |
- kLATC_LATCAlias, |
- kRGTC_LATCAlias, |
- k3DC_LATCAlias |
- }; |
- |
- LATCAlias latcAlias() const { return fLATCAlias; } |
- |
bool rgba8888PixelsOpsAreSlow() const { return fRGBA8888PixelsOpsAreSlow; } |
bool partialFBOReadIsSlow() const { return fPartialFBOReadIsSlow; } |
@@ -338,8 +335,7 @@ private: |
void initBlendEqationSupport(const GrGLContextInfo&); |
void initStencilFormats(const GrGLContextInfo&); |
// This must be called after initFSAASupport(). |
- void initConfigRenderableTable(const GrGLContextInfo&, bool srgbSupport); |
- void initConfigTexturableTable(const GrGLContextInfo&, const GrGLInterface*, bool srgbSupport); |
+ void initConfigTable(const GrGLContextInfo&, const GrGLInterface* gli); |
void initShaderPrecisionTable(const GrGLContextInfo& ctxInfo, |
const GrGLInterface* intf, |
@@ -347,7 +343,6 @@ private: |
void initConfigSwizzleTable(const GrGLContextInfo& ctxInfo, GrGLSLCaps* glslCaps); |
- void initConfigTable(const GrGLContextInfo&); |
SkTArray<StencilFormat, true> fStencilFormats; |
@@ -359,10 +354,7 @@ private: |
InvalidateFBType fInvalidateFBType; |
MapBufferType fMapBufferType; |
TransferBufferType fTransferBufferType; |
- LATCAlias fLATCAlias; |
- bool fRGBA8RenderbufferSupport : 1; |
- bool fBGRAIsInternalFormat : 1; |
bool fUnpackRowLengthSupport : 1; |
bool fUnpackFlipYSupport : 1; |
bool fPackRowLengthSupport : 1; |
@@ -420,7 +412,10 @@ private: |
int fStencilFormatIndex; |
enum { |
- kVerifiedColorAttachment_Flag = 0x1 |
+ kVerifiedColorAttachment_Flag = 0x1, |
+ kTextureable_Flag = 0x2, |
+ kRenderable_Flag = 0x4, |
+ kRenderableWithMSAA_Flag = 0x8, |
}; |
uint32_t fFlags; |
}; |