From 614127a55723c86f7e7ba034de0c60f52b872bb5 Mon Sep 17 00:00:00 2001
From: Rhys Weatherley <rhys.weatherley@nokia.com>
Date: Mon, 29 Nov 2010 10:09:22 +1000
Subject: [PATCH] Use the GLSL/ES system library by default.

---
 src/libs/glsl/glsllexer.h                   |  3 ++-
 src/plugins/glsleditor/glsleditorplugin.cpp | 18 ++++++++++++------
 src/plugins/glsleditor/glsleditorplugin.h   |  3 +++
 3 files changed, 17 insertions(+), 7 deletions(-)

diff --git a/src/libs/glsl/glsllexer.h b/src/libs/glsl/glsllexer.h
index 65584c39055..b8e906be1ac 100644
--- a/src/libs/glsl/glsllexer.h
+++ b/src/libs/glsl/glsllexer.h
@@ -78,7 +78,8 @@ public:
         Variant_VertexShader        = 0x00200000,
         Variant_FragmentShader      = 0x00400000,
         Variant_Reserved            = 0x80000000,
-        Variant_Mask                = 0xFFFF0000
+        Variant_Mask                = 0xFFFF0000,
+        Variant_All                 = 0xFFFF0000
     };
 
     union Value {
diff --git a/src/plugins/glsleditor/glsleditorplugin.cpp b/src/plugins/glsleditor/glsleditorplugin.cpp
index 20c0886e12b..825b245cb91 100644
--- a/src/plugins/glsleditor/glsleditorplugin.cpp
+++ b/src/plugins/glsleditor/glsleditorplugin.cpp
@@ -114,6 +114,9 @@ bool GLSLEditorPlugin::initialize(const QStringList & /*arguments*/, QString *er
     parseGlslFile(QLatin1String("glsl_120.frag"), &m_glsl_120_frag);
     parseGlslFile(QLatin1String("glsl_120.vert"), &m_glsl_120_vert);
     parseGlslFile(QLatin1String("glsl_120_common.glsl"), &m_glsl_120_common);
+    parseGlslFile(QLatin1String("glsl_es_100.frag"), &m_glsl_es_100_frag);
+    parseGlslFile(QLatin1String("glsl_es_100.vert"), &m_glsl_es_100_vert);
+    parseGlslFile(QLatin1String("glsl_es_100_common.glsl"), &m_glsl_es_100_common);
 
 
 //    m_modelManager = new ModelManager(this);
@@ -251,9 +254,8 @@ QByteArray GLSLEditorPlugin::glslFile(const QString &fileName)
 
 void GLSLEditorPlugin::parseGlslFile(const QString &fileName, InitFile *initFile)
 {
-    const int variant = GLSL::Lexer::Variant_GLSL_Qt | // ### hardcoded
-                        GLSL::Lexer::Variant_VertexShader |
-                        GLSL::Lexer::Variant_FragmentShader;
+    // Parse the builtins for any langugage variant so we can use all keywords.
+    const int variant = GLSL::Lexer::Variant_All;
 
     const QByteArray code = glslFile(fileName);
     initFile->engine = new GLSL::Engine();
@@ -263,17 +265,21 @@ void GLSLEditorPlugin::parseGlslFile(const QString &fileName, InitFile *initFile
 
 const GLSLEditorPlugin::InitFile *GLSLEditorPlugin::fragmentShaderInit() const
 {
-    return &m_glsl_120_frag;
+    // TODO: select the correct language variant
+    //return &m_glsl_120_frag;
+    return &m_glsl_es_100_frag;
 }
 
 const GLSLEditorPlugin::InitFile *GLSLEditorPlugin::vertexShaderInit() const
 {
-    return &m_glsl_120_vert;
+    //return &m_glsl_120_vert;
+    return &m_glsl_es_100_vert;
 }
 
 const GLSLEditorPlugin::InitFile *GLSLEditorPlugin::shaderInit() const
 {
-    return &m_glsl_120_common;
+    //return &m_glsl_120_common;
+    return &m_glsl_es_100_common;
 }
 
 Q_EXPORT_PLUGIN(GLSLEditorPlugin)
diff --git a/src/plugins/glsleditor/glsleditorplugin.h b/src/plugins/glsleditor/glsleditorplugin.h
index fc222ed1432..6561d64335a 100644
--- a/src/plugins/glsleditor/glsleditorplugin.h
+++ b/src/plugins/glsleditor/glsleditorplugin.h
@@ -115,6 +115,9 @@ private:
     InitFile m_glsl_120_frag;
     InitFile m_glsl_120_vert;
     InitFile m_glsl_120_common;
+    InitFile m_glsl_es_100_frag;
+    InitFile m_glsl_es_100_vert;
+    InitFile m_glsl_es_100_common;
 };
 
 } // namespace Internal
-- 
GitLab