artist: Allow to turn cursor on or off
Bit 0x80 in the cursor_cntrl register specifies if the cursor should be visible. Prevent rendering the cursor if it's invisible. Signed-off-by: Helge Deller <deller@gmx.de> Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
This commit is contained in:
parent
482afe020b
commit
a377b574eb
@ -353,10 +353,20 @@ static void artist_get_cursor_pos(ARTISTState *s, int *x, int *y)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline bool cursor_visible(ARTISTState *s)
|
||||||
|
{
|
||||||
|
/* cursor is visible if bit 0x80 is set in cursor_cntrl */
|
||||||
|
return s->cursor_cntrl & 0x80;
|
||||||
|
}
|
||||||
|
|
||||||
static void artist_invalidate_cursor(ARTISTState *s)
|
static void artist_invalidate_cursor(ARTISTState *s)
|
||||||
{
|
{
|
||||||
int x, y;
|
int x, y;
|
||||||
|
|
||||||
|
if (!cursor_visible(s)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
artist_get_cursor_pos(s, &x, &y);
|
artist_get_cursor_pos(s, &x, &y);
|
||||||
artist_invalidate_lines(&s->vram_buffer[ARTIST_BUFFER_AP],
|
artist_invalidate_lines(&s->vram_buffer[ARTIST_BUFFER_AP],
|
||||||
y, s->cursor_height);
|
y, s->cursor_height);
|
||||||
@ -1218,6 +1228,10 @@ static void artist_draw_cursor(ARTISTState *s)
|
|||||||
struct vram_buffer *cursor0, *cursor1 , *buf;
|
struct vram_buffer *cursor0, *cursor1 , *buf;
|
||||||
int cx, cy, cursor_pos_x, cursor_pos_y;
|
int cx, cy, cursor_pos_x, cursor_pos_y;
|
||||||
|
|
||||||
|
if (!cursor_visible(s)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
cursor0 = &s->vram_buffer[ARTIST_BUFFER_CURSOR1];
|
cursor0 = &s->vram_buffer[ARTIST_BUFFER_CURSOR1];
|
||||||
cursor1 = &s->vram_buffer[ARTIST_BUFFER_CURSOR2];
|
cursor1 = &s->vram_buffer[ARTIST_BUFFER_CURSOR2];
|
||||||
buf = &s->vram_buffer[ARTIST_BUFFER_AP];
|
buf = &s->vram_buffer[ARTIST_BUFFER_AP];
|
||||||
|
Loading…
Reference in New Issue
Block a user