VariableVisibility -> ShaderType
Review URL: http://codereview.appspot.com/6344103/
git-svn-id: http://skia.googlecode.com/svn/trunk@4534 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/gpu/gl/GrGLShaderBuilder.cpp b/src/gpu/gl/GrGLShaderBuilder.cpp
index 4074c4a..220aed7 100644
--- a/src/gpu/gl/GrGLShaderBuilder.cpp
+++ b/src/gpu/gl/GrGLShaderBuilder.cpp
@@ -8,15 +8,11 @@
#include "gl/GrGLShaderBuilder.h"
#include "gl/GrGLProgram.h"
-namespace {
-
// number of each input/output type in a single allocation block
-static const int sVarsPerBlock = 8;
+static const int kVarsPerBlock = 8;
// except FS outputs where we expect 2 at most.
-static const int sMaxFSOutputs = 2;
-
-}
+static const int kMaxFSOutputs = 2;
// Architectural assumption: always 2-d input coords.
// Likely to become non-constant and non-static, perhaps even
@@ -24,14 +20,14 @@
//const int GrGLShaderBuilder::fCoordDims = 2;
GrGLShaderBuilder::GrGLShaderBuilder()
- : fVSUnis(sVarsPerBlock)
- , fVSAttrs(sVarsPerBlock)
- , fVSOutputs(sVarsPerBlock)
- , fGSInputs(sVarsPerBlock)
- , fGSOutputs(sVarsPerBlock)
- , fFSInputs(sVarsPerBlock)
- , fFSUnis(sVarsPerBlock)
- , fFSOutputs(sMaxFSOutputs)
+ : fVSUnis(kVarsPerBlock)
+ , fVSAttrs(kVarsPerBlock)
+ , fVSOutputs(kVarsPerBlock)
+ , fGSInputs(kVarsPerBlock)
+ , fGSOutputs(kVarsPerBlock)
+ , fFSInputs(kVarsPerBlock)
+ , fFSUnis(kVarsPerBlock)
+ , fFSOutputs(kMaxFSOutputs)
, fUsesGS(false)
, fVaryingDims(0)
, fComplexCoord(false) {
@@ -116,18 +112,21 @@
fFSCode.appendf("%s%s;\n", fSwizzle.c_str(), fModulate.c_str());
}
-const GrGLShaderVar& GrGLShaderBuilder::addUniform(VariableLifetime lifetime,
- GrSLType type,
- const char* name,
- int stageNum,
- int count) {
+const GrGLShaderVar& GrGLShaderBuilder::addUniform(uint32_t visibility,
+ GrSLType type,
+ const char* name,
+ int stageNum,
+ int count) {
GrAssert(name && strlen(name));
+ static const uint32_t kVisibilityMask = kVertex_ShaderType | kFragment_ShaderType;
+ GrAssert(0 == (~kVisibilityMask & visibility));
+ GrAssert(0 != visibility);
GrGLShaderVar* var = NULL;
- if (kVertex_VariableLifetime & lifetime) {
+ if (kVertex_ShaderType & visibility) {
var = &fVSUnis.push_back();
} else {
- GrAssert(kFragment_VariableLifetime & lifetime);
+ GrAssert(kFragment_ShaderType & visibility);
var = &fFSUnis.push_back();
}
var->setType(type);
@@ -138,8 +137,7 @@
}
var->setArrayCount(count);
- if ((kVertex_VariableLifetime |
- kFragment_VariableLifetime) == lifetime) {
+ if ((kVertex_ShaderType | kFragment_ShaderType) == visibility) {
fFSUnis.push_back(*var);
// If it's shared between VS and FS, VS must override
// default highp and specify mediump.