X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fglsl%2Fcompiler.h;h=a1ab51f254a771566c337f7b392484a3984a4157;hb=3415ed0f925d781df9d8243e0f4c454516b1c450;hp=0ae2ed4114924946f2fbc04ae33a34b7d84b4676;hpb=8c4d64c71df5c4dcab1838d81412d7a7244ada58;p=libs%2Fgl.git diff --git a/source/glsl/compiler.h b/source/glsl/compiler.h index 0ae2ed41..a1ab51f2 100644 --- a/source/glsl/compiler.h +++ b/source/glsl/compiler.h @@ -98,6 +98,15 @@ public: GLSL soucre). */ const std::map &get_fragment_outputs() const; + /** Returns a map of texture bindings. If the target GLSL version supports + bindings, the map is empty (bindings are included in the GLSL source). */ + const std::map &get_texture_bindings() const; + + /** Returns a map of uniform block bindings. If the target GLSL version + supports bindings, the map is empty (bindings are included in the GLSL + source). */ + const std::map &get_uniform_block_bindings() const; + /** Returns the mapping of source indices to filenames. Can be used to translate error messages. */ const SourceMap &get_source_map() const; @@ -122,7 +131,7 @@ private: /** Generates any implicitly defines syntactic structures and resolves variables. */ - void generate(Stage &, Mode); + void generate(Stage &); template bool resolve(Stage &, unsigned &, unsigned); @@ -132,9 +141,13 @@ private: aspects as necessary. */ void resolve(Stage &, unsigned = RESOLVE_ALL); - /** Checks the validity of the module. If the return value is false, the - module's diagnostics list will contain additional information of errors. */ - bool validate(Stage &); + /** Runs validators on a stage. Diagnostic messages are recorded in the + stage for later inspection. */ + void validate(Stage &); + + /** Checks a stage's recorded diagnostics for errors. If any are found, + returns true. */ + bool check_errors(Stage &); static bool diagnostic_line_order(const Diagnostic &, const Diagnostic &);