mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-07-08 08:40:55 +00:00
Implement glPointParameter*
This commit is contained in:
@@ -181,6 +181,10 @@ enum GLChunkType
|
||||
DEPTH_BOUNDS,
|
||||
PATCH_PARAMI,
|
||||
PATCH_PARAMFV,
|
||||
POINT_PARAMF,
|
||||
POINT_PARAMFV,
|
||||
POINT_PARAMI,
|
||||
POINT_PARAMIV,
|
||||
VIEWPORT,
|
||||
VIEWPORT_ARRAY,
|
||||
SCISSOR,
|
||||
|
||||
@@ -134,6 +134,10 @@ const char *GLChunkNames[] =
|
||||
"glDepthBoundsEXT",
|
||||
"glPatchParameteri",
|
||||
"glPatchParameterfv",
|
||||
"glPointParameterf",
|
||||
"glPointParameterfv",
|
||||
"glPointParameteri",
|
||||
"glPointParameteriv",
|
||||
"glViewport",
|
||||
"glViewportArrayv",
|
||||
"glScissor",
|
||||
@@ -1668,6 +1672,18 @@ void WrappedOpenGL::ProcessChunk(uint64_t offset, GLChunkType context)
|
||||
case PATCH_PARAMFV:
|
||||
Serialise_glPatchParameterfv(eGL_NONE, NULL);
|
||||
break;
|
||||
case POINT_PARAMF:
|
||||
Serialise_glPointParameterf(eGL_NONE, 0.0f);
|
||||
break;
|
||||
case POINT_PARAMFV:
|
||||
Serialise_glPointParameterfv(eGL_NONE, NULL);
|
||||
break;
|
||||
case POINT_PARAMI:
|
||||
Serialise_glPointParameteri(eGL_NONE, 0);
|
||||
break;
|
||||
case POINT_PARAMIV:
|
||||
Serialise_glPointParameteriv(eGL_NONE, NULL);
|
||||
break;
|
||||
case VIEWPORT:
|
||||
Serialise_glViewport(0, 0, 0, 0);
|
||||
break;
|
||||
|
||||
@@ -370,6 +370,10 @@ class WrappedOpenGL
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glPolygonOffset(GLfloat factor, GLfloat units));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glPatchParameteri(GLenum pname, GLint param));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glPatchParameterfv(GLenum pname, const GLfloat *params));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glPointParameterf(GLenum pname, GLfloat param));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glPointParameterfv(GLenum pname, const GLfloat *params));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glPointParameteri(GLenum pname, GLint param));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glPointParameteriv(GLenum pname, const GLint *params));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glTexImage1D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid * pixels));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glTexImage3D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid * pixels));
|
||||
|
||||
@@ -321,6 +321,10 @@ struct GLHookSet
|
||||
PFNGLSAMPLERPARAMETERIUIVPROC glSamplerParameterIuiv;
|
||||
PFNGLPATCHPARAMETERIPROC glPatchParameteri;
|
||||
PFNGLPATCHPARAMETERFVPROC glPatchParameterfv;
|
||||
PFNGLPOINTPARAMETERFPROC glPointParameterf;
|
||||
PFNGLPOINTPARAMETERFVPROC glPointParameterfv;
|
||||
PFNGLPOINTPARAMETERIPROC glPointParameteri;
|
||||
PFNGLPOINTPARAMETERIVPROC glPointParameteriv;
|
||||
PFNGLDISPATCHCOMPUTEPROC glDispatchCompute;
|
||||
PFNGLMEMORYBARRIERPROC glMemoryBarrier;
|
||||
PFNGLCLEARBUFFERFVPROC glClearBufferfv;
|
||||
|
||||
@@ -240,6 +240,7 @@
|
||||
HookExtension(PFNGLBLENDFUNCSEPARATEIPROC, glBlendFuncSeparatei); \
|
||||
HookExtension(PFNGLBLENDEQUATIONPROC, glBlendEquation); \
|
||||
HookExtension(PFNGLBLENDEQUATIONIPROC, glBlendEquationi); \
|
||||
HookExtensionAlias(PFNGLBLENDEQUATIONIPROC, glBlendEquationi, glBlendEquationiARB); \
|
||||
HookExtension(PFNGLBLENDEQUATIONSEPARATEPROC, glBlendEquationSeparate); \
|
||||
HookExtension(PFNGLBLENDEQUATIONSEPARATEIPROC, glBlendEquationSeparatei); \
|
||||
HookExtension(PFNGLSTENCILFUNCSEPARATEPROC, glStencilFuncSeparate); \
|
||||
@@ -343,6 +344,10 @@
|
||||
HookExtension(PFNGLSAMPLERPARAMETERIUIVPROC, glSamplerParameterIuiv); \
|
||||
HookExtension(PFNGLPATCHPARAMETERIPROC, glPatchParameteri); \
|
||||
HookExtension(PFNGLPATCHPARAMETERFVPROC, glPatchParameterfv); \
|
||||
HookExtension(PFNGLPOINTPARAMETERFPROC, glPointParameterf); \
|
||||
HookExtension(PFNGLPOINTPARAMETERFVPROC, glPointParameterfv); \
|
||||
HookExtension(PFNGLPOINTPARAMETERIPROC, glPointParameteri); \
|
||||
HookExtension(PFNGLPOINTPARAMETERIVPROC, glPointParameteriv); \
|
||||
HookExtension(PFNGLDISPATCHCOMPUTEPROC, glDispatchCompute); \
|
||||
HookExtension(PFNGLMEMORYBARRIERPROC, glMemoryBarrier); \
|
||||
HookExtension(PFNGLCLEARBUFFERFVPROC, glClearBufferfv); \
|
||||
@@ -867,6 +872,10 @@
|
||||
HookWrapper3(void, glSamplerParameterIuiv, GLuint, sampler, GLenum, pname, const GLuint *, param); \
|
||||
HookWrapper2(void, glPatchParameteri, GLenum, pname, GLint, value); \
|
||||
HookWrapper2(void, glPatchParameterfv, GLenum, pname, const GLfloat *, values); \
|
||||
HookWrapper2(void, glPointParameterf, GLenum, pname, GLfloat, param); \
|
||||
HookWrapper2(void, glPointParameterfv, GLenum, pname, const GLfloat *, params); \
|
||||
HookWrapper2(void, glPointParameteri, GLenum, pname, GLint, param); \
|
||||
HookWrapper2(void, glPointParameteriv, GLenum, pname, const GLint *, params); \
|
||||
HookWrapper3(void, glDispatchCompute, GLuint, num_groups_x, GLuint, num_groups_y, GLuint, num_groups_z); \
|
||||
HookWrapper1(void, glMemoryBarrier, GLbitfield, barriers); \
|
||||
HookWrapper3(void, glClearBufferfv, GLenum, buffer, GLint, drawbuffer, const GLfloat *, value); \
|
||||
|
||||
@@ -101,6 +101,9 @@ void GLRenderState::FetchState()
|
||||
m_Real->glGetIntegeri_v(eGL_VERTEX_BINDING_DIVISOR, i, (GLint *)&VertexBuffers[i].Divisor);
|
||||
}
|
||||
|
||||
m_Real->glGetFloatv(eGL_POINT_FADE_THRESHOLD_SIZE, &PointFadeThresholdSize);
|
||||
m_Real->glGetIntegerv(eGL_POINT_SPRITE_COORD_ORIGIN, (GLint*)&PointSpriteOrigin);
|
||||
|
||||
m_Real->glGetIntegerv(eGL_CURRENT_PROGRAM, (GLint *)&Program);
|
||||
m_Real->glGetIntegerv(eGL_PROGRAM_PIPELINE_BINDING, (GLint *)&Pipeline);
|
||||
|
||||
@@ -282,6 +285,9 @@ void GLRenderState::ApplyState()
|
||||
m_Real->glBindVertexBuffer(i, VertexBuffers[i].Buffer, (GLintptr)VertexBuffers[i].Offset, (GLsizei)VertexBuffers[i].Stride);
|
||||
m_Real->glVertexBindingDivisor(i, VertexBuffers[i].Divisor);
|
||||
}
|
||||
|
||||
m_Real->glPointParameterf(eGL_POINT_FADE_THRESHOLD_SIZE, PointFadeThresholdSize);
|
||||
m_Real->glPointParameteri(eGL_POINT_SPRITE_COORD_ORIGIN, (GLint)PointSpriteOrigin);
|
||||
|
||||
m_Real->glUseProgram(Program);
|
||||
m_Real->glBindProgramPipeline(Pipeline);
|
||||
@@ -432,6 +438,9 @@ void GLRenderState::Clear()
|
||||
RDCEraseEl(VAO);
|
||||
RDCEraseEl(VertexBuffers);
|
||||
|
||||
RDCEraseEl(PointFadeThresholdSize);
|
||||
RDCEraseEl(PointSpriteOrigin);
|
||||
|
||||
RDCEraseEl(Program);
|
||||
RDCEraseEl(Pipeline);
|
||||
|
||||
@@ -511,6 +520,9 @@ void GLRenderState::Serialise(LogState state, void *ctx, WrappedOpenGL *gl)
|
||||
if(state < WRITING && ID != ResourceId()) VertexBuffers[i].Buffer = rm->GetLiveResource(ID).name;
|
||||
}
|
||||
|
||||
m_pSerialiser->Serialise("GL_POINT_FADE_THRESHOLD_SIZE", PointFadeThresholdSize);
|
||||
m_pSerialiser->Serialise("GL_POINT_SPRITE_COORD_ORIGIN", PointSpriteOrigin);
|
||||
|
||||
for(size_t i=0; i < ARRAY_COUNT(BufferBindings); i++)
|
||||
{
|
||||
ResourceId ID = ResourceId();
|
||||
|
||||
@@ -106,6 +106,9 @@ struct GLRenderState
|
||||
} VertexBuffers[16];
|
||||
GLuint VAO;
|
||||
|
||||
float PointFadeThresholdSize;
|
||||
GLenum PointSpriteOrigin;
|
||||
|
||||
uint32_t BufferBindings[10];
|
||||
struct IdxRangeBuffer
|
||||
{
|
||||
|
||||
@@ -952,6 +952,110 @@ void WrappedOpenGL::glPatchParameterfv(GLenum pname, const GLfloat *values)
|
||||
}
|
||||
}
|
||||
|
||||
bool WrappedOpenGL::Serialise_glPointParameteri(GLenum pname, GLint param)
|
||||
{
|
||||
SERIALISE_ELEMENT(GLenum, PName, pname);
|
||||
SERIALISE_ELEMENT(int32_t, Param, param);
|
||||
|
||||
if(m_State <= EXECUTING)
|
||||
{
|
||||
m_Real.glPointParameteri(PName, Param);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glPointParameteri(GLenum pname, GLint param)
|
||||
{
|
||||
m_Real.glPointParameteri(pname, param);
|
||||
|
||||
if(m_State == WRITING_CAPFRAME)
|
||||
{
|
||||
SCOPED_SERIALISE_CONTEXT(POINT_PARAMI);
|
||||
Serialise_glPointParameteri(pname, param);
|
||||
|
||||
m_ContextRecord->AddChunk(scope.Get());
|
||||
}
|
||||
}
|
||||
|
||||
bool WrappedOpenGL::Serialise_glPointParameteriv(GLenum pname, const GLint *params)
|
||||
{
|
||||
SERIALISE_ELEMENT(GLenum, PName, pname);
|
||||
SERIALISE_ELEMENT(int32_t, Param, *params);
|
||||
|
||||
if(m_State <= EXECUTING)
|
||||
{
|
||||
m_Real.glPointParameteriv(PName, &Param);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glPointParameteriv(GLenum pname, const GLint *params)
|
||||
{
|
||||
m_Real.glPointParameteriv(pname, params);
|
||||
|
||||
if(m_State == WRITING_CAPFRAME)
|
||||
{
|
||||
SCOPED_SERIALISE_CONTEXT(POINT_PARAMIV);
|
||||
Serialise_glPointParameteriv(pname, params);
|
||||
|
||||
m_ContextRecord->AddChunk(scope.Get());
|
||||
}
|
||||
}
|
||||
|
||||
bool WrappedOpenGL::Serialise_glPointParameterf(GLenum pname, GLfloat param)
|
||||
{
|
||||
SERIALISE_ELEMENT(GLenum, PName, pname);
|
||||
SERIALISE_ELEMENT(float, Param, param);
|
||||
|
||||
if(m_State <= EXECUTING)
|
||||
{
|
||||
m_Real.glPointParameterf(PName, Param);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glPointParameterf(GLenum pname, GLfloat param)
|
||||
{
|
||||
m_Real.glPointParameterf(pname, param);
|
||||
|
||||
if(m_State == WRITING_CAPFRAME)
|
||||
{
|
||||
SCOPED_SERIALISE_CONTEXT(POINT_PARAMF);
|
||||
Serialise_glPointParameterf(pname, param);
|
||||
|
||||
m_ContextRecord->AddChunk(scope.Get());
|
||||
}
|
||||
}
|
||||
|
||||
bool WrappedOpenGL::Serialise_glPointParameterfv(GLenum pname, const GLfloat *params)
|
||||
{
|
||||
SERIALISE_ELEMENT(GLenum, PName, pname);
|
||||
SERIALISE_ELEMENT(float, Param, *params);
|
||||
|
||||
if(m_State <= EXECUTING)
|
||||
{
|
||||
m_Real.glPointParameterfv(PName, &Param);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glPointParameterfv(GLenum pname, const GLfloat *params)
|
||||
{
|
||||
m_Real.glPointParameterfv(pname, params);
|
||||
|
||||
if(m_State == WRITING_CAPFRAME)
|
||||
{
|
||||
SCOPED_SERIALISE_CONTEXT(POINT_PARAMFV);
|
||||
Serialise_glPointParameterfv(pname, params);
|
||||
|
||||
m_ContextRecord->AddChunk(scope.Get());
|
||||
}
|
||||
}
|
||||
|
||||
bool WrappedOpenGL::Serialise_glViewport(GLint x, GLint y, GLsizei width, GLsizei height)
|
||||
{
|
||||
SERIALISE_ELEMENT(int32_t, X, x);
|
||||
|
||||
Reference in New Issue
Block a user