summaryrefslogtreecommitdiffstats
path: root/server/red_parse_qxl.c
diff options
context:
space:
mode:
Diffstat (limited to 'server/red_parse_qxl.c')
-rw-r--r--server/red_parse_qxl.c18
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);