diff options
author | 2015-06-01 10:41:49 -0700 | |
---|---|---|
committer | 2015-06-01 10:41:49 -0700 | |
commit | 6df86409ca586c3cb34f616f03501bd96181f9e4 (patch) | |
tree | f1b8efc069946abb9b3f431cc6b45a31f610d83a /src/gpu/gl/GrGLVertexArray.cpp | |
parent | 0513c83e0f6bffa566c7d1b93fb2ba52bacc10fc (diff) |
Revert "Revert of Move copy-surface-as-draw fallback to GrGLGpu. (patchset #12 id:220001 of https://codereview.chromium.org/1144433002/)"
This reverts commit 404b3b264b833eb7cffdc833c7e2ebbd708e123a.
Review URL: https://codereview.chromium.org/1161063003
Diffstat (limited to 'src/gpu/gl/GrGLVertexArray.cpp')
-rw-r--r-- | src/gpu/gl/GrGLVertexArray.cpp | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/src/gpu/gl/GrGLVertexArray.cpp b/src/gpu/gl/GrGLVertexArray.cpp index e20dbb5fed..265b5b35ea 100644 --- a/src/gpu/gl/GrGLVertexArray.cpp +++ b/src/gpu/gl/GrGLVertexArray.cpp @@ -9,9 +9,10 @@ #include "GrGLGpu.h" -void GrGLAttribArrayState::set(const GrGLGpu* gpu, + +void GrGLAttribArrayState::set(GrGLGpu* gpu, int index, - GrGLVertexBuffer* buffer, + GrGLuint vertexBufferID, GrGLint size, GrGLenum type, GrGLboolean normalized, @@ -25,13 +26,13 @@ void GrGLAttribArrayState::set(const GrGLGpu* gpu, array->fEnabled = true; } if (!array->fAttribPointerIsValid || - array->fVertexBufferID != buffer->bufferID() || + array->fVertexBufferID != vertexBufferID || array->fSize != size || array->fNormalized != normalized || array->fStride != stride || array->fOffset != offset) { - buffer->bind(); + gpu->bindVertexBuffer(vertexBufferID); GR_GL_CALL(gpu->glInterface(), VertexAttribPointer(index, size, type, @@ -39,7 +40,7 @@ void GrGLAttribArrayState::set(const GrGLGpu* gpu, stride, offset)); array->fAttribPointerIsValid = true; - array->fVertexBufferID = buffer->bufferID(); + array->fVertexBufferID = vertexBufferID; array->fSize = size; array->fNormalized = normalized; array->fStride = stride; @@ -80,15 +81,13 @@ GrGLAttribArrayState* GrGLVertexArray::bind(GrGLGpu* gpu) { return &fAttribArrays; } -GrGLAttribArrayState* GrGLVertexArray::bindWithIndexBuffer(GrGLGpu* gpu, - const GrGLIndexBuffer* buffer) { +GrGLAttribArrayState* GrGLVertexArray::bindWithIndexBuffer(GrGLGpu* gpu, GrGLuint ibufferID) { GrGLAttribArrayState* state = this->bind(gpu); - if (state && buffer) { - GrGLuint bufferID = buffer->bufferID(); - if (!fIndexBufferIDIsValid || bufferID != fIndexBufferID) { - GR_GL_CALL(gpu->glInterface(), BindBuffer(GR_GL_ELEMENT_ARRAY_BUFFER, bufferID)); + if (state) { + if (!fIndexBufferIDIsValid || ibufferID != fIndexBufferID) { + GR_GL_CALL(gpu->glInterface(), BindBuffer(GR_GL_ELEMENT_ARRAY_BUFFER, ibufferID)); fIndexBufferIDIsValid = true; - fIndexBufferID = bufferID; + fIndexBufferID = ibufferID; } } return state; |