contrary to the manual the right-to-left flag also causes the blitter to
work bottom-to-top Now all copy*() methods should work properly in all directions.
This commit is contained in:
parent
241f2dcf8d
commit
b509f991f8
@ -1,4 +1,4 @@
|
|||||||
/* $NetBSD: voyagerfb.c,v 1.8 2011/08/30 01:21:03 macallan Exp $ */
|
/* $NetBSD: voyagerfb.c,v 1.9 2011/08/30 02:53:01 macallan Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2009 Michael Lorenz
|
* Copyright (c) 2009 Michael Lorenz
|
||||||
@ -31,7 +31,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <sys/cdefs.h>
|
#include <sys/cdefs.h>
|
||||||
__KERNEL_RCSID(0, "$NetBSD: voyagerfb.c,v 1.8 2011/08/30 01:21:03 macallan Exp $");
|
__KERNEL_RCSID(0, "$NetBSD: voyagerfb.c,v 1.9 2011/08/30 02:53:01 macallan Exp $");
|
||||||
|
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
#include <sys/systm.h>
|
#include <sys/systm.h>
|
||||||
@ -601,9 +601,16 @@ voyagerfb_bitblt(struct voyagerfb_softc *sc, int xs, int ys, int xd, int yd,
|
|||||||
if (xd <= xs) {
|
if (xd <= xs) {
|
||||||
/* left to right */
|
/* left to right */
|
||||||
} else {
|
} else {
|
||||||
|
/*
|
||||||
|
* According to the manual this flag reverses only the blitter's
|
||||||
|
* X direction. At least on my Gdium it also reverses the Y
|
||||||
|
* direction
|
||||||
|
*/
|
||||||
cmd |= SM502_CTRL_R_TO_L;
|
cmd |= SM502_CTRL_R_TO_L;
|
||||||
xs += he - 1;
|
xs += wi - 1;
|
||||||
xd += wi - 1;
|
xd += wi - 1;
|
||||||
|
ys += he - 1;
|
||||||
|
yd += he - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
bus_space_write_4(sc->sc_memt, sc->sc_regh, SM502_CONTROL, cmd);
|
bus_space_write_4(sc->sc_memt, sc->sc_regh, SM502_CONTROL, cmd);
|
||||||
|
Loading…
Reference in New Issue
Block a user