X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Ffreeglut_display.c;h=2ba0ec549c9f277bda903501f92ead5580b15cf7;hb=9e756b17d58b2991a8f4735c14d40a5843fc7db7;hp=a2168a34911a5a9fe15626c4c26ba2687ab1e39a;hpb=e218a8c9e3bd45717847d9d63b052a6d0a7d1e67;p=freeglut diff --git a/src/freeglut_display.c b/src/freeglut_display.c index a2168a3..2ba0ec5 100644 --- a/src/freeglut_display.c +++ b/src/freeglut_display.c @@ -25,14 +25,9 @@ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include "../include/GL/freeglut.h" +#include #include "freeglut_internal.h" - /* -- INTERFACE FUNCTIONS -------------------------------------------------- */ /* @@ -40,9 +35,14 @@ */ void FGAPIENTRY glutPostRedisplay( void ) { - freeglut_assert_ready; - freeglut_assert_window; - fgStructure.Window->State.Redisplay = TRUE; + FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutPostRedisplay" ); + if ( ! fgStructure.CurrentWindow ) + { + fgError ( " ERROR: Function <%s> called" + " with no current window defined.", "glutPostRedisplay" ) ; + } + + fgStructure.CurrentWindow->State.Redisplay = GL_TRUE; } /* @@ -50,17 +50,21 @@ void FGAPIENTRY glutPostRedisplay( void ) */ void FGAPIENTRY glutSwapBuffers( void ) { - freeglut_assert_ready; - freeglut_assert_window; + FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSwapBuffers" ); + FREEGLUT_EXIT_IF_NO_WINDOW ( "glutSwapBuffers" ); - glFlush(); - if ( ! fgStructure.Window->Window.DoubleBuffered ) + /* + * "glXSwapBuffers" already performs an implicit call to "glFlush". What + * about "SwapBuffers"? + */ + 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 ); +#if TARGET_HOST_POSIX_X11 + glXSwapBuffers( fgDisplay.Display, fgStructure.CurrentWindow->Window.Handle ); +#elif TARGET_HOST_MS_WINDOWS + SwapBuffers( fgStructure.CurrentWindow->Window.Device ); #endif /* GLUT_FPS env var support */ @@ -90,10 +94,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 ); - window->State.Redisplay = TRUE; + window->State.Redisplay = GL_TRUE; } /*** END OF FILE ***/