[babl/sse-conversions-2013: 2/8] Get rid of duplicate rgba<->rgbA conversions
- From: Daniel Sabo <daniels src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [babl/sse-conversions-2013: 2/8] Get rid of duplicate rgba<->rgbA conversions
- Date: Mon, 1 Apr 2013 00:07:24 +0000 (UTC)
commit 7147d13ef73a31015a790cd00b2264fce988827e
Author: Daniel Sabo <DanielSabo gmail com>
Date: Fri Mar 29 20:29:35 2013 -0700
Get rid of duplicate rgba<->rgbA conversions
gegl-fixup already has correct conversions for linear, the same
code can be applied to gamma.
extensions/gegl-fixups.c | 24 ++++++++++++++++++++++++
extensions/simple.c | 28 ----------------------------
2 files changed, 24 insertions(+), 28 deletions(-)
---
diff --git a/extensions/gegl-fixups.c b/extensions/gegl-fixups.c
index 5a1b972..7645993 100644
--- a/extensions/gegl-fixups.c
+++ b/extensions/gegl-fixups.c
@@ -465,6 +465,8 @@ conv_rgbAF_lrgba8 (unsigned char *srcc,
}
#define conv_rgb8_rgbAF conv_rgb8_rgbaF
+#define conv_gamma_rgbaF_gamma_rgbAF conv_rgbaF_rgbAF
+#define conv_gamma_rgbAF_gamma_rgbaF conv_rgbAF_rgbaF
int init (void);
@@ -487,6 +489,24 @@ init (void)
babl_component ("Ba"),
babl_component ("A"),
NULL);
+
+
+ const Babl *gamma_rgbaF = babl_format_new (
+ babl_model ("R'G'B'A"),
+ babl_type ("float"),
+ babl_component ("R'"),
+ babl_component ("G'"),
+ babl_component ("B'"),
+ babl_component ("A"),
+ NULL);
+ const Babl *gamma_rgbAF = babl_format_new (
+ babl_model ("R'aG'aB'aA"),
+ babl_type ("float"),
+ babl_component ("R'a"),
+ babl_component ("G'a"),
+ babl_component ("B'a"),
+ babl_component ("A"),
+ NULL);
const Babl *lrgba8 = babl_format_new (
babl_model ("RGBA"),
@@ -529,6 +549,10 @@ init (void)
o (rgbaF, rgbAF);
o (rgbAF, rgbaF);
+
+ o (gamma_rgbaF, gamma_rgbAF);
+ o (gamma_rgbAF, gamma_rgbaF);
+
o (rgbAF, lrgba8);
o (rgb8, rgbaF);
o (rgb8, rgbAF);
diff --git a/extensions/simple.c b/extensions/simple.c
index 4d606ea..bde7785 100644
--- a/extensions/simple.c
+++ b/extensions/simple.c
@@ -113,37 +113,9 @@ float_pre_to_u16_pre (unsigned char *src_char, unsigned char *dst_char, long sam
return samples;
}
-static inline long
-float_pre_to_float (unsigned char *src_char, unsigned char *dst_char, long samples)
-{
- float *src = (float *)src_char;
- float *dst = (float *)dst_char;
- long n = samples;
- while (n--)
- {
- const float a_term = 1.0f / src[3];
- dst[0] = src[0] * a_term;
- dst[1] = src[1] * a_term;
- dst[2] = src[2] * a_term;
- dst[3] = src[3];
-
- dst += 4;
- src += 4;
-
- }
- return samples;
-}
-
int
init (void)
{
- /* float and float */
- babl_conversion_new (babl_format ("R'aG'aB'aA float"),
- babl_format ("R'G'B'A float"),
- "linear",
- float_pre_to_float,
- NULL);
-
/* float and u8 */
babl_conversion_new (babl_format ("R'G'B'A float"),
babl_format ("R'G'B'A u8"),
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]