XCB_GLX_GET_CONVOLUTION_FILTER_DATA(3)

๐Ÿ“ฆ
version 1.17.0 ยท 4 versions
, in alpine 3.22, alpine 3.23, alpine 3.24, arch rolling, centos-stream 10, debian trixie, fedora 43, fedora 44, nixpkgs unstable, opensuse-leap 16.0, ubuntu questing, ubuntu resolute, ubuntu stonking

๐Ÿ’– 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 is XCB_GLX_GET_CONVOLUTION_FILTER. this field also lives in the xcb_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 ๐Ÿ’–๐ŸŽ€