Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1968)

Unified Diff: src/effects/gradients/SkTwoPointRadialGradient.cpp

Issue 23018003: Rename GrGLUniformManager to GrGLUniform and ref GrGLUniforms directly Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/effects/gradients/SkTwoPointConicalGradient.cpp ('k') | src/gpu/GrAAConvexPathRenderer.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/effects/gradients/SkTwoPointRadialGradient.cpp
diff --git a/src/effects/gradients/SkTwoPointRadialGradient.cpp b/src/effects/gradients/SkTwoPointRadialGradient.cpp
index 989c1395563145122a0f13e88a5822011adcbd83..7a2ed9a307bbc09a2b65f3f5f67cb9e5974bd47a 100644
--- a/src/effects/gradients/SkTwoPointRadialGradient.cpp
+++ b/src/effects/gradients/SkTwoPointRadialGradient.cpp
@@ -374,10 +374,6 @@ void SkTwoPointRadialGradient::init() {
#include "GrTBackendEffectFactory.h"
-// For brevity
-typedef GrGLUniformManager::UniformHandle UniformHandle;
-static const UniformHandle kInvalidUniformHandle = GrGLUniformManager::kInvalidUniformHandle;
-
class GrGLRadial2Gradient : public GrGLGradientEffect {
public:
@@ -391,14 +387,14 @@ public:
const char* outputColor,
const char* inputColor,
const TextureSamplerArray&) SK_OVERRIDE;
- virtual void setData(const GrGLUniformManager&, const GrDrawEffect&) SK_OVERRIDE;
+ virtual void setData(const GrGLContext&, const GrDrawEffect&) SK_OVERRIDE;
static EffectKey GenKey(const GrDrawEffect&, const GrGLCaps& caps);
protected:
- UniformHandle fVSParamUni;
- UniformHandle fFSParamUni;
+ GrGLUniform* fVSParamUni;
+ GrGLUniform* fFSParamUni;
const char* fVSVaryingName;
const char* fFSVaryingName;
@@ -516,8 +512,8 @@ GrEffectRef* GrRadial2Gradient::TestCreate(SkMWCRandom* random,
GrGLRadial2Gradient::GrGLRadial2Gradient(const GrBackendEffectFactory& factory,
const GrDrawEffect& drawEffect)
: INHERITED(factory)
- , fVSParamUni(kInvalidUniformHandle)
- , fFSParamUni(kInvalidUniformHandle)
+ , fVSParamUni(NULL)
+ , fFSParamUni(NULL)
, fVSVaryingName(NULL)
, fFSVaryingName(NULL)
, fCachedCenter(SK_ScalarMax)
@@ -535,7 +531,7 @@ void GrGLRadial2Gradient::emitCode(GrGLShaderBuilder* builder,
const char* inputColor,
const TextureSamplerArray& samplers) {
- this->emitYCoordUniform(builder);
+ GrGLShaderBuilder::Uniform* yCoordUni = this->emitYCoordUniform(builder);
const char* fsCoords;
const char* vsCoordsVarying;
GrSLType coordsVaryingType;
@@ -544,10 +540,15 @@ void GrGLRadial2Gradient::emitCode(GrGLShaderBuilder* builder,
// 2 copies of uniform array, 1 for each of vertex & fragment shader,
// to work around Xoom bug. Doesn't seem to cause performance decrease
// in test apps, but need to keep an eye on it.
- fVSParamUni = builder->addUniformArray(GrGLShaderBuilder::kVertex_ShaderType,
- kFloat_GrSLType, "Radial2VSParams", 6);
- fFSParamUni = builder->addUniformArray(GrGLShaderBuilder::kFragment_ShaderType,
- kFloat_GrSLType, "Radial2FSParams", 6);
+ GrGLShaderBuilder::Uniform* vsParamUni =
+ builder->addUniformArray(GrGLShaderBuilder::kVertex_ShaderType,
+ kFloat_GrSLType, "Radial2VSParams", 6);
+ fVSParamUni = vsParamUni->glUniform();
+
+ GrGLShaderBuilder::Uniform* fsParamUni =
+ builder->addUniformArray(GrGLShaderBuilder::kFragment_ShaderType,
+ kFloat_GrSLType, "Radial2FSParams", 6);
+ fFSParamUni = fsParamUni->glUniform();
// For radial gradients without perspective we can pass the linear
// part of the quadratic as a varying.
@@ -559,8 +560,8 @@ void GrGLRadial2Gradient::emitCode(GrGLShaderBuilder* builder,
{
SkString p2;
SkString p3;
- builder->getUniformVariable(fVSParamUni).appendArrayAccess(2, &p2);
- builder->getUniformVariable(fVSParamUni).appendArrayAccess(3, &p3);
+ vsParamUni->appendArrayAccess(2, &p2);
+ vsParamUni->appendArrayAccess(3, &p3);
// For radial gradients without perspective we can pass the linear
// part of the quadratic as a varying.
@@ -584,12 +585,12 @@ void GrGLRadial2Gradient::emitCode(GrGLShaderBuilder* builder,
SkString p3;
SkString p4;
SkString p5;
- builder->getUniformVariable(fFSParamUni).appendArrayAccess(0, &p0);
- builder->getUniformVariable(fFSParamUni).appendArrayAccess(1, &p1);
- builder->getUniformVariable(fFSParamUni).appendArrayAccess(2, &p2);
- builder->getUniformVariable(fFSParamUni).appendArrayAccess(3, &p3);
- builder->getUniformVariable(fFSParamUni).appendArrayAccess(4, &p4);
- builder->getUniformVariable(fFSParamUni).appendArrayAccess(5, &p5);
+ fsParamUni->appendArrayAccess(0, &p0);
+ fsParamUni->appendArrayAccess(1, &p1);
+ fsParamUni->appendArrayAccess(2, &p2);
+ fsParamUni->appendArrayAccess(3, &p3);
+ fsParamUni->appendArrayAccess(4, &p4);
+ fsParamUni->appendArrayAccess(5, &p5);
// If we we're able to interpolate the linear component,
// bVar is the varying; otherwise compute it
@@ -632,13 +633,13 @@ void GrGLRadial2Gradient::emitCode(GrGLShaderBuilder* builder,
t.printf("-%s / %s", cName.c_str(), bVar.c_str());
}
- this->emitColorLookup(builder, t.c_str(), outputColor, inputColor, samplers[0]);
+ this->emitColorLookup(builder, yCoordUni, t.c_str(), outputColor, inputColor, samplers[0]);
}
}
-void GrGLRadial2Gradient::setData(const GrGLUniformManager& uman,
+void GrGLRadial2Gradient::setData(const GrGLContext& context,
const GrDrawEffect& drawEffect) {
- INHERITED::setData(uman, drawEffect);
+ INHERITED::setData(context, drawEffect);
const GrRadial2Gradient& data = drawEffect.castEffect<GrRadial2Gradient>();
GrAssert(data.isDegenerate() == fIsDegenerate);
SkScalar centerX1 = data.center();
@@ -663,8 +664,8 @@ void GrGLRadial2Gradient::setData(const GrGLUniformManager& uman,
data.isPosRoot() ? 1.f : -1.f
};
- uman.set1fv(fVSParamUni, 0, 6, values);
- uman.set1fv(fFSParamUni, 0, 6, values);
+ fVSParamUni->set1fv(context, 0, 6, values);
+ fFSParamUni->set1fv(context, 0, 6, values);
fCachedCenter = centerX1;
fCachedRadius = radius0;
fCachedPosRoot = data.isPosRoot();
« no previous file with comments | « src/effects/gradients/SkTwoPointConicalGradient.cpp ('k') | src/gpu/GrAAConvexPathRenderer.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698