xcb_dri3_buffers_from_pixmap(3)
π xcb_dri3_buffers_from_pixmap π
okay so bestie, you're reading section 3 of the XCB Requests manual, and today's main character is xcb_dri3_buffers_from_pixmap. it's a DRI3 request, it hands you a pixmap's buffers, and honestly? it's giving very "I know what I'm doing" energy. let's get into it π«Ά
β¨ NAME β¨
xcb_dri3_buffers_from_pixmap β
and that's it. that's the whole description. the manpage left it blank, bestie, so I'm not gonna make up lore for it. no cap. π
πΈ SYNOPSIS πΈ
first things first, you gotta pull in the header:
#include <xcb/dri3.h>
π Request function π
here's the vibe β you give it a connection and a pixmap, it gives you back a cookie:
xcb_dri3_buffers_from_pixmap_cookie_t
xcb_dri3_buffers_from_pixmap(xcb_connection_t *conn,
xcb_pixmap_t pixmap);
π¦ Reply datastructure π¦
and this is the lil struct that comes back at you. look at all these fields, she's stacked:
typedef struct xcb_dri3_buffers_from_pixmap_reply_t {
uint8_t response_type;
uint8_t nfd;
uint16_t sequence;
uint32_t length;
uint16_t width;
uint16_t height;
uint8_t pad0[4];
uint64_t modifier;
uint8_t depth;
uint8_t bpp;
uint8_t pad1[6];
} xcb_dri3_buffers_from_pixmap_reply_t;
π Reply function π
and this is the function that actually goes and fetches the reply for you:
xcb_dri3_buffers_from_pixmap_reply_t
*xcb_dri3_buffers_from_pixmap_reply(xcb_connection_t *conn,
xcb_dri3_buffers_from_pixmap_cookie_t cookie,
xcb_generic_error_t **e);
π Reply accessors π
the accessor girlies, in order, exactly as they come. these are your little grabby hands into the reply data:
uint32_t *xcb_dri3_buffers_from_pixmap_strides(const
xcb_dri3_buffers_from_pixmap_request_t *reply);
int xcb_dri3_buffers_from_pixmap_strides_length(const
xcb_dri3_buffers_from_pixmap_reply_t *reply);
xcb_generic_iterator_t xcb_dri3_buffers_from_pixmap_strides_end(const
xcb_dri3_buffers_from_pixmap_reply_t *reply);
uint32_t *xcb_dri3_buffers_from_pixmap_offsets(const
xcb_dri3_buffers_from_pixmap_request_t *reply);
int xcb_dri3_buffers_from_pixmap_offsets_length(const
xcb_dri3_buffers_from_pixmap_reply_t *reply);
xcb_generic_iterator_t xcb_dri3_buffers_from_pixmap_offsets_end(const
xcb_dri3_buffers_from_pixmap_reply_t *reply);
int32_t *xcb_dri3_buffers_from_pixmap_buffers(const
xcb_dri3_buffers_from_pixmap_request_t *reply);
int xcb_dri3_buffers_from_pixmap_buffers_length(const
xcb_dri3_buffers_from_pixmap_reply_t *reply);
xcb_generic_iterator_t xcb_dri3_buffers_from_pixmap_buffers_end(const
xcb_dri3_buffers_from_pixmap_reply_t *reply);
π REQUEST ARGUMENTS π
connβ your XCB connection to X11. the whole reason any of this works, honestly.pixmapβ TODO: NOT YET DOCUMENTED. yeah bestie, the manpage really said "we'll fill this in later" and then never did π
π§ REPLY FIELDS π§
response_typeβ the type of this reply, which in this case isXCB_DRI3_BUFFERS_FROM_PIXMAP. it also lives in thexcb_generic_reply_t, so you can use it to tell your replies apart from each other. very "how do you know which twin is which" of it β¨sequenceβ the sequence number of the last request processed by the X11 server.lengthβ the length of the reply, in words (a word is 4 bytes, keep that in your pocket).nfdβ TODO: NOT YET DOCUMENTED.widthβ TODO: NOT YET DOCUMENTED.heightβ TODO: NOT YET DOCUMENTED.modifierβ TODO: NOT YET DOCUMENTED.depthβ TODO: NOT YET DOCUMENTED.bppβ TODO: NOT YET DOCUMENTED.
π DESCRIPTION π
bestie. there is literally nothing here. the DESCRIPTION section is empty. not me opening the door and finding an empty room π
π RETURN VALUE π
it hands you back an xcb_dri3_buffers_from_pixmap_cookie_t. errors? you have to handle those yourself when you call the reply function xcb_dri3_buffers_from_pixmap_reply.
and if you'd rather catch errors in the event loop instead of right there in the moment, use xcb_dri3_buffers_from_pixmap_unchecked. see xcb-requests(3) for the details. periodt π
π ERRORS π
this request does never generate any errors. iconic behaviour, honestly. no drama, no chaos, just vibes πΈ
β SEE ALSO β
...it's empty. nothing linked. no besties referenced. that's the whole section π¦
π AUTHOR π
Generated from dri3.xml. Contact xcb@lists.freedesktop.org for corrections and improvements.
and that's the whole page, bestie! π«Ά this one came from X Version 11, libxcb 1.17.0, section 3 of the XCB Requests manual β so go forth and pull those buffers, you absolute main character. slay β¨ππ
π¦ where this page comes from
- alpine 3.22: libxcb-doc 1.17.0-r0 Β· MIT
- alpine 3.23: libxcb-doc 1.17.0-r1 Β· MIT
- alpine 3.24: libxcb-doc 1.17.0-r2 Β· MIT
- arch rolling: libxcb 1.17.0-1 Β· X11
- centos-stream 10: libxcb-devel 1.17.0-3.el10 Β· X11
- debian trixie: libxcb-doc 1.17.0-2
- fedora 43: libxcb-devel 1.17.0-6.fc43 Β· X11
- fedora 43: libxcb-devel 1.17.0-6.fc43 Β· X11
- fedora 44: libxcb-devel 1.17.0-7.fc44 Β· X11
- fedora 44: libxcb-devel 1.17.0-7.fc44 Β· X11
- nixpkgs unstable: libxcb 1.17.0
- opensuse-leap 16.0: libxcb-devel-doc 1.17.0-160000.2.2 Β· MIT
- ubuntu questing: libxcb-doc 1.17.0-2build1
- ubuntu resolute: libxcb-doc 1.17.0-2ubuntu1
- ubuntu stonking: libxcb-doc 1.17.0-2ubuntu1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms