From 6c1bc3cce66420a706067fb4ac7b8548adc375fd Mon Sep 17 00:00:00 2001 From: Dan Dennedy Date: Wed, 6 Feb 2013 21:43:48 -0800 Subject: [PATCH] Factor out VerticalFlip Effect. --- src/modules/opengl/filter_glsl_manager.cpp | 16 +-------- src/modules/opengl/mlt_flip_effect.h | 40 ++++++++++++++++++++++ 2 files changed, 41 insertions(+), 15 deletions(-) create mode 100644 src/modules/opengl/mlt_flip_effect.h diff --git a/src/modules/opengl/filter_glsl_manager.cpp b/src/modules/opengl/filter_glsl_manager.cpp index 8723b0ebb..07eba00dd 100644 --- a/src/modules/opengl/filter_glsl_manager.cpp +++ b/src/modules/opengl/filter_glsl_manager.cpp @@ -24,6 +24,7 @@ #include #include #include "mlt_movit_input.h" +#include "mlt_flip_effect.h" extern "C" { #include @@ -184,21 +185,6 @@ void GlslManager::onInit( mlt_properties owner, GlslManager* filter ) filter->set( "glsl_supported", movit_initialized ); } -namespace Mlt -{ -class VerticalFlip : public Effect { -public: - VerticalFlip() {} - virtual std::string effect_type_id() const { return "MltVerticalFlip"; } - std::string output_fragment_shader() { - return "vec4 FUNCNAME(vec2 tc) { tc.y = 1.0 - tc.y; return INPUT(tc); }\n"; - } - virtual bool needs_linear_light() const { return false; } - virtual bool needs_srgb_primaries() const { return false; } - AlphaHandling alpha_handling() const { return DONT_CARE_ALPHA_TYPE; } -}; -} - extern "C" { mlt_filter filter_glsl_manager_init( mlt_profile profile, mlt_service_type type, const char *id, char *arg ) diff --git a/src/modules/opengl/mlt_flip_effect.h b/src/modules/opengl/mlt_flip_effect.h new file mode 100644 index 000000000..3fa9b72e8 --- /dev/null +++ b/src/modules/opengl/mlt_flip_effect.h @@ -0,0 +1,40 @@ +/* + * mlt_flip_effect.h + * Copyright (C) 2013 Dan Dennedy + * + * This program 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 2 of the License, or + * (at your option) any later version. + * + * This program 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 this program; if not, write to the Free Software Foundation, + * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#ifndef MLT_FLIP_EFFECT_H +#define MLT_FLIP_EFFECT_H + +namespace Mlt +{ + +class VerticalFlip : public Effect { +public: + VerticalFlip() {} + virtual std::string effect_type_id() const { return "MltVerticalFlip"; } + std::string output_fragment_shader() { + return "vec4 FUNCNAME(vec2 tc) { tc.y = 1.0 - tc.y; return INPUT(tc); }\n"; + } + virtual bool needs_linear_light() const { return false; } + virtual bool needs_srgb_primaries() const { return false; } + AlphaHandling alpha_handling() const { return DONT_CARE_ALPHA_TYPE; } +}; + +} // namespace Mlt + +#endif // MLT_FLIP_EFFECT_H