Add back damage argument to nvnc_set_cursor

It's better to keep feeding buffers to keep buffers in rotation for damage
tracking purposes.
pull/63/head
Andri Yngvason 2022-02-21 21:38:44 +00:00
parent 9c02e6afaf
commit aca09358ea
3 changed files with 9 additions and 3 deletions

View File

@ -281,7 +281,7 @@ int main(int argc, char* argv[])
struct nvnc_fb* cursor = create_cursor(); struct nvnc_fb* cursor = create_cursor();
assert(cursor); assert(cursor);
nvnc_set_cursor(server, cursor, 0, 0, 32, 32); nvnc_set_cursor(server, cursor, 0, 0, 32, 32, true);
nvnc_fb_unref(cursor); nvnc_fb_unref(cursor);
struct aml_signal* sig = aml_signal_new(SIGINT, on_sigint, NULL, NULL); struct aml_signal* sig = aml_signal_new(SIGINT, on_sigint, NULL, NULL);

View File

@ -143,4 +143,5 @@ void nvnc_display_feed_buffer(struct nvnc_display*, struct nvnc_fb*,
void nvnc_send_cut_text(struct nvnc*, const char* text, uint32_t len); void nvnc_send_cut_text(struct nvnc*, const char* text, uint32_t len);
void nvnc_set_cursor(struct nvnc*, struct nvnc_fb*, uint16_t width, void nvnc_set_cursor(struct nvnc*, struct nvnc_fb*, uint16_t width,
uint16_t height, uint16_t hotspot_x, uint16_t hotspot_y); uint16_t height, uint16_t hotspot_x, uint16_t hotspot_y,
bool is_damaged);

View File

@ -1574,7 +1574,8 @@ cert_alloc_failure:
EXPORT EXPORT
void nvnc_set_cursor(struct nvnc* self, struct nvnc_fb* fb, uint16_t width, void nvnc_set_cursor(struct nvnc* self, struct nvnc_fb* fb, uint16_t width,
uint16_t height, uint16_t hotspot_x, uint16_t hotspot_y) uint16_t height, uint16_t hotspot_x, uint16_t hotspot_y,
bool is_damaged)
{ {
if (self->cursor.buffer) { if (self->cursor.buffer) {
nvnc_fb_release(self->cursor.buffer); nvnc_fb_release(self->cursor.buffer);
@ -1582,6 +1583,7 @@ void nvnc_set_cursor(struct nvnc* self, struct nvnc_fb* fb, uint16_t width,
} }
self->cursor.buffer = fb; self->cursor.buffer = fb;
if (fb) { if (fb) {
// TODO: Hash cursors to check if they actually changed? // TODO: Hash cursors to check if they actually changed?
nvnc_fb_ref(fb); nvnc_fb_ref(fb);
@ -1599,6 +1601,9 @@ void nvnc_set_cursor(struct nvnc* self, struct nvnc_fb* fb, uint16_t width,
self->cursor.hotspot_y = 0; self->cursor.hotspot_y = 0;
} }
if (!is_damaged)
return;
self->cursor_seq++; self->cursor_seq++;
struct nvnc_client* client; struct nvnc_client* client;