summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian Paul <[email protected]>2000-03-29 18:13:59 +0000
committerBrian Paul <[email protected]>2000-03-29 18:13:59 +0000
commit4827179cc0d314f69671e97dcb016f5a3b90a213 (patch)
treee524f42d836a25ba11324859b2135b0e47966fb7
parent8fd9fcbc2d6fd6563165fad98258b0d6d974fc62 (diff)
changes for single-copy textures
-rw-r--r--src/mesa/main/dd.h2
-rw-r--r--src/mesa/main/teximage.c25
-rw-r--r--src/mesa/main/texobj.c11
3 files changed, 26 insertions, 12 deletions
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;