diff options
author | cinap_lenrek <cinap_lenrek@centraldogma> | 2011-08-23 05:33:51 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@centraldogma> | 2011-08-23 05:33:51 +0200 |
commit | e54222fb0df35c9738947a6757dde09bf361a576 (patch) | |
tree | 57bd0f64687c09724326d3ec45f2c1bc98043b53 /sys/src/9/pc/devvga.c | |
parent | 1af6c6df32df945b930de31972f003c068a7f6cc (diff) |
implement vesa screenblanking (issue #36)
Diffstat (limited to 'sys/src/9/pc/devvga.c')
-rw-r--r-- | sys/src/9/pc/devvga.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/sys/src/9/pc/devvga.c b/sys/src/9/pc/devvga.c index f1ecba8e9..10875f450 100644 --- a/sys/src/9/pc/devvga.c +++ b/sys/src/9/pc/devvga.c @@ -277,8 +277,13 @@ vgactl(Cmdbuf *cb) for(i = 0; vgadev[i]; i++){ if(strcmp(cb->f[1], vgadev[i]->name)) continue; - if(scr->dev && scr->dev->disable) - scr->dev->disable(scr); + if(scr->dev){ + if(scr->dev->disable) + scr->dev->disable(scr); + scr->fill = nil; + scr->scroll = nil; + scr->blank = nil; + } scr->dev = vgadev[i]; if(scr->dev->enable) scr->dev->enable(scr); @@ -352,6 +357,8 @@ vgactl(Cmdbuf *cb) error("drawinit: no gscreen"); if(scr->dev && scr->dev->drawinit) scr->dev->drawinit(scr); + hwblank = scr->blank != nil; + hwaccel = scr->scroll || scr->fill; vgascreenwin(scr); resetscreenimage(); cursoron(1); |