X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Fsynfig%2Flayer_motionblur.cpp;h=b02ba72a08e13adf871e8c707cda943a724136f9;hb=37600b4b217caa5e316984ec0b035c5e8f9698af;hp=6ac3673fb1ec6e777809d7330e391c72d180c312;hpb=75635270584b5775982adbd70250a0ebc7e3e76b;p=synfig.git diff --git a/synfig-core/trunk/src/synfig/layer_motionblur.cpp b/synfig-core/trunk/src/synfig/layer_motionblur.cpp index 6ac3673..b02ba72 100644 --- a/synfig-core/trunk/src/synfig/layer_motionblur.cpp +++ b/synfig-core/trunk/src/synfig/layer_motionblur.cpp @@ -1,11 +1,12 @@ /* === S Y N F I G ========================================================= */ -/*! \file layer_motionblur.h +/*! \file layer_motionblur.cpp ** \brief Template Header ** -** $Id: layer_motionblur.cpp,v 1.1.1.1 2005/01/04 01:23:14 darco Exp $ +** $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 @@ -51,11 +52,11 @@ using namespace std; /* === G L O B A L S ======================================================= */ SYNFIG_LAYER_INIT(Layer_MotionBlur); -SYNFIG_LAYER_SET_NAME(Layer_MotionBlur,"MotionBlur"); +SYNFIG_LAYER_SET_NAME(Layer_MotionBlur,"MotionBlur"); // todo: use motion_blur SYNFIG_LAYER_SET_LOCAL_NAME(Layer_MotionBlur,_("Motion Blur")); SYNFIG_LAYER_SET_CATEGORY(Layer_MotionBlur,_("Blurs")); SYNFIG_LAYER_SET_VERSION(Layer_MotionBlur,"0.1"); -SYNFIG_LAYER_SET_CVS_ID(Layer_MotionBlur,"$Id: layer_motionblur.cpp,v 1.1.1.1 2005/01/04 01:23:14 darco Exp $"); +SYNFIG_LAYER_SET_CVS_ID(Layer_MotionBlur,"$Id$"); /* === M E M B E R S ======================================================= */ @@ -64,12 +65,12 @@ Layer_MotionBlur::Layer_MotionBlur(): aperture (0) { } - + bool Layer_MotionBlur::set_param(const String ¶m, const ValueBase &value) { - IMPORT(aperture); + IMPORT(aperture); return Layer_Composite::set_param(param,value); } @@ -77,10 +78,10 @@ ValueBase Layer_MotionBlur::get_param(const String ¶m)const { EXPORT(aperture); - + EXPORT_NAME(); EXPORT_VERSION(); - + return Layer_Composite::get_param(param); } @@ -106,7 +107,7 @@ Layer_MotionBlur::get_color(Context context, const Point &pos)const Time time(time_cur); time+=(Vector::value_type)( (signed)(RAND_MAX/2)-(signed)rand() )/(Vector::value_type)(RAND_MAX) *aperture -aperture*0.5; context.set_time(time, pos); - } + } */ return context.get_color(pos); } @@ -116,19 +117,19 @@ Layer_MotionBlur::get_param_vocab()const { Layer::Vocab ret; //ret=Layer_Composite::get_param_vocab(); - + ret.push_back(ParamDesc("aperture") .set_local_name(_("Aperture")) .set_description(_("Shutter Time")) ); - + return ret; } bool Layer_MotionBlur::accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const { - if(aperture && quality<10) + if(aperture && quality<=10) { //int x, y; SuperCallback subimagecb; @@ -163,34 +164,39 @@ Layer_MotionBlur::accelerated_render(Context context,Surface *surface,int qualit samples=3; break; case 10: // Rough Quality - default: - samples=1; + default: + samples=2; break; - + } - + + if (samples == 1) return context.accelerated_render(surface,quality,renddesc,cb); + Surface tmp; int i; + float scale, divisor = 0; surface->set_wh(renddesc.get_w(),renddesc.get_h()); surface->clear(); - + for(i=0;i