From: Kristian Høgsberg Date: Sat, 24 Apr 2010 23:18:35 +0000 (-0400) Subject: mesa: Handle GL_TEXTURE_GEN_STR_OES in _mesa_Enable() X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=08fae07f5246052dccdd89689e27dc8820a24ff7;p=mesa.git mesa: Handle GL_TEXTURE_GEN_STR_OES in _mesa_Enable() --- diff --git a/src/mesa/es/main/es_enable.c b/src/mesa/es/main/es_enable.c deleted file mode 100644 index 351caacd776..00000000000 --- a/src/mesa/es/main/es_enable.c +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Copyright (C) 2009 Chia-I Wu - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - */ - -#include "GLES/gl.h" -#include "GLES/glext.h" - -#include "main/compiler.h" /* for ASSERT */ - - -#ifndef GL_TEXTURE_GEN_S -#define GL_TEXTURE_GEN_S 0x0C60 -#define GL_TEXTURE_GEN_T 0x0C61 -#define GL_TEXTURE_GEN_R 0x0C62 -#endif - - -extern void GL_APIENTRY _es_Disable(GLenum cap); -extern void GL_APIENTRY _es_Enable(GLenum cap); -extern GLboolean GL_APIENTRY _es_IsEnabled(GLenum cap); - -extern void GL_APIENTRY _mesa_Disable(GLenum cap); -extern void GL_APIENTRY _mesa_Enable(GLenum cap); -extern GLboolean GL_APIENTRY _mesa_IsEnabled(GLenum cap); - - -void GL_APIENTRY -_es_Disable(GLenum cap) -{ - switch (cap) { - case GL_TEXTURE_GEN_STR_OES: - /* disable S, T, and R at the same time */ - _mesa_Disable(GL_TEXTURE_GEN_S); - _mesa_Disable(GL_TEXTURE_GEN_T); - _mesa_Disable(GL_TEXTURE_GEN_R); - break; - default: - _mesa_Disable(cap); - break; - } -} - - -void GL_APIENTRY -_es_Enable(GLenum cap) -{ - switch (cap) { - case GL_TEXTURE_GEN_STR_OES: - /* enable S, T, and R at the same time */ - _mesa_Enable(GL_TEXTURE_GEN_S); - _mesa_Enable(GL_TEXTURE_GEN_T); - _mesa_Enable(GL_TEXTURE_GEN_R); - break; - default: - _mesa_Enable(cap); - break; - } -} - - -GLboolean GL_APIENTRY -_es_IsEnabled(GLenum cap) -{ - switch (cap) { - case GL_TEXTURE_GEN_STR_OES: - cap = GL_TEXTURE_GEN_S; - default: - break; - } - - return _mesa_IsEnabled(cap); -} diff --git a/src/mesa/es/sources.mak b/src/mesa/es/sources.mak index 8526820c806..e02fce76fd0 100644 --- a/src/mesa/es/sources.mak +++ b/src/mesa/es/sources.mak @@ -5,7 +5,6 @@ include $(MESA)/sources.mak LOCAL_ES1_SOURCES := \ main/drawtex.c \ main/es_cpaltex.c \ - main/es_enable.c \ main/es_query_matrix.c \ main/es_texgen.c \ glapi/glapi-es1/main/enums.c diff --git a/src/mesa/main/APIspec.xml b/src/mesa/main/APIspec.xml index 7ed303dab00..17eece1bb43 100644 --- a/src/mesa/main/APIspec.xml +++ b/src/mesa/main/APIspec.xml @@ -3921,8 +3921,8 @@ - - + + @@ -3969,7 +3969,7 @@ - + diff --git a/src/mesa/main/enable.c b/src/mesa/main/enable.c index 72787226dc4..db30123c0fb 100644 --- a/src/mesa/main/enable.c +++ b/src/mesa/main/enable.c @@ -682,6 +682,25 @@ _mesa_set_enable(GLcontext *ctx, GLenum cap, GLboolean state) } break; +#if FEATURE_ES1 + case GL_TEXTURE_GEN_STR_OES: + /* disable S, T, and R at the same time */ + { + struct gl_texture_unit *texUnit = get_texcoord_unit(ctx); + if (texUnit) { + GLuint newenabled = + texUnit->TexGenEnabled & ~STR_BITS; + if (state) + newenabled |= STR_BITS; + if (texUnit->TexGenEnabled == newenabled) + return; + FLUSH_VERTICES(ctx, _NEW_TEXTURE); + texUnit->TexGenEnabled = newenabled; + } + } + break; +#endif + /* * CLIENT STATE!!! */ @@ -1301,6 +1320,15 @@ _mesa_IsEnabled( GLenum cap ) } } return GL_FALSE; +#if FEATURE_ES1 + case GL_TEXTURE_GEN_STR_OES: + { + const struct gl_texture_unit *texUnit = get_texcoord_unit(ctx); + if (texUnit) { + return (texUnit->TexGenEnabled & STR_BITS) == STR_BITS ? GL_TRUE : GL_FALSE; + } + } +#endif /* * CLIENT STATE!!! diff --git a/src/mesa/main/glheader.h b/src/mesa/main/glheader.h index 7f01d9f39bd..6d423eacee8 100644 --- a/src/mesa/main/glheader.h +++ b/src/mesa/main/glheader.h @@ -85,11 +85,15 @@ typedef void *GLeglImageOES; #define GL_PROGRAM_BINARY_LENGTH_OES 0x8741 #endif -/* GLES 2.0 token */ +/* GLES 2.0 tokens */ #ifndef GL_RGB565 #define GL_RGB565 0x8D62 #endif +#ifndef GL_TEXTURE_GEN_STR_OES +#define GL_TEXTURE_GEN_STR_OES 0x8D60 +#endif + /** * Special, internal token */ diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h index e5e099acc3c..9640b79ea7f 100644 --- a/src/mesa/main/mtypes.h +++ b/src/mesa/main/mtypes.h @@ -1076,6 +1076,7 @@ typedef enum #define T_BIT 2 #define R_BIT 4 #define Q_BIT 8 +#define STR_BITS (S_BIT | T_BIT | R_BIT) /*@}*/