void draw(layer&& layer, std::shared_ptr<device_buffer>& layer_key_buffer)\r
{ \r
std::shared_ptr<device_buffer> local_key_buffer;\r
+ \r
+ std::shared_ptr<device_buffer> atomic_draw_buffer; \r
+ std::shared_ptr<device_buffer> atomic_local_key_buffer;\r
\r
BOOST_FOREACH(auto& item, layer)\r
+ {\r
+ //if(item.transform.get_is_atomic()) // layers need to be atomic in-order to support blend-modes properly\r
+ //{\r
+ // if(!atomic_draw_buffer)\r
+ // {\r
+ // atomic_draw_buffer = channel_.ogl().create_device_buffer(channel_.get_format_desc().width, channel_.get_format_desc().height, 4); \r
+ // channel_.ogl().clear(*atomic_draw_buffer);\r
+ // }\r
+\r
+ // draw(std::move(item), atomic_draw_buffer, atomic_local_key_buffer, nullptr);\r
+ //}\r
+ //else\r
+ //{\r
+ // if(atomic_draw_buffer)\r
+ // {\r
+ // pixel_format_desc desc;\r
+ // desc.pix_fmt = pixel_format::bgra;\r
+ // desc.planes.push_back(pixel_format_desc::plane(channel_.get_format_desc().width, channel_.get_format_desc().height, 4));\r
+\r
+ // std::vector<safe_ptr<device_buffer>> textures;\r
+ // textures.push_back(make_safe(atomic_draw_buffer));\r
+ // \r
+ // atomic_draw_buffer.reset();\r
+ // atomic_local_key_buffer.reset();\r
+ // \r
+ // render_item atomic_item(desc, std::move(textures), image_transform(), video_mode::progressive, nullptr);\r
+ // draw(std::move(atomic_item), draw_buffer_, local_key_buffer, layer_key_buffer);\r
+ // }\r
+\r
+ // draw(std::move(item), draw_buffer_, local_key_buffer, layer_key_buffer);\r
+ //}\r
+\r
draw(std::move(item), local_key_buffer, layer_key_buffer);\r
+ }\r
\r
std::swap(local_key_buffer, layer_key_buffer);\r
}\r