diff options
Diffstat (limited to 'Source/Plugins/Plugin_VideoOGL')
| -rw-r--r-- | Source/Plugins/Plugin_VideoOGL/Src/GLUtil.cpp | 56 | ||||
| -rw-r--r-- | Source/Plugins/Plugin_VideoOGL/Src/GLUtil.h | 15 | ||||
| -rw-r--r-- | Source/Plugins/Plugin_VideoOGL/Src/SConscript | 31 |
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( |
