Make GL_ARB_texture_compression mandatory

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
This commit is contained in:
Ian Romanick
2009-01-27 17:36:03 -08:00
committed by Ian Romanick
parent 26da28c995
commit 33fa5e4bfa
22 changed files with 117 additions and 164 deletions

View File

@@ -180,6 +180,7 @@ driGetRendererString( char * buffer, const char * hardware_name,
#define need_GL_ARB_multisample #define need_GL_ARB_multisample
#define need_GL_ARB_texture_compression
#define need_GL_ARB_transpose_matrix #define need_GL_ARB_transpose_matrix
#define need_GL_ARB_window_pos #define need_GL_ARB_window_pos
#define need_GL_EXT_compiled_vertex_array #define need_GL_EXT_compiled_vertex_array
@@ -199,6 +200,7 @@ driGetRendererString( char * buffer, const char * hardware_name,
static const struct dri_extension all_mesa_extensions[] = { static const struct dri_extension all_mesa_extensions[] = {
{ "GL_ARB_multisample", GL_ARB_multisample_functions }, { "GL_ARB_multisample", GL_ARB_multisample_functions },
{ "GL_ARB_texture_compression", GL_ARB_texture_compression_functions },
{ "GL_ARB_transpose_matrix", GL_ARB_transpose_matrix_functions }, { "GL_ARB_transpose_matrix", GL_ARB_transpose_matrix_functions },
{ "GL_ARB_window_pos", GL_ARB_window_pos_functions }, { "GL_ARB_window_pos", GL_ARB_window_pos_functions },
{ "GL_EXT_blend_func_separate", GL_EXT_blend_func_separate_functions }, { "GL_EXT_blend_func_separate", GL_EXT_blend_func_separate_functions },

View File

@@ -64,7 +64,6 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "utils.h" #include "utils.h"
#define need_GL_ARB_multisample #define need_GL_ARB_multisample
#define need_GL_ARB_texture_compression
#define need_GL_ARB_vertex_buffer_object #define need_GL_ARB_vertex_buffer_object
#include "extension_helper.h" #include "extension_helper.h"
@@ -125,7 +124,6 @@ const struct dri_extension card_extensions[] =
{ {
{ "GL_ARB_multisample", GL_ARB_multisample_functions }, { "GL_ARB_multisample", GL_ARB_multisample_functions },
{ "GL_ARB_multitexture", NULL }, { "GL_ARB_multitexture", NULL },
{ "GL_ARB_texture_compression", GL_ARB_texture_compression_functions },
{ "GL_ARB_texture_env_add", NULL }, { "GL_ARB_texture_env_add", NULL },
{ "GL_ARB_texture_env_combine", NULL }, { "GL_ARB_texture_env_combine", NULL },
{ "GL_ARB_texture_env_crossbar", NULL }, { "GL_ARB_texture_env_crossbar", NULL },

View File

@@ -35,7 +35,6 @@
#define need_GL_ARB_occlusion_query #define need_GL_ARB_occlusion_query
#define need_GL_ARB_point_parameters #define need_GL_ARB_point_parameters
#define need_GL_ARB_shader_objects #define need_GL_ARB_shader_objects
#define need_GL_ARB_texture_compression
#define need_GL_ARB_vertex_buffer_object #define need_GL_ARB_vertex_buffer_object
#define need_GL_ARB_vertex_program #define need_GL_ARB_vertex_program
#define need_GL_ARB_vertex_shader #define need_GL_ARB_vertex_shader
@@ -72,7 +71,6 @@ static const struct dri_extension card_extensions[] = {
{ "GL_ARB_multitexture", NULL }, { "GL_ARB_multitexture", NULL },
{ "GL_ARB_point_parameters", GL_ARB_point_parameters_functions }, { "GL_ARB_point_parameters", GL_ARB_point_parameters_functions },
{ "GL_ARB_texture_border_clamp", NULL }, { "GL_ARB_texture_border_clamp", NULL },
{ "GL_ARB_texture_compression", GL_ARB_texture_compression_functions },
{ "GL_ARB_texture_cube_map", NULL }, { "GL_ARB_texture_cube_map", NULL },
{ "GL_ARB_texture_env_add", NULL }, { "GL_ARB_texture_env_add", NULL },
{ "GL_ARB_texture_env_combine", NULL }, { "GL_ARB_texture_env_combine", NULL },

View File

@@ -152,6 +152,7 @@ mach64ChooseTextureFormat( GLcontext *ctx, GLint internalFormat,
case GL_ALPHA8: case GL_ALPHA8:
case GL_ALPHA12: case GL_ALPHA12:
case GL_ALPHA16: case GL_ALPHA16:
case GL_COMPRESSED_ALPHA:
case 2: case 2:
case GL_LUMINANCE_ALPHA: case GL_LUMINANCE_ALPHA:
case GL_LUMINANCE4_ALPHA4: case GL_LUMINANCE4_ALPHA4:
@@ -160,9 +161,11 @@ mach64ChooseTextureFormat( GLcontext *ctx, GLint internalFormat,
case GL_LUMINANCE12_ALPHA4: case GL_LUMINANCE12_ALPHA4:
case GL_LUMINANCE12_ALPHA12: case GL_LUMINANCE12_ALPHA12:
case GL_LUMINANCE16_ALPHA16: case GL_LUMINANCE16_ALPHA16:
case GL_COMPRESSED_LUMINANCE_ALPHA:
case 4: case 4:
case GL_RGBA: case GL_RGBA:
case GL_RGBA2: case GL_RGBA2:
case GL_COMPRESSED_RGBA:
if (mmesa->mach64Screen->cpp == 4) if (mmesa->mach64Screen->cpp == 4)
return &_mesa_texformat_argb8888; return &_mesa_texformat_argb8888;
else else
@@ -193,6 +196,7 @@ mach64ChooseTextureFormat( GLcontext *ctx, GLint internalFormat,
case GL_RGB10: case GL_RGB10:
case GL_RGB12: case GL_RGB12:
case GL_RGB16: case GL_RGB16:
case GL_COMPRESSED_RGB:
if (mmesa->mach64Screen->cpp == 4) if (mmesa->mach64Screen->cpp == 4)
return &_mesa_texformat_argb8888; return &_mesa_texformat_argb8888;
else else
@@ -204,6 +208,7 @@ mach64ChooseTextureFormat( GLcontext *ctx, GLint internalFormat,
case GL_LUMINANCE8: case GL_LUMINANCE8:
case GL_LUMINANCE12: case GL_LUMINANCE12:
case GL_LUMINANCE16: case GL_LUMINANCE16:
case GL_COMPRESSED_LUMINANCE:
if (mmesa->mach64Screen->cpp == 4) if (mmesa->mach64Screen->cpp == 4)
return &_mesa_texformat_argb8888; /* inefficient but accurate */ return &_mesa_texformat_argb8888; /* inefficient but accurate */
else else
@@ -214,6 +219,7 @@ mach64ChooseTextureFormat( GLcontext *ctx, GLint internalFormat,
case GL_INTENSITY8: case GL_INTENSITY8:
case GL_INTENSITY12: case GL_INTENSITY12:
case GL_INTENSITY16: case GL_INTENSITY16:
case GL_COMPRESSED_INTENSITY:
if (mmesa->mach64Screen->cpp == 4) if (mmesa->mach64Screen->cpp == 4)
return &_mesa_texformat_argb8888; /* inefficient but accurate */ return &_mesa_texformat_argb8888; /* inefficient but accurate */
else else

View File

@@ -70,7 +70,6 @@
#include "GL/internal/dri_interface.h" #include "GL/internal/dri_interface.h"
#define need_GL_ARB_multisample #define need_GL_ARB_multisample
#define need_GL_ARB_texture_compression
#define need_GL_ARB_vertex_buffer_object #define need_GL_ARB_vertex_buffer_object
#define need_GL_ARB_vertex_program #define need_GL_ARB_vertex_program
#define need_GL_EXT_fog_coord #define need_GL_EXT_fog_coord
@@ -386,7 +385,6 @@ static const struct dri_extension g400_extensions[] =
static const struct dri_extension card_extensions[] = static const struct dri_extension card_extensions[] =
{ {
{ "GL_ARB_multisample", GL_ARB_multisample_functions }, { "GL_ARB_multisample", GL_ARB_multisample_functions },
{ "GL_ARB_texture_compression", GL_ARB_texture_compression_functions },
{ "GL_ARB_texture_rectangle", NULL }, { "GL_ARB_texture_rectangle", NULL },
{ "GL_ARB_vertex_buffer_object", GL_ARB_vertex_buffer_object_functions }, { "GL_ARB_vertex_buffer_object", GL_ARB_vertex_buffer_object_functions },
{ "GL_EXT_blend_logic_op", NULL }, { "GL_EXT_blend_logic_op", NULL },

View File

@@ -66,7 +66,6 @@ int R128_DEBUG = 0;
#endif #endif
#define need_GL_ARB_multisample #define need_GL_ARB_multisample
#define need_GL_ARB_texture_compression
#define need_GL_ARB_vertex_buffer_object #define need_GL_ARB_vertex_buffer_object
#define need_GL_EXT_blend_minmax #define need_GL_EXT_blend_minmax
#define need_GL_EXT_fog_coord #define need_GL_EXT_fog_coord
@@ -77,7 +76,6 @@ const struct dri_extension card_extensions[] =
{ {
{ "GL_ARB_multisample", GL_ARB_multisample_functions }, { "GL_ARB_multisample", GL_ARB_multisample_functions },
{ "GL_ARB_multitexture", NULL }, { "GL_ARB_multitexture", NULL },
{ "GL_ARB_texture_compression", GL_ARB_texture_compression_functions },
{ "GL_ARB_texture_env_add", NULL }, { "GL_ARB_texture_env_add", NULL },
{ "GL_ARB_texture_mirrored_repeat", NULL }, { "GL_ARB_texture_mirrored_repeat", NULL },
{ "GL_ARB_vertex_buffer_object", GL_ARB_vertex_buffer_object_functions }, { "GL_ARB_vertex_buffer_object", GL_ARB_vertex_buffer_object_functions },

View File

@@ -63,7 +63,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "r200_vertprog.h" #include "r200_vertprog.h"
#define need_GL_ARB_multisample #define need_GL_ARB_multisample
#define need_GL_ARB_texture_compression
#define need_GL_ARB_vertex_buffer_object #define need_GL_ARB_vertex_buffer_object
#define need_GL_ARB_vertex_program #define need_GL_ARB_vertex_program
#define need_GL_ATI_fragment_shader #define need_GL_ATI_fragment_shader
@@ -123,7 +122,6 @@ const struct dri_extension card_extensions[] =
{ "GL_ARB_multisample", GL_ARB_multisample_functions }, { "GL_ARB_multisample", GL_ARB_multisample_functions },
{ "GL_ARB_multitexture", NULL }, { "GL_ARB_multitexture", NULL },
{ "GL_ARB_texture_border_clamp", NULL }, { "GL_ARB_texture_border_clamp", NULL },
{ "GL_ARB_texture_compression", GL_ARB_texture_compression_functions },
{ "GL_ARB_texture_env_add", NULL }, { "GL_ARB_texture_env_add", NULL },
{ "GL_ARB_texture_env_combine", NULL }, { "GL_ARB_texture_env_combine", NULL },
{ "GL_ARB_texture_env_dot3", NULL }, { "GL_ARB_texture_env_dot3", NULL },

View File

@@ -80,7 +80,6 @@ int hw_tcl_on = 1;
#define need_GL_VERSION_2_0 #define need_GL_VERSION_2_0
#define need_GL_ARB_multisample #define need_GL_ARB_multisample
#define need_GL_ARB_point_parameters #define need_GL_ARB_point_parameters
#define need_GL_ARB_texture_compression
#define need_GL_ARB_vertex_buffer_object #define need_GL_ARB_vertex_buffer_object
#define need_GL_ARB_vertex_program #define need_GL_ARB_vertex_program
#define need_GL_EXT_blend_equation_separate #define need_GL_EXT_blend_equation_separate
@@ -105,7 +104,6 @@ const struct dri_extension card_extensions[] = {
{"GL_ARB_shadow", NULL}, {"GL_ARB_shadow", NULL},
{"GL_ARB_shadow_ambient", NULL}, {"GL_ARB_shadow_ambient", NULL},
{"GL_ARB_texture_border_clamp", NULL}, {"GL_ARB_texture_border_clamp", NULL},
{"GL_ARB_texture_compression", GL_ARB_texture_compression_functions},
{"GL_ARB_texture_cube_map", NULL}, {"GL_ARB_texture_cube_map", NULL},
{"GL_ARB_texture_env_add", NULL}, {"GL_ARB_texture_env_add", NULL},
{"GL_ARB_texture_env_combine", NULL}, {"GL_ARB_texture_env_combine", NULL},

View File

@@ -63,7 +63,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "radeon_maos.h" #include "radeon_maos.h"
#define need_GL_ARB_multisample #define need_GL_ARB_multisample
#define need_GL_ARB_texture_compression
#define need_GL_ARB_vertex_buffer_object #define need_GL_ARB_vertex_buffer_object
#define need_GL_EXT_blend_minmax #define need_GL_EXT_blend_minmax
#define need_GL_EXT_fog_coord #define need_GL_EXT_fog_coord
@@ -117,7 +116,6 @@ const struct dri_extension card_extensions[] =
{ "GL_ARB_multisample", GL_ARB_multisample_functions }, { "GL_ARB_multisample", GL_ARB_multisample_functions },
{ "GL_ARB_multitexture", NULL }, { "GL_ARB_multitexture", NULL },
{ "GL_ARB_texture_border_clamp", NULL }, { "GL_ARB_texture_border_clamp", NULL },
{ "GL_ARB_texture_compression", GL_ARB_texture_compression_functions },
{ "GL_ARB_texture_env_add", NULL }, { "GL_ARB_texture_env_add", NULL },
{ "GL_ARB_texture_env_combine", NULL }, { "GL_ARB_texture_env_combine", NULL },
{ "GL_ARB_texture_env_crossbar", NULL }, { "GL_ARB_texture_env_crossbar", NULL },

View File

@@ -60,7 +60,6 @@
#include "texmem.h" #include "texmem.h"
#define need_GL_ARB_multisample #define need_GL_ARB_multisample
#define need_GL_ARB_texture_compression
#define need_GL_ARB_vertex_buffer_object #define need_GL_ARB_vertex_buffer_object
#define need_GL_EXT_secondary_color #define need_GL_EXT_secondary_color
#include "extension_helper.h" #include "extension_helper.h"
@@ -135,7 +134,6 @@ static const struct dri_extension card_extensions[] =
{ {
{ "GL_ARB_multisample", GL_ARB_multisample_functions }, { "GL_ARB_multisample", GL_ARB_multisample_functions },
{ "GL_ARB_multitexture", NULL }, { "GL_ARB_multitexture", NULL },
{ "GL_ARB_texture_compression", GL_ARB_texture_compression_functions },
{ "GL_ARB_vertex_buffer_object", GL_ARB_vertex_buffer_object_functions }, { "GL_ARB_vertex_buffer_object", GL_ARB_vertex_buffer_object_functions },
{ "GL_EXT_stencil_wrap", NULL }, { "GL_EXT_stencil_wrap", NULL },
{ "GL_EXT_texture_lod_bias", NULL }, { "GL_EXT_texture_lod_bias", NULL },

View File

@@ -58,7 +58,6 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "tnl/t_pipeline.h" #include "tnl/t_pipeline.h"
#define need_GL_ARB_multisample #define need_GL_ARB_multisample
#define need_GL_ARB_texture_compression
#define need_GL_ARB_vertex_buffer_object #define need_GL_ARB_vertex_buffer_object
#define need_GL_EXT_fog_coord #define need_GL_EXT_fog_coord
#define need_GL_EXT_secondary_color #define need_GL_EXT_secondary_color
@@ -77,7 +76,6 @@ struct dri_extension card_extensions[] =
{ "GL_ARB_multisample", GL_ARB_multisample_functions }, { "GL_ARB_multisample", GL_ARB_multisample_functions },
{ "GL_ARB_multitexture", NULL }, { "GL_ARB_multitexture", NULL },
{ "GL_ARB_texture_border_clamp", NULL }, { "GL_ARB_texture_border_clamp", NULL },
{ "GL_ARB_texture_compression", GL_ARB_texture_compression_functions },
{ "GL_ARB_texture_mirrored_repeat", NULL }, { "GL_ARB_texture_mirrored_repeat", NULL },
{ "GL_ARB_vertex_buffer_object", GL_ARB_vertex_buffer_object_functions }, { "GL_ARB_vertex_buffer_object", GL_ARB_vertex_buffer_object_functions },
/*{ "GL_EXT_fog_coord", GL_EXT_fog_coord_functions },*/ /*{ "GL_EXT_fog_coord", GL_EXT_fog_coord_functions },*/
@@ -93,7 +91,6 @@ struct dri_extension card_extensions_6326[] =
{ {
{ "GL_ARB_multisample", GL_ARB_multisample_functions }, { "GL_ARB_multisample", GL_ARB_multisample_functions },
/*{ "GL_ARB_texture_border_clamp", NULL },*/ /*{ "GL_ARB_texture_border_clamp", NULL },*/
{ "GL_ARB_texture_compression", GL_ARB_texture_compression_functions },
/*{ "GL_ARB_texture_mirrored_repeat", NULL },*/ /*{ "GL_ARB_texture_mirrored_repeat", NULL },*/
/*{ "GL_MESA_ycbcr_texture", NULL },*/ /*{ "GL_MESA_ycbcr_texture", NULL },*/
{ NULL, NULL } { NULL, NULL }

View File

@@ -61,7 +61,6 @@
#define need_GL_ARB_multisample #define need_GL_ARB_multisample
/* #define need_GL_ARB_point_parameters */ /* #define need_GL_ARB_point_parameters */
#define need_GL_ARB_occlusion_query #define need_GL_ARB_occlusion_query
#define need_GL_ARB_texture_compression
#define need_GL_ARB_vertex_buffer_object #define need_GL_ARB_vertex_buffer_object
/* #define need_GL_ARB_vertex_program */ /* #define need_GL_ARB_vertex_program */
#define need_GL_EXT_blend_equation_separate #define need_GL_EXT_blend_equation_separate
@@ -122,7 +121,6 @@ const struct dri_extension card_extensions[] =
*/ */
const struct dri_extension napalm_extensions[] = const struct dri_extension napalm_extensions[] =
{ {
{ "GL_ARB_texture_compression", GL_ARB_texture_compression_functions },
{ "GL_ARB_texture_env_combine", NULL }, { "GL_ARB_texture_env_combine", NULL },
{ "GL_EXT_blend_equation_separate", GL_EXT_blend_equation_separate_functions }, { "GL_EXT_blend_equation_separate", GL_EXT_blend_equation_separate_functions },
{ "GL_EXT_blend_subtract", GL_EXT_blend_minmax_functions }, { "GL_EXT_blend_subtract", GL_EXT_blend_minmax_functions },

View File

@@ -1862,7 +1862,6 @@ fxDDInitExtensions(GLcontext * ctx)
} }
if (fxMesa->type >= GR_SSTTYPE_Voodoo4) { if (fxMesa->type >= GR_SSTTYPE_Voodoo4) {
_mesa_enable_extension(ctx, "GL_ARB_texture_compression");
_mesa_enable_extension(ctx, "GL_3DFX_texture_compression_FXT1"); _mesa_enable_extension(ctx, "GL_3DFX_texture_compression_FXT1");
_mesa_enable_extension(ctx, "GL_EXT_texture_compression_s3tc"); _mesa_enable_extension(ctx, "GL_EXT_texture_compression_s3tc");
_mesa_enable_extension(ctx, "GL_S3_s3tc"); _mesa_enable_extension(ctx, "GL_S3_s3tc");
@@ -1894,7 +1893,6 @@ fxDDInitExtensions(GLcontext * ctx)
* fxSetupSingleTMU_NoLock/fxSetupDoubleTMU_NoLock: * fxSetupSingleTMU_NoLock/fxSetupDoubleTMU_NoLock:
* grTexDownloadTable(GR_TEXTABLE_NCC0, &(ti->palette)); * grTexDownloadTable(GR_TEXTABLE_NCC0, &(ti->palette));
*/ */
/*_mesa_enable_extension(ctx, "GL_ARB_texture_compression");*/
_mesa_enable_extension(ctx, "GL_SGIS_generate_mipmap"); _mesa_enable_extension(ctx, "GL_SGIS_generate_mipmap");
} }

View File

@@ -1006,9 +1006,8 @@ _mesa_PopAttrib(void)
_mesa_Hint(GL_FOG_HINT, hint->Fog); _mesa_Hint(GL_FOG_HINT, hint->Fog);
_mesa_Hint(GL_CLIP_VOLUME_CLIPPING_HINT_EXT, _mesa_Hint(GL_CLIP_VOLUME_CLIPPING_HINT_EXT,
hint->ClipVolumeClipping); hint->ClipVolumeClipping);
if (ctx->Extensions.ARB_texture_compression) _mesa_Hint(GL_TEXTURE_COMPRESSION_HINT_ARB,
_mesa_Hint(GL_TEXTURE_COMPRESSION_HINT_ARB, hint->TextureCompression);
hint->TextureCompression);
} }
break; break;
case GL_LIGHTING_BIT: case GL_LIGHTING_BIT:

View File

@@ -64,7 +64,7 @@ static const struct {
{ OFF, "GL_ARB_shadow", F(ARB_shadow) }, { OFF, "GL_ARB_shadow", F(ARB_shadow) },
{ OFF, "GL_ARB_shadow_ambient", F(ARB_shadow_ambient) }, { OFF, "GL_ARB_shadow_ambient", F(ARB_shadow_ambient) },
{ OFF, "GL_ARB_texture_border_clamp", F(ARB_texture_border_clamp) }, { OFF, "GL_ARB_texture_border_clamp", F(ARB_texture_border_clamp) },
{ OFF, "GL_ARB_texture_compression", F(ARB_texture_compression) }, { ON, "GL_ARB_texture_compression", F(ARB_texture_compression) },
{ OFF, "GL_ARB_texture_cube_map", F(ARB_texture_cube_map) }, { OFF, "GL_ARB_texture_cube_map", F(ARB_texture_cube_map) },
{ OFF, "GL_ARB_texture_env_add", F(EXT_texture_env_add) }, { OFF, "GL_ARB_texture_env_add", F(EXT_texture_env_add) },
{ OFF, "GL_ARB_texture_env_combine", F(ARB_texture_env_combine) }, { OFF, "GL_ARB_texture_env_combine", F(ARB_texture_env_combine) },
@@ -345,7 +345,7 @@ _mesa_enable_1_3_extensions(GLcontext *ctx)
ctx->Extensions.ARB_multisample = GL_TRUE; ctx->Extensions.ARB_multisample = GL_TRUE;
ctx->Extensions.ARB_multitexture = GL_TRUE; ctx->Extensions.ARB_multitexture = GL_TRUE;
ctx->Extensions.ARB_texture_border_clamp = GL_TRUE; ctx->Extensions.ARB_texture_border_clamp = GL_TRUE;
ctx->Extensions.ARB_texture_compression = GL_TRUE; /*ctx->Extensions.ARB_texture_compression = GL_TRUE;*/
ctx->Extensions.ARB_texture_cube_map = GL_TRUE; ctx->Extensions.ARB_texture_cube_map = GL_TRUE;
ctx->Extensions.ARB_texture_env_combine = GL_TRUE; ctx->Extensions.ARB_texture_env_combine = GL_TRUE;
ctx->Extensions.ARB_texture_env_dot3 = GL_TRUE; ctx->Extensions.ARB_texture_env_dot3 = GL_TRUE;

View File

@@ -1078,15 +1078,12 @@ _mesa_GetBooleanv( GLenum pname, GLboolean *params )
params[0] = INT_TO_BOOLEAN((1 << (ctx->Const.MaxCubeTextureLevels - 1))); params[0] = INT_TO_BOOLEAN((1 << (ctx->Const.MaxCubeTextureLevels - 1)));
break; break;
case GL_TEXTURE_COMPRESSION_HINT_ARB: case GL_TEXTURE_COMPRESSION_HINT_ARB:
CHECK_EXT1(ARB_texture_compression, "GetBooleanv");
params[0] = INT_TO_BOOLEAN(ctx->Hint.TextureCompression); params[0] = INT_TO_BOOLEAN(ctx->Hint.TextureCompression);
break; break;
case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB: case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB:
CHECK_EXT1(ARB_texture_compression, "GetBooleanv");
params[0] = INT_TO_BOOLEAN(_mesa_get_compressed_formats(ctx, NULL, GL_FALSE)); params[0] = INT_TO_BOOLEAN(_mesa_get_compressed_formats(ctx, NULL, GL_FALSE));
break; break;
case GL_COMPRESSED_TEXTURE_FORMATS_ARB: case GL_COMPRESSED_TEXTURE_FORMATS_ARB:
CHECK_EXT1(ARB_texture_compression, "GetBooleanv");
{ {
GLint formats[100]; GLint formats[100];
GLuint i, n = _mesa_get_compressed_formats(ctx, formats, GL_FALSE); GLuint i, n = _mesa_get_compressed_formats(ctx, formats, GL_FALSE);
@@ -2930,15 +2927,12 @@ _mesa_GetFloatv( GLenum pname, GLfloat *params )
params[0] = (GLfloat)((1 << (ctx->Const.MaxCubeTextureLevels - 1))); params[0] = (GLfloat)((1 << (ctx->Const.MaxCubeTextureLevels - 1)));
break; break;
case GL_TEXTURE_COMPRESSION_HINT_ARB: case GL_TEXTURE_COMPRESSION_HINT_ARB:
CHECK_EXT1(ARB_texture_compression, "GetFloatv");
params[0] = (GLfloat)(ctx->Hint.TextureCompression); params[0] = (GLfloat)(ctx->Hint.TextureCompression);
break; break;
case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB: case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB:
CHECK_EXT1(ARB_texture_compression, "GetFloatv");
params[0] = (GLfloat)(_mesa_get_compressed_formats(ctx, NULL, GL_FALSE)); params[0] = (GLfloat)(_mesa_get_compressed_formats(ctx, NULL, GL_FALSE));
break; break;
case GL_COMPRESSED_TEXTURE_FORMATS_ARB: case GL_COMPRESSED_TEXTURE_FORMATS_ARB:
CHECK_EXT1(ARB_texture_compression, "GetFloatv");
{ {
GLint formats[100]; GLint formats[100];
GLuint i, n = _mesa_get_compressed_formats(ctx, formats, GL_FALSE); GLuint i, n = _mesa_get_compressed_formats(ctx, formats, GL_FALSE);
@@ -4782,15 +4776,12 @@ _mesa_GetIntegerv( GLenum pname, GLint *params )
params[0] = (1 << (ctx->Const.MaxCubeTextureLevels - 1)); params[0] = (1 << (ctx->Const.MaxCubeTextureLevels - 1));
break; break;
case GL_TEXTURE_COMPRESSION_HINT_ARB: case GL_TEXTURE_COMPRESSION_HINT_ARB:
CHECK_EXT1(ARB_texture_compression, "GetIntegerv");
params[0] = ctx->Hint.TextureCompression; params[0] = ctx->Hint.TextureCompression;
break; break;
case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB: case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB:
CHECK_EXT1(ARB_texture_compression, "GetIntegerv");
params[0] = _mesa_get_compressed_formats(ctx, NULL, GL_FALSE); params[0] = _mesa_get_compressed_formats(ctx, NULL, GL_FALSE);
break; break;
case GL_COMPRESSED_TEXTURE_FORMATS_ARB: case GL_COMPRESSED_TEXTURE_FORMATS_ARB:
CHECK_EXT1(ARB_texture_compression, "GetIntegerv");
{ {
GLint formats[100]; GLint formats[100];
GLuint i, n = _mesa_get_compressed_formats(ctx, formats, GL_FALSE); GLuint i, n = _mesa_get_compressed_formats(ctx, formats, GL_FALSE);

View File

@@ -523,10 +523,10 @@ StateVars = [
# GL_ARB_texture_compression */ # GL_ARB_texture_compression */
( "GL_TEXTURE_COMPRESSION_HINT_ARB", GLint, ( "GL_TEXTURE_COMPRESSION_HINT_ARB", GLint,
["ctx->Hint.TextureCompression"], "", ["ARB_texture_compression"] ), ["ctx->Hint.TextureCompression"], "", None ),
( "GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB", GLint, ( "GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB", GLint,
["_mesa_get_compressed_formats(ctx, NULL, GL_FALSE)"], ["_mesa_get_compressed_formats(ctx, NULL, GL_FALSE)"],
"", ["ARB_texture_compression"] ), "", None ),
( "GL_COMPRESSED_TEXTURE_FORMATS_ARB", GLenum, ( "GL_COMPRESSED_TEXTURE_FORMATS_ARB", GLenum,
[], [],
"""GLint formats[100]; """GLint formats[100];
@@ -534,7 +534,7 @@ StateVars = [
ASSERT(n <= 100); ASSERT(n <= 100);
for (i = 0; i < n; i++) for (i = 0; i < n; i++)
params[i] = CONVERSION(formats[i]);""", params[i] = CONVERSION(formats[i]);""",
["ARB_texture_compression"] ), None ),
# GL_EXT_compiled_vertex_array # GL_EXT_compiled_vertex_array
( "GL_ARRAY_ELEMENT_LOCK_FIRST_EXT", GLint, ["ctx->Array.LockFirst"], ( "GL_ARRAY_ELEMENT_LOCK_FIRST_EXT", GLint, ["ctx->Array.LockFirst"],

View File

@@ -89,10 +89,6 @@ _mesa_Hint( GLenum target, GLenum mode )
/* GL_ARB_texture_compression */ /* GL_ARB_texture_compression */
case GL_TEXTURE_COMPRESSION_HINT_ARB: case GL_TEXTURE_COMPRESSION_HINT_ARB:
if (!ctx->Extensions.ARB_texture_compression) {
_mesa_error(ctx, GL_INVALID_ENUM, "glHint(target)");
return;
}
if (ctx->Hint.TextureCompression == mode) if (ctx->Hint.TextureCompression == mode)
return; return;
FLUSH_VERTICES(ctx, _NEW_HINT); FLUSH_VERTICES(ctx, _NEW_HINT);

View File

@@ -56,60 +56,58 @@ GLuint
_mesa_get_compressed_formats(GLcontext *ctx, GLint *formats, GLboolean all) _mesa_get_compressed_formats(GLcontext *ctx, GLint *formats, GLboolean all)
{ {
GLuint n = 0; GLuint n = 0;
if (ctx->Extensions.ARB_texture_compression) { if (ctx->Extensions.TDFX_texture_compression_FXT1) {
if (ctx->Extensions.TDFX_texture_compression_FXT1) { if (formats) {
if (formats) { formats[n++] = GL_COMPRESSED_RGB_FXT1_3DFX;
formats[n++] = GL_COMPRESSED_RGB_FXT1_3DFX; formats[n++] = GL_COMPRESSED_RGBA_FXT1_3DFX;
formats[n++] = GL_COMPRESSED_RGBA_FXT1_3DFX;
}
else {
n += 2;
}
} }
if (ctx->Extensions.EXT_texture_compression_s3tc) { else {
if (formats) { n += 2;
formats[n++] = GL_COMPRESSED_RGB_S3TC_DXT1_EXT;
/* This format has some restrictions/limitations and so should
* not be returned via the GL_COMPRESSED_TEXTURE_FORMATS query.
* Specifically, all transparent pixels become black. NVIDIA
* omits this format too.
*/
if (all)
formats[n++] = GL_COMPRESSED_RGBA_S3TC_DXT1_EXT;
formats[n++] = GL_COMPRESSED_RGBA_S3TC_DXT3_EXT;
formats[n++] = GL_COMPRESSED_RGBA_S3TC_DXT5_EXT;
}
else {
n += 3;
if (all)
n += 1;
}
} }
if (ctx->Extensions.S3_s3tc) {
if (formats) {
formats[n++] = GL_RGB_S3TC;
formats[n++] = GL_RGB4_S3TC;
formats[n++] = GL_RGBA_S3TC;
formats[n++] = GL_RGBA4_S3TC;
}
else {
n += 4;
}
}
#if FEATURE_EXT_texture_sRGB
if (ctx->Extensions.EXT_texture_sRGB) {
if (formats) {
formats[n++] = GL_COMPRESSED_SRGB_S3TC_DXT1_EXT;
formats[n++] = GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;
formats[n++] = GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;
formats[n++] = GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT;
}
else {
n += 4;
}
}
#endif /* FEATURE_EXT_texture_sRGB */
} }
if (ctx->Extensions.EXT_texture_compression_s3tc) {
if (formats) {
formats[n++] = GL_COMPRESSED_RGB_S3TC_DXT1_EXT;
/* This format has some restrictions/limitations and so should
* not be returned via the GL_COMPRESSED_TEXTURE_FORMATS query.
* Specifically, all transparent pixels become black. NVIDIA
* omits this format too.
*/
if (all)
formats[n++] = GL_COMPRESSED_RGBA_S3TC_DXT1_EXT;
formats[n++] = GL_COMPRESSED_RGBA_S3TC_DXT3_EXT;
formats[n++] = GL_COMPRESSED_RGBA_S3TC_DXT5_EXT;
}
else {
n += 3;
if (all)
n += 1;
}
}
if (ctx->Extensions.S3_s3tc) {
if (formats) {
formats[n++] = GL_RGB_S3TC;
formats[n++] = GL_RGB4_S3TC;
formats[n++] = GL_RGBA_S3TC;
formats[n++] = GL_RGBA4_S3TC;
}
else {
n += 4;
}
}
#if FEATURE_EXT_texture_sRGB
if (ctx->Extensions.EXT_texture_sRGB) {
if (formats) {
formats[n++] = GL_COMPRESSED_SRGB_S3TC_DXT1_EXT;
formats[n++] = GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;
formats[n++] = GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;
formats[n++] = GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT;
}
else {
n += 4;
}
}
#endif /* FEATURE_EXT_texture_sRGB */
return n; return n;
} }

View File

@@ -1481,41 +1481,39 @@ _mesa_choose_tex_format( GLcontext *ctx, GLint internalFormat,
} }
} }
if (ctx->Extensions.ARB_texture_compression) { switch (internalFormat) {
switch (internalFormat) { case GL_COMPRESSED_ALPHA_ARB:
case GL_COMPRESSED_ALPHA_ARB: return &_mesa_texformat_alpha;
return &_mesa_texformat_alpha; case GL_COMPRESSED_LUMINANCE_ARB:
case GL_COMPRESSED_LUMINANCE_ARB: return &_mesa_texformat_luminance;
return &_mesa_texformat_luminance; case GL_COMPRESSED_LUMINANCE_ALPHA_ARB:
case GL_COMPRESSED_LUMINANCE_ALPHA_ARB: return &_mesa_texformat_luminance_alpha;
return &_mesa_texformat_luminance_alpha; case GL_COMPRESSED_INTENSITY_ARB:
case GL_COMPRESSED_INTENSITY_ARB: return &_mesa_texformat_intensity;
return &_mesa_texformat_intensity; case GL_COMPRESSED_RGB_ARB:
case GL_COMPRESSED_RGB_ARB:
#if FEATURE_texture_fxt1 #if FEATURE_texture_fxt1
if (ctx->Extensions.TDFX_texture_compression_FXT1) if (ctx->Extensions.TDFX_texture_compression_FXT1)
return &_mesa_texformat_rgb_fxt1; return &_mesa_texformat_rgb_fxt1;
#endif #endif
#if FEATURE_texture_s3tc #if FEATURE_texture_s3tc
if (ctx->Extensions.EXT_texture_compression_s3tc || if (ctx->Extensions.EXT_texture_compression_s3tc ||
ctx->Extensions.S3_s3tc) ctx->Extensions.S3_s3tc)
return &_mesa_texformat_rgb_dxt1; return &_mesa_texformat_rgb_dxt1;
#endif #endif
return &_mesa_texformat_rgb; return &_mesa_texformat_rgb;
case GL_COMPRESSED_RGBA_ARB: case GL_COMPRESSED_RGBA_ARB:
#if FEATURE_texture_fxt1 #if FEATURE_texture_fxt1
if (ctx->Extensions.TDFX_texture_compression_FXT1) if (ctx->Extensions.TDFX_texture_compression_FXT1)
return &_mesa_texformat_rgba_fxt1; return &_mesa_texformat_rgba_fxt1;
#endif #endif
#if FEATURE_texture_s3tc #if FEATURE_texture_s3tc
if (ctx->Extensions.EXT_texture_compression_s3tc || if (ctx->Extensions.EXT_texture_compression_s3tc ||
ctx->Extensions.S3_s3tc) ctx->Extensions.S3_s3tc)
return &_mesa_texformat_rgba_dxt3; /* Not rgba_dxt1, see spec */ return &_mesa_texformat_rgba_dxt3; /* Not rgba_dxt1, see spec */
#endif #endif
return &_mesa_texformat_rgba; return &_mesa_texformat_rgba;
default: default:
; /* fallthrough */ ; /* fallthrough */
}
} }
if (ctx->Extensions.MESA_ycbcr_texture) { if (ctx->Extensions.MESA_ycbcr_texture) {

View File

@@ -253,23 +253,21 @@ _mesa_base_tex_format( GLcontext *ctx, GLint internalFormat )
} }
} }
if (ctx->Extensions.ARB_texture_compression) { switch (internalFormat) {
switch (internalFormat) { case GL_COMPRESSED_ALPHA:
case GL_COMPRESSED_ALPHA: return GL_ALPHA;
return GL_ALPHA; case GL_COMPRESSED_LUMINANCE:
case GL_COMPRESSED_LUMINANCE: return GL_LUMINANCE;
return GL_LUMINANCE; case GL_COMPRESSED_LUMINANCE_ALPHA:
case GL_COMPRESSED_LUMINANCE_ALPHA: return GL_LUMINANCE_ALPHA;
return GL_LUMINANCE_ALPHA; case GL_COMPRESSED_INTENSITY:
case GL_COMPRESSED_INTENSITY: return GL_INTENSITY;
return GL_INTENSITY; case GL_COMPRESSED_RGB:
case GL_COMPRESSED_RGB: return GL_RGB;
return GL_RGB; case GL_COMPRESSED_RGBA:
case GL_COMPRESSED_RGBA: return GL_RGBA;
return GL_RGBA; default:
default: ; /* fallthrough */
; /* fallthrough */
}
} }
if (ctx->Extensions.TDFX_texture_compression_FXT1) { if (ctx->Extensions.TDFX_texture_compression_FXT1) {

View File

@@ -849,33 +849,21 @@ _mesa_GetTexLevelParameteriv( GLenum target, GLint level,
/* GL_ARB_texture_compression */ /* GL_ARB_texture_compression */
case GL_TEXTURE_COMPRESSED_IMAGE_SIZE: case GL_TEXTURE_COMPRESSED_IMAGE_SIZE:
if (ctx->Extensions.ARB_texture_compression) { if (img->IsCompressed && !isProxy) {
if (img->IsCompressed && !isProxy) { /* Don't use ctx->Driver.CompressedTextureSize() since that
/* Don't use ctx->Driver.CompressedTextureSize() since that * may returned a padded hardware size.
* may returned a padded hardware size. */
*/ *params = _mesa_compressed_texture_size(ctx, img->Width,
*params = _mesa_compressed_texture_size(ctx, img->Width, img->Height, img->Depth,
img->Height, img->Depth, img->TexFormat->MesaFormat);
img->TexFormat->MesaFormat); }
} else {
else { _mesa_error(ctx, GL_INVALID_OPERATION,
_mesa_error(ctx, GL_INVALID_OPERATION, "glGetTexLevelParameter[if]v(pname)");
"glGetTexLevelParameter[if]v(pname)"); }
}
}
else {
_mesa_error(ctx, GL_INVALID_ENUM,
"glGetTexLevelParameter[if]v(pname)");
}
break; break;
case GL_TEXTURE_COMPRESSED: case GL_TEXTURE_COMPRESSED:
if (ctx->Extensions.ARB_texture_compression) { *params = (GLint) img->IsCompressed;
*params = (GLint) img->IsCompressed;
}
else {
_mesa_error(ctx, GL_INVALID_ENUM,
"glGetTexLevelParameter[if]v(pname)");
}
break; break;
/* GL_ARB_texture_float */ /* GL_ARB_texture_float */