mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-04 17:10:47 +00:00
glMapBuffer/glGetBufferSubData not core ES, use glMapBufferRange.
Mesh viewer for ES now working.
This commit is contained in:
committed by
Baldur Karlsson
parent
5e2717daec
commit
e6d2f1b7a6
@@ -318,16 +318,30 @@ void APIENTRY _glGetNamedBufferParameterivEXT(GLuint buffer, GLenum pname, GLint
|
||||
internalGL->glGetBufferParameteriv(eGL_COPY_READ_BUFFER, pname, params);
|
||||
}
|
||||
|
||||
void APIENTRY _glGetBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, void *data)
|
||||
{
|
||||
void *bufData = internalGL->glMapBufferRange(target, offset, size, eGL_MAP_READ_BIT);
|
||||
if(!bufData)
|
||||
{
|
||||
RDCERR("glMapBufferRange failed to map buffer.");
|
||||
return;
|
||||
}
|
||||
memcpy(data, bufData, (size_t)size);
|
||||
internalGL->glUnmapBuffer(target);
|
||||
}
|
||||
|
||||
void APIENTRY _glGetNamedBufferSubDataEXT(GLuint buffer, GLintptr offset, GLsizeiptr size, void *data)
|
||||
{
|
||||
PushPopBuffer(eGL_COPY_READ_BUFFER, buffer);
|
||||
internalGL->glGetBufferSubData(eGL_COPY_READ_BUFFER, offset, size, data);
|
||||
_glGetBufferSubData(eGL_COPY_READ_BUFFER, offset, size, data);
|
||||
}
|
||||
|
||||
void *APIENTRY _glMapNamedBufferEXT(GLuint buffer, GLenum access)
|
||||
{
|
||||
PushPopBuffer(eGL_COPY_READ_BUFFER, buffer);
|
||||
return internalGL->glMapBuffer(eGL_COPY_READ_BUFFER, access);
|
||||
GLint size;
|
||||
internalGL->glGetBufferParameteriv(eGL_COPY_READ_BUFFER, eGL_BUFFER_SIZE, &size);
|
||||
return internalGL->glMapBufferRange(eGL_COPY_READ_BUFFER, 0, size, eGL_MAP_READ_BIT);
|
||||
}
|
||||
|
||||
void *APIENTRY _glMapNamedBufferRangeEXT(GLuint buffer, GLintptr offset, GLsizeiptr length,
|
||||
@@ -1235,6 +1249,12 @@ void EmulateRequiredExtensions(const GLHookSet *real, GLHookSet *hooks)
|
||||
EMULATE_FUNC(glGetInternalformativ);
|
||||
}
|
||||
|
||||
// APIs that are not available at all in GLES.
|
||||
if(IsGLES)
|
||||
{
|
||||
EMULATE_FUNC(glGetBufferSubData);
|
||||
}
|
||||
|
||||
// Emulate the EXT_dsa functions that we'll need.
|
||||
// Note that many functions are omitted from here, even if we support capturing them. The reason
|
||||
// being we only need to emulate functions that we'll use ourselves either to simplify
|
||||
|
||||
Reference in New Issue
Block a user