shithub: cursedfs

Download patch

ref: 4ae0c34b7ed27db5062153219e7e4b49b9013d75
parent: ebc87ef165d107747d2f7267e8ed12e55f782bff
author: henesy <[email protected]>
date: Fri Mar 11 03:34:07 EST 2022

screen tweaks

--- a/screen.c
+++ b/screen.c
@@ -11,7 +11,7 @@
 Image *brush;						// For drawing the text
 Rune *s = L"☺☹σπß";	// for testing
 int bwidth = 4;						// border width of window
-Rune **sbuf;						// screen buffer
+Rune **sbuf, **ebuf;				// screen buffer, empty buffer
 usize sheight = 25, swidth = 80;	// screen height, width
 Lock slock;							// screen buffer lock
 
@@ -21,7 +21,7 @@
 
 // Render the active buffer on a timer
 void
-renderbuf(void)
+renderbuf(Rune **buf)
 {
 	int i;
 	lock(&slock);
@@ -28,10 +28,10 @@
 	Point out, p;
 	Point at = screen->r.min;
 	for(i = 0; i < sheight; i++){
-		p = runestringsize(ourfont, sbuf[i]);
+		p = runestringsize(ourfont, buf[i]);
 		out = runestring(
 			screen, at, display->black, ZP,
-		    ourfont, sbuf[i]
+		    ourfont, buf[i]
 		);
 		at.y += p.y;
 	}
@@ -62,7 +62,6 @@
 void
 initbuf(void)
 {
-	Point out;
 	int y, x;
 	ourfont = openfont(display, "/lib/font/bit/vga/unicode.font");
 
@@ -70,17 +69,16 @@
 
 	lock(&slock);
 	sbuf = calloc(sheight, sizeof (Rune*));
+	ebuf = calloc(sheight, sizeof (Rune*));
 	for(y = 0; y < sheight; y++){
 		sbuf[y] = calloc(swidth+1, sizeof (Rune));
-		for(x = 0; x < swidth; x++)
+		ebuf[y] = calloc(swidth+1, sizeof (Rune));
+		for(x = 0; x < swidth; x++){
 			sbuf[y][x] = L'☺';
+			ebuf[y][x] = L' ';
+		}
 	}
 	unlock(&slock);
-
-	out = runestring(
-			screen, screen->r.min, display->black, ZP,
-		    ourfont, s
-	);
 }
 
 
@@ -107,6 +105,7 @@
 
 
 	initbuf();
+	renderbuf(ebuf);
 
 	// Set the screen size (after initbuf)
 	//echo resize -dx 100 -dy 100 > /dev/wctl
@@ -138,8 +137,11 @@
 			(ev.mouse.buttons & 4) && 
 			(emenuhit(3, &ev.mouse, &menu) == 0)) threadexitsall(nil);
 		else 
-			if(e == timer)
-				renderbuf();
+			if(e == timer){
+				// Might not want this
+				renderbuf(ebuf);
+				renderbuf(sbuf);
+			}
 	}
 }