[Spice-devel] [PATCH RFC 01/12] Define a new interface for Qemu to pass texture

Frediano Ziglio fziglio at redhat.com
Fri Jul 15 13:49:26 UTC 2016


The new interface pass directly the texture instead of the dma buffer.
This allow easier extraction of raw data if needed.
An init function is provided to initialise EGL information.

Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
---
 server/red-qxl.c         | 15 +++++++++++++++
 server/spice-qxl.h       |  8 ++++++++
 server/spice-server.syms |  6 ++++++
 3 files changed, 29 insertions(+)

diff --git a/server/red-qxl.c b/server/red-qxl.c
index 2a4fa52..d21b93f 100644
--- a/server/red-qxl.c
+++ b/server/red-qxl.c
@@ -854,6 +854,13 @@ void red_qxl_put_gl_scanout(QXLInstance *qxl, SpiceMsgDisplayGlScanoutUnix *scan
 }
 
 SPICE_GNUC_VISIBLE
+void spice_qxl_gl_init(QXLInstance *qxl,
+                       void *egl_display,
+                       void *egl_context)
+{
+}
+
+SPICE_GNUC_VISIBLE
 void spice_qxl_gl_scanout(QXLInstance *qxl,
                           int fd,
                           uint32_t width, uint32_t height,
@@ -889,6 +896,14 @@ void spice_qxl_gl_scanout(QXLInstance *qxl,
 }
 
 SPICE_GNUC_VISIBLE
+void spice_qxl_gl_scanout_texture(QXLInstance *qxl,
+                                  uint32_t tex_id,
+                                  uint32_t width, uint32_t height,
+                                  int y_0_top)
+{
+}
+
+SPICE_GNUC_VISIBLE
 void spice_qxl_gl_draw_async(QXLInstance *qxl,
                              uint32_t x, uint32_t y,
                              uint32_t w, uint32_t h,
diff --git a/server/spice-qxl.h b/server/spice-qxl.h
index b8910bf..8bc67fd 100644
--- a/server/spice-qxl.h
+++ b/server/spice-qxl.h
@@ -114,6 +114,14 @@ void spice_qxl_gl_draw_async(QXLInstance *instance,
                              uint32_t x, uint32_t y,
                              uint32_t w, uint32_t h,
                              uint64_t cookie);
+/* since spice 0.13.3 */
+void spice_qxl_gl_init(QXLInstance *instance,
+                       void *egl_display,
+                       void *egl_context);
+void spice_qxl_gl_scanout_texture(QXLInstance *instance,
+                                  uint32_t tex_id,
+                                  uint32_t width, uint32_t height,
+                                  int y_0_top);
 
 typedef struct QXLDrawArea {
     uint8_t *buf;
diff --git a/server/spice-server.syms b/server/spice-server.syms
index edf04a4..11bb2b4 100644
--- a/server/spice-server.syms
+++ b/server/spice-server.syms
@@ -173,3 +173,9 @@ SPICE_SERVER_0.13.2 {
 global:
     spice_server_set_video_codecs;
 } SPICE_SERVER_0.13.1;
+
+SPICE_SERVER_0.13.3 {
+global:
+    spice_qxl_gl_init;
+    spice_qxl_gl_scanout_texture;
+} SPICE_SERVER_0.13.2;
-- 
2.7.4



More information about the Spice-devel mailing list