mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-12 21:10:42 +00:00
Prefer glFramebufferTexture2D over glFramebufferTexture
* The former is just as good for our purposes (we almost always bind 2D textures) and is more portable/widely available.
This commit is contained in:
@@ -227,7 +227,6 @@ bool ValidateFunctionPointers(const GLHookSet &real)
|
||||
CHECK_PRESENT(glEnablei)
|
||||
CHECK_PRESENT(glEnableVertexAttribArray)
|
||||
CHECK_PRESENT(glEndQuery)
|
||||
CHECK_PRESENT(glFramebufferTexture)
|
||||
CHECK_PRESENT(glFramebufferTexture2D)
|
||||
CHECK_PRESENT(glFramebufferTextureLayer)
|
||||
CHECK_PRESENT(glFrontFace)
|
||||
|
||||
@@ -412,7 +412,8 @@ void GLReplay::InitDebugData()
|
||||
gl.glTexParameteri(eGL_TEXTURE_2D, eGL_TEXTURE_MAG_FILTER, eGL_NEAREST);
|
||||
gl.glTexParameteri(eGL_TEXTURE_2D, eGL_TEXTURE_WRAP_S, eGL_CLAMP_TO_EDGE);
|
||||
gl.glTexParameteri(eGL_TEXTURE_2D, eGL_TEXTURE_WRAP_T, eGL_CLAMP_TO_EDGE);
|
||||
gl.glFramebufferTexture(eGL_FRAMEBUFFER, eGL_COLOR_ATTACHMENT0, DebugData.pickPixelTex, 0);
|
||||
gl.glFramebufferTexture2D(eGL_FRAMEBUFFER, eGL_COLOR_ATTACHMENT0, eGL_TEXTURE_2D,
|
||||
DebugData.pickPixelTex, 0);
|
||||
|
||||
gl.glGenVertexArrays(1, &DebugData.emptyVAO);
|
||||
gl.glBindVertexArray(DebugData.emptyVAO);
|
||||
|
||||
@@ -713,10 +713,11 @@ void WrappedOpenGL::Initialise(GLInitParams ¶ms, uint64_t sectionVersion)
|
||||
}
|
||||
|
||||
if(stencil)
|
||||
gl.glFramebufferTexture(eGL_FRAMEBUFFER, eGL_DEPTH_STENCIL_ATTACHMENT, m_FakeBB_DepthStencil,
|
||||
0);
|
||||
gl.glFramebufferTexture2D(eGL_FRAMEBUFFER, eGL_DEPTH_STENCIL_ATTACHMENT, eGL_TEXTURE_2D,
|
||||
m_FakeBB_DepthStencil, 0);
|
||||
else
|
||||
gl.glFramebufferTexture(eGL_FRAMEBUFFER, eGL_DEPTH_ATTACHMENT, m_FakeBB_DepthStencil, 0);
|
||||
gl.glFramebufferTexture2D(eGL_FRAMEBUFFER, eGL_DEPTH_ATTACHMENT, eGL_TEXTURE_2D,
|
||||
m_FakeBB_DepthStencil, 0);
|
||||
}
|
||||
|
||||
// give the backbuffer a default clear color
|
||||
|
||||
@@ -51,7 +51,8 @@ void GLReplay::CreateOutputWindowBackbuffer(OutputWindow &outwin, bool depth)
|
||||
gl.glTexParameteri(eGL_TEXTURE_2D, eGL_TEXTURE_MAG_FILTER, eGL_NEAREST);
|
||||
gl.glTexParameteri(eGL_TEXTURE_2D, eGL_TEXTURE_WRAP_S, eGL_CLAMP_TO_EDGE);
|
||||
gl.glTexParameteri(eGL_TEXTURE_2D, eGL_TEXTURE_WRAP_T, eGL_CLAMP_TO_EDGE);
|
||||
gl.glFramebufferTexture(eGL_FRAMEBUFFER, eGL_COLOR_ATTACHMENT0, outwin.BlitData.backbuffer, 0);
|
||||
gl.glFramebufferTexture2D(eGL_FRAMEBUFFER, eGL_COLOR_ATTACHMENT0, eGL_TEXTURE_2D,
|
||||
outwin.BlitData.backbuffer, 0);
|
||||
|
||||
if(depth)
|
||||
{
|
||||
@@ -144,8 +145,8 @@ void GLReplay::BindOutputWindow(uint64_t id, bool depth)
|
||||
m_pDriver->glBindFramebuffer(eGL_FRAMEBUFFER, outw.BlitData.windowFBO);
|
||||
m_pDriver->glViewport(0, 0, outw.width, outw.height);
|
||||
|
||||
m_pDriver->glFramebufferTexture(
|
||||
eGL_FRAMEBUFFER, eGL_DEPTH_ATTACHMENT,
|
||||
m_pDriver->glFramebufferTexture2D(
|
||||
eGL_FRAMEBUFFER, eGL_DEPTH_ATTACHMENT, eGL_TEXTURE_2D,
|
||||
depth && outw.BlitData.depthstencil ? outw.BlitData.depthstencil : 0, 0);
|
||||
|
||||
DebugData.outWidth = float(outw.width);
|
||||
|
||||
@@ -305,7 +305,8 @@ ResourceId GLReplay::RenderOverlay(ResourceId texid, CompType typeHint, DebugOve
|
||||
gl.glTexParameteri(texBindingEnum, eGL_TEXTURE_WRAP_S, eGL_CLAMP_TO_EDGE);
|
||||
gl.glTexParameteri(texBindingEnum, eGL_TEXTURE_WRAP_T, eGL_CLAMP_TO_EDGE);
|
||||
}
|
||||
gl.glFramebufferTexture(eGL_FRAMEBUFFER, eGL_COLOR_ATTACHMENT0, DebugData.overlayTex, 0);
|
||||
gl.glFramebufferTexture2D(eGL_FRAMEBUFFER, eGL_COLOR_ATTACHMENT0, eGL_TEXTURE_2D,
|
||||
DebugData.overlayTex, 0);
|
||||
|
||||
gl.glBindTexture(texBindingEnum, curTex);
|
||||
}
|
||||
@@ -637,7 +638,8 @@ ResourceId GLReplay::RenderOverlay(ResourceId texid, CompType typeHint, DebugOve
|
||||
if(curDepth != 0 && curDepth == curStencil)
|
||||
{
|
||||
if(layer == 0)
|
||||
gl.glFramebufferTexture(eGL_DRAW_FRAMEBUFFER, eGL_DEPTH_STENCIL_ATTACHMENT, depthCopy, mip);
|
||||
gl.glFramebufferTexture2D(eGL_DRAW_FRAMEBUFFER, eGL_DEPTH_STENCIL_ATTACHMENT,
|
||||
eGL_TEXTURE_2D, depthCopy, mip);
|
||||
else
|
||||
gl.glFramebufferTextureLayer(eGL_DRAW_FRAMEBUFFER, eGL_DEPTH_STENCIL_ATTACHMENT, depthCopy,
|
||||
mip, layer);
|
||||
@@ -645,7 +647,8 @@ ResourceId GLReplay::RenderOverlay(ResourceId texid, CompType typeHint, DebugOve
|
||||
else if(curDepth != 0)
|
||||
{
|
||||
if(layer == 0)
|
||||
gl.glFramebufferTexture(eGL_DRAW_FRAMEBUFFER, eGL_DEPTH_ATTACHMENT, depthCopy, mip);
|
||||
gl.glFramebufferTexture2D(eGL_DRAW_FRAMEBUFFER, eGL_DEPTH_ATTACHMENT, eGL_TEXTURE_2D,
|
||||
depthCopy, mip);
|
||||
else
|
||||
gl.glFramebufferTextureLayer(eGL_DRAW_FRAMEBUFFER, eGL_DEPTH_ATTACHMENT, depthCopy, mip,
|
||||
layer);
|
||||
@@ -653,7 +656,8 @@ ResourceId GLReplay::RenderOverlay(ResourceId texid, CompType typeHint, DebugOve
|
||||
else if(curStencil != 0)
|
||||
{
|
||||
if(layer == 0)
|
||||
gl.glFramebufferTexture(eGL_DRAW_FRAMEBUFFER, eGL_STENCIL_ATTACHMENT, stencilCopy, mip);
|
||||
gl.glFramebufferTexture2D(eGL_DRAW_FRAMEBUFFER, eGL_STENCIL_ATTACHMENT, eGL_TEXTURE_2D,
|
||||
stencilCopy, mip);
|
||||
else
|
||||
gl.glFramebufferTextureLayer(eGL_DRAW_FRAMEBUFFER, eGL_STENCIL_ATTACHMENT, stencilCopy, mip,
|
||||
layer);
|
||||
@@ -697,11 +701,12 @@ ResourceId GLReplay::RenderOverlay(ResourceId texid, CompType typeHint, DebugOve
|
||||
|
||||
// unset depth/stencil textures from overlay FBO and delete temp depth/stencil
|
||||
if(curDepth != 0 && curDepth == curStencil)
|
||||
gl.glFramebufferTexture(eGL_DRAW_FRAMEBUFFER, eGL_DEPTH_STENCIL_ATTACHMENT, 0, 0);
|
||||
gl.glFramebufferTexture2D(eGL_DRAW_FRAMEBUFFER, eGL_DEPTH_STENCIL_ATTACHMENT, eGL_TEXTURE_2D,
|
||||
0, 0);
|
||||
else if(curDepth != 0)
|
||||
gl.glFramebufferTexture(eGL_DRAW_FRAMEBUFFER, eGL_DEPTH_ATTACHMENT, 0, 0);
|
||||
gl.glFramebufferTexture2D(eGL_DRAW_FRAMEBUFFER, eGL_DEPTH_ATTACHMENT, eGL_TEXTURE_2D, 0, 0);
|
||||
else if(curStencil != 0)
|
||||
gl.glFramebufferTexture(eGL_DRAW_FRAMEBUFFER, eGL_STENCIL_ATTACHMENT, 0, 0);
|
||||
gl.glFramebufferTexture2D(eGL_DRAW_FRAMEBUFFER, eGL_STENCIL_ATTACHMENT, eGL_TEXTURE_2D, 0, 0);
|
||||
if(depthCopy != 0)
|
||||
gl.glDeleteTextures(1, &depthCopy);
|
||||
if(stencilCopy != 0)
|
||||
@@ -906,7 +911,8 @@ ResourceId GLReplay::RenderOverlay(ResourceId texid, CompType typeHint, DebugOve
|
||||
|
||||
// bind our FBO
|
||||
gl.glBindFramebuffer(eGL_DRAW_FRAMEBUFFER, overlayFBO);
|
||||
gl.glFramebufferTexture(eGL_FRAMEBUFFER, eGL_COLOR_ATTACHMENT0, DebugData.overlayTex, 0);
|
||||
gl.glFramebufferTexture2D(eGL_FRAMEBUFFER, eGL_COLOR_ATTACHMENT0, eGL_TEXTURE_2D,
|
||||
DebugData.overlayTex, 0);
|
||||
|
||||
// now apply the depth texture binding
|
||||
if(depthObj)
|
||||
@@ -1199,7 +1205,8 @@ ResourceId GLReplay::RenderOverlay(ResourceId texid, CompType typeHint, DebugOve
|
||||
gl.glTexParameteri(eGL_TEXTURE_2D, eGL_TEXTURE_MAG_FILTER, eGL_NEAREST);
|
||||
gl.glTexParameteri(eGL_TEXTURE_2D, eGL_TEXTURE_WRAP_S, eGL_CLAMP_TO_EDGE);
|
||||
gl.glTexParameteri(eGL_TEXTURE_2D, eGL_TEXTURE_WRAP_T, eGL_CLAMP_TO_EDGE);
|
||||
gl.glFramebufferTexture(eGL_FRAMEBUFFER, eGL_COLOR_ATTACHMENT0, quadtexs[0], 0);
|
||||
gl.glFramebufferTexture2D(eGL_FRAMEBUFFER, eGL_COLOR_ATTACHMENT0, eGL_TEXTURE_2D,
|
||||
quadtexs[0], 0);
|
||||
|
||||
GLuint curDepth = 0, depthType = 0;
|
||||
|
||||
@@ -1242,7 +1249,7 @@ ResourceId GLReplay::RenderOverlay(ResourceId texid, CompType typeHint, DebugOve
|
||||
if(GetBaseFormat(fmt) == eGL_DEPTH_COMPONENT)
|
||||
dsAttach = eGL_DEPTH_ATTACHMENT;
|
||||
|
||||
gl.glFramebufferTexture(eGL_FRAMEBUFFER, dsAttach, quadtexs[1], 0);
|
||||
gl.glFramebufferTexture2D(eGL_FRAMEBUFFER, dsAttach, eGL_TEXTURE_2D, quadtexs[1], 0);
|
||||
|
||||
if(overlay == DebugOverlay::QuadOverdrawPass)
|
||||
ReplayLog(events[0], eReplay_WithoutDraw);
|
||||
@@ -1352,8 +1359,10 @@ ResourceId GLReplay::RenderOverlay(ResourceId texid, CompType typeHint, DebugOve
|
||||
|
||||
// modify our fbo to attach the overlay texture instead
|
||||
gl.glBindFramebuffer(eGL_FRAMEBUFFER, replacefbo);
|
||||
gl.glFramebufferTexture(eGL_FRAMEBUFFER, eGL_COLOR_ATTACHMENT0, DebugData.overlayTex, 0);
|
||||
gl.glFramebufferTexture(eGL_FRAMEBUFFER, eGL_DEPTH_STENCIL_ATTACHMENT, 0, 0);
|
||||
gl.glFramebufferTexture2D(eGL_FRAMEBUFFER, eGL_COLOR_ATTACHMENT0, eGL_TEXTURE_2D,
|
||||
DebugData.overlayTex, 0);
|
||||
gl.glFramebufferTexture2D(eGL_FRAMEBUFFER, eGL_DEPTH_STENCIL_ATTACHMENT, eGL_TEXTURE_2D,
|
||||
0, 0);
|
||||
|
||||
gl.glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
|
||||
gl.glDisable(eGL_BLEND);
|
||||
@@ -1376,7 +1385,8 @@ ResourceId GLReplay::RenderOverlay(ResourceId texid, CompType typeHint, DebugOve
|
||||
gl.glBindVertexArray(0);
|
||||
gl.glDeleteVertexArrays(1, &emptyVAO);
|
||||
|
||||
gl.glFramebufferTexture(eGL_FRAMEBUFFER, eGL_COLOR_ATTACHMENT0, quadtexs[0], 0);
|
||||
gl.glFramebufferTexture2D(eGL_FRAMEBUFFER, eGL_COLOR_ATTACHMENT0, eGL_TEXTURE_2D,
|
||||
quadtexs[0], 0);
|
||||
}
|
||||
|
||||
gl.glDeleteFramebuffers(1, &replacefbo);
|
||||
|
||||
@@ -2287,13 +2287,13 @@ void GLReplay::GetTextureData(ResourceId tex, uint32_t arrayIdx, uint32_t mip,
|
||||
gl.glGenFramebuffers(2, fbos);
|
||||
|
||||
gl.glBindFramebuffer(eGL_FRAMEBUFFER, fbos[0]);
|
||||
gl.glFramebufferTexture(eGL_FRAMEBUFFER, eGL_COLOR_ATTACHMENT0, tempTex, 0);
|
||||
gl.glFramebufferTexture2D(eGL_FRAMEBUFFER, eGL_COLOR_ATTACHMENT0, eGL_TEXTURE_2D, tempTex, 0);
|
||||
|
||||
gl.glBindFramebuffer(eGL_FRAMEBUFFER, fbos[1]);
|
||||
if(texType == eGL_TEXTURE_2D_MULTISAMPLE_ARRAY)
|
||||
gl.glFramebufferTextureLayer(eGL_FRAMEBUFFER, eGL_COLOR_ATTACHMENT0, texname, 0, arrayIdx);
|
||||
else
|
||||
gl.glFramebufferTexture(eGL_FRAMEBUFFER, eGL_COLOR_ATTACHMENT0, texname, 0);
|
||||
gl.glFramebufferTexture2D(eGL_FRAMEBUFFER, eGL_COLOR_ATTACHMENT0, texType, texname, 0);
|
||||
|
||||
// do default resolve (framebuffer blit)
|
||||
gl.glBindFramebuffer(eGL_DRAW_FRAMEBUFFER, fbos[0]);
|
||||
|
||||
Reference in New Issue
Block a user