/******************************Module*Header*******************************\ * Module Name: glutil.cxx * * Misc. utility functions * * Copyright (c) 1996 Microsoft Corporation * \**************************************************************************/ #include #include #include #include #include #include #include #include "mtk.h" #include "glutil.hxx" MTK_OS_INFO gOSInfo; MTK_GL_CAPS gGLCaps; // this should be per context, eventually void (__stdcall *glAddSwapHintRect)(GLint, GLint, GLint, GLint); /******************************Public*Routine******************************\ * ss_fOnGL11 * * True if running on OpenGL v.1.1x * \**************************************************************************/ BOOL mtk_fOnGL11( void ) { return gGLCaps.bGLv1_1; } /******************************Public*Routine******************************\ * ss_fOnNT35 * * True if running on NT version 3.51 or less * \**************************************************************************/ BOOL mtk_fOnNT35( void ) { return gOSInfo.fOnNT35; } /******************************Public*Routine******************************\ * ss_fOnWin95 * * True if running on Windows 95 * \**************************************************************************/ BOOL mtk_fOnWin95( void ) { return gOSInfo.fOnWin95; } /******************************Public*Routine******************************\ * MyAddSwapHintRect * \**************************************************************************/ static void _stdcall MyAddSwapHintRect(GLint xs, GLint ys, GLint xe, GLint ye) { return; } /******************************Public*Routine******************************\ * QueryAddSwapHintRectWIN * \**************************************************************************/ //mf: again, per context problem BOOL mtk_QueryAddSwapHintRect() { glAddSwapHintRect = (PFNGLADDSWAPHINTRECTWINPROC) wglGetProcAddress("glAddSwapHintRectWIN"); if (glAddSwapHintRect == NULL) { glAddSwapHintRect = MyAddSwapHintRect; return FALSE; } return TRUE; } /******************************Public*Routine******************************\ * mtk_bAddSwapHintRect() * \**************************************************************************/ BOOL mtk_bAddSwapHintRect() { return gGLCaps.bAddSwapHintRect; } /******************************Public*Routine******************************\ \**************************************************************************/ MTK_OS_INFO::MTK_OS_INFO() { osvi.dwOSVersionInfoSize = sizeof(osvi); GetVersionEx(&osvi); fOnWin95 = (osvi.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS); fOnNT35 = ( (osvi.dwPlatformId == VER_PLATFORM_WIN32_NT) && (osvi.dwMajorVersion == 3 && osvi.dwMinorVersion <= 51) ); } /******************************Public*Routine******************************\ \**************************************************************************/ MTK_GL_CAPS::MTK_GL_CAPS() { bGLv1_1 = FALSE; bTextureObjects = FALSE; bAddSwapHintRect = FALSE; bPalettedTexture = FALSE; } void MTK_GL_CAPS::Query() { bGLv1_1 = (BOOL) strstr( (char *) glGetString(GL_VERSION), "1.1" ); if( bGLv1_1 ) bTextureObjects = TRUE; if( !bTextureObjects ) SS_DBGINFO( "MTK_GL_CAPS: Texture Objects disabled\n" ); bAddSwapHintRect = mtk_QueryAddSwapHintRect(); bPalettedTexture = mtk_QueryPalettedTextureEXT(); }