diff options
author | Brian Paul <[email protected]> | 2004-04-22 00:27:31 +0000 |
---|---|---|
committer | Brian Paul <[email protected]> | 2004-04-22 00:27:31 +0000 |
commit | f959f6e1dc27c71fc0ccc56e09b29101b3bf3b97 (patch) | |
tree | 15b4171c2b3396e3a05f2776cc24d90cb37c8f84 /src/mesa/drivers/dri/r200 | |
parent | 05a6f2fd484bab59c6e6a381f58808adc26619f1 (diff) |
New glTexImage code.
The gl_texture_format struct now has a StoreTexImageFunc that's called
by glTex[Sub]Image[123]D to convert the user's texture data into the
specific texture format layout. Now it's much easier to add new texture
formats (like the 16/32-bit floating point formats).
The texutil.[ch] and texutil_tmp.h files are obsolete.
Diffstat (limited to 'src/mesa/drivers/dri/r200')
-rw-r--r-- | src/mesa/drivers/dri/r200/r200_tex.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/src/mesa/drivers/dri/r200/r200_tex.c b/src/mesa/drivers/dri/r200/r200_tex.c index 2a5603b4d5c..6ce143dacea 100644 --- a/src/mesa/drivers/dri/r200/r200_tex.c +++ b/src/mesa/drivers/dri/r200/r200_tex.c @@ -445,7 +445,6 @@ r200ValidateClientStorage( GLcontext *ctx, GLenum target, { r200ContextPtr rmesa = R200_CONTEXT(ctx); - int texelBytes; if (0) fprintf(stderr, "intformat %s format %s type %s\n", @@ -468,7 +467,6 @@ r200ValidateClientStorage( GLcontext *ctx, GLenum target, case GL_RGBA: if ( format == GL_BGRA && type == GL_UNSIGNED_INT_8_8_8_8_REV ) { texImage->TexFormat = &_mesa_texformat_argb8888; - texelBytes = 4; } else return 0; @@ -477,7 +475,6 @@ r200ValidateClientStorage( GLcontext *ctx, GLenum target, case GL_RGB: if ( format == GL_RGB && type == GL_UNSIGNED_SHORT_5_6_5 ) { texImage->TexFormat = &_mesa_texformat_rgb565; - texelBytes = 2; } else return 0; @@ -487,19 +484,16 @@ r200ValidateClientStorage( GLcontext *ctx, GLenum target, if ( format == GL_YCBCR_MESA && type == GL_UNSIGNED_SHORT_8_8_REV_APPLE ) { texImage->TexFormat = &_mesa_texformat_ycbcr_rev; - texelBytes = 2; } else if ( format == GL_YCBCR_MESA && (type == GL_UNSIGNED_SHORT_8_8_APPLE || type == GL_UNSIGNED_BYTE)) { texImage->TexFormat = &_mesa_texformat_ycbcr; - texelBytes = 2; } else return 0; break; - - + default: return 0; } @@ -538,7 +532,8 @@ r200ValidateClientStorage( GLcontext *ctx, GLenum target, */ texImage->Data = (void *)pixels; texImage->IsClientData = GL_TRUE; - texImage->RowStride = srcRowStride / texelBytes; + texImage->RowStride = srcRowStride / texImage->TexFormat->TexelBytes; + return 1; } } |