summaryrefslogtreecommitdiffstats
path: root/qemu/pixman/test/check-formats.c
diff options
context:
space:
mode:
Diffstat (limited to 'qemu/pixman/test/check-formats.c')
-rw-r--r--qemu/pixman/test/check-formats.c352
1 files changed, 0 insertions, 352 deletions
diff --git a/qemu/pixman/test/check-formats.c b/qemu/pixman/test/check-formats.c
deleted file mode 100644
index 7edc198c1..000000000
--- a/qemu/pixman/test/check-formats.c
+++ /dev/null
@@ -1,352 +0,0 @@
-#include <ctype.h>
-#include "utils.h"
-
-static int
-check_op (pixman_op_t op,
- pixman_format_code_t src_format,
- pixman_format_code_t dest_format)
-{
- uint32_t src_alpha_mask, src_green_mask;
- uint32_t dest_alpha_mask, dest_green_mask;
- pixel_checker_t src_checker, dest_checker;
- pixman_image_t *si, *di;
- uint32_t sa, sg, da, dg;
- uint32_t s, d;
- int retval = 0;
-
- pixel_checker_init (&src_checker, src_format);
- pixel_checker_init (&dest_checker, dest_format);
-
- pixel_checker_get_masks (
- &src_checker, &src_alpha_mask, NULL, &src_green_mask, NULL);
- pixel_checker_get_masks (
- &dest_checker, &dest_alpha_mask, NULL, &dest_green_mask, NULL);
-
- /* printf ("masks: %x %x %x %x\n", */
- /* src_alpha_mask, src_green_mask, */
- /* dest_alpha_mask, dest_green_mask); */
-
- si = pixman_image_create_bits (src_format, 1, 1, &s, 4);
- di = pixman_image_create_bits (dest_format, 1, 1, &d, 4);
-
- sa = 0;
- do
- {
- sg = 0;
- do
- {
- da = 0;
- do
- {
- dg = 0;
- do
- {
- color_t src_color, dest_color, result_color;
- uint32_t orig_d;
-
- s = sa | sg;
- d = da | dg;
-
- orig_d = d;
-
- pixel_checker_convert_pixel_to_color (&src_checker, s, &src_color);
- pixel_checker_convert_pixel_to_color (&dest_checker, d, &dest_color);
-
- do_composite (op, &src_color, NULL, &dest_color, &result_color, FALSE);
-
-
- if (!is_little_endian())
- {
- s <<= 32 - PIXMAN_FORMAT_BPP (src_format);
- d <<= 32 - PIXMAN_FORMAT_BPP (dest_format);
- }
-
- pixman_image_composite32 (op, si, NULL, di,
- 0, 0, 0, 0, 0, 0, 1, 1);
-
- if (!is_little_endian())
- d >>= (32 - PIXMAN_FORMAT_BPP (dest_format));
-
- if (!pixel_checker_check (&dest_checker, d, &result_color))
- {
- printf ("---- test failed ----\n");
- printf ("operator: %-32s\n", operator_name (op));
- printf ("source: %-12s pixel: %08x\n", format_name (src_format), s);
- printf ("dest: %-12s pixel: %08x\n", format_name (dest_format), orig_d);
- printf ("got: %-12s pixel: %08x\n", format_name (dest_format), d);
-
- retval = 1;
- }
-
- dg -= dest_green_mask;
- dg &= dest_green_mask;
- }
- while (dg != 0);
-
- da -= dest_alpha_mask;
- da &= dest_alpha_mask;
- }
- while (da != 0);
-
- sg -= src_green_mask;
- sg &= src_green_mask;
- }
- while (sg != 0);
-
- sa -= src_alpha_mask;
- sa &= src_alpha_mask;
- }
- while (sa != 0);
-
- pixman_image_unref (si);
- pixman_image_unref (di);
-
- return retval;
-}
-
-static const pixman_op_t op_list[] =
-{
- PIXMAN_OP_CLEAR,
- PIXMAN_OP_SRC,
- PIXMAN_OP_DST,
- PIXMAN_OP_OVER,
- PIXMAN_OP_OVER_REVERSE,
- PIXMAN_OP_IN,
- PIXMAN_OP_IN_REVERSE,
- PIXMAN_OP_OUT,
- PIXMAN_OP_OUT_REVERSE,
- PIXMAN_OP_ATOP,
- PIXMAN_OP_ATOP_REVERSE,
- PIXMAN_OP_XOR,
- PIXMAN_OP_ADD,
- PIXMAN_OP_SATURATE,
-
- PIXMAN_OP_DISJOINT_CLEAR,
- PIXMAN_OP_DISJOINT_SRC,
- PIXMAN_OP_DISJOINT_DST,
- PIXMAN_OP_DISJOINT_OVER,
- PIXMAN_OP_DISJOINT_OVER_REVERSE,
- PIXMAN_OP_DISJOINT_IN,
- PIXMAN_OP_DISJOINT_IN_REVERSE,
- PIXMAN_OP_DISJOINT_OUT,
- PIXMAN_OP_DISJOINT_OUT_REVERSE,
- PIXMAN_OP_DISJOINT_ATOP,
- PIXMAN_OP_DISJOINT_ATOP_REVERSE,
- PIXMAN_OP_DISJOINT_XOR,
-
- PIXMAN_OP_CONJOINT_CLEAR,
- PIXMAN_OP_CONJOINT_SRC,
- PIXMAN_OP_CONJOINT_DST,
- PIXMAN_OP_CONJOINT_OVER,
- PIXMAN_OP_CONJOINT_OVER_REVERSE,
- PIXMAN_OP_CONJOINT_IN,
- PIXMAN_OP_CONJOINT_IN_REVERSE,
- PIXMAN_OP_CONJOINT_OUT,
- PIXMAN_OP_CONJOINT_OUT_REVERSE,
- PIXMAN_OP_CONJOINT_ATOP,
- PIXMAN_OP_CONJOINT_ATOP_REVERSE,
- PIXMAN_OP_CONJOINT_XOR,
-};
-
-static const pixman_format_code_t format_list[] =
-{
- PIXMAN_a8r8g8b8,
- PIXMAN_x8r8g8b8,
- PIXMAN_a8b8g8r8,
- PIXMAN_x8b8g8r8,
- PIXMAN_b8g8r8a8,
- PIXMAN_b8g8r8x8,
- PIXMAN_r8g8b8a8,
- PIXMAN_r8g8b8x8,
- PIXMAN_x14r6g6b6,
- PIXMAN_x2r10g10b10,
- PIXMAN_a2r10g10b10,
- PIXMAN_x2b10g10r10,
- PIXMAN_a2b10g10r10,
- PIXMAN_a8r8g8b8_sRGB,
- PIXMAN_r8g8b8,
- PIXMAN_b8g8r8,
- PIXMAN_r5g6b5,
- PIXMAN_b5g6r5,
- PIXMAN_a1r5g5b5,
- PIXMAN_x1r5g5b5,
- PIXMAN_a1b5g5r5,
- PIXMAN_x1b5g5r5,
- PIXMAN_a4r4g4b4,
- PIXMAN_x4r4g4b4,
- PIXMAN_a4b4g4r4,
- PIXMAN_x4b4g4r4,
- PIXMAN_a8,
- PIXMAN_r3g3b2,
- PIXMAN_b2g3r3,
- PIXMAN_a2r2g2b2,
- PIXMAN_a2b2g2r2,
- PIXMAN_x4a4,
- PIXMAN_a4,
- PIXMAN_r1g2b1,
- PIXMAN_b1g2r1,
- PIXMAN_a1r1g1b1,
- PIXMAN_a1b1g1r1,
- PIXMAN_a1,
-};
-
-static pixman_format_code_t
-format_from_string (const char *s)
-{
- int i;
-
- for (i = 0; i < ARRAY_LENGTH (format_list); ++i)
- {
- if (strcasecmp (format_name (format_list[i]), s) == 0)
- return format_list[i];
- }
-
- return PIXMAN_null;
-}
-
-static void
-emit (const char *s, int *n_chars)
-{
- *n_chars += printf ("%s,", s);
- if (*n_chars > 60)
- {
- printf ("\n ");
- *n_chars = 0;
- }
- else
- {
- printf (" ");
- (*n_chars)++;
- }
-}
-
-static void
-list_formats (void)
-{
- int n_chars;
- int i;
-
- printf ("Formats:\n ");
-
- n_chars = 0;
- for (i = 0; i < ARRAY_LENGTH (format_list); ++i)
- emit (format_name (format_list[i]), &n_chars);
-
- printf ("\n\n");
-}
-
-static void
-list_operators (void)
-{
- char short_name [128] = { 0 };
- int i, n_chars;
-
- printf ("Operators:\n ");
-
- n_chars = 0;
- for (i = 0; i < ARRAY_LENGTH (op_list); ++i)
- {
- pixman_op_t op = op_list[i];
- int j;
-
- snprintf (short_name, sizeof (short_name) - 1, "%s",
- operator_name (op) + strlen ("PIXMAN_OP_"));
-
- for (j = 0; short_name[j] != '\0'; ++j)
- short_name[j] = tolower (short_name[j]);
-
- emit (short_name, &n_chars);
- }
-
- printf ("\n\n");
-}
-
-static pixman_op_t
-operator_from_string (const char *s)
-{
- char full_name[128] = { 0 };
- int i;
-
- snprintf (full_name, (sizeof full_name) - 1, "PIXMAN_OP_%s", s);
-
- for (i = 0; i < ARRAY_LENGTH (op_list); ++i)
- {
- pixman_op_t op = op_list[i];
-
- if (strcasecmp (operator_name (op), full_name) == 0)
- return op;
- }
-
- return PIXMAN_OP_NONE;
-}
-
-int
-main (int argc, char **argv)
-{
- enum { OPTION_OP, OPTION_SRC, OPTION_DEST, LAST_OPTION } option;
- pixman_format_code_t src_fmt, dest_fmt;
- pixman_op_t op;
-
- op = PIXMAN_OP_NONE;
- src_fmt = PIXMAN_null;
- dest_fmt = PIXMAN_null;
-
- argc--;
- argv++;
-
- for (option = OPTION_OP; option < LAST_OPTION; ++option)
- {
- char *arg = NULL;
-
- if (argc)
- {
- argc--;
- arg = *argv++;
- }
-
- switch (option)
- {
- case OPTION_OP:
- if (!arg)
- printf (" - missing operator\n");
- else if ((op = operator_from_string (arg)) == PIXMAN_OP_NONE)
- printf (" - unknown operator %s\n", arg);
- break;
-
- case OPTION_SRC:
- if (!arg)
- printf (" - missing source format\n");
- else if ((src_fmt = format_from_string (arg)) == PIXMAN_null)
- printf (" - unknown source format %s\n", arg);
- break;
-
- case OPTION_DEST:
- if (!arg)
- printf (" - missing destination format\n");
- else if ((dest_fmt = format_from_string (arg)) == PIXMAN_null)
- printf (" - unknown destination format %s\n", arg);
- break;
-
- default:
- assert (0);
- break;
- }
- }
-
- while (argc--)
- {
- op = PIXMAN_OP_NONE;
- printf (" - unexpected argument: %s\n", *argv++);
- }
-
- if (op == PIXMAN_OP_NONE || src_fmt == PIXMAN_null || dest_fmt == PIXMAN_null)
- {
- printf ("\nUsage:\n check-formats <operator> <src-format> <dest-format>\n\n");
- list_operators();
- list_formats();
-
- return -1;
- }
-
- return check_op (op, src_fmt, dest_fmt);
-}