From 4132e67e31fa14a1b529a0e16c5951d86db62ba2 Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Wed, 9 Sep 2009 12:01:19 +0800 Subject: mesa/main: Provide dummy texformats when FEATURE_texture_s3tc is disabled. Instead of removing the related enums and texture formats, provide dummy ones when the feature is disabled. --- src/mesa/main/context.c | 2 -- src/mesa/main/texcompress_s3tc.c | 40 +++++++++++++++++++++++++++++++++++++++- src/mesa/main/texformat.h | 8 -------- 3 files changed, 39 insertions(+), 11 deletions(-) diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c index 20307926a3..4e637ff44b 100644 --- a/src/mesa/main/context.c +++ b/src/mesa/main/context.c @@ -699,9 +699,7 @@ init_attrib_groups(GLcontext *ctx) if (!_mesa_init_texture( ctx )) return GL_FALSE; -#if FEATURE_texture_s3tc _mesa_init_texture_s3tc( ctx ); -#endif _mesa_init_texture_fxt1( ctx ); /* Miscellaneous */ diff --git a/src/mesa/main/texcompress_s3tc.c b/src/mesa/main/texcompress_s3tc.c index a1c0f18f36..754cb33cc0 100644 --- a/src/mesa/main/texcompress_s3tc.c +++ b/src/mesa/main/texcompress_s3tc.c @@ -54,6 +54,10 @@ #define DXTN_LIBNAME "libtxc_dxtn.so" #endif + +#if FEATURE_texture_s3tc + + #if FEATURE_EXT_texture_sRGB /** * Convert an 8-bit sRGB value from non-linear space to a @@ -564,7 +568,21 @@ fetch_texel_2d_f_srgba_dxt5( const struct gl_texture_image *texImage, texel[BCOMP] = nonlinear_to_linear(rgba[BCOMP]); texel[ACOMP] = CHAN_TO_FLOAT(rgba[ACOMP]); } -#endif +#endif /* FEATURE_EXT_texture_sRGB */ + + +#else /* FEATURE_texture_s3tc */ + + +void +_mesa_init_texture_s3tc( GLcontext *ctx ) +{ + (void) ctx; +} + + +#endif /* FEATURE_texture_s3tc */ + const struct gl_texture_format _mesa_texformat_rgb_dxt1 = { MESA_FORMAT_RGB_DXT1, /* MesaFormat */ @@ -580,6 +598,7 @@ const struct gl_texture_format _mesa_texformat_rgb_dxt1 = { 0, /* DepthBits */ 0, /* StencilBits */ 0, /* TexelBytes */ +#if FEATURE_texture_s3tc texstore_rgb_dxt1, /* StoreTexImageFunc */ NULL, /*impossible*/ /* FetchTexel1D */ fetch_texel_2d_rgb_dxt1, /* FetchTexel2D */ @@ -588,6 +607,10 @@ const struct gl_texture_format _mesa_texformat_rgb_dxt1 = { fetch_texel_2d_f_rgb_dxt1, /* FetchTexel2Df */ NULL, /*impossible*/ /* FetchTexel3Df */ NULL /* StoreTexel */ +#else + _mesa_texstore_null, + _MESA_TEXFORMAT_NULL_OPS +#endif }; const struct gl_texture_format _mesa_texformat_rgba_dxt1 = { @@ -604,6 +627,7 @@ const struct gl_texture_format _mesa_texformat_rgba_dxt1 = { 0, /* DepthBits */ 0, /* StencilBits */ 0, /* TexelBytes */ +#if FEATURE_texture_s3tc texstore_rgba_dxt1, /* StoreTexImageFunc */ NULL, /*impossible*/ /* FetchTexel1D */ fetch_texel_2d_rgba_dxt1, /* FetchTexel2D */ @@ -612,6 +636,10 @@ const struct gl_texture_format _mesa_texformat_rgba_dxt1 = { fetch_texel_2d_f_rgba_dxt1, /* FetchTexel2Df */ NULL, /*impossible*/ /* FetchTexel3Df */ NULL /* StoreTexel */ +#else + _mesa_texstore_null, + _MESA_TEXFORMAT_NULL_OPS +#endif }; const struct gl_texture_format _mesa_texformat_rgba_dxt3 = { @@ -628,6 +656,7 @@ const struct gl_texture_format _mesa_texformat_rgba_dxt3 = { 0, /* DepthBits */ 0, /* StencilBits */ 0, /* TexelBytes */ +#if FEATURE_texture_s3tc texstore_rgba_dxt3, /* StoreTexImageFunc */ NULL, /*impossible*/ /* FetchTexel1D */ fetch_texel_2d_rgba_dxt3, /* FetchTexel2D */ @@ -636,6 +665,10 @@ const struct gl_texture_format _mesa_texformat_rgba_dxt3 = { fetch_texel_2d_f_rgba_dxt3, /* FetchTexel2Df */ NULL, /*impossible*/ /* FetchTexel3Df */ NULL /* StoreTexel */ +#else + _mesa_texstore_null, + _MESA_TEXFORMAT_NULL_OPS +#endif }; const struct gl_texture_format _mesa_texformat_rgba_dxt5 = { @@ -652,6 +685,7 @@ const struct gl_texture_format _mesa_texformat_rgba_dxt5 = { 0, /* DepthBits */ 0, /* StencilBits */ 0, /* TexelBytes */ +#if FEATURE_texture_s3tc texstore_rgba_dxt5, /* StoreTexImageFunc */ NULL, /*impossible*/ /* FetchTexel1D */ fetch_texel_2d_rgba_dxt5, /* FetchTexel2D */ @@ -660,6 +694,10 @@ const struct gl_texture_format _mesa_texformat_rgba_dxt5 = { fetch_texel_2d_f_rgba_dxt5, /* FetchTexel2Df */ NULL, /*impossible*/ /* FetchTexel3Df */ NULL /* StoreTexel */ +#else + _mesa_texstore_null, + _MESA_TEXFORMAT_NULL_OPS +#endif }; #if FEATURE_EXT_texture_sRGB diff --git a/src/mesa/main/texformat.h b/src/mesa/main/texformat.h index b674301338..a4d8bbf831 100644 --- a/src/mesa/main/texformat.h +++ b/src/mesa/main/texformat.h @@ -112,12 +112,10 @@ enum _format { MESA_FORMAT_SARGB8, MESA_FORMAT_SL8, MESA_FORMAT_SLA8, -#if FEATURE_texture_s3tc MESA_FORMAT_SRGB_DXT1, MESA_FORMAT_SRGBA_DXT1, MESA_FORMAT_SRGBA_DXT3, MESA_FORMAT_SRGBA_DXT5, -#endif /*@}*/ #endif @@ -127,12 +125,10 @@ enum _format { /*@{*/ MESA_FORMAT_RGB_FXT1, MESA_FORMAT_RGBA_FXT1, -#if FEATURE_texture_s3tc MESA_FORMAT_RGB_DXT1, MESA_FORMAT_RGBA_DXT1, MESA_FORMAT_RGBA_DXT3, MESA_FORMAT_RGBA_DXT5, -#endif /*@}*/ /** @@ -201,12 +197,10 @@ extern const struct gl_texture_format _mesa_texformat_srgba8; extern const struct gl_texture_format _mesa_texformat_sargb8; extern const struct gl_texture_format _mesa_texformat_sl8; extern const struct gl_texture_format _mesa_texformat_sla8; -#if FEATURE_texture_s3tc extern const struct gl_texture_format _mesa_texformat_srgb_dxt1; extern const struct gl_texture_format _mesa_texformat_srgba_dxt1; extern const struct gl_texture_format _mesa_texformat_srgba_dxt3; extern const struct gl_texture_format _mesa_texformat_srgba_dxt5; -#endif /*@}*/ #endif @@ -272,12 +266,10 @@ extern const struct gl_texture_format _mesa_texformat_ycbcr_rev; /*@{*/ extern const struct gl_texture_format _mesa_texformat_rgb_fxt1; extern const struct gl_texture_format _mesa_texformat_rgba_fxt1; -#if FEATURE_texture_s3tc extern const struct gl_texture_format _mesa_texformat_rgb_dxt1; extern const struct gl_texture_format _mesa_texformat_rgba_dxt1; extern const struct gl_texture_format _mesa_texformat_rgba_dxt3; extern const struct gl_texture_format _mesa_texformat_rgba_dxt5; -#endif /*@}*/ /** \name The null format */ -- cgit v1.2.3