glsl: Fix unsupported version error for GLSL ES 3.00, future proof for 3.30.
authorPaul Berry <stereotype441@gmail.com>
Tue, 5 Feb 2013 23:07:26 +0000 (15:07 -0800)
committerPaul Berry <stereotype441@gmail.com>
Tue, 12 Feb 2013 16:06:35 +0000 (08:06 -0800)
commitf8426eea35e2e08797cdd29fc295720514081988
tree7bb3796701db60ba7f6aabee5e0deca2982ffb4d
parent9870459522c50d7890ce114b03fe78020edd5d2a
glsl: Fix unsupported version error for GLSL ES 3.00, future proof for 3.30.

When the user specifies an unsupported GLSL version,
_mesa_glsl_parse_state::process_version_directive() nicely gives them
an error message telling them which GLSL versions are supported.
Previous to this patch, the logic for determining whether a given
language version was supported was independent from the logic to
generate this error message string; as a result, we had a bug where
GLSL 3.00 would never be listed in the error message as an available
language version, even if it was really available.

To make matters worse, the code for generating the error message
string assumed that desktop GL versions were always separated by 0.10,
an assumption that will be wrong as soon as we support GLSL 3.30.

This patch fixes both problems by adding a table of supported GLSL
versions to _mesa_glsl_parse_state; this table is used both to
generate the error message and to check whether a given version is
supported.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
src/glsl/glsl_parser_extras.cpp
src/glsl/glsl_parser_extras.h