#include "cpu/image/image_mixer.h"
#endif
#include "ogl/image/image_mixer.h"
-
#include "ogl/util/device.h"
#include <common/env.h>
+#include <core/mixer/image/image_mixer.h>
+
#include <tbb/mutex.h>
namespace caspar { namespace accelerator {
{
}
- std::unique_ptr<core::image_mixer> create_image_mixer()
+ std::unique_ptr<core::image_mixer> create_image_mixer(int channel_id)
{
try
{
if(!ogl_device_)
ogl_device_.reset(new ogl::device());
- return std::unique_ptr<core::image_mixer>(new ogl::image_mixer(spl::make_shared_ptr(ogl_device_), env::properties().get(L"configuration.blend-modes", false)));
+ return std::unique_ptr<core::image_mixer>(new ogl::image_mixer(
+ spl::make_shared_ptr(ogl_device_),
+ env::properties().get(L"configuration.mixer.blend-modes", false),
+ env::properties().get(L"configuration.mixer.straight-alpha", false),
+ channel_id));
}
}
catch(...)
CASPAR_LOG_CURRENT_EXCEPTION();
}
#ifdef _MSC_VER
- return std::unique_ptr<core::image_mixer>(new cpu::image_mixer());
+ return std::unique_ptr<core::image_mixer>(new cpu::image_mixer(channel_id));
#else
CASPAR_THROW_EXCEPTION(not_supported());
#endif
{
}
-std::unique_ptr<core::image_mixer> accelerator::create_image_mixer()
+std::unique_ptr<core::image_mixer> accelerator::create_image_mixer(int channel_id)
+{
+ return impl_->create_image_mixer(channel_id);
+}
+
+std::shared_ptr<ogl::device> accelerator::get_ogl_device() const
{
- return impl_->create_image_mixer();
+ return impl_->ogl_device_;
}
}}