From 4827179cc0d314f69671e97dcb016f5a3b90a213 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Wed, 29 Mar 2000 18:13:59 +0000 Subject: changes for single-copy textures --- src/mesa/main/dd.h | 2 +- src/mesa/main/teximage.c | 25 ++++++++++++++++++++++++- src/mesa/main/texobj.c | 11 +---------- 3 files changed, 26 insertions(+), 12 deletions(-) (limited to 'src/mesa/main') diff --git a/src/mesa/main/dd.h b/src/mesa/main/dd.h index 36acfb17051..ac6ce764736 100644 --- a/src/mesa/main/dd.h +++ b/src/mesa/main/dd.h @@ -1,4 +1,3 @@ -/* $Id: dd.h,v 1.23 2000/03/23 16:22:36 brianp Exp $ */ /* * Mesa 3-D graphics library @@ -626,6 +625,7 @@ struct dd_function_table { */ GLvoid *(*GetTexImage)( GLcontext *ctx, GLenum target, GLint level, + const struct gl_texture_object *texObj, GLenum *formatOut, GLenum *typeOut, GLboolean *freeImageOut ); /* Called by glGetTexImage or by core Mesa when a texture image diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c index 2547d6cadac..81f6852baf0 100644 --- a/src/mesa/main/teximage.c +++ b/src/mesa/main/teximage.c @@ -49,6 +49,29 @@ */ +#ifdef DEBUG +static void PrintTexture(int w, int h, int c, const GLubyte *data) +{ + int i, j; + for (i = 0; i < h; i++) { + for (j = 0; j < w; j++) { + if (c==1) + printf("%02x ", data[0]); + else if (c==2) + printf("%02x %02x ", data[0], data[1]); + else if (c==3) + printf("%02x %02x %02x ", data[0], data[1], data[2]); + else if (c==4) + printf("%02x %02x %02x %02x ", data[0], data[1], data[2], data[3]); + data += c; + } + printf("\n"); + } +} +#endif + + + /* * Compute log base 2 of n. * If n isn't an exact power of two return -1. @@ -1377,7 +1400,7 @@ _mesa_get_teximage_from_driver( GLcontext *ctx, GLenum target, GLint level, if (!ctx->Driver.GetTexImage) return; - image = (*ctx->Driver.GetTexImage)( ctx, target, level, + image = (*ctx->Driver.GetTexImage)( ctx, target, level, texObj, &imgFormat, &imgType, &freeImage); if (!image) return; diff --git a/src/mesa/main/texobj.c b/src/mesa/main/texobj.c index 726c107a193..bafac922aae 100644 --- a/src/mesa/main/texobj.c +++ b/src/mesa/main/texobj.c @@ -1,4 +1,3 @@ -/* $Id: texobj.c,v 1.16 2000/03/27 17:55:19 brianp Exp $ */ /* * Mesa 3-D graphics library @@ -168,7 +167,7 @@ void gl_test_texture_object_completeness( const GLcontext *ctx, struct gl_textur t->Complete = GL_TRUE; /* be optimistic */ /* Always need level zero image */ - if (!t->Image[0] || !t->Image[0]->Data) { + if (!t->Image[0]) { t->Complete = GL_FALSE; return; } @@ -207,10 +206,6 @@ void gl_test_texture_object_completeness( const GLcontext *ctx, struct gl_textur /* Test dimension-independent attributes */ for (i = minLevel; i <= maxLevel; i++) { if (t->Image[i]) { - if (!t->Image[i]->Data) { - t->Complete = GL_FALSE; - return; - } if (t->Image[i]->Format != t->Image[0]->Format) { t->Complete = GL_FALSE; return; @@ -235,10 +230,6 @@ void gl_test_texture_object_completeness( const GLcontext *ctx, struct gl_textur t->Complete = GL_FALSE; return; } - if (!t->Image[i]->Data) { - t->Complete = GL_FALSE; - return; - } if (t->Image[i]->Width2 != width ) { t->Complete = GL_FALSE; return; -- cgit v1.2.3