}
fHWProgramID = 0;
+ fHWConstAttribColor = GrColor_ILLEGAL;
+ fHWConstAttribCoverage = GrColor_ILLEGAL;
}
void GrGpuGLShaders::flushViewMatrix() {
if (this->getVertexLayout() & kColor_VertexLayoutBit) {
// color will be specified per-vertex as an attribute
// invalidate the const vertex attrib color
- fHWDrawState.setColor(GrColor_ILLEGAL);
+ fHWConstAttribColor = GrColor_ILLEGAL;
} else {
switch (desc.fColorInput) {
case ProgramDesc::kAttribute_ColorInput:
float c[] = GR_COLOR_TO_VEC4(color);
GL_CALL(VertexAttrib4fv(GrGLProgram::ColorAttributeIdx(),
c));
- fHWDrawState.setColor(color);
+ fHWConstAttribColor = color;
}
break;
case ProgramDesc::kUniform_ColorInput:
if (this->getVertexLayout() & kCoverage_VertexLayoutBit) {
// coverage will be specified per-vertex as an attribute
// invalidate the const vertex attrib coverage
- fHWDrawState.setCoverage4(GrColor_ILLEGAL);
+ fHWConstAttribCoverage = GrColor_ILLEGAL;
} else {
switch (desc.fCoverageInput) {
case ProgramDesc::kAttribute_ColorInput:
float c[] = GR_COLOR_TO_VEC4(coverage);
GL_CALL(VertexAttrib4fv(GrGLProgram::CoverageAttributeIdx(),
c));
- fHWDrawState.setCoverage(coverage);
+ fHWConstAttribCoverage = coverage;
}
break;
case ProgramDesc::kUniform_ColorInput:
ProgramCache* fProgramCache;
CachedData* fProgramData;
+
GrGLuint fHWProgramID;
+ GrColor fHWConstAttribColor;
+ GrColor fHWConstAttribCoverage;
+
GrGLProgram fCurrentProgram;
// If we get rid of fixed function subclass this should move
// to the GLCaps struct in parent class