[babl] extensions: add fast paths going from gray to premul alpha rgb - for resampling
- From: Øyvind Kolås <ok src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [babl] extensions: add fast paths going from gray to premul alpha rgb - for resampling
- Date: Thu, 15 Dec 2016 23:47:41 +0000 (UTC)
commit 3bac1a54a2c50bb8435ad573023bf4300a3e309a
Author: Øyvind Kolås <pippin gimp org>
Date: Fri Dec 16 00:39:08 2016 +0100
extensions: add fast paths going from gray to premul alpha rgb - for resampling
extensions/gggl-lies.c | 25 +++++++++++++++++++++++++
extensions/gggl.c | 24 ++++++++++++++++++++++++
2 files changed, 49 insertions(+), 0 deletions(-)
---
diff --git a/extensions/gggl-lies.c b/extensions/gggl-lies.c
index 5d50f5b..b8efc83 100644
--- a/extensions/gggl-lies.c
+++ b/extensions/gggl-lies.c
@@ -418,6 +418,29 @@ conv_rgbaF_rgbF (unsigned char *src, unsigned char *dst, long samples)
return samples;
}
+
+static long
+conv_gF_rgbaF (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ *(int *) dst = (*(int *) src);
+ dst += 4;
+ *(int *) dst = (*(int *) src);
+ dst += 4;
+ *(int *) dst = (*(int *) src);
+ dst += 4;
+ *(float *) dst = 1.0;
+ dst += 4;
+ src += 4;
+ }
+ return samples;
+}
+
+#define conv_gF_rgbAF conv_gF_rgbaF
+
static long
conv_rgbF_rgbaF (unsigned char *src, unsigned char *dst, long samples)
{
@@ -840,6 +863,8 @@ init (void)
o (gaF, ga8);
o (gAF, gA8);
o (gF, g8);
+ o (gF, rgbAF);
+ o (gF, rgbaF);
o (ga8, gaF);
o (gA8, gAF);
o (g8, gF);
diff --git a/extensions/gggl.c b/extensions/gggl.c
index c4b8ce4..b01659f 100644
--- a/extensions/gggl.c
+++ b/extensions/gggl.c
@@ -607,6 +607,28 @@ conv_rgbA16_rgbaF (unsigned char *src, unsigned char *dst, long samples)
return samples;
}
+static long
+conv_gF_rgbaF (unsigned char *src, unsigned char *dst, long samples)
+{
+ long n = samples;
+
+ while (n--)
+ {
+ *(int *) dst = (*(int *) src);
+ dst += 4;
+ *(int *) dst = (*(int *) src);
+ dst += 4;
+ *(int *) dst = (*(int *) src);
+ dst += 4;
+ *(float *) dst = 1.0;
+ dst += 4;
+ src += 4;
+ }
+ return samples;
+}
+
+#define conv_gF_rgbAF conv_gF_rgbaF
+
/*
static long
conv_rgb8_rgbaF (unsigned char *src,
@@ -1102,6 +1124,8 @@ init (void)
o (gF, gaF);
o (gF, gAF);
o (gF, rgbF);
+ o (gF, rgbaF);
+ o (gF, rgbAF);
o (gaF, rgbaF);
o (gAF, rgbAF);
o (rgbaF, rgb8);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]