mirror of
https://gitlab.uni-freiburg.de/opensourcevdi/spice
synced 2026-08-07 21:03:10 +00:00
Add group_id to RedDrawable
Storing a QXLReleaseInfoExt rather than a QXLReleaseInfo in RedDrawable gives us a place to store group_id for free. Since we are building a QXLReleaseInfoExt from QXLReleaseInfo and group_id when destroying a RedDrawable instance, this is a move in the right direction. Acked-by: Frediano Ziglio <fziglio@redhat.com>
This commit is contained in:
parent
7b3bdbfdda
commit
650ef63782
@ -1027,7 +1027,8 @@ static int red_get_native_drawable(RedMemSlotInfo *slots, int group_id,
|
||||
if (error) {
|
||||
return error;
|
||||
}
|
||||
red->release_info = &qxl->release_info;
|
||||
red->release_info_ext.info = &qxl->release_info;
|
||||
red->release_info_ext.group_id = group_id;
|
||||
|
||||
red_get_rect_ptr(&red->bbox, &qxl->bbox);
|
||||
red_get_clip_ptr(slots, group_id, &red->clip, &qxl->clip);
|
||||
@ -1110,7 +1111,8 @@ static int red_get_compat_drawable(RedMemSlotInfo *slots, int group_id,
|
||||
if (error) {
|
||||
return error;
|
||||
}
|
||||
red->release_info = &qxl->release_info;
|
||||
red->release_info_ext.info = &qxl->release_info;
|
||||
red->release_info_ext.group_id = group_id;
|
||||
|
||||
red_get_rect_ptr(&red->bbox, &qxl->bbox);
|
||||
red_get_clip_ptr(slots, group_id, &red->clip, &qxl->clip);
|
||||
|
||||
@ -26,7 +26,7 @@
|
||||
typedef struct RedDrawable {
|
||||
int refs;
|
||||
QXLInstance *qxl;
|
||||
QXLReleaseInfo *release_info;
|
||||
QXLReleaseInfoExt release_info_ext;
|
||||
uint32_t surface_id;
|
||||
uint8_t effect;
|
||||
uint8_t type;
|
||||
|
||||
@ -132,14 +132,11 @@ static void common_release_recv_buf(RedChannelClient *rcc, uint16_t type, uint32
|
||||
void red_drawable_unref(DisplayChannel *display, RedDrawable *red_drawable,
|
||||
uint32_t group_id)
|
||||
{
|
||||
QXLReleaseInfoExt release_info_ext;
|
||||
|
||||
if (--red_drawable->refs) {
|
||||
return;
|
||||
}
|
||||
release_info_ext.group_id = group_id;
|
||||
release_info_ext.info = red_drawable->release_info;
|
||||
red_drawable->qxl->st->qif->release_resource(red_drawable->qxl, release_info_ext);
|
||||
red_drawable->qxl->st->qif->release_resource(red_drawable->qxl,
|
||||
red_drawable->release_info_ext);
|
||||
red_put_drawable(red_drawable);
|
||||
free(red_drawable);
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user