X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fglsl%2Ffinalize.h;h=21b4e316d0eec52ae34e5c5c050d15e024656bb7;hb=3bb1cda37e23840236b46c4de20cab2c70b02327;hp=212007131e80a3d0e37173364005d68f3b8d1166;hpb=c8de66203565f07f10898a74dbd55072432790fc;p=libs%2Fgl.git diff --git a/source/glsl/finalize.h b/source/glsl/finalize.h index 21200713..21b4e316 100644 --- a/source/glsl/finalize.h +++ b/source/glsl/finalize.h @@ -8,17 +8,18 @@ namespace Msp { namespace GL { namespace SL { -/** Generates default precision declarations if they are missing, to satisfy -GLSL ES requirements. */ -class DefaultPrecisionGenerator: private TraversingVisitor +/** Generates default precision declarations or removes precision declarations +according to the requirements of the target API. */ +class PrecisionConverter: private TraversingVisitor { private: Stage *stage; std::set have_default; NodeList::iterator insert_point; + std::set nodes_to_remove; public: - DefaultPrecisionGenerator(); + PrecisionConverter(); void apply(Stage &); @@ -28,21 +29,6 @@ private: virtual void visit(VariableDeclaration &); }; -/** Removes precision qualifiers from variable declarations, as well as -default precision declarations. */ -class PrecisionRemover: private TraversingVisitor -{ -private: - std::set nodes_to_remove; - -public: - void apply(Stage &); - -private: - virtual void visit(Precision &); - virtual void visit(VariableDeclaration &); -}; - /** Converts structures of the syntax tree to match a particular set of features. */ class LegacyConverter: private TraversingVisitor