wayland::output_transform(3)

πŸ’– wayland::output_transform β€” from the wayland manual, section 3 (library calls) πŸ’–

okay bestie, say hi to wayland::output_transform β€” it's a transform that maps from framebuffer to output, and it's genuinely iconic. it lives in the Wayland++ C++ bindings and it's basically the "which way is up" enum of your dreams. let's get into it πŸ¦‹


✨ NAME ✨

wayland::output_transform β€” transform from framebuffer to output


✨ SYNOPSIS ✨

first you gotta pull the whole thing in, no cap:

#include <wayland-client-protocol.hpp>

🌸 Static Public Attributes 🌸

every single one of these is a static const wayland::detail::bitfield< 3, 21 >, and every single one is precious:

  • normal {0} β€” no transform 🫢
  • _90 {1} β€” 90 degrees counter-clockwise
  • _180 {2} β€” 180 degrees counter-clockwise
  • _270 {3} β€” 270 degrees counter-clockwise
  • flipped {4} β€” 180 degree flip around a vertical axis
  • flipped_90 {5} β€” flip and rotate 90 degrees counter-clockwise
  • flipped_180 {6} β€” flip and rotate 180 degrees counter-clockwise
  • flipped_270 {7} β€” flip and rotate 270 degrees counter-clockwise

✨ Detailed Description ✨

so like. transform from framebuffer to output. that's the whole vibe.

This describes the transform that a compositor will apply to a surface to compensate for the rotation or mirroring of an output device. (your monitor is sideways, the compositor is doing the emotional labor)

The flipped values correspond to an initial flip around a vertical axis followed by rotation. so it's flip first, then spin. not the other way. the order is the moment. πŸ’…

The purpose is mainly to allow clients to render accordingly and tell the compositor, so that for fullscreen surfaces, the compositor will still be able to scan out directly from client surfaces. translation: everybody agrees on the orientation so the fast path stays fast. πŸ”₯

Definition at line 3735 of file wayland-client-protocol.hpp.

✨ Member Data Documentation ✨

listing these in the exact same order the original gave them, because we do not skip, we do not merge, we do not reorder. periodt.

  • const bitfield< 3, 21 > output_transform::_180 {2} [static] β€” 180 degrees counter-clockwise Definition at line 3746 of file wayland-client-protocol.hpp.
  • const bitfield< 3, 21 > output_transform::_270 {3} [static] β€” 270 degrees counter-clockwise Definition at line 3748 of file wayland-client-protocol.hpp.
  • const bitfield< 3, 21 > output_transform::_90 {1} [static] β€” 90 degrees counter-clockwise Definition at line 3744 of file wayland-client-protocol.hpp.
  • const bitfield< 3, 21 > output_transform::flipped {4} [static] β€” 180 degree flip around a vertical axis Definition at line 3750 of file wayland-client-protocol.hpp.
  • const bitfield< 3, 21 > output_transform::flipped_180 {6} [static] β€” flip and rotate 180 degrees counter-clockwise Definition at line 3754 of file wayland-client-protocol.hpp.
  • const bitfield< 3, 21 > output_transform::flipped_270 {7} [static] β€” flip and rotate 270 degrees counter-clockwise Definition at line 3756 of file wayland-client-protocol.hpp.
  • const bitfield< 3, 21 > output_transform::flipped_90 {5} [static] β€” flip and rotate 90 degrees counter-clockwise Definition at line 3752 of file wayland-client-protocol.hpp.
  • const bitfield< 3, 21 > output_transform::normal {0} [static] β€” no transform Definition at line 3742 of file wayland-client-protocol.hpp.

notice how _90 sits after _270 in the docs and flipped_90 sits after flipped_270? that's alphabetical-by-string energy, not numeric energy. we respect it. we don't "fix" it. πŸ™ˆ


✨ Author ✨

Generated automatically by Doxygen for Wayland++ from the source code. (not me, bestie β€” Doxygen did that. I just gave it a glow-up.) 🧚


okay and for the cute sign-off: this is Version 1.0.1, dated Fri Mar 27 2026 13:15:0 β€” yeah the seconds got clipped in the footer, that's just how it rendered, and we are not editing the sacred text. slay, go rotate something πŸ’…βœ¨

πŸ“¦ where this page comes from