* Framebuffer format conversion routines.
*/
-# define SKIP_PIXEL(to) to += deststep
+# define SKIP_PIXEL(to) do { to += deststep; } while (0)
# define COPY_PIXEL(to, from) \
do { \
*(uint32_t *) to = from; \
data >>= 5;
r = (data & 0x1f) << 3;
data >>= 5;
- if (data & 1)
+ if (data & 1) {
SKIP_PIXEL(dest);
- else
+ } else {
COPY_PIXEL(dest, rgb_to_pixel32(r, g, b));
+ }
data >>= 1;
b = (data & 0x1f) << 3;
data >>= 5;
data >>= 5;
r = (data & 0x1f) << 3;
data >>= 5;
- if (data & 1)
+ if (data & 1) {
SKIP_PIXEL(dest);
- else
+ } else {
COPY_PIXEL(dest, rgb_to_pixel32(r, g, b));
+ }
width -= 2;
src += 4;
}
data >>= 6;
r = (data & 0x3f) << 2;
data >>= 6;
- if (data & 1)
+ if (data & 1) {
SKIP_PIXEL(dest);
- else
+ } else {
COPY_PIXEL(dest, rgb_to_pixel32(r, g, b));
+ }
width -= 1;
src += 4;
}
data[0] >>= 6;
r = (data[0] & 0x3f) << 2;
data[0] >>= 6;
- if (data[0] & 1)
+ if (data[0] & 1) {
SKIP_PIXEL(dest);
- else
+ } else {
COPY_PIXEL(dest, rgb_to_pixel32(r, g, b));
+ }
data[0] >>= 6;
b = (data[0] & 0x3f) << 2;
data[0] >>= 6;
data[1] >>= 4;
r = (data[1] & 0x3f) << 2;
data[1] >>= 6;
- if (data[1] & 1)
+ if (data[1] & 1) {
SKIP_PIXEL(dest);
- else
+ } else {
COPY_PIXEL(dest, rgb_to_pixel32(r, g, b));
+ }
data[1] >>= 6;
b = (data[1] & 0x3f) << 2;
data[1] >>= 6;
data[1] >>= 6;
r = ((data[2] & 0x3) << 6) | (data[1] << 2);
data[2] >>= 2;
- if (data[2] & 1)
+ if (data[2] & 1) {
SKIP_PIXEL(dest);
- else
+ } else {
COPY_PIXEL(dest, rgb_to_pixel32(r, g, b));
+ }
data[2] >>= 6;
b = (data[2] & 0x3f) << 2;
data[2] >>= 6;
data[2] >>= 6;
r = data[2] << 2;
data[2] >>= 6;
- if (data[2] & 1)
+ if (data[2] & 1) {
SKIP_PIXEL(dest);
- else
+ } else {
COPY_PIXEL(dest, rgb_to_pixel32(r, g, b));
+ }
width -= 4;
}
}
data >>= 8;
r = data & 0xff;
data >>= 8;
- if (data & 1)
+ if (data & 1) {
SKIP_PIXEL(dest);
- else
+ } else {
COPY_PIXEL(dest, rgb_to_pixel32(r, g, b));
+ }
width -= 1;
src += 4;
}
data >>= 8;
r = data & 0xff;
data >>= 8;
- if (data & 1)
+ if (data & 1) {
SKIP_PIXEL(dest);
- else
+ } else {
COPY_PIXEL(dest, rgb_to_pixel32(r, g, b));
+ }
width -= 1;
src += 4;
}