\r
BOOST_FOREACH(auto& layer, upper)\r
{\r
- boost::remove_erase_if(layer.second, [](const item& item){return !(item.transform.field_mode & field_mode::upper);});\r
BOOST_FOREACH(auto& item, layer.second)\r
- item.transform.field_mode = field_mode::upper;\r
+ item.transform.field_mode = static_cast<field_mode::type>(item.transform.field_mode & field_mode::upper);\r
}\r
\r
BOOST_FOREACH(auto& layer, lower)\r
{\r
- boost::remove_erase_if(layer.second, [](const item& item){return !(item.transform.field_mode & field_mode::lower);});\r
BOOST_FOREACH(auto& item, layer.second)\r
- item.transform.field_mode = field_mode::lower;\r
+ item.transform.field_mode = static_cast<field_mode::type>(item.transform.field_mode & field_mode::lower);\r
}\r
\r
draw(std::move(upper), draw_buffer);\r
channel_.ogl().attach(*draw_buffer);\r
host_buffer->begin_read(draw_buffer->width(), draw_buffer->height(), format(draw_buffer->stride()));\r
\r
- active_buffer_ = draw_buffer;\r
+ active_buffer_ = std::move(draw_buffer);\r
\r
channel_.ogl().flush(); // NOTE: This is important, otherwise fences will deadlock.\r
\r
safe_ptr<device_buffer>& draw_buffer,\r
std::shared_ptr<device_buffer>& layer_key_buffer)\r
{ \r
+ boost::remove_erase_if(layer.second, [](const item& item){return item.transform.field_mode == field_mode::empty;});\r
+\r
if(layer.second.empty())\r
return;\r
\r
draw_mixer_buffer(draw_buffer, std::move(local_mix_buffer), blend_mode::normal);\r
} \r
\r
- std::swap(local_key_buffer, layer_key_buffer);\r
+ layer_key_buffer = std::move(local_key_buffer);\r
}\r
\r
void draw_item(item&& item, \r
} \r
}\r
\r
- void draw_mixer_buffer(safe_ptr<device_buffer>& draw_buffer, std::shared_ptr<device_buffer>&& source_buffer, blend_mode::type blend_mode = blend_mode::normal)\r
+ void draw_mixer_buffer(safe_ptr<device_buffer>& draw_buffer, \r
+ std::shared_ptr<device_buffer>&& source_buffer, \r
+ blend_mode::type blend_mode = blend_mode::normal)\r
{\r
if(!source_buffer)\r
return;\r
\r
void visit(core::write_frame& frame)\r
{ \r
- if(frame.get_frame_transform().field_mode == field_mode::empty)\r
- return;\r
-\r
item item;\r
item.pix_desc = frame.get_pixel_format_desc();\r
item.textures = frame.get_textures();\r