mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-28 12:51:03 +00:00
Implement glBlendEquation{,i}
This commit is contained in:
@@ -160,6 +160,8 @@ enum GLChunkType
|
||||
BLEND_COLOR,
|
||||
BLEND_FUNC_SEP,
|
||||
BLEND_FUNC_SEPI,
|
||||
BLEND_EQ,
|
||||
BLEND_EQI,
|
||||
BLEND_EQ_SEP,
|
||||
BLEND_EQ_SEPI,
|
||||
STENCIL_OP,
|
||||
|
||||
@@ -113,6 +113,8 @@ const char *GLChunkNames[] =
|
||||
"glBlendColor",
|
||||
"glBlendFuncSeparate",
|
||||
"glBlendFuncSeparatei",
|
||||
"glBlendEquation",
|
||||
"glBlendEquationi",
|
||||
"glBlendEquationSeparate",
|
||||
"glBlendEquationSeparatei",
|
||||
"glStencilOp",
|
||||
@@ -1601,6 +1603,12 @@ void WrappedOpenGL::ProcessChunk(uint64_t offset, GLChunkType context)
|
||||
case BLEND_FUNC_SEPI:
|
||||
Serialise_glBlendFuncSeparatei(0, eGL_NONE, eGL_NONE, eGL_NONE, eGL_NONE);
|
||||
break;
|
||||
case BLEND_EQ:
|
||||
Serialise_glBlendEquation(eGL_NONE);
|
||||
break;
|
||||
case BLEND_EQI:
|
||||
Serialise_glBlendEquationi(0, eGL_NONE);
|
||||
break;
|
||||
case BLEND_EQ_SEP:
|
||||
Serialise_glBlendEquationSeparate(eGL_NONE, eGL_NONE);
|
||||
break;
|
||||
|
||||
@@ -331,6 +331,8 @@ class WrappedOpenGL
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glBlendColor(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glBlendFuncSeparate(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glBlendFuncSeparatei(GLuint buf, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glBlendEquation(GLenum mode));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glBlendEquationi(GLuint buf, GLenum mode));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glBlendEquationSeparatei(GLuint buf, GLenum modeRGB, GLenum modeAlpha));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glStencilFunc(GLenum func, GLint ref, GLuint mask));
|
||||
|
||||
@@ -217,6 +217,8 @@ struct GLHookSet
|
||||
PFNGLBLENDFUNCIPROC glBlendFunci;
|
||||
PFNGLBLENDFUNCSEPARATEPROC glBlendFuncSeparate;
|
||||
PFNGLBLENDFUNCSEPARATEIPROC glBlendFuncSeparatei;
|
||||
PFNGLBLENDEQUATIONPROC glBlendEquation;
|
||||
PFNGLBLENDEQUATIONIPROC glBlendEquationi; // aliases glBlendEquationiARB
|
||||
PFNGLBLENDEQUATIONSEPARATEPROC glBlendEquationSeparate;
|
||||
PFNGLBLENDEQUATIONSEPARATEIPROC glBlendEquationSeparatei;
|
||||
PFNGLSTENCILFUNCSEPARATEPROC glStencilFuncSeparate;
|
||||
|
||||
@@ -238,6 +238,8 @@
|
||||
HookExtension(PFNGLBLENDFUNCIPROC, glBlendFunci); \
|
||||
HookExtension(PFNGLBLENDFUNCSEPARATEPROC, glBlendFuncSeparate); \
|
||||
HookExtension(PFNGLBLENDFUNCSEPARATEIPROC, glBlendFuncSeparatei); \
|
||||
HookExtension(PFNGLBLENDEQUATIONPROC, glBlendEquation); \
|
||||
HookExtension(PFNGLBLENDEQUATIONIPROC, glBlendEquationi); \
|
||||
HookExtension(PFNGLBLENDEQUATIONSEPARATEPROC, glBlendEquationSeparate); \
|
||||
HookExtension(PFNGLBLENDEQUATIONSEPARATEIPROC, glBlendEquationSeparatei); \
|
||||
HookExtension(PFNGLSTENCILFUNCSEPARATEPROC, glStencilFuncSeparate); \
|
||||
@@ -761,6 +763,8 @@
|
||||
HookWrapper3(void, glBlendFunci, GLuint, buf, GLenum, src, GLenum, dst); \
|
||||
HookWrapper4(void, glBlendFuncSeparate, GLenum, sfactorRGB, GLenum, dfactorRGB, GLenum, sfactorAlpha, GLenum, dfactorAlpha); \
|
||||
HookWrapper5(void, glBlendFuncSeparatei, GLuint, buf, GLenum, srcRGB, GLenum, dstRGB, GLenum, srcAlpha, GLenum, dstAlpha); \
|
||||
HookWrapper1(void, glBlendEquation, GLenum, mode); \
|
||||
HookWrapper2(void, glBlendEquationi, GLuint, buf, GLenum, mode); \
|
||||
HookWrapper2(void, glBlendEquationSeparate, GLenum, modeRGB, GLenum, modeAlpha); \
|
||||
HookWrapper3(void, glBlendEquationSeparatei, GLuint, buf, GLenum, modeRGB, GLenum, modeAlpha); \
|
||||
HookWrapper4(void, glStencilFuncSeparate, GLenum, face, GLenum, func, GLint, ref, GLuint, mask); \
|
||||
|
||||
@@ -165,6 +165,57 @@ void WrappedOpenGL::glBlendFuncSeparatei(GLuint buf, GLenum sfactorRGB, GLenum d
|
||||
}
|
||||
}
|
||||
|
||||
bool WrappedOpenGL::Serialise_glBlendEquation(GLenum mode)
|
||||
{
|
||||
SERIALISE_ELEMENT(GLenum, m, mode);
|
||||
|
||||
if(m_State <= EXECUTING)
|
||||
{
|
||||
m_Real.glBlendEquation(m);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glBlendEquation(GLenum mode)
|
||||
{
|
||||
m_Real.glBlendEquation(mode);
|
||||
|
||||
if(m_State == WRITING_CAPFRAME)
|
||||
{
|
||||
SCOPED_SERIALISE_CONTEXT(BLEND_EQ);
|
||||
Serialise_glBlendEquation(mode);
|
||||
|
||||
m_ContextRecord->AddChunk(scope.Get());
|
||||
}
|
||||
}
|
||||
|
||||
bool WrappedOpenGL::Serialise_glBlendEquationi(GLuint buf, GLenum mode)
|
||||
{
|
||||
SERIALISE_ELEMENT(uint32_t, b, buf);
|
||||
SERIALISE_ELEMENT(GLenum, m, mode);
|
||||
|
||||
if(m_State <= EXECUTING)
|
||||
{
|
||||
m_Real.glBlendEquationi(b, m);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glBlendEquationi(GLuint buf, GLenum mode)
|
||||
{
|
||||
m_Real.glBlendEquationi(buf, mode);
|
||||
|
||||
if(m_State == WRITING_CAPFRAME)
|
||||
{
|
||||
SCOPED_SERIALISE_CONTEXT(BLEND_EQI);
|
||||
Serialise_glBlendEquationi(buf, mode);
|
||||
|
||||
m_ContextRecord->AddChunk(scope.Get());
|
||||
}
|
||||
}
|
||||
|
||||
bool WrappedOpenGL::Serialise_glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha)
|
||||
{
|
||||
SERIALISE_ELEMENT(GLenum, m1, modeRGB);
|
||||
|
||||
Reference in New Issue
Block a user