X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=accelerator%2Fogl%2Fimage%2Fimage_mixer.cpp;h=19d0191e5fef9a23f5a70e542d24a02806f2d776;hb=c30ace6f19e057aff4d84a54f37596857df93750;hp=1c983cee20e4f8db8e5a0d7904fabc57c5bc387f;hpb=4f5159d9178f3f9c5d848b193bc545cf65505ca8;p=casparcg diff --git a/accelerator/ogl/image/image_mixer.cpp b/accelerator/ogl/image/image_mixer.cpp index 1c983cee2..19d0191e5 100644 --- a/accelerator/ogl/image/image_mixer.cpp +++ b/accelerator/ogl/image/image_mixer.cpp @@ -369,6 +369,16 @@ public: return core::mutable_frame(std::move(buffers), core::mutable_audio_buffer(), tag, desc, channel_layout); } + + int get_max_frame_size() override + { + return ogl_->invoke([] + { + GLint64 params[1]; + glGetInteger64v(GL_MAX_TEXTURE_SIZE, params); + return static_cast(params[0]); + }); + } }; image_mixer::image_mixer(const spl::shared_ptr& ogl, bool blend_modes_wanted, bool straight_alpha_wanted, int channel_id) : impl_(new impl(ogl, blend_modes_wanted, straight_alpha_wanted, channel_id)){} @@ -376,6 +386,7 @@ image_mixer::~image_mixer(){} void image_mixer::push(const core::frame_transform& transform){impl_->push(transform);} void image_mixer::visit(const core::const_frame& frame){impl_->visit(frame);} void image_mixer::pop(){impl_->pop();} +int image_mixer::get_max_frame_size() { return impl_->get_max_frame_size(); } std::future> image_mixer::operator()(const core::video_format_desc& format_desc, bool straighten_alpha){return impl_->render(format_desc, straighten_alpha);} core::mutable_frame image_mixer::create_frame(const void* tag, const core::pixel_format_desc& desc, const core::audio_channel_layout& channel_layout) {return impl_->create_frame(tag, desc, channel_layout);}