aboutsummaryrefslogtreecommitdiffstats
path: root/src/parse_10deg.c
diff options
context:
space:
mode:
authorMattias Andrée <maandree@member.fsf.org>2016-01-04 21:24:59 +0100
committerMattias Andrée <maandree@member.fsf.org>2016-01-04 21:24:59 +0100
commit15e3ff763c33cb309dd07cfab98312de3375e630 (patch)
tree5d9ec1be1218217c005640e7dc747d2924fbb0ba /src/parse_10deg.c
parentremove unused macros (diff)
downloadlibred-15e3ff763c33cb309dd07cfab98312de3375e630.tar.gz
libred-15e3ff763c33cb309dd07cfab98312de3375e630.tar.bz2
libred-15e3ff763c33cb309dd07cfab98312de3375e630.tar.xz
dedup ciexyy_to_srgb
Signed-off-by: Mattias Andrée <maandree@member.fsf.org>
Diffstat (limited to 'src/parse_10deg.c')
-rw-r--r--src/parse_10deg.c33
1 files changed, 3 insertions, 30 deletions
diff --git a/src/parse_10deg.c b/src/parse_10deg.c
index f1e2c81..c78851e 100644
--- a/src/parse_10deg.c
+++ b/src/parse_10deg.c
@@ -29,36 +29,9 @@
-/**
- * Convert from CIE xyY to [0, 1] sRGB.
- *
- * This function is identical to that in 'blackbody.c'.
- *
- * @param x The 'x' component.
- * @param y The 'y' component.
- * @param Y The 'Y' component.
- * @param r Output parameter for the “red” value.
- * (Seriously, sRGB red is orange, just look at it fullscreen.)
- * @param g Output parameter for the green value.
- * @param b Output parameter for the blue value.
- */
-static void ciexyy_to_srgb(double x, double y, double Y, double *r, double *g, double *b)
-{
-#define SRGB(C) (((C) <= 0.0031308) ? (12.92 * (C)) : ((1.0 + 0.055) * pow((C), 1.0 / 2.4) - 0.055))
- double X, Z;
-
- /* Convert CIE xyY to CIE XYZ. */
- X = Y * (y == 0.0 ? 0.0 : (x / y));
- Z = Y * (y == 0.0 ? 0.0 : ((1.0 - x - y) / y));
-
- /* Convert CIE XYZ to [0, 1] linear RGB. (ciexyz_to_linear) */
- *r = ( 3.240450 * X) + (-1.537140 * Y) + (-0.4985320 * Z);
- *g = (-0.969266 * X) + ( 1.876010 * Y) + ( 0.0415561 * Z);
- *b = (0.0556434 * X) + (-0.204026 * Y) + ( 1.0572300 * Z);
-
- /* Convert [0, 1] linear RGB to [0, 1] sRGB. */
- SRGB(*r), SRGB(*g), SRGB(*b);
-}
+#define LIBRED_COMPILING_PARSER
+#include "blackbody.c"
+
/**