From 2d09f9cac379c74f492b528a8aa2ac3b5997d617 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Tue, 18 Mar 2008 16:01:10 -0700 Subject: Eliminate inverse matrix from randr transform protocol It is easier, and potentially more precise, to compute the inverse in the server where everything can eventually be kept in floating point form. --- randrproto.h | 16 ++++++---------- randrproto.txt | 6 +----- 2 files changed, 7 insertions(+), 15 deletions(-) diff --git a/randrproto.h b/randrproto.h index e6bab25..6c52eea 100644 --- a/randrproto.h +++ b/randrproto.h @@ -568,13 +568,11 @@ typedef struct { CARD16 length B16; RRCrtc crtc B32; xRenderTransform transform; - CARD32 pad0 B32; - xRenderTransform inverse; CARD16 nbytesFilter; /* number of bytes in filter name */ CARD16 pad B16; } xRRSetCrtcTransformReq; -#define sz_xRRSetCrtcTransformReq 88 +#define sz_xRRSetCrtcTransformReq 48 typedef struct { CARD8 reqType; @@ -592,19 +590,17 @@ typedef struct { CARD32 length B32; xRenderTransform pendingTransform; BYTE hasTransforms; - CARD8 pad0a; - CARD16 pad0 B16; - xRenderTransform pendingInverse; - CARD16 pendingNbytesFilter B16; /* number of bytes in filter name */ - CARD16 pendingNparamsFilter B16; /* number of filter params */ + CARD8 pad0; + CARD16 pad1 B16; xRenderTransform currentTransform; CARD32 pad2 B32; - xRenderTransform currentInverse; + CARD16 pendingNbytesFilter B16; /* number of bytes in filter name */ + CARD16 pendingNparamsFilter B16; /* number of filter params */ CARD16 currentNbytesFilter B16; /* number of bytes in filter name */ CARD16 currentNparamsFilter B16; /* number of filter params */ } xRRGetCrtcTransformReply; -#define sz_xRRGetCrtcTransformReply 168 +#define sz_xRRGetCrtcTransformReply 96 /* * event diff --git a/randrproto.txt b/randrproto.txt index ac40f93..eac79c7 100644 --- a/randrproto.txt +++ b/randrproto.txt @@ -983,7 +983,6 @@ dynamic changes in the display environment. RRSetCrtcTransform crtc: CRTC transform: TRANSFORM - inverse: TRANSFORM filter: STRING8 values: LISTofFIXED └─── @@ -994,8 +993,7 @@ rotation and reflection values for describing the transformation from frame buffer image to crtc presentation. 'transform' is a full 2D projective transformations from screen coordinate space to crtc coordinate space. This transformation is applied before the rotation and reflection values to -compute the complete transform. 'inverse' must be the -multiplicative inverse of 'transform' or a Match error results. +compute the complete transform. 'filter' and 'values' specify a Render filter that may be used by the server when transforming data from frame buffer to crtc. @@ -1014,11 +1012,9 @@ the screen when the mode is set. crtc: CRTC ▶ pending-transform: TRANSFORM - pending-inverse: TRANSFORM pending-filter: STRING8 pending-values: LISTofFIXED current-transform: TRANSFORM - current-inverse: TRANSFORM current-filter: STRING8 current-values: LISTofFIXED └─── -- cgit v1.2.1