10 const char *test_target_name(enum target target)
14 case ROOT: return "root";
15 case CHILD: return "child";
16 case PIXMAP: return "pixmap";
20 void test_target_create_render(struct test_display *dpy,
22 struct test_target *tt)
24 XSetWindowAttributes attr;
31 tt->format = dpy->format;
32 tt->width = dpy->width;
33 tt->height = dpy->height;
40 attr.override_redirect = 1;
43 tt->draw = XCreateWindow(dpy->dpy, tt->draw,
44 dpy->width/2, dpy->height/2,
45 tt->width, tt->height,
48 DefaultVisual(dpy->dpy,
49 DefaultScreen(dpy->dpy)),
50 CWOverrideRedirect, &attr);
51 XMapWindow(dpy->dpy, tt->draw);
55 tt->format = XRenderFindStandardFormat(dpy->dpy, PictStandardARGB32);
56 tt->draw = XCreatePixmap(dpy->dpy, tt->draw,
57 dpy->width, dpy->height,
63 XRenderCreatePicture(dpy->dpy, tt->draw, tt->format, 0, NULL);
65 gcv.graphics_exposures = 0;
66 tt->gc = XCreateGC(dpy->dpy, tt->draw, GCGraphicsExposures, &gcv);
69 void test_target_destroy_render(struct test_display *dpy,
70 struct test_target *tt)
72 XRenderFreePicture(dpy->dpy, tt->picture);
77 XDestroyWindow(dpy->dpy, tt->draw);
80 XFreePixmap(dpy->dpy, tt->draw);
86 static int random_bool(void)
88 return rand() > RAND_MAX/2;
91 static Picture create_alpha_map(void)
96 static Pixmap create_clip_mask(void)
101 unsigned int test_render_randomize_picture_attributes(XRenderPictureAttributes *pa)
103 unsigned int flags = 0;
105 memset(pa, 0, sizeof(*pa));
108 pa->repeat = repeat_modes[rand() % ARRAY_SIZE(repeat_modes)];
114 pa->alpha_map = create_alpha_map();
115 pa->alpha_x_origin = rand() % 1024;
116 pa->alpha_y_origin = rand() % 1024;
121 pa->clip_mask = create_clip_mask();
122 pa->clip_x_orgin = rand() % 1024;
123 pa->clip_y_orgin = rand() % 1024;
128 pa->subwindow_mode = random_bool();
129 flags |= CPSubwindowMode;
133 pa->poly_edge = random_bool();
138 pa->poly_mode = random_bool();
143 pa->component_alpha = random_bool();
144 flags |= CPComponentAlpha;