* 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 <GL/freeglut.h>
#include "freeglut_internal.h"
-
/* -- INTERFACE FUNCTIONS -------------------------------------------------- */
/*
*/
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;
}
/*
*/
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 ;
+ /*
+ * "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 */
- 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;
}
{
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 ***/