Index: include/gpu/GrTypesPriv.h |
diff --git a/include/gpu/GrTypesPriv.h b/include/gpu/GrTypesPriv.h |
index 0bae612db19d68ffbf85337492114dab0ba84170..75c987f148707ab05f659a9b9938d89dc6bab663 100644 |
--- a/include/gpu/GrTypesPriv.h |
+++ b/include/gpu/GrTypesPriv.h |
@@ -70,6 +70,8 @@ enum GrVertexAttribType { |
kVec2f_GrVertexAttribType, |
kVec3f_GrVertexAttribType, |
kVec4f_GrVertexAttribType, |
+ |
+ kUByte_GrVertexAttribType, // unsigned byte, e.g. coverage |
kVec4ub_GrVertexAttribType, // vector of 4 unsigned bytes, e.g. colors |
kLast_GrVertexAttribType = kVec4ub_GrVertexAttribType |
@@ -81,14 +83,15 @@ static const int kGrVertexAttribTypeCount = kLast_GrVertexAttribType + 1; |
*/ |
static inline int GrVertexAttribTypeVectorCount(GrVertexAttribType type) { |
SkASSERT(type >= 0 && type < kGrVertexAttribTypeCount); |
- static const int kCounts[] = { 1, 2, 3, 4, 4 }; |
+ static const int kCounts[] = { 1, 2, 3, 4, 1, 4 }; |
return kCounts[type]; |
GR_STATIC_ASSERT(0 == kFloat_GrVertexAttribType); |
GR_STATIC_ASSERT(1 == kVec2f_GrVertexAttribType); |
GR_STATIC_ASSERT(2 == kVec3f_GrVertexAttribType); |
GR_STATIC_ASSERT(3 == kVec4f_GrVertexAttribType); |
- GR_STATIC_ASSERT(4 == kVec4ub_GrVertexAttribType); |
+ GR_STATIC_ASSERT(4 == kUByte_GrVertexAttribType); |
+ GR_STATIC_ASSERT(5 == kVec4ub_GrVertexAttribType); |
GR_STATIC_ASSERT(SK_ARRAY_COUNT(kCounts) == kGrVertexAttribTypeCount); |
} |
@@ -102,6 +105,7 @@ static inline size_t GrVertexAttribTypeSize(GrVertexAttribType type) { |
2*sizeof(float), // kVec2f_GrVertexAttribType |
3*sizeof(float), // kVec3f_GrVertexAttribType |
4*sizeof(float), // kVec4f_GrVertexAttribType |
+ 1*sizeof(char), // kUByte_GrVertexAttribType |
4*sizeof(char) // kVec4ub_GrVertexAttribType |
}; |
return kSizes[type]; |
@@ -110,7 +114,8 @@ static inline size_t GrVertexAttribTypeSize(GrVertexAttribType type) { |
GR_STATIC_ASSERT(1 == kVec2f_GrVertexAttribType); |
GR_STATIC_ASSERT(2 == kVec3f_GrVertexAttribType); |
GR_STATIC_ASSERT(3 == kVec4f_GrVertexAttribType); |
- GR_STATIC_ASSERT(4 == kVec4ub_GrVertexAttribType); |
+ GR_STATIC_ASSERT(4 == kUByte_GrVertexAttribType); |
+ GR_STATIC_ASSERT(5 == kVec4ub_GrVertexAttribType); |
GR_STATIC_ASSERT(SK_ARRAY_COUNT(kSizes) == kGrVertexAttribTypeCount); |
} |
@@ -123,7 +128,7 @@ 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 vector count of 4 |
+ kCoverage_GrVertexAttribBinding, // must have a single byte |
kLastFixedFunction_GrVertexAttribBinding = kCoverage_GrVertexAttribBinding, |
@@ -139,7 +144,7 @@ static const int kGrFixedFunctionVertexAttribBindingCnt = |
static inline int GrFixedFunctionVertexAttribVectorCount(GrVertexAttribBinding binding) { |
SkASSERT(binding >= 0 && binding < kGrFixedFunctionVertexAttribBindingCnt); |
- static const int kVecCounts[] = { 2, 2, 4, 4 }; |
+ static const int kVecCounts[] = { 2, 2, 4, 1 }; |
return kVecCounts[binding]; |