xcb_randr_get_crtc_transform(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_randr_get_crtc_transform πŸ’…

okay bestie, welcome to the xcb_randr_get_crtc_transform(3) page β€” it's an XCB Requests moment, and it's giving "I ask the X server what transform my CRTC is doing". pull up a chair 🫢


✨ NAME ✨

xcb_randr_get_crtc_transform β€” and bestie, that's it. the description slot is literally just a dash. iconic minimalism, no notes πŸ’€


✨ SYNOPSIS ✨

first up, the include, because we always start with the include:

#include <xcb/randr.h>

πŸŽ€ Request function

xcb_randr_get_crtc_transform_cookie_t
       xcb_randr_get_crtc_transform(xcb_connection_t *conn,
       xcb_randr_crtc_t crtc);

πŸŽ€ Reply datastructure

typedef struct xcb_randr_get_crtc_transform_reply_t {
    uint8_t                response_type;
    uint8_t                pad0;
    uint16_t               sequence;
    uint32_t               length;
    xcb_render_transform_t pending_transform;
    uint8_t                has_transforms;
    uint8_t                pad1[3];
    xcb_render_transform_t current_transform;
    uint8_t                pad2[4];
    uint16_t               pending_len;
    uint16_t               pending_nparams;
    uint16_t               current_len;
    uint16_t               current_nparams;
} xcb_randr_get_crtc_transform_reply_t;

πŸŽ€ Reply function

xcb_randr_get_crtc_transform_reply_t
       *xcb_randr_get_crtc_transform_reply(xcb_connection_t *conn,
       xcb_randr_get_crtc_transform_cookie_t cookie,
       xcb_generic_error_t **e);

πŸŽ€ Reply accessors

bestie these accessors are the little helpers that pull the interesting bits out of the reply. here's the whole squad, exactly as they come, line wraps and all ✨

char *xcb_randr_get_crtc_transform_pending_filter_name(const
       xcb_randr_get_crtc_transform_request_t *reply);

int xcb_randr_get_crtc_transform_pending_filter_name_length(const
       xcb_randr_get_crtc_transform_reply_t *reply);

xcb_generic_iterator_t
       xcb_randr_get_crtc_transform_pending_filter_name_end(const
       xcb_randr_get_crtc_transform_reply_t *reply); uint8_t
       *xcb_randr_get_crtc_transform_pad_3 (const
       xcb_randr_get_crtc_transform_request_t *reply)

xcb_render_fixed_t *xcb_randr_get_crtc_transform_pending_params(const
       xcb_randr_get_crtc_transform_request_t *reply);

int xcb_randr_get_crtc_transform_pending_params_length(const
       xcb_randr_get_crtc_transform_reply_t *reply);

xcb_generic_iterator_t
       xcb_randr_get_crtc_transform_pending_params_end(const
       xcb_randr_get_crtc_transform_reply_t *reply);

char *xcb_randr_get_crtc_transform_current_filter_name(const
       xcb_randr_get_crtc_transform_request_t *reply);

int xcb_randr_get_crtc_transform_current_filter_name_length(const
       xcb_randr_get_crtc_transform_reply_t *reply);

xcb_generic_iterator_t
       xcb_randr_get_crtc_transform_current_filter_name_end(const
       xcb_randr_get_crtc_transform_reply_t *reply); uint8_t
       *xcb_randr_get_crtc_transform_pad_4 (const
       xcb_randr_get_crtc_transform_request_t *reply)

xcb_render_fixed_t *xcb_randr_get_crtc_transform_current_params(const
       xcb_randr_get_crtc_transform_request_t *reply);

int xcb_randr_get_crtc_transform_current_params_length(const
       xcb_randr_get_crtc_transform_reply_t *reply);

xcb_generic_iterator_t
       xcb_randr_get_crtc_transform_current_params_end(const
       xcb_randr_get_crtc_transform_reply_t *reply);
not me noticing some of those take a _request_t *reply while the length ones take a _reply_t *reply πŸ‘€ that's literally how it's written in the source, so we keep it exactly, no cap.

🌸 REQUEST ARGUMENTS 🌸

  • conn β€” the XCB connection to X11. your lil lifeline to the server, mwah πŸ’–
  • crtc β€” TODO: NOT YET DOCUMENTED. yeah bestie, the docs simply did not show up. we report, we don't speculate πŸ™ˆ

πŸ¦‹ REPLY FIELDS πŸ¦‹

  • response_type β€” the type of this reply, and in this case it's XCB_RANDR_GET_CRTC_TRANSFORM. this field also lives in the xcb_generic_reply_t, and it's literally how you tell replies apart from each other. your lil name tag πŸ’…
  • sequence β€” the sequence number of the last request the X11 server processed. the receipts, basically 🧾
  • length β€” the length of the reply, in words (and a word is 4 bytes, periodt).
  • pending_transform β€” TODO: NOT YET DOCUMENTED.
  • has_transforms β€” TODO: NOT YET DOCUMENTED.
  • current_transform β€” TODO: NOT YET DOCUMENTED.
  • pending_len β€” TODO: NOT YET DOCUMENTED.
  • pending_nparams β€” TODO: NOT YET DOCUMENTED.
  • current_len β€” TODO: NOT YET DOCUMENTED.
  • current_nparams β€” TODO: NOT YET DOCUMENTED.
a whole row of TODOs, and honestly? the mystery is the moment ✨

🌈 DESCRIPTION 🌈

this section is empty in the original, bestie. nothing. a void. the description is not description-ing 😭


⭐ RETURN VALUE ⭐

Returns an xcb_randr_get_crtc_transform_cookie_t. πŸͺ

and here's the important part β€” errors have to be handled when you call the reply function xcb_randr_get_crtc_transform_reply.

but if you'd rather handle errors in the event loop instead? use xcb_randr_get_crtc_transform_unchecked. see xcb-requests(3) for the details. pick your lane, both are valid 🫢


πŸ’€ ERRORS πŸ’€

This request does never generate any errors.

yup. zero. none. she's unproblematic, she's the main character, she does not start drama πŸ”₯


πŸ‘‘ SEE ALSO πŸ‘‘

empty in the original β€” so there's nothing to link, bestie. just vibes 🌸


πŸ’œ AUTHOR πŸ’œ

Generated from randr.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, dated right there alongside xcb_randr_get_crtc_transform(3) in the footer. go forth, get those CRTC transforms, slay πŸ’…βœ¨πŸ¦‹