XCB_GLX_GET_CONVOLUTION_FILTER_REPLY(3)
๐ xcb_glx_get_convolution_filter ๐
okay bestie, welcome to the manual page for xcb_glx_get_convolution_filter, part of the XCB family (that's the X protocol C binding situation, from the libxcb era of X Version 11). she's a GLX request, she's lowkey mysterious (the docs literally say NOT YET DOCUMENTED a bunch, we'll get there), and she's here to ask the X server for a convolution filter. let's go ๐ฆ
โจ NAME โจ
xcb_glx_get_convolution_filter โ yes, that's the whole name section. the original manpage gave us a dash and nothing else, and honestly? iconic minimalism. ๐
๐ธ SYNOPSIS ๐ธ
first up, the include. you need this or nothing works:
#include <xcb/glx.h>
๐ Request function
xcb_glx_get_convolution_filter_cookie_t
xcb_glx_get_convolution_filter(xcb_connection_t *conn,
xcb_glx_context_tag_t context_tag, uint32_t target,
uint32_t format, uint32_t type, uint8_t swap_bytes);
she hands you back a cookie, bestie. a cookie. we love an async queen.
๐ซถ Reply datastructure
typedef struct xcb_glx_get_convolution_filter_reply_t {
uint8_t response_type;
uint8_t pad0;
uint16_t sequence;
uint32_t length;
uint8_t pad1[8];
int32_t width;
int32_t height;
uint8_t pad2[8];
} xcb_glx_get_convolution_filter_reply_t;
look at those pad fields. they're just vibing there, taking up space, doing nothing. main character energy fr fr โจ
๐ Reply function
xcb_glx_get_convolution_filter_reply_t
*xcb_glx_get_convolution_filter_reply(xcb_connection_t *conn,
xcb_glx_get_convolution_filter_cookie_t cookie,
xcb_generic_error_t **e);
this is where you trade in your cookie for the actual reply. and yes, the e is for error โ we'll talk about that in RETURN VALUE, don't skip ahead ๐
๐ Reply accessors
these are your lil helpers for getting at the data:
uint8_t *xcb_glx_get_convolution_filter_data(const
xcb_glx_get_convolution_filter_request_t *reply);
int xcb_glx_get_convolution_filter_data_length(const
xcb_glx_get_convolution_filter_reply_t *reply);
xcb_generic_iterator_t xcb_glx_get_convolution_filter_data_end(const
xcb_glx_get_convolution_filter_reply_t *reply);
one gives you the data pointer, one gives you the length, one gives you the end iterator. the holy trinity of "where does this array end" ๐ (also, yes, the first one takes a request_t while the other two take a reply_t โ that's exactly what the original says, so we're keeping it exactly like that, no cap.)
๐ง REQUEST ARGUMENTS ๐ง
connโ the XCB connection to X11. your lil phone line to the server, basically.context_tagโ TODO: NOT YET DOCUMENTED. yeah. the manpage just says that. we're all just out here guessing together. ๐ซtargetโ TODO: NOT YET DOCUMENTED.formatโ TODO: NOT YET DOCUMENTED.typeโ TODO: NOT YET DOCUMENTED.swap_bytesโ TODO: NOT YET DOCUMENTED.
not me listing five arguments and four of them being "TODO: NOT YET DOCUMENTED". the original really said "figure it out bestie" and honestly? respect. ๐ญ
โญ REPLY FIELDS โญ
response_typeโ the type of this reply, which in this case isXCB_GLX_GET_CONVOLUTION_FILTER. this field also lives in thexcb_generic_reply_t, so you can use it to tell your replies apart from each other. it's the "which one of y'all is this" field ๐sequenceโ the sequence number of the last request processed by the X11 server. it's like a receipt number for your request.lengthโ the length of the reply, in words (and a word is 4 bytes, so do that math ๐งฎ).widthโ TODO: NOT YET DOCUMENTED.heightโ TODO: NOT YET DOCUMENTED.
๐ฅ DESCRIPTION ๐ฅ
okay so the DESCRIPTION section of the original is... empty. like, completely empty. a whole heading with nothing under it. it's giving "I have no notes" energy. so here we are, matching that exactly. ๐
๐ RETURN VALUE ๐
Returns an xcb_glx_get_convolution_filter_cookie_t. Errors have to be handled when you call the reply function, xcb_glx_get_convolution_filter_reply.
If you'd rather handle errors in the event loop instead, use xcb_glx_get_convolution_filter_unchecked. See xcb-requests(3) for the details. pick your fighter, both are valid ๐ซถ
๐ ERRORS ๐
This request does never generate any errors. periodt. she's a good girl, no drama, no error codes, nothing. we love a low-maintenance request. โจ
๐ SEE ALSO ๐
...the original didn't list anything here. truly a "no thoughts, head empty" moment. so there's nothing to see. bye bestie ๐ฆ
๐ AUTHOR ๐
Generated from glx.xml. Contact xcb@lists.freedesktop.org for corrections and improvements.
and that's the whole page! footer deets for the record: this is X Version 11, libxcb 1.17.0, and the manual name is xcb_glx_get_convolution_filter(3). now go forth and get that convolution filter, bestie ๐๐
๐ฆ 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