request gl update on connect (experimental)

This commit is contained in:
Michael Scherle 2025-03-06 12:19:36 +01:00
parent e77845e5c5
commit 7b440f5a75
4 changed files with 10 additions and 0 deletions

View File

@ -2499,6 +2499,7 @@ void DisplayChannel::on_connect(RedClient *client,
display_channel_update_compression(this, dcc);
guest_set_client_capabilities(this);
dcc_start(dcc);
red_qxl_request_gl_update(priv->qxl);
}
void DisplayChannelClient::disconnect()

View File

@ -771,3 +771,10 @@ void red_qxl_async_complete(QXLInstance *qxl, uint64_t cookie)
qxl_interface->async_complete(qxl, cookie);
}
void red_qxl_request_gl_update(QXLInstance *qxl)
{
QXLInterface *qxl_interface = qxl_get_interface(qxl);
qxl_interface->request_gl_update(qxl);
}

View File

@ -54,6 +54,7 @@ int red_qxl_req_cursor_notification(QXLInstance *qxl);
void red_qxl_notify_update(QXLInstance *qxl, uint32_t update_id);
int red_qxl_flush_resources(QXLInstance *qxl);
void red_qxl_async_complete(QXLInstance *qxl, uint64_t cookie);
void red_qxl_request_gl_update(QXLInstance *qxl);
void red_qxl_update_area_complete(QXLInstance *qxl, uint32_t surface_id,
struct QXLRect *updated_rects,
uint32_t num_updated_rects);

View File

@ -213,6 +213,7 @@ struct QXLInterface {
void (*notify_update)(QXLInstance *qin, uint32_t update_id);
int (*flush_resources)(QXLInstance *qin);
void (*async_complete)(QXLInstance *qin, uint64_t cookie);
void (*request_gl_update)(QXLInstance *qin);
void (*update_area_complete)(QXLInstance *qin, uint32_t surface_id,
struct QXLRect *updated_rects,
uint32_t num_updated_rects);