summaryrefslogtreecommitdiff
path: root/src/glsl/glsl_types.cpp
diff options
context:
space:
mode:
authorChia-I Wu <olv@lunarg.com>2011-10-23 18:51:06 +0800
committerChia-I Wu <olvaffe@gmail.com>2011-11-03 15:09:44 +0800
commit2903816aadb281716b6c59a5a48aeadb84a08f50 (patch)
tree23f372e51fdf5da3e37f3c3d8051458e340beed7 /src/glsl/glsl_types.cpp
parentdb73264e1471a594d49ca0bc397cbb6746ee1dce (diff)
glsl: add support for GL_OES_EGL_image_external
This extension introduces a new sampler type: samplerExternalOES. texture2D (and texture2DProj) can be used to do a texture look up in an external texture. Reviewed-by: Brian Paul <brianp@vmware.com> Acked-by: Jakob Bornecrantz <jakob@vmware.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Diffstat (limited to 'src/glsl/glsl_types.cpp')
-rw-r--r--src/glsl/glsl_types.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/glsl/glsl_types.cpp b/src/glsl/glsl_types.cpp
index 03e99879e8e..8587da0a3a2 100644
--- a/src/glsl/glsl_types.cpp
+++ b/src/glsl/glsl_types.cpp
@@ -203,6 +203,15 @@ glsl_type::generate_OES_texture_3D_types(glsl_symbol_table *symtab, bool warn)
void
+glsl_type::generate_OES_EGL_image_external_types(glsl_symbol_table *symtab,
+ bool warn)
+{
+ add_types_to_symbol_table(symtab, builtin_OES_EGL_image_external_types,
+ Elements(builtin_OES_EGL_image_external_types),
+ warn);
+}
+
+void
_mesa_glsl_initialize_types(struct _mesa_glsl_parse_state *state)
{
switch (state->language_version) {
@@ -238,6 +247,15 @@ _mesa_glsl_initialize_types(struct _mesa_glsl_parse_state *state)
glsl_type::generate_EXT_texture_array_types(state->symbols,
state->EXT_texture_array_warn);
}
+
+ /* We cannot check for language_version == 100 here because we need the
+ * types to support fixed-function program generation. But this is fine
+ * since the extension is never enabled for OpenGL contexts.
+ */
+ if (state->OES_EGL_image_external_enable) {
+ glsl_type::generate_OES_EGL_image_external_types(state->symbols,
+ state->OES_EGL_image_external_warn);
+ }
}