static void draw_frame_extras(struct vidbuffer *vb, int y_start, int y_end)
{
- if (currprefs.leds_on_screen && ((currprefs.leds_on_screen & STATUSLINE_CHIPSET) && !(currprefs.leds_on_screen & STATUSLINE_TARGET))) {
+ if ((currprefs.leds_on_screen & STATUSLINE_CHIPSET) && softstatusline()) {
int slx, sly;
statusline_getpos(vb->monitor_id, &slx, &sly, vb->outwidth, vb->outheight, 1, 1);
statusbar_y1 = sly + min_ypos_for_screen - 1;
{
last_drawn_line = 0;
first_drawn_line = 32767;
+ // do not do full refresh if lagless mode
+ // because last line would appear as bright line
+ if (isvsync_chipset() < 0)
+ return;
finish_drawing_frame(true);
- //flush_screen (vidinfo->inbuffer, 0, 0);
}
void full_redraw_all(void)
gotsurf = true;
}
if (data->surface && gotsurf) {
- if (!(currprefs.leds_on_screen & STATUSLINE_TARGET))
+ if (softstatusline())
picasso_statusline(data->monitor_id, data->surface);
}
}
gb->gfxboard_surface = gfx_lock_picasso(gb->monitor_id, false, false);
}
if (gb->gfxboard_surface) {
- if (!(currprefs.leds_on_screen & STATUSLINE_TARGET))
+ if (softstatusline())
picasso_statusline(gb->monitor_id, gb->gfxboard_surface);
}
}
extern void draw_status_line_single(int monid, uae_u8 *buf, int bpp, int y, int totalwidth, uae_u32 *rc, uae_u32 *gc, uae_u32 *bc, uae_u32 *alpha);
extern void statusline_single_erase(int monid, uae_u8 *buf, int bpp, int y, int totalwidth);
extern void statusline_getpos(int monid, int *x, int *y, int width, int height, int hx, int vx);
+extern bool softstatusline(void);
#define STATUSTYPE_FLOPPY 1
#define STATUSTYPE_DISPLAY 2
gotsurf = true;
}
if (data->a2410_surface && gotsurf) {
- if (!(currprefs.leds_on_screen & STATUSLINE_TARGET))
+ if (softstatusline())
picasso_statusline(monid, data->a2410_surface);
}
}
dst = gfx_lock_picasso(monid, false, false);
}
if (dst) {
- if (!(currprefs.leds_on_screen & STATUSLINE_TARGET)) {
+ if (softstatusline()) {
picasso_statusline(monid, dst);
}
maxy = vidinfo->height;
static HPALETTE statusline_palette;
static bool statusline_was_updated;
+bool softstatusline(void)
+{
+ if (currprefs.gfx_api > 0)
+ return false;
+ return (currprefs.leds_on_screen & STATUSLINE_TARGET) == 0;
+}
+
void deletestatusline(int monid)
{
if (monid)