| Index: src/gpu/gl/GrGLVertexArray.cpp
|
| diff --git a/src/gpu/gl/GrGLVertexArray.cpp b/src/gpu/gl/GrGLVertexArray.cpp
|
| index fdb395d37a33c47a75b7687b939fd988c39e6a34..8cfa8d655050fa5b69e453970c035e6af7d534fe 100644
|
| --- a/src/gpu/gl/GrGLVertexArray.cpp
|
| +++ b/src/gpu/gl/GrGLVertexArray.cpp
|
| @@ -8,38 +8,14 @@
|
| #include "GrGLVertexArray.h"
|
| #include "GrGLGpu.h"
|
|
|
| -struct AttribLayout {
|
| - GrGLint fCount;
|
| - GrGLenum fType;
|
| - GrGLboolean fNormalized; // Only used by floating point types.
|
| -};
|
|
|
| -static const AttribLayout gLayouts[kGrVertexAttribTypeCount] = {
|
| - {1, GR_GL_FLOAT, false}, // kFloat_GrVertexAttribType
|
| - {2, GR_GL_FLOAT, false}, // kVec2f_GrVertexAttribType
|
| - {3, GR_GL_FLOAT, false}, // kVec3f_GrVertexAttribType
|
| - {4, GR_GL_FLOAT, false}, // kVec4f_GrVertexAttribType
|
| - {1, GR_GL_UNSIGNED_BYTE, true}, // kUByte_GrVertexAttribType
|
| - {4, GR_GL_UNSIGNED_BYTE, true}, // kVec4ub_GrVertexAttribType
|
| - {2, GR_GL_SHORT, false}, // kVec2s_GrVertexAttribType
|
| - {1, GR_GL_INT, false}, // kInt_GrVertexAttribType
|
| - {1, GR_GL_UNSIGNED_INT, false}, // kUint_GrVertexAttribType
|
| -};
|
| -
|
| -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 == kUByte_GrVertexAttribType);
|
| -GR_STATIC_ASSERT(5 == kVec4ub_GrVertexAttribType);
|
| -GR_STATIC_ASSERT(6 == kVec2s_GrVertexAttribType);
|
| -GR_STATIC_ASSERT(7 == kInt_GrVertexAttribType);
|
| -GR_STATIC_ASSERT(8 == kUint_GrVertexAttribType);
|
|
|
| void GrGLAttribArrayState::set(GrGLGpu* gpu,
|
| int index,
|
| GrGLuint vertexBufferID,
|
| - GrVertexAttribType type,
|
| + GrGLint size,
|
| + GrGLenum type,
|
| + GrGLboolean normalized,
|
| GrGLsizei stride,
|
| GrGLvoid* offset) {
|
| SkASSERT(index >= 0 && index < fAttribArrayStates.count());
|
| @@ -51,31 +27,23 @@
|
| }
|
| if (!array->fAttribPointerIsValid ||
|
| array->fVertexBufferID != vertexBufferID ||
|
| - array->fType != type ||
|
| + array->fSize != size ||
|
| + array->fNormalized != normalized ||
|
| array->fStride != stride ||
|
| array->fOffset != offset) {
|
|
|
| gpu->bindVertexBuffer(vertexBufferID);
|
| - const AttribLayout& layout = gLayouts[type];
|
| - if (!GrVertexAttribTypeIsIntType(type)) {
|
| - GR_GL_CALL(gpu->glInterface(), VertexAttribPointer(index,
|
| - layout.fCount,
|
| - layout.fType,
|
| - layout.fNormalized,
|
| - stride,
|
| - offset));
|
| - } else {
|
| - SkASSERT(gpu->caps()->shaderCaps()->integerSupport());
|
| - SkASSERT(!layout.fNormalized);
|
| - GR_GL_CALL(gpu->glInterface(), VertexAttribIPointer(index,
|
| - layout.fCount,
|
| - layout.fType,
|
| - stride,
|
| - offset));
|
| - }
|
| + GR_GL_CALL(gpu->glInterface(), VertexAttribPointer(index,
|
| + size,
|
| + type,
|
| + normalized,
|
| + stride,
|
| + offset));
|
| array->fAttribPointerIsValid = true;
|
| array->fVertexBufferID = vertexBufferID;
|
| - array->fType = type;
|
| + array->fSize = size;
|
| + array->fNormalized = normalized;
|
| + array->fStride = stride;
|
| array->fOffset = offset;
|
| }
|
| }
|
|
|