mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-02 15:23:53 -06:00
gtk/opengl: add opengl context and scanout support (egl)
This allows virtio-gpu to render in 3d mode. Uses egl, for gtk versions 3.14 and older. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
This commit is contained in:
parent
6c18744d0f
commit
4782aeb79f
3 changed files with 146 additions and 8 deletions
|
@ -20,6 +20,7 @@
|
|||
|
||||
#if defined(CONFIG_OPENGL)
|
||||
#include "ui/egl-helpers.h"
|
||||
#include "ui/egl-context.h"
|
||||
#endif
|
||||
|
||||
/* Compatibility define to let us build on both Gtk2 and Gtk3 */
|
||||
|
@ -46,6 +47,11 @@ typedef struct VirtualGfxConsole {
|
|||
EGLContext ectx;
|
||||
EGLSurface esurface;
|
||||
int glupdates;
|
||||
int x, y, w, h;
|
||||
GLuint tex_id;
|
||||
GLuint fbo_id;
|
||||
bool y0_top;
|
||||
bool scanout_mode;
|
||||
#endif
|
||||
} VirtualGfxConsole;
|
||||
|
||||
|
@ -90,6 +96,16 @@ void gd_egl_update(DisplayChangeListener *dcl,
|
|||
void gd_egl_refresh(DisplayChangeListener *dcl);
|
||||
void gd_egl_switch(DisplayChangeListener *dcl,
|
||||
DisplaySurface *surface);
|
||||
QEMUGLContext gd_egl_create_context(DisplayChangeListener *dcl,
|
||||
QEMUGLParams *params);
|
||||
void gd_egl_scanout(DisplayChangeListener *dcl,
|
||||
uint32_t backing_id, bool backing_y_0_top,
|
||||
uint32_t x, uint32_t y,
|
||||
uint32_t w, uint32_t h);
|
||||
void gd_egl_scanout_flush(DisplayChangeListener *dcl,
|
||||
uint32_t x, uint32_t y, uint32_t w, uint32_t h);
|
||||
void gtk_egl_init(void);
|
||||
int gd_egl_make_current(DisplayChangeListener *dcl,
|
||||
QEMUGLContext ctx);
|
||||
|
||||
#endif /* UI_GTK_H */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue