The wl_output interface

## Data Structures

struct | wl_output_listener

## Macros

#define | WL_OUTPUT_GEOMETRY_SINCE_VERSION 1
#define | WL_OUTPUT_MODE_SINCE_VERSION 1
#define | WL_OUTPUT_DONE_SINCE_VERSION 2
#define | WL_OUTPUT_SCALE_SINCE_VERSION 2
#define | WL_OUTPUT_RELEASE_SINCE_VERSION 3

## Enumerations

enum | wl_output_subpixel { WL_OUTPUT_SUBPIXEL_UNKNOWN = 0, WL_OUTPUT_SUBPIXEL_NONE = 1, WL_OUTPUT_SUBPIXEL_HORIZONTAL_RGB = 2, WL_OUTPUT_SUBPIXEL_HORIZONTAL_BGR = 3, WL_OUTPUT_SUBPIXEL_VERTICAL_RGB = 4, WL_OUTPUT_SUBPIXEL_VERTICAL_BGR = 5 }
enum | wl_output_transform { WL_OUTPUT_TRANSFORM_NORMAL = 0, WL_OUTPUT_TRANSFORM_90 = 1, WL_OUTPUT_TRANSFORM_180 = 2, WL_OUTPUT_TRANSFORM_270 = 3, WL_OUTPUT_TRANSFORM_FLIPPED = 4, WL_OUTPUT_TRANSFORM_FLIPPED_90 = 5, WL_OUTPUT_TRANSFORM_FLIPPED_180 = 6, WL_OUTPUT_TRANSFORM_FLIPPED_270 = 7 }
enum | wl_output_mode { WL_OUTPUT_MODE_CURRENT = 0x1, WL_OUTPUT_MODE_PREFERRED = 0x2 }

## Functions

static int | wl_output_add_listener (struct wl_output *wl_output, const struct wl_output_listener *listener, void *data)
static void | wl_output_set_user_data (struct wl_output *wl_output, void *user_data)
static void * | wl_output_get_user_data (struct wl_output *wl_output)
static void | wl_output_destroy (struct wl_output *wl_output)
static void | wl_output_release (struct wl_output *wl_output)

## Detailed Description

An output describes part of the compositor geometry. The compositor works in the 'compositor coordinate system' and an output corresponds to a rectangular area in that space that is actually visible. This typically corresponds to a monitor that displays part of the compositor space. This object is published as global during start up, or when a monitor is hotplugged.

## Macro Definition Documentation

## WL_OUTPUT_DONE_SINCE_VERSION

#define WL_OUTPUT_DONE_SINCE_VERSION 2

Definition at line 5172 of file wayland-client-protocol.h.

## WL_OUTPUT_GEOMETRY_SINCE_VERSION

#define WL_OUTPUT_GEOMETRY_SINCE_VERSION 1

Definition at line 5164 of file wayland-client-protocol.h.

## WL_OUTPUT_MODE_SINCE_VERSION

#define WL_OUTPUT_MODE_SINCE_VERSION 1

Definition at line 5168 of file wayland-client-protocol.h.

## WL_OUTPUT_RELEASE_SINCE_VERSION

#define WL_OUTPUT_RELEASE_SINCE_VERSION 3

Definition at line 5181 of file wayland-client-protocol.h.

## WL_OUTPUT_SCALE_SINCE_VERSION

#define WL_OUTPUT_SCALE_SINCE_VERSION 2

Definition at line 5176 of file wayland-client-protocol.h.

## Enumeration Type Documentation

## wl_output_mode

enum wl_output_mode

mode information

These flags describe properties of an output mode. They are used in the flags bitfield of the mode event.

Enumerator
WL_OUTPUT_MODE_CURRENT | indicates this is the current mode
WL_OUTPUT_MODE_PREFERRED | indicates this is the preferred mode

Definition at line 5040 of file wayland-client-protocol.h.

{
/**
* indicates this is the current mode
*/
WL_OUTPUT_MODE_CURRENT = 0x1,
/**
* indicates this is the preferred mode
*/
WL_OUTPUT_MODE_PREFERRED = 0x2,
};
WL_OUTPUT_MODE_PREFERRED
Definition: wayland-client-protocol.h:5048
WL_OUTPUT_MODE_CURRENT
Definition: wayland-client-protocol.h:5044

## wl_output_subpixel

enum wl_output_subpixel

subpixel geometry information

This enumeration describes how the physical pixels on an output are laid out.

Enumerator
WL_OUTPUT_SUBPIXEL_UNKNOWN | unknown geometry
WL_OUTPUT_SUBPIXEL_NONE | no geometry
WL_OUTPUT_SUBPIXEL_HORIZONTAL_RGB | horizontal RGB
WL_OUTPUT_SUBPIXEL_HORIZONTAL_BGR | horizontal BGR
WL_OUTPUT_SUBPIXEL_VERTICAL_RGB | vertical RGB
WL_OUTPUT_SUBPIXEL_VERTICAL_BGR | vertical BGR

Definition at line 4949 of file wayland-client-protocol.h.

{
/**
* unknown geometry
*/
WL_OUTPUT_SUBPIXEL_UNKNOWN = 0,
/**
* no geometry
*/
WL_OUTPUT_SUBPIXEL_NONE = 1,
/**
* horizontal RGB
*/
WL_OUTPUT_SUBPIXEL_HORIZONTAL_RGB = 2,
/**
* horizontal BGR
*/
WL_OUTPUT_SUBPIXEL_HORIZONTAL_BGR = 3,
/**
* vertical RGB
*/
WL_OUTPUT_SUBPIXEL_VERTICAL_RGB = 4,
/**
* vertical BGR
*/
WL_OUTPUT_SUBPIXEL_VERTICAL_BGR = 5,
};
WL_OUTPUT_SUBPIXEL_HORIZONTAL_RGB
Definition: wayland-client-protocol.h:4961
WL_OUTPUT_SUBPIXEL_VERTICAL_RGB
Definition: wayland-client-protocol.h:4969
WL_OUTPUT_SUBPIXEL_UNKNOWN
Definition: wayland-client-protocol.h:4953
WL_OUTPUT_SUBPIXEL_NONE
Definition: wayland-client-protocol.h:4957
WL_OUTPUT_SUBPIXEL_HORIZONTAL_BGR
Definition: wayland-client-protocol.h:4965
WL_OUTPUT_SUBPIXEL_VERTICAL_BGR
Definition: wayland-client-protocol.h:4973

## wl_output_transform

enum wl_output_transform

transform from framebuffer to output

This describes the transform that a compositor will apply to a surface to compensate for the rotation or mirroring of an output device.

The flipped values correspond to an initial flip around a vertical axis followed by rotation.

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.

Enumerator
WL_OUTPUT_TRANSFORM_NORMAL | no transform
WL_OUTPUT_TRANSFORM_90 | 90 degrees counter-clockwise
WL_OUTPUT_TRANSFORM_180 | 180 degrees counter-clockwise
WL_OUTPUT_TRANSFORM_270 | 270 degrees counter-clockwise
WL_OUTPUT_TRANSFORM_FLIPPED | 180 degree flip around a vertical axis
WL_OUTPUT_TRANSFORM_FLIPPED_90 | flip and rotate 90 degrees counter-clockwise
WL_OUTPUT_TRANSFORM_FLIPPED_180 | flip and rotate 180 degrees counter-clockwise
WL_OUTPUT_TRANSFORM_FLIPPED_270 | flip and rotate 270 degrees counter-clockwise

Definition at line 4995 of file wayland-client-protocol.h.

{
/**
* no transform
*/
WL_OUTPUT_TRANSFORM_NORMAL = 0,
/**
* 90 degrees counter-clockwise
*/
WL_OUTPUT_TRANSFORM_90 = 1,
/**
* 180 degrees counter-clockwise
*/
WL_OUTPUT_TRANSFORM_180 = 2,
/**
* 270 degrees counter-clockwise
*/
WL_OUTPUT_TRANSFORM_270 = 3,
/**
* 180 degree flip around a vertical axis
*/
WL_OUTPUT_TRANSFORM_FLIPPED = 4,
/**
* flip and rotate 90 degrees counter-clockwise
*/
WL_OUTPUT_TRANSFORM_FLIPPED_90 = 5,
/**
* flip and rotate 180 degrees counter-clockwise
*/
WL_OUTPUT_TRANSFORM_FLIPPED_180 = 6,
/**
* flip and rotate 270 degrees counter-clockwise
*/
WL_OUTPUT_TRANSFORM_FLIPPED_270 = 7,
};
WL_OUTPUT_TRANSFORM_FLIPPED
Definition: wayland-client-protocol.h:5015
WL_OUTPUT_TRANSFORM_270
Definition: wayland-client-protocol.h:5011
WL_OUTPUT_TRANSFORM_FLIPPED_180
Definition: wayland-client-protocol.h:5023
WL_OUTPUT_TRANSFORM_FLIPPED_270
Definition: wayland-client-protocol.h:5027
WL_OUTPUT_TRANSFORM_NORMAL
Definition: wayland-client-protocol.h:4999
WL_OUTPUT_TRANSFORM_180
Definition: wayland-client-protocol.h:5007
WL_OUTPUT_TRANSFORM_FLIPPED_90
Definition: wayland-client-protocol.h:5019
WL_OUTPUT_TRANSFORM_90
Definition: wayland-client-protocol.h:5003

## Function Documentation

## wl_output_add_listener()

static int wl_output_add_listener | ( | struct wl_output * | wl_output,
|  | const struct wl_output_listener * | listener,
|  | void * | data
| ) |  |

inline static

Definition at line 5152 of file wayland-client-protocol.h.

{
return wl_proxy_add_listener((struct wl_proxy *) wl_output,
(void (**)(void)) listener, data);
}
data
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: SDL_opengl.h:1974

## wl_output_destroy()

static void wl_output_destroy | ( | struct wl_output * | wl_output | ) |

inline static

Definition at line 5205 of file wayland-client-protocol.h.

{
wl_proxy_destroy((struct wl_proxy *) wl_output);
}

## wl_output_get_user_data()

static void* wl_output_get_user_data | ( | struct wl_output * | wl_output | ) |

inline static

Definition at line 5192 of file wayland-client-protocol.h.

{
return wl_proxy_get_user_data((struct wl_proxy *) wl_output);
}

## wl_output_release()

static void wl_output_release | ( | struct wl_output * | wl_output | ) |

inline static

Using this request a client can tell the server that it is not going to use the output object anymore.

Definition at line 5217 of file wayland-client-protocol.h.

References WL_OUTPUT_RELEASE.

{
wl_proxy_marshal((struct wl_proxy *) wl_output,
WL_OUTPUT_RELEASE);
wl_proxy_destroy((struct wl_proxy *) wl_output);
}
WL_OUTPUT_RELEASE
#define WL_OUTPUT_RELEASE
Definition: wayland-client-protocol.h:5159

## wl_output_set_user_data()

static void wl_output_set_user_data | ( | struct wl_output * | wl_output,
|  | void * | user_data
| ) |  |

inline static

Definition at line 5185 of file wayland-client-protocol.h.

{
wl_proxy_set_user_data((struct wl_proxy *) wl_output, user_data);
}