FETCH_WCB( *window, Destroy ) = destroy;
}
-
- /*
- * If the destroyed window has the highest window ID number, decrement
- * the window ID number.
- *
- * XXX Do we REALLY want to *ever* recycle window IDs? Integers are
- * XXX plentiful, and clients may rely upon the implied promise in
- * XXX the GLUT docs to not recycle these. (I can't remember if it
- * XXX is explicit.)
- *
- * XXX If we *do* want to do this, we should actually recompute the
- * XXX highest window-ID; the new highest may not in fact be one less
- * XXX than what we have just deleted.
- */
- if ( window->ID == fgStructure.WindowID )
- fgStructure.WindowID--;
-
/*
* Check the execution state. If this has been called from
* "glutDestroyWindow", a statement in that function will reset the
while( subWindow = ( SFG_Window * )window->Children.First )
fgDestroyWindow( subWindow, needToClose );
- /*
- * XXX Since INVOKE_WCB() tests the function pointer, why not make
- * XXX this unconditional? Overhead is close to nil, and it would
- * XXX clarify the code by omitting a conditional test.
- */
- if( FETCH_WCB( *window, Destroy ) )
{
SFG_Window *activeWindow = fgStructure.Window ;
INVOKE_WCB( *window, Destroy, ( ) );
if ( enumerator->found )
return;
-#if TARGET_HOST_UNIX_X11
- #define WBHANDLE (Window)
-#elif TARGET_HOST_WIN32
- #define WBHANDLE (HWND)
-#endif
-
/*
* Check the window's handle. Hope this works. Looks ugly. That's for sure.
*/
- if( window->Window.Handle == WBHANDLE (enumerator->data) )
+ if( window->Window.Handle == (SFG_WindowHandleType) (enumerator->data) )
{
enumerator->found = GL_TRUE;
enumerator->data = window;
* Otherwise, check this window's children
*/
fgEnumSubWindows( window, fghcbWindowByHandle, enumerator );
-
-#undef WBHANDLE
}
/*
* first window in the queue matching the specified window handle.
* The function is defined in freeglut_structure.c file.
*/
-SFG_Window* fgWindowByHandle
-#if TARGET_HOST_UNIX_X11
-( Window hWindow )
-#elif TARGET_HOST_WIN32
-( HWND hWindow )
-#endif
+SFG_Window* fgWindowByHandle ( SFG_WindowHandleType hWindow )
{
SFG_Enumerator enumerator;