diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/mesa/drivers/windows/gdi/wmesa.c | 34 |
1 files changed, 32 insertions, 2 deletions
diff --git a/src/mesa/drivers/windows/gdi/wmesa.c b/src/mesa/drivers/windows/gdi/wmesa.c index ea13a31c42..96cfafff4c 100644 --- a/src/mesa/drivers/windows/gdi/wmesa.c +++ b/src/mesa/drivers/windows/gdi/wmesa.c @@ -56,6 +56,8 @@ #include "tnl/t_pipeline.h" #include "drivers/common/driverfuncs.h" +#define SWTC 0 /* SW texture compression */ + /* Dither not tested for Mesa 4.0 */ #ifdef DITHER #ifdef USE_WING @@ -1057,6 +1059,21 @@ static void read_rgba_pixels( const GLcontext* ctx, /**********************************************************************/ +static const struct gl_texture_format * +choose_tex_format( GLcontext *ctx, GLint internalFormat, + GLenum format, GLenum type ) +{ + switch (internalFormat) { + case GL_COMPRESSED_RGB_ARB: + return &_mesa_texformat_rgb; + case GL_COMPRESSED_RGBA_ARB: + return &_mesa_texformat_rgba; + default: + return _mesa_choose_tex_format(ctx, internalFormat, format, type); + } +} + + static const GLubyte *get_string(GLcontext *ctx, GLenum name) { (void) ctx; @@ -1076,13 +1093,17 @@ static void SetFunctionPointers( struct dd_function_table *functions ) functions->UpdateState = wmesa_update_state; functions->ResizeBuffers = _swrast_alloc_buffers; functions->GetBufferSize = buffer_size; - + functions->Clear = clear; - + functions->Flush = flush; functions->ClearIndex = clear_index; functions->ClearColor = clear_color; functions->Enable = enable; + +#if SWTC + functions->ChooseTextureFormat = choose_tex_format; +#endif } @@ -1377,6 +1398,15 @@ WMesaContext WMesaCreateContext( HWND hWnd, HPALETTE* Pal, _mesa_enable_sw_extensions(c->gl_ctx); _mesa_enable_1_3_extensions(c->gl_ctx); _mesa_enable_1_4_extensions(c->gl_ctx); + _mesa_enable_1_5_extensions(c->gl_ctx); + _mesa_enable_2_0_extensions(c->gl_ctx); +#if SWTC + if (c->gl_ctx->Mesa_DXTn) { + _mesa_enable_extension(c->gl_ctx, "GL_EXT_texture_compression_s3tc"); + _mesa_enable_extension(c->gl_ctx, "GL_S3_s3tc"); + } + _mesa_enable_extension(c->gl_ctx, "GL_3DFX_texture_compression_FXT1"); +#endif c->gl_buffer = _mesa_create_framebuffer( c->gl_visual, c->gl_visual->depthBits > 0, |