summaryrefslogtreecommitdiff
path: root/Source/Plugins/Plugin_VideoOGL/Src/FramebufferManager.cpp
diff options
context:
space:
mode:
authorMatthew Parlane <parlane@gmail.com>2013-08-28 00:57:37 +1200
committerMatthew Parlane <parlane@gmail.com>2013-08-28 00:57:37 +1200
commit2a68b65cda35d325efcd347b090f76f14a5a033e (patch)
treee91f460f870b518bb249e08ce5f41bb3c33d9f53 /Source/Plugins/Plugin_VideoOGL/Src/FramebufferManager.cpp
parent75c398118fb1d470a82735f93f5c0d1fe0a91664 (diff)
parent40a1cb5dfed6d5b255d1f330af2cdc14446e0b53 (diff)
Merge branch 'master' into wii-network
Diffstat (limited to 'Source/Plugins/Plugin_VideoOGL/Src/FramebufferManager.cpp')
-rw-r--r--Source/Plugins/Plugin_VideoOGL/Src/FramebufferManager.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/Source/Plugins/Plugin_VideoOGL/Src/FramebufferManager.cpp b/Source/Plugins/Plugin_VideoOGL/Src/FramebufferManager.cpp
index ceafb75dca..f3b8578b23 100644
--- a/Source/Plugins/Plugin_VideoOGL/Src/FramebufferManager.cpp
+++ b/Source/Plugins/Plugin_VideoOGL/Src/FramebufferManager.cpp
@@ -5,6 +5,7 @@
#include "Globals.h"
#include "FramebufferManager.h"
#include "VertexShaderGen.h"
+#include "OnScreenDisplay.h"
#include "TextureConverter.h"
#include "Render.h"
@@ -366,6 +367,13 @@ void FramebufferManager::ReinterpretPixelData(unsigned int convtype)
{
if(g_ogl_config.eSupportedGLSLVersion == GLSL_120) {
// This feature isn't supported by glsl120
+
+ // TODO: move this to InitBackendInfo
+ // We have to disable both the active and the stored config. Else we would either
+ // show this line per format change in one frame or once per frame.
+ OSD::AddMessage("Format Change Emulation isn't supported by your GPU.", 10000);
+ g_ActiveConfig.bEFBEmulateFormatChanges = false;
+ g_Config.bEFBEmulateFormatChanges = false;
return;
}
@@ -435,6 +443,8 @@ void XFBSource::DecodeToTexture(u32 xfbAddr, u32 fbWidth, u32 fbHeight)
void XFBSource::CopyEFB(float Gamma)
{
+ g_renderer->ResetAPIState();
+
// Copy EFB data to XFB and restore render target again
glBindFramebuffer(GL_READ_FRAMEBUFFER, FramebufferManager::GetEFBFramebuffer());
glBindFramebuffer(GL_DRAW_FRAMEBUFFER, FramebufferManager::GetXFBFramebuffer());
@@ -451,6 +461,8 @@ void XFBSource::CopyEFB(float Gamma)
// Return to EFB.
FramebufferManager::SetFramebuffer(0);
+
+ g_renderer->RestoreAPIState();
}