\r
int init (void);\r
\r
+static int enable_lch = 0;\r
+ // the Oklch conversions are not fully symmetric,\r
+ // thus not allowing the tests to pass if we register\r
+ // the code\r
+\r
int\r
init (void)\r
{\r
- return 0; // the oklab conversions are not fully symmetric,\r
- // thus not allowing the tests to pass if we register\r
- // the code\r
components ();\r
models ();\r
formats ();\r
babl_component ("Ok L"), babl_component ("Ok a"),\r
babl_component ("Ok b"), babl_component ("A"), "alpha", NULL);\r
\r
- babl_model_new ("name", "Oklch", "doc",\r
- "Cylindrical representation of Oklab.",\r
- babl_component ("Ok L"), babl_component ("Ok C"),\r
- babl_component ("Ok H"), NULL);\r
+ if (enable_lch)\r
+ {\r
+ babl_model_new ("name", "Oklch", "doc",\r
+ "Cylindrical representation of Oklab.",\r
+ babl_component ("Ok L"), babl_component ("Ok C"),\r
+ babl_component ("Ok H"), NULL);\r
\r
- babl_model_new (\r
- "name", "OklchA", "doc", "Oklch color model with separate alpha.",\r
- babl_component ("Ok L"), babl_component ("Ok C"),\r
- babl_component ("Ok H"), babl_component ("A"), "alpha", NULL);\r
+ babl_model_new (\r
+ "name", "OklchA", "doc", "Oklch color model with separate alpha.",\r
+ babl_component ("Ok L"), babl_component ("Ok C"),\r
+ babl_component ("Ok H"), babl_component ("A"), "alpha", NULL);\r
+ }\r
}\r
\r
static void\r
NULL\r
);\r
\r
- babl_format_new (\r
- "name", "Oklch float",\r
- babl_model ("Oklch"),\r
- babl_type ("float"),\r
- babl_component ("Ok L"),\r
- babl_component ("Ok C"),\r
- babl_component ("Ok H"),\r
- NULL\r
- );\r
\r
babl_format_new (\r
"name", "Oklab alpha float",\r
NULL\r
);\r
\r
+ if (enable_lch)\r
+ {\r
+ babl_format_new (\r
+ "name", "Oklch float",\r
+ babl_model ("Oklch"),\r
+ babl_type ("float"),\r
+ babl_component ("Ok L"),\r
+ babl_component ("Ok C"),\r
+ babl_component ("Ok H"),\r
+ NULL\r
+ );\r
+\r
babl_format_new (\r
"name", "Oklch alpha float",\r
babl_model ("OklchA"),\r
babl_component ("A"),\r
NULL\r
);\r
+ }\r
}\r
\r
/* Convertion routine (space definition). */\r
babl_matrix_mul_matrix (tmp, M1, M1);\r
\r
babl_matrix_invert (M1, inv_M1);\r
- babl_matrix_to_float (inv_M1, inv_M1f);\r
babl_matrix_invert (M2, inv_M2);\r
- babl_matrix_to_float (inv_M2, inv_M2f);\r
\r
babl_matrix_to_float (M1, M1f);\r
babl_matrix_to_float (M2, M2f);\r
+ babl_matrix_to_float (inv_M1, inv_M1f);\r
+ babl_matrix_to_float (inv_M2, inv_M2f);\r
\r
mat_ready = 1;\r
}\r
"linear", lab_to_rgba,\r
NULL);\r
\r
+ _pair ("RGB float", "Oklab float", rgb_to_lab_float, lab_to_rgb_float);\r
+ _pair ("RGBA float", "Oklab alpha float", rgba_to_laba_float, laba_to_rgba_float);\r
+ _pair ("RGBA float", "Oklab float", rgba_to_lab_float, lab_to_rgba_float);\r
+\r
+ if (enable_lch)\r
+ {\r
babl_conversion_new (babl_model("RGBA"),\r
babl_model("OklchA"),\r
"linear", rgba_to_lcha,\r
babl_model("RGBA"),\r
"linear", lch_to_rgba,\r
NULL);\r
-\r
-\r
- _pair ("RGB float", "Oklab float", rgb_to_lab_float, lab_to_rgb_float);\r
- _pair ("RGBA float", "Oklab alpha float", rgba_to_laba_float, laba_to_rgba_float);\r
- _pair ("RGBA float", "Oklab float", rgba_to_lab_float, lab_to_rgba_float);\r
-\r
_pair ("RGBA float", "Oklch float", rgba_to_lch_float, lch_to_rgba_float);\r
_pair ("RGB float", "Oklch float", rgb_to_lch_float, lch_to_rgb_float);\r
_pair ("RGBA float", "Oklch alpha float", rgba_to_lcha_float, lcha_to_rgba_float);\r
\r
_pair ("Oklab float", "Oklch float", lab_to_lch_float, lch_to_lab_float);\r
_pair ("Oklab alpha float", "Oklch alpha float", laba_to_lcha_float, lcha_to_laba_float);\r
+ }\r
#undef _pair\r
}\r