summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2015-01-02 18:48:22 +0100
committercinap_lenrek <cinap_lenrek@felloff.net>2015-01-02 18:48:22 +0100
commit68b8351f8c176057e4e07ddbce94235f2ae23159 (patch)
treeed8f1684e19ea84cdcfb4b94f602bfbbf62ee038
parent6cb93914f2b955209aabd63c44cecac36aaca6c6 (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.c35
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();
}
/*