|
@@ -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);
|