X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Ffreeglut_display.c;h=8faa4a5a3a164c7a51f050cbfe0f94f8dc5669ec;hb=9807c5fdb2f20f098c7046786908a7f3ce1dc2d4;hp=605248be841ec7e38276f2122d92cf50ccc4dbf7;hpb=b34d0911162e60f2eb2e87286dabda0d140a10d6;p=freeglut diff --git a/src/freeglut_display.c b/src/freeglut_display.c index 605248b..8faa4a5 100644 --- a/src/freeglut_display.c +++ b/src/freeglut_display.c @@ -25,16 +25,9 @@ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#define G_LOG_DOMAIN "freeglut-display" - -#include "../include/GL/freeglut.h" +#include #include "freeglut_internal.h" - /* -- INTERFACE FUNCTIONS -------------------------------------------------- */ /* @@ -42,9 +35,9 @@ */ void FGAPIENTRY glutPostRedisplay( void ) { - freeglut_assert_ready; - freeglut_assert_window; - fgStructure.Window->State.Redisplay = TRUE; + FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutPostRedisplay" ); + FREEGLUT_EXIT_IF_NO_WINDOW ( "glutPostRedisplay" ); + fgStructure.CurrentWindow->State.Redisplay = GL_TRUE; } /* @@ -52,32 +45,33 @@ void FGAPIENTRY glutPostRedisplay( void ) */ void FGAPIENTRY glutSwapBuffers( void ) { - freeglut_assert_ready; - freeglut_assert_window; - - fgDisplayCursor(); - glFlush(); + FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSwapBuffers" ); + FREEGLUT_EXIT_IF_NO_WINDOW ( "glutSwapBuffers" ); - if ( ! fgStructure.Window->Window.DoubleBuffered ) - return ; + glFlush( ); + if( ! fgStructure.CurrentWindow->Window.DoubleBuffered ) + return; #if TARGET_HOST_UNIX_X11 - glXSwapBuffers( fgDisplay.Display, fgStructure.Window->Window.Handle ); -#elif TARGET_HOST_WIN32 - SwapBuffers( fgStructure.Window->Window.Device ); + glXSwapBuffers( fgDisplay.Display, fgStructure.CurrentWindow->Window.Handle ); +#elif TARGET_HOST_WIN32 || TARGET_HOST_WINCE + SwapBuffers( fgStructure.CurrentWindow->Window.Device ); #endif /* GLUT_FPS env var support */ - if (fgState.FPSInterval) { - GLint t = glutGet(GLUT_ELAPSED_TIME); + if( fgState.FPSInterval ) + { + GLint t = glutGet( GLUT_ELAPSED_TIME ); fgState.SwapCount++; - if (fgState.SwapTime == 0) + if( fgState.SwapTime == 0 ) fgState.SwapTime = t; - else if (t - fgState.SwapTime > fgState.FPSInterval) { - float time = 0.001f * (t - fgState.SwapTime); - float fps = (float) fgState.SwapCount / time; - fprintf(stderr, "freeglut: %d frames in %.2f seconds = %.2f FPS\n", - fgState.SwapCount, time, fps); + else if( t - fgState.SwapTime > fgState.FPSInterval ) + { + float time = 0.001f * ( t - fgState.SwapTime ); + float fps = ( float )fgState.SwapCount / time; + fprintf( stderr, + "freeglut: %d frames in %.2f seconds = %.2f FPS\n", + fgState.SwapCount, time, fps ); fgState.SwapTime = t; fgState.SwapCount = 0; } @@ -91,10 +85,10 @@ void FGAPIENTRY glutPostWindowRedisplay( int windowID ) { SFG_Window* window; - freeglut_assert_ready; + FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutPostWindowRedisplay" ); window = fgWindowByID( windowID ); - freeglut_return_if_fail( window != NULL ); - window->State.Redisplay = TRUE; + freeglut_return_if_fail( window ); + window->State.Redisplay = GL_TRUE; } /*** END OF FILE ***/