4 #include <libds/util/box.h>
7 test_box_transform(void)
9 const int width = 800, height = 600;
10 struct ds_box src = { 10, 20, 300, 400 };
11 struct ds_box transform90 = { 180, 10, 400, 300 },
12 transform180 = { 490, 180, 300, 400 },
13 transform270 = { 20, 490, 400, 300 },
14 transform_flipped = { 490, 20, 300, 400 },
15 transform_flipped90 = { 20, 10, 400, 300 },
16 transform_flipped180 = { 10, 180, 300, 400 },
17 transform_flipped270 = { 180, 490, 400, 300 };
20 ds_box_transform(&result, &src, WL_OUTPUT_TRANSFORM_NORMAL, width, height);
21 assert(memcmp(&result, &src, sizeof(struct ds_box)) == 0);
23 ds_box_transform(&result, &src, WL_OUTPUT_TRANSFORM_90, width, height);
24 assert(memcmp(&result, &transform90, sizeof(struct ds_box)) == 0);
26 ds_box_transform(&result, &src, WL_OUTPUT_TRANSFORM_180, width, height);
27 assert(memcmp(&result, &transform180, sizeof(struct ds_box)) == 0);
29 ds_box_transform(&result, &src, WL_OUTPUT_TRANSFORM_270, width, height);
30 assert(memcmp(&result, &transform270, sizeof(struct ds_box)) == 0);
32 ds_box_transform(&result, &src, WL_OUTPUT_TRANSFORM_FLIPPED, width, height);
33 assert(memcmp(&result, &transform_flipped, sizeof(struct ds_box)) == 0);
35 ds_box_transform(&result, &src, WL_OUTPUT_TRANSFORM_FLIPPED_90, width, height);
36 assert(memcmp(&result, &transform_flipped90, sizeof(struct ds_box)) == 0);
38 ds_box_transform(&result, &src, WL_OUTPUT_TRANSFORM_FLIPPED_180, width, height);
39 assert(memcmp(&result, &transform_flipped180, sizeof(struct ds_box)) == 0);
41 ds_box_transform(&result, &src, WL_OUTPUT_TRANSFORM_FLIPPED_270, width, height);
42 assert(memcmp(&result, &transform_flipped270, sizeof(struct ds_box)) == 0);
46 test_fbox_transform(void)
48 const int width = 800, height = 600;
49 struct ds_fbox src = { 10.0, 20.0, 300.0, 400.0 };
50 struct ds_fbox transform90 = { 180.0, 10.0, 400.0, 300.0 },
51 transform180 = { 490.0, 180.0, 300.0, 400.0 },
52 transform270 = { 20.0, 490.0, 400.0, 300.0 },
53 transform_flipped = { 490.0, 20.0, 300.0, 400.0 },
54 transform_flipped90 = { 20.0, 10.0, 400.0, 300.0 },
55 transform_flipped180 = { 10.0, 180.0, 300.0, 400.0 },
56 transform_flipped270 = { 180.0, 490.0, 400.0, 300.0 };
57 struct ds_fbox result;
59 ds_fbox_transform(&result, &src, WL_OUTPUT_TRANSFORM_NORMAL, width, height);
60 assert(memcmp(&result, &src, sizeof(struct ds_box)) == 0);
62 ds_fbox_transform(&result, &src, WL_OUTPUT_TRANSFORM_90, width, height);
63 assert(memcmp(&result, &transform90, sizeof(struct ds_box)) == 0);
65 ds_fbox_transform(&result, &src, WL_OUTPUT_TRANSFORM_180, width, height);
66 assert(memcmp(&result, &transform180, sizeof(struct ds_box)) == 0);
68 ds_fbox_transform(&result, &src, WL_OUTPUT_TRANSFORM_270, width, height);
69 assert(memcmp(&result, &transform270, sizeof(struct ds_box)) == 0);
71 ds_fbox_transform(&result, &src, WL_OUTPUT_TRANSFORM_FLIPPED, width, height);
72 assert(memcmp(&result, &transform_flipped, sizeof(struct ds_box)) == 0);
74 ds_fbox_transform(&result, &src, WL_OUTPUT_TRANSFORM_FLIPPED_90, width, height);
75 assert(memcmp(&result, &transform_flipped90, sizeof(struct ds_box)) == 0);
77 ds_fbox_transform(&result, &src, WL_OUTPUT_TRANSFORM_FLIPPED_180, width, height);
78 assert(memcmp(&result, &transform_flipped180, sizeof(struct ds_box)) == 0);
80 ds_fbox_transform(&result, &src, WL_OUTPUT_TRANSFORM_FLIPPED_270, width, height);
81 assert(memcmp(&result, &transform_flipped270, sizeof(struct ds_box)) == 0);
85 main(int argc, char *argv[])
88 test_fbox_transform();