#include #include #include #include Display *display; int screen; Window root, window = 0; Picture picture; XEvent event; int main(int argc, char *argv[]) { display=XOpenDisplay(NULL); int render_event_base, render_error_base; int render_present=XRenderQueryExtension(display, &render_event_base, &render_error_base); screen=DefaultScreen(display); root=DefaultRootWindow(display); int visualCnt; XVisualInfo *visInfos = XGetVisualInfo(display, 0, NULL, &visualCnt); XVisualInfo info; info.screen = XDefaultScreen (display); info.depth = 32; visInfos = XGetVisualInfo (display, VisualScreenMask | VisualDepthMask, &info, &visualCnt); info = visInfos[0]; XSetWindowAttributes winAttr; winAttr.colormap = XCreateColormap(display, root, info.visual, 0); winAttr.border_pixmap = XCreatePixmap(display, root, 1, 1, 32); winAttr.override_redirect = 1; window= XCreateWindow(display, root, 500, 0, 232, 86, 0, 32, InputOutput, info.visual, CWColormap | CWBorderPixmap| CWOverrideRedirect , &winAttr); XSelectInput (display, window, ExposureMask | KeyPressMask | ButtonPressMask); XRenderPictureAttributes pict_attr; XRenderPictFormat *fmt = XRenderFindStandardFormat(display, PictStandardARGB32); picture=XRenderCreatePicture(display, window, fmt, 0, &pict_attr); while(1) { usleep(500000); XFlush(display); XMoveWindow(display, window, rand()%1200, rand()%800); XResizeWindow(display, window, rand()%200, rand()%200); XMapWindow(display, window); XFlush(display); XRenderColor color_yellow={.red=0xffff, .green=0xffff, .blue=0, .alpha=0x0fff}; XRenderFillRectangle(display, PictOpSrc, picture, &color_yellow, 0, 0, 1024, 1024); XFlush(display); usleep(50000); XUnmapWindow(display, window); XFlush(display); } return 0; }