| Index: src/gpu/gl/GrGLCaps.h
|
| diff --git a/src/gpu/gl/GrGLCaps.h b/src/gpu/gl/GrGLCaps.h
|
| index a650348a13ba9d629616d3032ac5d512492638e1..db60ad273a3c98c396e92138f8cc6d165904066e 100644
|
| --- a/src/gpu/gl/GrGLCaps.h
|
| +++ b/src/gpu/gl/GrGLCaps.h
|
| @@ -9,9 +9,10 @@
|
| #ifndef GrGLCaps_DEFINED
|
| #define GrGLCaps_DEFINED
|
|
|
| -#include "GrCaps.h"
|
| #include "glsl/GrGLSL.h"
|
| +#include "GrCaps.h"
|
| #include "GrGLStencilAttachment.h"
|
| +#include "GrSwizzle.h"
|
| #include "SkChecksum.h"
|
| #include "SkTHash.h"
|
| #include "SkTArray.h"
|
| @@ -142,6 +143,11 @@ public:
|
| return fConfigTable[config].fFormats;
|
| }
|
|
|
| + /** Returns the mapping between GrPixelConfig components and GL internal format components. */
|
| + const GrSwizzle& configSwizzle(GrPixelConfig config) const {
|
| + return fConfigTable[config].fSwizzle;
|
| + }
|
| +
|
| /**
|
| * 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
|
| @@ -307,6 +313,9 @@ public:
|
| /// Are textures with GL_TEXTURE_EXTERNAL_OES type supported.
|
| bool externalTextureSupport() const { return fExternalTextureSupport; }
|
|
|
| + /// GL_ARB_texture_swizzle
|
| + bool textureSwizzleSupport() const { return fTextureSwizzleSupport; }
|
| +
|
| /**
|
| * Is there support for enabling/disabling sRGB writes for sRGB-capable color attachments?
|
| * If false this does not mean sRGB is not supported but rather that if it is supported
|
| @@ -335,15 +344,12 @@ private:
|
| void initBlendEqationSupport(const GrGLContextInfo&);
|
| void initStencilFormats(const GrGLContextInfo&);
|
| // This must be called after initFSAASupport().
|
| - void initConfigTable(const GrGLContextInfo&, const GrGLInterface* gli);
|
| + void initConfigTable(const GrGLContextInfo&, const GrGLInterface* gli, GrGLSLCaps* glslCaps);
|
|
|
| void initShaderPrecisionTable(const GrGLContextInfo& ctxInfo,
|
| const GrGLInterface* intf,
|
| GrGLSLCaps* glslCaps);
|
|
|
| - void initConfigSwizzleTable(const GrGLContextInfo& ctxInfo, GrGLSLCaps* glslCaps);
|
| -
|
| -
|
| SkTArray<StencilFormat, true> fStencilFormats;
|
|
|
| int fMaxFragmentUniformVectors;
|
| @@ -376,6 +382,7 @@ private:
|
| bool fPartialFBOReadIsSlow : 1;
|
| bool fBindUniformLocationSupport : 1;
|
| bool fExternalTextureSupport : 1;
|
| + bool fTextureSwizzleSupport : 1;
|
|
|
| /** Number type of the components (with out considering number of bits.) */
|
| enum FormatType {
|
| @@ -418,6 +425,8 @@ private:
|
| kRenderableWithMSAA_Flag = 0x8,
|
| };
|
| uint32_t fFlags;
|
| +
|
| + GrSwizzle fSwizzle;
|
| };
|
|
|
| ConfigInfo fConfigTable[kGrPixelConfigCnt];
|
|
|