X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Ffreeglut_window.c;h=03a3b255d81045ef38d81c864b20c39990b89804;hb=d436cf08d6f5c0358d9220033560e6dfbce625c6;hp=cc73b88c733e3ad9a6405d84c415ad0a9ca60808;hpb=b74a81f78f36b5dc46435d4ea9048bca1e2db6a7;p=freeglut diff --git a/src/freeglut_window.c b/src/freeglut_window.c index cc73b88..03a3b25 100644 --- a/src/freeglut_window.c +++ b/src/freeglut_window.c @@ -25,6 +25,7 @@ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +#define FREEGLUT_BUILDING_LIB #include #include "freeglut_internal.h" @@ -132,14 +133,22 @@ GLXFBConfig* fgChooseFBConfig( void ) ATTRIB_VAL( GLX_ACCUM_ALPHA_SIZE, 1 ); } - if ((fgState.DisplayMode & GLUT_AUX) - || (fgState.DisplayMode & GLUT_AUX1) - || (fgState.DisplayMode & GLUT_AUX2) - || (fgState.DisplayMode & GLUT_AUX3) - || (fgState.DisplayMode & GLUT_AUX4)) - { - ATTRIB_VAL(GLX_AUX_BUFFERS, fgState.AuxiliaryBufferNumber) - } + if( fgState.DisplayMode & GLUT_AUX4 ) + { + ATTRIB_VAL(GLX_AUX_BUFFERS, 4); + } + else if( fgState.DisplayMode & GLUT_AUX3 ) + { + ATTRIB_VAL(GLX_AUX_BUFFERS, 3); + } + else if( fgState.DisplayMode & GLUT_AUX2 ) + { + ATTRIB_VAL(GLX_AUX_BUFFERS, 2); + } + else if( fgState.DisplayMode & GLUT_AUX1 ) /* NOTE: Same as GLUT_AUX! */ + { + ATTRIB_VAL(GLX_AUX_BUFFERS, fgState.AuxiliaryBufferNumber); + } if (fgState.DisplayMode & GLUT_MULTISAMPLE) { @@ -427,8 +436,8 @@ GLboolean fgSetupPixelFormat( SFG_Window* window, GLboolean checkOnly, pfd.cAuxBuffers = 3; else if( fgState.DisplayMode & GLUT_AUX2 ) pfd.cAuxBuffers = 2; - else if( fgState.DisplayMode & GLUT_AUX1 ) - pfd.cAuxBuffers = 1; + else if( fgState.DisplayMode & GLUT_AUX1 ) /* NOTE: Same as GLUT_AUX! */ + pfd.cAuxBuffers = fgState.AuxiliaryBufferNumber; else pfd.cAuxBuffers = 0; @@ -497,7 +506,7 @@ GLboolean fgSetupPixelFormat( SFG_Window* window, GLboolean checkOnly, pAttributes[iCounter++]=WGL_DOUBLE_BUFFER_ARB; pAttributes[iCounter++]=(fgState.DisplayMode & GLUT_DOUBLE)!=0; pAttributes[iCounter++]=WGL_SAMPLE_BUFFERS_ARB; pAttributes[iCounter++]=GL_TRUE; - pAttributes[iCounter++]=WGL_SAMPLES_ARB; pAttributes[iCounter++]=4; + pAttributes[iCounter++]=WGL_SAMPLES_ARB; pAttributes[iCounter++]=fgState.SampleNumber; pAttributes[iCounter++]=0; pAttributes[iCounter++]=0; /* terminator */ bValid = wglChoosePixelFormatARBProc(window->Window.Device,pAttributes,fAttributes,1,&iPixelFormat,&numFormats); @@ -1084,6 +1093,14 @@ int FGAPIENTRY glutCreateWindow( const char* title ) GL_FALSE, GL_FALSE )->ID; } +#ifdef _WIN32 +int FGAPIENTRY __glutCreateWindowWithExit( const char *title, void (__cdecl *exitfunc)(int) ) +{ + __glutExitFunc = exitfunc; + return glutCreateWindow( title ); +} +#endif + /* * This function creates a sub window. */