freeglut_assert_ready;
/*
- * Save the window's single- or double-buffering state
- */
- window->Window.DoubleBuffered = ( fgState.DisplayMode & GLUT_DOUBLE ) ? 1 : 0 ;
-
- /*
* Here we are upon the stage. Have the visual selected.
*/
window->Window.VisualInfo = fgChooseVisual();
# endif
}
- /*
- * If it's not double-buffered, make sure the rendering is done to the front buffer.
- */
- if ( ! window->Window.DoubleBuffered )
- {
- glDrawBuffer ( GL_FRONT ) ;
- glReadBuffer ( GL_FRONT ) ;
- }
-
#elif TARGET_HOST_WIN32
WNDCLASS wc;
if ( !isSubWindow )
{
/*
- * Update the window position and dimensions, taking account of window decorations
+ * Update the window dimensions, taking account of window decorations.
+ * "freeglut" is to create the window with the outside of its border at (x,y)
+ * and with dimensions (w,h).
*/
-
- x -= (GetSystemMetrics( SM_CXSIZEFRAME ) );
- y -= (GetSystemMetrics( SM_CYSIZEFRAME ) + GetSystemMetrics( SM_CYCAPTION ) );
- if ( y < 0 ) y = 0 ;
w += (GetSystemMetrics( SM_CXSIZEFRAME ) )*2;
h += (GetSystemMetrics( SM_CYSIZEFRAME ) )*2 + GetSystemMetrics( SM_CYCAPTION );
}
#endif
/*
+ * Save the window's single- or double-buffering state
+ */
+ window->Window.DoubleBuffered = ( fgState.DisplayMode & GLUT_DOUBLE ) ? 1 : 0 ;
+
+ /*
+ * If it's not double-buffered, make sure the rendering is done to the front buffer.
+ */
+ if ( ! window->Window.DoubleBuffered )
+ {
+ glDrawBuffer ( GL_FRONT ) ;
+ glReadBuffer ( GL_FRONT ) ;
+ }
+
+ /*
* Set the newly created window as the current one
*/
fgSetWindow( window );
/*
* Adjust the size of the window to allow for the size of the frame
*/
- width += (GetSystemMetrics( SM_CXSIZEFRAME ) - 1)*2;
- height += (GetSystemMetrics( SM_CYSIZEFRAME ) - 1)*2 + GetSystemMetrics( SM_CYCAPTION );
+ width += GetSystemMetrics( SM_CXSIZEFRAME ) * 2;
+ height += GetSystemMetrics( SM_CYSIZEFRAME ) * 2 + GetSystemMetrics( SM_CYCAPTION );
}
else /* This is a subwindow, get the parent window's position and subtract it off */
{
*/
GetWindowRect( fgStructure.Window->Window.Handle, &winRect );
- if ( fgStructure.Window->Parent == NULL ) /* If this is not a subwindow ... */
- {
- /*
- * Adjust the position of the window to allow for the size of the frame
- */
- x -= (GetSystemMetrics( SM_CXSIZEFRAME ) - 1);
- y -= (GetSystemMetrics( SM_CYSIZEFRAME ) - 1 + GetSystemMetrics( SM_CYCAPTION ));
- if ( y < 0 ) y = 0 ;
- }
-
/*
* Reposition the window, forcing a redraw to happen
*/
);
}
+/*
+ * A.Donev: Set and retrieve the window's user data
+ */
+void* FGAPIENTRY glutGetWindowData( void )
+{
+ return(fgStructure.Window->UserData);
+}
+
+void FGAPIENTRY glutSetWindowData(void* data)
+{
+ fgStructure.Window->UserData=data;
+}
+
/*** END OF FILE ***/