Index: src/gpu/glsl/GrGLSLSampler.h |
diff --git a/src/gpu/glsl/GrGLSLSampler.h b/src/gpu/glsl/GrGLSLSampler.h |
index 0fc67a9c937cd605ae45659f22b031e118ca76b0..b8bfa8031054fff834af7911ae37a038cfb2efd8 100644 |
--- a/src/gpu/glsl/GrGLSLSampler.h |
+++ b/src/gpu/glsl/GrGLSLSampler.h |
@@ -9,27 +9,37 @@ |
#define GrGLSLSampler_DEFINED |
#include "GrTypes.h" |
-#include "SkTArray.h" |
-#include "glsl/GrGLSLProgramDataManager.h" |
+#include "GrTypesPriv.h" |
+#include "SkString.h" |
class GrGLSLSampler { |
public: |
- typedef GrGLSLProgramDataManager::UniformHandle UniformHandle; |
- typedef SkTArray<GrGLSLSampler> SamplerArray; |
+ virtual ~GrGLSLSampler() {} |
- GrGLSLSampler(UniformHandle uniform, GrPixelConfig config) |
- : fSamplerUniform(uniform) |
+ explicit GrGLSLSampler(uint32_t visibility, GrPixelConfig config) |
+ : fVisibility(visibility) |
, fConfig(config) { |
SkASSERT(kUnknown_GrPixelConfig != fConfig); |
} |
+ uint32_t visibility() const { return fVisibility; } |
GrPixelConfig config() const { return fConfig; } |
+ virtual GrSLType type() const = 0; |
+ |
+ // Returns the string to be used for the sampler in glsl 2D texture functions (texture, |
+ // texture2D, etc.) |
+ const char* getSamplerNameForTexture2D() const { |
+ SkASSERT(GrSLTypeIs2DTextureType(this->type())); |
+ return this->onGetSamplerNameForTexture2D(); |
+ } |
+ |
+ // Returns the string to be used for the sampler in glsl texelFetch. |
+ virtual const char* getSamplerNameForTexelFetch() const = 0; |
private: |
- UniformHandle fSamplerUniform; |
+ virtual const char* onGetSamplerNameForTexture2D() const = 0; |
+ uint32_t fVisibility; |
GrPixelConfig fConfig; |
- |
- friend class GrGLSLShaderBuilder; |
}; |
#endif |