diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2015-01-02 18:48:22 +0100 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2015-01-02 18:48:22 +0100 |
commit | 68b8351f8c176057e4e07ddbce94235f2ae23159 (patch) | |
tree | ed8f1684e19ea84cdcfb4b94f602bfbbf62ee038 | |
parent | 6cb93914f2b955209aabd63c44cecac36aaca6c6 (diff) |
devdraw: remove broken color palette blanking
the code did not work as drawactive() was called with
the drawlock held. instead of fixing, the code for
palette blanking has been removed.
-rw-r--r-- | sys/src/9/port/devdraw.c | 35 |
1 files changed, 3 insertions, 32 deletions
diff --git a/sys/src/9/port/devdraw.c b/sys/src/9/port/devdraw.c index ffb3bdfba..a1e84d9e4 100644 --- a/sys/src/9/port/devdraw.c +++ b/sys/src/9/port/devdraw.c @@ -63,7 +63,6 @@ struct Draw int softscreen; int blanked; /* screen turned off */ ulong blanktime; /* time of last operation */ - ulong savemap[3*256]; }; struct Client @@ -1196,7 +1195,6 @@ drawread(Chan *c, void *a, long n, vlong off) break; case Qcolormap: - drawactive(1); /* to restore map from backup */ p = malloc(4*12*256+1); if(p == 0) error(Enomem); @@ -1301,7 +1299,6 @@ drawwrite(Chan *c, void *a, long n, vlong) break; case Qcolormap: - drawactive(1); /* to restore map from backup */ m = n; n = 0; while(m > 0){ @@ -2129,7 +2126,6 @@ drawcmap(void) int num, den; int i, j; - drawactive(1); /* to restore map from backup */ for(r=0,i=0; r!=4; r++) for(v=0; v!=4; v++,i+=16){ for(g=0,j=v-r; g!=4; g++) @@ -2156,38 +2152,13 @@ drawcmap(void) void drawblankscreen(int blank) { - int i, nc; - ulong *p; - if(blank == sdraw.blanked) return; - if(!candlock()) - return; - if(screenimage == nil){ + if(up != nil && islo() && candlock()){ + blankscreen(blank); + sdraw.blanked = blank; dunlock(); - return; } - p = sdraw.savemap; - nc = screenimage->depth > 8 ? 256 : 1<<screenimage->depth; - - /* - * blankscreen uses the hardware to blank the screen - * when possible. to help in cases when it is not possible, - * we set the color map to be all black. - */ - if(blank == 0){ /* turn screen on */ - for(i=0; i<nc; i++, p+=3) - setcolor(i, p[0], p[1], p[2]); - blankscreen(0); - }else{ /* turn screen off */ - blankscreen(1); - for(i=0; i<nc; i++, p+=3){ - getcolor(i, &p[0], &p[1], &p[2]); - setcolor(i, 0, 0, 0); - } - } - sdraw.blanked = blank; - dunlock(); } /* |