mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-09-26 07:35:37 +00:00
Remove using some non-GLES features from GL manager/renderstate/replay
This commit is contained in:
committed by
Baldur Karlsson
parent
e110b759d3
commit
1a6b19a314
@@ -642,7 +642,9 @@ void GLResourceManager::PrepareTextureInitialContents(ResourceId liveid, Resourc
|
||||
gl.glGetTextureParameterfvEXT(res.name, details.curType, eGL_TEXTURE_MAX_LOD, &state->maxLod);
|
||||
gl.glGetTextureParameterfvEXT(res.name, details.curType, eGL_TEXTURE_BORDER_COLOR,
|
||||
&state->border[0]);
|
||||
gl.glGetTextureParameterfvEXT(res.name, details.curType, eGL_TEXTURE_LOD_BIAS, &state->lodBias);
|
||||
if(!IsGLES)
|
||||
gl.glGetTextureParameterfvEXT(res.name, details.curType, eGL_TEXTURE_LOD_BIAS,
|
||||
&state->lodBias);
|
||||
|
||||
// CLAMP isn't supported (border texels gone), assume they meant CLAMP_TO_EDGE
|
||||
if(state->wrap[0] == eGL_CLAMP)
|
||||
@@ -2012,7 +2014,9 @@ void GLResourceManager::Apply_InitialState(GLResource live, InitialContentData i
|
||||
(GLint *)&state->wrap[2]);
|
||||
gl.glTextureParameterfvEXT(live.name, details.curType, eGL_TEXTURE_BORDER_COLOR,
|
||||
state->border);
|
||||
gl.glTextureParameterfvEXT(live.name, details.curType, eGL_TEXTURE_LOD_BIAS, &state->lodBias);
|
||||
if(!IsGLES)
|
||||
gl.glTextureParameterfvEXT(live.name, details.curType, eGL_TEXTURE_LOD_BIAS,
|
||||
&state->lodBias);
|
||||
if(details.curType != eGL_TEXTURE_RECTANGLE)
|
||||
{
|
||||
gl.glTextureParameterfvEXT(live.name, details.curType, eGL_TEXTURE_MIN_LOD, &state->minLod);
|
||||
@@ -2145,7 +2149,10 @@ void GLResourceManager::Apply_InitialState(GLResource live, InitialContentData i
|
||||
if(data->ReadBuffer == eGL_BACK || data->ReadBuffer == eGL_FRONT)
|
||||
data->ReadBuffer = eGL_COLOR_ATTACHMENT0;
|
||||
|
||||
gl.glDrawBuffers(ARRAY_COUNT(data->DrawBuffers), data->DrawBuffers);
|
||||
GLuint maxDraws = 0;
|
||||
gl.glGetIntegerv(eGL_MAX_DRAW_BUFFERS, (GLint *)&maxDraws);
|
||||
|
||||
gl.glDrawBuffers(RDCMIN(maxDraws, (GLuint)ARRAY_COUNT(data->DrawBuffers)), data->DrawBuffers);
|
||||
|
||||
gl.glReadBuffer(data->ReadBuffer);
|
||||
|
||||
|
||||
@@ -717,7 +717,8 @@ void GLRenderState::FetchState(void *ctx, WrappedOpenGL *gl)
|
||||
m_Real->glGetFloatv(eGL_POINT_SIZE, &PointSize);
|
||||
}
|
||||
|
||||
m_Real->glGetIntegerv(eGL_PRIMITIVE_RESTART_INDEX, (GLint *)&PrimitiveRestartIndex);
|
||||
if(!IsGLES)
|
||||
m_Real->glGetIntegerv(eGL_PRIMITIVE_RESTART_INDEX, (GLint *)&PrimitiveRestartIndex);
|
||||
if(HasExt[ARB_clip_control])
|
||||
{
|
||||
m_Real->glGetIntegerv(eGL_CLIP_ORIGIN, (GLint *)&ClipOrigin);
|
||||
@@ -728,7 +729,8 @@ void GLRenderState::FetchState(void *ctx, WrappedOpenGL *gl)
|
||||
ClipOrigin = eGL_LOWER_LEFT;
|
||||
ClipDepth = eGL_NEGATIVE_ONE_TO_ONE;
|
||||
}
|
||||
m_Real->glGetIntegerv(eGL_PROVOKING_VERTEX, (GLint *)&ProvokingVertex);
|
||||
if(!IsGLES)
|
||||
m_Real->glGetIntegerv(eGL_PROVOKING_VERTEX, (GLint *)&ProvokingVertex);
|
||||
|
||||
m_Real->glGetIntegerv(eGL_CURRENT_PROGRAM, (GLint *)&Program);
|
||||
|
||||
@@ -1028,14 +1030,17 @@ void GLRenderState::FetchState(void *ctx, WrappedOpenGL *gl)
|
||||
m_Real->glGetFloatv(eGL_COLOR_CLEAR_VALUE, &ColorClearValue.red);
|
||||
|
||||
if(HasExt[ARB_tessellation_shader])
|
||||
{
|
||||
m_Real->glGetIntegerv(eGL_PATCH_VERTICES, &PatchParams.numVerts);
|
||||
else
|
||||
PatchParams.numVerts = 3;
|
||||
|
||||
if(!IsGLES && HasExt[ARB_tessellation_shader])
|
||||
{
|
||||
m_Real->glGetFloatv(eGL_PATCH_DEFAULT_INNER_LEVEL, &PatchParams.defaultInnerLevel[0]);
|
||||
m_Real->glGetFloatv(eGL_PATCH_DEFAULT_OUTER_LEVEL, &PatchParams.defaultOuterLevel[0]);
|
||||
}
|
||||
else
|
||||
{
|
||||
PatchParams.numVerts = 3;
|
||||
PatchParams.defaultInnerLevel[0] = PatchParams.defaultInnerLevel[1] = 1.0f;
|
||||
PatchParams.defaultOuterLevel[0] = PatchParams.defaultOuterLevel[1] =
|
||||
PatchParams.defaultOuterLevel[2] = PatchParams.defaultOuterLevel[3] = 1.0f;
|
||||
@@ -1152,10 +1157,12 @@ void GLRenderState::ApplyState(void *ctx, WrappedOpenGL *gl)
|
||||
m_Real->glPointSize(PointSize);
|
||||
}
|
||||
|
||||
m_Real->glPrimitiveRestartIndex(PrimitiveRestartIndex);
|
||||
if(!IsGLES)
|
||||
m_Real->glPrimitiveRestartIndex(PrimitiveRestartIndex);
|
||||
if(m_Real->glClipControl && HasExt[ARB_clip_control])
|
||||
m_Real->glClipControl(ClipOrigin, ClipDepth);
|
||||
m_Real->glProvokingVertex(ProvokingVertex);
|
||||
if(!IsGLES)
|
||||
m_Real->glProvokingVertex(ProvokingVertex);
|
||||
|
||||
m_Real->glUseProgram(Program);
|
||||
if(HasExt[ARB_separate_shader_objects])
|
||||
@@ -1404,8 +1411,11 @@ void GLRenderState::ApplyState(void *ctx, WrappedOpenGL *gl)
|
||||
if(HasExt[ARB_tessellation_shader])
|
||||
{
|
||||
m_Real->glPatchParameteri(eGL_PATCH_VERTICES, PatchParams.numVerts);
|
||||
m_Real->glPatchParameterfv(eGL_PATCH_DEFAULT_INNER_LEVEL, PatchParams.defaultInnerLevel);
|
||||
m_Real->glPatchParameterfv(eGL_PATCH_DEFAULT_OUTER_LEVEL, PatchParams.defaultOuterLevel);
|
||||
if(!IsGLES)
|
||||
{
|
||||
m_Real->glPatchParameterfv(eGL_PATCH_DEFAULT_INNER_LEVEL, PatchParams.defaultInnerLevel);
|
||||
m_Real->glPatchParameterfv(eGL_PATCH_DEFAULT_OUTER_LEVEL, PatchParams.defaultOuterLevel);
|
||||
}
|
||||
}
|
||||
|
||||
m_Real->glPolygonMode(eGL_FRONT_AND_BACK, PolygonMode);
|
||||
|
||||
@@ -1450,7 +1450,8 @@ void GLReplay::SavePipelineState()
|
||||
|
||||
gl.glGetTexParameterfv(target, eGL_TEXTURE_MAX_LOD, &pipe.Samplers[unit].MaxLOD);
|
||||
gl.glGetTexParameterfv(target, eGL_TEXTURE_MIN_LOD, &pipe.Samplers[unit].MinLOD);
|
||||
gl.glGetTexParameterfv(target, eGL_TEXTURE_LOD_BIAS, &pipe.Samplers[unit].MipLODBias);
|
||||
if(!IsGLES)
|
||||
gl.glGetTexParameterfv(target, eGL_TEXTURE_LOD_BIAS, &pipe.Samplers[unit].MipLODBias);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user