| Index: src/gpu/gl/debug/GrGLCreateDebugInterface.cpp
|
| diff --git a/src/gpu/gl/debug/GrGLCreateDebugInterface.cpp b/src/gpu/gl/debug/GrGLCreateDebugInterface.cpp
|
| index 7c430b4b738c82eee2c0adb496bb3a826d28dac6..087bd4723e44e5716bda8da5bd3ee80cd09d01be 100644
|
| --- a/src/gpu/gl/debug/GrGLCreateDebugInterface.cpp
|
| +++ b/src/gpu/gl/debug/GrGLCreateDebugInterface.cpp
|
| @@ -622,14 +622,12 @@
|
| }
|
|
|
| // map a buffer to the caller's address space
|
| -GrGLvoid* GR_GL_FUNCTION_TYPE debugGLMapBufferRange(GrGLenum target, GrGLintptr offset,
|
| - GrGLsizeiptr length, GrGLbitfield access) {
|
| +GrGLvoid* GR_GL_FUNCTION_TYPE debugGLMapBuffer(GrGLenum target, GrGLenum access) {
|
| +
|
| GrAlwaysAssert(GR_GL_ARRAY_BUFFER == target ||
|
| GR_GL_ELEMENT_ARRAY_BUFFER == target);
|
| -
|
| - // We only expect read access and we expect that the buffer or range is always invalidated.
|
| - GrAlwaysAssert(!SkToBool(GR_GL_MAP_READ_BIT & access));
|
| - GrAlwaysAssert((GR_GL_MAP_INVALIDATE_BUFFER_BIT | GR_GL_MAP_INVALIDATE_RANGE_BIT) & access);
|
| + // GR_GL_READ_ONLY == access || || GR_GL_READ_WRIT == access);
|
| + GrAlwaysAssert(GR_GL_WRITE_ONLY == access);
|
|
|
| GrBufferObj *buffer = NULL;
|
| switch (target) {
|
| @@ -640,23 +638,26 @@
|
| buffer = GrDebugGL::getInstance()->getElementArrayBuffer();
|
| break;
|
| default:
|
| - SkFAIL("Unexpected target to glMapBufferRange");
|
| - break;
|
| - }
|
| -
|
| - if (NULL != buffer) {
|
| - GrAlwaysAssert(offset >= 0 && offset + length <= buffer->getSize());
|
| + SkFAIL("Unexpected target to glMapBuffer");
|
| + break;
|
| + }
|
| +
|
| + if (buffer) {
|
| GrAlwaysAssert(!buffer->getMapped());
|
| - buffer->setMapped(offset, length);
|
| - return buffer->getDataPtr() + offset;
|
| + buffer->setMapped();
|
| + return buffer->getDataPtr();
|
| }
|
|
|
| GrAlwaysAssert(false);
|
| return NULL; // no buffer bound to the target
|
| }
|
|
|
| -GrGLvoid* GR_GL_FUNCTION_TYPE debugGLMapBuffer(GrGLenum target, GrGLenum access) {
|
| - GrAlwaysAssert(GR_GL_WRITE_ONLY == access);
|
| +// remove a buffer from the caller's address space
|
| +// TODO: check if the "access" method from "glMapBuffer" was honored
|
| +GrGLboolean GR_GL_FUNCTION_TYPE debugGLUnmapBuffer(GrGLenum target) {
|
| +
|
| + GrAlwaysAssert(GR_GL_ARRAY_BUFFER == target ||
|
| + GR_GL_ELEMENT_ARRAY_BUFFER == target);
|
|
|
| GrBufferObj *buffer = NULL;
|
| switch (target) {
|
| @@ -667,20 +668,28 @@
|
| buffer = GrDebugGL::getInstance()->getElementArrayBuffer();
|
| break;
|
| default:
|
| - SkFAIL("Unexpected target to glMapBuffer");
|
| - break;
|
| - }
|
| -
|
| - return debugGLMapBufferRange(target, 0, buffer->getSize(),
|
| - GR_GL_MAP_WRITE_BIT | GR_GL_MAP_INVALIDATE_BUFFER_BIT);
|
| -}
|
| -
|
| -// remove a buffer from the caller's address space
|
| -// TODO: check if the "access" method from "glMapBuffer" was honored
|
| -GrGLboolean GR_GL_FUNCTION_TYPE debugGLUnmapBuffer(GrGLenum target) {
|
| + SkFAIL("Unexpected target to glUnmapBuffer");
|
| + break;
|
| + }
|
| +
|
| + if (buffer) {
|
| + GrAlwaysAssert(buffer->getMapped());
|
| + buffer->resetMapped();
|
| + return GR_GL_TRUE;
|
| + }
|
| +
|
| + GrAlwaysAssert(false);
|
| + return GR_GL_FALSE; // GR_GL_INVALID_OPERATION;
|
| +}
|
| +
|
| +GrGLvoid GR_GL_FUNCTION_TYPE debugGLGetBufferParameteriv(GrGLenum target,
|
| + GrGLenum value,
|
| + GrGLint* params) {
|
|
|
| GrAlwaysAssert(GR_GL_ARRAY_BUFFER == target ||
|
| GR_GL_ELEMENT_ARRAY_BUFFER == target);
|
| + GrAlwaysAssert(GR_GL_BUFFER_SIZE == value ||
|
| + GR_GL_BUFFER_USAGE == value);
|
|
|
| GrBufferObj *buffer = NULL;
|
| switch (target) {
|
| @@ -690,66 +699,6 @@
|
| case GR_GL_ELEMENT_ARRAY_BUFFER:
|
| buffer = GrDebugGL::getInstance()->getElementArrayBuffer();
|
| break;
|
| - default:
|
| - SkFAIL("Unexpected target to glUnmapBuffer");
|
| - break;
|
| - }
|
| -
|
| - if (NULL != buffer) {
|
| - GrAlwaysAssert(buffer->getMapped());
|
| - buffer->resetMapped();
|
| - return GR_GL_TRUE;
|
| - }
|
| -
|
| - GrAlwaysAssert(false);
|
| - return GR_GL_FALSE; // GR_GL_INVALID_OPERATION;
|
| -}
|
| -
|
| -GrGLvoid GR_GL_FUNCTION_TYPE debugGLFlushMappedBufferRange(GrGLenum target,
|
| - GrGLintptr offset,
|
| - GrGLsizeiptr length) {
|
| - GrAlwaysAssert(GR_GL_ARRAY_BUFFER == target ||
|
| - GR_GL_ELEMENT_ARRAY_BUFFER == target);
|
| -
|
| - GrBufferObj *buffer = NULL;
|
| - switch (target) {
|
| - case GR_GL_ARRAY_BUFFER:
|
| - buffer = GrDebugGL::getInstance()->getArrayBuffer();
|
| - break;
|
| - case GR_GL_ELEMENT_ARRAY_BUFFER:
|
| - buffer = GrDebugGL::getInstance()->getElementArrayBuffer();
|
| - break;
|
| - default:
|
| - SkFAIL("Unexpected target to glUnmapBuffer");
|
| - break;
|
| - }
|
| -
|
| - if (NULL != buffer) {
|
| - GrAlwaysAssert(buffer->getMapped());
|
| - GrAlwaysAssert(offset >= 0 && (offset + length) <= buffer->getMappedLength());
|
| - } else {
|
| - GrAlwaysAssert(false);
|
| - }
|
| -}
|
| -
|
| -
|
| -GrGLvoid GR_GL_FUNCTION_TYPE debugGLGetBufferParameteriv(GrGLenum target,
|
| - GrGLenum value,
|
| - GrGLint* params) {
|
| -
|
| - GrAlwaysAssert(GR_GL_ARRAY_BUFFER == target ||
|
| - GR_GL_ELEMENT_ARRAY_BUFFER == target);
|
| - GrAlwaysAssert(GR_GL_BUFFER_SIZE == value ||
|
| - GR_GL_BUFFER_USAGE == value);
|
| -
|
| - GrBufferObj *buffer = NULL;
|
| - switch (target) {
|
| - case GR_GL_ARRAY_BUFFER:
|
| - buffer = GrDebugGL::getInstance()->getArrayBuffer();
|
| - break;
|
| - case GR_GL_ELEMENT_ARRAY_BUFFER:
|
| - buffer = GrDebugGL::getInstance()->getElementArrayBuffer();
|
| - break;
|
| }
|
|
|
| GrAlwaysAssert(buffer);
|
| @@ -757,17 +706,17 @@
|
| switch (value) {
|
| case GR_GL_BUFFER_MAPPED:
|
| *params = GR_GL_FALSE;
|
| - if (NULL != buffer)
|
| + if (buffer)
|
| *params = buffer->getMapped() ? GR_GL_TRUE : GR_GL_FALSE;
|
| break;
|
| case GR_GL_BUFFER_SIZE:
|
| *params = 0;
|
| - if (NULL != buffer)
|
| + if (buffer)
|
| *params = SkToInt(buffer->getSize());
|
| break;
|
| case GR_GL_BUFFER_USAGE:
|
| *params = GR_GL_STATIC_DRAW;
|
| - if (NULL != buffer)
|
| + if (buffer)
|
| *params = buffer->getUsage();
|
| break;
|
| default:
|
| @@ -877,7 +826,6 @@
|
| functions->fEndQuery = noOpGLEndQuery;
|
| functions->fFinish = noOpGLFinish;
|
| functions->fFlush = noOpGLFlush;
|
| - functions->fFlushMappedBufferRange = debugGLFlushMappedBufferRange;
|
| functions->fFrontFace = noOpGLFrontFace;
|
| functions->fGenerateMipmap = debugGLGenerateMipmap;
|
| functions->fGenBuffers = debugGLGenBuffers;
|
| @@ -902,8 +850,6 @@
|
| functions->fGenVertexArrays = debugGLGenVertexArrays;
|
| functions->fLineWidth = noOpGLLineWidth;
|
| functions->fLinkProgram = noOpGLLinkProgram;
|
| - functions->fMapBuffer = debugGLMapBuffer;
|
| - functions->fMapBufferRange = debugGLMapBufferRange;
|
| functions->fPixelStorei = debugGLPixelStorei;
|
| functions->fQueryCounter = noOpGLQueryCounter;
|
| functions->fReadBuffer = noOpGLReadBuffer;
|
| @@ -941,7 +887,6 @@
|
| functions->fUniformMatrix2fv = noOpGLUniformMatrix2fv;
|
| functions->fUniformMatrix3fv = noOpGLUniformMatrix3fv;
|
| functions->fUniformMatrix4fv = noOpGLUniformMatrix4fv;
|
| - functions->fUnmapBuffer = debugGLUnmapBuffer;
|
| functions->fUseProgram = debugGLUseProgram;
|
| functions->fVertexAttrib4fv = noOpGLVertexAttrib4fv;
|
| functions->fVertexAttribPointer = noOpGLVertexAttribPointer;
|
| @@ -964,9 +909,10 @@
|
| functions->fBlitFramebuffer = noOpGLBlitFramebuffer;
|
| functions->fResolveMultisampleFramebuffer =
|
| noOpGLResolveMultisampleFramebuffer;
|
| + functions->fMapBuffer = debugGLMapBuffer;
|
| functions->fMatrixLoadf = noOpGLMatrixLoadf;
|
| functions->fMatrixLoadIdentity = noOpGLMatrixLoadIdentity;
|
| -
|
| + functions->fUnmapBuffer = debugGLUnmapBuffer;
|
| functions->fBindFragDataLocationIndexed =
|
| noOpGLBindFragDataLocationIndexed;
|
|
|
|
|