namespace SL {
DefaultPrecisionGenerator::DefaultPrecisionGenerator():
+ stage_type(Stage::SHARED),
toplevel(true)
{ }
+void DefaultPrecisionGenerator::apply(Stage &stage)
+{
+ SetForScope<Stage::Type> set_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";
return true;
}
+void LegacyConverter::apply(Stage &s)
+{
+ SetForScope<Stage *> set_stage(stage, &s);
+ visit(s.content);
+}
+
bool LegacyConverter::supports_unified_interface_syntax() const
{
if(target_api==OPENGL_ES2)