it->second = value;
}, task_priority::high_priority);
}
-
+
+ void clear_blend_mode(int index)
+ {
+ executor_.begin_invoke([=]
+ {
+ blend_modes_.erase(index);
+ }, task_priority::high_priority);
+ }
+
+ void clear_blend_modes()
+ {
+ executor_.begin_invoke([=]
+ {
+ blend_modes_.clear();
+ }, task_priority::high_priority);
+ }
boost::unique_future<boost::property_tree::wptree> info() const
{
boost::promise<boost::property_tree::wptree> info;
mixer::mixer(spl::shared_ptr<diagnostics::graph> graph, spl::shared_ptr<image_mixer> image_mixer)
: impl_(new impl(std::move(graph), std::move(image_mixer))){}
void mixer::set_blend_mode(int index, blend_mode value){impl_->set_blend_mode(index, value);}
+void mixer::clear_blend_mode(int index) { impl_->clear_blend_mode(index); }
+void mixer::clear_blend_modes() { impl_->clear_blend_modes(); }
boost::unique_future<boost::property_tree::wptree> mixer::info() const{return impl_->info();}
const_frame mixer::operator()(std::map<int, draw_frame> frames, const struct video_format_desc& format_desc){return (*impl_)(std::move(frames), format_desc);}
mutable_frame mixer::create_frame(const void* tag, const core::pixel_format_desc& desc) {return impl_->image_mixer_->create_frame(tag, desc);}
void set_blend_mode(int index, blend_mode value);
+ void clear_blend_mode(int index);
+
+ void clear_blend_modes();
+
class mutable_frame create_frame(const void* tag, const struct pixel_format_desc& desc);
// Properties
else if(_parameters[0] == L"CLEAR")
{
int layer = GetLayerIndex(std::numeric_limits<int>::max());
- if(layer == std::numeric_limits<int>::max())
+
+ if (layer == std::numeric_limits<int>::max())
+ {
GetChannel()->stage().clear_transforms();
+ GetChannel()->mixer().clear_blend_modes();
+ }
else
+ {
GetChannel()->stage().clear_transforms(layer);
+ GetChannel()->mixer().clear_blend_mode(layer);
+ }
}
else if(_parameters[0] == L"COMMIT")
{