X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftags%2Fsynfig_0_61_07_rc3%2Fsrc%2Fmodules%2Fmod_filter%2Fradialblur.cpp;fp=synfig-core%2Ftags%2Fsynfig_0_61_07_rc3%2Fsrc%2Fmodules%2Fmod_filter%2Fradialblur.cpp;h=0000000000000000000000000000000000000000;hb=3a6643238c67c043fc3592837a05d6d2861967f1;hp=4c7f749990aa18883fcd51ba67247d38cda07099;hpb=47fce282611fbba1044921d22ca887f9b53ad91a;p=synfig.git diff --git a/synfig-core/tags/synfig_0_61_07_rc3/src/modules/mod_filter/radialblur.cpp b/synfig-core/tags/synfig_0_61_07_rc3/src/modules/mod_filter/radialblur.cpp deleted file mode 100644 index 4c7f749..0000000 --- a/synfig-core/tags/synfig_0_61_07_rc3/src/modules/mod_filter/radialblur.cpp +++ /dev/null @@ -1,317 +0,0 @@ -/* === S Y N F I G ========================================================= */ -/*! \file radialblur.cpp -** \brief Template Header -** -** $Id$ -** -** \legal -** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley -** Copyright (c) 2007 Chris Moore -** -** This package 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 package 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. -** \endlegal -** -** === N O T E S =========================================================== -** -** ========================================================================= */ - -/* === H E A D E R S ======================================================= */ - -#ifdef USING_PCH -# include "pch.h" -#else -#ifdef HAVE_CONFIG_H -# include -#endif - -#include "radialblur.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#endif - -/* === M A C R O S ========================================================= */ - -/* === G L O B A L S ======================================================= */ - -SYNFIG_LAYER_INIT(RadialBlur); -SYNFIG_LAYER_SET_NAME(RadialBlur,"radial_blur"); -SYNFIG_LAYER_SET_LOCAL_NAME(RadialBlur,_("Radial Blur")); -SYNFIG_LAYER_SET_CATEGORY(RadialBlur,_("Blurs")); -SYNFIG_LAYER_SET_VERSION(RadialBlur,"0.1"); -SYNFIG_LAYER_SET_CVS_ID(RadialBlur,"$Id$"); - -/* === P R O C E D U R E S ================================================= */ - -/* === M E T H O D S ======================================================= */ - -/* === E N T R Y P O I N T ================================================= */ - -RadialBlur::RadialBlur(): - origin (0,0), - size (0.2), - fade_out(false) -{ -} - -RadialBlur::~RadialBlur() -{ -} - -bool -RadialBlur::set_param(const String & param, const ValueBase &value) -{ - IMPORT(origin); - IMPORT(size); - IMPORT(fade_out); - - return Layer_Composite::set_param(param,value); -} - -ValueBase -RadialBlur::get_param(const String ¶m)const -{ - EXPORT(origin); - EXPORT(size); - EXPORT(fade_out); - - EXPORT_NAME(); - EXPORT_VERSION(); - - return Layer_Composite::get_param(param); -} - -Layer::Vocab -RadialBlur::get_param_vocab()const -{ - Layer::Vocab ret(Layer_Composite::get_param_vocab()); - - ret.push_back(ParamDesc("origin") - .set_local_name(_("Origin")) - .set_description(_("Point where you want the origin to be")) - ); - - ret.push_back(ParamDesc("size") - .set_local_name(_("Size")) - .set_description(_("Size of blur")) - .set_origin("origin") - ); - - ret.push_back(ParamDesc("fade_out") - .set_local_name(_("Fade Out")) - ); - - return ret; -} - -Color -RadialBlur::get_color(Context context, const Point &p)const -{ - //! \writeme - return context.get_color(p); -} - -bool -RadialBlur::accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const -{ - if(cb && !cb->amount_complete(0,10000)) - return false; - - Surface tmp_surface; - const Point tl(renddesc.get_tl()), br(renddesc.get_br()); - const int w(renddesc.get_w()), h(renddesc.get_h()); - const Real pw(renddesc.get_pw()),ph(renddesc.get_ph()); - - Rect rect(tl, br); - Point pos; - - // find how far towards the origin of the blur we are going to - // wander for each of the 4 corners of our tile, expanding the - // render description for each of them if necessary - int x, y; - for(y=0,pos[1]=tl[1];yset_wh(w, h); - Surface::pen pen(surface->get_pen(0, 0)); - tmp_surface.blit_to(pen, - int((tl[0] - tmp_surface_tl[0])/pw + 0.5), - int((tl[1] - tmp_surface_tl[1])/ph + 0.5), - w, h); - - Surface::alpha_pen apen(surface->begin()); - - apen.set_alpha(get_amount()); - apen.set_blend_method(get_blend_method()); - -/* - int steps(5); - - if(quality>=9)steps=20; - else if(quality>=5)steps=30; - else if(quality>=4)steps=60; - else if(quality>=3)steps=100; - else steps=120; -*/ - - Surface::value_prep_type cooker; - - // loop through the pixels - for(y=0,pos[1]=tl[1];y 0) ? 1 : -1; - dy = abs(y1 - y0); - sy = ((y1 - y0) > 0) ? 1 : -1; - if (dy > dx) - { - steep = 0; - swap(x0, y0); - swap(dx, dy); - swap(sx, sy); - swap(w,h); - } - e = (dy << 1) - dx; - for (i = 0; i < dx; i++) - { - if(y0>=0 && x0>=0 && y0= %d or %d >= %d?\n", __FILE__, __LINE__, x0, w, y0, h); - - while (e >= 0) - { - y0 += sy; - e -= (dx << 1); - } - x0 += sx; - e += (dy << 1); - } - if(poolsize) - { - pool/=poolsize; - apen.put_value(cooker.uncook(pool)); - } -/* - Point begin,end; - begin=pos; - end=(pos-origin)*(1.0f-size)+origin; - - Color pool(Color::alpha()); - float f,poolsize(0); - int i; - int steps(steps*size); - for(f=0,i=0;iamount_complete(10000,10000)) return false; - -// #define DRAW_TILE_OUTLINES -#ifdef DRAW_TILE_OUTLINES - // draw red lines to show tiles - { - int x, y; - if (w != 0 && h != 0) { - Surface::alpha_pen apen(surface->begin()); - apen.set_alpha(get_amount()); - apen.set_blend_method(get_blend_method()); - apen.set_value(Color(1, 0, 0, .1)); - for (x = 0; x < w; x++) { apen.put_value(); apen.inc_x(); } apen.dec_x(w); - for (y = 0; y < h; y++) { apen.put_value(); apen.inc_y(); } apen.dec_y(h); - } - } -#endif // DRAW_TILE_OUTLINES - - return true; -}