[GEM-cvs] Gem/src/Base GemMan.cpp, 1.71, 1.72 GemWinCreate.h, 1.14, 1.15 GemWinCreateMac.cpp, 1.33,
Brought to you by:
zmoelnig
From: IOhannes m z. <zmo...@us...> - 2008-03-10 16:18:04
|
Update of /cvsroot/pd-gem/Gem/src/Base In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9582 Modified Files: GemMan.cpp GemWinCreate.h GemWinCreateMac.cpp GemWinCreateNT.cpp GemWinCreateXWin.cpp Log Message: moved platform-dependent stuff from GemMan to GemWinCreate<OS> Index: GemWinCreateNT.cpp =================================================================== RCS file: /cvsroot/pd-gem/Gem/src/Base/GemWinCreateNT.cpp,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** GemWinCreateNT.cpp 3 Mar 2008 12:14:08 -0000 1.8 --- GemWinCreateNT.cpp 10 Mar 2008 16:18:08 -0000 1.9 *************** *** 598,600 **** --- 598,634 ---- } + + void gemWinSwapBuffers(WindowInfo nfo) + { + SwapBuffers(nfo.dc); + } + + void gemWinMakeCurrent(WindowInfo nfo) + { + if (!nfo.dc && !nfo.context)return; // do not crash ?? + wglMakeCurrent(nfo.dc, nfo.context); + } + + bool initGemWin(void) { + OSErr err = noErr; + + // Initialize QuickTime Media Layer + err = InitializeQTML(0); + if (err) + { + error("GEM Man: Could not initialize quicktime: error %d\n", err); + return 0; + } + + // Initialize QuickTime + EnterMovies(); + if (err) + { + error("GEM Man: Could not initialize quicktime: error %d\n", err); + return 0; + } + post("Gem Man: QT init OK"); + return 1; + } + #endif Index: GemMan.cpp =================================================================== RCS file: /cvsroot/pd-gem/Gem/src/Base/GemMan.cpp,v retrieving revision 1.71 retrieving revision 1.72 diff -C2 -d -r1.71 -r1.72 *** GemMan.cpp 10 Mar 2008 15:55:38 -0000 1.71 --- GemMan.cpp 10 Mar 2008 16:18:08 -0000 1.72 *************** *** 149,156 **** static int s_windowDelTime = 10; ! #ifdef __WIN32__ static int s_windowRun = 0; static int s_singleContext = 0; ! ///////////////////////////////////////////////////////// // dispatchGemWindowMessages --- 149,156 ---- static int s_windowDelTime = 10; ! static int s_windowRun = 0; static int s_singleContext = 0; ! #ifdef __WIN32__ ///////////////////////////////////////////////////////// // dispatchGemWindowMessages *************** *** 159,164 **** static void dispatchGemWindowMessages() { ! if (!s_windowRun) ! return; MSG msg; --- 159,163 ---- static void dispatchGemWindowMessages() { ! if (!s_windowRun)return; MSG msg; *************** *** 447,497 **** maxStackDepth[1] = maxStackDepth[2] = maxStackDepth[3] = 2; // color/texture/projection - m_motionBlur = 0.f; ! #ifdef __WIN32__ ! OSErr err = noErr; ! ! // Initialize QuickTime Media Layer ! err = InitializeQTML(0); ! if (err) ! { ! error("GEM Man: Could not initialize quicktime: error %d\n", err); ! return; ! } ! ! // Initialize QuickTime ! EnterMovies(); ! if (err) ! { ! error("GEM Man: Could not initialize quicktime: error %d\n", err); ! return; ! } ! post("Gem Man: QT init OK"); ! ! #elif __APPLE__ ! // Check QuickTime installed ! long QDfeature; ! if (OSErr err = ::Gestalt(gestaltQuickTime, &QDfeature)) { ! error ("GEM: QuickTime is not installed : %d", err); ! return; ! } else { ! if (OSErr err = ::EnterMovies()) { ! error("GEM: Couldn't initialize QuickTime : %d", err); ! return; ! } ! } ! // check existence of OpenGL libraries ! if ((Ptr)kUnresolvedCFragSymbolAddress == (Ptr)aglChoosePixelFormat) { ! error ("GEM : OpenGL is not installed"); ! return; ! } ! ! #endif ! #ifdef __APPLE__ - // This is to create a "master context" on Gem initialization, with // the hope that we can then share it with later context's created --- 446,455 ---- maxStackDepth[1] = maxStackDepth[2] = maxStackDepth[3] = 2; // color/texture/projection m_motionBlur = 0.f; ! initGemWin(); #ifdef __APPLE__ // This is to create a "master context" on Gem initialization, with // the hope that we can then share it with later context's created *************** *** 516,520 **** aglDestroyPixelFormat( aglPixFmt ); - #endif --- 474,477 ---- *************** *** 1307,1313 **** windowInit(); clock_delay(s_windowClock, s_windowDelTime); ! #ifdef __WIN32__ s_windowRun = 1; - #endif return(1); --- 1264,1269 ---- windowInit(); clock_delay(s_windowClock, s_windowDelTime); ! s_windowRun = 1; return(1); *************** *** 1327,1336 **** { GemMan::pleaseDestroy=false; ! #ifdef __WIN32__ // don't want to get rid of this ! if (s_singleContext) ! return; ! #endif if (!m_windowState) return; --- 1283,1291 ---- { GemMan::pleaseDestroy=false; ! // don't want to get rid of this ! if (s_singleContext) return; + // nothing to destroy... if (!m_windowState) return; *************** *** 1351,1367 **** // reestablish the const glxContext ! #ifdef __unix__ // for Unix ! if (!constInfo.dpy && !constInfo.win && !constInfo.context)return; // do not crash ! glXMakeCurrent(constInfo.dpy, constInfo.win, constInfo.context); ! #elif defined __WIN32__ // for Windows ! if (!constInfo.dc && !constInfo.context)return; // do not crash ?? ! wglMakeCurrent(constInfo.dc, constInfo.context); s_windowRun = 0; - #elif defined __APPLE__ // for PPC Macintosh - ::aglSetDrawable( constInfo.context, GetWindowPort(constInfo.pWind) ); - ::aglSetCurrentContext(constInfo.context); - #else - #error Define OS specific OpenGL context make current - #endif } --- 1306,1311 ---- // reestablish the const glxContext ! gemWinMakeCurrent(constInfo); s_windowRun = 0; } *************** *** 1372,1382 **** int createConstWindow(char* disp) { - #ifdef __WIN32__ // can we only have one context? ! if (s_singleContext) ! { ! return(GemMan::createWindow(disp)); ! } ! #endif WindowHints myHints; --- 1316,1322 ---- int createConstWindow(char* disp) { // can we only have one context? ! if (s_singleContext) ! return(GemMan::createWindow(disp)); WindowHints myHints; *************** *** 1423,1432 **** void destroyConstWindow() { ! #ifdef __WIN32__ ! if (s_singleContext) ! { ! } ! else ! #endif destroyGemWindow(constInfo); } --- 1363,1367 ---- void destroyConstWindow() { ! if (!s_singleContext) destroyGemWindow(constInfo); } *************** *** 1440,1452 **** if (!m_windowState) return; if (GemMan::m_buffer == 2) { ! #ifdef __unix__ // for Unix ! glXSwapBuffers(gfxInfo.dpy, gfxInfo.win); ! #elif defined __WIN32__ // for WinNT ! SwapBuffers(gfxInfo.dc); ! #elif defined __APPLE__ // for Macintosh ! ::aglSwapBuffers(gfxInfo.context); ! #else // everyone else ! #error Define OS specific swap buffer ! #endif } else { glFlush(); --- 1375,1379 ---- if (!m_windowState) return; if (GemMan::m_buffer == 2) { ! gemWinSwapBuffers(gfxInfo); } else { glFlush(); Index: GemWinCreateXWin.cpp =================================================================== RCS file: /cvsroot/pd-gem/Gem/src/Base/GemWinCreateXWin.cpp,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** GemWinCreateXWin.cpp 10 Mar 2008 10:21:27 -0000 1.23 --- GemWinCreateXWin.cpp 10 Mar 2008 16:18:08 -0000 1.24 *************** *** 388,390 **** --- 388,407 ---- } + void gemWinSwapBuffers(WindowInfo nfo) + { + glXSwapBuffers(nfo.dpy, nfo.win); + } + + void gemWinMakeCurrent(WindowInfo nfo) + { + if (!nfo.dpy && !nfo.win && !nfo.context)return; // do not crash + glXMakeCurrent(nfo.dpy, nfo.win, nfo.context); + } + + + bool initGemWin(void) { + /* nothing to be done here... */ + return 1; + } + #endif // unix Index: GemWinCreateMac.cpp =================================================================== RCS file: /cvsroot/pd-gem/Gem/src/Base/GemWinCreateMac.cpp,v retrieving revision 1.33 retrieving revision 1.34 diff -C2 -d -r1.33 -r1.34 *** GemWinCreateMac.cpp 4 Mar 2008 17:39:47 -0000 1.33 --- GemWinCreateMac.cpp 10 Mar 2008 16:18:08 -0000 1.34 *************** *** 1511,1513 **** --- 1511,1545 ---- return result; } + + void gemWinSwapBuffers(WindowInfo nfo) + { + ::aglSwapBuffers(nfo.context); + } + + void gemWinMakeCurrent(WindowInfo nfo) + { + ::aglSetDrawable( nfo.context, GetWindowPort(nfo.pWind) ); + ::aglSetCurrentContext(nfo.context); + } + + bool initGemWin(void) { + // Check QuickTime installed + long QDfeature; + if (OSErr err = ::Gestalt(gestaltQuickTime, &QDfeature)) { + error ("GEM: QuickTime is not installed : %d", err); + return 0; + } else { + if (OSErr err = ::EnterMovies()) { + error("GEM: Couldn't initialize QuickTime : %d", err); + return 0; + } + } + // check existence of OpenGL libraries + if ((Ptr)kUnresolvedCFragSymbolAddress == (Ptr)aglChoosePixelFormat) { + error ("GEM : OpenGL is not installed"); + return 0; + } + return 1; + } + #endif Index: GemWinCreate.h =================================================================== RCS file: /cvsroot/pd-gem/Gem/src/Base/GemWinCreate.h,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** GemWinCreate.h 28 Apr 2006 13:32:33 -0000 1.14 --- GemWinCreate.h 10 Mar 2008 16:18:08 -0000 1.15 *************** *** 199,201 **** --- 199,212 ---- GEM_EXTERN extern int topmostGemWindow(WindowInfo &info, int state); + ////////// + // swap the buffers (get's called in double-buffered mode) + GEM_EXTERN extern void gemWinSwapBuffers(WindowInfo &nfo); + ///////// + // reestablish a context + GEM_EXTERN extern void gemWinMakeCurrent(WindowInfo &nfo); + + ///////// + // init OS-specific stuff + GEM_EXTERN extern bool initGemWin(void); + #endif // for header file |