X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Ffreeglut_state.c;h=1cabb9dc6e943b55e952a83d1a1c8b4ea19a2529;hb=123cc1d42bff9bdda4cc5a1b621d51b019814257;hp=5dab8c58236de325b4d9e9023e2f0e624eac0733;hpb=e9ebb8053106d2504605c70a1fd777a52f1d9da4;p=freeglut diff --git a/src/freeglut_state.c b/src/freeglut_state.c index 5dab8c5..1cabb9d 100644 --- a/src/freeglut_state.c +++ b/src/freeglut_state.c @@ -68,23 +68,9 @@ static int fghGetConfig( int attribute ) static int fghCheckFullScreen(void) { #if TARGET_HOST_POSIX_X11 - - int result; - - result = 0; - if (fgDisplay.StateFullScreen != None) - { - result = fgHintPresent(fgStructure.CurrentWindow->Window.Handle, - fgDisplay.State, - fgDisplay.StateFullScreen); - } - - return result; - + return fgStructure.CurrentWindow->State.IsFullscreen; #else - - return 0; - + return 0; #endif } @@ -334,7 +320,7 @@ int FGAPIENTRY glutGet( GLenum eWhat ) GLXFBConfig * fbconfig; int isPossible; - fbconfig = fgChooseFBConfig(); + fbconfig = fgChooseFBConfig(NULL); if (fbconfig == NULL) { @@ -364,16 +350,28 @@ int FGAPIENTRY glutGet( GLenum eWhat ) /* Handle the OpenGL inquiries */ case GLUT_WINDOW_RGBA: +#if defined(_WIN32_WCE) + boolValue = (GLboolean)0; /* WinCE doesn't support this feature */ +#else glGetBooleanv ( GL_RGBA_MODE, &boolValue ); returnValue = boolValue ? 1 : 0; +#endif return returnValue; case GLUT_WINDOW_DOUBLEBUFFER: +#if defined(_WIN32_WCE) + boolValue = (GLboolean)0; /* WinCE doesn't support this feature */ +#else glGetBooleanv ( GL_DOUBLEBUFFER, &boolValue ); returnValue = boolValue ? 1 : 0; +#endif return returnValue; case GLUT_WINDOW_STEREO: +#if defined(_WIN32_WCE) + boolValue = (GLboolean)0; /* WinCE doesn't support this feature */ +#else glGetBooleanv ( GL_STEREO, &boolValue ); returnValue = boolValue ? 1 : 0; +#endif return returnValue; case GLUT_WINDOW_RED_SIZE: @@ -389,16 +387,32 @@ int FGAPIENTRY glutGet( GLenum eWhat ) glGetIntegerv ( GL_ALPHA_BITS, &returnValue ); return returnValue; case GLUT_WINDOW_ACCUM_RED_SIZE: +#if defined(_WIN32_WCE) + returnValue = 0; /* WinCE doesn't support this feature */ +#else glGetIntegerv ( GL_ACCUM_RED_BITS, &returnValue ); +#endif return returnValue; case GLUT_WINDOW_ACCUM_GREEN_SIZE: +#if defined(_WIN32_WCE) + returnValue = 0; /* WinCE doesn't support this feature */ +#else glGetIntegerv ( GL_ACCUM_GREEN_BITS, &returnValue ); +#endif return returnValue; case GLUT_WINDOW_ACCUM_BLUE_SIZE: +#if defined(_WIN32_WCE) + returnValue = 0; /* WinCE doesn't support this feature */ +#else glGetIntegerv ( GL_ACCUM_BLUE_BITS, &returnValue ); +#endif return returnValue; case GLUT_WINDOW_ACCUM_ALPHA_SIZE: +#if defined(_WIN32_WCE) + returnValue = 0; /* WinCE doesn't support this feature */ +#else glGetIntegerv ( GL_ACCUM_ALPHA_BITS, &returnValue ); +#endif return returnValue; case GLUT_WINDOW_DEPTH_SIZE: glGetIntegerv ( GL_DEPTH_BITS, &returnValue ); @@ -454,7 +468,8 @@ int FGAPIENTRY glutGet( GLenum eWhat ) #if !defined(_WIN32_WCE) if ( ( fgStructure.GameModeWindow != fgStructure.CurrentWindow ) && ( fgStructure.CurrentWindow->Parent == NULL ) && - ( ! fgStructure.CurrentWindow->IsMenu ) ) + ( ! fgStructure.CurrentWindow->IsMenu ) && + !( fgState.DisplayMode & GLUT_BORDERLESS )) { winRect.left += GetSystemMetrics( SM_CXSIZEFRAME ); winRect.right -= GetSystemMetrics( SM_CXSIZEFRAME ); @@ -477,6 +492,8 @@ int FGAPIENTRY glutGet( GLenum eWhat ) #if defined(_WIN32_WCE) return 0; #else + if ( fgState.DisplayMode & GLUT_BORDERLESS ) + return 0; return GetSystemMetrics( SM_CXSIZEFRAME ); #endif /* !defined(_WIN32_WCE) */ @@ -484,6 +501,8 @@ int FGAPIENTRY glutGet( GLenum eWhat ) #if defined(_WIN32_WCE) return 0; #else + if ( fgState.DisplayMode & GLUT_BORDERLESS ) + return 0; return GetSystemMetrics( SM_CYCAPTION ); #endif /* defined(_WIN32_WCE) */ @@ -647,10 +666,14 @@ int FGAPIENTRY glutDeviceGet( GLenum eWhat ) return 0; case GLUT_HAS_SPACEBALL: + return fgHasSpaceball(); + case GLUT_HAS_TABLET: return 0; case GLUT_NUM_SPACEBALL_BUTTONS: + return fgSpaceballNumButtons(); + case GLUT_NUM_TABLET_BUTTONS: return 0;