glsl: add new type for compile time constants
authorTimothy Arceri <timothy.arceri@collabora.com>
Sun, 8 Nov 2015 20:48:46 +0000 (07:48 +1100)
committerTimothy Arceri <t_arceri@yahoo.com.au>
Fri, 20 Nov 2015 20:27:56 +0000 (07:27 +1100)
commit0954b813a3a356b5836f4169783b8c8c58ff2158
tree8f99932d53084c30adf1cb7989abe83f1eb8d374
parent4196af4ce7cdb0217a7cc6e196b1a788d32c5b6f
glsl: add new type for compile time constants

In this patch we introduce a new ast type for holding the new
compile-time constant expressions. The main reason for this is that
we can no longer do merging of layout qualifiers before they have been
converted into GLSL IR so we need to store them to be proccessed later.

The new type has two helper functions:

- process_qualifier_constant()

 Used to merge and then evaluate qualifier expressions

- merge_qualifier()

 Simply appends a qualifier to a list to be merged later by
 process_qualifier_constant()

In order to avoid cascading error messages the process_qualifier_constant()
helpers return a bool

Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
src/glsl/ast.h
src/glsl/ast_type.cpp