use I8 internal format for GL_INTENSITY, GL_ALPHA and GL_LUMINANCE texture formats...
authorRoland Scheidegger <rscheidegger@gmx.ch>
Thu, 17 Jun 2004 21:08:02 +0000 (21:08 +0000)
committerRoland Scheidegger <rscheidegger@gmx.ch>
Thu, 17 Jun 2004 21:08:02 +0000 (21:08 +0000)
src/mesa/drivers/dri/radeon/radeon_tex.c
src/mesa/drivers/dri/radeon/radeon_texstate.c

index 3de407df3bb3c454bcf3044967ca3d361ee1a77d..cb5073d3ccb460efe51c7977d4490fda3aed5c21 100644 (file)
@@ -345,7 +345,7 @@ radeonChooseTextureFormat( GLcontext *ctx, GLint internalFormat,
    case GL_ALPHA12:
    case GL_ALPHA16:
    case GL_COMPRESSED_ALPHA:
-      return &_mesa_texformat_al88;
+      return &_mesa_texformat_a8;
 
    case 1:
    case GL_LUMINANCE:
@@ -354,7 +354,7 @@ radeonChooseTextureFormat( GLcontext *ctx, GLint internalFormat,
    case GL_LUMINANCE12:
    case GL_LUMINANCE16:
    case GL_COMPRESSED_LUMINANCE:
-      return &_mesa_texformat_al88;
+      return &_mesa_texformat_l8;
 
    case 2:
    case GL_LUMINANCE_ALPHA:
index e3c305ef223c5f4a07ed61b54601dbe20044eba5..1ec4e7dce32678e667f686c0eff241f005ef35f0 100644 (file)
@@ -50,6 +50,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #include "radeon_tcl.h"
 
 
+#define RADEON_TXFORMAT_A8        RADEON_TXFORMAT_I8
+#define RADEON_TXFORMAT_L8        RADEON_TXFORMAT_I8
 #define RADEON_TXFORMAT_AL88      RADEON_TXFORMAT_AI88
 #define RADEON_TXFORMAT_YCBCR     RADEON_TXFORMAT_YVYU422
 #define RADEON_TXFORMAT_YCBCR_REV RADEON_TXFORMAT_VYUY422
@@ -62,7 +64,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
    [ MESA_FORMAT_ ## f ] = { RADEON_TXFORMAT_ ## f, RADEON_YUV_TO_RGB }
 #define _INVALID(f) \
     [ MESA_FORMAT_ ## f ] = { 0xffffffff, 0 }
-#define VALID_FORMAT(f) ( ((f) <= MESA_FORMAT_YCBCR_REV) \
+#define VALID_FORMAT(f) ( ((f) <= MESA_FORMAT_RGBA_DXT5) \
                             && (tx_table[f].format != 0xffffffff) )
 
 static const struct {
@@ -77,9 +79,9 @@ tx_table[] =
    _ALPHA(ARGB4444),
    _ALPHA(ARGB1555),
    _ALPHA(AL88),
-   _INVALID(A8),
-   _INVALID(L8),
-   _COLOR(I8),
+   _ALPHA(A8),
+   _COLOR(L8),
+   _ALPHA(I8),
    _INVALID(CI8),
    _YUV(YCBCR),
    _YUV(YCBCR_REV),
@@ -556,7 +558,6 @@ static GLboolean radeonUpdateTextureEnv( GLcontext *ctx, int unit )
          * 1.3) does.
          */
         RGBshift = 0;
-        Ashift = 0;
         /* FALLTHROUGH */
 
       case GL_DOT3_RGB:
@@ -569,7 +570,11 @@ static GLboolean radeonUpdateTextureEnv( GLcontext *ctx, int unit )
         }
 
         RGBshift += 2;
-        Ashift = RGBshift;
+        if ( (texUnit->_CurrentCombine->ModeRGB == GL_DOT3_RGBA_EXT)
+           || (texUnit->_CurrentCombine->ModeRGB == GL_DOT3_RGBA) ) {
+            /* is it necessary to set this or will it be ignored anyway? */
+           Ashift = RGBshift;
+        }
 
         color_combine = (RADEON_COLOR_ARG_C_ZERO |
                          RADEON_BLEND_CTL_DOT3 |