From: <z-...@us...> - 2007-11-12 21:13:28
|
Revision: 7386 http://armagetronad.svn.sourceforge.net/armagetronad/?rev=7386&view=rev Author: z-man Date: 2007-11-12 13:13:32 -0800 (Mon, 12 Nov 2007) Log Message: ----------- Whoops, fixed server compilation. Modified Paths: -------------- armagetronad/trunk/armagetronad/src/render/rGL.h armagetronad/trunk/armagetronad/src/render/rTextureRenderTarget.cpp Modified: armagetronad/trunk/armagetronad/src/render/rGL.h =================================================================== --- armagetronad/trunk/armagetronad/src/render/rGL.h 2007-11-12 21:02:07 UTC (rev 7385) +++ armagetronad/trunk/armagetronad/src/render/rGL.h 2007-11-12 21:13:32 UTC (rev 7386) @@ -28,6 +28,8 @@ #ifndef AT_GL_H #define AT_GL_H +#include "aa_config.h" + #ifndef DEDICATED #ifdef WIN32 Modified: armagetronad/trunk/armagetronad/src/render/rTextureRenderTarget.cpp =================================================================== --- armagetronad/trunk/armagetronad/src/render/rTextureRenderTarget.cpp 2007-11-12 21:02:07 UTC (rev 7385) +++ armagetronad/trunk/armagetronad/src/render/rTextureRenderTarget.cpp 2007-11-12 21:13:32 UTC (rev 7386) @@ -68,6 +68,7 @@ rTextureRenderTarget::rTextureRenderTarget( int width, int height ) { +#ifndef DEDICATED sr_CheckGLError(); width_ = width; @@ -123,10 +124,12 @@ } throw tGenericException( "frame buffer extension not supported" ); +#endif } void rTextureRenderTarget::Push() { +#ifndef DEDICATED previous = anchor; anchor = this; @@ -135,10 +138,12 @@ glBindFramebufferEXT( GL_FRAMEBUFFER_EXT, frameBuffer_ ); sr_CheckGLError(); +#endif } void rTextureRenderTarget::Pop() { +#ifndef DEDICATED tASSERT( IsTarget() ); sr_CheckGLError(); @@ -146,9 +151,12 @@ sr_CheckGLError(); anchor = previous; +#endif } void rTextureRenderTarget::OnSelect(bool) { +#ifndef DEDICATED glBindTexture( GL_TEXTURE_2D, texture_ ); +#endif } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <z-...@us...> - 2007-11-12 21:55:37
|
Revision: 7388 http://armagetronad.svn.sourceforge.net/armagetronad/?rev=7388&view=rev Author: z-man Date: 2007-11-12 13:55:37 -0800 (Mon, 12 Nov 2007) Log Message: ----------- Cleanups. Modified Paths: -------------- armagetronad/trunk/armagetronad/src/render/rSysdep.cpp armagetronad/trunk/armagetronad/src/render/rTextureRenderTarget.cpp armagetronad/trunk/armagetronad/src/render/rTextureRenderTarget.h Modified: armagetronad/trunk/armagetronad/src/render/rSysdep.cpp =================================================================== --- armagetronad/trunk/armagetronad/src/render/rSysdep.cpp 2007-11-12 21:33:48 UTC (rev 7387) +++ armagetronad/trunk/armagetronad/src/render/rSysdep.cpp 2007-11-12 21:55:37 UTC (rev 7388) @@ -80,9 +80,9 @@ #elif defined(WIN32) - #include <windows.h> - #include <windef.h> - #include "rGL.h" +#include <windows.h> +#include <windef.h> +#include "rGL.h" static HDC hDC=NULL; static HGLRC hRC=NULL; @@ -172,7 +172,7 @@ return false; } - if(!dpy){ + if (!dpy){ dpy=system.info.x11.display; win=system.info.x11.window; @@ -184,11 +184,12 @@ } int configuration[]={GLX_DOUBLEBUFFER,GLX_RGBA,GLX_DEPTH_SIZE ,12, GLX_RED_SIZE,1, - GLX_BLUE_SIZE,1,GLX_GREEN_SIZE,1,None}; + GLX_BLUE_SIZE,1,GLX_GREEN_SIZE,1,None + }; XVisualInfo *vi=glXChooseVisual(dpy,DefaultScreen(dpy),configuration); - if(vi== NULL){ + if (vi== NULL){ std::cerr << "Could not initialize Visual.\n"; return false; } @@ -196,7 +197,7 @@ cx=glXCreateContext(dpy,vi, NULL,True); - if(cx== NULL){ + if (cx== NULL){ std::cerr << "Could not initialize GL context.\n"; return false; } @@ -231,7 +232,7 @@ // windows GL cleanup stolen from // http://www.geocities.com/SiliconValley/Code/1219/opengl32.html - if(hRC){ + if (hRC){ wglMakeCurrent( NULL, NULL ); wglDeleteContext( hRC ); @@ -241,7 +242,7 @@ hDC=NULL; } #elif defined(unix) || defined(__unix__) - if(dpy){ + if (dpy){ // glXReleaseBuffersMESA( dpy, win ); glXMakeCurrent(dpy,None,NULL); @@ -290,12 +291,12 @@ png_write_info(png_ptr, info_ptr); // get pointers - if(!(row_ptrs = (png_byte**) malloc(sr_screenHeight * sizeof(png_byte*)))) { + if (!(row_ptrs = (png_byte**) malloc(sr_screenHeight * sizeof(png_byte*)))) { png_destroy_write_struct(&png_ptr, &info_ptr); return; } - for(i = 0; i < sr_screenHeight; i++) { + for (i = 0; i < sr_screenHeight; i++) { row_ptrs[i] = (png_byte *)image->pixels + (sr_screenHeight - i - 1) * SCREENSHOT_BYTES_PER_PIXEL * sr_screenWidth; } @@ -323,7 +324,8 @@ temp = SDL_CreateRGBSurface(SDL_SWSURFACE, sr_screenWidth, sr_screenHeight, 24, 0x0000FF, 0x00FF00, 0xFF0000, 0); - // make upside down screenshot + // make upside down screenshot (make sure it comes from the screen) + glReadPixels(0,0,sr_screenWidth, sr_screenHeight, GL_RGB, GL_UNSIGNED_BYTE, image->pixels); @@ -347,7 +349,7 @@ // generate filename tString fileName("screenshot_"); fileName << number; - if(png_screenshot) + if (png_screenshot) fileName << ".png"; else fileName << ".bmp"; @@ -362,7 +364,7 @@ } // save image - if(png_screenshot) + if (png_screenshot) SDL_SavePNG(image, tDirectories::Screenshot().GetWritePath( fileName )); else SDL_SaveBMP(temp, tDirectories::Screenshot().GetWritePath( fileName ) ); @@ -379,8 +381,12 @@ class PerformanceCounter { public: - PerformanceCounter(): count_(0){ tRealSysTimeFloat(); } - unsigned int Count(){ return count_++; } + PerformanceCounter(): count_(0){ + tRealSysTimeFloat(); + } + unsigned int Count(){ + return count_++; + } ~PerformanceCounter() { double time = tRealSysTimeFloat(); @@ -595,179 +601,99 @@ int NextPowerOfTwo( int in ) { - int x = 1; - while ( x * 32 <= in ) - x <<= 5; - while ( x < in ) - x <<= 1; + int x = 1; + while ( x * 32 <= in ) + x <<= 5; + while ( x < in ) + x <<= 1; - return x; + return x; } bool sr_MotionBlurCore( REAL alpha, rTextureRenderTarget & blurTarget ) { - sr_CheckGLError(); + sr_CheckGLError(); if ( alpha < 0 ) alpha = 0; - { - if ( blurTarget.IsTarget() ) - { - blurTarget.Pop(); - - blurTarget.Select(); - - glDrawBuffer( GL_FRONT ); + { + if ( blurTarget.IsTarget() ) + { + blurTarget.Pop(); - sr_CheckGLError(); + blurTarget.Select(); - // determine the texture coordinates of the lower right corner - REAL maxu = REAL(sr_screenWidth)/blurTarget.GetWidth(); - REAL maxv = REAL(sr_screenHeight)/blurTarget.GetHeight(); + glDrawBuffer( GL_FRONT ); - glEnable(GL_TEXTURE_2D); + sr_CheckGLError(); - // blend the last frame and the current frame with the specified alpha value - glDisable( GL_DEPTH_TEST ); - glDepthMask(0); + // determine the texture coordinates of the lower right corner + REAL maxu = REAL(sr_screenWidth)/blurTarget.GetWidth(); + REAL maxv = REAL(sr_screenHeight)/blurTarget.GetHeight(); - glMatrixMode( GL_PROJECTION ); - glLoadIdentity(); - glMatrixMode( GL_MODELVIEW ); - glLoadIdentity(); - glViewport(0,0,sr_screenWidth, sr_screenHeight); + glEnable(GL_TEXTURE_2D); - glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER, - GL_NEAREST); - glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER, - GL_NEAREST); + // blend the last frame and the current frame with the specified alpha value + glDisable( GL_DEPTH_TEST ); + glDepthMask(0); - glDisable(GL_ALPHA_TEST); - // glDisable(GL_BLEND); - glEnable(GL_BLEND); - glBlendFunc(GL_ONE_MINUS_SRC_ALPHA, GL_SRC_ALPHA); + glMatrixMode( GL_PROJECTION ); + glLoadIdentity(); + glMatrixMode( GL_MODELVIEW ); + glLoadIdentity(); + glViewport(0,0,sr_screenWidth, sr_screenHeight); - glDisable(GL_LIGHTING); + glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER, + GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER, + GL_NEAREST); - glBegin( GL_QUADS ); - glColor4f( 1,1,1,alpha ); + glDisable(GL_ALPHA_TEST); + // glDisable(GL_BLEND); + glEnable(GL_BLEND); + glBlendFunc(GL_ONE_MINUS_SRC_ALPHA, GL_SRC_ALPHA); - glTexCoord2f( 0, 0 ); - glVertex2f( -1, -1 ); + glDisable(GL_LIGHTING); - glTexCoord2f( maxu, 0 ); - glVertex2f( 1, -1 ); + glBegin( GL_QUADS ); + glColor4f( 1,1,1,alpha ); - glTexCoord2f( maxu, maxv ); - glVertex2f( 1, 1 ); + glTexCoord2f( 0, 0 ); + glVertex2f( -1, -1 ); - glTexCoord2f( 0, maxv ); - glVertex2f( -1, 1 ); - glEnd(); + glTexCoord2f( maxu, 0 ); + glVertex2f( 1, -1 ); - sr_CheckGLError(); + glTexCoord2f( maxu, maxv ); + glVertex2f( 1, 1 ); - // clean up - glDepthMask(1); + glTexCoord2f( 0, maxv ); + glVertex2f( -1, 1 ); + glEnd(); - glDrawBuffer( GL_BACK ); - } + sr_CheckGLError(); - blurTarget.Push(); + // clean up + glDepthMask(1); - sr_CheckGLError(); + glDrawBuffer( GL_BACK ); + } - return false; - } + blurTarget.Push(); - return true; + sr_CheckGLError(); + return false; + } + + return true; + #if 0 GLenum error = glGetError(); if ( error != GL_NO_ERROR ) con << "GL error " << error << "\n"; #endif - - // determine best texture dimensions, fitting the screen resolution - int tWidth = 128; - while ( tWidth < sr_screenWidth ) - tWidth *= 2; - - int tHeight = 128; - while ( tHeight < sr_screenHeight ) - tHeight *= 2; - - // Read the current front buffer into a texture - GLenum target; - glGenTextures(1, &target ); - glBindTexture(GL_TEXTURE_2D,target); - -#if 0 - error = glGetError(); - if ( error != GL_NO_ERROR ) - con << "GL error2 " << error << "\n"; -#endif - - glReadBuffer( GL_FRONT ); - - glCopyTexImage2D( GL_TEXTURE_2D, 0, GL_RGB, - 0, 0, - tWidth, tHeight, 0 ); - -#if 0 - error = glGetError(); - if ( error != GL_NO_ERROR ) - con << "GL error3 " << error << "\n"; -#endif - - // determine the texture coordinates of the lower right corner - REAL maxu = REAL(sr_screenWidth)/tWidth; - REAL maxv = REAL(sr_screenHeight)/tHeight; - - glEnable(GL_TEXTURE_2D); - - - // blend the last frame and the current frame with the specified alpha value - glDisable( GL_DEPTH_TEST ); - glDepthMask(0); - - glMatrixMode( GL_PROJECTION ); - glLoadIdentity(); - glMatrixMode( GL_MODELVIEW ); - glLoadIdentity(); - glViewport(0,0,sr_screenWidth, sr_screenHeight); - - glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER, - GL_NEAREST); - glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER, - GL_NEAREST); - - glDisable(GL_ALPHA_TEST); - glEnable(GL_BLEND); - glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA); - - glDisable(GL_LIGHTING); - - glBegin( GL_QUADS ); - glColor4f( 1,1,1,alpha ); - - glTexCoord2f( 0, 0 ); - glVertex2f( -1, -1 ); - - glTexCoord2f( maxu, 0 ); - glVertex2f( 1, -1 ); - - glTexCoord2f( maxu, maxv ); - glVertex2f( 1, 1 ); - - glTexCoord2f( 0, maxv ); - glVertex2f( -1, 1 ); - glEnd(); - - // clean up: destroy the texture - glDeleteTextures(1, &target ); - glDepthMask(1); } // frames from about this far apart get blended together @@ -826,13 +752,13 @@ // determine blur texture size int blurWidth = NextPowerOfTwo( sr_screenWidth ); int blurHeight = NextPowerOfTwo( sr_screenHeight ); - + // destroy existing blur texture if it is too small if ( blurTarget.get() && ( blurTarget->GetWidth() < blurWidth || blurTarget->GetHeight() < blurHeight ) ) { blurTarget = std::auto_ptr< rTextureRenderTarget >(); } - + // create blur texture if ( !blurTarget.get() ) { @@ -850,23 +776,23 @@ { blurTarget->Pop(); } - + return ret; } lastActive = active; // no motion blur happened when we got here - if ( blurTarget.get() && blurTarget->IsTarget() ) + if ( blurTarget.get() && blurTarget->IsTarget() ) { - blurTarget->Pop(); + blurTarget->Pop(); } - return true; + return true; } void rSysDep::SwapGL(){ - static std::auto_ptr< rTextureRenderTarget > blurTarget(0); + static std::auto_ptr< rTextureRenderTarget > blurTarget(0); if ( s_benchmark ) { @@ -970,7 +896,7 @@ // actiate motion blur (does not use the game state, so it's OK to call here ) bool shouldSwap = sr_MotionBlur( time, blurTarget ); - switch( swapMode_ ) + switch ( swapMode_ ) { case rSwap_Fastest: break; @@ -982,25 +908,25 @@ break; } - if ( shouldSwap ) - { + if ( shouldSwap ) + { #if defined(SDL_OPENGL) - if (lastSuccess.useSDL) - SDL_GL_SwapBuffers(); - //#elif defined(HAVE_FXMESA) - //fxMesaSwapBuffers(); + if (lastSuccess.useSDL) + SDL_GL_SwapBuffers(); + //#elif defined(HAVE_FXMESA) + //fxMesaSwapBuffers(); #endif #ifdef DIRTY - if (!lastSuccess.useSDL){ + if (!lastSuccess.useSDL){ #if defined(WIN32) - SwapBuffers( hDC ); + SwapBuffers( hDC ); #elif defined(unix) || defined(__unix__) - glXSwapBuffers(dpy,win); + glXSwapBuffers(dpy,win); #endif - } + } #endif - } + } if (sr_screenshotIsPlanned){ make_screenshot(); Modified: armagetronad/trunk/armagetronad/src/render/rTextureRenderTarget.cpp =================================================================== --- armagetronad/trunk/armagetronad/src/render/rTextureRenderTarget.cpp 2007-11-12 21:33:48 UTC (rev 7387) +++ armagetronad/trunk/armagetronad/src/render/rTextureRenderTarget.cpp 2007-11-12 21:55:37 UTC (rev 7388) @@ -3,7 +3,7 @@ ************************************************************************* ArmageTron -- Just another Tron Lightcycle Game in 3D. -Copyright (C) 2006, Armagetron Advanced Development Team +Copyright (C) 2006, Armagetron Advanced Development Team ************************************************************************** @@ -20,7 +20,7 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - + *************************************************************************** */ @@ -50,7 +50,7 @@ void rTextureRenderTarget::Clear() { tASSERT( !IsTarget() ); - + texture_.Delete(); depthBuffer_.Delete(); frameBuffer_.Delete(); @@ -62,7 +62,7 @@ { Pop(); } - + Clear(); } @@ -70,43 +70,43 @@ { #ifndef DEDICATED sr_CheckGLError(); - + width_ = width; height_ = height; previous = 0; - + if ( GLEW_EXT_framebuffer_object ) { Push(); sr_CheckGLError(); - + // generate texture glBindTexture( GL_TEXTURE_2D, texture_ ); sr_CheckGLError(); - + // make texture glTexImage2D( GL_TEXTURE_2D, 0, GL_RGB8, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL ); sr_CheckGLError(); - + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP); - + glFramebufferTexture2DEXT( GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, texture_, 0 ); sr_CheckGLError(); - + glBindRenderbufferEXT( GL_RENDERBUFFER_EXT, depthBuffer_ ); sr_CheckGLError(); - + glRenderbufferStorageEXT( GL_RENDERBUFFER_EXT, GL_DEPTH_COMPONENT32, width, height ); sr_CheckGLError(); - + glFramebufferRenderbufferEXT( GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_RENDERBUFFER_EXT, depthBuffer_ ); sr_CheckGLError(); - + GLenum status = glCheckFramebufferStatusEXT( GL_FRAMEBUFFER_EXT); - switch( status ) + switch ( status ) { case GL_FRAMEBUFFER_COMPLETE_EXT: break; @@ -115,14 +115,14 @@ default: tASSERT( 0 ); } - + sr_CheckGLError(); - + Pop(); - + return; } - + throw tGenericException( "frame buffer extension not supported" ); #endif } @@ -132,11 +132,11 @@ #ifndef DEDICATED previous = anchor; anchor = this; - + sr_CheckGLError(); - + glBindFramebufferEXT( GL_FRAMEBUFFER_EXT, frameBuffer_ ); - + sr_CheckGLError(); #endif } @@ -145,12 +145,19 @@ { #ifndef DEDICATED tASSERT( IsTarget() ); - + + anchor = previous; + + Restore(); +#endif +} + +void rTextureRenderTarget::Restore() +{ +#ifndef DEDICATED sr_CheckGLError(); - glBindFramebufferEXT( GL_FRAMEBUFFER_EXT, previous ? previous->frameBuffer_ : 0 ); + glBindFramebufferEXT( GL_FRAMEBUFFER_EXT, anchor ? anchor->frameBuffer_ : 0 ); sr_CheckGLError(); - - anchor = previous; #endif } Modified: armagetronad/trunk/armagetronad/src/render/rTextureRenderTarget.h =================================================================== --- armagetronad/trunk/armagetronad/src/render/rTextureRenderTarget.h 2007-11-12 21:33:48 UTC (rev 7387) +++ armagetronad/trunk/armagetronad/src/render/rTextureRenderTarget.h 2007-11-12 21:55:37 UTC (rev 7388) @@ -3,7 +3,7 @@ ************************************************************************* ArmageTron -- Just another Tron Lightcycle Game in 3D. -Copyright (C) 2006, Armagetron Advanced Development Team +Copyright (C) 2006, Armagetron Advanced Development Team ************************************************************************** @@ -20,7 +20,7 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - + *************************************************************************** */ @@ -36,25 +36,28 @@ class rTextureRenderTarget: public rITexture { public: - //! clears the texture - void Clear(); + //! clears the texture + void Clear(); - ~rTextureRenderTarget(); + ~rTextureRenderTarget(); //! creates a render target texture of the specified dimensions - rTextureRenderTarget( int width, int height ); + rTextureRenderTarget( int width, int height ); //! makes this texture the active render target - void Push(); + void Push(); //! removes this texture as the active render target - void Pop(); + void Pop(); - bool IsTarget() const - { - return anchor == this; - } + //! restores current render target if it was overwritten by an evil manual glBindFramebuffer call + static void Restore(); + bool IsTarget() const + { + return anchor == this; + } + int GetHeight() const { return height_; @@ -65,21 +68,21 @@ return width_; } protected: - virtual void OnSelect(bool); + virtual void OnSelect(bool); - // nothing special to do here - virtual void OnUnload(){} + // nothing special to do here + virtual void OnUnload(){} private: - rGLuintObjectTexture texture_; //!< the texture render target - rGLuintObjectRenderbuffer depthBuffer_; //!< the depth buffer - rGLuintObjectFramebuffer frameBuffer_; //!< the frame buffer + rGLuintObjectTexture texture_; //!< the texture render target + rGLuintObjectRenderbuffer depthBuffer_; //!< the depth buffer + rGLuintObjectFramebuffer frameBuffer_; //!< the frame buffer - static rTextureRenderTarget * anchor; - rTextureRenderTarget * previous; + static rTextureRenderTarget * anchor; + rTextureRenderTarget * previous; - int width_, height_; - GLenum colorMode, depthMode; + int width_, height_; + GLenum colorMode, depthMode; public: }; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <z-...@us...> - 2007-11-14 23:53:57
|
Revision: 7399 http://armagetronad.svn.sourceforge.net/armagetronad/?rev=7399&view=rev Author: z-man Date: 2007-11-14 15:53:58 -0800 (Wed, 14 Nov 2007) Log Message: ----------- Added extension specific #ifdef guards. Modified Paths: -------------- armagetronad/trunk/armagetronad/src/render/rTextureRenderTarget.cpp Property Changed: ---------------- / Property changes on: ___________________________________________________________________ Name: svk:merge - 0f5b4d08-0226-0410-8d76-d6dd9a32ed7b:/local/armagetronad:10188 + 0f5b4d08-0226-0410-8d76-d6dd9a32ed7b:/local/armagetronad:10195 Modified: armagetronad/trunk/armagetronad/src/render/rTextureRenderTarget.cpp =================================================================== --- armagetronad/trunk/armagetronad/src/render/rTextureRenderTarget.cpp 2007-11-14 18:28:21 UTC (rev 7398) +++ armagetronad/trunk/armagetronad/src/render/rTextureRenderTarget.cpp 2007-11-14 23:53:58 UTC (rev 7399) @@ -75,7 +75,7 @@ height_ = height; previous = 0; -#ifdef HAVE_GLEW +#ifdef GL_EXT_framebuffer_object if ( GLEW_EXT_framebuffer_object ) { Push(); @@ -123,7 +123,7 @@ return; } -#endif +#endif // GL_EXT_framebuffer_object throw rExceptionGLEW( "frame buffer extension not supported" ); #endif @@ -135,7 +135,7 @@ previous = anchor; anchor = this; -#ifdef HAVE_GLEW +#ifdef GL_EXT_framebuffer_object sr_CheckGLError(); glBindFramebufferEXT( GL_FRAMEBUFFER_EXT, frameBuffer_ ); @@ -158,13 +158,11 @@ void rTextureRenderTarget::Restore() { -#ifndef DEDICATED -#ifdef HAVE_GLEW +#ifdef GL_EXT_framebuffer_object sr_CheckGLError(); glBindFramebufferEXT( GL_FRAMEBUFFER_EXT, anchor ? anchor->frameBuffer_ : 0 ); sr_CheckGLError(); #endif -#endif } void rTextureRenderTarget::OnSelect(bool) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |