<ClInclude Include="mixer\audio\audio_util.h" />\r
<ClInclude Include="mixer\gpu\fence.h" />\r
<ClInclude Include="mixer\gpu\shader.h" />\r
- <ClInclude Include="mixer\image\blending_glsl.h" />\r
<ClInclude Include="mixer\image\blend_modes.h" />\r
- <ClInclude Include="mixer\image\image_shader.h" />\r
+ <ClInclude Include="mixer\image\shader\blending_glsl.h" />\r
+ <ClInclude Include="mixer\image\shader\image_shader.h" />\r
<ClInclude Include="producer\playlist\playlist_producer.h" />\r
<ClInclude Include="video_channel.h" />\r
<ClInclude Include="consumer\output.h" />\r
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
</ClCompile>\r
- <ClCompile Include="mixer\image\image_shader.cpp">\r
- <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
- <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
- <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
- <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
+ <ClCompile Include="mixer\image\shader\image_shader.cpp">\r
+ <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../StdAfx.h</PrecompiledHeaderFile>\r
</ClCompile>\r
<ClCompile Include="producer\playlist\playlist_producer.cpp">\r
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">../../stdafx.h</PrecompiledHeaderFile>\r
<Filter Include="source\producer\playlist">\r
<UniqueIdentifier>{80ce21ca-5ecd-48c1-97d2-c20ea8e2f2b6}</UniqueIdentifier>\r
</Filter>\r
+ <Filter Include="source\mixer\image\shader">\r
+ <UniqueIdentifier>{e0a140f8-e217-465c-a934-163b7ea786be}</UniqueIdentifier>\r
+ </Filter>\r
</ItemGroup>\r
<ItemGroup>\r
<ClInclude Include="producer\transition\transition_producer.h">\r
<ClInclude Include="video_channel.h">\r
<Filter>source</Filter>\r
</ClInclude>\r
- <ClInclude Include="mixer\image\blending_glsl.h">\r
- <Filter>source\mixer\image</Filter>\r
- </ClInclude>\r
<ClInclude Include="mixer\gpu\shader.h">\r
<Filter>source\mixer\gpu</Filter>\r
</ClInclude>\r
<ClInclude Include="mixer\gpu\fence.h">\r
<Filter>source\mixer\gpu</Filter>\r
</ClInclude>\r
- <ClInclude Include="mixer\image\image_shader.h">\r
- <Filter>source\mixer\image</Filter>\r
- </ClInclude>\r
- <ClInclude Include="mixer\image\blend_modes.h">\r
- <Filter>source\mixer\image</Filter>\r
- </ClInclude>\r
<ClInclude Include="producer\frame\frame_transform.h">\r
<Filter>source\producer\frame</Filter>\r
</ClInclude>\r
<ClInclude Include="producer\playlist\playlist_producer.h">\r
<Filter>source\producer\playlist</Filter>\r
</ClInclude>\r
+ <ClInclude Include="mixer\image\shader\image_shader.h">\r
+ <Filter>source\mixer\image\shader</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="mixer\image\blend_modes.h">\r
+ <Filter>source\mixer\image</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="mixer\image\shader\blending_glsl.h">\r
+ <Filter>source\mixer\image\shader</Filter>\r
+ </ClInclude>\r
</ItemGroup>\r
<ItemGroup>\r
<ClCompile Include="producer\transition\transition_producer.cpp">\r
<ClCompile Include="mixer\gpu\fence.cpp">\r
<Filter>source\mixer\gpu</Filter>\r
</ClCompile>\r
- <ClCompile Include="mixer\image\image_shader.cpp">\r
- <Filter>source\mixer\image</Filter>\r
- </ClCompile>\r
- <ClCompile Include="mixer\image\blend_modes.cpp">\r
- <Filter>source\mixer\image</Filter>\r
- </ClCompile>\r
<ClCompile Include="producer\frame\frame_transform.cpp">\r
<Filter>source\producer\frame</Filter>\r
</ClCompile>\r
<ClCompile Include="producer\frame_producer.cpp">\r
<Filter>source\producer</Filter>\r
</ClCompile>\r
+ <ClCompile Include="mixer\image\shader\image_shader.cpp">\r
+ <Filter>source\mixer\image\shader</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="mixer\image\blend_modes.cpp">\r
+ <Filter>source\mixer\image</Filter>\r
+ </ClCompile>\r
</ItemGroup>\r
</Project>
\ No newline at end of file
void audio_mixer::begin(core::basic_frame& frame){impl_->begin(frame);}\r
void audio_mixer::visit(core::write_frame& frame){impl_->visit(frame);}\r
void audio_mixer::end(){impl_->end();}\r
-audio_buffer audio_mixer::mix(const video_format_desc& format_desc){return impl_->mix(format_desc);}\r
-audio_mixer& audio_mixer::operator=(audio_mixer&& other)\r
-{\r
- impl_ = std::move(other.impl_);\r
- return *this;\r
-}\r
+audio_buffer audio_mixer::operator()(const video_format_desc& format_desc){return impl_->mix(format_desc);}\r
\r
}}
\ No newline at end of file
virtual void visit(core::write_frame& frame);\r
virtual void end();\r
\r
- audio_buffer mix(const video_format_desc& format_desc);\r
+ audio_buffer operator()(const video_format_desc& format_desc);\r
\r
- audio_mixer& operator=(audio_mixer&& other);\r
private:\r
struct implementation;\r
safe_ptr<implementation> impl_;\r
\r
#include "image_kernel.h"\r
\r
-#include "image_shader.h"\r
+#include "shader/image_shader.h"\r
+#include "shader/blending_glsl.h"\r
\r
-#include "blending_glsl.h"\r
#include "../gpu/shader.h"\r
#include "../gpu/device_buffer.h"\r
#include "../gpu/ogl_device.h"\r
{\r
return renderer_(std::move(layers_), format_desc);\r
}\r
-\r
- safe_ptr<write_frame> create_frame(const void* tag, const pixel_format_desc& desc)\r
- {\r
- return make_safe<write_frame>(ogl_, tag, desc);\r
- }\r
};\r
\r
image_mixer::image_mixer(const safe_ptr<ogl_device>& ogl) : impl_(new implementation(ogl)){}\r
void image_mixer::begin(basic_frame& frame){impl_->begin(frame);}\r
void image_mixer::visit(write_frame& frame){impl_->visit(frame);}\r
void image_mixer::end(){impl_->end();}\r
-boost::unique_future<safe_ptr<host_buffer>> image_mixer::render(const video_format_desc& format_desc){return impl_->render(format_desc);}\r
-safe_ptr<write_frame> image_mixer::create_frame(const void* tag, const pixel_format_desc& desc){return impl_->create_frame(tag, desc);}\r
+boost::unique_future<safe_ptr<host_buffer>> image_mixer::operator()(const video_format_desc& format_desc){return impl_->render(format_desc);}\r
void image_mixer::begin_layer(blend_mode::type blend_mode){impl_->begin_layer(blend_mode);}\r
void image_mixer::end_layer(){impl_->end_layer();}\r
-image_mixer& image_mixer::operator=(image_mixer&& other)\r
-{\r
- impl_ = std::move(other.impl_);\r
- return *this;\r
-}\r
\r
}}
\ No newline at end of file
\r
void begin_layer(blend_mode::type blend_mode);\r
void end_layer();\r
-\r
- image_mixer& operator=(image_mixer&& other);\r
- \r
- boost::unique_future<safe_ptr<host_buffer>> render(const video_format_desc& format_desc);\r
-\r
- safe_ptr<write_frame> create_frame(const void* tag, const pixel_format_desc& format);\r
- \r
- void set_video_format_desc(const video_format_desc& format_desc);\r
+ \r
+ boost::unique_future<safe_ptr<host_buffer>> operator()(const video_format_desc& format_desc);\r
+ \r
private:\r
struct implementation;\r
safe_ptr<implementation> impl_;\r
* Author: Robert Nagy, ronag89@gmail.com\r
*/\r
\r
-#include "../../StdAfx.h"\r
+#include "../../../StdAfx.h"\r
\r
#include "image_shader.h"\r
\r
-#include "../gpu/shader.h"\r
-#include "../gpu/ogl_device.h"\r
+#include "../../gpu/shader.h"\r
+#include "../../gpu/ogl_device.h"\r
\r
#include "blending_glsl.h"\r
\r
image_mixer_.end_layer();\r
}\r
\r
- auto image = image_mixer_.render(format_desc_);\r
- auto audio = audio_mixer_.mix(format_desc_);\r
+ auto image = image_mixer_(format_desc_);\r
+ auto audio = audio_mixer_(format_desc_);\r
image.wait();\r
\r
graph_->update_value("mix-time", mix_timer_.elapsed()*format_desc_.fps*0.5);\r
\r
safe_ptr<core::write_frame> create_frame(const void* tag, const core::pixel_format_desc& desc)\r
{ \r
- return image_mixer_.create_frame(tag, desc);\r
+ return make_safe<write_frame>(ogl_, tag, desc);\r
}\r
\r
void set_transform(int index, const frame_transform& transform, unsigned int mix_duration, const std::wstring& tween)\r