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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxx>
---
 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

_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/spice-devel




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]