diff options
| author | Chia-I Wu <olvaffe@gmail.com> | 2009-09-09 12:01:19 +0800 | 
|---|---|---|
| committer | Chia-I Wu <olvaffe@gmail.com> | 2009-09-12 20:55:59 +0800 | 
| commit | 4132e67e31fa14a1b529a0e16c5951d86db62ba2 (patch) | |
| tree | 25c091f8743e7b6b0f0c7f9439b4735f4e82912a | |
| parent | 5c8873a3111031e77934eeedbf81b868617183e1 (diff) | |
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.
| -rw-r--r-- | src/mesa/main/context.c | 2 | ||||
| -rw-r--r-- | src/mesa/main/texcompress_s3tc.c | 40 | ||||
| -rw-r--r-- | 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 */ | 
