glsl: Refactor #version validation to be more future-proof.
authorKenneth Graunke <kenneth@whitecape.org>
Tue, 31 Jul 2012 08:28:35 +0000 (01:28 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Tue, 31 Jul 2012 18:20:49 +0000 (11:20 -0700)
commit3a90dc22d1c74e8719c95221f15043e7f3e69286
tree3a66c55e5bf8102b2da179f82b0891e7b329f030
parent19bd5936af7278c0cce0728e8d6dec1a951eaf58
glsl: Refactor #version validation to be more future-proof.

The previous implementation required a flag in _mesa_glsl_parse_state
and line of code to initialize it for every version of the shading
language we intend to support.  As we look to add 150, 330, 400, 410,
420, and beyond, this gets rather unwieldy.

This patch retains the switch statement (to reject, say, #version 111),
but removes all the bits.  Code to check for ctx->API == API_OPENGL_CORE
could easily be added to the 110 and 120 cases to reject those.

v2: Use _mesa_is_desktop_gl to preserve the existing behavior in the
    presence of the new API_OPENGL_CORE enumeration.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net> [v1]
src/glsl/glsl_parser.yy
src/glsl/glsl_parser_extras.cpp
src/glsl/glsl_parser_extras.h