Add glDrawBuffers

This commit is contained in:
baldurk
2014-06-01 10:00:13 +01:00
parent f6880a158e
commit 169fe852be
6 changed files with 37 additions and 0 deletions
+1
View File
@@ -160,6 +160,7 @@ enum GLChunkType
FRAMEBUFFER_TEX,
READ_BUFFER,
BIND_FRAMEBUFFER,
DRAW_BUFFERS,
BLIT_FRAMEBUFFER,
GEN_SAMPLERS,
+28
View File
@@ -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);
+4
View File
@@ -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;
+1
View File
@@ -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));
+1
View File
@@ -136,6 +136,7 @@ struct GLHookSet
PFNGLDISABLEIPROC glDisablei;
PFNGLGENBUFFERSPROC glGenBuffers;
PFNGLBINDBUFFERPROC glBindBuffer;
PFNGLDRAWBUFFERSPROC glDrawBuffers;
PFNGLGENFRAMEBUFFERSPROC glGenFramebuffers;
PFNGLBINDFRAMEBUFFERPROC glBindFramebuffer;
PFNGLFRAMEBUFFERTEXTUREPROC glFramebufferTexture;
+2
View File
@@ -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); \