Index: include/gpu/GrTypesPriv.h |
=================================================================== |
--- include/gpu/GrTypesPriv.h (revision 8407) |
+++ include/gpu/GrTypesPriv.h (working copy) |
@@ -8,6 +8,8 @@ |
#ifndef GrTypesPriv_DEFINED |
#define GrTypesPriv_DEFINED |
+#include "SkTArray.h" |
+ |
/** |
* Types of shader-language-specific boxed variables we can create. |
* (Currently only GrGLShaderVars, but should be applicable to other shader |
@@ -24,4 +26,34 @@ |
kSampler2D_GrSLType |
}; |
+/** |
+ * Types used to describe format of vertices in arrays |
+ */ |
+enum GrVertexAttribType { |
+ kFloat_GrVertexAttribType = 0, |
+ kVec2f_GrVertexAttribType, |
+ kVec3f_GrVertexAttribType, |
+ kVec4f_GrVertexAttribType, |
+ kVec4ub_GrVertexAttribType, // vector of 4 unsigned bytes, e.g. colors |
+ |
+ kLast_GrVertexAttribType = kVec4ub_GrVertexAttribType |
+}; |
+static const int kGrVertexAttribTypeCount = kLast_GrVertexAttribType + 1; |
+ |
+struct GrVertexAttrib { |
+ inline void set(GrVertexAttribType type, size_t offset) { |
+ fType = type; fOffset = offset; |
+ } |
+ bool operator==(const GrVertexAttrib& other) const { |
+ return fType == other.fType && fOffset == other.fOffset; |
+ }; |
+ bool operator!=(const GrVertexAttrib& other) const { return !(*this == other); } |
+ |
+ GrVertexAttribType fType; |
+ size_t fOffset; |
+}; |
+ |
+template <int N> |
+class GrVertexAttribArray : public SkSTArray<N, GrVertexAttrib, true> {}; |
+ |
#endif |