summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhrydgard <hrydgard@gmail.com>2009-03-06 00:03:33 +0000
committerhrydgard <hrydgard@gmail.com>2009-03-06 00:03:33 +0000
commit95bd883c2cb66cf604134b504f878e855e89ddc9 (patch)
tree51b32b2d6871420afeb55cc6cbda52a1cc7dec81
parent036ac704e697fd8098290ba5cf28226a1f8e92aa (diff)
fix debug mode build error, shuffle some code around :P
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2565 8ced0084-cf51-0410-be5f-012b33b47a6e
-rw-r--r--Source/Plugins/Plugin_VideoOGL/Src/Render.cpp50
-rw-r--r--Source/Plugins/Plugin_VideoOGL/Src/TextureMngr.cpp2
2 files changed, 28 insertions, 24 deletions
diff --git a/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp b/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp
index 5d14460a7e..8e4db354f3 100644
--- a/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp
+++ b/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp
@@ -768,7 +768,7 @@ void Renderer::SetRenderMode(RenderMode mode)
}
else if (s_RenderMode == RM_Normal) {
// setup buffers
- _assert_(GetZBufferTarget() && bpmem.zmode.updateenable);
+ _assert_(GetFakeZTarget() && bpmem.zmode.updateenable);
if (mode == RM_ZBufferAlpha) {
glEnable(GL_STENCIL_TEST);
glClearStencil(0);
@@ -782,7 +782,7 @@ void Renderer::SetRenderMode(RenderMode mode)
GL_REPORT_ERRORD();
}
else {
- _assert_(GetZBufferTarget());
+ _assert_(GetFakeZTarget());
_assert_(s_bHaveStencilBuffer);
if (mode == RM_ZBufferOnly) {
@@ -892,33 +892,16 @@ void Renderer::Swap(const TRectangle& rc)
Renderer::SetRenderMode(Renderer::RM_Normal);
- // Blit the FBO to do Anti-Aliasing
- // Not working?
-// glBindFramebufferEXT(GL_READ_FRAMEBUFFER_EXT, s_uFramebuffer);
-// glBindFramebufferEXT(GL_DRAW_FRAMEBUFFER_EXT, 0);
-// glBlitFramebufferEXT(0, 0, 640, 480, 0, 0, OpenGL_GetWidth(), OpenGL_GetHeight(), GL_COLOR_BUFFER_BIT, GL_NEAREST);
-// glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, s_uFramebuffer);
+ ResetGLState();
- // render to the real buffer now
- glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); // switch to the window backbuffer
+ TRectangle back_rc;
+ ComputeBackbufferRectangle(&back_rc);
- ResetGLState();
- // Texture map s_RenderTargets[s_curtarget] onto the main buffer
- glActiveTexture(GL_TEXTURE0);
- glBindTexture(GL_TEXTURE_RECTANGLE_ARB, s_RenderTarget);
- // Use linear filtering.
- glTexParameteri(GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
- glTexParameteri(GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
- TextureMngr::EnableTexRECT(0);
-
// Disable all other stages.
for (int i = 1; i < 8; ++i)
TextureMngr::DisableStage(i);
- TRectangle back_rc;
- ComputeBackbufferRectangle(&back_rc);
-
// Update GLViewPort
glViewport(back_rc.left, back_rc.top,
back_rc.right - back_rc.left, back_rc.bottom - back_rc.top);
@@ -928,6 +911,27 @@ void Renderer::Swap(const TRectangle& rc)
// Copy the framebuffer to screen.
// TODO: Use glBlitFramebufferEXT.
+#if 0
+ // Use framebuffer blit to stretch screen. No messing around with annoying glBegin and viewports.
+ glBindFramebufferEXT(GL_READ_FRAMEBUFFER_EXT, s_uFramebuffer);
+ glBindFramebufferEXT(GL_DRAW_FRAMEBUFFER_EXT, 0);
+ glBlitFramebufferEXT(0, GetTargetHeight() - (rc.bottom - rc.top), rc.GetWidth(), rc.GetHeight(),
+ back_rc.left, back_rc.top, back_rc.GetWidth(), back_rc.GetHeight(),
+ GL_COLOR_BUFFER_BIT, GL_LINEAR);
+ glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); // switch to the window backbuffer
+ //glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, s_uFramebuffer);
+#else
+ // Render to the real buffer now.
+ glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); // switch to the window backbuffer
+
+ // Texture map s_RenderTargets[s_curtarget] onto the main buffer
+ glActiveTexture(GL_TEXTURE0);
+ glBindTexture(GL_TEXTURE_RECTANGLE_ARB, s_RenderTarget);
+ // Use linear filtering.
+ glTexParameteri(GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+ TextureMngr::EnableTexRECT(0);
+
float u_max;
float v_min = 0.f;
float v_max;
@@ -946,6 +950,7 @@ void Renderer::Swap(const TRectangle& rc)
glTexCoord2f(u_max, v_max); glVertex2f( 1, 1);
glTexCoord2f(u_max, v_min); glVertex2f( 1, -1);
glEnd();
+#endif
// Restore filtering.
glTexParameteri(GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
@@ -958,7 +963,6 @@ void Renderer::Swap(const TRectangle& rc)
glBindTexture(GL_TEXTURE_RECTANGLE_ARB, 0);
TextureMngr::DisableStage(0);
// -------------------------------------
-
// Take screenshot, if requested
if (s_bScreenshot) {
s_criticalScreenshot.Enter();
diff --git a/Source/Plugins/Plugin_VideoOGL/Src/TextureMngr.cpp b/Source/Plugins/Plugin_VideoOGL/Src/TextureMngr.cpp
index c9d7e50772..343be17e7c 100644
--- a/Source/Plugins/Plugin_VideoOGL/Src/TextureMngr.cpp
+++ b/Source/Plugins/Plugin_VideoOGL/Src/TextureMngr.cpp
@@ -674,7 +674,7 @@ void TextureMngr::CopyRenderTargetToTexture(u32 address, bool bFromZBuffer, bool
GL_REPORT_ERRORD();
//SaveTexture("frame.tga", GL_TEXTURE_RECTANGLE_ARB, entry.texture, entry.w, entry.h);
- //SaveTexture("tex.tga", GL_TEXTURE_RECTANGLE_ARB, bFromZBuffer?Renderer::GetZBufferTarget():Renderer::GetRenderTarget(), Renderer::GetTargetWidth(), Renderer::GetTargetHeight());
+ //SaveTexture("tex.tga", GL_TEXTURE_RECTANGLE_ARB, bFromZBuffer?Renderer::GetFakeZTarget():Renderer::GetRenderTarget(), Renderer::GetTargetWidth(), Renderer::GetTargetHeight());
}
void TextureMngr::EnableTex2D(int stage)