On 11/30/2012 10:07 AM, Ian Romanick wrote:
From: Paul Berry <stereotype...@gmail.com>

With the advent of GLSL 3.00 ES, the version checks we perform in the
GLSL compiler (to determine which language features are present) will
become more complicated.  To reduce the complexity, this patch adds
functions check_version() and is_version() to _mesa_glsl_parse_state.
These functions take two version numbers: a desktop GLSL version and a
GLSL ES version, and return a boolean indicating whether the GLSL
version being compiled is at least the required version.  So, for
example, is_version(130, 300) returns true if the GLSL version being
compiled is at least desktop GLSL 1.30 or GLSL 3.00.

The check_version() function additionally produces an error message if
the version check fails, informing the user of which GLSL version(s)
support the given feature.

[v2, idr]: Add PRINTFLIKE annotation to the new method.  The numbering of th
parameters is correct because GCC is silly.

Signed-off-by: Ian Romanick <ian.d.roman...@intel.com>
---
  src/glsl/glsl_parser_extras.cpp | 51 +++++++++++++++++++++++++++++++++++++++++
  src/glsl/glsl_parser_extras.h   | 45 ++++++++++++++++++++++++++++--------
  2 files changed, 86 insertions(+), 10 deletions(-)

diff --git a/src/glsl/glsl_parser_extras.cpp b/src/glsl/glsl_parser_extras.cpp
index 3e19203..14589b0 100644
--- a/src/glsl/glsl_parser_extras.cpp
+++ b/src/glsl/glsl_parser_extras.cpp
[snip]
@@ -90,6 +100,31 @@ struct _mesa_glsl_parse_state {
                                           this->language_version);
     }

+   /**
+    * Determine whether the current GLSL version is sufficiently high to
+    * support a certain feature.
+    *
+    * \param required_glsl_version is the desktop GLSL version that is
+    * required to support the feature, or 0 if no version of desktop GLSL
+    * supports the feature.
+    *
+    * \param required_glsl_es_version is the GLSL ES version that is required
+    * to support the feature, or 0 if no version of desktop GLSL suports the

Comment should be: ..."or 0 if no version of GLSL ES supports the"
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to