diff options
author | jvanverth@google.com <jvanverth@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-03-01 18:21:22 +0000 |
---|---|---|
committer | jvanverth@google.com <jvanverth@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-03-01 18:21:22 +0000 |
commit | 9b855c7c95ce9fff7a447e4a6bdf8a469c1f3097 (patch) | |
tree | a97672e09387e62ddec1deca227f024806820222 /tests | |
parent | df8114d84616f8a85a5064f8deef2cca083193f8 (diff) |
Resubmit r7899 and r7901.
git-svn-id: http://skia.googlecode.com/svn/trunk@7929 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'tests')
-rw-r--r-- | tests/GLProgramsTest.cpp | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/tests/GLProgramsTest.cpp b/tests/GLProgramsTest.cpp index bc148f1754..45c5f2d162 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) { |