mirror of https://gitee.com/openkylin/qemu.git
ui/gtk-egl: make sure the right context is set as the current
Making the vc->gfx.ectx current before handling texture associated with it Cc: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Dongwon Kim <dongwon.kim@intel.com> Message-Id: <20211104065153.28897-2-dongwon.kim@intel.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
parent
1ab2628fc6
commit
01eb4749f0
|
@ -152,6 +152,7 @@ void gd_egl_refresh(DisplayChangeListener *dcl)
|
||||||
}
|
}
|
||||||
vc->gfx.gls = qemu_gl_init_shader();
|
vc->gfx.gls = qemu_gl_init_shader();
|
||||||
if (vc->gfx.ds) {
|
if (vc->gfx.ds) {
|
||||||
|
surface_gl_destroy_texture(vc->gfx.gls, vc->gfx.ds);
|
||||||
surface_gl_create_texture(vc->gfx.gls, vc->gfx.ds);
|
surface_gl_create_texture(vc->gfx.gls, vc->gfx.ds);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -178,6 +179,8 @@ void gd_egl_switch(DisplayChangeListener *dcl,
|
||||||
surface_height(vc->gfx.ds) == surface_height(surface)) {
|
surface_height(vc->gfx.ds) == surface_height(surface)) {
|
||||||
resized = false;
|
resized = false;
|
||||||
}
|
}
|
||||||
|
eglMakeCurrent(qemu_egl_display, vc->gfx.esurface,
|
||||||
|
vc->gfx.esurface, vc->gfx.ectx);
|
||||||
|
|
||||||
surface_gl_destroy_texture(vc->gfx.gls, vc->gfx.ds);
|
surface_gl_destroy_texture(vc->gfx.gls, vc->gfx.ds);
|
||||||
vc->gfx.ds = surface;
|
vc->gfx.ds = surface;
|
||||||
|
@ -237,6 +240,9 @@ void gd_egl_scanout_dmabuf(DisplayChangeListener *dcl,
|
||||||
#ifdef CONFIG_GBM
|
#ifdef CONFIG_GBM
|
||||||
VirtualConsole *vc = container_of(dcl, VirtualConsole, gfx.dcl);
|
VirtualConsole *vc = container_of(dcl, VirtualConsole, gfx.dcl);
|
||||||
|
|
||||||
|
eglMakeCurrent(qemu_egl_display, vc->gfx.esurface,
|
||||||
|
vc->gfx.esurface, vc->gfx.ectx);
|
||||||
|
|
||||||
egl_dmabuf_import_texture(dmabuf);
|
egl_dmabuf_import_texture(dmabuf);
|
||||||
if (!dmabuf->texture) {
|
if (!dmabuf->texture) {
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Reference in New Issue