mesa: add some #if FEATURE_x tests
This commit is contained in:
@@ -144,9 +144,7 @@
|
||||
#include "vtxfmt.h"
|
||||
#include "glapi/glthread.h"
|
||||
#include "glapi/glapioffsets.h"
|
||||
#if FEATURE_NV_vertex_program || FEATURE_NV_fragment_program
|
||||
#include "shader/program.h"
|
||||
#endif
|
||||
#include "shader/shader_api.h"
|
||||
#include "shader/atifragshader.h"
|
||||
#if _HAVE_FULL_GL
|
||||
@@ -622,6 +620,7 @@ delete_program_cb(GLuint id, void *data, void *userData)
|
||||
ctx->Driver.DeleteProgram(ctx, prog);
|
||||
}
|
||||
|
||||
#if FEATURE_ATI_fragment_shader
|
||||
/**
|
||||
* Callback for deleting an ATI fragment shader object.
|
||||
* Called by _mesa_HashDeleteAll().
|
||||
@@ -633,6 +632,7 @@ delete_fragshader_cb(GLuint id, void *data, void *userData)
|
||||
GLcontext *ctx = (GLcontext *) userData;
|
||||
_mesa_delete_ati_fragment_shader(ctx, shader);
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Callback for deleting a buffer object. Called by _mesa_HashDeleteAll().
|
||||
|
||||
@@ -904,6 +904,7 @@ _mesa_set_enable(GLcontext *ctx, GLenum cap, GLboolean state)
|
||||
break;
|
||||
|
||||
/* GL_MESA_program_debug */
|
||||
#if FEATURE_MESA_program_debug
|
||||
case GL_FRAGMENT_PROGRAM_CALLBACK_MESA:
|
||||
CHECK_EXTENSION(MESA_program_debug, cap);
|
||||
ctx->FragmentProgram.CallbackEnabled = state;
|
||||
@@ -912,6 +913,7 @@ _mesa_set_enable(GLcontext *ctx, GLenum cap, GLboolean state)
|
||||
CHECK_EXTENSION(MESA_program_debug, cap);
|
||||
ctx->VertexProgram.CallbackEnabled = state;
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if FEATURE_ATI_fragment_shader
|
||||
case GL_FRAGMENT_SHADER_ATI:
|
||||
@@ -1349,12 +1351,15 @@ _mesa_IsEnabled( GLenum cap )
|
||||
return ctx->Depth.BoundsTest;
|
||||
|
||||
/* GL_MESA_program_debug */
|
||||
#if FEATURE_MESA_program_debug
|
||||
case GL_FRAGMENT_PROGRAM_CALLBACK_MESA:
|
||||
CHECK_EXTENSION(MESA_program_debug);
|
||||
return ctx->FragmentProgram.CallbackEnabled;
|
||||
case GL_VERTEX_PROGRAM_CALLBACK_MESA:
|
||||
CHECK_EXTENSION(MESA_program_debug);
|
||||
return ctx->VertexProgram.CallbackEnabled;
|
||||
#endif
|
||||
|
||||
#if FEATURE_ATI_fragment_shader
|
||||
case GL_FRAGMENT_SHADER_ATI:
|
||||
CHECK_EXTENSION(ATI_fragment_shader);
|
||||
|
||||
@@ -137,8 +137,10 @@ _mesa_compressed_texture_size( GLcontext *ctx,
|
||||
|
||||
ASSERT(depth == 1);
|
||||
(void) depth;
|
||||
(void) size;
|
||||
|
||||
switch (mesaFormat) {
|
||||
#if FEATURE_texture_fxt1
|
||||
case MESA_FORMAT_RGB_FXT1:
|
||||
case MESA_FORMAT_RGBA_FXT1:
|
||||
/* round up width to next multiple of 8, height to next multiple of 4 */
|
||||
@@ -152,6 +154,8 @@ _mesa_compressed_texture_size( GLcontext *ctx,
|
||||
if (size < 16)
|
||||
size = 16;
|
||||
return size;
|
||||
#endif
|
||||
#if FEATURE_texture_s3tc
|
||||
case MESA_FORMAT_RGB_DXT1:
|
||||
case MESA_FORMAT_RGBA_DXT1:
|
||||
/* round up width, height to next multiple of 4 */
|
||||
@@ -178,6 +182,7 @@ _mesa_compressed_texture_size( GLcontext *ctx,
|
||||
if (size < 16)
|
||||
size = 16;
|
||||
return size;
|
||||
#endif
|
||||
default:
|
||||
_mesa_problem(ctx, "bad mesaFormat in _mesa_compressed_texture_size");
|
||||
return 0;
|
||||
@@ -202,12 +207,15 @@ _mesa_compressed_texture_size_glenum(GLcontext *ctx,
|
||||
GLuint mesaFormat;
|
||||
|
||||
switch (glformat) {
|
||||
#if FEATURE_texture_fxt1
|
||||
case GL_COMPRESSED_RGB_FXT1_3DFX:
|
||||
mesaFormat = MESA_FORMAT_RGB_FXT1;
|
||||
break;
|
||||
case GL_COMPRESSED_RGBA_FXT1_3DFX:
|
||||
mesaFormat = MESA_FORMAT_RGBA_FXT1;
|
||||
break;
|
||||
#endif
|
||||
#if FEATURE_texture_s3tc
|
||||
case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:
|
||||
case GL_RGB_S3TC:
|
||||
mesaFormat = MESA_FORMAT_RGB_DXT1;
|
||||
@@ -224,6 +232,7 @@ _mesa_compressed_texture_size_glenum(GLcontext *ctx,
|
||||
case GL_RGBA4_S3TC:
|
||||
mesaFormat = MESA_FORMAT_RGBA_DXT5;
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
@@ -245,10 +254,13 @@ _mesa_compressed_row_stride(GLuint mesaFormat, GLsizei width)
|
||||
GLint stride;
|
||||
|
||||
switch (mesaFormat) {
|
||||
#if FEATURE_texture_fxt1
|
||||
case MESA_FORMAT_RGB_FXT1:
|
||||
case MESA_FORMAT_RGBA_FXT1:
|
||||
stride = ((width + 7) / 8) * 16; /* 16 bytes per 8x4 tile */
|
||||
break;
|
||||
#endif
|
||||
#if FEATURE_texture_s3tc
|
||||
case MESA_FORMAT_RGB_DXT1:
|
||||
case MESA_FORMAT_RGBA_DXT1:
|
||||
stride = ((width + 3) / 4) * 8; /* 8 bytes per 4x4 tile */
|
||||
@@ -257,6 +269,7 @@ _mesa_compressed_row_stride(GLuint mesaFormat, GLsizei width)
|
||||
case MESA_FORMAT_RGBA_DXT5:
|
||||
stride = ((width + 3) / 4) * 16; /* 16 bytes per 4x4 tile */
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
_mesa_problem(NULL, "bad mesaFormat in _mesa_compressed_row_stride");
|
||||
return 0;
|
||||
@@ -293,10 +306,13 @@ _mesa_compressed_image_address(GLint col, GLint row, GLint img,
|
||||
*/
|
||||
|
||||
switch (mesaFormat) {
|
||||
#if FEATURE_texture_fxt1
|
||||
case MESA_FORMAT_RGB_FXT1:
|
||||
case MESA_FORMAT_RGBA_FXT1:
|
||||
addr = (GLubyte *) image + 16 * (((width + 7) / 8) * (row / 4) + col / 8);
|
||||
break;
|
||||
#endif
|
||||
#if FEATURE_texture_s3tc
|
||||
case MESA_FORMAT_RGB_DXT1:
|
||||
case MESA_FORMAT_RGBA_DXT1:
|
||||
addr = (GLubyte *) image + 8 * (((width + 3) / 4) * (row / 4) + col / 4);
|
||||
@@ -305,6 +321,7 @@ _mesa_compressed_image_address(GLint col, GLint row, GLint img,
|
||||
case MESA_FORMAT_RGBA_DXT5:
|
||||
addr = (GLubyte *) image + 16 * (((width + 3) / 4) * (row / 4) + col / 4);
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
_mesa_problem(NULL, "bad mesaFormat in _mesa_compressed_image_address");
|
||||
addr = NULL;
|
||||
|
||||
@@ -1693,6 +1693,7 @@ _mesa_format_to_type_and_comps(const struct gl_texture_format *format,
|
||||
*comps = 1;
|
||||
return;
|
||||
|
||||
#if FEATURE_EXT_texture_sRGB
|
||||
case MESA_FORMAT_SRGB8:
|
||||
*datatype = GL_UNSIGNED_BYTE;
|
||||
*comps = 3;
|
||||
@@ -1709,9 +1710,13 @@ _mesa_format_to_type_and_comps(const struct gl_texture_format *format,
|
||||
*datatype = GL_UNSIGNED_BYTE;
|
||||
*comps = 2;
|
||||
return;
|
||||
#endif
|
||||
|
||||
#if FEATURE_texture_fxt1
|
||||
case MESA_FORMAT_RGB_FXT1:
|
||||
case MESA_FORMAT_RGBA_FXT1:
|
||||
#endif
|
||||
#if FEATURE_texture_s3tc
|
||||
case MESA_FORMAT_RGB_DXT1:
|
||||
case MESA_FORMAT_RGBA_DXT1:
|
||||
case MESA_FORMAT_RGBA_DXT3:
|
||||
@@ -1720,6 +1725,7 @@ _mesa_format_to_type_and_comps(const struct gl_texture_format *format,
|
||||
*datatype = GL_UNSIGNED_BYTE;
|
||||
*comps = 0;
|
||||
return;
|
||||
#endif
|
||||
|
||||
case MESA_FORMAT_RGBA:
|
||||
*datatype = CHAN_TYPE;
|
||||
|
||||
@@ -105,12 +105,16 @@ enum _format {
|
||||
* \name Compressed texture formats.
|
||||
*/
|
||||
/*@{*/
|
||||
#if FEATURE_texture_fxt1
|
||||
MESA_FORMAT_RGB_FXT1,
|
||||
MESA_FORMAT_RGBA_FXT1,
|
||||
#endif
|
||||
#if FEATURE_texture_s3tc
|
||||
MESA_FORMAT_RGB_DXT1,
|
||||
MESA_FORMAT_RGBA_DXT1,
|
||||
MESA_FORMAT_RGBA_DXT3,
|
||||
MESA_FORMAT_RGBA_DXT5,
|
||||
#endif
|
||||
/*@}*/
|
||||
|
||||
/**
|
||||
@@ -223,12 +227,16 @@ extern const struct gl_texture_format _mesa_texformat_ycbcr_rev;
|
||||
|
||||
/** \name Compressed formats */
|
||||
/*@{*/
|
||||
#if FEATURE_texture_fxt1
|
||||
extern const struct gl_texture_format _mesa_texformat_rgb_fxt1;
|
||||
extern const struct gl_texture_format _mesa_texformat_rgba_fxt1;
|
||||
#endif
|
||||
#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 */
|
||||
|
||||
Reference in New Issue
Block a user