Add glMinSampleShading and renderstate value

This commit is contained in:
baldurk
2014-11-25 21:14:16 +00:00
parent f4851a292a
commit 67140ee100
8 changed files with 39 additions and 0 deletions
+1
View File
@@ -208,6 +208,7 @@ enum GLChunkType
COLOR_MASKI,
SAMPLE_MASK,
SAMPLE_COVERAGE,
MIN_SAMPLE_SHADING,
DEPTH_FUNC,
DEPTH_MASK,
DEPTH_RANGE,
+4
View File
@@ -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;
+1
View File
@@ -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));
+1
View File
@@ -247,6 +247,7 @@ struct GLHookSet
PFNGLCOLORMASKIPROC glColorMaski;
PFNGLSAMPLEMASKIPROC glSampleMaski;
PFNGLSAMPLECOVERAGEPROC glSampleCoverage;
PFNGLMINSAMPLESHADINGPROC glMinSampleShading; // aliases glMinSampleShadingARB
PFNGLDEPTHRANGEPROC glDepthRange;
PFNGLDEPTHRANGEFPROC glDepthRangef;
PFNGLDEPTHRANGEINDEXEDPROC glDepthRangeIndexed;
+3
View File
@@ -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); \
+3
View File
@@ -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);
+1
View File
@@ -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);