aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests
diff options
context:
space:
mode:
authorGravatar jvanverth@google.com <jvanverth@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-03-01 18:21:22 +0000
committerGravatar jvanverth@google.com <jvanverth@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-03-01 18:21:22 +0000
commit9b855c7c95ce9fff7a447e4a6bdf8a469c1f3097 (patch)
treea97672e09387e62ddec1deca227f024806820222 /tests
parentdf8114d84616f8a85a5064f8deef2cca083193f8 (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.cpp28
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) {