diff options
author | Brian Paul <brian.paul@tungstengraphics.com> | 2003-09-12 15:03:12 +0000 |
---|---|---|
committer | Brian Paul <brian.paul@tungstengraphics.com> | 2003-09-12 15:03:12 +0000 |
commit | 973da83f6237b5af4a9ee77f32fdfa5c04ecabc8 (patch) | |
tree | f5fe8c25f0c960dc26ac958ca96fe41658a3e55e /src/mesa/main/teximage.c | |
parent | 5c480a4887aaca56bd70bde91bddbc13f71e721e (diff) |
Allow glTexImage1/2/3D to specify width/height/depth = 0.
This allows texture state to be resettable to default state.
Not allowed according to the spec, but allowed by all other OpenGL libs.
Diffstat (limited to 'src/mesa/main/teximage.c')
-rw-r--r-- | src/mesa/main/teximage.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c index 90f0332237..e10b75b0b3 100644 --- a/src/mesa/main/teximage.c +++ b/src/mesa/main/teximage.c @@ -105,7 +105,7 @@ static void PrintTexture(GLcontext *ctx, const struct gl_texture_image *img) /* * Compute floor(log_base_2(n)). - * If n <= 0 return -1. + * If n < 0 return -1. */ static int logbase2( int n ) @@ -113,9 +113,11 @@ logbase2( int n ) GLint i = 1; GLint log2 = 0; - if (n <= 0) { + if (n < 0) return -1; - } + + if (n == 0) + return 0; while ( n > i ) { i *= 2; @@ -1094,10 +1096,10 @@ texture_error_check( GLcontext *ctx, GLenum target, return GL_TRUE; } - if (width < 1 || height < 1 || depth < 1) { + if (width < 0 || height < 0 || depth < 0) { if (!isProxy) { _mesa_error(ctx, GL_INVALID_VALUE, - "glTexImage%dD(width, height or depth < 1)", dimensions); + "glTexImage%dD(width, height or depth < 0)", dimensions); } return GL_TRUE; } |