From b2062dd91f75bfece12bd474aedd69e6363ea19e Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Wed, 22 Jan 2003 22:41:05 +0000 Subject: [PATCH] add paletted texture entry points remove texture compression ones --- stepmania/src/RageDisplay.cpp | 19 ++++++++++++++++--- stepmania/src/RageDisplay.h | 1 + stepmania/src/RageDisplayInternal.h | 9 +++++++-- 3 files changed, 24 insertions(+), 5 deletions(-) diff --git a/stepmania/src/RageDisplay.cpp b/stepmania/src/RageDisplay.cpp index ff971be4ef..2bdb640af3 100644 --- a/stepmania/src/RageDisplay.cpp +++ b/stepmania/src/RageDisplay.cpp @@ -49,6 +49,8 @@ static int g_iFramesRenderedSinceLastCheck, g_iNumChecksSinceLastReset; PWSWAPINTERVALEXTPROC GLExt::wglSwapIntervalEXT; +PFNGLCOLORTABLEPROC GLExt::glColorTableEXT; +PFNGLCOLORTABLEPARAMETERIVPROC GLExt::glGetColorTableParameterivEXT; /* We don't actually use normals (we don't tunr on lighting), there's just * no GL_T2F_C4F_V3F. */ @@ -155,16 +157,22 @@ void RageDisplay::SetupExtensions() /* Check for extensions: */ m_oglspecs->EXT_texture_env_combine = HasExtension("GL_EXT_texture_env_combine"); - m_oglspecs->ARB_texture_compression = HasExtension("GL_ARB_texture_compression"); - m_oglspecs->EXT_texture_compression_s3tc = HasExtension("GL_EXT_texture_compression_s3tc"); m_oglspecs->WGL_EXT_swap_control = HasExtension("WGL_EXT_swap_control"); + m_oglspecs->EXT_paletted_texture = HasExtension("GL_EXT_paletted_texture"); /* Find extension functions. */ wglSwapIntervalEXT = (PWSWAPINTERVALEXTPROC) SDL_GL_GetProcAddress("wglSwapIntervalEXT"); - + glColorTableEXT = (PFNGLCOLORTABLEPROC) SDL_GL_GetProcAddress("glColorTableEXT"); + glGetColorTableParameterivEXT = (PFNGLCOLORTABLEPARAMETERIVPROC) SDL_GL_GetProcAddress("glGetColorTableParameterivEXT"); + /* Make sure we have all components for detected extensions. */ if(m_oglspecs->WGL_EXT_swap_control) ASSERT(wglSwapIntervalEXT); + if(m_oglspecs->EXT_paletted_texture) + { + ASSERT(glColorTableEXT); + ASSERT(glGetColorTableParameterivEXT); + } } /* Set the video mode. In some cases, changing the video mode will reset @@ -338,6 +346,11 @@ void RageDisplay::ResetStats() g_LastCheckTimer.GetDeltaTime(); } +void RageDisplay::DisablePalettedTexture() +{ + m_oglspecs->EXT_paletted_texture = false; +} + bool RageDisplay::IsWindowed() const { return true; // FIXME diff --git a/stepmania/src/RageDisplay.h b/stepmania/src/RageDisplay.h index 3bdcb0fb7d..0e10518fb7 100644 --- a/stepmania/src/RageDisplay.h +++ b/stepmania/src/RageDisplay.h @@ -85,6 +85,7 @@ public: void ResetStats(); const oglspecs_t &GetSpecs() const { return *m_oglspecs; } + void DisablePalettedTexture(); protected: void AddVerts( const RageVertex v[], int iNumVerts ); diff --git a/stepmania/src/RageDisplayInternal.h b/stepmania/src/RageDisplayInternal.h index efc2722357..eaf02113a2 100644 --- a/stepmania/src/RageDisplayInternal.h +++ b/stepmania/src/RageDisplayInternal.h @@ -15,6 +15,10 @@ #include "glext.h" +/* Windows's broken gl.h defines GL_EXT_paletted_texture incompletely: */ +#ifndef GL_TEXTURE_INDEX_SIZE_EXT +#define GL_TEXTURE_INDEX_SIZE_EXT 0x80ED +#endif #include /* Not in glext.h: */ @@ -38,14 +42,15 @@ struct oglspecs_t { /* Which extensions we actually use are supported: */ bool EXT_texture_env_combine, WGL_EXT_swap_control, - ARB_texture_compression, - EXT_texture_compression_s3tc; + EXT_paletted_texture; }; /* Extension functions we use. Put these in a namespace instead of in oglspecs_t, * so they can be called like regular functions. */ namespace GLExt { extern PWSWAPINTERVALEXTPROC wglSwapIntervalEXT; + extern PFNGLCOLORTABLEPROC glColorTableEXT; + extern PFNGLCOLORTABLEPARAMETERIVPROC glGetColorTableParameterivEXT; }; using namespace GLExt;