namespace SL {
DefaultPrecisionGenerator::DefaultPrecisionGenerator():
+ stage_type(Stage::SHARED),
toplevel(true)
{ }
+void DefaultPrecisionGenerator::apply(Stage &stage)
+{
+ stage_type = stage.type;
+ visit(stage.content);
+}
+
void DefaultPrecisionGenerator::visit(Block &block)
{
if(toplevel)
BlockModifier::visit(block);
}
else
- StageVisitor::visit(block);
+ TraversingVisitor::visit(block);
}
void DefaultPrecisionGenerator::visit(Precision &prec)
Precision *prec = new Precision;
if(!type.compare(0, 7, "sampler"))
prec->precision = "lowp";
- else if(stage->type==Stage::FRAGMENT)
+ else if(stage_type==Stage::FRAGMENT)
prec->precision = "mediump";
else
prec->precision = "highp";
frag_out(0)
{ }
-LegacyConverter::LegacyConverter(const Version &v):
- target_api(get_gl_api()),
- target_version(v),
- frag_out(0)
-{ }
+void LegacyConverter::apply(Stage &s)
+{
+ stage = &s;
+ visit(s.content);
+}
bool LegacyConverter::check_version(const Version &feature_version) const
{