]> git.mxchange.org Git - simgear.git/blobdiff - simgear/screen/RenderTexture.cpp
Also unbind subsystem groups in reverse order and destruct them in reverse order...
[simgear.git] / simgear / screen / RenderTexture.cpp
index aaee155ab50548382fd696a15567abacb6124875..0b2b63590283de24ef72dfa71f2c3c92a74a8a3f 100644 (file)
@@ -39,7 +39,9 @@
 * Implementation of class RenderTexture.  A multi-format render to 
 * texture wrapper.
 */
+#ifdef _MSC_VER
 #pragma warning(disable:4786)
+#endif
 
 /*
  * Changelog:
@@ -76,12 +78,16 @@ using namespace std;
 //#define _DEBUG
 //#endif
 
-#ifdef _DEBUG
-#define dbg_printf printf
+#if defined (_DEBUG) 
 const char * get_attr_name( int val, int * pdef );
+#define dbg_printf printf
 #else
+#if defined (__GNUC__)
+#define dbg_printf(format,args...) ((void)0)
+#else // defined (__GNUC__)
 #define dbg_printf
-#endif
+#endif // defined (__GNUC__)
+#endif // defined (_DEBUG)
 
 // CHOP/NOT CHOP SOME CODE TO GET SOMETHING WORKING!
 #define ADD_QUERY_BUFFER    
@@ -212,7 +218,7 @@ RenderTexture::RenderTexture(const char *strMode)
 #endif
 
     dbg_printf("RenderTexture::RenderTexture(%s) END instantiation. pf=%d pb=%d\n",
-      strMode, _pixelFormatAttribs.size(), _pbufferAttribs.size() );
+      strMode, (int)_pixelFormatAttribs.size(), (int)_pbufferAttribs.size() );
 
 }
 
@@ -673,7 +679,7 @@ bool RenderTexture::Initialize(int width, int height,
     GLXFBConfig *fbConfigs;
     int nConfigs;
 #ifdef _DEBUG
-    dbg_printf("Using %d pixelFormatAttribs array\n", _pixelFormatAttribs.size());
+    dbg_printf("Using %d pixelFormatAttribs array\n", (int)_pixelFormatAttribs.size());
     size_t max = _pixelFormatAttribs.size() / 2;
     int dat = 0;
     size_t n;
@@ -751,7 +757,7 @@ bool RenderTexture::Initialize(int width, int height,
                                                &pbufAttrib[0] ); //NULL);
             if (_hPBuffer) 
             {
-                dbg_printf("RenderTexture::Initialize: %d: glXCreateGLXPbufferPtr() got buffer [%p]\n", (i + 1), _hPBuffer);
+                dbg_printf("RenderTexture::Initialize: %d: glXCreateGLXPbufferPtr() got buffer [%p]\n", (i + 1), (void*)_hPBuffer);
                 _hGLContext = glXCreateContextWithConfigPtr(_pDisplay, 
                                                              fbConfigs[i], 
                                                              GLX_RGBA_TYPE, 
@@ -844,7 +850,7 @@ bool RenderTexture::Initialize(int width, int height,
 #endif // #ifdef ADD_GET_DRAWABLE
     
     dbg_printf( "RenderTexture::Initialize: doing glXMakeCurrent(_pDisplay(%p), _hPBuffer(%p), _hGLContext(%p))\n",
-       _pDisplay, _hPBuffer, _hGLContext );
+       _pDisplay, (void*)_hPBuffer, _hGLContext );
     if (False == glXMakeCurrent(_pDisplay, _hPBuffer, _hGLContext)) 
     {
         dbg_printf( "glXMakeCurrent(_pDisplay, _hPBuffer, _hGLContext) FAILED. return false\n" );
@@ -1435,7 +1441,7 @@ void RenderTexture::_ParseModeString(const char *modeString,
                                      vector<int> &pfAttribs, 
                                      vector<int> &pbAttribs)
 {
-    dbg_printf("RenderTexture::_ParseModeString(%s). BGN vf=%d vp=%d\n", modeString, pfAttribs.size(), pbAttribs.size() );
+    dbg_printf("RenderTexture::_ParseModeString(%s). BGN vf=%d vp=%d\n", modeString, (int)pfAttribs.size(), (int)pbAttribs.size() );
     if (!modeString || strcmp(modeString, "") == 0)
         return;
 
@@ -2206,7 +2212,7 @@ void RenderTexture::_ParseModeString(const char *modeString,
 #endif 
       dbg_printf( "RenderTexture Error 2: Render to Texture not supported in Linux or MacOS\n");
     }
-    dbg_printf("RenderTexture::_ParseModeString(%s). END vf=%d vp=%d\n", modeString, pfAttribs.size(), pbAttribs.size() );
+    dbg_printf("RenderTexture::_ParseModeString(%s). END vf=%d vp=%d\n", modeString, (int)pfAttribs.size(), (int)pbAttribs.size() );
 
 }
 
@@ -2780,7 +2786,6 @@ bool RenderTexture::_ReleaseBoundBuffers()
 * @fn RenderTexture::_MakeCurrent()
 * @brief Makes the RenderTexture's context current
 */ 
-static GLXContext last_hGLContext = 0;
 bool RenderTexture::_MakeCurrent() 
 {
 #ifdef _WIN32
@@ -2799,17 +2804,18 @@ bool RenderTexture::_MakeCurrent()
         return false;
     }
 #else
+static GLXContext last_hGLContext = 0;
     if (false == glXMakeCurrent(_pDisplay, _hPBuffer, _hGLContext)) 
     {
         dbg_printf( "_MakeCurrent: glXMakeCurrent FAILED! returning false\n");
         return false;
     }
-#endif
 
     if ( last_hGLContext != _hGLContext ) {
       last_hGLContext = _hGLContext;
       dbg_printf( "_MakeCurrent: glXMakeCurrent set to [%p] SUCCESS! returning true\n", _hGLContext );
     }
+#endif
     return true;
 }
 
@@ -3036,7 +3042,7 @@ bool RenderTexture::Reset(int iWidth, int iHeight)
     return true;
 }
 
-#ifdef _DEBUG
+#if defined( _DEBUG ) && !defined( _WIN32 ) && !defined( __MACH__ )
 /* just some DEBUG ONLY code, to show the 'attributes' */
 
 typedef struct tagPXATTS {