summaryrefslogtreecommitdiff
path: root/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp
diff options
context:
space:
mode:
authorhrydgard <hrydgard@gmail.com>2009-09-03 19:24:16 +0000
committerhrydgard <hrydgard@gmail.com>2009-09-03 19:24:16 +0000
commit562a4e25acd3bd4eb7183fbb5cd04891c4535423 (patch)
tree298988fd772ec9ebf89710cb0f954997ee4fa996 /Source/Plugins/Plugin_VideoOGL/Src/Render.cpp
parent2091fb3ceb1f3adbb4a39513dab894c99a98be34 (diff)
Some housecleaning around the D3D plugin, start of preparations to share even more code with the GL plugin.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4183 8ced0084-cf51-0410-be5f-012b33b47a6e
Diffstat (limited to 'Source/Plugins/Plugin_VideoOGL/Src/Render.cpp')
-rw-r--r--Source/Plugins/Plugin_VideoOGL/Src/Render.cpp77
1 files changed, 34 insertions, 43 deletions
diff --git a/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp b/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp
index 47e2770906..23b2847e63 100644
--- a/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp
+++ b/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp
@@ -362,40 +362,6 @@ bool Renderer::Init()
cgGLSetDebugMode(GL_FALSE);
#endif
- if (!InitializeGL())
- return false;
-
- return glGetError() == GL_NO_ERROR && bSuccess;
-}
-
-void Renderer::Shutdown(void)
-{
- delete s_pfont;
- s_pfont = 0;
-
- if (g_cgcontext) {
- cgDestroyContext(g_cgcontext);
- g_cgcontext = 0;
- }
-
- glDeleteFramebuffersEXT(1, &s_tempScreenshotFramebuffer);
- s_tempScreenshotFramebuffer = 0;
-
- s_framebufferManager.Shutdown();
-
-#ifdef _WIN32
- if(s_bAVIDumping) {
- AVIDump::Stop();
- }
-#else
- if(f_pFrameDump != NULL) {
- fclose(f_pFrameDump);
- }
-#endif
-}
-
-bool Renderer::InitializeGL()
-{
glStencilFunc(GL_ALWAYS, 0, 0);
glBlendFunc(GL_ONE, GL_ONE);
@@ -432,9 +398,34 @@ bool Renderer::InitializeGL()
glClientActiveTexture(GL_TEXTURE0);
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
- return GL_REPORT_ERROR() == GL_NO_ERROR;
+ return glGetError() == GL_NO_ERROR && bSuccess;
}
+void Renderer::Shutdown(void)
+{
+ delete s_pfont;
+ s_pfont = 0;
+
+ if (g_cgcontext) {
+ cgDestroyContext(g_cgcontext);
+ g_cgcontext = 0;
+ }
+
+ glDeleteFramebuffersEXT(1, &s_tempScreenshotFramebuffer);
+ s_tempScreenshotFramebuffer = 0;
+
+ s_framebufferManager.Shutdown();
+
+#ifdef _WIN32
+ if(s_bAVIDumping) {
+ AVIDump::Stop();
+ }
+#else
+ if(f_pFrameDump != NULL) {
+ fclose(f_pFrameDump);
+ }
+#endif
+}
// Return the rendering window width and height
int Renderer::GetTargetWidth()
@@ -467,7 +458,7 @@ void Renderer::SetFramebuffer(GLuint fb)
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, fb != 0 ? fb : s_framebufferManager.GetEFBFramebuffer());
}
-void Renderer::ResetGLState()
+void Renderer::ResetAPIState()
{
// Gets us to a reasonably sane state where it's possible to do things like
// image copies with textured quads, etc.
@@ -484,7 +475,7 @@ void Renderer::ResetGLState()
void UpdateViewport();
-void Renderer::RestoreGLState()
+void Renderer::RestoreAPIState()
{
// Gets us back into a more game-like state.
@@ -832,7 +823,7 @@ void Renderer::Swap(u32 xfbAddr, FieldType field, u32 fbWidth, u32 fbHeight)
OpenGL_Update(); // just updates the render window position and the backbuffer size
DVSTARTPROFILE();
- ResetGLState();
+ ResetAPIState();
TargetRectangle back_rc;
ComputeBackbufferRectangle(&back_rc);
@@ -1038,7 +1029,7 @@ void Renderer::Swap(u32 xfbAddr, FieldType field, u32 fbWidth, u32 fbHeight)
// Why save this as s_bNativeResolution if we updated it every frame?
s_bNativeResolution = g_Config.bNativeResolution;
- RestoreGLState();
+ RestoreAPIState();
GL_REPORT_ERRORD();
g_Config.iSaveTargetId = 0;
@@ -1436,16 +1427,16 @@ void UpdateViewport()
(rawViewport[5] - rawViewport[2]) / 16777215.0f, rawViewport[5] / 16777215.0f);*/
// --------
- int scissorXOff = bpmem.scissorOffset.x * 2 - 342;
- int scissorYOff = bpmem.scissorOffset.y * 2 - 342;
+ int scissorXOff = bpmem.scissorOffset.x * 2; // 342
+ int scissorYOff = bpmem.scissorOffset.y * 2; // 342
// -------------------------------------
float MValueX = Renderer::GetTargetScaleX();
float MValueY = Renderer::GetTargetScaleY();
// Stretch picture with increased internal resolution
- int GLx = (int)ceil((xfregs.rawViewport[3] - xfregs.rawViewport[0] - 342 - scissorXOff) * MValueX);
- int GLy = (int)ceil(Renderer::GetTargetHeight() - ((int)(xfregs.rawViewport[4] - xfregs.rawViewport[1] - 342 - scissorYOff)) * MValueY);
+ int GLx = (int)ceil((xfregs.rawViewport[3] - xfregs.rawViewport[0] - scissorXOff) * MValueX);
+ int GLy = (int)ceil(Renderer::GetTargetHeight() - ((int)(xfregs.rawViewport[4] - xfregs.rawViewport[1] - scissorYOff)) * MValueY);
int GLWidth = (int)ceil(abs((int)(2 * xfregs.rawViewport[0])) * MValueX);
int GLHeight = (int)ceil(abs((int)(2 * xfregs.rawViewport[1])) * MValueY);
double GLNear = (xfregs.rawViewport[5] - xfregs.rawViewport[2]) / 16777215.0f;