Author: Carlos Lopez <genet...@gmail.com> Date: Sat Apr 20 18:16:17 2013 +0200
Apply same fix than previous commit in several places. --- synfig-core/src/modules/lyr_std/bevel.cpp | 5 +++-- synfig-core/src/modules/lyr_std/shade.cpp | 3 ++- .../src/modules/mod_geometry/advanced_outline.cpp | 3 ++- synfig-core/src/modules/mod_geometry/region.cpp | 3 ++- synfig-core/src/synfig/color.cpp | 9 +++++---- synfig-core/src/synfig/layer_polygon.cpp | 3 ++- 6 files changed, 16 insertions(+), 10 deletions(-) diff --git a/synfig-core/src/modules/lyr_std/bevel.cpp b/synfig-core/src/modules/lyr_std/bevel.cpp index 060b8d2..a7407d3 100644 --- a/synfig-core/src/modules/lyr_std/bevel.cpp +++ b/synfig-core/src/modules/lyr_std/bevel.cpp @@ -466,12 +466,13 @@ Layer_Bevel::accelerated_cairorender(Context context,cairo_surface_t *surface,in // Copy over the alpha blurred.set_wh(workdesc.get_w(),workdesc.get_h()); + float div=1.0/((float)(CairoColor::ceil)); if(!use_luma) { for(int j=0;j<workdesc.get_h();j++) for(int i=0;i<workdesc.get_w();i++) { - blurred[j][i]=cairoworksurface[j][i].get_a()/CairoColor::ceil; + blurred[j][i]=cairoworksurface[j][i].get_a()*div; } } else @@ -479,7 +480,7 @@ Layer_Bevel::accelerated_cairorender(Context context,cairo_surface_t *surface,in for(int j=0;j<workdesc.get_h();j++) for(int i=0;i<workdesc.get_w();i++) { - blurred[j][i]=cairoworksurface[j][i].get_a()*(cairoworksurface[j][i].get_y()/CairoColor::ceil); + blurred[j][i]=cairoworksurface[j][i].get_a()*(cairoworksurface[j][i].get_y()*div); } } diff --git a/synfig-core/src/modules/lyr_std/shade.cpp b/synfig-core/src/modules/lyr_std/shade.cpp index d1b0813..8756b5a 100644 --- a/synfig-core/src/modules/lyr_std/shade.cpp +++ b/synfig-core/src/modules/lyr_std/shade.cpp @@ -507,9 +507,10 @@ Layer_Shade::accelerated_cairorender(Context context,cairo_surface_t *surface,in } // Extract the alpha blurred.set_wh(workdesc.get_w(),workdesc.get_h()); + float div=1.0/((float)(CairoColor::ceil)); for(int j=0;j<workdesc.get_h();j++) for(int i=0;i<workdesc.get_w();i++) - blurred[j][i]=cairoworksurface[j][i].get_a()/CairoColor::ceil; + blurred[j][i]=cairoworksurface[j][i].get_a()*div; //blur the image Blur(size,type,&stagetwo)(blurred,workdesc.get_br()-workdesc.get_tl(),blurred); diff --git a/synfig-core/src/modules/mod_geometry/advanced_outline.cpp b/synfig-core/src/modules/mod_geometry/advanced_outline.cpp index f4344ec..b481494 100644 --- a/synfig-core/src/modules/mod_geometry/advanced_outline.cpp +++ b/synfig-core/src/modules/mod_geometry/advanced_outline.cpp @@ -1634,9 +1634,10 @@ Advanced_Outline::accelerated_cairorender(Context context,cairo_surface_t *surfa // Extract the alpha values: int x, y; int wh(workdesc.get_h()), ww(workdesc.get_w()); + float div=1.0/((float)(CairoColor::ceil)); for(y=0; y<wh; y++) for(x=0;x<ww;x++) - shapesurface[y][x]=cairosubimage[y][x].get_a()/CairoColor::ceil; + shapesurface[y][x]=cairosubimage[y][x].get_a()*div; // Blue the alpha values Blur(feather,feather,blurtype,cb)(shapesurface,workdesc.get_br()-workdesc.get_tl(),shapesurface); // repaint the cairosubimage with the result diff --git a/synfig-core/src/modules/mod_geometry/region.cpp b/synfig-core/src/modules/mod_geometry/region.cpp index b09cdcb..0e359c4 100644 --- a/synfig-core/src/modules/mod_geometry/region.cpp +++ b/synfig-core/src/modules/mod_geometry/region.cpp @@ -425,9 +425,10 @@ Region::accelerated_cairorender(Context context,cairo_surface_t *surface,int qua // Extract the alpha values: int x, y; int wh(workdesc.get_h()), ww(workdesc.get_w()); + float div=1.0/((float)(CairoColor::ceil)); for(y=0; y<wh; y++) for(x=0;x<ww;x++) - shapesurface[y][x]=cairosubimage[y][x].get_a()/CairoColor::ceil; + shapesurface[y][x]=cairosubimage[y][x].get_a()*div; // Blue the alpha values Blur(feather,feather,blurtype,cb)(shapesurface,workdesc.get_br()-workdesc.get_tl(),shapesurface); // repaint the cairosubimage with the result diff --git a/synfig-core/src/synfig/color.cpp b/synfig-core/src/synfig/color.cpp index ae53747..9008508 100644 --- a/synfig-core/src/synfig/color.cpp +++ b/synfig-core/src/synfig/color.cpp @@ -236,10 +236,11 @@ Color::clamped()const Color::Color(const CairoColor& c) { - set_r((ceil-floor)*c.get_r()/(CairoColor::ceil-CairoColor::floor)); - set_g((ceil-floor)*c.get_g()/(CairoColor::ceil-CairoColor::floor)); - set_b((ceil-floor)*c.get_b()/(CairoColor::ceil-CairoColor::floor)); - set_a((ceil-floor)*c.get_a()/(CairoColor::ceil-CairoColor::floor)); + float div=1.0/((float)(CairoColor::ceil-CairoColor::floor)); + set_r((ceil-floor)*c.get_r()*div); + set_g((ceil-floor)*c.get_g()*div); + set_b((ceil-floor)*c.get_b()*div); + set_a((ceil-floor)*c.get_a()*div); } diff --git a/synfig-core/src/synfig/layer_polygon.cpp b/synfig-core/src/synfig/layer_polygon.cpp index ca77307..9da3b4c 100644 --- a/synfig-core/src/synfig/layer_polygon.cpp +++ b/synfig-core/src/synfig/layer_polygon.cpp @@ -331,9 +331,10 @@ Layer_Polygon::accelerated_cairorender(Context context,cairo_surface_t *surface, // Extract the alpha values: int x, y; int wh(workdesc.get_h()), ww(workdesc.get_w()); + float div=1.0/((float)(CairoColor::ceil)); for(y=0; y<wh; y++) for(x=0;x<ww;x++) - shapesurface[y][x]=cairosubimage[y][x].get_a()/CairoColor::ceil; + shapesurface[y][x]=cairosubimage[y][x].get_a()*div; // Blue the alpha values Blur(feather,feather,blurtype,cb)(shapesurface,workdesc.get_br()-workdesc.get_tl(),shapesurface); // repaint the cairosubimage with the result ------------------------------------------------------------------------------ Precog is a next-generation analytics platform capable of advanced analytics on semi-structured data. The platform includes APIs for building apps and a phenomenal toolset for data science. Developers can use our toolset for easy data analysis & visualization. Get a free account! http://www2.precog.com/precogplatform/slashdotnewsletter _______________________________________________ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl