diff options
Diffstat (limited to 'server/red_parse_qxl.c')
-rw-r--r-- | server/red_parse_qxl.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/server/red_parse_qxl.c b/server/red_parse_qxl.c index e0eba20f..adeadd63 100644 --- a/server/red_parse_qxl.c +++ b/server/red_parse_qxl.c @@ -734,8 +734,8 @@ static void red_put_clip(SpiceClip *red) } } -void red_get_drawable(RedMemSlotInfo *slots, int group_id, - RedDrawable *red, QXLPHYSICAL addr) +static void red_get_native_drawable(RedMemSlotInfo *slots, int group_id, + RedDrawable *red, QXLPHYSICAL addr, uint32_t flags) { QXLDrawable *qxl; int i; @@ -807,8 +807,8 @@ void red_get_drawable(RedMemSlotInfo *slots, int group_id, }; } -void red_get_compat_drawable(RedMemSlotInfo *slots, int group_id, - RedDrawable *red, QXLPHYSICAL addr) +static void red_get_compat_drawable(RedMemSlotInfo *slots, int group_id, + RedDrawable *red, QXLPHYSICAL addr, uint32_t flags) { QXLCompatDrawable *qxl; @@ -885,6 +885,16 @@ void red_get_compat_drawable(RedMemSlotInfo *slots, int group_id, }; } +void red_get_drawable(RedMemSlotInfo *slots, int group_id, + RedDrawable *red, QXLPHYSICAL addr, uint32_t flags) +{ + if (flags & QXL_COMMAND_FLAG_COMPAT) { + red_get_compat_drawable(slots, group_id, red, addr, flags); + } else { + red_get_native_drawable(slots, group_id, red, addr, flags); + } +} + void red_put_drawable(RedDrawable *red) { red_put_clip(&red->clip); |