summaryrefslogtreecommitdiff
path: root/randr/randrstr.h
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2008-03-13 21:31:12 -0700
committerKeith Packard <keithp@keithp.com>2008-11-24 13:24:36 -0800
commite3d6f279d5c305dfb81ca109fbfb665870712d2f (patch)
treebc08da754654f5858bd212a99f085a735e49c6fe /randr/randrstr.h
parentff9d1cd843a9b0aba69a3d788b21d5f6af702590 (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.h45
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);