diff options
| author | Brian Paul <brian.paul@tungstengraphics.com> | 2000-09-28 18:30:39 +0000 | 
|---|---|---|
| committer | Brian Paul <brian.paul@tungstengraphics.com> | 2000-09-28 18:30:39 +0000 | 
| commit | 37a6211795cfd0a4431bdb7c676acf54f29df994 (patch) | |
| tree | f4d0bf75f657bed5608e94bdd5f329ee3c10abc6 /src | |
| parent | 574c456a5ac6ca13f293a2884c3a90fd28edd4e1 (diff) | |
new params for SpecificCompressedTexFormat() (Bill White)
Diffstat (limited to 'src')
| -rw-r--r-- | src/mesa/main/dd.h | 13 | ||||
| -rw-r--r-- | src/mesa/main/teximage.c | 49 | 
2 files changed, 38 insertions, 24 deletions
| diff --git a/src/mesa/main/dd.h b/src/mesa/main/dd.h index 0341c50acc..a94e21d4b2 100644 --- a/src/mesa/main/dd.h +++ b/src/mesa/main/dd.h @@ -1,4 +1,4 @@ -/* $Id: dd.h,v 1.32 2000/09/14 23:13:51 brianp Exp $ */ +/* $Id: dd.h,v 1.33 2000/09/28 18:30:39 brianp Exp $ */  /*   * Mesa 3-D graphics library @@ -699,8 +699,15 @@ struct dd_function_table {      */     GLint (*SpecificCompressedTexFormat)(GLcontext *ctx, -                                        GLint internalFormat, -                                        GLint numDimensions); +                                        GLint      internalFormat, +                                        GLint      numDimensions, +                                        GLint     *levelp, +                                        GLsizei   *widthp, +                                        GLsizei   *heightp, +                                        GLsizei   *depthp, +                                        GLint     *borderp, +                                        GLenum    *formatp, +                                        GLenum    *typep);     /* Called to turn a generic texture format into a specific      * texture format.  For example, if a driver implements      * GL_3DFX_texture_compression_FXT1, this would map diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c index 6f14c1974b..6617912c5f 100644 --- a/src/mesa/main/teximage.c +++ b/src/mesa/main/teximage.c @@ -1,4 +1,4 @@ -/* $Id: teximage.c,v 1.50 2000/09/07 15:38:49 brianp Exp $ */ +/* $Id: teximage.c,v 1.51 2000/09/28 18:30:39 brianp Exp $ */  /*   * Mesa 3-D graphics library @@ -1507,7 +1507,14 @@ copytexsubimage_error_check( GLcontext *ctx, GLuint dimensions,   */  static GLint  get_specific_compressed_tex_format(GLcontext *ctx, -                                   GLint ifmt, GLint numDimensions) +                                   GLint ifmt, GLint numDimensions, +                                   GLint     *levelp, +                                   GLsizei   *widthp, +                                   GLsizei   *heightp, +                                   GLsizei   *depthp, +                                   GLint     *borderp, +                                   GLenum    *formatp, +                                   GLenum    *typep)  {     char message[100];     GLint internalFormat = ifmt; @@ -1516,22 +1523,14 @@ get_specific_compressed_tex_format(GLcontext *ctx,         && ctx->Driver.SpecificCompressedTexFormat) {        /*         * First, ask the driver for the specific format. +       * We do this for all formats, since we may want to +       * fake one compressed format for another.         */ -      switch (internalFormat) { -         case GL_COMPRESSED_ALPHA_ARB: -         case GL_COMPRESSED_LUMINANCE_ARB: -         case GL_COMPRESSED_LUMINANCE_ALPHA_ARB: -         case GL_COMPRESSED_INTENSITY_ARB: -         case GL_COMPRESSED_RGB_ARB: -         case GL_COMPRESSED_RGBA_ARB: -            internalFormat = (*ctx->Driver.SpecificCompressedTexFormat) -                                         (ctx, internalFormat, numDimensions); -            /* XXX shouldn't we return now? */ -            break; -         default: -            /* silence compiler warnings */ -            ; -      } +       internalFormat = (*ctx->Driver.SpecificCompressedTexFormat) +                               (ctx, internalFormat, numDimensions, +                                levelp, +                                widthp, heightp, depthp, +                                borderp, formatp, typep);     }     /* @@ -1597,7 +1596,6 @@ get_specific_compressed_tex_format(GLcontext *ctx,  } -  /*   * Called from the API.  Note that width includes the border.   */ @@ -1619,7 +1617,10 @@ _mesa_TexImage1D( GLenum target, GLint level, GLint internalFormat,        struct gl_texture_image *texImage;        GLint ifmt; -      ifmt = get_specific_compressed_tex_format(ctx, internalFormat, 1); +      ifmt = get_specific_compressed_tex_format(ctx, internalFormat, 1, +                                                &level, +                                                &width, 0, 0, +                                                &border, &format, &type);        if (ifmt < 0) {           /*            * The error here is that we were sent a generic compressed @@ -1752,7 +1753,10 @@ _mesa_TexImage2D( GLenum target, GLint level, GLint internalFormat,        struct gl_texture_image *texImage;        GLint ifmt; -      ifmt = get_specific_compressed_tex_format(ctx, internalFormat, 2); +      ifmt = get_specific_compressed_tex_format(ctx, internalFormat, 2, +                                                &level, +                                                &width, &height, 0, +                                                &border, &format, &type);        if (ifmt < 0) {           /*            * The error here is that we were sent a generic compressed @@ -1894,7 +1898,10 @@ _mesa_TexImage3D( GLenum target, GLint level, GLint internalFormat,        struct gl_texture_image *texImage;        GLint ifmt; -      ifmt = get_specific_compressed_tex_format(ctx, internalFormat, 3); +      ifmt = get_specific_compressed_tex_format(ctx, internalFormat, 3, +                                                &level, +                                                &width, &height, &depth, +                                                &border, &format, &type);        if (ifmt < 0) {           /*            * The error here is that we were sent a generic compressed | 
