More selective redraw
This commit is contained in:
parent
5a8ee380fe
commit
1892352885
|
@ -23,4 +23,4 @@ void screen_redraw(void);
|
|||
Uint8 screen_dei(Uxn *u, Uint8 addr);
|
||||
void screen_deo(Uint8 *ram, Uint8 *d, Uint8 port);
|
||||
|
||||
#define SCALE 3
|
||||
#define SCALE 1
|
||||
|
|
18
src/uxn11.c
18
src/uxn11.c
|
@ -35,7 +35,7 @@ char *rom_path;
|
|||
|
||||
#define WIDTH (64 * 8)
|
||||
#define HEIGHT (40 * 8)
|
||||
#define PAD 4
|
||||
#define PAD 0
|
||||
#define CONINBUFSIZE 256
|
||||
|
||||
Uint16 deo_mask[] = {0xff28, 0x0300, 0xc028, 0x8000, 0x8000, 0x8000, 0x8000, 0x0000, 0x0000, 0x0000, 0xa260, 0xa260, 0x0000, 0x0000, 0x0000, 0x0000};
|
||||
|
@ -68,13 +68,6 @@ uxn_deo(Uxn *u, Uint8 addr)
|
|||
}
|
||||
}
|
||||
|
||||
static void
|
||||
emu_draw(void)
|
||||
{
|
||||
screen_redraw();
|
||||
XPutImage(display, window, DefaultGC(display, 0), ximage, 0, 0, PAD, PAD, uxn_screen.width * SCALE, uxn_screen.height * SCALE);
|
||||
}
|
||||
|
||||
static int
|
||||
emu_start(Uxn *u, char *rom)
|
||||
{
|
||||
|
@ -125,7 +118,7 @@ emu_event(Uxn *u)
|
|||
XNextEvent(display, &ev);
|
||||
switch(ev.type) {
|
||||
case Expose:
|
||||
emu_draw();
|
||||
XPutImage(display, window, DefaultGC(display, 0), ximage, 0, 0, 0, 0, uxn_screen.width, uxn_screen.height);
|
||||
break;
|
||||
case ClientMessage: {
|
||||
XDestroyImage(ximage);
|
||||
|
@ -237,8 +230,11 @@ main(int argc, char **argv)
|
|||
for(i = 0; i < n; i++)
|
||||
console_input(&u, coninp[i], CONSOLE_STD);
|
||||
}
|
||||
if(uxn_screen.x2)
|
||||
emu_draw();
|
||||
if(uxn_screen.x2) {
|
||||
int x1 = uxn_screen.x1, y1 = uxn_screen.y1, x2 = uxn_screen.x2, y2 = uxn_screen.y2;
|
||||
screen_redraw();
|
||||
XPutImage(display, window, DefaultGC(display, 0), ximage, x1, y1, x1, y1, x2 - x1, y2 - y1);
|
||||
}
|
||||
}
|
||||
XDestroyImage(ximage);
|
||||
return 0;
|
||||
|
|
Loading…
Reference in New Issue