X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fglsl%2Fcompiler.h;h=ec410c03ce45419c9a32de5cc6c0d5e27da5bd2a;hb=518f751d385b733adbf43fe4056403740709edec;hp=1f3cbee4698c466a7b88b562d56373f7f9b0fb6e;hpb=30465dd3b9f55ec42c4b19c3c2077eede7237a26;p=libs%2Fgl.git diff --git a/source/glsl/compiler.h b/source/glsl/compiler.h index 1f3cbee4..ec410c03 100644 --- a/source/glsl/compiler.h +++ b/source/glsl/compiler.h @@ -21,6 +21,13 @@ public: }; private: + enum OptimizeResult + { + NEXT_STAGE, + REDO_STAGE, + REDO_PREVIOUS + }; + Features features; Module *module; std::vector imported_names; @@ -102,9 +109,9 @@ private: variables. */ void generate(Stage &, Mode); - /** Applies optimizations to a stage. The return value indicates if the - preceding stage should be processed again. */ - bool optimize(Stage &); + /** Applies optimizations to a stage. The return value indicates which + stage should be optimized next. */ + OptimizeResult optimize(Stage &); /** Performs final adjustments on a stage after compilation. */ void finalize(Stage &, Mode);