xcb_randr_get_crtc_transform(3)
π 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 *replywhile 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'sXCB_RANDR_GET_CRTC_TRANSFORM. this field also lives in thexcb_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 π
β¨π¦
π¦ 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