diff options
author | des <des@FreeBSD.org> | 1999-02-05 12:40:16 +0000 |
---|---|---|
committer | des <des@FreeBSD.org> | 1999-02-05 12:40:16 +0000 |
commit | 481c70e8c63e3fbab220e098337004d6ce732010 (patch) | |
tree | 5ba8c67a07a3ce807cbac5b8e2e5fcf4c4512383 /sys/dev/syscons/logo | |
parent | 6b5cb42c67aa5bea7e114c03e3ff298be4e22f17 (diff) | |
download | FreeBSD-src-481c70e8c63e3fbab220e098337004d6ce732010.zip FreeBSD-src-481c70e8c63e3fbab220e098337004d6ce732010.tar.gz |
Followup to yokota's last commit:
- va_mode_flags -> va_info.vi_flags
- scanline width may be different from screen width
Diffstat (limited to 'sys/dev/syscons/logo')
-rw-r--r-- | sys/dev/syscons/logo/logo_saver.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/sys/dev/syscons/logo/logo_saver.c b/sys/dev/syscons/logo/logo_saver.c index 1db8dcc..c55b565 100644 --- a/sys/dev/syscons/logo/logo_saver.c +++ b/sys/dev/syscons/logo/logo_saver.c @@ -25,7 +25,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: logo_saver.c,v 1.3 1999/01/11 03:18:49 yokota Exp $ + * $Id: logo_saver.c,v 1.4 1999/01/16 10:20:16 des Exp $ */ #include <sys/param.h> @@ -37,7 +37,7 @@ #include <saver.h> static u_char *vid; -static int banksize, scrmode, scrw, scrh; +static int banksize, scrmode, bpsl, scrw, scrh; static int blanked; #include "logo.c" @@ -47,25 +47,25 @@ logo_blit(video_adapter_t *adp, int x, int y) { int d, l, o, p; - for (o = 0, p = y * scrw + x; p > banksize; p -= banksize) + for (o = 0, p = y * bpsl + x; p > banksize; p -= banksize) o += banksize; set_origin(adp, o); for (d = 0; d < sizeof logo_img; d += logo_w) { if (p + logo_w < banksize) { bcopy(logo_img + d, vid + p, logo_w); - p += scrw; + p += bpsl; } else if (p < banksize) { l = banksize - p; bcopy(logo_img + d, vid + p, l); set_origin(adp, (o += banksize)); bcopy(logo_img + d + l, vid, logo_w - l); - p += scrw - banksize; + p += bpsl - banksize; } else { p -= banksize; set_origin(adp, (o += banksize)); bcopy(logo_img + d, vid + p, logo_w); - p += scrw; + p += bpsl; } } } @@ -100,8 +100,9 @@ logo_saver(video_adapter_t *adp, int blank) set_video_mode(adp, scrmode, logo_pal, 0); blanked++; vid = (u_char *)adp->va_window; + bpsl = adp->va_line_width; splx(pl); - for (i = 0; i < scrw*scrh; i += banksize) { + for (i = 0; i < bpsl*scrh; i += banksize) { set_origin(adp, i); bzero(vid, banksize); } |