| Index: src/gpu/gl/GrGLProgram.h
|
| diff --git a/src/gpu/gl/GrGLProgram.h b/src/gpu/gl/GrGLProgram.h
|
| index 3534552f9803756264531b2f56fc3faeeddbf0d1..f197df30ce0e8a2985ac4bbdd2ca06e94e87b94f 100644
|
| --- a/src/gpu/gl/GrGLProgram.h
|
| +++ b/src/gpu/gl/GrGLProgram.h
|
| @@ -9,12 +9,13 @@
|
| #ifndef GrGLProgram_DEFINED
|
| #define GrGLProgram_DEFINED
|
|
|
| +#include "GrAllocator.h"
|
| #include "GrDrawState.h"
|
| #include "GrGLContext.h"
|
| #include "GrGLProgramDesc.h"
|
| #include "GrGLSL.h"
|
| #include "GrGLTexture.h"
|
| -#include "GrGLUniformManager.h"
|
| +#include "GrGLUniform.h"
|
|
|
| #include "SkString.h"
|
| #include "SkXfermode.h"
|
| @@ -114,38 +115,45 @@ public:
|
| const GrDeviceCoordTexture* dstCopy, // can be NULL
|
| SharedGLState*);
|
|
|
| -private:
|
| - typedef GrGLUniformManager::UniformHandle UniformHandle;
|
|
|
| + /**
|
| + * Called by the GrGLShaderBuilder to create uniforms.
|
| + */
|
| + GrGLUniform* appendUniform() {
|
| + GrGLUniform& uni = fUniforms.push_back();
|
| + return &uni;
|
| + }
|
| +
|
| +private:
|
| // handles for uniforms (aside from per-effect samplers)
|
| - struct UniformHandles {
|
| - UniformHandle fViewMatrixUni;
|
| - UniformHandle fColorUni;
|
| - UniformHandle fCoverageUni;
|
| - UniformHandle fColorFilterUni;
|
| + struct NamedUniforms {
|
| + GrGLUniform* fViewMatrixUni;
|
| + GrGLUniform* fColorUni;
|
| + GrGLUniform* fCoverageUni;
|
| + GrGLUniform* fColorFilterUni;
|
|
|
| // We use the render target height to provide a y-down frag coord when specifying
|
| // origin_upper_left is not supported.
|
| - UniformHandle fRTHeightUni;
|
| + GrGLUniform* fRTHeightUni;
|
|
|
| // Uniforms for computing texture coords to do the dst-copy lookup
|
| - UniformHandle fDstCopyTopLeftUni;
|
| - UniformHandle fDstCopyScaleUni;
|
| - UniformHandle fDstCopySamplerUni;
|
| -
|
| - UniformHandles() {
|
| - fViewMatrixUni = GrGLUniformManager::kInvalidUniformHandle;
|
| - fColorUni = GrGLUniformManager::kInvalidUniformHandle;
|
| - fCoverageUni = GrGLUniformManager::kInvalidUniformHandle;
|
| - fColorFilterUni = GrGLUniformManager::kInvalidUniformHandle;
|
| - fRTHeightUni = GrGLUniformManager::kInvalidUniformHandle;
|
| - fDstCopyTopLeftUni = GrGLUniformManager::kInvalidUniformHandle;
|
| - fDstCopyScaleUni = GrGLUniformManager::kInvalidUniformHandle;
|
| - fDstCopySamplerUni = GrGLUniformManager::kInvalidUniformHandle;
|
| + GrGLUniform* fDstCopyTopLeftUni;
|
| + GrGLUniform* fDstCopyScaleUni;
|
| + GrGLUniform* fDstCopySamplerUni;
|
| +
|
| + NamedUniforms()
|
| + : fViewMatrixUni(NULL)
|
| + , fColorUni(NULL)
|
| + , fCoverageUni(NULL)
|
| + , fColorFilterUni(NULL)
|
| + , fRTHeightUni(NULL)
|
| + , fDstCopyTopLeftUni(NULL)
|
| + , fDstCopyScaleUni(NULL)
|
| + , fDstCopySamplerUni(NULL) {
|
| }
|
| };
|
|
|
| - typedef SkSTArray<4, UniformHandle, true> SamplerUniSArray;
|
| + typedef SkSTArray<4, GrGLUniform*, true> SamplerUniSArray;
|
| typedef SkSTArray<4, int, true> TextureUnitSArray;
|
|
|
| struct EffectAndSamplers {
|
| @@ -221,8 +229,8 @@ private:
|
| GrGLProgramDesc fDesc;
|
| const GrGLContext& fContext;
|
|
|
| - GrGLUniformManager fUniformManager;
|
| - UniformHandles fUniformHandles;
|
| + GrTAllocator<GrGLUniform> fUniforms;
|
| + NamedUniforms fNamedUniforms;
|
|
|
| typedef GrRefCnt INHERITED;
|
| };
|
|
|