diff options
author | Keith Packard <keithp@keithp.com> | 2008-03-13 21:31:12 -0700 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2008-11-24 13:24:36 -0800 |
commit | e3d6f279d5c305dfb81ca109fbfb665870712d2f (patch) | |
tree | bc08da754654f5858bd212a99f085a735e49c6fe /randr/randrstr.h | |
parent | ff9d1cd843a9b0aba69a3d788b21d5f6af702590 (diff) |
Wire up RandR CRTC transform protocol, bump server to RandR 1.3
This involved removing a pile of matrix code from the DDX,
as well as moving a bit of transform logic from DDX to DIX.
Diffstat (limited to 'randr/randrstr.h')
-rw-r--r-- | randr/randrstr.h | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/randr/randrstr.h b/randr/randrstr.h index 4692ddf91..320e9f742 100644 --- a/randr/randrstr.h +++ b/randr/randrstr.h @@ -119,6 +119,12 @@ struct _rrCrtc { CARD16 *gammaBlue; CARD16 *gammaGreen; void *devPrivate; + PictTransform client_pending_transform; + PictTransform client_pending_inverse; + PictTransform client_current_transform; + PictTransform client_current_inverse; + PictTransform transform; + PictTransform inverse; }; struct _rrOutput { @@ -587,6 +593,23 @@ void RRCrtcGetScanoutSize(RRCrtcPtr crtc, int *width, int *height); /* + * Compute the complete transformation matrix including + * client-specified transform, rotation/reflection values and the crtc + * offset. + * + * Return TRUE if the resulting transform is not a simple translation. + */ +Bool +RRComputeTransform (RRModePtr mode, + Rotation rotation, + int x, + int y, + PictTransformPtr client_transform, + PictTransformPtr client_inverse, + PictTransformPtr transform, + PictTransformPtr inverse); + +/* * Return crtc transform */ Bool @@ -601,11 +624,27 @@ void RRCrtcPostPendingTransform (RRCrtcPtr crtc); /* + * Check whether the pending and current transforms are the same + */ +Bool +RRCrtcPendingTransform (RRCrtcPtr crtc); + +/* * Destroy a Crtc at shutdown */ void RRCrtcDestroy (RRCrtcPtr crtc); + +/* + * Set the pending CRTC transformation + */ + +int +RRCrtcTransformSet (RRCrtcPtr crtc, + PictTransformPtr transform, + PictTransformPtr inverse); + /* * Initialize crtc type */ @@ -631,6 +670,12 @@ ProcRRGetCrtcGamma (ClientPtr client); int ProcRRSetCrtcGamma (ClientPtr client); +int +ProcRRSetCrtcTransform (ClientPtr client); + +int +ProcRRGetCrtcTransform (ClientPtr client); + /* rrdispatch.c */ Bool RRClientKnowsRates (ClientPtr pClient); |