Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(545)

Unified Diff: tests/GLProgramsTest.cpp

Issue 761563002: First step to moving vertex attributes to the geometryProcessor (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: adding test to ignore Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/gpu/gl/builders/GrGLVertexShaderBuilder.cpp ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/GLProgramsTest.cpp
diff --git a/tests/GLProgramsTest.cpp b/tests/GLProgramsTest.cpp
index f03f3014aacd31400de039da28027c1de27b7ea7..aa8359d5e55957e3951fcaad1eb55de515f7139a 100644
--- a/tests/GLProgramsTest.cpp
+++ b/tests/GLProgramsTest.cpp
@@ -118,50 +118,6 @@ static GrRenderTarget* random_render_target(GrContext* context,
return SkRef(texture->asRenderTarget());
}
-// TODO clean this up, we have to do this to test geometry processors but there has got to be
-// a better way. In the mean time, we actually fill out these generic vertex attribs below with
-// the correct vertex attribs from the GP. We have to ensure, however, we don't try to add more
-// than two attributes. In addition, we 'pad' the below array with GPs up to 6 entries, 4 fixed
-// function vertex attributes and 2 GP custom attributes.
-GrVertexAttrib kGenericVertexAttribs[] = {
- { kVec2f_GrVertexAttribType, 0, kPosition_GrVertexAttribBinding },
- { kVec2f_GrVertexAttribType, 0, kGeometryProcessor_GrVertexAttribBinding },
- { kVec2f_GrVertexAttribType, 0, kGeometryProcessor_GrVertexAttribBinding },
- { kVec2f_GrVertexAttribType, 0, kGeometryProcessor_GrVertexAttribBinding },
- { kVec2f_GrVertexAttribType, 0, kGeometryProcessor_GrVertexAttribBinding },
- { kVec2f_GrVertexAttribType, 0, kGeometryProcessor_GrVertexAttribBinding }
-};
-
-/*
- * convert sl type to vertexattrib type, not a complete implementation, only use for debugging
- */
-static GrVertexAttribType convert_sltype_to_attribtype(GrSLType type) {
- switch (type) {
- case kFloat_GrSLType:
- return kFloat_GrVertexAttribType;
- case kVec2f_GrSLType:
- return kVec2f_GrVertexAttribType;
- case kVec3f_GrSLType:
- return kVec3f_GrVertexAttribType;
- case kVec4f_GrSLType:
- return kVec4f_GrVertexAttribType;
- default:
- SkFAIL("Type isn't convertible");
- return kFloat_GrVertexAttribType;
- }
-}
-// end test hack
-
-static void setup_random_ff_attribute(GrVertexAttribBinding binding, GrVertexAttribType type,
- SkRandom* random, int* attribIndex, int* runningStride) {
- if (random->nextBool()) {
- kGenericVertexAttribs[*attribIndex].fType = type;
- kGenericVertexAttribs[*attribIndex].fOffset = *runningStride;
- kGenericVertexAttribs[*attribIndex].fBinding = binding;
- *runningStride += GrVertexAttribTypeSize(kGenericVertexAttribs[(*attribIndex)++].fType);
- }
-}
-
static void set_random_gp(GrContext* context,
const GrDrawTargetCaps& caps,
GrDrawState* ds,
@@ -174,41 +130,6 @@ static void set_random_gp(GrContext* context,
dummyTextures));
SkASSERT(gp);
- // we have to set dummy vertex attributes, first we setup the fixed function attributes
- // always leave the position attribute untouched in the array
- int attribIndex = 1;
- int runningStride = GrVertexAttribTypeSize(kGenericVertexAttribs[0].fType);
-
- // local coords
- setup_random_ff_attribute(kLocalCoord_GrVertexAttribBinding, kVec2f_GrVertexAttribType,
- random, &attribIndex, &runningStride);
-
- // color
- setup_random_ff_attribute(kColor_GrVertexAttribBinding, kVec4f_GrVertexAttribType,
- random, &attribIndex, &runningStride);
-
- // coverage
- setup_random_ff_attribute(kCoverage_GrVertexAttribBinding, kUByte_GrVertexAttribType,
- random, &attribIndex, &runningStride);
-
- // Update the geometry processor attributes
- const GrGeometryProcessor::VertexAttribArray& v = gp->getVertexAttribs();
- int numGPAttribs = v.count();
- SkASSERT(numGPAttribs <= GrGeometryProcessor::kMaxVertexAttribs &&
- GrGeometryProcessor::kMaxVertexAttribs == 2);
-
- // we actually can't overflow if kMaxVertexAttribs == 2, but GCC 4.8 wants more proof
- int maxIndex = SK_ARRAY_COUNT(kGenericVertexAttribs);
- for (int i = 0; i < numGPAttribs && i + attribIndex < maxIndex; i++) {
- kGenericVertexAttribs[i + attribIndex].fType =
- convert_sltype_to_attribtype(v[i].getType());
- kGenericVertexAttribs[i + attribIndex].fOffset = runningStride;
- kGenericVertexAttribs[i + attribIndex].fBinding = kGeometryProcessor_GrVertexAttribBinding;
- runningStride += GrVertexAttribTypeSize(kGenericVertexAttribs[i + attribIndex].fType);
- }
-
- // update the vertex attributes with the ds
- ds->setVertexAttribs<kGenericVertexAttribs>(attribIndex + numGPAttribs, runningStride);
ds->setGeometryProcessor(gp);
}
« no previous file with comments | « src/gpu/gl/builders/GrGLVertexShaderBuilder.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698