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/ddx_priv.h"
|
||||
#include "os/osdep.h"
|
||||
#include "randr/randrstr_priv.h"
|
||||
|
||||
#include "servermd.h"
|
||||
#include "windowstr.h"
|
||||
|
@ -82,7 +83,6 @@
|
|||
#include "xf86InPriv.h"
|
||||
#include "xf86Crtc.h"
|
||||
#include "picturestr.h"
|
||||
#include "randrstr.h"
|
||||
#include "xf86Bus.h"
|
||||
#ifdef XSERVER_LIBPCIACCESS
|
||||
#include "xf86VGAarbiter.h"
|
||||
|
|
|
@ -39,6 +39,7 @@
|
|||
|
||||
#include "config/hotplug_priv.h"
|
||||
#include "dix/screenint_priv.h"
|
||||
#include "randr/randrstr_priv.h"
|
||||
|
||||
#include "os.h"
|
||||
#include "systemd-logind.h"
|
||||
|
@ -55,7 +56,6 @@
|
|||
#include "xf86Config.h"
|
||||
#include "xf86Crtc.h"
|
||||
|
||||
#include "randrstr.h"
|
||||
int platformSlotClaimed;
|
||||
|
||||
int xf86_num_platform_devices;
|
||||
|
|
|
@ -29,6 +29,8 @@
|
|||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "randr/randrstr_priv.h"
|
||||
|
||||
#include "xf86.h"
|
||||
#include "xf86DDC_priv.h"
|
||||
#include "xf86Crtc.h"
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
#include <X11/X.h>
|
||||
|
||||
#include "dix/colormap_priv.h"
|
||||
#include "randr/randrstr_priv.h"
|
||||
|
||||
#include "misc.h"
|
||||
#include "xf86.h"
|
||||
|
@ -18,7 +19,6 @@
|
|||
#include "cursorstr.h"
|
||||
#include "mi.h"
|
||||
#include "mipointer.h"
|
||||
#include "randrstr.h"
|
||||
#include "xf86CursorPriv.h"
|
||||
#include "servermd.h"
|
||||
|
||||
|
|
|
@ -27,13 +27,13 @@
|
|||
#include <xwayland-config.h>
|
||||
|
||||
#include "os/client_priv.h"
|
||||
#include "randr/randrstr_priv.h"
|
||||
|
||||
#ifdef WITH_LIBDRM
|
||||
#include <xf86drm.h>
|
||||
#include <xf86drmMode.h>
|
||||
#endif
|
||||
|
||||
#include "randrstr_priv.h"
|
||||
#include "xwayland-drm-lease.h"
|
||||
#include "xwayland-screen.h"
|
||||
#include "xwayland-output.h"
|
||||
|
|
|
@ -35,6 +35,8 @@
|
|||
#endif
|
||||
#include "win.h"
|
||||
|
||||
#include "randr/randrstr_priv.h"
|
||||
|
||||
/*
|
||||
* Answer queries about the RandR features supported.
|
||||
*/
|
||||
|
|
|
@ -21,6 +21,8 @@
|
|||
*/
|
||||
#include <dix-config.h>
|
||||
|
||||
#include "randr/randrstr_priv.h"
|
||||
|
||||
#include "present_priv.h"
|
||||
#include <gcstruct.h>
|
||||
|
||||
|
|
|
@ -21,6 +21,8 @@
|
|||
*/
|
||||
#include <dix-config.h>
|
||||
|
||||
#include "randr/randrstr_priv.h"
|
||||
|
||||
#include "present_priv.h"
|
||||
#include <misync.h>
|
||||
#include <misyncstr.h>
|
||||
|
|
|
@ -28,8 +28,9 @@
|
|||
|
||||
#include <dix-config.h>
|
||||
|
||||
#include "randrstr_priv.h"
|
||||
#include "extinit_priv.h"
|
||||
#include "randr/randrstr_priv.h"
|
||||
#include "randr/rrdispatch_priv.h"
|
||||
|
||||
/* From render.h */
|
||||
#ifndef SubPixelUnknown
|
||||
|
|
369
randr/randrstr.h
369
randr/randrstr.h
|
@ -462,8 +462,6 @@ typedef struct _RRClient {
|
|||
/* RRTimesRec times[0]; */
|
||||
} RRClientRec, *RRClientPtr;
|
||||
|
||||
extern _X_EXPORT RESTYPE RRCrtcType, RRModeType, RROutputType, RRProviderType, RRLeaseType;
|
||||
|
||||
#ifdef RANDR_12_INTERFACE
|
||||
/*
|
||||
* Set the range of sizes for the screen
|
||||
|
@ -498,36 +496,6 @@ RRScreenSizeSet(ScreenPtr pScreen,
|
|||
extern _X_EXPORT void
|
||||
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 */
|
||||
/* set a screen change on the primary screen */
|
||||
extern _X_EXPORT void
|
||||
|
@ -545,19 +513,10 @@ extern _X_EXPORT void
|
|||
extern _X_EXPORT Bool
|
||||
RRGetInfo(ScreenPtr pScreen, Bool force_query);
|
||||
|
||||
extern _X_EXPORT Bool RRInit(void);
|
||||
|
||||
extern _X_EXPORT Bool RRScreenInit(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
|
||||
/*
|
||||
* This is the old interface, deprecated but left
|
||||
|
@ -584,41 +543,21 @@ extern _X_EXPORT void
|
|||
RRSetCurrentConfig(ScreenPtr pScreen,
|
||||
Rotation rotation, int rate, RRScreenSizePtr pSize);
|
||||
|
||||
extern _X_EXPORT Rotation RRGetRotation(ScreenPtr pScreen);
|
||||
|
||||
#endif
|
||||
|
||||
/* 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
|
||||
*/
|
||||
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
|
||||
*/
|
||||
extern _X_EXPORT void
|
||||
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,
|
||||
* the driver calls this whenever it has updated the mode
|
||||
|
@ -631,9 +570,6 @@ RRCrtcNotify(RRCrtcPtr crtc,
|
|||
Rotation rotation,
|
||||
RRTransformPtr transform, int numOutputs, RROutputPtr * outputs);
|
||||
|
||||
extern _X_EXPORT void
|
||||
RRDeliverCrtcEvent(ClientPtr client, WindowPtr pWin, RRCrtcPtr crtc);
|
||||
|
||||
/*
|
||||
* Request that the Crtc be reconfigured
|
||||
*/
|
||||
|
@ -650,23 +586,6 @@ RRCrtcSet(RRCrtcPtr crtc,
|
|||
extern _X_EXPORT Bool
|
||||
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
|
||||
*/
|
||||
|
@ -674,110 +593,6 @@ extern _X_EXPORT Bool
|
|||
extern _X_EXPORT Bool
|
||||
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 */
|
||||
/*
|
||||
* 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
|
||||
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 */
|
||||
|
||||
/*
|
||||
|
@ -850,69 +636,18 @@ extern _X_EXPORT Bool
|
|||
RROutputSetModes(RROutputPtr output,
|
||||
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
|
||||
RROutputSetCrtcs(RROutputPtr output, RRCrtcPtr * crtcs, int numCrtcs);
|
||||
|
||||
extern _X_EXPORT Bool
|
||||
RROutputSetConnection(RROutputPtr output, CARD8 connection);
|
||||
|
||||
extern _X_EXPORT Bool
|
||||
RROutputSetSubpixelOrder(RROutputPtr output, int subpixelOrder);
|
||||
|
||||
extern _X_EXPORT Bool
|
||||
RROutputSetPhysicalSize(RROutputPtr output, int mmWidth, int mmHeight);
|
||||
|
||||
extern _X_EXPORT void
|
||||
RRDeliverOutputEvent(ClientPtr client, WindowPtr pWin, RROutputPtr output);
|
||||
|
||||
extern _X_EXPORT void
|
||||
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
|
||||
RRDeleteOutputProperty(RROutputPtr output, Atom property);
|
||||
|
||||
|
@ -928,113 +663,9 @@ extern _X_EXPORT int
|
|||
RRConfigureOutputProperty(RROutputPtr output, Atom property,
|
||||
Bool pending, Bool range, Bool immutable,
|
||||
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 */
|
||||
#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_ */
|
||||
|
||||
|
|
|
@ -29,6 +29,8 @@
|
|||
#ifndef _XSERVER_RANDRSTR_PRIV_H_
|
||||
#define _XSERVER_RANDRSTR_PRIV_H_
|
||||
|
||||
#include <X11/Xdefs.h>
|
||||
|
||||
#include "randrstr.h"
|
||||
|
||||
extern int RREventBase, RRErrorBase;
|
||||
|
@ -36,6 +38,12 @@ extern int RREventBase, RRErrorBase;
|
|||
extern RESTYPE RRClientType, RREventType; /* resource types for event masks */
|
||||
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 VERIFY_RR_OUTPUT(id, ptr, a)\
|
||||
|
@ -91,10 +99,6 @@ extern DevPrivateKeyRec RRClientPrivateKeyRec;
|
|||
#define GetRRClient(pClient) ((RRClientPtr)dixLookupPrivate(&(pClient)->devPrivates, RRClientPrivateKey))
|
||||
#define rrClientPriv(pClient) RRClientPtr pRRClient = GetRRClient(pClient)
|
||||
|
||||
int ProcRRGetPanning(ClientPtr client);
|
||||
|
||||
int ProcRRSetPanning(ClientPtr client);
|
||||
|
||||
void RRConstrainCursorHarder(DeviceIntPtr, ScreenPtr, int, int *, int *);
|
||||
|
||||
/* rrlease.c */
|
||||
|
@ -123,22 +127,431 @@ int RRMonitorAdd(ClientPtr client, ScreenPtr screen, 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_ */
|
||||
|
|
|
@ -20,8 +20,11 @@
|
|||
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
|
||||
* 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 "mipointer.h"
|
||||
|
||||
|
@ -32,7 +35,7 @@ RESTYPE RRCrtcType = 0;
|
|||
/*
|
||||
* Notify the CRTC of some change
|
||||
*/
|
||||
void
|
||||
static void
|
||||
RRCrtcChanged(RRCrtcPtr crtc, Bool layoutChanged)
|
||||
{
|
||||
ScreenPtr pScreen = crtc->pScreen;
|
||||
|
@ -720,6 +723,17 @@ rrCheckEmulated(RROutputPtr output)
|
|||
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
|
||||
*/
|
||||
|
@ -854,16 +868,6 @@ RRCrtcGetTransform(RRCrtcPtr crtc)
|
|||
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
|
||||
*/
|
||||
|
@ -946,7 +950,7 @@ RRCrtcGammaSet(RRCrtcPtr crtc, CARD16 *red, CARD16 *green, CARD16 *blue)
|
|||
* Request current gamma back from the DDX (if possible).
|
||||
* This includes gamma size.
|
||||
*/
|
||||
Bool
|
||||
static Bool
|
||||
RRCrtcGammaGet(RRCrtcPtr crtc)
|
||||
{
|
||||
Bool ret = TRUE;
|
||||
|
@ -1005,19 +1009,6 @@ Bool RRCrtcExists(ScreenPtr pScreen, RRCrtcPtr findCrtc)
|
|||
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
|
||||
RRModeGetScanoutSize(RRModePtr mode, PictTransformPtr transform,
|
||||
int *width, int *height)
|
||||
|
@ -1077,7 +1068,7 @@ RRCrtcGammaSetSize(RRCrtcPtr crtc, int size)
|
|||
* Set the pending CRTC transformation
|
||||
*/
|
||||
|
||||
int
|
||||
static int
|
||||
RRCrtcTransformSet(RRCrtcPtr crtc,
|
||||
PictTransformPtr transform,
|
||||
struct pixman_f_transform *f_transform,
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
|
||||
#include "dix/dix_priv.h"
|
||||
#include "randr/randrstr_priv.h"
|
||||
#include "randr/rrdispatch_priv.h"
|
||||
#include "os/fmt.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
|
||||
* OF THIS SOFTWARE.
|
||||
*/
|
||||
#include <dix-config.h>
|
||||
|
||||
#include "randrstr.h"
|
||||
#include "randr/randrstr_priv.h"
|
||||
|
||||
#ifdef RANDR_10_INTERFACE
|
||||
static RRModePtr
|
||||
|
@ -297,17 +298,6 @@ RRRegisterRate(ScreenPtr pScreen, RRScreenSizePtr pSize, int rate)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
Rotation
|
||||
RRGetRotation(ScreenPtr pScreen)
|
||||
{
|
||||
RROutputPtr output = RRFirstOutput(pScreen);
|
||||
|
||||
if (!output)
|
||||
return RR_Rotate_0;
|
||||
|
||||
return output->crtc->rotation;
|
||||
}
|
||||
|
||||
void
|
||||
RRSetCurrentConfig(ScreenPtr pScreen,
|
||||
Rotation rotation, int rate, RRScreenSizePtr pSize)
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
|
||||
#include "dix/dix_priv.h"
|
||||
#include "randr/randrstr_priv.h"
|
||||
#include "randr/rrdispatch_priv.h"
|
||||
#include "os/client_priv.h"
|
||||
|
||||
#include "swaprep.h"
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
|
||||
#include "dix/dix_priv.h"
|
||||
#include "randr/randrstr_priv.h"
|
||||
#include "randr/rrdispatch_priv.h"
|
||||
|
||||
RESTYPE RRModeType;
|
||||
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
|
||||
#include "dix/dix_priv.h"
|
||||
#include "randr/randrstr_priv.h"
|
||||
#include "randr/rrdispatch_priv.h"
|
||||
|
||||
#include "swaprep.h"
|
||||
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
|
||||
#include "dix/dix_priv.h"
|
||||
#include "randr/randrstr_priv.h"
|
||||
#include "randr/rrdispatch_priv.h"
|
||||
|
||||
RESTYPE RROutputType;
|
||||
|
||||
|
@ -286,15 +287,13 @@ RROutputSetConnection(RROutputPtr output, CARD8 connection)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
Bool
|
||||
RROutputSetSubpixelOrder(RROutputPtr output, int subpixelOrder)
|
||||
void RROutputSetSubpixelOrder(RROutputPtr output, int subpixelOrder)
|
||||
{
|
||||
if (output->subpixelOrder == subpixelOrder)
|
||||
return TRUE;
|
||||
return;
|
||||
|
||||
output->subpixelOrder = subpixelOrder;
|
||||
RROutputChanged(output, FALSE);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
Bool
|
||||
|
|
|
@ -22,35 +22,11 @@
|
|||
#include <dix-config.h>
|
||||
|
||||
#include "dix/cursor_priv.h"
|
||||
#include "randr/randrstr_priv.h"
|
||||
|
||||
#include "randrstr.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'
|
||||
*/
|
||||
|
@ -104,33 +80,6 @@ RRPointerToNearestCrtc(DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y,
|
|||
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
|
||||
* CRTC
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
#include <X11/Xatom.h>
|
||||
|
||||
#include "dix/dix_priv.h"
|
||||
#include "randr/rrdispatch_priv.h"
|
||||
|
||||
#include "randrstr_priv.h"
|
||||
#include "propertyst.h"
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
|
||||
#include "dix/dix_priv.h"
|
||||
#include "randr/randrstr_priv.h"
|
||||
#include "randr/rrdispatch_priv.h"
|
||||
|
||||
#include "swaprep.h"
|
||||
|
||||
|
@ -459,16 +460,6 @@ RRProviderInit(void)
|
|||
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
|
||||
RRDeliverProviderEvent(ClientPtr client, WindowPtr pWin, RRProviderPtr provider)
|
||||
{
|
||||
|
|
|
@ -22,8 +22,9 @@
|
|||
#include <dix-config.h>
|
||||
|
||||
#include "dix/dix_priv.h"
|
||||
#include "randr/randrstr_priv.h"
|
||||
#include "randr/rrdispatch_priv.h"
|
||||
|
||||
#include "randrstr_priv.h"
|
||||
#include "propertyst.h"
|
||||
#include "swaprep.h"
|
||||
|
||||
|
@ -82,17 +83,6 @@ RRDeleteProperty(RRProviderRec * provider, RRPropertyRec * 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
|
||||
RRInitProviderPropertyValue(RRPropertyValuePtr property_value)
|
||||
{
|
||||
|
@ -248,46 +238,6 @@ RRChangeProviderProperty(RRProviderPtr provider, Atom property, Atom type,
|
|||
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
|
||||
RRQueryProviderProperty(RRProviderPtr provider, Atom property)
|
||||
{
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
|
||||
#include "dix/dix_priv.h"
|
||||
#include "randr/randrstr_priv.h"
|
||||
#include "randr/rrdispatch_priv.h"
|
||||
|
||||
static CARD16
|
||||
RR10CurrentSizeID(ScreenPtr pScreen);
|
||||
|
|
|
@ -19,8 +19,10 @@
|
|||
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
|
||||
* 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
|
||||
SProcRRQueryVersion(ClientPtr client)
|
||||
|
|
|
@ -19,9 +19,10 @@
|
|||
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
|
||||
* OF THIS SOFTWARE.
|
||||
*/
|
||||
#include <dix-config.h>
|
||||
|
||||
#include "randrstr.h"
|
||||
#include "rrtransform.h"
|
||||
#include "randr/randrstr_priv.h"
|
||||
#include "randr/rrtransform.h"
|
||||
|
||||
void
|
||||
RRTransformInit(RRTransformPtr transform)
|
||||
|
@ -34,12 +35,6 @@ RRTransformInit(RRTransformPtr transform)
|
|||
transform->nparams = 0;
|
||||
}
|
||||
|
||||
void
|
||||
RRTransformFini(RRTransformPtr transform)
|
||||
{
|
||||
free(transform->params);
|
||||
}
|
||||
|
||||
Bool
|
||||
RRTransformEqual(RRTransformPtr a, RRTransformPtr b)
|
||||
{
|
||||
|
|
|
@ -39,24 +39,6 @@ struct _rrTransform {
|
|||
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
|
||||
* client-specified transform, rotation/reflection values and the crtc
|
||||
|
|
Loading…
Reference in New Issue