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

Reply via email to