[Xorg-driver-geode] Rendering for rotation

Jonathan Morton jonathan.morton at movial.com
Fri Jul 9 09:45:58 PDT 2010


On Fri, 2010-07-09 at 09:17 +0800, Huang, FrankR wrote:
> What I am care about is the srcX and srcY which the server transmit
> the parameters to lx_do_composite. In my opinion, the srcX and srcY
> should be handled just as maskX and maskY(subtract them if they are
> not out of the region or in negative value). But it seems that it is
> wrong to do that(subtract them) if in rotation mode.

I'm still not quite clear on what your hardware expects when XRandR has
been set for rotation.

If you have a dedicated rotation system built into your RAMDAC, then you
would change the dimensions of the framebuffer but rendering would then
continue as normal.  Rendering commands given to your driver would not
be transformed if the client was not explicitly asking for a transform.
So no special handling is needed by your driver.

If, instead, you must do rotation during rendering (rather than during
scanout), then XRandR will cause some rendering commands to be provided
with a 90-, 180- or 270-degree rotate transform applied, and some
commands without it.  This depends on whether the command is from a
nominally upright pixmap to the rotated framebuffer, or vice versa, or
between two upright pixmaps.

So in that latter case, where you have rotated rendering but not rotated
scanout support, you must examine the transform matrices you are given
and understand how to apply them.  If this is what you need, say so and
I will attempt to explain it.  The matrices you will need to handle will
have unit or zero coefficients in most positions.

-- 
------
From: Jonathan Morton
      jonathan.morton at movial.com




More information about the xorg-devel mailing list