| Index: src/gpu/gl/GrGpuGL_program.cpp
|
| diff --git a/src/gpu/gl/GrGpuGL_program.cpp b/src/gpu/gl/GrGpuGL_program.cpp
|
| index a3beab1a5999bfbaeed0dca446edd189cbda976f..50ecf0b3322d4a8b03280504e5fc1e03e868f1c7 100644
|
| --- a/src/gpu/gl/GrGpuGL_program.cpp
|
| +++ b/src/gpu/gl/GrGpuGL_program.cpp
|
| @@ -344,22 +344,29 @@ void GrGpuGL::setupGeometry(const DrawInfo& info, size_t* indexOffsetInBytes) {
|
|
|
| if (!fCurrentProgram->hasVertexShader()) {
|
| int posIdx = this->getDrawState().positionAttributeIndex();
|
| - const GrVertexAttrib* vertexArray = this->getDrawState().getVertexAttribs() + posIdx;
|
| - GrVertexAttribType vertexArrayType = vertexArray->fType;
|
| - SkASSERT(!GrGLAttribTypeToLayout(vertexArrayType).fNormalized);
|
| - SkASSERT(GrGLAttribTypeToLayout(vertexArrayType).fCount == 2);
|
| - attribState->setFixedFunctionVertexArray(this,
|
| - vbuf,
|
| - 2,
|
| - GrGLAttribTypeToLayout(vertexArrayType).fType,
|
| - stride,
|
| - reinterpret_cast<GrGLvoid*>(
|
| - vertexOffsetInBytes + vertexArray->fOffset));
|
| - attribState->disableUnusedArrays(this, 0, true);
|
| + const GrVertexAttrib* vertexAttrib = this->getDrawState().getVertexAttribs() + posIdx;
|
| + GrVertexAttribType attribType = vertexAttrib->fType;
|
| + SkASSERT(!GrGLAttribTypeToLayout(attribType).fNormalized);
|
| + SkASSERT(GrGLAttribTypeToLayout(attribType).fCount == 2);
|
| +
|
| + // Attrib at location 0 is defined to be bound to vertex in fixed-function pipe. Asserts
|
| + // above should make sure position attribute goes to location 0 when below code is executed.
|
| +
|
| + attribState->set(this,
|
| + 0,
|
| + vbuf,
|
| + GrGLAttribTypeToLayout(attribType).fCount,
|
| + GrGLAttribTypeToLayout(attribType).fType,
|
| + GrGLAttribTypeToLayout(attribType).fNormalized,
|
| + stride,
|
| + reinterpret_cast<GrGLvoid*>(
|
| + vertexOffsetInBytes + vertexAttrib->fOffset));
|
| + attribState->disableUnusedArrays(this, 1);
|
| } else {
|
| + int vertexAttribCount = this->getDrawState().getVertexAttribCount();
|
| uint32_t usedAttribArraysMask = 0;
|
| const GrVertexAttrib* vertexAttrib = this->getDrawState().getVertexAttribs();
|
| - int vertexAttribCount = this->getDrawState().getVertexAttribCount();
|
| +
|
| for (int vertexAttribIndex = 0; vertexAttribIndex < vertexAttribCount;
|
| ++vertexAttribIndex, ++vertexAttrib) {
|
|
|
| @@ -373,9 +380,8 @@ void GrGpuGL::setupGeometry(const DrawInfo& info, size_t* indexOffsetInBytes) {
|
| GrGLAttribTypeToLayout(attribType).fNormalized,
|
| stride,
|
| reinterpret_cast<GrGLvoid*>(
|
| - vertexOffsetInBytes + vertexAttrib->fOffset));
|
| + vertexOffsetInBytes + vertexAttrib->fOffset));
|
| }
|
| -
|
| - attribState->disableUnusedArrays(this, usedAttribArraysMask, false);
|
| + attribState->disableUnusedArrays(this, usedAttribArraysMask);
|
| }
|
| }
|
|
|