Added compressed textures support

This commit is contained in:
OM 2023-05-22 13:02:14 +02:00
parent 55ad4dacdd
commit c660e0162f
4 changed files with 38 additions and 47 deletions

View file

@ -1160,23 +1160,33 @@ static void GLW_InitExtensions( void )
ri.Printf( PRINT_ALL, "Initializing OpenGL extensions\n" );
// GL_S3_s3tc
if ( Q_stristr( glConfig.extensions_string, "GL_S3_s3tc" ) )
if (strstr(glConfig.extensions_string, "GL_EXT_texture_compression_s3tc") && strstr(glConfig.extensions_string, "GL_ARB_texture_compression"))
{
if ( r_ext_compressed_textures->value )
{
glConfig.textureCompression = TC_S3TC;
ri.Printf( PRINT_ALL, "...using GL_S3_s3tc\n" );
} else
{
glConfig.textureCompression = TC_NONE;
ri.Printf( PRINT_ALL, "...ignoring GL_S3_s3tc\n" );
}
} else
{
glConfig.textureCompression = TC_NONE;
ri.Printf( PRINT_ALL, "...GL_S3_s3tc not found\n" );
if (r_ext_compressed_textures->integer)
{
qglCompressedTexImage2DARB = dlsym(glw_state.OpenGLLib, "glCompressedTexImage2DARB");
glConfig.textureCompression = TC_S3TC;
ri.Printf(PRINT_ALL, "...using GL_S3_s3tc\n");
}
else
{
glConfig.textureCompression = TC_NONE;
ri.Printf(PRINT_ALL, "...ignoring GL_S3_s3tc\n");
}
}
else if (!strstr(glConfig.extensions_string, "GL_EXT_texture_compression_s3tc"))
{
ri.Printf(PRINT_ALL, "...GL_ARB_texture_compression not found\n");
}
else if (strstr(glConfig.extensions_string, "GL_ARB_texture_compression"))
{
ri.Printf(PRINT_ALL, "...GL_EXT_texture_compression_s3tc not found\n");
}
else
{
ri.Printf(PRINT_ALL, "...GL_EXT_texture_compression_s3tc not found\n");
ri.Printf(PRINT_ALL, "...GL_ARB_texture_compression not found\n");
}
// GL_EXT_texture_env_add
glConfig.textureEnvAddAvailable = qfalse;
if ( Q_stristr( glConfig.extensions_string, "EXT_texture_env_add" ) )

View file

@ -3006,12 +3006,6 @@ void QGL_Shutdown( void )
qglVertexPointer = NULL;
qglViewport = NULL;
qglCompressedTexImage3DARB = NULL;
qglCompressedTexImage2DARB = NULL;
qglCompressedTexSubImage3DARB = NULL;
qglCompressedTexSubImage2DARB = NULL;
qglGetCompressedTexImageARB = NULL;
// bk001129 - from cvs1.17 (mkv)
#if defined(__FX__)
qfxMesaCreateContext = NULL;
@ -3409,12 +3403,6 @@ qboolean QGL_Init( const char *dllname )
qglVertexPointer = dllVertexPointer = GPA( "glVertexPointer" );
qglViewport = dllViewport = GPA( "glViewport" );
qglCompressedTexImage3DARB = dllCompressedTexImage3DARB = GPA("glCompressedTexImage3DARB");
qglCompressedTexImage2DARB = dllCompressedTexImage2DARB = GPA("qglCompressedTexImage2DARB");
qglCompressedTexSubImage3DARB = dllCompressedTexSubImage3DARB = GPA("qglCompressedTexSubImage3DARB");
qglCompressedTexSubImage2DARB = dllCompressedTexSubImage2DARB = GPA("qglCompressedTexSubImage2DARB");
qglGetCompressedTexImageARB = dllGetCompressedTexImageARB = GPA("qglGetCompressedTexImageARB");
// bk001129 - from cvs1.17 (mkv)
#if defined(__FX__)
qfxMesaCreateContext = GPA("fxMesaCreateContext");
@ -4165,12 +4153,6 @@ void QGL_EnableLogging( qboolean enable ) {
qglVertex4sv = dllVertex4sv ;
qglVertexPointer = dllVertexPointer ;
qglViewport = dllViewport ;
qglCompressedTexImage3DARB = dllCompressedTexImage3DARB;
qglCompressedTexImage2DARB = dllCompressedTexImage2DARB;
qglCompressedTexSubImage3DARB = dllCompressedTexSubImage3DARB;
qglCompressedTexSubImage2DARB = dllCompressedTexSubImage2DARB;
qglGetCompressedTexImageARB = dllGetCompressedTexImageARB;
}
}

View file

@ -970,11 +970,13 @@ static void GLW_InitExtensions( void )
ri.Printf( PRINT_ALL, "Initializing OpenGL extensions\n" );
// GL_S3_s3tc
qglCompressedTexImage2DARB = NULL;
glConfig.textureCompression = TC_NONE;
if ( strstr( glConfig.extensions_string, "GL_S3_s3tc" ) )
if ( strstr( glConfig.extensions_string, "GL_EXT_texture_compression_s3tc" ) && strstr(glConfig.extensions_string, "GL_ARB_texture_compression"))
{
if ( r_ext_compressed_textures->integer )
{
qglCompressedTexImage2DARB = wglGetProcAddress("glCompressedTexImage2DARB");
glConfig.textureCompression = TC_S3TC;
ri.Printf( PRINT_ALL, "...using GL_S3_s3tc\n" );
}
@ -984,9 +986,18 @@ static void GLW_InitExtensions( void )
ri.Printf( PRINT_ALL, "...ignoring GL_S3_s3tc\n" );
}
}
else if (!strstr(glConfig.extensions_string, "GL_EXT_texture_compression_s3tc"))
{
ri.Printf(PRINT_ALL, "...GL_ARB_texture_compression not found\n");
}
else if (strstr(glConfig.extensions_string, "GL_ARB_texture_compression"))
{
ri.Printf(PRINT_ALL, "...GL_EXT_texture_compression_s3tc not found\n");
}
else
{
ri.Printf( PRINT_ALL, "...GL_S3_s3tc not found\n" );
ri.Printf(PRINT_ALL, "...GL_EXT_texture_compression_s3tc not found\n");
ri.Printf(PRINT_ALL, "...GL_ARB_texture_compression not found\n");
}
// GL_EXT_texture_env_add

View file

@ -3628,12 +3628,6 @@ qboolean QGL_Init( const char *dllname )
qglVertexPointer = dllVertexPointer = GPA( "glVertexPointer" );
qglViewport = dllViewport = GPA( "glViewport" );
qglCompressedTexImage3DARB = dllCompressedTexImage3DARB = GPA("glCompressedTexImage3D");
qglCompressedTexImage2DARB = dllCompressedTexImage2DARB = GPA("glCompressedTexImage2D");
qglCompressedTexSubImage3DARB = dllCompressedTexSubImage3DARB = GPA("glCompressedTexSubImage3D");
qglCompressedTexSubImage2DARB = dllCompressedTexSubImage2DARB = GPA("glCompressedTexSubImage2D");
qglGetCompressedTexImageARB = dllGetCompressedTexImageARB = GPA("glGetCompressedTexImage");
qwglCopyContext = GPA( "wglCopyContext" );
qwglCreateContext = GPA( "wglCreateContext" );
qwglCreateLayerContext = GPA( "wglCreateLayerContext" );
@ -4393,12 +4387,6 @@ void QGL_EnableLogging( qboolean enable )
qglVertex4sv = dllVertex4sv ;
qglVertexPointer = dllVertexPointer ;
qglViewport = dllViewport ;
qglCompressedTexImage3DARB = dllCompressedTexImage3DARB;
qglCompressedTexImage2DARB = dllCompressedTexImage2DARB;
qglCompressedTexSubImage3DARB = dllCompressedTexSubImage3DARB;
qglCompressedTexSubImage2DARB = dllCompressedTexSubImage2DARB;
qglGetCompressedTexImageARB = dllGetCompressedTexImageARB;
}
}