X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=core%2Fmixer%2Fimage%2Fimage_kernel.h;h=13827e734b4c1982c5bd1a99c378b348a55c2ed2;hb=134faacd0105bffe3bd051d708f175010dd1e9b8;hp=523319d51819b59b785e9b642fe8a4e0ed28914d;hpb=2a36a79b24795e2a69f32432e272cc0eb7324c76;p=casparcg diff --git a/core/mixer/image/image_kernel.h b/core/mixer/image/image_kernel.h index 523319d51..13827e734 100644 --- a/core/mixer/image/image_kernel.h +++ b/core/mixer/image/image_kernel.h @@ -1,23 +1,59 @@ +/* +* copyright (c) 2010 Sveriges Television AB +* +* This file is part of CasparCG. +* +* CasparCG is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* CasparCG is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. + +* You should have received a copy of the GNU General Public License +* along with CasparCG. If not, see . +* +*/ #pragma once -#include "../../video_format.h" -#include "../frame/pixel_format.h" +#include "blend_modes.h" + +#include -#include +#include +#include + +#include namespace caspar { namespace core { + +class device_buffer; +class ogl_device; -struct image_transform; +struct draw_params +{ + pixel_format_desc pix_desc; + std::vector> textures; + frame_transform transform; + blend_mode::type blend_mode; + std::shared_ptr background; + std::shared_ptr local_key; + std::shared_ptr layer_key; -class image_kernel + draw_params() : blend_mode(blend_mode::normal){} +}; + +class image_kernel : boost::noncopyable { public: image_kernel(); - void apply(pixel_format::type pix_fmt, const image_transform& mode); - + void draw(ogl_device& ogl, draw_params&& params); private: struct implementation; - std::shared_ptr impl_; + safe_ptr impl_; }; }} \ No newline at end of file