[Spice-devel] [PATCH spice-common 5/6] quic: Make the template identical
Frediano Ziglio
fziglio at redhat.com
Thu Jun 28 13:23:25 UTC 2018
Define and reuse a COPY_PIXEL macro to copy a pixel.
After this commit the 2 template files are exactly the same.
Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
---
common/quic_rgb_tmpl.c | 11 ++++++++---
common/quic_tmpl.c | 9 ++++++++-
2 files changed, 16 insertions(+), 4 deletions(-)
diff --git a/common/quic_rgb_tmpl.c b/common/quic_rgb_tmpl.c
index ca735c1..b300836 100644
--- a/common/quic_rgb_tmpl.c
+++ b/common/quic_rgb_tmpl.c
@@ -28,6 +28,8 @@
# define SET_a(pix, val) ((pix)->a = val)
# define GET_a(pix) ((pix)->a)
# define SAME_PIXEL(p1, p2) (GET_a(p1) == GET_a(p2))
+# define COPY_PIXEL(dest, src) \
+ SET_a(dest, GET_a(src));
# define DECLARE_STATE_VARIABLES \
CommonState *state = &channel_a->state
# define DECLARE_CHANNEL_VARIABLES \
@@ -40,6 +42,10 @@
# define SAME_PIXEL(p1, p2) \
(GET_r(p1) == GET_r(p2) && GET_g(p1) == GET_g(p2) && \
GET_b(p1) == GET_b(p2))
+# define COPY_PIXEL(dest, src) \
+ SET_r(dest, GET_r(src)); \
+ SET_g(dest, GET_g(src)); \
+ SET_b(dest, GET_b(src))
# define DECLARE_STATE_VARIABLES \
CommonState *state = &encoder->rgb_state
# define DECLARE_CHANNEL_VARIABLES \
@@ -572,9 +578,7 @@ do_run:
for (; i < run_end; i++) {
UNCOMPRESS_PIX_START(&cur_row[i]);
- SET_r(&cur_row[i], GET_r(&cur_row[i - 1]));
- SET_g(&cur_row[i], GET_g(&cur_row[i - 1]));
- SET_b(&cur_row[i], GET_b(&cur_row[i - 1]));
+ COPY_PIXEL(&cur_row[i], &cur_row[i - 1]);
}
if (i == end) {
@@ -662,3 +666,4 @@ static void FNAME(uncompress_row)(Encoder *encoder, CHANNEL_ARG_
#undef APPLY_ALL_COMP
#undef DECLARE_STATE_VARIABLES
#undef DECLARE_CHANNEL_VARIABLES
+#undef COPY_PIXEL
diff --git a/common/quic_tmpl.c b/common/quic_tmpl.c
index 513a0c6..6945912 100644
--- a/common/quic_tmpl.c
+++ b/common/quic_tmpl.c
@@ -28,6 +28,8 @@
# define SET_a(pix, val) ((pix)->a = val)
# define GET_a(pix) ((pix)->a)
# define SAME_PIXEL(p1, p2) (GET_a(p1) == GET_a(p2))
+# define COPY_PIXEL(dest, src) \
+ SET_a(dest, GET_a(src));
# define DECLARE_STATE_VARIABLES \
CommonState *state = &channel_a->state
# define DECLARE_CHANNEL_VARIABLES \
@@ -40,6 +42,10 @@
# define SAME_PIXEL(p1, p2) \
(GET_r(p1) == GET_r(p2) && GET_g(p1) == GET_g(p2) && \
GET_b(p1) == GET_b(p2))
+# define COPY_PIXEL(dest, src) \
+ SET_r(dest, GET_r(src)); \
+ SET_g(dest, GET_g(src)); \
+ SET_b(dest, GET_b(src))
# define DECLARE_STATE_VARIABLES \
CommonState *state = &encoder->rgb_state
# define DECLARE_CHANNEL_VARIABLES \
@@ -572,7 +578,7 @@ do_run:
for (; i < run_end; i++) {
UNCOMPRESS_PIX_START(&cur_row[i]);
- SET_a(&cur_row[i], GET_a(&cur_row[i - 1]));
+ COPY_PIXEL(&cur_row[i], &cur_row[i - 1]);
}
if (i == end) {
@@ -660,3 +666,4 @@ static void FNAME(uncompress_row)(Encoder *encoder, CHANNEL_ARG_
#undef APPLY_ALL_COMP
#undef DECLARE_STATE_VARIABLES
#undef DECLARE_CHANNEL_VARIABLES
+#undef COPY_PIXEL
--
2.17.1
More information about the Spice-devel
mailing list