mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-07-29 02:41:08 +00:00
Add glDrawBuffers
This commit is contained in:
@@ -160,6 +160,7 @@ enum GLChunkType
|
||||
FRAMEBUFFER_TEX,
|
||||
READ_BUFFER,
|
||||
BIND_FRAMEBUFFER,
|
||||
DRAW_BUFFERS,
|
||||
BLIT_FRAMEBUFFER,
|
||||
|
||||
GEN_SAMPLERS,
|
||||
|
||||
@@ -825,6 +825,34 @@ void WrappedOpenGL::glBindFramebuffer(GLenum target, GLuint framebuffer)
|
||||
m_Real.glBindFramebuffer(target, framebuffer);
|
||||
}
|
||||
|
||||
bool WrappedOpenGL::Serialise_glDrawBuffers(GLsizei n, const GLenum *bufs)
|
||||
{
|
||||
SERIALISE_ELEMENT(uint32_t, num, n);
|
||||
SERIALISE_ELEMENT_ARR(GLenum, buffers, bufs, num);
|
||||
|
||||
if(m_State < WRITING)
|
||||
{
|
||||
m_Real.glDrawBuffers(num, buffers);
|
||||
}
|
||||
|
||||
delete[] buffers;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glDrawBuffers(GLsizei n, const GLenum *bufs)
|
||||
{
|
||||
if(m_State == WRITING_CAPFRAME)
|
||||
{
|
||||
SCOPED_SERIALISE_CONTEXT(DRAW_BUFFERS);
|
||||
Serialise_glDrawBuffers(n, bufs);
|
||||
|
||||
m_ContextRecord->AddChunk(scope.Get());
|
||||
}
|
||||
|
||||
m_Real.glDrawBuffers(n, bufs);
|
||||
}
|
||||
|
||||
bool WrappedOpenGL::Serialise_glBlitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)
|
||||
{
|
||||
SERIALISE_ELEMENT(int32_t, sX0, srcX0);
|
||||
|
||||
@@ -117,6 +117,7 @@ const char *GLChunkNames[] =
|
||||
"glFramebufferTexture",
|
||||
"glReadBuffer",
|
||||
"glBindFramebuffer",
|
||||
"glDrawBuffers",
|
||||
"glBlitFramebuffer",
|
||||
|
||||
"glGenSamplers",
|
||||
@@ -999,6 +1000,9 @@ void WrappedOpenGL::ProcessChunk(uint64_t offset, GLChunkType context)
|
||||
case FRAMEBUFFER_TEX:
|
||||
Serialise_glFramebufferTexture(eGL_UNKNOWN_ENUM, eGL_UNKNOWN_ENUM, 0, 0);
|
||||
break;
|
||||
case DRAW_BUFFERS:
|
||||
Serialise_glDrawBuffers(0, NULL);
|
||||
break;
|
||||
case BLIT_FRAMEBUFFER:
|
||||
Serialise_glBlitFramebuffer(0, 0, 0, 0, 0, 0, 0, 0, 0, eGL_UNKNOWN_ENUM);
|
||||
break;
|
||||
|
||||
@@ -330,6 +330,7 @@ class WrappedOpenGL
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glReadBuffer(GLenum mode));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glGenFramebuffers(GLsizei n, GLuint *framebuffers));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glDrawBuffers(GLsizei n, const GLenum *bufs));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glBindFramebuffer(GLenum target, GLuint framebuffer));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glFramebufferTexture(GLenum target, GLenum attachment, GLuint texture, GLint level));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glDeleteFramebuffers(GLsizei n, const GLuint *framebuffers));
|
||||
|
||||
@@ -136,6 +136,7 @@ struct GLHookSet
|
||||
PFNGLDISABLEIPROC glDisablei;
|
||||
PFNGLGENBUFFERSPROC glGenBuffers;
|
||||
PFNGLBINDBUFFERPROC glBindBuffer;
|
||||
PFNGLDRAWBUFFERSPROC glDrawBuffers;
|
||||
PFNGLGENFRAMEBUFFERSPROC glGenFramebuffers;
|
||||
PFNGLBINDFRAMEBUFFERPROC glBindFramebuffer;
|
||||
PFNGLFRAMEBUFFERTEXTUREPROC glFramebufferTexture;
|
||||
|
||||
@@ -148,6 +148,7 @@
|
||||
HookExtension(PFNGLDISABLEIPROC, glDisablei); \
|
||||
HookExtension(PFNGLGENBUFFERSPROC, glGenBuffers); \
|
||||
HookExtension(PFNGLBINDBUFFERPROC, glBindBuffer); \
|
||||
HookExtension(PFNGLDRAWBUFFERSPROC, glDrawBuffers); \
|
||||
HookExtension(PFNGLGENFRAMEBUFFERSPROC, glGenFramebuffers); \
|
||||
HookExtension(PFNGLBINDFRAMEBUFFERPROC, glBindFramebuffer); \
|
||||
HookExtension(PFNGLFRAMEBUFFERTEXTUREPROC, glFramebufferTexture); \
|
||||
@@ -385,6 +386,7 @@
|
||||
HookWrapper2(void, glDisablei, GLenum, target, GLuint, index); \
|
||||
HookWrapper2(void, glGenBuffers, GLsizei, n, GLuint *, buffers); \
|
||||
HookWrapper2(void, glBindBuffer, GLenum, target, GLuint, buffer); \
|
||||
HookWrapper2(void, glDrawBuffers, GLsizei, n, const GLenum *, bufs); \
|
||||
HookWrapper2(void, glGenFramebuffers, GLsizei, n, GLuint *, framebuffers); \
|
||||
HookWrapper2(void, glBindFramebuffer, GLenum, target, GLuint, framebuffer); \
|
||||
HookWrapper4(void, glFramebufferTexture, GLenum, target, GLenum, attachment, GLuint, texture, GLint, level); \
|
||||
|
||||
Reference in New Issue
Block a user