Browse code

ppu_redraw: use the same optimization that one-layer logic had

Sigrid Solveig Haflínudóttir authored on 25/12/2021 14:57:43
Showing 1 changed files
... ...
@@ -82,9 +82,11 @@ ppu_clear(Ppu *p, Layer *layer)
82 82
 void
83 83
 ppu_redraw(Ppu *p, Uint32 *screen)
84 84
 {
85
-	Uint32 i, size = p->width * p->height;
85
+	Uint32 i, size = p->width * p->height, palette[16];
86
+	for(i = 0; i < 16; ++i)
87
+		palette[i] = p->palette[(i >> 2) ? (i >> 2) : (i & 3)];
86 88
 	for(i = 0; i < size; ++i)
87
-		screen[i] = p->palette[p->fg.pixels[i] ? p->fg.pixels[i] : p->bg.pixels[i]];
89
+		screen[i] = palette[p->fg.pixels[i] << 2 | p->bg.pixels[i]];
88 90
 	p->fg.changed = p->bg.changed = 0;
89 91
 }
90 92