X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Fmodules%2Flyr_std%2Fshade.cpp;h=4ab3917b748937aef8f092fc0bd195ad0b9f177a;hb=9459638ad6797b8139f1e9f0715c96076dbf0890;hp=05e0553795de8eaec1b54dd0d6b849920cec3764;hpb=48bcdd92974704d0c3dff626ed83b8568e11a754;p=synfig.git diff --git a/synfig-core/trunk/src/modules/lyr_std/shade.cpp b/synfig-core/trunk/src/modules/lyr_std/shade.cpp index 05e0553..4ab3917 100644 --- a/synfig-core/trunk/src/modules/lyr_std/shade.cpp +++ b/synfig-core/trunk/src/modules/lyr_std/shade.cpp @@ -6,6 +6,7 @@ ** ** \legal ** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** Copyright (c) 2008 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 @@ -80,7 +81,7 @@ Layer_Shade::Layer_Shade(): size(0.1,0.1), type(Blur::FASTGAUSSIAN), color(Color::black()), - offset(0.2,-0.2), + origin(0.2,-0.2), invert(false) { } @@ -93,9 +94,11 @@ Layer_Shade::set_param(const String ¶m, const ValueBase &value) IMPORT_PLUS(color, { if (color.get_a() == 0) { if (converted_blend_) { set_blend_method(Color::BLEND_ALPHA_OVER); color.set_a(1); } else transparent_color_ = true; } }); - IMPORT(offset); + IMPORT(origin); IMPORT(invert); + IMPORT_AS(origin,"offset"); + return Layer_Composite::set_param(param,value); } @@ -105,7 +108,7 @@ Layer_Shade::get_param(const String ¶m)const EXPORT(size); EXPORT(type); EXPORT(color); - EXPORT(offset); + EXPORT(origin); EXPORT(invert); EXPORT_NAME(); @@ -125,9 +128,9 @@ Layer_Shade::get_color(Context context, const Point &pos)const Color shade(color); if(!invert) - shade.set_a(context.get_color(blurpos-offset).get_a()); + shade.set_a(context.get_color(blurpos-origin).get_a()); else - shade.set_a(1.0f-context.get_color(blurpos-offset).get_a()); + shade.set_a(1.0f-context.get_color(blurpos-origin).get_a()); return Color::blend(shade,context.get_color(pos),get_amount(),get_blend_method()); } @@ -152,15 +155,15 @@ Layer_Shade::accelerated_render(Context context,Surface *surface,int quality, co int halfsizex = (int) (abs(size[0]*.5/pw) + 3), halfsizey = (int) (abs(size[1]*.5/ph) + 3); - int offset_u(-round_to_int(offset[0]/pw)),offset_v(-round_to_int(offset[1]/ph)); + int origin_u(-round_to_int(origin[0]/pw)),origin_v(-round_to_int(origin[1]/ph)); - int offset_w(w+abs(offset_u)),offset_h(h+abs(offset_v)); + int origin_w(w+abs(origin_u)),origin_h(h+abs(origin_v)); workdesc.set_subwindow( - offset_u<0?offset_u:0, - offset_v<0?offset_v:0, - (offset_u>0?offset_u:0)+w, - (offset_v>0?offset_v:0)+h + origin_u<0?origin_u:0, + origin_v<0?origin_v:0, + (origin_u>0?origin_u:0)+w, + (origin_v>0?origin_v:0)+h ); if(quality >= 10) @@ -181,7 +184,7 @@ Layer_Shade::accelerated_render(Context context,Surface *surface,int quality, co case Blur::BOX: case Blur::CROSS: { - workdesc.set_subwindow(-max(1,halfsizex),-max(1,halfsizey),offset_w+2*max(1,halfsizex),offset_h+2*max(1,halfsizey)); + workdesc.set_subwindow(-max(1,halfsizex),-max(1,halfsizey),origin_w+2*max(1,halfsizex),origin_h+2*max(1,halfsizey)); break; } case Blur::FASTGAUSSIAN: @@ -191,7 +194,7 @@ Layer_Shade::accelerated_render(Context context,Surface *surface,int quality, co halfsizex*=2; halfsizey*=2; } - workdesc.set_subwindow(-max(1,halfsizex),-max(1,halfsizey),offset_w+2*max(1,halfsizex),offset_h+2*max(1,halfsizey)); + workdesc.set_subwindow(-max(1,halfsizex),-max(1,halfsizey),origin_w+2*max(1,halfsizex),origin_h+2*max(1,halfsizey)); break; } case Blur::GAUSSIAN: @@ -208,7 +211,7 @@ Layer_Shade::accelerated_render(Context context,Surface *surface,int quality, co halfsizex = (halfsizex + 1)/2; halfsizey = (halfsizey + 1)/2; - workdesc.set_subwindow( -halfsizex, -halfsizey, offset_w+2*halfsizex, offset_h+2*halfsizey ); + workdesc.set_subwindow( -halfsizex, -halfsizey, origin_w+2*halfsizex, origin_h+2*halfsizey ); break; } @@ -259,18 +262,18 @@ Layer_Shade::accelerated_render(Context context,Surface *surface,int quality, co //be sure the surface is of the correct size surface->set_wh(renddesc.get_w(),renddesc.get_h()); - int u = halfsizex-(offset_u<0?offset_u:0), v = halfsizey-(offset_v<0?offset_v:0); + int u = halfsizex-(origin_u<0?origin_u:0), v = halfsizey-(origin_v<0?origin_v:0); for(y=0;y