~rabbits/uxn

18de47cc1c603622a2867a7431b7b55d9102f072 — Devine Lu Linvega 13 days ago 85df5f2
Fixed issue with out-of-screen painting
1 files changed, 7 insertions(+), 8 deletions(-)

M src/devices/screen.c
M src/devices/screen.c => src/devices/screen.c +7 -8
@@ 28,13 28,12 @@ static Uint32 palette_mono[] = {
static void
screen_write(UxnScreen *p, Layer *layer, Uint16 x, Uint16 y, Uint8 color)
{
	Uint32 i;
	if(x > p->width || y > p->height)
		return;
	i = x + y * p->width;
	if(color != layer->pixels[i]) {
		layer->pixels[i] = color;
		layer->changed = 1;
	if(x < p->width && y < p->height) {
		Uint32 i = x + y * p->width;
		if(color != layer->pixels[i]) {
			layer->pixels[i] = color;
			layer->changed = 1;
		}
	}
}



@@ 189,7 188,7 @@ screen_deo(Uint8 *ram, Uint8 *d, Uint8 port)
		n = d[0x6] >> 4;
		dx = (d[0x6] & 0x01) << 3;
		dy = (d[0x6] & 0x02) << 2;
		if(addr > 0xfff0)
		if(addr > 0x10000 - ((n + 1) << (3 + twobpp)))
			return;
		for(i = 0; i <= n; i++) {
			if(!(d[0xf] & 0xf))