Original implementation of Edge Image filters

This commit is contained in:
Bruno Herbelin
2022-06-01 23:49:12 +02:00
parent fd942b28c6
commit d7be7a69ab
18 changed files with 258 additions and 15 deletions

View File

@@ -726,6 +726,22 @@ void SessionVisitor::visit (SharpenFilter& f)
}
}
void SessionVisitor::visit (EdgeFilter& f)
{
xmlCurrent_->SetAttribute("method", (int) f.method());
std::map< std::string, float > filter_params = f.program().parameters();
XMLElement *parameters = xmlDoc_->NewElement( "parameters" );
xmlCurrent_->InsertEndChild(parameters);
for (auto p = filter_params.begin(); p != filter_params.end(); ++p)
{
XMLElement *param = xmlDoc_->NewElement( "uniform" );
param->SetAttribute("name", p->first.c_str() );
param->SetAttribute("value", p->second );
parameters->InsertEndChild(param);
}
}
void SessionVisitor::visit (ImageFilter& f)
{
xmlCurrent_->SetAttribute("name", f.program().name().c_str() );