[babl] extensions: more direct trc dispatch
- From: Øyvind Kolås <ok src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [babl] extensions: more direct trc dispatch
- Date: Wed, 30 Aug 2017 15:44:10 +0000 (UTC)
commit c4d326366f6bde8a6d49c8147f13c0a73d694867
Author: Øyvind Kolås <pippin gimp org>
Date: Wed Aug 30 17:29:01 2017 +0200
extensions: more direct trc dispatch
babl/babl-fish-path.c | 2 +-
extensions/cairo.c | 16 ++++++++--------
extensions/float.c | 42 +++++++++++++++++++++---------------------
3 files changed, 30 insertions(+), 30 deletions(-)
---
diff --git a/babl/babl-fish-path.c b/babl/babl-fish-path.c
index f89aae1..dd7c018 100644
--- a/babl/babl-fish-path.c
+++ b/babl/babl-fish-path.c
@@ -666,7 +666,7 @@ babl_fish_path (const Babl *source,
if (!done)
{
- if(1)babl_conversion_class_for_each (show_item, (void*)source->format.space);
+ if(0)babl_conversion_class_for_each (show_item, (void*)source->format.space);
//babl_format_class_for_each (show_fmt, NULL);
//babl_model_class_for_each (show_fmt, NULL);
}
diff --git a/extensions/cairo.c b/extensions/cairo.c
index 99cca15..c53da2a 100644
--- a/extensions/cairo.c
+++ b/extensions/cairo.c
@@ -300,11 +300,11 @@ conv_rgbafloat_cairo32_le (const Babl *conversion,unsigned char *src,
float alpha = *fsrc++;
if (alpha >= 1.0)
{
- int val = _babl_trc_from_linearf (trc[2], blue) * 0xff + 0.5f;
+ int val = trc[2]->trc.fun_from_linear (trc[2], blue) * 0xff + 0.5f;
*cdst++ = val >= 0xff ? 0xff : val <= 0 ? 0 : val;
- val = _babl_trc_from_linearf (trc[1], green) * 0xff + 0.5f;
+ val = trc[1]->trc.fun_from_linear (trc[1], green) * 0xff + 0.5f;
*cdst++ = val >= 0xff ? 0xff : val <= 0 ? 0 : val;
- val = _babl_trc_from_linearf (trc[0], red) * 0xff + 0.5f;
+ val = trc[0]->trc.fun_from_linear (trc[0], red) * 0xff + 0.5f;
*cdst++ = val >= 0xff ? 0xff : val <= 0 ? 0 : val;
*cdst++ = 0xff;
}
@@ -316,11 +316,11 @@ conv_rgbafloat_cairo32_le (const Babl *conversion,unsigned char *src,
else
{
float balpha = alpha * 0xff;
- int val = _babl_trc_from_linearf (trc[2], blue) * balpha + 0.5f;
+ int val = trc[2]->trc.fun_from_linear (trc[2], blue) * balpha + 0.5f;
*cdst++ = val >= 0xff ? 0xff : val <= 0 ? 0 : val;
- val = _babl_trc_from_linearf (trc[1], green) * balpha + 0.5f;
+ val = trc[1]->trc.fun_from_linear (trc[1], green) * balpha + 0.5f;
*cdst++ = val >= 0xff ? 0xff : val <= 0 ? 0 : val;
- val = _babl_trc_from_linearf (trc[0], red) * balpha + 0.5f;
+ val = trc[0]->trc.fun_from_linear (trc[0], red) * balpha + 0.5f;
*cdst++ = val >= 0xff ? 0xff : val <= 0 ? 0 : val;
*cdst++ = balpha + 0.5f;
}
@@ -346,7 +346,7 @@ conv_yafloat_cairo32_le (const Babl *conversion,unsigned char *src,
float alpha = *fsrc++;
if (alpha >= 1.0)
{
- int val = _babl_trc_from_linearf (trc[0], gray) * 0xff + 0.5f;
+ int val = trc[0]->trc.fun_from_linear (trc[0], gray) * 0xff + 0.5f;
val = val >= 0xff ? 0xff : val <= 0 ? 0 : val;
*cdst++ = val;
*cdst++ = val;
@@ -361,7 +361,7 @@ conv_yafloat_cairo32_le (const Babl *conversion,unsigned char *src,
else
{
float balpha = alpha * 0xff;
- int val = _babl_trc_from_linearf (trc[0], gray) * balpha + 0.5f;
+ int val = trc[0]->trc.fun_from_linear (trc[0], gray) * balpha + 0.5f;
val = val >= 0xff ? 0xff : val <= 0 ? 0 : val;
*cdst++ = val;
*cdst++ = val;
diff --git a/extensions/float.c b/extensions/float.c
index cfe7b2b..0ebe81a 100644
--- a/extensions/float.c
+++ b/extensions/float.c
@@ -45,9 +45,9 @@ conv_rgbaF_linear_rgbAF_gamma (const Babl *conversion,unsigned char *src,
while (n--)
{
float alpha = fsrc[3];
- *fdst++ = _babl_trc_from_linearf (trc[0], *fsrc++) * alpha;
- *fdst++ = _babl_trc_from_linearf (trc[1], *fsrc++) * alpha;
- *fdst++ = _babl_trc_from_linearf (trc[2], *fsrc++) * alpha;
+ *fdst++ = trc[0]->trc.fun_from_linear (trc[0], *fsrc++) * alpha;
+ *fdst++ = trc[1]->trc.fun_from_linear (trc[1], *fsrc++) * alpha;
+ *fdst++ = trc[2]->trc.fun_from_linear (trc[2], *fsrc++) * alpha;
*fdst++ = *fsrc++;
}
return samples;
@@ -78,17 +78,17 @@ conv_rgbAF_linear_rgbAF_gamma (const Babl *conversion,unsigned char *src,
}
else if (alpha >= 1.0)
{
- *fdst++ = _babl_trc_from_linearf (trc[0], *fsrc++);
- *fdst++ = _babl_trc_from_linearf (trc[1], *fsrc++);
- *fdst++ = _babl_trc_from_linearf (trc[2], *fsrc++);
+ *fdst++ = trc[0]->trc.fun_from_linear (trc[0], *fsrc++) * alpha;
+ *fdst++ = trc[1]->trc.fun_from_linear (trc[1], *fsrc++) * alpha;
+ *fdst++ = trc[2]->trc.fun_from_linear (trc[2], *fsrc++) * alpha;
*fdst++ = *fsrc++;
}
else
{
float alpha_recip = 1.0 / alpha;
- *fdst++ = _babl_trc_from_linearf (trc[0], *fsrc++ * alpha_recip) * alpha;
- *fdst++ = _babl_trc_from_linearf (trc[1], *fsrc++ * alpha_recip) * alpha;
- *fdst++ = _babl_trc_from_linearf (trc[2], *fsrc++ * alpha_recip) * alpha;
+ *fdst++ = trc[0]->trc.fun_from_linear (trc[0], *fsrc++ * alpha_recip) * alpha;
+ *fdst++ = trc[1]->trc.fun_from_linear (trc[1], *fsrc++ * alpha_recip) * alpha;
+ *fdst++ = trc[2]->trc.fun_from_linear (trc[2], *fsrc++ * alpha_recip) * alpha;
*fdst++ = *fsrc++;
}
}
@@ -109,9 +109,9 @@ conv_rgbaF_linear_rgbaF_gamma (const Babl *conversion,unsigned char *src,
while (n--)
{
- *fdst++ = _babl_trc_from_linearf (trc[0], *fsrc++);
- *fdst++ = _babl_trc_from_linearf (trc[1], *fsrc++);
- *fdst++ = _babl_trc_from_linearf (trc[2], *fsrc++);
+ *fdst++ = trc[0]->trc.fun_from_linear (trc[0], *fsrc++);
+ *fdst++ = trc[1]->trc.fun_from_linear (trc[1], *fsrc++);
+ *fdst++ = trc[2]->trc.fun_from_linear (trc[2], *fsrc++);
*fdst++ = *fsrc++;
}
return samples;
@@ -130,9 +130,9 @@ conv_rgbF_linear_rgbF_gamma (const Babl *conversion,unsigned char *src,
while (n--)
{
- *fdst++ = _babl_trc_from_linearf (trc[0], *fsrc++);
- *fdst++ = _babl_trc_from_linearf (trc[1], *fsrc++);
- *fdst++ = _babl_trc_from_linearf (trc[2], *fsrc++);
+ *fdst++ = trc[0]->trc.fun_from_linear (trc[0], *fsrc++);
+ *fdst++ = trc[1]->trc.fun_from_linear (trc[1], *fsrc++);
+ *fdst++ = trc[2]->trc.fun_from_linear (trc[2], *fsrc++);
}
return samples;
}
@@ -151,9 +151,9 @@ conv_rgbaF_gamma_rgbaF_linear (const Babl *conversion,unsigned char *src,
while (n--)
{
- *fdst++ = _babl_trc_to_linearf (trc[0], *fsrc++);
- *fdst++ = _babl_trc_to_linearf (trc[1], *fsrc++);
- *fdst++ = _babl_trc_to_linearf (trc[2], *fsrc++);
+ *fdst++ = trc[0]->trc.fun_to_linear (trc[0], *fsrc++);
+ *fdst++ = trc[1]->trc.fun_to_linear (trc[1], *fsrc++);
+ *fdst++ = trc[2]->trc.fun_to_linear (trc[2], *fsrc++);
*fdst++ = *fsrc++;
}
return samples;
@@ -172,9 +172,9 @@ conv_rgbF_gamma_rgbF_linear (const Babl *conversion,unsigned char *src,
while (n--)
{
- *fdst++ = _babl_trc_to_linearf (trc[0], *fsrc++);
- *fdst++ = _babl_trc_to_linearf (trc[1], *fsrc++);
- *fdst++ = _babl_trc_to_linearf (trc[2], *fsrc++);
+ *fdst++ = trc[0]->trc.fun_to_linear (trc[0], *fsrc++);
+ *fdst++ = trc[1]->trc.fun_to_linear (trc[1], *fsrc++);
+ *fdst++ = trc[2]->trc.fun_to_linear (trc[2], *fsrc++);
}
return samples;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]