summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2010-04-01Add glsl_type::element_type and glsl_type::array_size queriesIan Romanick
The former gets the type of elements in an array, and the later gets the declared size, if any, of the array.
2010-03-31Set source locations on AST nodes so error messages print locations.Kenneth Graunke
I haven't verified that these are all correct, but it's still a lot better than not having anything. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
2010-03-31Add ast_function::hirIan Romanick
ast_function::hir consists of bits pulled out of ast_function_definition::hir. In fact, the later uses the former to do a lot of its processing. Several class private data fields were added to ast_function to facilitate communicate between the two. This causes the following tests to pass: glslparsertest/shaders/CorrectModule.frag This causes the following tests to fail. These shaders were previously failing to compile, but they were all failing for the wrong reasons. glslparsertest/shaders/function9.frag glslparsertest/shaders/function10.frag
2010-03-31Fix exec_list::move_nodes_to when the source list is emptyIan Romanick
2010-03-31Use ir_variable::clone to copy parameters to the function bodyIan Romanick
Several other code movements were also done. This partitions this function into two halves. The first half processes the prototype part, and the second have processes the actual function definition. The coming patch series will parition ast_function_definition::hir into (at least) two separate functions.
2010-03-31Add ir_variable::cloneIan Romanick
2010-03-31Minor cleanups in ast_function_definition::hirIan Romanick
2010-03-31Generate array constructor callsIan Romanick
2010-03-31Add ir_function_signature::function_nameIan Romanick
2010-03-31Make ir_function::signatures privateIan Romanick
2010-03-31Add ir_function::iterator to iterate over function signaturesIan Romanick
2010-03-31Use ir_function::add_signature to create link between function and signatureIan Romanick
ir_function_signature now has a pointer back to the ir_function that owns it.
2010-03-31Add glsl_type::generate_constructor_prototypeIan Romanick
Generates a symbol table entry and the IR approximation of a prototype for a type's constructor. Currently only arrays are supported.
2010-03-31Refactor parts of match_function_by_name into process_parameters and ↵Ian Romanick
process_call These will be used in the functions that implement calls to array constructors.
2010-03-31Reject array constructor calls in GLSL 1.10Ian Romanick
2010-03-31Use ast_type_specifier::glsl_type to get the type of a constructorIan Romanick
This is the first baby step towards getting array constructors working.
2010-03-31Move type_specifier_to_glsl_type to ast_type_specifier::glsl_typeIan Romanick
This make is easily accessible from other modules.
2010-03-31More array declaration testsIan Romanick
2010-03-31Fix big dumbness in glsl_type::get_array_instanceIan Romanick
hash_table_insert needs to keep the key so that it compare keys on a following hash_table_find call. Since key was allocated on the stack, it disappeared out from under the hash table.
2010-03-31glsl_type array constructor generate a real name for the typeIan Romanick
2010-03-31Test that const declarations include initializers.Eric Anholt
Fixes dataType6.frag, and also array2.frag for an unexpected but valid reason.
2010-03-31Reject declarations with 'in' or 'out' qualifiersIan Romanick
'in' and 'out' can only be used in function parameter lists or at global scope (1.30 and later). This change enforces this.
2010-03-31Add 'in' to some parameters of the functionIan Romanick
This goes along with the qualifier-?? tests.
2010-03-31Add some variable declaration qualifier testsIan Romanick
2010-03-31Fix comment bug and printf bug in previous commitIan Romanick
2010-03-31Require that 'uniform' and 'varying' variables be declared at global scopeIan Romanick
This causes the following tests to pass: glslparsertest/shaders/uniform.frag glslparsertest/shaders/varying.frag
2010-03-31Slightly refector checks for declarations that must be at global scopeIan Romanick
2010-03-31Implement logical operators.Eric Anholt
Fixes parser9.frag.
2010-03-31Test that variable names don't use the reserved gl_ prefix.Eric Anholt
Fixes identifier2.frag.
2010-03-30Test that discard only appears in the fragment shader.Eric Anholt
Fixes fragmentOnly4.vert.
2010-03-30Test that main doesn't take any parameters.Eric Anholt
Fixes main2.vert.
2010-03-30Test that a non-void function returns a value.Eric Anholt
2010-03-30Test that a void function doesn't return a value.Eric Anholt
Fixes function1.frag.
2010-03-30Fix unused variable warning.Eric Anholt
2010-03-30Forbid array comparisons in GLSL 1.10Ian Romanick
This causes the following tests to pass: glslparsertest/shaders/array3.frag
2010-03-30Begin handling array declarationsIan Romanick
This causes the following tests to pass: glslparsertest/shaders/array4.frag glslparsertest/shaders/array5.frag This causes the following tests to fail. These shaders were previously failing to compile, but they were all failing for the wrong reasons. glslparsertest/shaders/array3.frag
2010-03-30Implement array type handlingIan Romanick
Since all glsl_type objects are flyweights, support is added to track all known array types. This accounts for most of the changes.
2010-03-30Add proper wrappers so that C++ code can use hash_table typeIan Romanick
2010-03-30Initial bits of constant expression evaluatorIan Romanick
Currently only works for constants. The rest will be added later.
2010-03-30Add some array declaration testsIan Romanick
2010-03-29Arrays are not allowed as vertex shader inputs in GLSL 1.30 eitherIan Romanick
2010-03-29Add several tests for vertex shader attributesIan Romanick
2010-03-29Add some checking for vertex shader inputs / attributesIan Romanick
This causes the following tests to pass: glslparsertest/shaders/attribute.vert glslparsertest/shaders/attribute1.vert glslparsertest/shaders/attribute2.vert
2010-03-29Add parser support for texture rectangle typesIan Romanick
2010-03-29Use call-by-reference for apply_implicit_conversionIan Romanick
I'm not sure if this is a win or not. It makes the code in apply_implicit_conversion more clear, but it obscures the fact that it may change the pointers.
2010-03-29Apply implicit conversions to ?: operatorIan Romanick
2010-03-29Apply implicit conversions to equality operatorsIan Romanick
2010-03-29Apply implicit conversions to relational operatorsIan Romanick
2010-03-29Apply implicit conversions to arithmetic operatorsIan Romanick
2010-03-29Add glsl_type::is_array and glsl_type::is_float queriesIan Romanick