outputmanagement
-
# org_kde_kwin_outputmanagement
This interface enables clients to set properties of output devices for screen configuration purposes via the server. To this end output devices are referenced by global org_kde_kwin_outputdevice objects. outputmanagement (wl_global) -------------------------- request: * create_configuration -> outputconfiguration (wl_resource) outputconfiguration (wl_resource) -------------------------- requests: * enable(outputdevice, bool) * mode(outputdevice, mode_id) * transformation(outputdevice, flag) * position(outputdevice, x, y) * apply events: * applied * failed The server registers one outputmanagement object as a global object. In order to configure outputs a client requests create_configuration, which provides a resource referencing an outputconfiguration for one-time configuration. That way the server knows which requests belong together and can group them by that. On the outputconfiguration object the client calls for each output whether the output should be enabled, which mode should be set (by referencing the mode from the list of announced modes) and the output's global position. Once all outputs are configured that way, the client calls apply. At that point and not earlier the server should try to apply the configuration. If this succeeds the server emits the applied signal, otherwise the failed signal, such that the configuring client is noticed about the success of its configuration request. Through this design the interface enables atomic output configuration changes if internally supported by the server.Requests
-
struct org_kde_kwin_outputconfiguration* org_kde_kwin_outputmanagement_create_configuration(struct org_kde_kwin_outputmanagement* org_kde_kwin_outputmanagement)Request an outputconfiguration object through which the client can configure output devices.
-
-
# org_kde_kwin_outputconfiguration
outputconfiguration is a client-specific resource that can be used to ask the server to apply changes to available output devices. The client receives a list of output devices from the registry. When it wants to apply new settings, it creates a configuration object from the outputmanagement global, writes changes through this object's enable, scale, transform and mode calls. It then asks the server to apply these settings in an atomic fashion, for example through Linux' DRM interface. The server signals back whether the new settings have applied successfully or failed to apply. outputdevice objects are updated after the changes have been applied to the hardware and before the server side sends the applied event.Requests
-
void org_kde_kwin_outputconfiguration_enable(struct org_kde_kwin_outputconfiguration* org_kde_kwin_outputconfiguration,struct org_kde_kwin_outputdevice* outputdevice, /* outputdevice to be en- or disabled */int32_t enable /* 1 to enable or 0 to disable this output */)Mark the output as enabled or disabled.
-
void org_kde_kwin_outputconfiguration_mode(struct org_kde_kwin_outputconfiguration* org_kde_kwin_outputconfiguration,struct org_kde_kwin_outputdevice* outputdevice, /* outputdevice this mode change applies to */int32_t mode_id /* aspired mode's id */)Sets the mode for a given output by its mode size (width and height) and refresh rate.
-
void org_kde_kwin_outputconfiguration_transform(struct org_kde_kwin_outputconfiguration* org_kde_kwin_outputconfiguration,struct org_kde_kwin_outputdevice* outputdevice, /* outputdevice this transformation change applies to */int32_t transform /* transform enum */)Sets the transformation for a given output.
-
void org_kde_kwin_outputconfiguration_position(struct org_kde_kwin_outputconfiguration* org_kde_kwin_outputconfiguration,struct org_kde_kwin_outputdevice* outputdevice, /* outputdevice this position applies to */int32_t x, /* position on the x-axis */int32_t y /* position on the y-axis */)Sets the position for this output device. (x,y) describe the top-left corner of the output in global space, whereby the origin (0,0) of the global space has to be aligned with the top-left corner of the most left and in case this does not define a single one the top output. There may be no gaps or overlaps between outputs, i.e. the outputs are stacked horizontally, vertically, or both on each other.
-
void org_kde_kwin_outputconfiguration_scale(struct org_kde_kwin_outputconfiguration* org_kde_kwin_outputconfiguration,struct org_kde_kwin_outputdevice* outputdevice, /* outputdevice this mode change applies to */int32_t scale /* scaling factor */)Sets the scaling factor for this output device.
-
void org_kde_kwin_outputconfiguration_apply(struct org_kde_kwin_outputconfiguration* org_kde_kwin_outputconfiguration)Asks the server to apply property changes requested through this outputconfiguration object to all outputs on the server side.
-
void org_kde_kwin_outputconfiguration_scalef(struct org_kde_kwin_outputconfiguration* org_kde_kwin_outputconfiguration,struct org_kde_kwin_outputdevice* outputdevice, /* outputdevice this mode change applies to */wl_fixed_t scale /* scaling factor */)Sets the scaling factor for this output device. Sending both scale and scalef is undefined.
-
void org_kde_kwin_outputconfiguration_colorcurves(struct org_kde_kwin_outputconfiguration* org_kde_kwin_outputconfiguration,struct org_kde_kwin_outputdevice* outputdevice, /* outputdevice curves apply to */struct wl_array* red, /* red color ramp */struct wl_array* green, /* green color ramp */struct wl_array* blue /* blue color ramp */)Set color curves of output devices through RGB color ramps. Allows color correction of output device from user space. These are the raw values. A compositor might opt to adjust these values internally, for example to shift color temperature at night.
-
void org_kde_kwin_outputconfiguration_destroy(struct org_kde_kwin_outputconfiguration* org_kde_kwin_outputconfiguration)
-
void org_kde_kwin_outputconfiguration_overscan(struct org_kde_kwin_outputconfiguration* org_kde_kwin_outputconfiguration,struct org_kde_kwin_outputdevice* outputdevice, /* outputdevice overscan applies to */uint32_t overscan /* overscan value */)Set the overscan value of this output device with a value in percent.
-
void org_kde_kwin_outputconfiguration_set_vrr_policy(struct org_kde_kwin_outputconfiguration* org_kde_kwin_outputconfiguration,struct org_kde_kwin_outputdevice* outputdevice, /* outputdevice this VRR policy applies to */uint32_t policy /* the vrr policy to apply */)Set what policy the compositor should employ regarding its use of variable refresh rate.
Events
-
Sent after the server has successfully applied the changes. .
-
Sent if the server rejects the changes or failed to apply them.
Enums
-
ORG_KDE_KWIN_OUTPUTCONFIGURATION_VRR_POLICY_NEVERORG_KDE_KWIN_OUTPUTCONFIGURATION_VRR_POLICY_ALWAYSORG_KDE_KWIN_OUTPUTCONFIGURATION_VRR_POLICY_AUTOMATICDescribes when the compositor may employ variable refresh rate
-
Copyright Info
SPDX-FileCopyrightText: 2008-2011 Kristian Høgsberg
SPDX-FileCopyrightText: 2010-2011 Intel Corporation
SPDX-FileCopyrightText: 2012-2013 Collabora, Ltd.
SPDX-FileCopyrightText: 2015 Sebastian Kügler <sebas@kde.org>
SPDX-License-Identifier: MIT-CMU