diff options
Diffstat (limited to 'src/gpu/glsl/GrGLSLCaps.h')
-rwxr-xr-x | src/gpu/glsl/GrGLSLCaps.h | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/src/gpu/glsl/GrGLSLCaps.h b/src/gpu/glsl/GrGLSLCaps.h index 21c59e7b16..eba9602e5a 100755 --- a/src/gpu/glsl/GrGLSLCaps.h +++ b/src/gpu/glsl/GrGLSLCaps.h @@ -11,6 +11,7 @@ #include "GrCaps.h" #include "GrGLSL.h" +#include "GrSwizzle.h" class GrGLSLCaps : public GrShaderCaps { public: @@ -104,14 +105,14 @@ public: return fExternalTextureExtensionString; } - bool mustSwizzleInShader() const { return fMustSwizzleInShader; } - /** - * Returns a string which represents how to map from an internal GLFormat to a given - * GrPixelConfig. The function mustSwizzleInShader determines whether this swizzle is applied - * in the generated shader code or using sample state in the 3D API. + * Given a texture's config, this determines what swizzle must be appended to accesses to the + * texture in generated shader code. Swizzling may be implemented in texture parameters or a + * sampler rather than in the shader. In this case the shader swizzle will always be "rgba". */ - const char* getSwizzleMap(GrPixelConfig config) const { return fConfigSwizzle[config]; } + const GrSwizzle& configTextureSwizzle(GrPixelConfig config) const { + return fConfigTextureSwizzle[config]; + } GrGLSLGeneration generation() const { return fGLSLGeneration; } @@ -148,13 +149,11 @@ private: AdvBlendEqInteraction fAdvBlendEqInteraction; - bool fMustSwizzleInShader; - const char* fConfigSwizzle[kGrPixelConfigCnt]; + GrSwizzle fConfigTextureSwizzle[kGrPixelConfigCnt]; friend class GrGLCaps; // For initialization. typedef GrShaderCaps INHERITED; }; - #endif |