mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-13 21:40:41 +00:00
Add glMinSampleShading and renderstate value
This commit is contained in:
@@ -208,6 +208,7 @@ enum GLChunkType
|
||||
COLOR_MASKI,
|
||||
SAMPLE_MASK,
|
||||
SAMPLE_COVERAGE,
|
||||
MIN_SAMPLE_SHADING,
|
||||
DEPTH_FUNC,
|
||||
DEPTH_MASK,
|
||||
DEPTH_RANGE,
|
||||
|
||||
@@ -153,6 +153,7 @@ const char *GLChunkNames[] =
|
||||
"glColorMaski",
|
||||
"glSampleMaski",
|
||||
"glSampleCoverage",
|
||||
"glMinSampleShading",
|
||||
"glDepthFunc",
|
||||
"glDepthMask",
|
||||
"glDepthRange",
|
||||
@@ -1885,6 +1886,9 @@ void WrappedOpenGL::ProcessChunk(uint64_t offset, GLChunkType context)
|
||||
case SAMPLE_COVERAGE:
|
||||
Serialise_glSampleCoverage(0.0f, 0);
|
||||
break;
|
||||
case MIN_SAMPLE_SHADING:
|
||||
Serialise_glMinSampleShading(0.0f);
|
||||
break;
|
||||
case DEPTH_FUNC:
|
||||
Serialise_glDepthFunc(eGL_NONE);
|
||||
break;
|
||||
|
||||
@@ -354,6 +354,7 @@ class WrappedOpenGL
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glColorMaski(GLuint buf, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glSampleMaski(GLuint maskNumber, GLbitfield mask));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glSampleCoverage(GLfloat value, GLboolean invert));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glMinSampleShading(GLfloat value));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glClear(GLbitfield mask));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glClearDepth(GLdouble depth));
|
||||
|
||||
@@ -247,6 +247,7 @@ struct GLHookSet
|
||||
PFNGLCOLORMASKIPROC glColorMaski;
|
||||
PFNGLSAMPLEMASKIPROC glSampleMaski;
|
||||
PFNGLSAMPLECOVERAGEPROC glSampleCoverage;
|
||||
PFNGLMINSAMPLESHADINGPROC glMinSampleShading; // aliases glMinSampleShadingARB
|
||||
PFNGLDEPTHRANGEPROC glDepthRange;
|
||||
PFNGLDEPTHRANGEFPROC glDepthRangef;
|
||||
PFNGLDEPTHRANGEINDEXEDPROC glDepthRangeIndexed;
|
||||
|
||||
@@ -267,6 +267,8 @@
|
||||
HookExtension(PFNGLCOLORMASKIPROC, glColorMaski); \
|
||||
HookExtension(PFNGLSAMPLEMASKIPROC, glSampleMaski); \
|
||||
HookExtension(PFNGLSAMPLECOVERAGEPROC, glSampleCoverage); \
|
||||
HookExtension(PFNGLMINSAMPLESHADINGPROC, glMinSampleShading); \
|
||||
HookExtensionAlias(PFNGLMINSAMPLESHADINGPROC, glMinSampleShading, glMinSampleShadingARB); \
|
||||
HookExtension(PFNGLDEPTHRANGEPROC, glDepthRange); \
|
||||
HookExtension(PFNGLDEPTHRANGEFPROC, glDepthRangef); \
|
||||
HookExtension(PFNGLDEPTHRANGEINDEXEDPROC, glDepthRangeIndexed); \
|
||||
@@ -950,6 +952,7 @@
|
||||
HookWrapper5(void, glColorMaski, GLuint, index, GLboolean, r, GLboolean, g, GLboolean, b, GLboolean, a); \
|
||||
HookWrapper2(void, glSampleMaski, GLuint, maskNumber, GLbitfield, mask); \
|
||||
HookWrapper2(void, glSampleCoverage, GLfloat, value, GLboolean, invert); \
|
||||
HookWrapper1(void, glMinSampleShading, GLfloat, value); \
|
||||
HookWrapper2(void, glDepthRange, GLdouble, near, GLdouble, far); \
|
||||
HookWrapper2(void, glDepthRangef, GLfloat, n, GLfloat, f); \
|
||||
HookWrapper3(void, glDepthRangeIndexed, GLuint, index, GLdouble, n, GLdouble, f); \
|
||||
|
||||
@@ -273,6 +273,7 @@ void GLRenderState::FetchState()
|
||||
m_Real->glGetIntegeri_v(eGL_SAMPLE_MASK_VALUE, 0, (GLint *)&SampleMask[0]);
|
||||
m_Real->glGetIntegerv(eGL_SAMPLE_COVERAGE_VALUE, (GLint *)&SampleCoverage);
|
||||
m_Real->glGetIntegerv(eGL_SAMPLE_COVERAGE_INVERT, (GLint *)&boolread); SampleCoverageInvert = (boolread != 0);
|
||||
m_Real->glGetFloatv(eGL_MIN_SAMPLE_SHADING_VALUE, &MinSampleShading);
|
||||
|
||||
m_Real->glGetIntegerv(eGL_LOGIC_OP_MODE, (GLint *)&LogicOp);
|
||||
|
||||
@@ -504,6 +505,7 @@ void GLRenderState::ApplyState()
|
||||
|
||||
m_Real->glSampleMaski(0, (GLbitfield)SampleMask[0]);
|
||||
m_Real->glSampleCoverage(SampleCoverage, SampleCoverageInvert ? GL_TRUE : GL_FALSE);
|
||||
m_Real->glMinSampleShading(MinSampleShading);
|
||||
|
||||
m_Real->glLogicOp(LogicOp);
|
||||
|
||||
@@ -779,6 +781,7 @@ void GLRenderState::Serialise(LogState state, void *ctx, WrappedOpenGL *gl)
|
||||
m_pSerialiser->Serialise<2>("GL_SAMPLE_MASK_VALUE", &SampleMask[0]);
|
||||
m_pSerialiser->Serialise("GL_SAMPLE_COVERAGE_VALUE", SampleCoverage);
|
||||
m_pSerialiser->Serialise("GL_SAMPLE_COVERAGE_INVERT", SampleCoverageInvert);
|
||||
m_pSerialiser->Serialise("GL_MIN_SAMPLE_SHADING", MinSampleShading);
|
||||
|
||||
m_pSerialiser->Serialise("GL_LOGIC_OP_MODE", LogicOp);
|
||||
|
||||
|
||||
@@ -201,6 +201,7 @@ struct GLRenderState
|
||||
uint32_t SampleMask[2];
|
||||
float SampleCoverage;
|
||||
bool SampleCoverageInvert;
|
||||
float MinSampleShading;
|
||||
|
||||
GLenum LogicOp;
|
||||
|
||||
|
||||
@@ -1087,6 +1087,31 @@ void WrappedOpenGL::glSampleCoverage(GLfloat value, GLboolean invert)
|
||||
}
|
||||
}
|
||||
|
||||
bool WrappedOpenGL::Serialise_glMinSampleShading(GLfloat value)
|
||||
{
|
||||
SERIALISE_ELEMENT(float, Value, value);
|
||||
|
||||
if(m_State <= EXECUTING)
|
||||
{
|
||||
m_Real.glMinSampleShading(Value);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glMinSampleShading(GLfloat value)
|
||||
{
|
||||
m_Real.glMinSampleShading(value);
|
||||
|
||||
if(m_State == WRITING_CAPFRAME)
|
||||
{
|
||||
SCOPED_SERIALISE_CONTEXT(MIN_SAMPLE_SHADING);
|
||||
Serialise_glMinSampleShading(value);
|
||||
|
||||
m_ContextRecord->AddChunk(scope.Get());
|
||||
}
|
||||
}
|
||||
|
||||
bool WrappedOpenGL::Serialise_glPatchParameteri(GLenum pname, GLint value)
|
||||
{
|
||||
SERIALISE_ELEMENT(GLenum, PName, pname);
|
||||
|
||||
Reference in New Issue
Block a user