summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJohan B. C. Engelen <jbc.engelen@swissonline.ch>2013-01-30 20:47:35 +0000
committerJohan B. C. Engelen <j.b.c.engelen@alumnus.utwente.nl>2013-01-30 20:47:35 +0000
commita7c6061c0b32affc13bfb818161ca7fc002ef210 (patch)
tree502ca040c51e2a2adfd973bbc2472c1b7e20f84f /src
parentremoving some more unused functions (diff)
downloadinkscape-a7c6061c0b32affc13bfb818161ca7fc002ef210.tar.gz
inkscape-a7c6061c0b32affc13bfb818161ca7fc002ef210.zip
code cleanup. don't use pointers when you don't have to. use const whereever you can.
(bzr r12077)
Diffstat (limited to 'src')
-rw-r--r--src/display/cairo-utils.cpp41
-rw-r--r--src/display/cairo-utils.h17
-rw-r--r--src/display/nr-filter-diffuselighting.cpp6
-rw-r--r--src/display/nr-filter-flood.cpp6
-rw-r--r--src/display/nr-filter-specularlighting.cpp6
5 files changed, 38 insertions, 38 deletions
diff --git a/src/display/cairo-utils.cpp b/src/display/cairo-utils.cpp
index 831b37899..8eeee0277 100644
--- a/src/display/cairo-utils.cpp
+++ b/src/display/cairo-utils.cpp
@@ -597,20 +597,11 @@ void ink_cairo_surface_average_color_premul(cairo_surface_t *surface, double &r,
a = CLAMP(a, 0.0, 1.0);
}
-void srgb_to_linear( double* c ) {
+static guint32 srgb_to_linear( const guint32 c, const guint32 a ) {
- if( *c < 0.04045 ) {
- *c /= 12.92;
- } else {
- *c = pow( (*c+0.055)/1.055, 2.4 );
- }
-}
-
-void srgb_to_linear( guint32* c, guint32 a ) {
-
- *c = unpremul_alpha( *c, a );
+ const guint32 c1 = unpremul_alpha( c, a );
- double cc = *c/255.0;
+ double cc = c1/255.0;
if( cc < 0.04045 ) {
cc /= 12.92;
@@ -619,16 +610,16 @@ void srgb_to_linear( guint32* c, guint32 a ) {
}
cc *= 255.0;
- *c = (int)cc;
+ const guint32 c2 = (int)cc;
- *c = premul_alpha( *c, a );
+ return premul_alpha( c2, a );
}
-void linear_to_srgb( guint32* c, guint32 a ) {
+static guint32 linear_to_srgb( const guint32 c, const guint32 a ) {
- *c = unpremul_alpha( *c, a );
+ const guint32 c1 = unpremul_alpha( c, a );
- double cc = *c/255.0;
+ double cc = c1/255.0;
if( cc < 0.0031308 ) {
cc *= 12.92;
@@ -637,9 +628,9 @@ void linear_to_srgb( guint32* c, guint32 a ) {
}
cc *= 255.0;
- *c = (int)cc;
+ const guint32 c2 = (int)cc;
- *c = premul_alpha( *c, a );
+ return premul_alpha( c2, a );
}
int ink_cairo_surface_srgb_to_linear(cairo_surface_t *surface)
@@ -656,9 +647,9 @@ int ink_cairo_surface_srgb_to_linear(cairo_surface_t *surface)
guint32 px = *reinterpret_cast<guint32*>(data + 4*x);
EXTRACT_ARGB32(px, a,r,g,b) ; // Unneeded semi-colon for indenting
if( a != 0 ) {
- srgb_to_linear( &r, a );
- srgb_to_linear( &g, a );
- srgb_to_linear( &b, a );
+ r = srgb_to_linear( r, a );
+ g = srgb_to_linear( g, a );
+ b = srgb_to_linear( b, a );
}
ASSEMBLE_ARGB32(px2, a,r,g,b);
*reinterpret_cast<guint32*>(data + 4*x) = px2;
@@ -681,9 +672,9 @@ int ink_cairo_surface_linear_to_srgb(cairo_surface_t *surface)
guint32 px = *reinterpret_cast<guint32*>(data + 4*x);
EXTRACT_ARGB32(px, a,r,g,b) ; // Unneeded semi-colon for indenting
if( a != 0 ) {
- linear_to_srgb( &r, a );
- linear_to_srgb( &g, a );
- linear_to_srgb( &b, a );
+ r = linear_to_srgb( r, a );
+ g = linear_to_srgb( g, a );
+ b = linear_to_srgb( b, a );
}
ASSEMBLE_ARGB32(px2, a,r,g,b);
*reinterpret_cast<guint32*>(data + 4*x) = px2;
diff --git a/src/display/cairo-utils.h b/src/display/cairo-utils.h
index 04d6c6810..2596cd969 100644
--- a/src/display/cairo-utils.h
+++ b/src/display/cairo-utils.h
@@ -108,7 +108,7 @@ guint32 ink_cairo_surface_average_color(cairo_surface_t *surface);
void ink_cairo_surface_average_color(cairo_surface_t *surface, double &r, double &g, double &b, double &a);
void ink_cairo_surface_average_color_premul(cairo_surface_t *surface, double &r, double &g, double &b, double &a);
-void srgb_to_linear( double *c);
+double srgb_to_linear( const double c );
int ink_cairo_surface_srgb_to_linear(cairo_surface_t *surface);
int ink_cairo_surface_linear_to_srgb(cairo_surface_t *surface);
@@ -128,13 +128,13 @@ G_GNUC_CONST guint32 argb32_from_rgba(guint32 in);
G_GNUC_CONST inline guint32
-premul_alpha(guint32 color, guint32 alpha)
+premul_alpha(const guint32 color, const guint32 alpha)
{
- guint32 temp = alpha * color + 128;
+ const guint32 temp = alpha * color + 128;
return (temp + (temp >> 8)) >> 8;
}
G_GNUC_CONST inline guint32
-unpremul_alpha(guint32 color, guint32 alpha)
+unpremul_alpha(const guint32 color, const guint32 alpha)
{
// NOTE: you must check for alpha != 0 yourself.
return (255 * color + alpha/2) / alpha;
@@ -154,6 +154,15 @@ void feed_pathvector_to_cairo (cairo_t *ct, Geom::PathVector const &pathv);
#define ASSEMBLE_ARGB32(px,a,r,g,b) \
guint32 px = (a << 24) | (r << 16) | (g << 8) | b;
+inline double srgb_to_linear( const double c ) {
+ if( c < 0.04045 ) {
+ return c / 12.92;
+ } else {
+ return pow( (c+0.055)/1.055, 2.4 );
+ }
+}
+
+
namespace Inkscape {
namespace Display
diff --git a/src/display/nr-filter-diffuselighting.cpp b/src/display/nr-filter-diffuselighting.cpp
index 22e6731c3..c6724e3ba 100644
--- a/src/display/nr-filter-diffuselighting.cpp
+++ b/src/display/nr-filter-diffuselighting.cpp
@@ -152,9 +152,9 @@ void FilterDiffuseLighting::render_cairo(FilterSlot &slot)
// if color_interpolation_filters set to linearRGB (for efficiency assuming
// next filter primitive has same value of cif).
if( ci_fp == SP_CSS_COLOR_INTERPOLATION_LINEARRGB ) {
- srgb_to_linear( &r );
- srgb_to_linear( &g );
- srgb_to_linear( &b );
+ r = srgb_to_linear( r );
+ g = srgb_to_linear( g );
+ b = srgb_to_linear( b );
}
}
set_cairo_surface_ci(out, ci_fp );
diff --git a/src/display/nr-filter-flood.cpp b/src/display/nr-filter-flood.cpp
index 0c581762d..d1fe3e13f 100644
--- a/src/display/nr-filter-flood.cpp
+++ b/src/display/nr-filter-flood.cpp
@@ -64,9 +64,9 @@ void FilterFlood::render_cairo(FilterSlot &slot)
// if color_interpolation_filters set to linearRGB (for efficiency assuming
// next filter primitive has same value of cif).
if( ci_fp == SP_CSS_COLOR_INTERPOLATION_LINEARRGB ) {
- srgb_to_linear( &r );
- srgb_to_linear( &g );
- srgb_to_linear( &b );
+ r = srgb_to_linear( r );
+ g = srgb_to_linear( g );
+ b = srgb_to_linear( b );
}
}
set_cairo_surface_ci(out, ci_fp );
diff --git a/src/display/nr-filter-specularlighting.cpp b/src/display/nr-filter-specularlighting.cpp
index 535633143..2ce02adee 100644
--- a/src/display/nr-filter-specularlighting.cpp
+++ b/src/display/nr-filter-specularlighting.cpp
@@ -165,9 +165,9 @@ void FilterSpecularLighting::render_cairo(FilterSlot &slot)
// if color_interpolation_filters set to linearRGB (for efficiency assuming
// next filter primitive has same value of cif).
if( ci_fp == SP_CSS_COLOR_INTERPOLATION_LINEARRGB ) {
- srgb_to_linear( &r );
- srgb_to_linear( &g );
- srgb_to_linear( &b );
+ r = srgb_to_linear( r );
+ g = srgb_to_linear( g );
+ b = srgb_to_linear( b );
}
}
set_cairo_surface_ci(out, ci_fp );