summaryrefslogtreecommitdiff
path: root/Source/Plugins/Plugin_VideoOGL
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Plugins/Plugin_VideoOGL')
-rw-r--r--Source/Plugins/Plugin_VideoOGL/Src/GLUtil.cpp56
-rw-r--r--Source/Plugins/Plugin_VideoOGL/Src/GLUtil.h15
-rw-r--r--Source/Plugins/Plugin_VideoOGL/Src/SConscript31
3 files changed, 33 insertions, 69 deletions
diff --git a/Source/Plugins/Plugin_VideoOGL/Src/GLUtil.cpp b/Source/Plugins/Plugin_VideoOGL/Src/GLUtil.cpp
index 82ee13710a..0656aa5a10 100644
--- a/Source/Plugins/Plugin_VideoOGL/Src/GLUtil.cpp
+++ b/Source/Plugins/Plugin_VideoOGL/Src/GLUtil.cpp
@@ -22,34 +22,23 @@
#include "Render.h"
+#include "GLUtil.h"
+
#if defined(_WIN32)
#include "OS/Win32.h"
+static HDC hDC = NULL; // Private GDI Device Context
+static HGLRC hRC = NULL; // Permanent Rendering Context
+extern HINSTANCE g_hInstance;
#else
-struct RECT
-{
- int left, top;
- int right, bottom;
-};
+GLWindow GLWin;
#endif
-#include "GLUtil.h"
-
// Handles OpenGL and the window
// Window dimensions.
static int s_backbuffer_width;
static int s_backbuffer_height;
-#ifndef _WIN32
-GLWindow GLWin;
-#endif
-
-#if defined(_WIN32)
-static HDC hDC = NULL; // Private GDI Device Context
-static HGLRC hRC = NULL; // Permanent Rendering Context
-extern HINSTANCE g_hInstance;
-#endif
-
void OpenGL_SwapBuffers()
{
#if defined(USE_WX) && USE_WX
@@ -76,15 +65,15 @@ u32 OpenGL_GetBackbufferHeight()
void OpenGL_SetWindowText(const char *text)
{
#if defined(USE_WX) && USE_WX
-// GLWin.frame->SetTitle(wxString::FromAscii(text));
+ // GLWin.frame->SetTitle(wxString::FromAscii(text));
#elif defined(__APPLE__)
cocoaGLSetTitle(GLWin.cocoaWin, text);
#elif defined(_WIN32)
// TODO convert text to unicode and change SetWindowTextA to SetWindowText
SetWindowTextA(EmuWindow::GetWnd(), text);
-#elif defined(HAVE_X11) && HAVE_X11 // GLX
- // Tell X to ask the window manager to set the window title. (X
- // itself doesn't provide window title functionality.)
+#elif defined(HAVE_X11) && HAVE_X11
+ // Tell X to ask the window manager to set the window title.
+ // (X itself doesn't provide window title functionality.)
XStoreName(GLWin.dpy, GLWin.win, text);
#endif
}
@@ -127,8 +116,7 @@ void CreateXWindow (void)
GLWin.attr.colormap = XCreateColormap(GLWin.dpy,
GLWin.parent, GLWin.vi->visual, AllocNone);
GLWin.attr.event_mask = ExposureMask | KeyPressMask | KeyReleaseMask |
- StructureNotifyMask | ResizeRedirectMask | EnterWindowMask |
- LeaveWindowMask | FocusChangeMask;
+ StructureNotifyMask | EnterWindowMask | LeaveWindowMask | FocusChangeMask;
GLWin.attr.background_pixel = BlackPixel(GLWin.dpy, GLWin.screen);
GLWin.attr.border_pixel = 0;
@@ -147,7 +135,6 @@ void CreateXWindow (void)
void DestroyXWindow(void)
{
- /* switch back to original desktop resolution if we were in fullscreen */
XUnmapWindow(GLWin.dpy, GLWin.win);
GLWin.win = 0;
XFreeColormap(GLWin.dpy, GLWin.attr.colormap);
@@ -366,7 +353,7 @@ bool OpenGL_Create(SVideoInitialize &_VideoInitialize, int _iwidth, int _iheight
glXQueryVersion(GLWin.dpy, &glxMajorVersion, &glxMinorVersion);
NOTICE_LOG(VIDEO, "glX-Version %d.%d", glxMajorVersion, glxMinorVersion);
- /* get an appropriate visual */
+ // Get an appropriate visual
GLWin.vi = glXChooseVisual(GLWin.dpy, GLWin.screen, attrListDbl);
if (GLWin.vi == NULL)
{
@@ -428,16 +415,12 @@ bool OpenGL_MakeCurrent()
void OpenGL_Update()
{
#if defined(USE_WX) && USE_WX
- RECT rcWindow = {0};
- rcWindow.right = GLWin.width;
- rcWindow.bottom = GLWin.height;
-
- // TODO fill in
-
+ GLWin.glCanvas->GetSize((int *)&GLWin.width, (int *)&GLWin.height);
+ s_backbuffer_width = GLWin.width;
+ s_backbuffer_height = GLWin.height;
#elif defined(__APPLE__)
- RECT rcWindow = {0};
- rcWindow.right = GLWin.width;
- rcWindow.bottom = GLWin.height;
+
+ // Is anything needed here?
#elif defined(_WIN32)
RECT rcWindow;
@@ -452,11 +435,8 @@ void OpenGL_Update()
GetWindowRect(EmuWindow::GetParentWnd(), &rcWindow);
}
- // ---------------------------------------------------------------------------------------
// Get the new window width and height
- // ------------------
// See below for documentation
- // ------------------
int width = rcWindow.right - rcWindow.left;
int height = rcWindow.bottom - rcWindow.top;
@@ -467,8 +447,6 @@ void OpenGL_Update()
s_backbuffer_width = width;
s_backbuffer_height = height;
}
-
-#elif defined(HAVE_X11) && HAVE_X11
#endif
}
diff --git a/Source/Plugins/Plugin_VideoOGL/Src/GLUtil.h b/Source/Plugins/Plugin_VideoOGL/Src/GLUtil.h
index c5d1e3fc98..242bd3e8f6 100644
--- a/Source/Plugins/Plugin_VideoOGL/Src/GLUtil.h
+++ b/Source/Plugins/Plugin_VideoOGL/Src/GLUtil.h
@@ -71,11 +71,15 @@
#include <sys/types.h>
typedef struct {
- int screen;
-#if defined(__APPLE__)
+#if defined(USE_WX) && USE_WX
+ wxGLCanvas *glCanvas;
+ wxPanel *panel;
+ wxGLContext *glCtxt;
+#elif defined(__APPLE__)
NSWindow *cocoaWin;
NSOpenGLContext *cocoaCtx;
#elif defined(HAVE_X11) && HAVE_X11
+ int screen;
Window win;
Window parent;
Display *dpy;
@@ -83,13 +87,8 @@ typedef struct {
GLXContext ctx;
XSetWindowAttributes attr;
Common::Thread *xEventThread;
-#endif // X11
-#if defined(USE_WX) && USE_WX
- wxGLCanvas *glCanvas;
- wxPanel *panel;
- wxGLContext *glCtxt;
-#endif
int x, y;
+#endif
unsigned int width, height;
} GLWindow;
diff --git a/Source/Plugins/Plugin_VideoOGL/Src/SConscript b/Source/Plugins/Plugin_VideoOGL/Src/SConscript
index ec5a6316b7..5b7e811a9b 100644
--- a/Source/Plugins/Plugin_VideoOGL/Src/SConscript
+++ b/Source/Plugins/Plugin_VideoOGL/Src/SConscript
@@ -1,11 +1,7 @@
# -*- python -*-
Import('env')
-# can we import path in one place?
import sys
-sys.path.append(env['base_dir']+'SconsTests')
-import utils
-import platform
name = "Plugin_VideoOGL"
@@ -24,41 +20,32 @@ files = [
'XFB.cpp',
'PostProcessing.cpp',
'FramebufferManager.cpp',
+ 'main.cpp',
+ 'GLUtil.cpp'
]
-linkFlags = [
- ]
+
libs = [
'videocommon', 'GLEW', 'SOIL', 'common'
]
gfxenv = env.Clone()
-files += [
- 'main.cpp',
- 'GLUtil.cpp',
- ]
if sys.platform != 'darwin':
if gfxenv['HAVE_OPENCL']:
libs += [ 'OpenCL']
+
if gfxenv['HAVE_WX']:
files += [
- 'GUI/ConfigDlg.cpp',
+ 'GUI/ConfigDlg.cpp',
'Debugger/Debugger.cpp',
- ]
+ ]
if sys.platform == 'darwin':
- files += [ 'cocoaGL.m' ]
-
-if sys.platform == 'win32':
- files += [ 'OS/Win32.cpp' ]
+ files += [ 'cocoaGL.m' ]
if sys.platform == 'win32':
- files += [
- 'OS/Win32.cpp'
- ]
- libs += [
- env['base_dir'] + '/Externals/Cg/'
- ]
+ files += [ 'OS/Win32.cpp' ]
+ libs += [ env['base_dir'] + '/Externals/Cg/' ]
gfxenv['CPPPATH'] += libs
gfxenv.SharedLibrary(