On Sat, 2016-09-24 at 05:09 +0300, Keith Packard wrote:
> > Adam Jackson writes:
>
> > You want to make this non-static, so in the xinerama case you can do
> > this translation once at the top level.
>
>
> ...
>
> > You're not correcting stuff->coordMode in place, which means
Adam Jackson writes:
> You want to make this non-static, so in the xinerama case you can do
> this translation once at the top level.
...
> You're not correcting stuff->coordMode in place, which means under
> xinerama you'll mutate geometry once per screen, which ain't right.
On Fri, 2016-09-23 at 01:15 +0300, Keith Packard wrote:
> +static void
> +FixCoordModePrevious(int npt, xPoint *ppt)
> +{
> +int x, y;
> +
> +x = ppt->x;
> +y = ppt->y;
> +npt--;
> +while (npt--) {
> +ppt++;
> +x = (ppt->x += x);
> +y = (ppt->y += y);
>
Doing this in DIX makes the drivers all simpler and fixes bugs in
a couple of wrappers which got CoordModePrevious wrong.
Signed-off-by: Keith Packard
---
dix/dispatch.c | 36 ++--
exa/exa_accel.c| 26 +++--