Skip to content

Commit

Permalink
ui/gtk-gl-area: implement GL context destruction
Browse files Browse the repository at this point in the history
The counterpart function for gd_gl_area_create_context() is
currently empty. Implement the gd_gl_area_destroy_context()
function to avoid GL context leaks.

Signed-off-by: Volker Rümelin <[email protected]>
Message-Id: <[email protected]>
Signed-off-by: Gerd Hoffmann <[email protected]>
  • Loading branch information
Volker Rümelin authored and kraxel committed Jun 14, 2022
1 parent debd075 commit e561b3b
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 1 deletion.
8 changes: 7 additions & 1 deletion ui/gtk-gl-area.c
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,13 @@ QEMUGLContext gd_gl_area_create_context(DisplayGLCtx *dgc,

void gd_gl_area_destroy_context(DisplayGLCtx *dgc, QEMUGLContext ctx)
{
/* FIXME */
GdkGLContext *current_ctx = gdk_gl_context_get_current();

trace_gd_gl_area_destroy_context(ctx, current_ctx);
if (ctx == current_ctx) {
gdk_gl_context_clear_current();
}
g_clear_object(&ctx);
}

void gd_gl_area_scanout_texture(DisplayChangeListener *dcl,
Expand Down
1 change: 1 addition & 0 deletions ui/trace-events
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ gd_key_event(const char *tab, int gdk_keycode, int qkeycode, const char *action)
gd_grab(const char *tab, const char *device, const char *reason) "tab=%s, dev=%s, reason=%s"
gd_ungrab(const char *tab, const char *device) "tab=%s, dev=%s"
gd_keymap_windowing(const char *name) "backend=%s"
gd_gl_area_destroy_context(void *ctx, void *current_ctx) "ctx=%p, current_ctx=%p"

# vnc-auth-sasl.c
# vnc-auth-vencrypt.c
Expand Down

0 comments on commit e561b3b

Please sign in to comment.