aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2022-03-15 16:28:50 +0000
committerPeter Maydell <peter.maydell@linaro.org>2022-03-15 16:28:50 +0000
commite2fb7d8aa218256793df99571d16f92074258447 (patch)
tree013210834bdf41528641e21443bce32980981aa5 /include
parentdee3a86d54f7d200e715843ee92aba2aaeb8382f (diff)
parente1c676a254b012779db87166a1f26db6886a8bce (diff)
Merge tag 'dbus-pull-request' of gitlab.com:marcandre.lureau/qemu into staging
GL & D-Bus display related fixes Hi, Here are pending fixes related to D-Bus and GL, most of them reported thanks to Akihiko Odaki. # gpg: Signature made Tue 15 Mar 2022 09:36:45 GMT # gpg: using RSA key 87A9BD933F87C606D276F62DDAE8E10975969CE5 # gpg: issuer "marcandre.lureau@redhat.com" # gpg: Good signature from "Marc-André Lureau <marcandre.lureau@redhat.com>" [full] # gpg: aka "Marc-André Lureau <marcandre.lureau@gmail.com>" [full] # Primary key fingerprint: 87A9 BD93 3F87 C606 D276 F62D DAE8 E109 7596 9CE5 * tag 'dbus-pull-request' of gitlab.com:marcandre.lureau/qemu: ui/console: call gfx_switch() even if the current scanout is GL ui/dbus: do not send 2d scanout until gfx_update ui/dbus: fix texture sharing ui/console: optionally update after gfx switch ui/console: add a dpy_gfx_switch callback helper ui/shader: free associated programs ui/shader: fix potential leak of shader on error ui/console: move console compatibility check to dcl_display_console() ui/dbus: associate the DBusDisplayConsole listener with the given console ui/console: egl-headless is compatible with non-gl listeners ui/console: move dcl compatiblity check to a callback ui/console: move check for compatible GL context Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'include')
-rw-r--r--include/ui/console.h19
1 files changed, 12 insertions, 7 deletions
diff --git a/include/ui/console.h b/include/ui/console.h
index f590819880..0f84861933 100644
--- a/include/ui/console.h
+++ b/include/ui/console.h
@@ -282,23 +282,28 @@ struct DisplayChangeListener {
};
typedef struct DisplayGLCtxOps {
- /*
- * We only check if the GLCtx is compatible with a DCL via ops. A natural
- * evolution of this would be a callback to check some runtime requirements
- * and allow various DCL kinds.
- */
- const DisplayChangeListenerOps *compatible_dcl;
-
+ bool (*dpy_gl_ctx_is_compatible_dcl)(DisplayGLCtx *dgc,
+ DisplayChangeListener *dcl);
QEMUGLContext (*dpy_gl_ctx_create)(DisplayGLCtx *dgc,
QEMUGLParams *params);
void (*dpy_gl_ctx_destroy)(DisplayGLCtx *dgc,
QEMUGLContext ctx);
int (*dpy_gl_ctx_make_current)(DisplayGLCtx *dgc,
QEMUGLContext ctx);
+ void (*dpy_gl_ctx_create_texture)(DisplayGLCtx *dgc,
+ DisplaySurface *surface);
+ void (*dpy_gl_ctx_destroy_texture)(DisplayGLCtx *dgc,
+ DisplaySurface *surface);
+ void (*dpy_gl_ctx_update_texture)(DisplayGLCtx *dgc,
+ DisplaySurface *surface,
+ int x, int y, int w, int h);
} DisplayGLCtxOps;
struct DisplayGLCtx {
const DisplayGLCtxOps *ops;
+#ifdef CONFIG_OPENGL
+ QemuGLShader *gls; /* optional shared shader */
+#endif
};
DisplayState *init_displaystate(void);