rendered paste body//ORIGIONAL XLIB CODE
Pixmap
mb_util_get_root_pixmap(Display *dpy)
{
Pixmap root_pxm = None;
Atom atom_root_pixmap_id = XInternAtom(dpy, "_XROOTPMAP_ID", False);
Atom type;
int format;
Pixmap *data = NULL;
unsigned long n_items, bytes_after;
int result;
result = XGetWindowProperty (dpy, RootWindow(dpy, DefaultScreen(dpy)),
atom_root_pixmap_id,
0, 16L,
False, XA_PIXMAP,
&type, &format, &n_items,
&bytes_after, (unsigned char **)&data);
if (result == Success && n_items)
root_pxm = *data;
if (data) XFree(data);
return root_pxm;
}
//MY XCB CODE:
void getRootPixmap(){
xcb_intern_atom_cookie_t cookie_atom = xcb_intern_atom(conn, 0, 13, "_XROOTPMAP_ID");
xcb_intern_atom_reply_t* r_atom = xcb_intern_atom_reply (conn, cookie_atom, null);
if (!r_atom) writefln("Failure on atoms");
xcb_get_property_cookie_t cookie_prop = xcb_get_property(conn, 0, root.id, r_atom.atom, PIXMAP, 0, 16L);
xcb_get_property_reply_t* r_prop = xcb_get_property_reply(conn, cookie_prop, null);
if (!r_prop) {
free (r_atom);
writefln("Failure2 on atoms");
}
xcb_pixmap_t pid =*cast(xcb_pixmap_t *)xcb_get_property_value(r_prop);
free (r_atom);
free (r_prop);
writefln(pid);
rootPixmap = new Image(pid);
}