Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/dev/pci support RI_FULLCLEAR



details:   https://anonhg.NetBSD.org/src/rev/9c95fbdd19f6
branches:  trunk
changeset: 786987:9c95fbdd19f6
user:      macallan <macallan%NetBSD.org@localhost>
date:      Tue May 28 10:55:34 2013 +0000

description:
support RI_FULLCLEAR

diffstat:

 sys/dev/pci/machfb.c |  22 +++++++++++++++-------
 1 files changed, 15 insertions(+), 7 deletions(-)

diffs (50 lines):

diff -r 07ebd64deda1 -r 9c95fbdd19f6 sys/dev/pci/machfb.c
--- a/sys/dev/pci/machfb.c      Tue May 28 05:55:40 2013 +0000
+++ b/sys/dev/pci/machfb.c      Tue May 28 10:55:34 2013 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: machfb.c,v 1.86 2012/10/27 17:18:34 chs Exp $  */
+/*     $NetBSD: machfb.c,v 1.87 2013/05/28 10:55:34 macallan Exp $     */
 
 /*
  * Copyright (c) 2002 Bang Jun-Young
@@ -34,7 +34,7 @@
 
 #include <sys/cdefs.h>
 __KERNEL_RCSID(0, 
-       "$NetBSD: machfb.c,v 1.86 2012/10/27 17:18:34 chs Exp $");
+       "$NetBSD: machfb.c,v 1.87 2013/05/28 10:55:34 macallan Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -859,7 +859,7 @@
        ri->ri_width = sc->sc_my_mode->hdisplay;
        ri->ri_height = sc->sc_my_mode->vdisplay;
        ri->ri_stride = ri->ri_width;
-       ri->ri_flg = RI_CENTER;
+       ri->ri_flg = RI_CENTER | RI_FULLCLEAR;
        if (ri->ri_depth == 8)
                ri->ri_flg |= RI_8BIT_IS_RGB | RI_ENABLE_ALPHA;
 
@@ -1703,10 +1703,18 @@
        int32_t x, y, width, height, fg, bg, ul;
        
        if ((sc->sc_locked == 0) && (sc->sc_mode == WSDISPLAYIO_MODE_EMUL)) {
-               x = ri->ri_xorigin;
-               y = ri->ri_yorigin + ri->ri_font->fontheight * row;
-               width = ri->ri_emuwidth;
-               height = ri->ri_font->fontheight * nrows;
+               if ((row == 0) && (nrows == ri->ri_rows)) {
+                       /* clear full screen */ 
+                       x = 0;
+                       y = 0;
+                       width = sc->virt_x;
+                       height = sc->virt_y;
+               } else {
+                       x = ri->ri_xorigin;
+                       y = ri->ri_yorigin + ri->ri_font->fontheight * row;
+                       width = ri->ri_emuwidth;
+                       height = ri->ri_font->fontheight * nrows;
+               }
                rasops_unpack_attr(fillattr, &fg, &bg, &ul);
 
                mach64_rectfill(sc, x, y, width, height, ri->ri_devcmap[bg]);



Home | Main Index | Thread Index | Old Index