All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/3] ui/gtk-egl: un-tab and re-tab should destroy egl surface and context
@ 2021-07-03  0:28 Dongwon Kim
  2021-07-03  0:28 ` [PATCH 2/3] ui/gtk-egl: make sure the right context is set as the current Dongwon Kim
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Dongwon Kim @ 2021-07-03  0:28 UTC (permalink / raw)
  To: qemu-devel; +Cc: Khairul Anuar Romli, Dongwon Kim

An old esurface should be destroyed and set to be NULL when doing
un-tab and re-tab so that a new esurface an context can be created
for the window widget that those will be bound to.

Signed-off-by: Dongwon Kim <dongwon.kim@intel.com>
Signed-off-by: Khairul Anuar Romli <khairul.anuar.romli@intel.com>
---
 ui/gtk.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/ui/gtk.c b/ui/gtk.c
index 98046f577b..bfb95f3b4b 100644
--- a/ui/gtk.c
+++ b/ui/gtk.c
@@ -1232,6 +1232,14 @@ static gboolean gd_tab_window_close(GtkWidget *widget, GdkEvent *event,
                                     vc->tab_item, vc->label);
     gtk_widget_destroy(vc->window);
     vc->window = NULL;
+    if (vc->gfx.esurface) {
+        eglDestroySurface(qemu_egl_display, vc->gfx.esurface);
+        vc->gfx.esurface = NULL;
+    }
+    if (vc->gfx.ectx) {
+        eglDestroyContext(qemu_egl_display, vc->gfx.ectx);
+        vc->gfx.ectx = NULL;
+    }
     return TRUE;
 }
 
@@ -1261,6 +1269,14 @@ static void gd_menu_untabify(GtkMenuItem *item, void *opaque)
     if (!vc->window) {
         gtk_widget_set_sensitive(vc->menu_item, false);
         vc->window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+        if (vc->gfx.esurface) {
+            eglDestroySurface(qemu_egl_display, vc->gfx.esurface);
+            vc->gfx.esurface = NULL;
+        }
+        if (vc->gfx.esurface) {
+            eglDestroyContext(qemu_egl_display, vc->gfx.ectx);
+            vc->gfx.ectx = NULL;
+        }
         gd_widget_reparent(s->notebook, vc->window, vc->tab_item);
 
         g_signal_connect(vc->window, "delete-event",
-- 
2.17.1



^ permalink raw reply related	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2021-07-16 22:23 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-07-03  0:28 [PATCH 1/3] ui/gtk-egl: un-tab and re-tab should destroy egl surface and context Dongwon Kim
2021-07-03  0:28 ` [PATCH 2/3] ui/gtk-egl: make sure the right context is set as the current Dongwon Kim
2021-07-16 22:18   ` Kasireddy, Vivek
2021-07-03  0:28 ` [PATCH 3/3] ui/gtk: gd_draw_event returns FALSE when no cairo surface is bound Dongwon Kim
2021-07-06 23:34   ` [PATCH 4/4] ui/gtk-egl: guest fb texture needs to be regenerated when reinitializing egl Dongwon Kim
2021-07-16 22:23     ` Kasireddy, Vivek
2021-07-16 21:55   ` [PATCH 3/3] ui/gtk: gd_draw_event returns FALSE when no cairo surface is bound Kasireddy, Vivek
2021-07-16 22:08 ` [PATCH 1/3] ui/gtk-egl: un-tab and re-tab should destroy egl surface and context Kasireddy, Vivek

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.