summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
6158d8c)
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches/2.0.0.2@1277
362d55ac-95cf-4e76-9f9a-
cbaa9c17b72d
#include "../../stdafx.h"\r
\r
#include "image_mixer.h"\r
#include "../../stdafx.h"\r
\r
#include "image_mixer.h"\r
-#include "image_kernel.h"\r
+#include "image_kernel.h"\r
+#include "../write_frame.h"\r
#include "../gpu/ogl_device.h"\r
#include "../gpu/host_buffer.h"\r
#include "../gpu/device_buffer.h"\r
#include "../gpu/ogl_device.h"\r
#include "../gpu/host_buffer.h"\r
#include "../gpu/device_buffer.h"\r
-#include "../write_frame.h"\r
-\r
#include "../../video_channel_context.h"\r
\r
#include "../../video_channel_context.h"\r
\r
-#include <common/concurrency/executor.h>\r
#include <common/exception/exceptions.h>\r
#include <common/gl/gl_check.h>\r
\r
#include <common/exception/exceptions.h>\r
#include <common/gl/gl_check.h>\r
\r
#include <gl/glew.h>\r
\r
#include <boost/foreach.hpp>\r
#include <gl/glew.h>\r
\r
#include <boost/foreach.hpp>\r
-#include <boost/range.hpp>\r
-#include <boost/range/algorithm/find.hpp>\r
\r
#include <algorithm>\r
\r
#include <algorithm>\r
-#include <unordered_map>\r
\r
using namespace boost::assign;\r
\r
\r
using namespace boost::assign;\r
\r
auto draw_buffer = create_device_buffer(4);\r
\r
BOOST_FOREACH(auto& layer, layers)\r
auto draw_buffer = create_device_buffer(4);\r
\r
BOOST_FOREACH(auto& layer, layers)\r
- draw(std::move(layer), draw_buffer, layer_key_buffer);\r
+ draw_layer(std::move(layer), draw_buffer, layer_key_buffer);\r
\r
auto host_buffer = channel_.ogl().create_host_buffer(channel_.get_format_desc().size, host_buffer::read_only);\r
channel_.ogl().attach(*draw_buffer);\r
\r
auto host_buffer = channel_.ogl().create_host_buffer(channel_.get_format_desc().size, host_buffer::read_only);\r
channel_.ogl().attach(*draw_buffer);\r
return host_buffer;\r
}\r
\r
return host_buffer;\r
}\r
\r
- void draw(layer&& layer, const safe_ptr<device_buffer>& draw_buffer, std::shared_ptr<device_buffer>& layer_key_buffer)\r
+ void draw_layer(layer&& layer, const safe_ptr<device_buffer>& draw_buffer, std::shared_ptr<device_buffer>& layer_key_buffer)\r
{ \r
if(layer.empty())\r
return;\r
{ \r
if(layer.empty())\r
return;\r
{ \r
auto upper_count = boost::range::count_if(layer, [&](const render_item& item)\r
{\r
{ \r
auto upper_count = boost::range::count_if(layer, [&](const render_item& item)\r
{\r
- return item.transform.field_mode | field_mode::upper;\r
+ return !item.transform.is_key && (item.transform.field_mode & field_mode::upper);\r
});\r
\r
auto lower_count = boost::range::count_if(layer, [&](const render_item& item)\r
{\r
});\r
\r
auto lower_count = boost::range::count_if(layer, [&](const render_item& item)\r
{\r
- return item.transform.field_mode | field_mode::lower;\r
+ return !item.transform.is_key && (item.transform.field_mode & field_mode::lower);\r
});\r
\r
return upper_count > 1 || lower_count > 1;\r
});\r
\r
return upper_count > 1 || lower_count > 1;\r