summaryrefslogtreecommitdiff
path: root/src/mesa
diff options
context:
space:
mode:
authorBrian Paul <brian.paul@tungstengraphics.com>2008-08-04 10:07:26 -0600
committerBrian Paul <brian.paul@tungstengraphics.com>2008-08-04 17:14:48 -0600
commit7c59a2b5a2699207e25638ff5be6b9cfd64560cc (patch)
tree5ac0a08240f6da6979c187885862a827b43fa9f1 /src/mesa
parentd95bb24ddc9fa4bfb32d07fb96d19c024f0e52cf (diff)
mesa: glsl: only allow one #version directive
Diffstat (limited to 'src/mesa')
-rw-r--r--src/mesa/shader/slang/library/slang_pp_version.syn11
-rw-r--r--src/mesa/shader/slang/slang_preprocess.c4
2 files changed, 10 insertions, 5 deletions
diff --git a/src/mesa/shader/slang/library/slang_pp_version.syn b/src/mesa/shader/slang/library/slang_pp_version.syn
index d5e9317b5d..3fe1a57ba2 100644
--- a/src/mesa/shader/slang/library/slang_pp_version.syn
+++ b/src/mesa/shader/slang/library/slang_pp_version.syn
@@ -31,11 +31,9 @@
.syntax version_directive;
version_directive
- version_directive_1 .and .loop version_directive_2;
+ version_directive_1;
version_directive_1
prior_optional_spaces .and optional_version_directive .and .true .emit $;
-version_directive_2
- prior_optional_spaces .and version_directive_body .and .true .emit $;
optional_version_directive
version_directive_body .or .true .emit 10 .emit 1;
@@ -45,13 +43,16 @@ version_directive_body
new_line;
version_number
- version_number_110 .or version_number_120;
+ version_number_100 .or version_number_110 .or version_number_120;
+
+version_number_100
+ leading_zeroes .and "100" .emit 0 .emit 1;
version_number_110
leading_zeroes .and "110" .emit 10 .emit 1;
version_number_120
- leading_zeroes .and "120" .emit 20 .emit 1;
+ leading_zeroes .and "120" .emit 20 .emit 1;
leading_zeroes
.loop zero;
diff --git a/src/mesa/shader/slang/slang_preprocess.c b/src/mesa/shader/slang/slang_preprocess.c
index bfe29b6bc9..786f6467c9 100644
--- a/src/mesa/shader/slang/slang_preprocess.c
+++ b/src/mesa/shader/slang/slang_preprocess.c
@@ -537,7 +537,11 @@ pp_state_init (pp_state *self, slang_info_log *elog)
{
self->line = 0;
self->file = 1;
+#if FEATURE_es2_glsl
+ self->version = 100;
+#else
self->version = 110;
+#endif
pp_symbols_init (&self->symbols);
pp_ext_init (&self->ext);
self->elog = elog;