Index: include/gpu/GrTypesPriv.h |
diff --git a/include/gpu/GrTypesPriv.h b/include/gpu/GrTypesPriv.h |
index 75c987f148707ab05f659a9b9938d89dc6bab663..0ff4e5709e4928a7fa69c418c114ad0665ee0c21 100644 |
--- a/include/gpu/GrTypesPriv.h |
+++ b/include/gpu/GrTypesPriv.h |
@@ -120,58 +120,24 @@ static inline size_t GrVertexAttribTypeSize(GrVertexAttribType type) { |
} |
/** |
- * Semantic bindings for vertex attributes. kEffect means that the attribute is input to a |
- * GrProcessor. Each binding other than kEffect may not appear more than once in the current set of |
- * attributes. kPosition must be appear for exactly one attribute. |
+ * converts a GrVertexAttribType to a GrSLType |
*/ |
-enum GrVertexAttribBinding { |
- kPosition_GrVertexAttribBinding, // required, must have vector count of 2 |
- kLocalCoord_GrVertexAttribBinding, // must have vector count of 2 |
- kColor_GrVertexAttribBinding, // must have vector count of 4 |
- kCoverage_GrVertexAttribBinding, // must have a single byte |
- |
- kLastFixedFunction_GrVertexAttribBinding = kCoverage_GrVertexAttribBinding, |
- |
- kGeometryProcessor_GrVertexAttribBinding, // vector length must agree with |
- // GrProcessor::vertexAttribType() for each effect input to |
- // which the attribute is mapped by GrDrawState::setEffect() |
- kLast_GrVertexAttribBinding = kGeometryProcessor_GrVertexAttribBinding |
-}; |
- |
-static const int kGrVertexAttribBindingCnt = kLast_GrVertexAttribBinding + 1; |
-static const int kGrFixedFunctionVertexAttribBindingCnt = |
- kLastFixedFunction_GrVertexAttribBinding + 1; |
- |
-static inline int GrFixedFunctionVertexAttribVectorCount(GrVertexAttribBinding binding) { |
- SkASSERT(binding >= 0 && binding < kGrFixedFunctionVertexAttribBindingCnt); |
- static const int kVecCounts[] = { 2, 2, 4, 1 }; |
- |
- return kVecCounts[binding]; |
- |
- GR_STATIC_ASSERT(0 == kPosition_GrVertexAttribBinding); |
- GR_STATIC_ASSERT(1 == kLocalCoord_GrVertexAttribBinding); |
- GR_STATIC_ASSERT(2 == kColor_GrVertexAttribBinding); |
- GR_STATIC_ASSERT(3 == kCoverage_GrVertexAttribBinding); |
- GR_STATIC_ASSERT(kGrFixedFunctionVertexAttribBindingCnt == SK_ARRAY_COUNT(kVecCounts)); |
-} |
- |
-struct GrVertexAttrib { |
- inline void set(GrVertexAttribType type, size_t offset, GrVertexAttribBinding binding) { |
- fType = type; |
- fOffset = offset; |
- fBinding = binding; |
+static inline GrSLType GrVertexAttribTypeToSLType(GrVertexAttribType type) { |
+ switch (type) { |
+ default: |
+ SkFAIL("Unsupported type conversion"); |
+ case kUByte_GrVertexAttribType: |
+ case kFloat_GrVertexAttribType: |
+ return kFloat_GrSLType; |
+ case kVec2f_GrVertexAttribType: |
+ return kVec2f_GrSLType; |
+ case kVec3f_GrVertexAttribType: |
+ return kVec3f_GrSLType; |
+ case kVec4ub_GrVertexAttribType: |
+ case kVec4f_GrVertexAttribType: |
+ return kVec4f_GrSLType; |
} |
- bool operator==(const GrVertexAttrib& other) const { |
- return fType == other.fType && fOffset == other.fOffset && fBinding == other.fBinding; |
- }; |
- bool operator!=(const GrVertexAttrib& other) const { return !(*this == other); } |
- |
- GrVertexAttribType fType; |
- size_t fOffset; |
- GrVertexAttribBinding fBinding; |
-}; |
- |
-template <int N> class GrVertexAttribArray : public SkSTArray<N, GrVertexAttrib, true> {}; |
+} |
////////////////////////////////////////////////////////////////////////////// |