ui, fix sdl flickering and status lines artifact issues

This commit is contained in:
kub 2020-10-07 20:17:01 +02:00
parent 3618d636d2
commit 758abbebc2
7 changed files with 81 additions and 70 deletions

View file

@ -436,27 +436,26 @@ void plat_status_msg_clear(void)
int is_8bit = !is_16bit_mode();
if (currentConfig.EmuOpt & EOPT_WIZ_TEAR_FIX) {
/* ugh.. */
int i, u, *p;
int u, *p;
if (is_8bit) {
for (i = 0; i < 4; i++) {
p = (int *)gp2x_screens[i] + (240-8) / 4;
for (u = 320; u > 0; u--, p += 240/4)
p[0] = p[1] = 0xe0e0e0e0;
}
p = (int *)g_screen_ptr + (240-8) / 4;
for (u = 320; u > 0; u--, p += 240/4)
p[0] = p[1] = 0xe0e0e0e0;
} else {
for (i = 0; i < 4; i++) {
p = (int *)gp2x_screens[i] + (240-8)*2 / 4;
for (u = 320; u > 0; u--, p += 240*2/4)
p[0] = p[1] = p[2] = p[3] = 0;
}
p = (int *)g_screen_ptr + (240-8)*2 / 4;
for (u = 320; u > 0; u--, p += 240*2/4)
p[0] = p[1] = p[2] = p[3] = 0;
}
return;
} else {
if (is_8bit) {
char *d = (char *)g_screen_ptr + 320 * (240-8);
memset32((int *)d, 0xe0, 320 * 8 / 4);
} else {
short *d = (short *)g_screen_ptr + 320 * (240-8);
memset32((int *)d, 0, 2*320 * 8 / 4);
}
}
if (is_8bit)
gp2x_memset_all_buffers(320*232, 0xe0, 320*8);
else
gp2x_memset_all_buffers(320*232*2, 0, 320*8*2);
}
void plat_status_msg_busy_next(const char *msg)
@ -473,7 +472,6 @@ void plat_status_msg_busy_next(const char *msg)
void plat_status_msg_busy_first(const char *msg)
{
gp2x_memcpy_all_buffers(g_screen_ptr, 0, 320*240*2);
plat_status_msg_busy_next(msg);
}