aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/GLProgramsTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/GLProgramsTest.cpp')
-rw-r--r--tests/GLProgramsTest.cpp28
1 files changed, 24 insertions, 4 deletions
diff --git a/tests/GLProgramsTest.cpp b/tests/GLProgramsTest.cpp
index 0c660d9e3d..3c9af5c98f 100644
--- a/tests/GLProgramsTest.cpp
+++ b/tests/GLProgramsTest.cpp
@@ -23,7 +23,7 @@
void GrGLProgram::Desc::setRandom(SkMWCRandom* random,
const GrGpuGL* gpu,
const GrEffectStage stages[GrDrawState::kNumStages]) {
- fVertexLayout = 0;
+ fAttribBindings = 0;
fEmitsPointSize = random->nextBool();
fColorInput = random->nextULessThan(kColorInputCnt);
fCoverageInput = random->nextULessThan(kColorInputCnt);
@@ -32,7 +32,7 @@ void GrGLProgram::Desc::setRandom(SkMWCRandom* random,
fFirstCoverageStage = random->nextULessThan(GrDrawState::kNumStages);
- fVertexLayout |= random->nextBool() ? GrDrawState::kCoverage_VertexLayoutBit : 0;
+ fAttribBindings |= random->nextBool() ? GrDrawState::kCoverage_AttribBindingsBit : 0;
#if GR_GL_EXPERIMENTAL_GS
fExperimentalGS = gpu->getCaps().geometryShaderSupport() && random->nextBool();
@@ -40,7 +40,7 @@ void GrGLProgram::Desc::setRandom(SkMWCRandom* random,
bool edgeAA = random->nextBool();
if (edgeAA) {
- fVertexLayout |= GrDrawState::kEdge_VertexLayoutBit;
+ fAttribBindings |= GrDrawState::kEdge_AttribBindingsBit;
if (gpu->getCaps().shaderDerivativeSupport()) {
fVertexEdgeType = (GrDrawState::VertexEdgeType)
random->nextULessThan(GrDrawState::kVertexEdgeTypeCnt);
@@ -64,11 +64,31 @@ void GrGLProgram::Desc::setRandom(SkMWCRandom* random,
fEffectKeys[s] = factory.glEffectKey(stages[s], gpu->glCaps());
// use separate tex coords?
if (!useOnce && random->nextBool()) {
- fVertexLayout |= GrDrawState::StageTexCoordVertexLayoutBit(s);
+ fAttribBindings |= GrDrawState::ExplicitTexCoordAttribBindingsBit(s);
useOnce = true;
}
}
}
+
+ int attributeIndex = 0;
+ fPositionAttributeIndex = attributeIndex;
+ ++attributeIndex;
+ if (fColorInput || (fAttribBindings & GrDrawState::kColor_AttribBindingsBit)) {
+ fColorAttributeIndex = attributeIndex;
+ ++attributeIndex;
+ }
+ if (fCoverageInput || (fAttribBindings & GrDrawState::kCoverage_AttribBindingsBit)) {
+ fCoverageAttributeIndex = attributeIndex;
+ ++attributeIndex;
+ }
+ if (fAttribBindings & GrDrawState::kEdge_AttribBindingsBit) {
+ fEdgeAttributeIndex = attributeIndex;
+ ++attributeIndex;
+ }
+ if (GrDrawState::AttributesBindExplicitTexCoords(fAttribBindings)) {
+ fTexCoordAttributeIndex = attributeIndex;
+ ++attributeIndex;
+ }
}
bool GrGpuGL::programUnitTest(int maxStages) {