Concrete RandR 1.3 specification additions due 27 July 2007

Keith Packard keithp at keithp.com
Fri Jul 20 18:03:48 PDT 2007


Let's move from 'it would be good' to 'I think it should', writing down
specifications for new RandR protocol as a part of the 1.3 work. Of
course, making a protocol suggestion comes with at least some
expectation that an implementation will follow shortly.

Let's set an artifical deadline of Friday, 27 July, 2007 at 23:59 PDT
for proposed new extension semantics and changes to existing semantics.
Anything missing that deadline can wait for RandR 1.4.

Here's the protocol that I'm working on today for projective
transformations. I have a property-based implementation of this working
already, the protocol-based version should be quickly finished.

┌───
    RRSetCrtcTransform
        crtc: CRTC
        transform: TRANSFORM
        inverse: TRANSFORM
└───
        Errors: Crtc, Match

This request provides a mechanism that is more general than the existing
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.

This request sets the transform to be used at the next RRSetCrtcConfig
request execution; it does not cause any change to occur in the current
configuration.

When a non-identity transformation is in use, the rectangle returned by
RRGetCrtcInfo defines the bounding rectangle of the screen that is projected
to the crtc. It is this projected rectangle which must be within the area of
the screen when the mode is set.

┌───
    RRGetCrtcTransform
        crtc: CRTC
      ▶
        pending-transform: TRANSFORM
        pending-inverse: TRANSFORM
        current-transform: TRANSFORM
        current-inverse: TRANSFORM
└───

This request returns the pending and current transforms for the specified
CRTC. The pending transform will be the same as the current transform if no
new pending transform has been set since the last call to RRSetCrtcConfig.


-- 
keith.packard at intel.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
URL: <http://lists.x.org/archives/xorg/attachments/20070720/5b1e87ae/attachment.pgp>


More information about the xorg mailing list