| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2013 Google Inc. | 2 * Copyright 2013 Google Inc. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
| 5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
| 6 */ | 6 */ |
| 7 | 7 |
| 8 #include "GrGLVertexArray.h" | 8 #include "GrGLVertexArray.h" |
| 9 #include "GrGLGpu.h" | 9 #include "GrGLGpu.h" |
| 10 | 10 |
| 11 struct AttribLayout { | 11 struct AttribLayout { |
| 12 GrGLint fCount; | 12 GrGLint fCount; |
| 13 GrGLenum fType; | 13 GrGLenum fType; |
| 14 GrGLboolean fNormalized; // Only used by floating point types. | 14 GrGLboolean fNormalized; // Only used by floating point types. |
| 15 }; | 15 }; |
| 16 | 16 |
| 17 static const AttribLayout gLayouts[kGrVertexAttribTypeCount] = { | 17 static const AttribLayout gLayouts[kGrVertexAttribTypeCount] = { |
| 18 {1, GR_GL_FLOAT, false}, // kFloat_GrVertexAttribType | 18 {1, GR_GL_FLOAT, false}, // kFloat_GrVertexAttribType |
| 19 {2, GR_GL_FLOAT, false}, // kVec2f_GrVertexAttribType | 19 {2, GR_GL_FLOAT, false}, // kVec2f_GrVertexAttribType |
| 20 {3, GR_GL_FLOAT, false}, // kVec3f_GrVertexAttribType | 20 {3, GR_GL_FLOAT, false}, // kVec3f_GrVertexAttribType |
| 21 {4, GR_GL_FLOAT, false}, // kVec4f_GrVertexAttribType | 21 {4, GR_GL_FLOAT, false}, // kVec4f_GrVertexAttribType |
| 22 {1, GR_GL_UNSIGNED_BYTE, true}, // kUByte_GrVertexAttribType | 22 {1, GR_GL_UNSIGNED_BYTE, true}, // kUByte_GrVertexAttribType |
| 23 {4, GR_GL_UNSIGNED_BYTE, true}, // kVec4ub_GrVertexAttribType | 23 {4, GR_GL_UNSIGNED_BYTE, true}, // kVec4ub_GrVertexAttribType |
| 24 {2, GR_GL_UNSIGNED_SHORT, true}, // kVec2s_GrVertexAttribType | 24 {2, GR_GL_SHORT, false}, // kVec2s_GrVertexAttribType |
| 25 {1, GR_GL_INT, false}, // kInt_GrVertexAttribType | 25 {1, GR_GL_INT, false}, // kInt_GrVertexAttribType |
| 26 {1, GR_GL_UNSIGNED_INT, false}, // kUint_GrVertexAttribType | 26 {1, GR_GL_UNSIGNED_INT, false}, // kUint_GrVertexAttribType |
| 27 }; | 27 }; |
| 28 | 28 |
| 29 GR_STATIC_ASSERT(0 == kFloat_GrVertexAttribType); | 29 GR_STATIC_ASSERT(0 == kFloat_GrVertexAttribType); |
| 30 GR_STATIC_ASSERT(1 == kVec2f_GrVertexAttribType); | 30 GR_STATIC_ASSERT(1 == kVec2f_GrVertexAttribType); |
| 31 GR_STATIC_ASSERT(2 == kVec3f_GrVertexAttribType); | 31 GR_STATIC_ASSERT(2 == kVec3f_GrVertexAttribType); |
| 32 GR_STATIC_ASSERT(3 == kVec4f_GrVertexAttribType); | 32 GR_STATIC_ASSERT(3 == kVec4f_GrVertexAttribType); |
| 33 GR_STATIC_ASSERT(4 == kUByte_GrVertexAttribType); | 33 GR_STATIC_ASSERT(4 == kUByte_GrVertexAttribType); |
| 34 GR_STATIC_ASSERT(5 == kVec4ub_GrVertexAttribType); | 34 GR_STATIC_ASSERT(5 == kVec4ub_GrVertexAttribType); |
| 35 GR_STATIC_ASSERT(6 == kVec2us_GrVertexAttribType); | 35 GR_STATIC_ASSERT(6 == kVec2s_GrVertexAttribType); |
| 36 GR_STATIC_ASSERT(7 == kInt_GrVertexAttribType); | 36 GR_STATIC_ASSERT(7 == kInt_GrVertexAttribType); |
| 37 GR_STATIC_ASSERT(8 == kUint_GrVertexAttribType); | 37 GR_STATIC_ASSERT(8 == kUint_GrVertexAttribType); |
| 38 | 38 |
| 39 void GrGLAttribArrayState::set(GrGLGpu* gpu, | 39 void GrGLAttribArrayState::set(GrGLGpu* gpu, |
| 40 int index, | 40 int index, |
| 41 GrGLuint vertexBufferID, | 41 GrGLuint vertexBufferID, |
| 42 GrVertexAttribType type, | 42 GrVertexAttribType type, |
| 43 GrGLsizei stride, | 43 GrGLsizei stride, |
| 44 GrGLvoid* offset) { | 44 GrGLvoid* offset) { |
| 45 SkASSERT(index >= 0 && index < fAttribArrayStates.count()); | 45 SkASSERT(index >= 0 && index < fAttribArrayStates.count()); |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 129 void GrGLVertexArray::notifyIndexBufferDelete(GrGLuint bufferID) { | 129 void GrGLVertexArray::notifyIndexBufferDelete(GrGLuint bufferID) { |
| 130 if (fIndexBufferIDIsValid && bufferID == fIndexBufferID) { | 130 if (fIndexBufferIDIsValid && bufferID == fIndexBufferID) { |
| 131 fIndexBufferID = 0; | 131 fIndexBufferID = 0; |
| 132 } | 132 } |
| 133 } | 133 } |
| 134 | 134 |
| 135 void GrGLVertexArray::invalidateCachedState() { | 135 void GrGLVertexArray::invalidateCachedState() { |
| 136 fAttribArrays.invalidate(); | 136 fAttribArrays.invalidate(); |
| 137 fIndexBufferIDIsValid = false; | 137 fIndexBufferIDIsValid = false; |
| 138 } | 138 } |
| OLD | NEW |