added support for WindowsCE (building on top of klimt)

git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@484 7f0cb862-5218-0410-a997-914c9d46530a
This commit is contained in:
drgoldie 2004-03-15 13:42:20 +00:00
parent 11d357efc4
commit 30aa3f91c3
15 changed files with 633 additions and 48 deletions

2
.gitattributes vendored
View File

@ -24,6 +24,8 @@ freeglut/freeglut/freeglut.dsw svn_keywords=Author+Date+Id+Revision
freeglut/freeglut/freeglut.kdevelop svn_keywords=Author+Date+Id+Revision
freeglut/freeglut/freeglut.kdevprj svn_keywords=Author+Date+Id+Revision
freeglut/freeglut/freeglut.lsm svn_keywords=Author+Date+Id+Revision
freeglut/freeglut/freeglut_evc4.vcp svn_keywords=Author+Date+Id+Revision
freeglut/freeglut/freeglut_evc4.vcw svn_keywords=Author+Date+Id+Revision
freeglut/freeglut/freeglut_static.dsp svn_keywords=Author+Date+Id+Revision
freeglut/freeglut/include/GL/Makefile.am svn_keywords=Author+Date+Id+Revision
freeglut/freeglut/include/GL/freeglut.h svn_keywords=Author+Date+Id+Revision

View File

@ -0,0 +1,384 @@
# Microsoft eMbedded Visual Tools Project File - Name="freeglut" - Package Owner=<4>
# Microsoft eMbedded Visual Tools Generated Build File, Format Version 6.02
# ** DO NOT EDIT **
# TARGTYPE "Win32 (WCE ARMV4) Dynamic-Link Library" 0xa302
CFG=freeglut - Win32 (WCE ARMV4) Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "freeglut_evc4.vcn".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "freeglut_evc4.vcn" CFG="freeglut - Win32 (WCE ARMV4) Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "freeglut - Win32 (WCE ARMV4) Release" (based on "Win32 (WCE ARMV4) Dynamic-Link Library")
!MESSAGE "freeglut - Win32 (WCE ARMV4) Debug" (based on "Win32 (WCE ARMV4) Dynamic-Link Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
# PROP ATL_Project 2
CPP="C:\Program Files\Microsoft eMbedded C++ 4.0\EVC\WCE420\bin\xicle42"
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "freeglut - Win32 (WCE ARMV4) Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "ARMV4Rel"
# PROP BASE Intermediate_Dir "ARMV4Rel"
# PROP BASE CPU_ID "{ECBEA43D-CD7B-4852-AD55-D4227B5D624B}"
# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "ARMV4Rel"
# PROP Intermediate_Dir "ARMV4Rel"
# PROP CPU_ID "{ECBEA43D-CD7B-4852-AD55-D4227B5D624B}"
# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "NDEBUG" /d "UNICODE" /d "_UNICODE" /d "$(CePlatform)" /d "ARM" /d "_ARM_" /d "ARMV4" /r
# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "NDEBUG" /d "UNICODE" /d "_UNICODE" /d "$(CePlatform)" /d "ARM" /d "_ARM_" /d "ARMV4" /r
# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "ARM" /D "_ARM_" /D "ARMV4" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /D "FREEGLUT_EXPORTS" /YX /O2 /M$(CECrtMT) /c
# ADD CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "ARM" /D "_ARM_" /D "ARMV4" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /D "FREEGLUT_EXPORTS" /YX /O2 /M$(CECrtMT) /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32="C:\Program Files\Microsoft eMbedded C++ 4.0\EVC\WCE420\bin\xilinke42"
# ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00100000" /stack:0x10000,0x1000 /entry:"_DllMainCRTStartup" /dll /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /align:"4096" /MACHINE:ARM
# ADD LINK32 commctrl.lib coredll.lib /nologo /base:"0x00100000" /stack:0x10000,0x1000 /entry:"_DllMainCRTStartup" /dll /nodefaultlib:"$(CENoDefaultLib)" /out:"ARMV4Rel/freeglut.dll" /subsystem:$(CESubsystem) /align:"4096" /MACHINE:ARM
!ELSEIF "$(CFG)" == "freeglut - Win32 (WCE ARMV4) Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "ARMV4Dbg"
# PROP BASE Intermediate_Dir "ARMV4Dbg"
# PROP BASE CPU_ID "{ECBEA43D-CD7B-4852-AD55-D4227B5D624B}"
# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "ARMV4Dbg"
# PROP Intermediate_Dir "ARMV4Dbg"
# PROP CPU_ID "{ECBEA43D-CD7B-4852-AD55-D4227B5D624B}"
# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "DEBUG" /d "UNICODE" /d "_UNICODE" /d "$(CePlatform)" /d "ARM" /d "_ARM_" /d "ARMV4" /r
# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "DEBUG" /d "UNICODE" /d "_UNICODE" /d "$(CePlatform)" /d "ARM" /d "_ARM_" /d "ARMV4" /r
# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "ARM" /D "_ARM_" /D "ARMV4" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "FREEGLUT_EXPORTS" /YX /M$(CECrtMTDebug) /c
# ADD CPP /nologo /W3 /Zi /Od /D "DEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "ARM" /D "_ARM_" /D "ARMV4" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "FREEGLUT_EXPORTS" /YX /M$(CECrtMTDebug) /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32="C:\Program Files\Microsoft eMbedded C++ 4.0\EVC\WCE420\bin\xilinke42"
# ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00100000" /stack:0x10000,0x1000 /entry:"_DllMainCRTStartup" /dll /debug /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /align:"4096" /MACHINE:ARM
# ADD LINK32 commctrl.lib coredll.lib /nologo /base:"0x00100000" /stack:0x10000,0x1000 /entry:"_DllMainCRTStartup" /dll /debug /nodefaultlib:"$(CENoDefaultLib)" /out:"ARMV4Dbg/freeglutD.dll" /subsystem:$(CESubsystem) /align:"4096" /MACHINE:ARM
!ENDIF
# Begin Target
# Name "freeglut - Win32 (WCE ARMV4) Release"
# Name "freeglut - Win32 (WCE ARMV4) Debug"
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=.\src\freeglut_callbacks.c
DEP_CPP_FREEG=\
".\src\freeglut_internal.h"\
{$(INCLUDE)}"GL\freeglut.h"\
{$(INCLUDE)}"GL\freeglut_ext.h"\
{$(INCLUDE)}"GL\freeglut_std.h"\
NODEP_CPP_FREEG=\
".\src\config.h"\
# End Source File
# Begin Source File
SOURCE=.\src\freeglut_cursor.c
DEP_CPP_FREEGL=\
".\src\freeglut_internal.h"\
{$(INCLUDE)}"GL\freeglut.h"\
{$(INCLUDE)}"GL\freeglut_ext.h"\
{$(INCLUDE)}"GL\freeglut_std.h"\
NODEP_CPP_FREEGL=\
".\src\config.h"\
# End Source File
# Begin Source File
SOURCE=.\src\freeglut_display.c
DEP_CPP_FREEGLU=\
".\src\freeglut_internal.h"\
{$(INCLUDE)}"GL\freeglut.h"\
{$(INCLUDE)}"GL\freeglut_ext.h"\
{$(INCLUDE)}"GL\freeglut_std.h"\
NODEP_CPP_FREEGLU=\
".\src\config.h"\
# End Source File
# Begin Source File
SOURCE=.\src\freeglut_ext.c
DEP_CPP_FREEGLUT=\
".\src\freeglut_internal.h"\
{$(INCLUDE)}"GL\freeglut.h"\
{$(INCLUDE)}"GL\freeglut_ext.h"\
{$(INCLUDE)}"GL\freeglut_std.h"\
NODEP_CPP_FREEGLUT=\
".\src\config.h"\
# End Source File
# Begin Source File
SOURCE=.\src\freeglut_font.c
DEP_CPP_FREEGLUT_=\
".\src\freeglut_internal.h"\
{$(INCLUDE)}"GL\freeglut.h"\
{$(INCLUDE)}"GL\freeglut_ext.h"\
{$(INCLUDE)}"GL\freeglut_std.h"\
NODEP_CPP_FREEGLUT_=\
".\src\config.h"\
# End Source File
# Begin Source File
SOURCE=.\src\freeglut_font_data.c
DEP_CPP_FREEGLUT_F=\
".\src\freeglut_internal.h"\
{$(INCLUDE)}"GL\freeglut.h"\
{$(INCLUDE)}"GL\freeglut_ext.h"\
{$(INCLUDE)}"GL\freeglut_std.h"\
NODEP_CPP_FREEGLUT_F=\
".\src\config.h"\
# End Source File
# Begin Source File
SOURCE=.\src\freeglut_gamemode.c
# PROP Exclude_From_Build 1
# End Source File
# Begin Source File
SOURCE=.\src\freeglut_geometry.c
DEP_CPP_FREEGLUT_G=\
".\src\freeglut_internal.h"\
{$(INCLUDE)}"GL\freeglut.h"\
{$(INCLUDE)}"GL\freeglut_ext.h"\
{$(INCLUDE)}"GL\freeglut_std.h"\
NODEP_CPP_FREEGLUT_G=\
".\src\config.h"\
# End Source File
# Begin Source File
SOURCE=.\src\freeglut_glutfont_definitions.c
DEP_CPP_FREEGLUT_GL=\
".\src\freeglut_internal.h"\
# End Source File
# Begin Source File
SOURCE=.\src\freeglut_init.c
DEP_CPP_FREEGLUT_I=\
".\src\freeglut_internal.h"\
{$(INCLUDE)}"GL\freeglut.h"\
{$(INCLUDE)}"GL\freeglut_ext.h"\
{$(INCLUDE)}"GL\freeglut_std.h"\
NODEP_CPP_FREEGLUT_I=\
".\src\config.h"\
# End Source File
# Begin Source File
SOURCE=.\src\freeglut_internal.h
# End Source File
# Begin Source File
SOURCE=.\src\freeglut_joystick.c
# PROP Exclude_From_Build 1
# End Source File
# Begin Source File
SOURCE=.\src\freeglut_main.c
DEP_CPP_FREEGLUT_M=\
".\src\freeglut_internal.h"\
{$(INCLUDE)}"GL\freeglut.h"\
{$(INCLUDE)}"GL\freeglut_ext.h"\
{$(INCLUDE)}"GL\freeglut_std.h"\
NODEP_CPP_FREEGLUT_M=\
".\src\config.h"\
# End Source File
# Begin Source File
SOURCE=.\src\freeglut_menu.c
DEP_CPP_FREEGLUT_ME=\
".\src\freeglut_internal.h"\
{$(INCLUDE)}"GL\freeglut.h"\
{$(INCLUDE)}"GL\freeglut_ext.h"\
{$(INCLUDE)}"GL\freeglut_std.h"\
NODEP_CPP_FREEGLUT_ME=\
".\src\config.h"\
# End Source File
# Begin Source File
SOURCE=.\src\freeglut_misc.c
DEP_CPP_FREEGLUT_MI=\
".\src\freeglut_internal.h"\
{$(INCLUDE)}"GL\freeglut.h"\
{$(INCLUDE)}"GL\freeglut_ext.h"\
{$(INCLUDE)}"GL\freeglut_std.h"\
NODEP_CPP_FREEGLUT_MI=\
".\src\config.h"\
# End Source File
# Begin Source File
SOURCE=.\src\freeglut_overlay.c
DEP_CPP_FREEGLUT_O=\
".\src\freeglut_internal.h"\
{$(INCLUDE)}"GL\freeglut.h"\
{$(INCLUDE)}"GL\freeglut_ext.h"\
{$(INCLUDE)}"GL\freeglut_std.h"\
NODEP_CPP_FREEGLUT_O=\
".\src\config.h"\
# End Source File
# Begin Source File
SOURCE=.\src\freeglut_state.c
DEP_CPP_FREEGLUT_S=\
".\src\freeglut_internal.h"\
{$(INCLUDE)}"GL\freeglut.h"\
{$(INCLUDE)}"GL\freeglut_ext.h"\
{$(INCLUDE)}"GL\freeglut_std.h"\
NODEP_CPP_FREEGLUT_S=\
".\src\config.h"\
# End Source File
# Begin Source File
SOURCE=.\src\freeglut_stroke_mono_roman.c
DEP_CPP_FREEGLUT_ST=\
".\src\freeglut_internal.h"\
# End Source File
# Begin Source File
SOURCE=.\src\freeglut_stroke_roman.c
DEP_CPP_FREEGLUT_STR=\
".\src\freeglut_internal.h"\
# End Source File
# Begin Source File
SOURCE=.\src\freeglut_structure.c
DEP_CPP_FREEGLUT_STRU=\
".\src\freeglut_internal.h"\
{$(INCLUDE)}"GL\freeglut.h"\
{$(INCLUDE)}"GL\freeglut_ext.h"\
{$(INCLUDE)}"GL\freeglut_std.h"\
NODEP_CPP_FREEGLUT_STRU=\
".\src\config.h"\
# End Source File
# Begin Source File
SOURCE=.\src\freeglut_teapot.c
DEP_CPP_FREEGLUT_T=\
".\src\freeglut_internal.h"\
{$(INCLUDE)}"GL\freeglut.h"\
{$(INCLUDE)}"GL\freeglut_ext.h"\
{$(INCLUDE)}"GL\freeglut_std.h"\
NODEP_CPP_FREEGLUT_T=\
".\src\config.h"\
# End Source File
# Begin Source File
SOURCE=.\src\freeglut_videoresize.c
DEP_CPP_FREEGLUT_V=\
".\src\freeglut_internal.h"\
{$(INCLUDE)}"GL\freeglut.h"\
{$(INCLUDE)}"GL\freeglut_ext.h"\
{$(INCLUDE)}"GL\freeglut_std.h"\
NODEP_CPP_FREEGLUT_V=\
".\src\config.h"\
# End Source File
# Begin Source File
SOURCE=.\src\freeglut_window.c
DEP_CPP_FREEGLUT_W=\
".\src\freeglut_internal.h"\
{$(INCLUDE)}"GL\freeglut.h"\
{$(INCLUDE)}"GL\freeglut_ext.h"\
{$(INCLUDE)}"GL\freeglut_std.h"\
NODEP_CPP_FREEGLUT_W=\
".\src\config.h"\
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE=.\include\GL\freeglut.h
# End Source File
# Begin Source File
SOURCE=.\include\GL\freeglut_ext.h
# End Source File
# Begin Source File
SOURCE=.\include\GL\freeglut_std.h
# End Source File
# Begin Source File
SOURCE=.\include\GL\glut.h
# End Source File
# End Group
# End Target
# End Project

View File

@ -0,0 +1,44 @@
Microsoft eMbedded Visual Tools Workspace File, Format Version 4.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
###############################################################################
Project: "Klimt"=..\..\klimt\klimt\build\EVC4\Klimt.vcp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Project: "freeglut"=.\freeglut_evc4.vcp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name Klimt
End Project Dependency
}}}
###############################################################################
Global:
Package=<5>
{{{
}}}
Package=<3>
{{{
}}}
###############################################################################

View File

@ -70,8 +70,10 @@
/* link with Win32 shared freeglut lib */
# if defined(_MSC_VER)
# ifndef _WIN32_WCE
# pragma comment (lib, "freeglut.lib")
# endif
# endif
# endif
@ -81,11 +83,13 @@
/* Drag in other Windows libraries as required by FreeGLUT */
# if defined(_MSC_VER)
# ifndef _WIN32_WCE
# pragma comment (lib, "winmm.lib") /* link Windows MultiMedia lib */
# pragma comment (lib, "user32.lib") /* link Windows user lib */
# pragma comment (lib, "gdi32.lib") /* link Windows GDI lib */
# pragma comment (lib, "opengl32.lib") /* link Microsoft OpenGL lib */
# pragma comment (lib, "glu32.lib") /* link OpenGL Utility lib */
# endif //_WIN32_WCE
# endif
#else

View File

@ -186,7 +186,7 @@ void FGAPIENTRY glutSetCursor( int cursorID )
}
}
#elif TARGET_HOST_WIN32
#elif TARGET_HOST_WIN32 || TARGET_HOST_WINCE
/*
* This is a temporary solution only...
@ -250,7 +250,7 @@ void FGAPIENTRY glutWarpPointer( int x, int y )
);
XFlush( fgDisplay.Display ); /* XXX Is this really necessary? */
#elif TARGET_HOST_WIN32
#elif TARGET_HOST_WIN32 || TARGET_HOST_WINCE
{
POINT coords;

View File

@ -59,7 +59,7 @@ void FGAPIENTRY glutSwapBuffers( void )
#if TARGET_HOST_UNIX_X11
glXSwapBuffers( fgDisplay.Display, fgStructure.Window->Window.Handle );
#elif TARGET_HOST_WIN32
#elif TARGET_HOST_WIN32 || TARGET_HOST_WINCE
SwapBuffers( fgStructure.Window->Window.Device );
#endif

View File

@ -111,7 +111,9 @@ static struct name_address_pair glut_functions[] =
{ "glutWindowStatusFunc", (void *) glutWindowStatusFunc },
{ "glutKeyboardUpFunc", (void *) glutKeyboardUpFunc },
{ "glutSpecialUpFunc", (void *) glutSpecialUpFunc },
#if !TARGET_HOST_WINCE
{ "glutJoystickFunc", (void *) glutJoystickFunc },
#endif //TARGET_HOST_WINCE
{ "glutSetColor", (void *) glutSetColor },
{ "glutGetColor", (void *) glutGetColor },
{ "glutCopyColormap", (void *) glutCopyColormap },
@ -152,11 +154,13 @@ static struct name_address_pair glut_functions[] =
{ "glutReportErrors", (void *) glutReportErrors },
{ "glutIgnoreKeyRepeat", (void *) glutIgnoreKeyRepeat },
{ "glutSetKeyRepeat", (void *) glutSetKeyRepeat },
#if !TARGET_HOST_WINCE
{ "glutForceJoystickFunc", (void *) glutForceJoystickFunc },
{ "glutGameModeString", (void *) glutGameModeString },
{ "glutEnterGameMode", (void *) glutEnterGameMode },
{ "glutLeaveGameMode", (void *) glutLeaveGameMode },
{ "glutGameModeGet", (void *) glutGameModeGet },
#endif //TARGET_HOST_WINCE
/* freeglut extensions */
{ "glutMainLoopEvent", (void *) glutMainLoopEvent },
{ "glutLeaveMainLoop", (void *) glutLeaveMainLoop },
@ -191,7 +195,7 @@ void *FGAPIENTRY glutGetProcAddress( const char *procName )
return glut_functions[ i ].address;
/* Try core GL functions */
#if TARGET_HOST_WIN32
#if TARGET_HOST_WIN32 || TARGET_HOST_WINCE
return( void * )wglGetProcAddress( ( LPCSTR )procName );
#elif TARGET_HOST_UNIX_X11 && defined( GLX_ARB_get_proc_address )
return(void * )glXGetProcAddressARB( ( const GLubyte * )procName );

View File

@ -107,7 +107,7 @@ void fghRememberState( void )
*/
# endif
#elif TARGET_HOST_WIN32
#elif TARGET_HOST_WIN32 || TARGET_HOST_WINCE
/* DEVMODE devMode; */
@ -204,7 +204,7 @@ void fghRestoreState( void )
*/
# endif
#elif TARGET_HOST_WIN32
#elif TARGET_HOST_WIN32 || TARGET_HOST_WINCE
/*
* Restore the previously rememebered desktop display settings
@ -294,7 +294,7 @@ GLboolean fghChangeDisplayMode( GLboolean haveToTest )
*/
# endif
#elif TARGET_HOST_WIN32
#elif TARGET_HOST_WIN32 || TARGET_HOST_WINCE
unsigned int displayModes = 0, mode = 0xffffffff;
GLboolean success = GL_FALSE;

View File

@ -70,7 +70,7 @@ SFG_State fgState = { { -1, -1, GL_FALSE }, /* Position */
0, /* FPSInterval */
0, /* SwapCount */
0, /* SwapTime */
#if TARGET_HOST_WIN32
#if TARGET_HOST_WIN32 || TARGET_HOST_WINCE
{ 0, GL_FALSE }, /* Time */
#else
{ { 0, 0 }, GL_FALSE },
@ -142,7 +142,7 @@ void fgInitialize( const char* displayName )
FALSE
);
#elif TARGET_HOST_WIN32
#elif TARGET_HOST_WIN32 || TARGET_HOST_WINCE
WNDCLASS wc;
ATOM atom;
@ -152,7 +152,8 @@ void fgInitialize( const char* displayName )
*/
fgDisplay.Instance = GetModuleHandle( NULL );
atom = GetClassInfo( fgDisplay.Instance, "FREEGLUT", &wc );
atom = GetClassInfo( fgDisplay.Instance, _T("FREEGLUT"), &wc );
if( atom == 0 )
{
ZeroMemory( &wc, sizeof(WNDCLASS) );
@ -165,19 +166,24 @@ void fgInitialize( const char* displayName )
* XXX Old code had "| CS_DBCLCKS" commented out. Plans for the
* XXX future? Dead-end idea?
*/
wc.style = CS_OWNDC | CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = fgWindowProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = fgDisplay.Instance;
wc.hIcon = LoadIcon( fgDisplay.Instance, "GLUT_ICON" );
wc.hIcon = LoadIcon( fgDisplay.Instance, _T("GLUT_ICON") );
#if TARGET_HOST_WIN32
wc.style = CS_OWNDC | CS_HREDRAW | CS_VREDRAW;
if (!wc.hIcon)
wc.hIcon = LoadIcon( NULL, IDI_WINLOGO );
#else //TARGET_HOST_WINCE
wc.style = CS_HREDRAW | CS_VREDRAW;
#endif
wc.hCursor = LoadCursor( NULL, IDC_ARROW );
wc.hbrBackground = NULL;
wc.lpszMenuName = NULL;
wc.lpszClassName = "FREEGLUT";
wc.lpszClassName = _T("FREEGLUT");
/*
* Register the window class
@ -204,8 +210,10 @@ void fgInitialize( const char* displayName )
#endif
#if !TARGET_HOST_WINCE
fgJoystickInit( 0 );
fgJoystickInit( 1 );
#endif //!TARGET_HOST_WINCE
fgState.Initialised = GL_TRUE;
}
@ -249,7 +257,9 @@ void fgDeinitialize( void )
free( timer );
}
#if !TARGET_HOST_WINCE
fgJoystickClose( );
#endif //!TARGET_HOST_WINCE
fgState.Initialised = GL_FALSE;
@ -321,7 +331,7 @@ void fgDeinitialize( void )
* Everything inside the following #ifndef is copied from the X sources.
*/
#if TARGET_HOST_WIN32
#if TARGET_HOST_WIN32 || TARGET_HOST_WINCE
/*
@ -516,6 +526,7 @@ void FGAPIENTRY glutInit( int* pargc, char** argv )
fgElapsedTime( );
/* check if GLUT_FPS env var is set */
#if !TARGET_HOST_WINCE
{
const char *fps = getenv( "GLUT_FPS" );
if( fps )
@ -612,6 +623,8 @@ void FGAPIENTRY glutInit( int* pargc, char** argv )
}
}
#endif //TARGET_HOST_WINCE
/*
* Have the display created now. If there wasn't a "-display"
* in the program arguments, we will use the DISPLAY environment

View File

@ -36,12 +36,18 @@
/*
* Freeglut is meant to be available under all Unix/X11 and Win32 platforms.
*/
#if defined(_MSC_VER) || defined(__CYGWIN__) || defined(__MINGW32__)
#if defined(_WIN32_WCE)
# define TARGET_HOST_UNIX_X11 0
# define TARGET_HOST_WIN32 0
# define TARGET_HOST_WINCE 1
#elif defined(_MSC_VER) || defined(__CYGWIN__) || defined(__MINGW32__)
# define TARGET_HOST_UNIX_X11 0
# define TARGET_HOST_WIN32 1
# define TARGET_HOST_WINCE 0
#else
# define TARGET_HOST_UNIX_X11 1
# define TARGET_HOST_WIN32 0
# define TARGET_HOST_WINCE 0
#endif
#define FREEGLUT_MAX_MENUS 3
@ -62,6 +68,7 @@
#include <windows.h>
#include <windowsx.h>
#include <mmsystem.h>
#include <TCHAR.H>
#endif
#if defined(_MSC_VER)
@ -288,7 +295,7 @@ struct tagSFG_Display
#endif
#elif TARGET_HOST_WIN32
#elif TARGET_HOST_WIN32 || TARGET_HOST_WINCE
HINSTANCE Instance; /* The application's instance */
DEVMODE DisplayMode; /* Desktop's display settings */
@ -322,7 +329,7 @@ struct tagSFG_Timer
typedef Window SFG_WindowHandleType ;
typedef GLXContext SFG_WindowContextType ;
#elif TARGET_HOST_WIN32
#elif TARGET_HOST_WIN32 || TARGET_HOST_WINCE
typedef HWND SFG_WindowHandleType ;
typedef HGLRC SFG_WindowContextType ;
@ -343,7 +350,7 @@ struct tagSFG_Context
XVisualInfo* VisualInfo; /* The window's visual information */
Pixmap Pixmap; /* Used for offscreen rendering */
/* GLXPixmap GLXPixMap; */ /* Used for offscreen rendering */
#elif TARGET_HOST_WIN32
#elif TARGET_HOST_WIN32 || TARGET_HOST_WINCE
HDC Device; /* The window's device context */
#endif
@ -735,7 +742,7 @@ XVisualInfo* fgChooseVisual( void );
/*
* The window procedure for Win32 events handling
*/
#if TARGET_HOST_WIN32
#if TARGET_HOST_WIN32 || TARGET_HOST_WINCE
LRESULT CALLBACK fgWindowProc( HWND hWnd, UINT uMsg,
WPARAM wParam, LPARAM lParam );
GLboolean fgSetupPixelFormat( SFG_Window* window, GLboolean checkOnly,

View File

@ -84,8 +84,9 @@ static void fghReshapeWindowByHandle ( SFG_WindowHandleType handle,
width, height );
XFlush( fgDisplay.Display ); /* XXX Shouldn't need this */
#elif TARGET_HOST_WIN32
#elif TARGET_HOST_WIN32 || TARGET_HOST_WINCE
#if !TARGET_HOST_WINCE
{
RECT rect;
@ -132,6 +133,7 @@ static void fghReshapeWindowByHandle ( SFG_WindowHandleType handle,
SWP_NOZORDER
);
}
#endif //TARGET_HOST_WINCE
/*
* XXX Should update {window->State.OldWidth, window->State.OldHeight}
@ -227,7 +229,7 @@ static void fghcbDisplayWindow( SFG_Window *window,
INVOKE_WCB( *window, Display, ( ) );
fgSetWindow( current_window );
}
#elif TARGET_HOST_WIN32
#elif TARGET_HOST_WIN32 || TARGET_HOST_WINCE
RedrawWindow(
window->Window.Handle, NULL, NULL,
RDW_NOERASE | RDW_INTERNALPAINT | RDW_INVALIDATE | RDW_UPDATENOW
@ -262,7 +264,9 @@ static void fghcbCheckJoystickPolls( SFG_Window *window,
if( window->State.JoystickLastPoll + window->State.JoystickPollRate <=
checkTime )
{
#if !TARGET_HOST_WINCE
fgJoystickPollWindow( window );
#endif //!TARGET_HOST_WINCE
window->State.JoystickLastPoll = checkTime;
}
@ -322,6 +326,8 @@ long fgElapsedTime( void )
return elapsed;
#elif TARGET_HOST_WIN32
return timeGetTime() - fgState.Time.Value;
#elif TARGET_HOST_WINCE
return GetTickCount() - fgState.Time.Value;
#endif
}
else
@ -330,6 +336,8 @@ long fgElapsedTime( void )
gettimeofday( &fgState.Time.Value, NULL );
#elif TARGET_HOST_WIN32
fgState.Time.Value = timeGetTime ();
#elif TARGET_HOST_WINCE
fgState.Time.Value = GetTickCount();
#endif
fgState.Time.Set = GL_TRUE ;
@ -478,7 +486,7 @@ static void fgSleepForEvents( void )
if( -1 == err )
fgWarning ( "freeglut select() error: %d\n", errno );
}
#elif TARGET_HOST_WIN32
#elif TARGET_HOST_WIN32 || TARGET_HOST_WINCE
MsgWaitForMultipleObjects( 0, NULL, FALSE, msec, QS_ALLEVENTS );
#endif
}
@ -1047,7 +1055,7 @@ void FGAPIENTRY glutMainLoopEvent( void )
}
}
#elif TARGET_HOST_WIN32
#elif TARGET_HOST_WIN32 || TARGET_HOST_WINCE
MSG stMsg;
@ -1085,13 +1093,13 @@ void FGAPIENTRY glutMainLoop( void )
{
int action;
#if TARGET_HOST_WIN32
#if TARGET_HOST_WIN32 || TARGET_HOST_WINCE
SFG_Window *window = (SFG_Window *)fgStructure.Windows.First ;
#endif
freeglut_assert_ready;
#if TARGET_HOST_WIN32
#if TARGET_HOST_WIN32 || TARGET_HOST_WINCE
/*
* Processing before the main loop: If there is a window which is open and
* which has a visibility callback, call it. I know this is an ugly hack,
@ -1163,7 +1171,7 @@ void FGAPIENTRY glutLeaveMainLoop( void )
}
#if TARGET_HOST_WIN32
#if TARGET_HOST_WIN32 || TARGET_HOST_WINCE
/*
* Determine a GLUT modifer mask based on MS-WINDOWS system info.
*/
@ -1208,7 +1216,9 @@ LRESULT CALLBACK fgWindowProc( HWND hWnd, UINT uMsg, WPARAM wParam,
{
unsigned int current_DisplayMode = fgState.DisplayMode;
fgState.DisplayMode = GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH;
#if !TARGET_HOST_WINCE
fgSetupPixelFormat( window, GL_FALSE, PFD_MAIN_PLANE );
#endif
fgState.DisplayMode = current_DisplayMode;
if( fgStructure.MenuContext )
@ -1228,7 +1238,9 @@ LRESULT CALLBACK fgWindowProc( HWND hWnd, UINT uMsg, WPARAM wParam,
}
else
{
#if !TARGET_HOST_WINCE
fgSetupPixelFormat( window, GL_FALSE, PFD_MAIN_PLANE );
#endif
if( ! fgState.UseCurrentContext )
window->Window.Context =
@ -1258,8 +1270,13 @@ LRESULT CALLBACK fgWindowProc( HWND hWnd, UINT uMsg, WPARAM wParam,
if( window->State.Visible )
{
window->State.NeedToResize = GL_TRUE;
#if TARGET_HOST_WINCE
window->State.Width = HIWORD(lParam);
window->State.Height = LOWORD(lParam);
#else
window->State.Width = LOWORD(lParam);
window->State.Height = HIWORD(lParam);
#endif //TARGET_HOST_WINCE
}
break;
@ -1423,6 +1440,7 @@ LRESULT CALLBACK fgWindowProc( HWND hWnd, UINT uMsg, WPARAM wParam,
break;
}
#if !TARGET_HOST_WINCE
if( GetSystemMetrics( SM_SWAPBUTTON ) )
{
if( button == GLUT_LEFT_BUTTON )
@ -1431,6 +1449,7 @@ LRESULT CALLBACK fgWindowProc( HWND hWnd, UINT uMsg, WPARAM wParam,
if( button == GLUT_RIGHT_BUTTON )
button = GLUT_LEFT_BUTTON;
}
#endif //!TARGET_HOST_WINCE
if( button == -1 )
return DefWindowProc( hWnd, uMsg, lParam, wParam );
@ -1714,6 +1733,7 @@ LRESULT CALLBACK fgWindowProc( HWND hWnd, UINT uMsg, WPARAM wParam,
default:
{
#if !TARGET_HOST_WINCE
BYTE state[ 256 ];
WORD code[ 2 ];
@ -1726,6 +1746,7 @@ LRESULT CALLBACK fgWindowProc( HWND hWnd, UINT uMsg, WPARAM wParam,
( (char)wParam,
window->State.MouseX, window->State.MouseY )
);
#endif //!TARGET_HOST_WINCE
}
}
@ -1787,6 +1808,7 @@ LRESULT CALLBACK fgWindowProc( HWND hWnd, UINT uMsg, WPARAM wParam,
lRet = DefWindowProc( hWnd, uMsg, wParam, lParam );
break;
#if !TARGET_HOST_WINCE
case WM_SYNCPAINT: /* 0x0088 */
/* Another window has moved, need to update this one */
window->State.Redisplay = GL_TRUE;
@ -1864,6 +1886,7 @@ LRESULT CALLBACK fgWindowProc( HWND hWnd, UINT uMsg, WPARAM wParam,
break ;
}
}
#endif //!TARGET_HOST_WINCE
/* We need to pass the message on to the operating system as well */
lRet = DefWindowProc( hWnd, uMsg, wParam, lParam );

View File

@ -56,7 +56,7 @@
* that that wasn't the original intent...if not, perhaps we need another
* symbolic constant, FREEGLUT_MENU_ITEM_BORDER, or such.)
*/
#if TARGET_HOST_WIN32
#if TARGET_HOST_WIN32 || TARGET_HOST_WINCE
#define FREEGLUT_MENU_FONT GLUT_BITMAP_8_BY_13
#else
#define FREEGLUT_MENU_FONT GLUT_BITMAP_HELVETICA_18
@ -75,7 +75,7 @@
* too. These variables should be stuffed into global state and initialized
* via the glutInit*() system.
*/
#if TARGET_HOST_WIN32
#if TARGET_HOST_WIN32 || TARGET_HOST_WINCE
static float menu_pen_fore [4] = {0.0f, 0.0f, 0.0f, 1.0f};
static float menu_pen_back [4] = {0.85f, 0.85f, 0.85f, 1.0f};
static float menu_pen_hfore [4] = {1.0f, 1.0f, 1.0f, 1.0f};

View File

@ -137,10 +137,12 @@ void FGAPIENTRY glutSetKeyRepeat( int repeatMode )
*/
void FGAPIENTRY glutForceJoystickFunc( void )
{
#if !TARGET_HOST_WINCE
freeglut_assert_ready;
freeglut_return_if_fail( fgStructure.Window != NULL );
freeglut_return_if_fail( FETCH_WCB( *( fgStructure.Window ), Joystick ) );
fgJoystickPollWindow( fgStructure.Window );
#endif //!TARGET_HOST_WINCE
}
/*

View File

@ -124,7 +124,7 @@ void FGAPIENTRY glutSetOption( GLenum eWhat, int value )
*/
int FGAPIENTRY glutGet( GLenum eWhat )
{
#if TARGET_HOST_WIN32
#if TARGET_HOST_WIN32 || TARGET_HOST_WINCE
int returnValue ;
GLboolean boolValue ;
#endif
@ -281,7 +281,7 @@ int FGAPIENTRY glutGet( GLenum eWhat )
return fgStructure.Window->Window.VisualInfo->visualid;
#elif TARGET_HOST_WIN32
#elif TARGET_HOST_WIN32 || TARGET_HOST_WINCE
/*
* Handle the OpenGL inquiries
@ -376,6 +376,8 @@ int FGAPIENTRY glutGet( GLenum eWhat )
/*
* ...then we've got to correct the results we've just received...
*/
#if !TARGET_HOST_WINCE
if ( ( fgStructure.GameMode != fgStructure.Window ) && ( fgStructure.Window->Parent == NULL ) &&
( ! fgStructure.Window->IsMenu ) )
{
@ -384,6 +386,7 @@ int FGAPIENTRY glutGet( GLenum eWhat )
winRect.top += GetSystemMetrics( SM_CYSIZEFRAME ) + GetSystemMetrics( SM_CYCAPTION );
winRect.bottom -= GetSystemMetrics( SM_CYSIZEFRAME );
}
#endif //TARGET_HOST_WINCE
switch( eWhat )
{
@ -396,18 +399,33 @@ int FGAPIENTRY glutGet( GLenum eWhat )
break;
case GLUT_WINDOW_BORDER_WIDTH :
#if TARGET_HOST_WINCE
return 0;
#else
return GetSystemMetrics( SM_CXSIZEFRAME );
#endif //TARGET_HOST_WINCE
case GLUT_WINDOW_HEADER_HEIGHT :
#if TARGET_HOST_WINCE
return 0;
#else
return GetSystemMetrics( SM_CYCAPTION );
#endif //TARGET_HOST_WINCE
case GLUT_DISPLAY_MODE_POSSIBLE:
#if TARGET_HOST_WINCE
return GL_FALSE;
#else
return fgSetupPixelFormat( fgStructure.Window, GL_TRUE,
PFD_MAIN_PLANE );
#endif //TARGET_HOST_WINCE
case GLUT_WINDOW_FORMAT_ID:
#if !TARGET_HOST_WINCE
if( fgStructure.Window != NULL )
return GetPixelFormat( fgStructure.Window->Window.Device );
#endif //TARGET_HOST_WINCE
return 0;
#endif
@ -503,7 +521,7 @@ int FGAPIENTRY glutDeviceGet( GLenum eWhat )
*/
return 3 ;
#elif TARGET_HOST_WIN32
#elif TARGET_HOST_WIN32 || TARGET_HOST_WINCE
case GLUT_HAS_MOUSE:
/*
@ -516,7 +534,11 @@ int FGAPIENTRY glutDeviceGet( GLenum eWhat )
/*
* We are much more fortunate under Win32 about this...
*/
#if TARGET_HOST_WINCE
return 1;
#else
return GetSystemMetrics( SM_CMOUSEBUTTONS );
#endif //TARGET_HOST_WINCE
#endif
@ -619,7 +641,7 @@ int FGAPIENTRY glutLayerGet( GLenum eWhat )
case GLUT_OVERLAY_DAMAGED:
return -1;
#elif TARGET_HOST_WIN32
#elif TARGET_HOST_WIN32 || TARGET_HOST_WINCE
case GLUT_OVERLAY_POSSIBLE:
/* return fgSetupPixelFormat( fgStructure.Window, GL_TRUE,

View File

@ -32,6 +32,23 @@
#include <GL/freeglut.h>
#include "freeglut_internal.h"
#if TARGET_HOST_WINCE
#include <aygshell.h>
#pragma comment( lib, "Aygshell.lib" )
wchar_t* wstr_from_str(const char* str)
{
int i,len=strlen(str);
wchar_t* wstr = (wchar_t*)malloc(2*len+2);
for(i=0; i<len; i++)
wstr[i] = str[i];
wstr[len] = 0;
return wstr;
}
#endif //TARGET_HOST_WINCE
/*
* TODO BEFORE THE STABLE RELEASE:
*
@ -154,6 +171,9 @@ XVisualInfo* fgChooseVisual( void )
GLboolean fgSetupPixelFormat( SFG_Window* window, GLboolean checkOnly,
unsigned char layer_type )
{
#if TARGET_HOST_WINCE
return GL_TRUE;
#else
PIXELFORMATDESCRIPTOR* ppfd, pfd;
int flags, pixelformat;
@ -211,6 +231,7 @@ GLboolean fgSetupPixelFormat( SFG_Window* window, GLboolean checkOnly,
if( checkOnly )
return GL_TRUE;
return SetPixelFormat( window->Window.Device, pixelformat, ppfd );
#endif //TARGET_HOST_WINCE
}
#endif
@ -227,7 +248,7 @@ void fgSetWindow ( SFG_Window *window )
window->Window.Handle,
window->Window.Context
);
#elif TARGET_HOST_WIN32
#elif TARGET_HOST_WIN32 || TARGET_HOST_WINCE
if( fgStructure.Window )
ReleaseDC( fgStructure.Window->Window.Handle,
fgStructure.Window->Window.Device );
@ -425,10 +446,17 @@ void fgOpenWindow( SFG_Window* window, const char* title,
* that they should replace a window manager that they like, and which
* works, just because *we* think that it's not "modern" enough.
*/
#if TARGET_HOST_WINCE
sizeHints.x = 0;
sizeHints.y = 0;
sizeHints.width = 320;
sizeHints.height = 240;
#else
sizeHints.x = x;
sizeHints.y = y;
sizeHints.width = w;
sizeHints.height = h;
#endif //TARGET_HOST_WINCE
wmHints.flags = StateHint;
wmHints.initial_state = fgState.ForceIconic ? IconicState : NormalState;
@ -454,7 +482,7 @@ void fgOpenWindow( SFG_Window* window, const char* title,
XMapWindow( fgDisplay.Display, window->Window.Handle );
#elif TARGET_HOST_WIN32
#elif TARGET_HOST_WIN32 || TARGET_HOST_WINCE
WNDCLASS wc;
DWORD flags;
@ -466,7 +494,7 @@ void fgOpenWindow( SFG_Window* window, const char* title,
/*
* Grab the window class we have registered on glutInit():
*/
atom = GetClassInfo( fgDisplay.Instance, "FREEGLUT", &wc );
atom = GetClassInfo( fgDisplay.Instance, _T("FREEGLUT"), &wc );
assert( atom != 0 );
if( gameMode )
@ -481,6 +509,7 @@ void fgOpenWindow( SFG_Window* window, const char* title,
}
else
{
#if !TARGET_HOST_WINCE
if ( ( ! isSubWindow ) && ( ! window->IsMenu ) )
{
/*
@ -492,6 +521,7 @@ void fgOpenWindow( SFG_Window* window, const char* title,
h += (GetSystemMetrics( SM_CYSIZEFRAME ) )*2 +
GetSystemMetrics( SM_CYCAPTION );
}
#endif //TARGET_HOST_WINCE
if( ! fgState.Position.Use )
{
@ -515,12 +545,39 @@ void fgOpenWindow( SFG_Window* window, const char* title,
flags |= WS_POPUP;
exFlags |= WS_EX_TOOLWINDOW;
}
#if !TARGET_HOST_WINCE
else if( window->Parent == NULL )
flags |= WS_OVERLAPPEDWINDOW;
#endif
else
flags |= WS_CHILD;
}
#if TARGET_HOST_WINCE
{
wchar_t* wstr = wstr_from_str(title);
window->Window.Handle = CreateWindow(
_T("FREEGLUT"),
wstr,
WS_VISIBLE | WS_POPUP,
0,0, 240,320,
NULL,
NULL,
fgDisplay.Instance,
(LPVOID) window
);
free(wstr);
SHFullScreen(window->Window.Handle, SHFS_HIDESTARTICON);
SHFullScreen(window->Window.Handle, SHFS_HIDESIPBUTTON);
SHFullScreen(window->Window.Handle, SHFS_HIDETASKBAR);
MoveWindow(window->Window.Handle, 0, 0, 240, 320, TRUE);
ShowWindow(window->Window.Handle, SW_SHOW);
UpdateWindow(window->Window.Handle);
}
#else
window->Window.Handle = CreateWindowEx(
exFlags,
"FREEGLUT",
@ -532,11 +589,18 @@ void fgOpenWindow( SFG_Window* window, const char* title,
fgDisplay.Instance,
(LPVOID) window
);
#endif TARGET_HOST_WINCE
if( !( window->Window.Handle ) )
fgError( "Failed to create a window (%s)!", title );
#if TARGET_HOST_WINCE
ShowWindow( window->Window.Handle, SW_SHOW );
#else
ShowWindow( window->Window.Handle,
fgState.ForceIconic ? SW_SHOWMINIMIZED : SW_SHOW );
#endif //TARGET_HOST_WINCE
UpdateWindow( window->Window.Handle );
ShowCursor( TRUE ); /* XXX Old comments say "hide cusror"! */
@ -569,7 +633,7 @@ void fgCloseWindow( SFG_Window* window )
XFlush( fgDisplay.Display ); /* XXX Shouldn't need this */
#elif TARGET_HOST_WIN32
#elif TARGET_HOST_WIN32 || TARGET_HOST_WINCE
/*
* Make sure we don't close a window with current context active
@ -694,7 +758,7 @@ void FGAPIENTRY glutShowWindow( void )
XMapWindow( fgDisplay.Display, fgStructure.Window->Window.Handle );
XFlush( fgDisplay.Display ); /* XXX Shouldn't need this */
#elif TARGET_HOST_WIN32
#elif TARGET_HOST_WIN32 || TARGET_HOST_WINCE
ShowWindow( fgStructure.Window->Window.Handle, SW_SHOW );
@ -722,7 +786,7 @@ void FGAPIENTRY glutHideWindow( void )
fgStructure.Window->Window.Handle );
XFlush( fgDisplay.Display ); /* XXX Shouldn't need this */
#elif TARGET_HOST_WIN32
#elif TARGET_HOST_WIN32 || TARGET_HOST_WINCE
ShowWindow( fgStructure.Window->Window.Handle, SW_HIDE );
@ -746,7 +810,7 @@ void FGAPIENTRY glutIconifyWindow( void )
fgDisplay.Screen );
XFlush( fgDisplay.Display ); /* XXX Shouldn't need this */
#elif TARGET_HOST_WIN32
#elif TARGET_HOST_WIN32 || TARGET_HOST_WINCE
ShowWindow( fgStructure.Window->Window.Handle, SW_MINIMIZE );
@ -785,6 +849,14 @@ void FGAPIENTRY glutSetWindowTitle( const char* title )
SetWindowText( fgStructure.Window->Window.Handle, title );
#elif TARGET_HOST_WINCE
{
wchar_t* wstr = wstr_from_str(title);
SetWindowText( fgStructure.Window->Window.Handle, wstr );
free(wstr);
}
#endif
}
}
@ -820,6 +892,14 @@ void FGAPIENTRY glutSetIconTitle( const char* title )
SetWindowText( fgStructure.Window->Window.Handle, title );
#elif TARGET_HOST_WINCE
{
wchar_t* wstr = wstr_from_str(title);
SetWindowText( fgStructure.Window->Window.Handle, wstr );
free(wstr);
}
#endif
}
}
@ -851,7 +931,7 @@ void FGAPIENTRY glutPositionWindow( int x, int y )
x, y );
XFlush( fgDisplay.Display ); /* XXX Shouldn't need this */
#elif TARGET_HOST_WIN32
#elif TARGET_HOST_WIN32 || TARGET_HOST_WINCE
{
RECT winRect;
@ -882,7 +962,7 @@ void FGAPIENTRY glutPushWindow( void )
XLowerWindow( fgDisplay.Display, fgStructure.Window->Window.Handle );
#elif TARGET_HOST_WIN32
#elif TARGET_HOST_WIN32 || TARGET_HOST_WINCE
SetWindowPos(
fgStructure.Window->Window.Handle,
@ -906,7 +986,7 @@ void FGAPIENTRY glutPopWindow( void )
XRaiseWindow( fgDisplay.Display, fgStructure.Window->Window.Handle );
#elif TARGET_HOST_WIN32
#elif TARGET_HOST_WIN32 || TARGET_HOST_WINCE
SetWindowPos(
fgStructure.Window->Window.Handle,