mirror of https://github.com/xemu-project/xemu.git
sdl2: add scanout_disable support
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-id: 1487669841-13668-6-git-send-email-kraxel@redhat.com
This commit is contained in:
parent
46ffd0c031
commit
db6cdfbeba
|
@ -62,6 +62,7 @@ int sdl2_gl_make_context_current(DisplayChangeListener *dcl,
|
||||||
QEMUGLContext ctx);
|
QEMUGLContext ctx);
|
||||||
QEMUGLContext sdl2_gl_get_current_context(DisplayChangeListener *dcl);
|
QEMUGLContext sdl2_gl_get_current_context(DisplayChangeListener *dcl);
|
||||||
|
|
||||||
|
void sdl2_gl_scanout_disable(DisplayChangeListener *dcl);
|
||||||
void sdl2_gl_scanout_texture(DisplayChangeListener *dcl,
|
void sdl2_gl_scanout_texture(DisplayChangeListener *dcl,
|
||||||
uint32_t backing_id,
|
uint32_t backing_id,
|
||||||
bool backing_y_0_top,
|
bool backing_y_0_top,
|
||||||
|
|
16
ui/sdl2-gl.c
16
ui/sdl2-gl.c
|
@ -184,6 +184,17 @@ QEMUGLContext sdl2_gl_get_current_context(DisplayChangeListener *dcl)
|
||||||
return (QEMUGLContext)sdlctx;
|
return (QEMUGLContext)sdlctx;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void sdl2_gl_scanout_disable(DisplayChangeListener *dcl)
|
||||||
|
{
|
||||||
|
struct sdl2_console *scon = container_of(dcl, struct sdl2_console, dcl);
|
||||||
|
|
||||||
|
assert(scon->opengl);
|
||||||
|
scon->w = 0;
|
||||||
|
scon->h = 0;
|
||||||
|
scon->tex_id = 0;
|
||||||
|
sdl2_set_scanout_mode(scon, false);
|
||||||
|
}
|
||||||
|
|
||||||
void sdl2_gl_scanout_texture(DisplayChangeListener *dcl,
|
void sdl2_gl_scanout_texture(DisplayChangeListener *dcl,
|
||||||
uint32_t backing_id,
|
uint32_t backing_id,
|
||||||
bool backing_y_0_top,
|
bool backing_y_0_top,
|
||||||
|
@ -204,11 +215,6 @@ void sdl2_gl_scanout_texture(DisplayChangeListener *dcl,
|
||||||
|
|
||||||
SDL_GL_MakeCurrent(scon->real_window, scon->winctx);
|
SDL_GL_MakeCurrent(scon->real_window, scon->winctx);
|
||||||
|
|
||||||
if (scon->tex_id == 0 || scon->w == 0 || scon->h == 0) {
|
|
||||||
sdl2_set_scanout_mode(scon, false);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
sdl2_set_scanout_mode(scon, true);
|
sdl2_set_scanout_mode(scon, true);
|
||||||
if (!scon->fbo_id) {
|
if (!scon->fbo_id) {
|
||||||
glGenFramebuffers(1, &scon->fbo_id);
|
glGenFramebuffers(1, &scon->fbo_id);
|
||||||
|
|
|
@ -733,6 +733,7 @@ static const DisplayChangeListenerOps dcl_gl_ops = {
|
||||||
.dpy_gl_ctx_destroy = sdl2_gl_destroy_context,
|
.dpy_gl_ctx_destroy = sdl2_gl_destroy_context,
|
||||||
.dpy_gl_ctx_make_current = sdl2_gl_make_context_current,
|
.dpy_gl_ctx_make_current = sdl2_gl_make_context_current,
|
||||||
.dpy_gl_ctx_get_current = sdl2_gl_get_current_context,
|
.dpy_gl_ctx_get_current = sdl2_gl_get_current_context,
|
||||||
|
.dpy_gl_scanout_disable = sdl2_gl_scanout_disable,
|
||||||
.dpy_gl_scanout_texture = sdl2_gl_scanout_texture,
|
.dpy_gl_scanout_texture = sdl2_gl_scanout_texture,
|
||||||
.dpy_gl_update = sdl2_gl_scanout_flush,
|
.dpy_gl_update = sdl2_gl_scanout_flush,
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue