Create linkage symbol nodes in the AST so a linker has access to all global objects that were declared, for error checking, etc. Use it now for all ins/outs/uniforms as well as gl_VertexID and gl_InstanceID.
Also fixed a confusing name and added more 'const'. git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22142 e7fa87d3-cd2b-0410-9028-fcbf551c1848
This commit is contained in:
parent
b29ba33089
commit
06f8464fb5
10 changed files with 101 additions and 34 deletions
|
|
@ -41,13 +41,6 @@
|
|||
#include "SymbolTable.h"
|
||||
#include "localintermediate.h"
|
||||
|
||||
struct TMatrixFields {
|
||||
bool wholeRow;
|
||||
bool wholeCol;
|
||||
int row;
|
||||
int col;
|
||||
};
|
||||
|
||||
typedef enum {
|
||||
EBhRequire,
|
||||
EBhEnable,
|
||||
|
|
@ -62,6 +55,8 @@ struct TPragma {
|
|||
TPragmaTable pragmaTable;
|
||||
};
|
||||
|
||||
|
||||
|
||||
//
|
||||
// The following are extra variables needed during parsing, grouped together so
|
||||
// they can be passed to the parser without needing a global.
|
||||
|
|
@ -74,6 +69,7 @@ struct TParseContext {
|
|||
TInfoSink& infoSink;
|
||||
EShLanguage language; // vertex or fragment language
|
||||
TIntermNode* treeRoot; // root of parse tree being created
|
||||
TIntermAggregate *linkage; // aggregate node of objects the linker may need, if not reference by the rest of the AST
|
||||
int numErrors; // number of compile-time errors encountered
|
||||
bool lexAfterType; // true if we've recognized a type, so can only be looking for an identifier
|
||||
int loopNestingLevel; // 0 if outside all loops
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue