summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Romanick <ian.d.romanick@intel.com>2012-07-26 18:46:23 -0700
committerIan Romanick <ian.d.romanick@intel.com>2012-10-24 11:41:06 -0700
commitb75d5c671f95116c61c44729b04db19b076e9cfc (patch)
treee0d100a59942fba0bfa520d18500397ca8326e12
parent7e7f7a32c2d84c15033ab7e02500edf92664cf47 (diff)
mesa/es: Validate glTexImage border in Mesa code rather than the ES wrapper
Also validate glCopyTexImage border. This fixes a bug in the APIspec. Previously glTexImage3DOES could be passed a non-zero border without error. NOTE: This is a candidate for stable release branches. Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> (cherry picked from commit 0686ccac950bac1a650400b29c47ddaafea22fa9)
-rw-r--r--src/mesa/main/APIspec.xml8
-rw-r--r--src/mesa/main/teximage.c6
2 files changed, 4 insertions, 10 deletions
diff --git a/src/mesa/main/APIspec.xml b/src/mesa/main/APIspec.xml
index eeae599298f..793dce15372 100644
--- a/src/mesa/main/APIspec.xml
+++ b/src/mesa/main/APIspec.xml
@@ -440,10 +440,6 @@
</desc>
</desc>
- <desc name="border" error="GL_INVALID_VALUE">
- <value name="0"/>
- </desc>
-
<desc name="format">
<value name="GL_ALPHA"/>
@@ -1918,10 +1914,6 @@
<value name="GL_LUMINANCE"/>
<value name="GL_LUMINANCE_ALPHA"/>
</desc>
-
- <desc name="border" error="GL_INVALID_VALUE">
- <value name="0"/>
- </desc>
</template>
<template name="CopyTexSubImage2D">
diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c
index b569a4927b9..888c7ad230c 100644
--- a/src/mesa/main/teximage.c
+++ b/src/mesa/main/teximage.c
@@ -1603,7 +1603,8 @@ texture_error_check( struct gl_context *ctx,
/* Check border */
if (border < 0 || border > 1 ||
- ((target == GL_TEXTURE_RECTANGLE_NV ||
+ ((ctx->API != API_OPENGL ||
+ target == GL_TEXTURE_RECTANGLE_NV ||
target == GL_PROXY_TEXTURE_RECTANGLE_NV) && border != 0)) {
if (!isProxy) {
_mesa_error(ctx, GL_INVALID_VALUE,
@@ -2004,7 +2005,8 @@ copytexture_error_check( struct gl_context *ctx, GLuint dimensions,
/* Check border */
if (border < 0 || border > 1 ||
- ((target == GL_TEXTURE_RECTANGLE_NV ||
+ ((ctx->API != API_OPENGL ||
+ target == GL_TEXTURE_RECTANGLE_NV ||
target == GL_PROXY_TEXTURE_RECTANGLE_NV) && border != 0)) {
_mesa_error(ctx, GL_INVALID_VALUE,
"glCopyTexImage%dD(border=%d)", dimensions, border);