X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Ffreeglut_state.c;h=5dab8c58236de325b4d9e9023e2f0e624eac0733;hb=e9ebb8053106d2504605c70a1fd777a52f1d9da4;hp=cca7b9226d45aef68c43b00c441a4f9da876ec31;hpb=30971e75717f3d7b826714fbbb1171dfaf9164cf;p=freeglut diff --git a/src/freeglut_state.c b/src/freeglut_state.c index cca7b92..5dab8c5 100644 --- a/src/freeglut_state.c +++ b/src/freeglut_state.c @@ -64,6 +64,30 @@ static int fghGetConfig( int attribute ) } #endif +/* Check if the window is in full screen state. */ +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; + +#else + + return 0; + +#endif +} + /* -- INTERFACE FUNCTIONS -------------------------------------------------- */ /* @@ -179,6 +203,10 @@ int FGAPIENTRY glutGet( GLenum eWhat ) case GLUT_INIT_WINDOW_HEIGHT: return fgState.Size.Use ? fgState.Size.Y : -1 ; case GLUT_INIT_DISPLAY_MODE: return fgState.DisplayMode ; + case GLUT_INIT_MAJOR_VERSION: return fgState.MajorVersion ; + case GLUT_INIT_MINOR_VERSION: return fgState.MinorVersion ; + case GLUT_INIT_FLAGS: return fgState.ContextFlags ; + case GLUT_INIT_PROFILE: return fgState.ContextProfile ; #if TARGET_HOST_POSIX_X11 /* @@ -510,7 +538,15 @@ int FGAPIENTRY glutGet( GLenum eWhat ) case GLUT_DIRECT_RENDERING: return fgState.DirectContext; - break; + + case GLUT_FULL_SCREEN: + return fghCheckFullScreen(); + + case GLUT_AUX: + return fgState.AuxiliaryBufferNumber; + + case GLUT_MULTISAMPLE: + return fgState.SampleNumber; default: fgWarning( "glutGet(): missing enum handle %d", eWhat );