Compare commits
70 Commits
master
...
submit/ran
Author | SHA1 | Date | |
---|---|---|---|
|
30fa596a30 | ||
|
16bd661dc3 | ||
|
d20fb67a3d | ||
|
d2ad808ded | ||
|
a8ce18143b | ||
|
d45056e50b | ||
|
3bae686683 | ||
|
9f5693973c | ||
|
26f0855f94 | ||
|
fc1f790598 | ||
|
43e66b7bae | ||
|
7c4c0d98b2 | ||
|
68dba9094a | ||
|
4fe7f0ec40 | ||
|
a34abaf8c4 | ||
|
b858c37315 | ||
|
90bd957157 | ||
|
bde48e7df2 | ||
|
5b5f090b38 | ||
|
6f42b3bf2e | ||
|
9824454bbd | ||
|
76b2ffd567 | ||
|
d1c400f83e | ||
|
83953d87fc | ||
|
0113a423e3 | ||
|
f45bec1550 | ||
|
feea24f2bc | ||
|
670dce82c9 | ||
|
89a4eaad73 | ||
|
6649392662 | ||
|
21b0a81e82 | ||
|
24cf645e3e | ||
|
306c136563 | ||
|
68e946afb0 | ||
|
57c19389c0 | ||
|
0c6d8e1227 | ||
|
d73997dd23 | ||
|
5eaa31020b | ||
|
b1edfdc57a | ||
|
6d56c0c5cd | ||
|
7db0e6796c | ||
|
bf242cf605 | ||
|
04a4562508 | ||
|
64e02013c4 | ||
|
739cd6ec03 | ||
|
7d47d48bda | ||
|
6485f1cab6 | ||
|
59cdfcc375 | ||
|
6fba494ec0 | ||
|
d51688448b | ||
|
27746d6b8b | ||
|
f768720b9d | ||
|
120382506b | ||
|
fe220534d6 | ||
|
2aa80dd31e | ||
|
70e4bd8111 | ||
|
4e6cc3073c | ||
|
2671931960 | ||
|
2579bf6ec0 | ||
|
b6e5e1167d | ||
|
c91600ae9b | ||
|
dc77156e84 | ||
|
49048ceb5c | ||
|
d3cfc67a6d | ||
|
2dee9fb854 | ||
|
9e2d82412d | ||
|
be0a65e848 | ||
|
0a839a18f9 | ||
|
9bc4a0af89 | ||
|
4315cce063 |
|
@ -59,6 +59,7 @@
|
||||||
#include "os/cmdline.h"
|
#include "os/cmdline.h"
|
||||||
#include "os/ddx_priv.h"
|
#include "os/ddx_priv.h"
|
||||||
#include "os/osdep.h"
|
#include "os/osdep.h"
|
||||||
|
#include "randr/randrstr_priv.h"
|
||||||
|
|
||||||
#include "servermd.h"
|
#include "servermd.h"
|
||||||
#include "windowstr.h"
|
#include "windowstr.h"
|
||||||
|
@ -82,7 +83,6 @@
|
||||||
#include "xf86InPriv.h"
|
#include "xf86InPriv.h"
|
||||||
#include "xf86Crtc.h"
|
#include "xf86Crtc.h"
|
||||||
#include "picturestr.h"
|
#include "picturestr.h"
|
||||||
#include "randrstr.h"
|
|
||||||
#include "xf86Bus.h"
|
#include "xf86Bus.h"
|
||||||
#ifdef XSERVER_LIBPCIACCESS
|
#ifdef XSERVER_LIBPCIACCESS
|
||||||
#include "xf86VGAarbiter.h"
|
#include "xf86VGAarbiter.h"
|
||||||
|
|
|
@ -39,6 +39,7 @@
|
||||||
|
|
||||||
#include "config/hotplug_priv.h"
|
#include "config/hotplug_priv.h"
|
||||||
#include "dix/screenint_priv.h"
|
#include "dix/screenint_priv.h"
|
||||||
|
#include "randr/randrstr_priv.h"
|
||||||
|
|
||||||
#include "os.h"
|
#include "os.h"
|
||||||
#include "systemd-logind.h"
|
#include "systemd-logind.h"
|
||||||
|
@ -55,7 +56,6 @@
|
||||||
#include "xf86Config.h"
|
#include "xf86Config.h"
|
||||||
#include "xf86Crtc.h"
|
#include "xf86Crtc.h"
|
||||||
|
|
||||||
#include "randrstr.h"
|
|
||||||
int platformSlotClaimed;
|
int platformSlotClaimed;
|
||||||
|
|
||||||
int xf86_num_platform_devices;
|
int xf86_num_platform_devices;
|
||||||
|
|
|
@ -29,6 +29,8 @@
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#include "randr/randrstr_priv.h"
|
||||||
|
|
||||||
#include "xf86.h"
|
#include "xf86.h"
|
||||||
#include "xf86DDC_priv.h"
|
#include "xf86DDC_priv.h"
|
||||||
#include "xf86Crtc.h"
|
#include "xf86Crtc.h"
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
#include <X11/X.h>
|
#include <X11/X.h>
|
||||||
|
|
||||||
#include "dix/colormap_priv.h"
|
#include "dix/colormap_priv.h"
|
||||||
|
#include "randr/randrstr_priv.h"
|
||||||
|
|
||||||
#include "misc.h"
|
#include "misc.h"
|
||||||
#include "xf86.h"
|
#include "xf86.h"
|
||||||
|
@ -18,7 +19,6 @@
|
||||||
#include "cursorstr.h"
|
#include "cursorstr.h"
|
||||||
#include "mi.h"
|
#include "mi.h"
|
||||||
#include "mipointer.h"
|
#include "mipointer.h"
|
||||||
#include "randrstr.h"
|
|
||||||
#include "xf86CursorPriv.h"
|
#include "xf86CursorPriv.h"
|
||||||
#include "servermd.h"
|
#include "servermd.h"
|
||||||
|
|
||||||
|
|
|
@ -27,13 +27,13 @@
|
||||||
#include <xwayland-config.h>
|
#include <xwayland-config.h>
|
||||||
|
|
||||||
#include "os/client_priv.h"
|
#include "os/client_priv.h"
|
||||||
|
#include "randr/randrstr_priv.h"
|
||||||
|
|
||||||
#ifdef WITH_LIBDRM
|
#ifdef WITH_LIBDRM
|
||||||
#include <xf86drm.h>
|
#include <xf86drm.h>
|
||||||
#include <xf86drmMode.h>
|
#include <xf86drmMode.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "randrstr_priv.h"
|
|
||||||
#include "xwayland-drm-lease.h"
|
#include "xwayland-drm-lease.h"
|
||||||
#include "xwayland-screen.h"
|
#include "xwayland-screen.h"
|
||||||
#include "xwayland-output.h"
|
#include "xwayland-output.h"
|
||||||
|
|
|
@ -35,6 +35,8 @@
|
||||||
#endif
|
#endif
|
||||||
#include "win.h"
|
#include "win.h"
|
||||||
|
|
||||||
|
#include "randr/randrstr_priv.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Answer queries about the RandR features supported.
|
* Answer queries about the RandR features supported.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -21,6 +21,8 @@
|
||||||
*/
|
*/
|
||||||
#include <dix-config.h>
|
#include <dix-config.h>
|
||||||
|
|
||||||
|
#include "randr/randrstr_priv.h"
|
||||||
|
|
||||||
#include "present_priv.h"
|
#include "present_priv.h"
|
||||||
#include <gcstruct.h>
|
#include <gcstruct.h>
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,8 @@
|
||||||
*/
|
*/
|
||||||
#include <dix-config.h>
|
#include <dix-config.h>
|
||||||
|
|
||||||
|
#include "randr/randrstr_priv.h"
|
||||||
|
|
||||||
#include "present_priv.h"
|
#include "present_priv.h"
|
||||||
#include <misync.h>
|
#include <misync.h>
|
||||||
#include <misyncstr.h>
|
#include <misyncstr.h>
|
||||||
|
|
|
@ -28,8 +28,9 @@
|
||||||
|
|
||||||
#include <dix-config.h>
|
#include <dix-config.h>
|
||||||
|
|
||||||
#include "randrstr_priv.h"
|
|
||||||
#include "extinit_priv.h"
|
#include "extinit_priv.h"
|
||||||
|
#include "randr/randrstr_priv.h"
|
||||||
|
#include "randr/rrdispatch_priv.h"
|
||||||
|
|
||||||
/* From render.h */
|
/* From render.h */
|
||||||
#ifndef SubPixelUnknown
|
#ifndef SubPixelUnknown
|
||||||
|
|
369
randr/randrstr.h
369
randr/randrstr.h
|
@ -462,8 +462,6 @@ typedef struct _RRClient {
|
||||||
/* RRTimesRec times[0]; */
|
/* RRTimesRec times[0]; */
|
||||||
} RRClientRec, *RRClientPtr;
|
} RRClientRec, *RRClientPtr;
|
||||||
|
|
||||||
extern _X_EXPORT RESTYPE RRCrtcType, RRModeType, RROutputType, RRProviderType, RRLeaseType;
|
|
||||||
|
|
||||||
#ifdef RANDR_12_INTERFACE
|
#ifdef RANDR_12_INTERFACE
|
||||||
/*
|
/*
|
||||||
* Set the range of sizes for the screen
|
* Set the range of sizes for the screen
|
||||||
|
@ -498,36 +496,6 @@ RRScreenSizeSet(ScreenPtr pScreen,
|
||||||
extern _X_EXPORT void
|
extern _X_EXPORT void
|
||||||
RRSendConfigNotify(ScreenPtr pScreen);
|
RRSendConfigNotify(ScreenPtr pScreen);
|
||||||
|
|
||||||
/*
|
|
||||||
* screen dispatch
|
|
||||||
*/
|
|
||||||
extern _X_EXPORT int
|
|
||||||
ProcRRGetScreenSizeRange(ClientPtr client);
|
|
||||||
|
|
||||||
extern _X_EXPORT int
|
|
||||||
ProcRRSetScreenSize(ClientPtr client);
|
|
||||||
|
|
||||||
extern _X_EXPORT int
|
|
||||||
ProcRRGetScreenResources(ClientPtr client);
|
|
||||||
|
|
||||||
extern _X_EXPORT int
|
|
||||||
ProcRRGetScreenResourcesCurrent(ClientPtr client);
|
|
||||||
|
|
||||||
extern _X_EXPORT int
|
|
||||||
ProcRRSetScreenConfig(ClientPtr client);
|
|
||||||
|
|
||||||
extern _X_EXPORT int
|
|
||||||
ProcRRGetScreenInfo(ClientPtr client);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Deliver a ScreenNotify event
|
|
||||||
*/
|
|
||||||
extern _X_EXPORT void
|
|
||||||
RRDeliverScreenEvent(ClientPtr client, WindowPtr pWin, ScreenPtr pScreen);
|
|
||||||
|
|
||||||
extern _X_EXPORT void
|
|
||||||
RRResourcesChanged(ScreenPtr pScreen);
|
|
||||||
|
|
||||||
/* randr.c */
|
/* randr.c */
|
||||||
/* set a screen change on the primary screen */
|
/* set a screen change on the primary screen */
|
||||||
extern _X_EXPORT void
|
extern _X_EXPORT void
|
||||||
|
@ -545,19 +513,10 @@ extern _X_EXPORT void
|
||||||
extern _X_EXPORT Bool
|
extern _X_EXPORT Bool
|
||||||
RRGetInfo(ScreenPtr pScreen, Bool force_query);
|
RRGetInfo(ScreenPtr pScreen, Bool force_query);
|
||||||
|
|
||||||
extern _X_EXPORT Bool RRInit(void);
|
|
||||||
|
|
||||||
extern _X_EXPORT Bool RRScreenInit(ScreenPtr pScreen);
|
extern _X_EXPORT Bool RRScreenInit(ScreenPtr pScreen);
|
||||||
|
|
||||||
extern _X_EXPORT RROutputPtr RRFirstOutput(ScreenPtr pScreen);
|
extern _X_EXPORT RROutputPtr RRFirstOutput(ScreenPtr pScreen);
|
||||||
|
|
||||||
extern _X_EXPORT RRCrtcPtr RRFirstEnabledCrtc(ScreenPtr pScreen);
|
|
||||||
|
|
||||||
extern _X_EXPORT Bool RROutputSetNonDesktop(RROutputPtr output, Bool non_desktop);
|
|
||||||
|
|
||||||
extern _X_EXPORT CARD16
|
|
||||||
RRVerticalRefresh(xRRModeInfo * mode);
|
|
||||||
|
|
||||||
#ifdef RANDR_10_INTERFACE
|
#ifdef RANDR_10_INTERFACE
|
||||||
/*
|
/*
|
||||||
* This is the old interface, deprecated but left
|
* This is the old interface, deprecated but left
|
||||||
|
@ -584,41 +543,21 @@ extern _X_EXPORT void
|
||||||
RRSetCurrentConfig(ScreenPtr pScreen,
|
RRSetCurrentConfig(ScreenPtr pScreen,
|
||||||
Rotation rotation, int rate, RRScreenSizePtr pSize);
|
Rotation rotation, int rate, RRScreenSizePtr pSize);
|
||||||
|
|
||||||
extern _X_EXPORT Rotation RRGetRotation(ScreenPtr pScreen);
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* rrcrtc.c */
|
/* rrcrtc.c */
|
||||||
|
|
||||||
/*
|
|
||||||
* Notify the CRTC of some change; layoutChanged indicates that
|
|
||||||
* some position or size element changed
|
|
||||||
*/
|
|
||||||
extern _X_EXPORT void
|
|
||||||
RRCrtcChanged(RRCrtcPtr crtc, Bool layoutChanged);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Create a CRTC
|
* Create a CRTC
|
||||||
*/
|
*/
|
||||||
extern _X_EXPORT RRCrtcPtr RRCrtcCreate(ScreenPtr pScreen, void *devPrivate);
|
extern _X_EXPORT RRCrtcPtr RRCrtcCreate(ScreenPtr pScreen, void *devPrivate);
|
||||||
|
|
||||||
/*
|
|
||||||
* Tests if findCrtc belongs to pScreen or secondary screens
|
|
||||||
*/
|
|
||||||
extern _X_EXPORT Bool RRCrtcExists(ScreenPtr pScreen, RRCrtcPtr findCrtc);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Set the allowed rotations on a CRTC
|
* Set the allowed rotations on a CRTC
|
||||||
*/
|
*/
|
||||||
extern _X_EXPORT void
|
extern _X_EXPORT void
|
||||||
RRCrtcSetRotations(RRCrtcPtr crtc, Rotation rotations);
|
RRCrtcSetRotations(RRCrtcPtr crtc, Rotation rotations);
|
||||||
|
|
||||||
/*
|
|
||||||
* Set whether transforms are allowed on a CRTC
|
|
||||||
*/
|
|
||||||
extern _X_EXPORT void
|
|
||||||
RRCrtcSetTransformSupport(RRCrtcPtr crtc, Bool transforms);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Notify the extension that the Crtc has been reconfigured,
|
* Notify the extension that the Crtc has been reconfigured,
|
||||||
* the driver calls this whenever it has updated the mode
|
* the driver calls this whenever it has updated the mode
|
||||||
|
@ -631,9 +570,6 @@ RRCrtcNotify(RRCrtcPtr crtc,
|
||||||
Rotation rotation,
|
Rotation rotation,
|
||||||
RRTransformPtr transform, int numOutputs, RROutputPtr * outputs);
|
RRTransformPtr transform, int numOutputs, RROutputPtr * outputs);
|
||||||
|
|
||||||
extern _X_EXPORT void
|
|
||||||
RRDeliverCrtcEvent(ClientPtr client, WindowPtr pWin, RRCrtcPtr crtc);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Request that the Crtc be reconfigured
|
* Request that the Crtc be reconfigured
|
||||||
*/
|
*/
|
||||||
|
@ -650,23 +586,6 @@ RRCrtcSet(RRCrtcPtr crtc,
|
||||||
extern _X_EXPORT Bool
|
extern _X_EXPORT Bool
|
||||||
RRCrtcGammaSet(RRCrtcPtr crtc, CARD16 *red, CARD16 *green, CARD16 *blue);
|
RRCrtcGammaSet(RRCrtcPtr crtc, CARD16 *red, CARD16 *green, CARD16 *blue);
|
||||||
|
|
||||||
/*
|
|
||||||
* Request current gamma back from the DDX (if possible).
|
|
||||||
* This includes gamma size.
|
|
||||||
*/
|
|
||||||
|
|
||||||
extern _X_EXPORT Bool
|
|
||||||
RRCrtcGammaGet(RRCrtcPtr crtc);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Notify the extension that the Crtc gamma has been changed
|
|
||||||
* The driver calls this whenever it has changed the gamma values
|
|
||||||
* in the RRCrtcRec
|
|
||||||
*/
|
|
||||||
|
|
||||||
extern _X_EXPORT Bool
|
|
||||||
RRCrtcGammaNotify(RRCrtcPtr crtc);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Set the size of the gamma table at server startup time
|
* Set the size of the gamma table at server startup time
|
||||||
*/
|
*/
|
||||||
|
@ -674,110 +593,6 @@ extern _X_EXPORT Bool
|
||||||
extern _X_EXPORT Bool
|
extern _X_EXPORT Bool
|
||||||
RRCrtcGammaSetSize(RRCrtcPtr crtc, int size);
|
RRCrtcGammaSetSize(RRCrtcPtr crtc, int size);
|
||||||
|
|
||||||
/*
|
|
||||||
* Return the area of the frame buffer scanned out by the crtc,
|
|
||||||
* taking into account the current mode and rotation
|
|
||||||
*/
|
|
||||||
|
|
||||||
extern _X_EXPORT void
|
|
||||||
RRCrtcGetScanoutSize(RRCrtcPtr crtc, int *width, int *height);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Return crtc transform
|
|
||||||
*/
|
|
||||||
extern _X_EXPORT RRTransformPtr RRCrtcGetTransform(RRCrtcPtr crtc);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Check whether the pending and current transforms are the same
|
|
||||||
*/
|
|
||||||
extern _X_EXPORT Bool
|
|
||||||
RRCrtcPendingTransform(RRCrtcPtr crtc);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Destroy a Crtc at shutdown
|
|
||||||
*/
|
|
||||||
extern _X_EXPORT void
|
|
||||||
RRCrtcDestroy(RRCrtcPtr crtc);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Set the pending CRTC transformation
|
|
||||||
*/
|
|
||||||
|
|
||||||
extern _X_EXPORT int
|
|
||||||
RRCrtcTransformSet(RRCrtcPtr crtc,
|
|
||||||
PictTransformPtr transform,
|
|
||||||
struct pixman_f_transform *f_transform,
|
|
||||||
struct pixman_f_transform *f_inverse,
|
|
||||||
char *filter, int filter_len, xFixed * params, int nparams);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Initialize crtc type
|
|
||||||
*/
|
|
||||||
extern _X_EXPORT Bool
|
|
||||||
RRCrtcInit(void);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Initialize crtc type error value
|
|
||||||
*/
|
|
||||||
extern _X_EXPORT void
|
|
||||||
RRCrtcInitErrorValue(void);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Detach and free a scanout pixmap
|
|
||||||
*/
|
|
||||||
extern _X_EXPORT void
|
|
||||||
RRCrtcDetachScanoutPixmap(RRCrtcPtr crtc);
|
|
||||||
|
|
||||||
extern _X_EXPORT Bool
|
|
||||||
RRReplaceScanoutPixmap(DrawablePtr pDrawable, PixmapPtr pPixmap, Bool enable);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Return if the screen has any scanout_pixmap's attached
|
|
||||||
*/
|
|
||||||
extern _X_EXPORT Bool
|
|
||||||
RRHasScanoutPixmap(ScreenPtr pScreen);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Crtc dispatch
|
|
||||||
*/
|
|
||||||
|
|
||||||
extern _X_EXPORT int
|
|
||||||
ProcRRGetCrtcInfo(ClientPtr client);
|
|
||||||
|
|
||||||
extern _X_EXPORT int
|
|
||||||
ProcRRSetCrtcConfig(ClientPtr client);
|
|
||||||
|
|
||||||
extern _X_EXPORT int
|
|
||||||
ProcRRGetCrtcGammaSize(ClientPtr client);
|
|
||||||
|
|
||||||
extern _X_EXPORT int
|
|
||||||
ProcRRGetCrtcGamma(ClientPtr client);
|
|
||||||
|
|
||||||
extern _X_EXPORT int
|
|
||||||
ProcRRSetCrtcGamma(ClientPtr client);
|
|
||||||
|
|
||||||
extern _X_EXPORT int
|
|
||||||
ProcRRSetCrtcTransform(ClientPtr client);
|
|
||||||
|
|
||||||
extern _X_EXPORT int
|
|
||||||
ProcRRGetCrtcTransform(ClientPtr client);
|
|
||||||
|
|
||||||
/* rrdispatch.c */
|
|
||||||
extern _X_EXPORT Bool
|
|
||||||
RRClientKnowsRates(ClientPtr pClient);
|
|
||||||
|
|
||||||
extern _X_EXPORT void
|
|
||||||
RRLeaseTerminated(RRLeasePtr lease);
|
|
||||||
|
|
||||||
extern _X_EXPORT void
|
|
||||||
RRLeaseFree(RRLeasePtr lease);
|
|
||||||
|
|
||||||
extern _X_EXPORT Bool
|
|
||||||
RRCrtcIsLeased(RRCrtcPtr crtc);
|
|
||||||
|
|
||||||
extern _X_EXPORT Bool
|
|
||||||
RROutputIsLeased(RROutputPtr output);
|
|
||||||
|
|
||||||
/* rrmode.c */
|
/* rrmode.c */
|
||||||
/*
|
/*
|
||||||
* Find, and if necessary, create a mode
|
* Find, and if necessary, create a mode
|
||||||
|
@ -792,35 +607,6 @@ extern _X_EXPORT RRModePtr RRModeGet(xRRModeInfo * modeInfo, const char *name);
|
||||||
extern _X_EXPORT void
|
extern _X_EXPORT void
|
||||||
RRModeDestroy(RRModePtr mode);
|
RRModeDestroy(RRModePtr mode);
|
||||||
|
|
||||||
/*
|
|
||||||
* Return a list of modes that are valid for some output in pScreen
|
|
||||||
*/
|
|
||||||
extern _X_EXPORT RRModePtr *RRModesForScreen(ScreenPtr pScreen, int *num_ret);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Initialize mode type
|
|
||||||
*/
|
|
||||||
extern _X_EXPORT Bool
|
|
||||||
RRModeInit(void);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Initialize mode type error value
|
|
||||||
*/
|
|
||||||
extern _X_EXPORT void
|
|
||||||
RRModeInitErrorValue(void);
|
|
||||||
|
|
||||||
extern _X_EXPORT int
|
|
||||||
ProcRRCreateMode(ClientPtr client);
|
|
||||||
|
|
||||||
extern _X_EXPORT int
|
|
||||||
ProcRRDestroyMode(ClientPtr client);
|
|
||||||
|
|
||||||
extern _X_EXPORT int
|
|
||||||
ProcRRAddOutputMode(ClientPtr client);
|
|
||||||
|
|
||||||
extern _X_EXPORT int
|
|
||||||
ProcRRDeleteOutputMode(ClientPtr client);
|
|
||||||
|
|
||||||
/* rroutput.c */
|
/* rroutput.c */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -850,69 +636,18 @@ extern _X_EXPORT Bool
|
||||||
RROutputSetModes(RROutputPtr output,
|
RROutputSetModes(RROutputPtr output,
|
||||||
RRModePtr * modes, int numModes, int numPreferred);
|
RRModePtr * modes, int numModes, int numPreferred);
|
||||||
|
|
||||||
extern _X_EXPORT int
|
|
||||||
RROutputAddUserMode(RROutputPtr output, RRModePtr mode);
|
|
||||||
|
|
||||||
extern _X_EXPORT int
|
|
||||||
RROutputDeleteUserMode(RROutputPtr output, RRModePtr mode);
|
|
||||||
|
|
||||||
extern _X_EXPORT Bool
|
extern _X_EXPORT Bool
|
||||||
RROutputSetCrtcs(RROutputPtr output, RRCrtcPtr * crtcs, int numCrtcs);
|
RROutputSetCrtcs(RROutputPtr output, RRCrtcPtr * crtcs, int numCrtcs);
|
||||||
|
|
||||||
extern _X_EXPORT Bool
|
extern _X_EXPORT Bool
|
||||||
RROutputSetConnection(RROutputPtr output, CARD8 connection);
|
RROutputSetConnection(RROutputPtr output, CARD8 connection);
|
||||||
|
|
||||||
extern _X_EXPORT Bool
|
|
||||||
RROutputSetSubpixelOrder(RROutputPtr output, int subpixelOrder);
|
|
||||||
|
|
||||||
extern _X_EXPORT Bool
|
extern _X_EXPORT Bool
|
||||||
RROutputSetPhysicalSize(RROutputPtr output, int mmWidth, int mmHeight);
|
RROutputSetPhysicalSize(RROutputPtr output, int mmWidth, int mmHeight);
|
||||||
|
|
||||||
extern _X_EXPORT void
|
|
||||||
RRDeliverOutputEvent(ClientPtr client, WindowPtr pWin, RROutputPtr output);
|
|
||||||
|
|
||||||
extern _X_EXPORT void
|
extern _X_EXPORT void
|
||||||
RROutputDestroy(RROutputPtr output);
|
RROutputDestroy(RROutputPtr output);
|
||||||
|
|
||||||
extern _X_EXPORT int
|
|
||||||
ProcRRGetOutputInfo(ClientPtr client);
|
|
||||||
|
|
||||||
extern _X_EXPORT int
|
|
||||||
ProcRRSetOutputPrimary(ClientPtr client);
|
|
||||||
|
|
||||||
extern _X_EXPORT int
|
|
||||||
ProcRRGetOutputPrimary(ClientPtr client);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Initialize output type
|
|
||||||
*/
|
|
||||||
extern _X_EXPORT Bool
|
|
||||||
RROutputInit(void);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Initialize output type error value
|
|
||||||
*/
|
|
||||||
extern _X_EXPORT void
|
|
||||||
RROutputInitErrorValue(void);
|
|
||||||
|
|
||||||
/* rrpointer.c */
|
|
||||||
extern _X_EXPORT void
|
|
||||||
RRPointerMoved(ScreenPtr pScreen, int x, int y);
|
|
||||||
|
|
||||||
extern _X_EXPORT void
|
|
||||||
RRPointerScreenConfigured(ScreenPtr pScreen);
|
|
||||||
|
|
||||||
/* rrproperty.c */
|
|
||||||
|
|
||||||
extern _X_EXPORT void
|
|
||||||
RRDeleteAllOutputProperties(RROutputPtr output);
|
|
||||||
|
|
||||||
extern _X_EXPORT RRPropertyValuePtr
|
|
||||||
RRGetOutputProperty(RROutputPtr output, Atom property, Bool pending);
|
|
||||||
|
|
||||||
extern _X_EXPORT RRPropertyPtr
|
|
||||||
RRQueryOutputProperty(RROutputPtr output, Atom property);
|
|
||||||
|
|
||||||
extern _X_EXPORT void
|
extern _X_EXPORT void
|
||||||
RRDeleteOutputProperty(RROutputPtr output, Atom property);
|
RRDeleteOutputProperty(RROutputPtr output, Atom property);
|
||||||
|
|
||||||
|
@ -928,113 +663,9 @@ extern _X_EXPORT int
|
||||||
RRConfigureOutputProperty(RROutputPtr output, Atom property,
|
RRConfigureOutputProperty(RROutputPtr output, Atom property,
|
||||||
Bool pending, Bool range, Bool immutable,
|
Bool pending, Bool range, Bool immutable,
|
||||||
int num_values, const INT32 *values);
|
int num_values, const INT32 *values);
|
||||||
extern _X_EXPORT int
|
|
||||||
ProcRRChangeOutputProperty(ClientPtr client);
|
|
||||||
|
|
||||||
extern _X_EXPORT int
|
|
||||||
ProcRRGetOutputProperty(ClientPtr client);
|
|
||||||
|
|
||||||
extern _X_EXPORT int
|
|
||||||
ProcRRListOutputProperties(ClientPtr client);
|
|
||||||
|
|
||||||
extern _X_EXPORT int
|
|
||||||
ProcRRQueryOutputProperty(ClientPtr client);
|
|
||||||
|
|
||||||
extern _X_EXPORT int
|
|
||||||
ProcRRConfigureOutputProperty(ClientPtr client);
|
|
||||||
|
|
||||||
extern _X_EXPORT int
|
|
||||||
ProcRRDeleteOutputProperty(ClientPtr client);
|
|
||||||
|
|
||||||
/* rrprovider.c */
|
/* rrprovider.c */
|
||||||
#define PRIME_SYNC_PROP "PRIME Synchronization"
|
#define PRIME_SYNC_PROP "PRIME Synchronization"
|
||||||
extern _X_EXPORT void
|
|
||||||
RRProviderInitErrorValue(void);
|
|
||||||
|
|
||||||
extern _X_EXPORT int
|
|
||||||
ProcRRGetProviders(ClientPtr client);
|
|
||||||
|
|
||||||
extern _X_EXPORT int
|
|
||||||
ProcRRGetProviderInfo(ClientPtr client);
|
|
||||||
|
|
||||||
extern _X_EXPORT int
|
|
||||||
ProcRRSetProviderOutputSource(ClientPtr client);
|
|
||||||
|
|
||||||
extern _X_EXPORT int
|
|
||||||
ProcRRSetProviderOffloadSink(ClientPtr client);
|
|
||||||
|
|
||||||
extern _X_EXPORT Bool
|
|
||||||
RRProviderInit(void);
|
|
||||||
|
|
||||||
extern _X_EXPORT RRProviderPtr
|
|
||||||
RRProviderCreate(ScreenPtr pScreen, const char *name,
|
|
||||||
int nameLength);
|
|
||||||
|
|
||||||
extern _X_EXPORT void
|
|
||||||
RRProviderDestroy (RRProviderPtr provider);
|
|
||||||
|
|
||||||
extern _X_EXPORT void
|
|
||||||
RRProviderSetCapabilities(RRProviderPtr provider, uint32_t capabilities);
|
|
||||||
|
|
||||||
extern _X_EXPORT Bool
|
|
||||||
RRProviderLookup(XID id, RRProviderPtr *provider_p);
|
|
||||||
|
|
||||||
extern _X_EXPORT void
|
|
||||||
RRDeliverProviderEvent(ClientPtr client, WindowPtr pWin, RRProviderPtr provider);
|
|
||||||
|
|
||||||
extern _X_EXPORT void
|
|
||||||
RRProviderAutoConfigGpuScreen(ScreenPtr pScreen, ScreenPtr primaryScreen);
|
|
||||||
|
|
||||||
/* rrproviderproperty.c */
|
|
||||||
|
|
||||||
extern _X_EXPORT void
|
|
||||||
RRDeleteAllProviderProperties(RRProviderPtr provider);
|
|
||||||
|
|
||||||
extern _X_EXPORT RRPropertyValuePtr
|
|
||||||
RRGetProviderProperty(RRProviderPtr provider, Atom property, Bool pending);
|
|
||||||
|
|
||||||
extern _X_EXPORT RRPropertyPtr
|
|
||||||
RRQueryProviderProperty(RRProviderPtr provider, Atom property);
|
|
||||||
|
|
||||||
extern _X_EXPORT void
|
|
||||||
RRDeleteProviderProperty(RRProviderPtr provider, Atom property);
|
|
||||||
|
|
||||||
extern _X_EXPORT int
|
|
||||||
RRChangeProviderProperty(RRProviderPtr provider, Atom property, Atom type,
|
|
||||||
int format, int mode, unsigned long len,
|
|
||||||
void *value, Bool sendevent, Bool pending);
|
|
||||||
|
|
||||||
extern _X_EXPORT int
|
|
||||||
RRConfigureProviderProperty(RRProviderPtr provider, Atom property,
|
|
||||||
Bool pending, Bool range, Bool immutable,
|
|
||||||
int num_values, INT32 *values);
|
|
||||||
|
|
||||||
extern _X_EXPORT Bool
|
|
||||||
RRPostProviderPendingProperties(RRProviderPtr provider);
|
|
||||||
|
|
||||||
extern _X_EXPORT int
|
|
||||||
ProcRRGetProviderProperty(ClientPtr client);
|
|
||||||
|
|
||||||
extern _X_EXPORT int
|
|
||||||
ProcRRListProviderProperties(ClientPtr client);
|
|
||||||
|
|
||||||
extern _X_EXPORT int
|
|
||||||
ProcRRQueryProviderProperty(ClientPtr client);
|
|
||||||
|
|
||||||
extern _X_EXPORT int
|
|
||||||
ProcRRConfigureProviderProperty(ClientPtr client);
|
|
||||||
|
|
||||||
extern _X_EXPORT int
|
|
||||||
ProcRRChangeProviderProperty(ClientPtr client);
|
|
||||||
|
|
||||||
extern _X_EXPORT int
|
|
||||||
ProcRRDeleteProviderProperty(ClientPtr client);
|
|
||||||
|
|
||||||
/* rrxinerama.c */
|
|
||||||
#ifdef XINERAMA
|
|
||||||
extern _X_EXPORT void
|
|
||||||
RRXineramaExtensionInit(void);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* _RANDRSTR_H_ */
|
#endif /* _RANDRSTR_H_ */
|
||||||
|
|
||||||
|
|
|
@ -29,6 +29,8 @@
|
||||||
#ifndef _XSERVER_RANDRSTR_PRIV_H_
|
#ifndef _XSERVER_RANDRSTR_PRIV_H_
|
||||||
#define _XSERVER_RANDRSTR_PRIV_H_
|
#define _XSERVER_RANDRSTR_PRIV_H_
|
||||||
|
|
||||||
|
#include <X11/Xdefs.h>
|
||||||
|
|
||||||
#include "randrstr.h"
|
#include "randrstr.h"
|
||||||
|
|
||||||
extern int RREventBase, RRErrorBase;
|
extern int RREventBase, RRErrorBase;
|
||||||
|
@ -36,6 +38,12 @@ extern int RREventBase, RRErrorBase;
|
||||||
extern RESTYPE RRClientType, RREventType; /* resource types for event masks */
|
extern RESTYPE RRClientType, RREventType; /* resource types for event masks */
|
||||||
extern DevPrivateKeyRec RRClientPrivateKeyRec;
|
extern DevPrivateKeyRec RRClientPrivateKeyRec;
|
||||||
|
|
||||||
|
extern RESTYPE RRCrtcType; /* X resource type: Randr CRTC */
|
||||||
|
extern RESTYPE RRModeType; /* X resource type: Randr MODE */
|
||||||
|
extern RESTYPE RROutputType; /* X resource type: Randr OUTPUT */
|
||||||
|
extern RESTYPE RRProviderType; /* X resource type: Randr PROVIDER */
|
||||||
|
extern RESTYPE RRLeaseType; /* X resource type: Randr LEASE */
|
||||||
|
|
||||||
#define RRClientPrivateKey (&RRClientPrivateKeyRec)
|
#define RRClientPrivateKey (&RRClientPrivateKeyRec)
|
||||||
|
|
||||||
#define VERIFY_RR_OUTPUT(id, ptr, a)\
|
#define VERIFY_RR_OUTPUT(id, ptr, a)\
|
||||||
|
@ -91,10 +99,6 @@ extern DevPrivateKeyRec RRClientPrivateKeyRec;
|
||||||
#define GetRRClient(pClient) ((RRClientPtr)dixLookupPrivate(&(pClient)->devPrivates, RRClientPrivateKey))
|
#define GetRRClient(pClient) ((RRClientPtr)dixLookupPrivate(&(pClient)->devPrivates, RRClientPrivateKey))
|
||||||
#define rrClientPriv(pClient) RRClientPtr pRRClient = GetRRClient(pClient)
|
#define rrClientPriv(pClient) RRClientPtr pRRClient = GetRRClient(pClient)
|
||||||
|
|
||||||
int ProcRRGetPanning(ClientPtr client);
|
|
||||||
|
|
||||||
int ProcRRSetPanning(ClientPtr client);
|
|
||||||
|
|
||||||
void RRConstrainCursorHarder(DeviceIntPtr, ScreenPtr, int, int *, int *);
|
void RRConstrainCursorHarder(DeviceIntPtr, ScreenPtr, int, int *, int *);
|
||||||
|
|
||||||
/* rrlease.c */
|
/* rrlease.c */
|
||||||
|
@ -123,22 +127,431 @@ int RRMonitorAdd(ClientPtr client, ScreenPtr screen, RRMonitorPtr monitor);
|
||||||
|
|
||||||
void RRMonitorFree(RRMonitorPtr monitor);
|
void RRMonitorFree(RRMonitorPtr monitor);
|
||||||
|
|
||||||
int ProcRRGetMonitors(ClientPtr client);
|
/*
|
||||||
|
* Deliver a ScreenChangeNotity event to given client
|
||||||
|
*
|
||||||
|
* @param pClient the client to notify
|
||||||
|
* @param pWin the window to refer to in the event
|
||||||
|
* @param pScreen the screen where the change happened
|
||||||
|
*/
|
||||||
|
void RRDeliverScreenEvent(ClientPtr pClient, WindowPtr pWin, ScreenPtr pScreen);
|
||||||
|
|
||||||
int ProcRRSetMonitor(ClientPtr client);
|
/*
|
||||||
|
* Mark screen resources as changed, so listeners will get updates on them.
|
||||||
|
*
|
||||||
|
* @param pScreen the screen where changes occoured
|
||||||
|
*/
|
||||||
|
void RRResourcesChanged(ScreenPtr pScreen);
|
||||||
|
|
||||||
int ProcRRDeleteMonitor(ClientPtr client);
|
/*
|
||||||
|
* Initialize randr subsystem
|
||||||
|
*
|
||||||
|
* @return TRUE on success
|
||||||
|
*/
|
||||||
|
Bool RRInit(void);
|
||||||
|
|
||||||
int ProcRRCreateLease(ClientPtr client);
|
/*
|
||||||
|
* Retrieve the first enabled CRTC on given screen
|
||||||
|
*
|
||||||
|
* @param pScreen the screen to query
|
||||||
|
* @return pointer to CRTC structure or NULL
|
||||||
|
*/
|
||||||
|
RRCrtcPtr RRFirstEnabledCrtc(ScreenPtr pScreen);
|
||||||
|
|
||||||
int ProcRRFreeLease(ClientPtr client);
|
/*
|
||||||
|
* Set non-desktop property on given output. This flag should be TRUE on
|
||||||
|
* outputs where usual desktops shouldn't expand onto (eg. head displays,
|
||||||
|
* additional display bars in various handhelds, etc)
|
||||||
|
*/
|
||||||
|
Bool RROutputSetNonDesktop(RROutputPtr output, Bool non_desktop);
|
||||||
|
|
||||||
int ProcRRQueryVersion(ClientPtr client);
|
/*
|
||||||
|
* Compute vertical refresh rate from randr mode information
|
||||||
|
*
|
||||||
|
* @param mode pointer to randr mode info
|
||||||
|
* @return vertical refresh rate
|
||||||
|
*/
|
||||||
|
CARD16 RRVerticalRefresh(xRRModeInfo * mode);
|
||||||
|
|
||||||
int ProcRRSelectInput(ClientPtr client);
|
/*
|
||||||
|
* Tests if findCrtc belongs to pScreen or secondary screens
|
||||||
|
*
|
||||||
|
* @param pScreen the screen to check on
|
||||||
|
* @param findCrtc the Crtc to check for
|
||||||
|
* @return TRUE if given CRTC belongs to pScreen / secondard screens
|
||||||
|
*/
|
||||||
|
Bool RRCrtcExists(ScreenPtr pScreen, RRCrtcPtr findCrtc);
|
||||||
|
|
||||||
int ProcRRDispatch(ClientPtr client);
|
/*
|
||||||
|
* Set whether transforms are allowed on a CRTC
|
||||||
|
*
|
||||||
|
* @param crtc the CRTC to set the flag on
|
||||||
|
* @param transforms TRUE if transforms are allowed
|
||||||
|
*/
|
||||||
|
void RRCrtcSetTransformSupport(RRCrtcPtr crtc, Bool transforms);
|
||||||
|
|
||||||
int SProcRRDispatch(ClientPtr client);
|
/*
|
||||||
|
* Deliver CRTC update event to given client
|
||||||
|
*
|
||||||
|
* @param pClient the client to send event to
|
||||||
|
* @param pWin the window whose screen had been changed
|
||||||
|
* @param crtc the CRTC that had been changed
|
||||||
|
*/
|
||||||
|
void RRDeliverCrtcEvent(ClientPtr pClient, WindowPtr pWin, RRCrtcPtr crtc);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Return the area of the frame buffer scanned out by the crtc,
|
||||||
|
* taking into account the current mode and rotation
|
||||||
|
*
|
||||||
|
* @param crtc the CRTC to query
|
||||||
|
* @param width return buffer for width value
|
||||||
|
* @param height return buffer for height value
|
||||||
|
*/
|
||||||
|
void RRCrtcGetScanoutSize(RRCrtcPtr crtc, int *width, int *height);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Retrieve CRTCs current transform
|
||||||
|
*
|
||||||
|
* @param crtc the CRTC to query
|
||||||
|
* @return pointer to CRTCs current transform
|
||||||
|
*/
|
||||||
|
RRTransformPtr RRCrtcGetTransform(RRCrtcPtr crtc);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Destroy a Crtc at shutdown
|
||||||
|
*
|
||||||
|
* @param crtc the CRTC to destroy
|
||||||
|
*/
|
||||||
|
void RRCrtcDestroy(RRCrtcPtr crtc);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Initialize crtc resource type
|
||||||
|
*/
|
||||||
|
Bool RRCrtcInit(void);
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Initialize crtc type error value
|
||||||
|
*/
|
||||||
|
void RRCrtcInitErrorValue(void);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Detach and free a scanout pixmap
|
||||||
|
*
|
||||||
|
* @param crtc the CRTC to act on
|
||||||
|
*/
|
||||||
|
void RRCrtcDetachScanoutPixmap(RRCrtcPtr crtc);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Handler for the ReplaceScanoutPixmap screen proc
|
||||||
|
* Should not be called directly.
|
||||||
|
*/
|
||||||
|
Bool RRReplaceScanoutPixmap(DrawablePtr pDrawable, PixmapPtr pPixmap, Bool enable);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Check whether given screen has any scanout pixmap attached
|
||||||
|
*
|
||||||
|
* @param pScreen the screen to check
|
||||||
|
* @return TRUE if the screen has a scanout pixmap attached
|
||||||
|
*/
|
||||||
|
Bool RRHasScanoutPixmap(ScreenPtr pScreen);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Check whether client is operating on recent enough protocol version
|
||||||
|
* to know about refresh rates. This has influence on reply packet formats
|
||||||
|
*
|
||||||
|
* @param pClient the client to check
|
||||||
|
* @return TRUE if client using recent enough protocol version
|
||||||
|
*/
|
||||||
|
Bool RRClientKnowsRates(ClientPtr pClient);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Called by DIX to notify RANDR extension that a lease had been terminated.
|
||||||
|
*
|
||||||
|
* @param lease the lease that had been terminated
|
||||||
|
*/
|
||||||
|
void RRLeaseTerminated(RRLeasePtr lease);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Free a RRLease structure
|
||||||
|
*
|
||||||
|
* @param lease pointer to the lease to be freed
|
||||||
|
*/
|
||||||
|
void RRLeaseFree(RRLeasePtr lease);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Check whether given CRTC has an active lease
|
||||||
|
*
|
||||||
|
* @param crtc the CRTC to check
|
||||||
|
* @return TRUE if there is any active lease on that CRTC
|
||||||
|
*/
|
||||||
|
Bool RRCrtcIsLeased(RRCrtcPtr crtc);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Check whether given output is leased
|
||||||
|
*
|
||||||
|
* @param output the output to check
|
||||||
|
* @return TRUE if theere is any active lease on that output
|
||||||
|
*/
|
||||||
|
Bool RROutputIsLeased(RROutputPtr output);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Query a list of modes valid for some output in given screen
|
||||||
|
*
|
||||||
|
+ The list is allocated by that function and must be freed by caller.
|
||||||
|
* `num_ret` holds the number of entries (the buffer might be larger)
|
||||||
|
*
|
||||||
|
* @param pScreen the screen to query
|
||||||
|
* @param num_ret return buffer for number of returned modes
|
||||||
|
* @return pointer to array of RRModePtr's
|
||||||
|
*/
|
||||||
|
RRModePtr *RRModesForScreen(ScreenPtr pScreen, int *num_ret);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Initialize mode resource type
|
||||||
|
*
|
||||||
|
* @return TRUE on success
|
||||||
|
*/
|
||||||
|
Bool RRModeInit(void);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Initialize mode type error value
|
||||||
|
*
|
||||||
|
* @return TRUE on success
|
||||||
|
*/
|
||||||
|
void RRModeInitErrorValue(void);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Add user-given mode to output
|
||||||
|
*
|
||||||
|
* @param output the output where to which a mode should be added
|
||||||
|
* @param mode the mode to add to the output
|
||||||
|
* @return X error code
|
||||||
|
*/
|
||||||
|
int RROutputAddUserMode(RROutputPtr output, RRModePtr mode);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Delete user-given mode (that had been added via RROutputAddUserMode)
|
||||||
|
* from output.
|
||||||
|
*
|
||||||
|
* @param output the output from which the mode is to be removed
|
||||||
|
* @param mode the mode to be removed from output
|
||||||
|
* @return X error code
|
||||||
|
*/
|
||||||
|
int RROutputDeleteUserMode(RROutputPtr output, RRModePtr mode);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set subpixel order on given output
|
||||||
|
*
|
||||||
|
* @param output the output to set subpixel order on
|
||||||
|
* @param order subpixel order value to set
|
||||||
|
*/
|
||||||
|
void RROutputSetSubpixelOrder(RROutputPtr output, int order);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Deliver RROutputChangeNotify event to client
|
||||||
|
*
|
||||||
|
* @param pClient the client to send notify even to
|
||||||
|
* @param pWin the window who's screen is acted on
|
||||||
|
* @param output the output who's changes are delivered
|
||||||
|
*/
|
||||||
|
void RRDeliverOutputEvent(ClientPtr pClient, WindowPtr pWin, RROutputPtr output);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Initialize output resource type
|
||||||
|
*
|
||||||
|
* @return TRUE on success
|
||||||
|
*/
|
||||||
|
Bool RROutputInit(void);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Initialize output type error value
|
||||||
|
*/
|
||||||
|
void RROutputInitErrorValue(void);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* When the screen is reconfigured, move all pointers to the nearest
|
||||||
|
* CRTC
|
||||||
|
*
|
||||||
|
* @param pScreen the screen that had been reconfigured
|
||||||
|
*/
|
||||||
|
void RRPointerScreenConfigured(ScreenPtr pScreen);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Retrieve output property value
|
||||||
|
*
|
||||||
|
* @param output the output to query
|
||||||
|
* @param property Atom ID of the property to retrieve
|
||||||
|
* @param pending retrieve pending instead of current value
|
||||||
|
* @return pointer to property value or NULL (if not found)
|
||||||
|
*/
|
||||||
|
RRPropertyValuePtr RRGetOutputProperty(RROutputPtr output, Atom property, Bool pending);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Retrieve full property structure from output
|
||||||
|
*
|
||||||
|
* @param output the output to query
|
||||||
|
* @param property Atom ID of the property to query
|
||||||
|
* @return pointer to property structure, or NULL if not found
|
||||||
|
*/
|
||||||
|
RRPropertyPtr RRQueryOutputProperty(RROutputPtr output, Atom property);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Delete all properties on given output
|
||||||
|
*
|
||||||
|
* @param output the output whose properties shall be deleted
|
||||||
|
*/
|
||||||
|
void RRDeleteAllOutputProperties(RROutputPtr output);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Initialize render provider resource type
|
||||||
|
*
|
||||||
|
* @return TRUE on success
|
||||||
|
*/
|
||||||
|
Bool RRProviderInit(void);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Initialize RR provider error values
|
||||||
|
*/
|
||||||
|
void RRProviderInitErrorValue(void);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Create / allocate new provider structure
|
||||||
|
*
|
||||||
|
* @param pScreen the screen the provider belongs to
|
||||||
|
* @param name name of the provider (counted string)
|
||||||
|
* @param nameLen size of the provider name
|
||||||
|
* @return new provider structure, or NULL on failure
|
||||||
|
*/
|
||||||
|
RRProviderPtr RRProviderCreate(ScreenPtr pScreen, const char *name,
|
||||||
|
int nameLen);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set provider capabilities field
|
||||||
|
*
|
||||||
|
* @param provider the provider whose capabilities are to be set
|
||||||
|
* @param capabilities the new capabilities
|
||||||
|
*/
|
||||||
|
void RRProviderSetCapabilities(RRProviderPtr provider, uint32_t capabilities);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Destroy a provider and free it's memory
|
||||||
|
*
|
||||||
|
* @param provider the provider to be destroyed
|
||||||
|
*/
|
||||||
|
void RRProviderDestroy (RRProviderPtr provider);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Deliver provider ProviderChangeNotify event to client
|
||||||
|
*
|
||||||
|
* @param pClient the client to send even to
|
||||||
|
* @param pWin the window whose screen was changed
|
||||||
|
* @param provider the provider which was changed
|
||||||
|
*/
|
||||||
|
void RRDeliverProviderEvent(ClientPtr pClient, WindowPtr pWin, RRProviderPtr provider);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Auto configure a GPU screen
|
||||||
|
*
|
||||||
|
* @param pScreen the GPU screen to configure
|
||||||
|
* @param primaryScreen the associated primary screen
|
||||||
|
*/
|
||||||
|
void RRProviderAutoConfigGpuScreen(ScreenPtr pScreen, ScreenPtr primaryScreen);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Retrieve property value from provider
|
||||||
|
*
|
||||||
|
* @param provider the provider to query
|
||||||
|
* @param property Atom ID of the property to retrieve
|
||||||
|
* @param pending TRUE if pending (instead of current) value shall be fetched
|
||||||
|
* @return pointer to property value if found, otherwise NULL
|
||||||
|
*/
|
||||||
|
RRPropertyValuePtr RRGetProviderProperty(RRProviderPtr provider, Atom property, Bool pending);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Retrieve full property structure
|
||||||
|
* (instead of just the value -- @see RRGetProviderProperty)
|
||||||
|
*
|
||||||
|
* @param provider the provider to query
|
||||||
|
* @param property Atom ID of the property to retrieve
|
||||||
|
* @return pointer to render property structure if found, otherwise NULL
|
||||||
|
*/
|
||||||
|
RRPropertyPtr RRQueryProviderProperty(RRProviderPtr provider, Atom property);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Delete property from provider
|
||||||
|
*
|
||||||
|
* @param provider the provider to remove property from
|
||||||
|
* @param property Atom ID of the property to remove
|
||||||
|
*/
|
||||||
|
void RRDeleteProviderProperty(RRProviderPtr provider, Atom property);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Change property of provider
|
||||||
|
*
|
||||||
|
* @param provider the provider to change property on
|
||||||
|
* @param property Atom ID of the property to change
|
||||||
|
* @param type type Atom ID of the new property value
|
||||||
|
* @param format format (8/16/32) of the new property value
|
||||||
|
* @param len length in (format specific) units of the new property value
|
||||||
|
* @param value pointer to value data
|
||||||
|
* @param sendevent TRUE when change notify event shall be sent
|
||||||
|
* @param pending TRUE when pending instead of current value shall be changed
|
||||||
|
* @return X error code
|
||||||
|
*/
|
||||||
|
int RRChangeProviderProperty(RRProviderPtr provider, Atom property, Atom type,
|
||||||
|
int format, int mode, unsigned long len,
|
||||||
|
void *value, Bool sendevent, Bool pending);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Configure a (custom) property in given provider
|
||||||
|
*
|
||||||
|
* @param provider the provider to configure property in
|
||||||
|
* @param property Atom ID of the property
|
||||||
|
* @param pending TRUE on pending value
|
||||||
|
* @param range TRUE when limited range
|
||||||
|
* @param immutable TRUE when it's immutable
|
||||||
|
* @param num_values number of allowed values
|
||||||
|
* @param values allowed values (array of num_values length)
|
||||||
|
*/
|
||||||
|
int RRConfigureProviderProperty(RRProviderPtr provider, Atom property,
|
||||||
|
Bool pending, Bool range, Bool immutable,
|
||||||
|
int num_values, INT32 *values);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Init xinerama specific extension parts
|
||||||
|
*/
|
||||||
|
void RRXineramaExtensionInit(void);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Init transform structure
|
||||||
|
*
|
||||||
|
* @param transform the transform structure to initialized
|
||||||
|
*/
|
||||||
|
void RRTransformInit(RRTransformPtr transform);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Compare two transform structures
|
||||||
|
*
|
||||||
|
* @param a first transform
|
||||||
|
* @param b second transform
|
||||||
|
* @return TRUE if both transforms are equal
|
||||||
|
*/
|
||||||
|
Bool RRTransformEqual(RRTransformPtr a, RRTransformPtr b);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set filter on transform structure
|
||||||
|
*/
|
||||||
|
Bool RRTransformSetFilter(RRTransformPtr dst, PictFilterPtr filter,
|
||||||
|
xFixed *params, int nparams, int width, int height);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copy transform structure to another
|
||||||
|
*
|
||||||
|
* @param dst destination structure pointer
|
||||||
|
* @param src source structure pointer
|
||||||
|
* @return TRUE on success
|
||||||
|
*/
|
||||||
|
Bool RRTransformCopy(RRTransformPtr dst, RRTransformPtr src);
|
||||||
|
|
||||||
#endif /* _XSERVER_RANDRSTR_PRIV_H_ */
|
#endif /* _XSERVER_RANDRSTR_PRIV_H_ */
|
||||||
|
|
|
@ -20,8 +20,11 @@
|
||||||
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
|
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
|
||||||
* OF THIS SOFTWARE.
|
* OF THIS SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
#include <dix-config.h>
|
||||||
|
|
||||||
|
#include "randr/randrstr_priv.h"
|
||||||
|
#include "randr/rrdispatch_priv.h"
|
||||||
|
|
||||||
#include "randrstr_priv.h"
|
|
||||||
#include "swaprep.h"
|
#include "swaprep.h"
|
||||||
#include "mipointer.h"
|
#include "mipointer.h"
|
||||||
|
|
||||||
|
@ -32,7 +35,7 @@ RESTYPE RRCrtcType = 0;
|
||||||
/*
|
/*
|
||||||
* Notify the CRTC of some change
|
* Notify the CRTC of some change
|
||||||
*/
|
*/
|
||||||
void
|
static void
|
||||||
RRCrtcChanged(RRCrtcPtr crtc, Bool layoutChanged)
|
RRCrtcChanged(RRCrtcPtr crtc, Bool layoutChanged)
|
||||||
{
|
{
|
||||||
ScreenPtr pScreen = crtc->pScreen;
|
ScreenPtr pScreen = crtc->pScreen;
|
||||||
|
@ -720,6 +723,17 @@ rrCheckEmulated(RROutputPtr output)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Check whether the pending and current transforms are the same
|
||||||
|
*/
|
||||||
|
static inline Bool
|
||||||
|
RRCrtcPendingTransform(RRCrtcPtr crtc)
|
||||||
|
{
|
||||||
|
return !RRTransformEqual(&crtc->client_current_transform,
|
||||||
|
&crtc->client_pending_transform);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Request that the Crtc be reconfigured
|
* Request that the Crtc be reconfigured
|
||||||
*/
|
*/
|
||||||
|
@ -854,16 +868,6 @@ RRCrtcGetTransform(RRCrtcPtr crtc)
|
||||||
return transform;
|
return transform;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Check whether the pending and current transforms are the same
|
|
||||||
*/
|
|
||||||
Bool
|
|
||||||
RRCrtcPendingTransform(RRCrtcPtr crtc)
|
|
||||||
{
|
|
||||||
return !RRTransformEqual(&crtc->client_current_transform,
|
|
||||||
&crtc->client_pending_transform);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Destroy a Crtc at shutdown
|
* Destroy a Crtc at shutdown
|
||||||
*/
|
*/
|
||||||
|
@ -946,7 +950,7 @@ RRCrtcGammaSet(RRCrtcPtr crtc, CARD16 *red, CARD16 *green, CARD16 *blue)
|
||||||
* Request current gamma back from the DDX (if possible).
|
* Request current gamma back from the DDX (if possible).
|
||||||
* This includes gamma size.
|
* This includes gamma size.
|
||||||
*/
|
*/
|
||||||
Bool
|
static Bool
|
||||||
RRCrtcGammaGet(RRCrtcPtr crtc)
|
RRCrtcGammaGet(RRCrtcPtr crtc)
|
||||||
{
|
{
|
||||||
Bool ret = TRUE;
|
Bool ret = TRUE;
|
||||||
|
@ -1005,19 +1009,6 @@ Bool RRCrtcExists(ScreenPtr pScreen, RRCrtcPtr findCrtc)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Notify the extension that the Crtc gamma has been changed
|
|
||||||
* The driver calls this whenever it has changed the gamma values
|
|
||||||
* in the RRCrtcRec
|
|
||||||
*/
|
|
||||||
|
|
||||||
Bool
|
|
||||||
RRCrtcGammaNotify(RRCrtcPtr crtc)
|
|
||||||
{
|
|
||||||
return TRUE; /* not much going on here */
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
RRModeGetScanoutSize(RRModePtr mode, PictTransformPtr transform,
|
RRModeGetScanoutSize(RRModePtr mode, PictTransformPtr transform,
|
||||||
int *width, int *height)
|
int *width, int *height)
|
||||||
|
@ -1077,7 +1068,7 @@ RRCrtcGammaSetSize(RRCrtcPtr crtc, int size)
|
||||||
* Set the pending CRTC transformation
|
* Set the pending CRTC transformation
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int
|
static int
|
||||||
RRCrtcTransformSet(RRCrtcPtr crtc,
|
RRCrtcTransformSet(RRCrtcPtr crtc,
|
||||||
PictTransformPtr transform,
|
PictTransformPtr transform,
|
||||||
struct pixman_f_transform *f_transform,
|
struct pixman_f_transform *f_transform,
|
||||||
|
|
|
@ -23,6 +23,7 @@
|
||||||
|
|
||||||
#include "dix/dix_priv.h"
|
#include "dix/dix_priv.h"
|
||||||
#include "randr/randrstr_priv.h"
|
#include "randr/randrstr_priv.h"
|
||||||
|
#include "randr/rrdispatch_priv.h"
|
||||||
#include "os/fmt.h"
|
#include "os/fmt.h"
|
||||||
|
|
||||||
#include "protocol-versions.h"
|
#include "protocol-versions.h"
|
||||||
|
|
|
@ -0,0 +1,75 @@
|
||||||
|
/* SPDX-License-Identifier: MIT OR X11
|
||||||
|
*
|
||||||
|
* Copyright © 2024 Enrico Weigelt, metux IT consult <info@metux.net>
|
||||||
|
*
|
||||||
|
* @brief: prototypes for the individual request handlers
|
||||||
|
*/
|
||||||
|
#ifndef _XSERVER_RANDR_RRDISPATCH_H
|
||||||
|
#define _XSERVER_RANDR_RRDISPATCH_H
|
||||||
|
|
||||||
|
#include "include/dix.h"
|
||||||
|
|
||||||
|
/* screen related dispatch */
|
||||||
|
int ProcRRGetScreenSizeRange(ClientPtr client);
|
||||||
|
int ProcRRSetScreenSize(ClientPtr client);
|
||||||
|
int ProcRRGetScreenResources(ClientPtr client);
|
||||||
|
int ProcRRGetScreenResourcesCurrent(ClientPtr client);
|
||||||
|
int ProcRRSetScreenConfig(ClientPtr client);
|
||||||
|
int ProcRRGetScreenInfo(ClientPtr client);
|
||||||
|
|
||||||
|
/* crtc related dispatch */
|
||||||
|
int ProcRRGetCrtcInfo(ClientPtr client);
|
||||||
|
int ProcRRSetCrtcConfig(ClientPtr client);
|
||||||
|
int ProcRRGetCrtcGammaSize(ClientPtr client);
|
||||||
|
int ProcRRGetCrtcGamma(ClientPtr client);
|
||||||
|
int ProcRRSetCrtcGamma(ClientPtr client);
|
||||||
|
int ProcRRSetCrtcTransform(ClientPtr client);
|
||||||
|
int ProcRRGetCrtcTransform(ClientPtr client);
|
||||||
|
|
||||||
|
/* mode related dispatch */
|
||||||
|
int ProcRRCreateMode(ClientPtr client);
|
||||||
|
int ProcRRDestroyMode(ClientPtr client);
|
||||||
|
int ProcRRAddOutputMode(ClientPtr client);
|
||||||
|
int ProcRRDeleteOutputMode(ClientPtr client);
|
||||||
|
|
||||||
|
/* output related dispatch */
|
||||||
|
int ProcRRGetOutputInfo(ClientPtr client);
|
||||||
|
int ProcRRSetOutputPrimary(ClientPtr client);
|
||||||
|
int ProcRRGetOutputPrimary(ClientPtr client);
|
||||||
|
int ProcRRChangeOutputProperty(ClientPtr client);
|
||||||
|
int ProcRRGetOutputProperty(ClientPtr client);
|
||||||
|
int ProcRRListOutputProperties(ClientPtr client);
|
||||||
|
int ProcRRQueryOutputProperty(ClientPtr client);
|
||||||
|
int ProcRRConfigureOutputProperty(ClientPtr client);
|
||||||
|
int ProcRRDeleteOutputProperty(ClientPtr client);
|
||||||
|
|
||||||
|
/* provider related dispatch */
|
||||||
|
int ProcRRGetProviders(ClientPtr client);
|
||||||
|
int ProcRRGetProviderInfo(ClientPtr client);
|
||||||
|
int ProcRRSetProviderOutputSource(ClientPtr client);
|
||||||
|
int ProcRRSetProviderOffloadSink(ClientPtr client);
|
||||||
|
int ProcRRGetProviderProperty(ClientPtr client);
|
||||||
|
int ProcRRListProviderProperties(ClientPtr client);
|
||||||
|
int ProcRRQueryProviderProperty(ClientPtr client);
|
||||||
|
int ProcRRConfigureProviderProperty(ClientPtr client);
|
||||||
|
int ProcRRChangeProviderProperty(ClientPtr client);
|
||||||
|
int ProcRRDeleteProviderProperty(ClientPtr client);
|
||||||
|
|
||||||
|
/* monitor related dispatch */
|
||||||
|
int ProcRRGetMonitors(ClientPtr client);
|
||||||
|
int ProcRRSetMonitor(ClientPtr client);
|
||||||
|
int ProcRRDeleteMonitor(ClientPtr client);
|
||||||
|
|
||||||
|
int ProcRRGetPanning(ClientPtr client);
|
||||||
|
int ProcRRSetPanning(ClientPtr client);
|
||||||
|
|
||||||
|
int ProcRRCreateLease(ClientPtr client);
|
||||||
|
int ProcRRFreeLease(ClientPtr client);
|
||||||
|
|
||||||
|
int ProcRRQueryVersion(ClientPtr client);
|
||||||
|
int ProcRRSelectInput(ClientPtr client);
|
||||||
|
|
||||||
|
int ProcRRDispatch(ClientPtr client);
|
||||||
|
int SProcRRDispatch(ClientPtr client);
|
||||||
|
|
||||||
|
#endif /* _XSERVER_RANDR_RRDISPATCH_H */
|
|
@ -19,8 +19,9 @@
|
||||||
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
|
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
|
||||||
* OF THIS SOFTWARE.
|
* OF THIS SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
#include <dix-config.h>
|
||||||
|
|
||||||
#include "randrstr.h"
|
#include "randr/randrstr_priv.h"
|
||||||
|
|
||||||
#ifdef RANDR_10_INTERFACE
|
#ifdef RANDR_10_INTERFACE
|
||||||
static RRModePtr
|
static RRModePtr
|
||||||
|
@ -297,17 +298,6 @@ RRRegisterRate(ScreenPtr pScreen, RRScreenSizePtr pSize, int rate)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
Rotation
|
|
||||||
RRGetRotation(ScreenPtr pScreen)
|
|
||||||
{
|
|
||||||
RROutputPtr output = RRFirstOutput(pScreen);
|
|
||||||
|
|
||||||
if (!output)
|
|
||||||
return RR_Rotate_0;
|
|
||||||
|
|
||||||
return output->crtc->rotation;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
RRSetCurrentConfig(ScreenPtr pScreen,
|
RRSetCurrentConfig(ScreenPtr pScreen,
|
||||||
Rotation rotation, int rate, RRScreenSizePtr pSize)
|
Rotation rotation, int rate, RRScreenSizePtr pSize)
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
|
|
||||||
#include "dix/dix_priv.h"
|
#include "dix/dix_priv.h"
|
||||||
#include "randr/randrstr_priv.h"
|
#include "randr/randrstr_priv.h"
|
||||||
|
#include "randr/rrdispatch_priv.h"
|
||||||
#include "os/client_priv.h"
|
#include "os/client_priv.h"
|
||||||
|
|
||||||
#include "swaprep.h"
|
#include "swaprep.h"
|
||||||
|
|
|
@ -23,6 +23,7 @@
|
||||||
|
|
||||||
#include "dix/dix_priv.h"
|
#include "dix/dix_priv.h"
|
||||||
#include "randr/randrstr_priv.h"
|
#include "randr/randrstr_priv.h"
|
||||||
|
#include "randr/rrdispatch_priv.h"
|
||||||
|
|
||||||
RESTYPE RRModeType;
|
RESTYPE RRModeType;
|
||||||
|
|
||||||
|
|
|
@ -23,6 +23,7 @@
|
||||||
|
|
||||||
#include "dix/dix_priv.h"
|
#include "dix/dix_priv.h"
|
||||||
#include "randr/randrstr_priv.h"
|
#include "randr/randrstr_priv.h"
|
||||||
|
#include "randr/rrdispatch_priv.h"
|
||||||
|
|
||||||
#include "swaprep.h"
|
#include "swaprep.h"
|
||||||
|
|
||||||
|
|
|
@ -26,6 +26,7 @@
|
||||||
|
|
||||||
#include "dix/dix_priv.h"
|
#include "dix/dix_priv.h"
|
||||||
#include "randr/randrstr_priv.h"
|
#include "randr/randrstr_priv.h"
|
||||||
|
#include "randr/rrdispatch_priv.h"
|
||||||
|
|
||||||
RESTYPE RROutputType;
|
RESTYPE RROutputType;
|
||||||
|
|
||||||
|
@ -286,15 +287,13 @@ RROutputSetConnection(RROutputPtr output, CARD8 connection)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
Bool
|
void RROutputSetSubpixelOrder(RROutputPtr output, int subpixelOrder)
|
||||||
RROutputSetSubpixelOrder(RROutputPtr output, int subpixelOrder)
|
|
||||||
{
|
{
|
||||||
if (output->subpixelOrder == subpixelOrder)
|
if (output->subpixelOrder == subpixelOrder)
|
||||||
return TRUE;
|
return;
|
||||||
|
|
||||||
output->subpixelOrder = subpixelOrder;
|
output->subpixelOrder = subpixelOrder;
|
||||||
RROutputChanged(output, FALSE);
|
RROutputChanged(output, FALSE);
|
||||||
return TRUE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Bool
|
Bool
|
||||||
|
|
|
@ -22,35 +22,11 @@
|
||||||
#include <dix-config.h>
|
#include <dix-config.h>
|
||||||
|
|
||||||
#include "dix/cursor_priv.h"
|
#include "dix/cursor_priv.h"
|
||||||
|
#include "randr/randrstr_priv.h"
|
||||||
|
|
||||||
#include "randrstr.h"
|
#include "randrstr.h"
|
||||||
#include "inputstr.h"
|
#include "inputstr.h"
|
||||||
|
|
||||||
/*
|
|
||||||
* When the pointer moves, check to see if the specified position is outside
|
|
||||||
* any of theavailable CRTCs and move it to a 'sensible' place if so, where
|
|
||||||
* sensible is the closest monitor to the departing edge.
|
|
||||||
*
|
|
||||||
* Returns whether the position was adjusted
|
|
||||||
*/
|
|
||||||
|
|
||||||
static Bool
|
|
||||||
RRCrtcContainsPosition(RRCrtcPtr crtc, int x, int y)
|
|
||||||
{
|
|
||||||
RRModePtr mode = crtc->mode;
|
|
||||||
int scan_width, scan_height;
|
|
||||||
|
|
||||||
if (!mode)
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
RRCrtcGetScanoutSize(crtc, &scan_width, &scan_height);
|
|
||||||
|
|
||||||
if (crtc->x <= x && x < crtc->x + scan_width &&
|
|
||||||
crtc->y <= y && y < crtc->y + scan_height)
|
|
||||||
return TRUE;
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Find the CRTC nearest the specified position, ignoring 'skip'
|
* Find the CRTC nearest the specified position, ignoring 'skip'
|
||||||
*/
|
*/
|
||||||
|
@ -104,33 +80,6 @@ RRPointerToNearestCrtc(DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y,
|
||||||
pScrPriv->pointerCrtc = nearest;
|
pScrPriv->pointerCrtc = nearest;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
|
||||||
RRPointerMoved(ScreenPtr pScreen, int x, int y)
|
|
||||||
{
|
|
||||||
rrScrPriv(pScreen);
|
|
||||||
RRCrtcPtr pointerCrtc = pScrPriv->pointerCrtc;
|
|
||||||
int c;
|
|
||||||
|
|
||||||
/* Check last known CRTC */
|
|
||||||
if (pointerCrtc && RRCrtcContainsPosition(pointerCrtc, x, y))
|
|
||||||
return;
|
|
||||||
|
|
||||||
/* Check all CRTCs */
|
|
||||||
for (c = 0; c < pScrPriv->numCrtcs; c++) {
|
|
||||||
RRCrtcPtr crtc = pScrPriv->crtcs[c];
|
|
||||||
|
|
||||||
if (RRCrtcContainsPosition(crtc, x, y)) {
|
|
||||||
/* Remember containing CRTC */
|
|
||||||
pScrPriv->pointerCrtc = crtc;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* None contain pointer, find nearest */
|
|
||||||
ErrorF("RRPointerMoved: Untested, may cause \"bogus pointer event\"\n");
|
|
||||||
RRPointerToNearestCrtc(inputInfo.pointer, pScreen, x, y, pointerCrtc);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* When the screen is reconfigured, move all pointers to the nearest
|
* When the screen is reconfigured, move all pointers to the nearest
|
||||||
* CRTC
|
* CRTC
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
#include <X11/Xatom.h>
|
#include <X11/Xatom.h>
|
||||||
|
|
||||||
#include "dix/dix_priv.h"
|
#include "dix/dix_priv.h"
|
||||||
|
#include "randr/rrdispatch_priv.h"
|
||||||
|
|
||||||
#include "randrstr_priv.h"
|
#include "randrstr_priv.h"
|
||||||
#include "propertyst.h"
|
#include "propertyst.h"
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
|
|
||||||
#include "dix/dix_priv.h"
|
#include "dix/dix_priv.h"
|
||||||
#include "randr/randrstr_priv.h"
|
#include "randr/randrstr_priv.h"
|
||||||
|
#include "randr/rrdispatch_priv.h"
|
||||||
|
|
||||||
#include "swaprep.h"
|
#include "swaprep.h"
|
||||||
|
|
||||||
|
@ -459,16 +460,6 @@ RRProviderInit(void)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
Bool
|
|
||||||
RRProviderLookup(XID id, RRProviderPtr *provider_p)
|
|
||||||
{
|
|
||||||
int rc = dixLookupResourceByType((void **)provider_p, id,
|
|
||||||
RRProviderType, NullClient, DixReadAccess);
|
|
||||||
if (rc == Success)
|
|
||||||
return TRUE;
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
RRDeliverProviderEvent(ClientPtr client, WindowPtr pWin, RRProviderPtr provider)
|
RRDeliverProviderEvent(ClientPtr client, WindowPtr pWin, RRProviderPtr provider)
|
||||||
{
|
{
|
||||||
|
|
|
@ -22,8 +22,9 @@
|
||||||
#include <dix-config.h>
|
#include <dix-config.h>
|
||||||
|
|
||||||
#include "dix/dix_priv.h"
|
#include "dix/dix_priv.h"
|
||||||
|
#include "randr/randrstr_priv.h"
|
||||||
|
#include "randr/rrdispatch_priv.h"
|
||||||
|
|
||||||
#include "randrstr_priv.h"
|
|
||||||
#include "propertyst.h"
|
#include "propertyst.h"
|
||||||
#include "swaprep.h"
|
#include "swaprep.h"
|
||||||
|
|
||||||
|
@ -82,17 +83,6 @@ RRDeleteProperty(RRProviderRec * provider, RRPropertyRec * prop)
|
||||||
RRDestroyProviderProperty(prop);
|
RRDestroyProviderProperty(prop);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
|
||||||
RRDeleteAllProviderProperties(RRProviderPtr provider)
|
|
||||||
{
|
|
||||||
RRPropertyPtr prop, next;
|
|
||||||
|
|
||||||
for (prop = provider->properties; prop; prop = next) {
|
|
||||||
next = prop->next;
|
|
||||||
RRDeleteProperty(provider, prop);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
RRInitProviderPropertyValue(RRPropertyValuePtr property_value)
|
RRInitProviderPropertyValue(RRPropertyValuePtr property_value)
|
||||||
{
|
{
|
||||||
|
@ -248,46 +238,6 @@ RRChangeProviderProperty(RRProviderPtr provider, Atom property, Atom type,
|
||||||
return Success;
|
return Success;
|
||||||
}
|
}
|
||||||
|
|
||||||
Bool
|
|
||||||
RRPostProviderPendingProperties(RRProviderPtr provider)
|
|
||||||
{
|
|
||||||
RRPropertyValuePtr pending_value;
|
|
||||||
RRPropertyValuePtr current_value;
|
|
||||||
RRPropertyPtr property;
|
|
||||||
Bool ret = TRUE;
|
|
||||||
|
|
||||||
if (!provider->pendingProperties)
|
|
||||||
return TRUE;
|
|
||||||
|
|
||||||
provider->pendingProperties = FALSE;
|
|
||||||
for (property = provider->properties; property; property = property->next) {
|
|
||||||
/* Skip non-pending properties */
|
|
||||||
if (!property->is_pending)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
pending_value = &property->pending;
|
|
||||||
current_value = &property->current;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* If the pending and current values are equal, don't mark it
|
|
||||||
* as changed (which would deliver an event)
|
|
||||||
*/
|
|
||||||
if (pending_value->type == current_value->type &&
|
|
||||||
pending_value->format == current_value->format &&
|
|
||||||
pending_value->size == current_value->size &&
|
|
||||||
!memcmp(pending_value->data, current_value->data,
|
|
||||||
pending_value->size * (pending_value->format / 8)))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (RRChangeProviderProperty(provider, property->propertyName,
|
|
||||||
pending_value->type, pending_value->format,
|
|
||||||
PropModeReplace, pending_value->size,
|
|
||||||
pending_value->data, TRUE, FALSE) != Success)
|
|
||||||
ret = FALSE;
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
RRPropertyPtr
|
RRPropertyPtr
|
||||||
RRQueryProviderProperty(RRProviderPtr provider, Atom property)
|
RRQueryProviderProperty(RRProviderPtr provider, Atom property)
|
||||||
{
|
{
|
||||||
|
|
|
@ -23,6 +23,7 @@
|
||||||
|
|
||||||
#include "dix/dix_priv.h"
|
#include "dix/dix_priv.h"
|
||||||
#include "randr/randrstr_priv.h"
|
#include "randr/randrstr_priv.h"
|
||||||
|
#include "randr/rrdispatch_priv.h"
|
||||||
|
|
||||||
static CARD16
|
static CARD16
|
||||||
RR10CurrentSizeID(ScreenPtr pScreen);
|
RR10CurrentSizeID(ScreenPtr pScreen);
|
||||||
|
|
|
@ -19,8 +19,10 @@
|
||||||
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
|
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
|
||||||
* OF THIS SOFTWARE.
|
* OF THIS SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
#include <dix-config.h>
|
||||||
|
|
||||||
#include "randrstr_priv.h"
|
#include "randr/randrstr_priv.h"
|
||||||
|
#include "randr/rrdispatch_priv.h"
|
||||||
|
|
||||||
static int _X_COLD
|
static int _X_COLD
|
||||||
SProcRRQueryVersion(ClientPtr client)
|
SProcRRQueryVersion(ClientPtr client)
|
||||||
|
|
|
@ -19,9 +19,10 @@
|
||||||
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
|
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
|
||||||
* OF THIS SOFTWARE.
|
* OF THIS SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
#include <dix-config.h>
|
||||||
|
|
||||||
#include "randrstr.h"
|
#include "randr/randrstr_priv.h"
|
||||||
#include "rrtransform.h"
|
#include "randr/rrtransform.h"
|
||||||
|
|
||||||
void
|
void
|
||||||
RRTransformInit(RRTransformPtr transform)
|
RRTransformInit(RRTransformPtr transform)
|
||||||
|
@ -34,12 +35,6 @@ RRTransformInit(RRTransformPtr transform)
|
||||||
transform->nparams = 0;
|
transform->nparams = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
|
||||||
RRTransformFini(RRTransformPtr transform)
|
|
||||||
{
|
|
||||||
free(transform->params);
|
|
||||||
}
|
|
||||||
|
|
||||||
Bool
|
Bool
|
||||||
RRTransformEqual(RRTransformPtr a, RRTransformPtr b)
|
RRTransformEqual(RRTransformPtr a, RRTransformPtr b)
|
||||||
{
|
{
|
||||||
|
|
|
@ -39,24 +39,6 @@ struct _rrTransform {
|
||||||
int height;
|
int height;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern _X_EXPORT void
|
|
||||||
RRTransformInit(RRTransformPtr transform);
|
|
||||||
|
|
||||||
extern _X_EXPORT void
|
|
||||||
RRTransformFini(RRTransformPtr transform);
|
|
||||||
|
|
||||||
extern _X_EXPORT Bool
|
|
||||||
RRTransformEqual(RRTransformPtr a, RRTransformPtr b);
|
|
||||||
|
|
||||||
extern _X_EXPORT Bool
|
|
||||||
|
|
||||||
RRTransformSetFilter(RRTransformPtr dst,
|
|
||||||
PictFilterPtr filter,
|
|
||||||
xFixed * params, int nparams, int width, int height);
|
|
||||||
|
|
||||||
extern _X_EXPORT Bool
|
|
||||||
RRTransformCopy(RRTransformPtr dst, RRTransformPtr src);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Compute the complete transformation matrix including
|
* Compute the complete transformation matrix including
|
||||||
* client-specified transform, rotation/reflection values and the crtc
|
* client-specified transform, rotation/reflection values and the crtc
|
||||||
|
|
Loading…
Reference in New Issue