| Index: src/gpu/glsl/GrGLSLUniformHandler.h
|
| diff --git a/src/gpu/glsl/GrGLSLUniformHandler.h b/src/gpu/glsl/GrGLSLUniformHandler.h
|
| index a2f70532adc2948de8641b18b632a727a026e844..56cac4a49fe26e004bf8cda9384469dfb4f6c0ce 100644
|
| --- a/src/gpu/glsl/GrGLSLUniformHandler.h
|
| +++ b/src/gpu/glsl/GrGLSLUniformHandler.h
|
| @@ -12,12 +12,14 @@
|
| #include "GrGLSLShaderVar.h"
|
|
|
| class GrGLSLProgramBuilder;
|
| +class GrGLSLSampler;
|
|
|
| class GrGLSLUniformHandler {
|
| public:
|
| virtual ~GrGLSLUniformHandler() {}
|
|
|
| typedef GrGLSLProgramDataManager::UniformHandle UniformHandle;
|
| + typedef GrGLSLProgramDataManager::UniformHandle SamplerHandle;
|
|
|
| /** Add a uniform variable to the current program, that has visibility in one or more shaders.
|
| visibility is a bitfield of GrShaderFlag values indicating from which shaders the uniform
|
| @@ -30,6 +32,7 @@ public:
|
| GrSLPrecision precision,
|
| const char* name,
|
| const char** outName = nullptr) {
|
| + SkASSERT(!GrSLTypeIsSamplerType(type));
|
| return this->addUniformArray(visibility, type, precision, name, 0, outName);
|
| }
|
|
|
| @@ -39,6 +42,7 @@ public:
|
| const char* name,
|
| int arrayCount,
|
| const char** outName = nullptr) {
|
| + SkASSERT(!GrSLTypeIsSamplerType(type));
|
| return this->internalAddUniformArray(visibility, type, precision, name, true, arrayCount,
|
| outName);
|
| }
|
| @@ -49,6 +53,7 @@ public:
|
| * Shortcut for getUniformVariable(u).c_str()
|
| */
|
| virtual const char* getUniformCStr(UniformHandle u) const = 0;
|
| +
|
| protected:
|
| explicit GrGLSLUniformHandler(GrGLSLProgramBuilder* program) : fProgramBuilder(program) {}
|
|
|
| @@ -56,6 +61,23 @@ protected:
|
| GrGLSLProgramBuilder* fProgramBuilder;
|
|
|
| private:
|
| + virtual int numSamplers() const = 0;
|
| + virtual const GrGLSLSampler& getSampler(SamplerHandle handle) const = 0;
|
| +
|
| + SamplerHandle addSampler(uint32_t visibility,
|
| + GrPixelConfig config,
|
| + GrSLType type,
|
| + GrSLPrecision precision,
|
| + const char* name) {
|
| + return this->internalAddSampler(visibility, config, type, precision, name);
|
| + }
|
| +
|
| + virtual SamplerHandle internalAddSampler(uint32_t visibility,
|
| + GrPixelConfig config,
|
| + GrSLType type,
|
| + GrSLPrecision precision,
|
| + const char* name) = 0;
|
| +
|
| virtual UniformHandle internalAddUniformArray(uint32_t visibility,
|
| GrSLType type,
|
| GrSLPrecision precision,
|
|
|