diff options
author | Peter Maydell <peter.maydell@linaro.org> | 2015-10-09 17:30:03 +0100 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2015-10-09 17:30:03 +0100 |
commit | c9003eb4662f44c61be9c8d7d5c9d4a02d58b560 (patch) | |
tree | f39c06343359cc2d53dee717166329e43e6481e1 /ui/egl-context.c | |
parent | b37686f7e84b22cfaf7fd01ac5133f2617cc3027 (diff) | |
parent | 925a04000231ad865770ba227876ba518ac3e479 (diff) | |
download | hqemu-c9003eb4662f44c61be9c8d7d5c9d4a02d58b560.zip hqemu-c9003eb4662f44c61be9c8d7d5c9d4a02d58b560.tar.gz |
Merge remote-tracking branch 'remotes/kraxel/tags/pull-virgl-20151008-1' into staging
virtio-gpu: add 3d rendering support using virgl, misc fixes.
ui/gtk: add opengl context and scanout support (for virtio-gpu).
# gpg: Signature made Thu 08 Oct 2015 10:35:39 BST using RSA key ID D3E87138
# gpg: Good signature from "Gerd Hoffmann (work) <kraxel@redhat.com>"
# gpg: aka "Gerd Hoffmann <gerd@kraxel.org>"
# gpg: aka "Gerd Hoffmann (private) <kraxel@gmail.com>"
* remotes/kraxel/tags/pull-virgl-20151008-1:
gtk/opengl: add opengl context and scanout support (GtkGLArea)
gtk/opengl: add opengl context and scanout support (egl)
opengl: add egl-context.[ch] helpers
virtio-gpu: add cursor update tracepoint
virtio-gpu: add 3d mode and virgl rendering support.
virtio-gpu: update headers for virgl/3d
virtio-gpu: change licence from GPLv2 to GPLv2+
virtio-gpu: move iov free to virtio_gpu_cleanup_mapping_iov
ui/console: add opengl context and scanout support interfaces.
sdl2: stop flickering
shaders: initialize vertexes once
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'ui/egl-context.c')
-rw-r--r-- | ui/egl-context.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/ui/egl-context.c b/ui/egl-context.c new file mode 100644 index 0000000..40102e3 --- /dev/null +++ b/ui/egl-context.c @@ -0,0 +1,34 @@ +#include "qemu-common.h" +#include "ui/egl-context.h" + +QEMUGLContext qemu_egl_create_context(DisplayChangeListener *dcl, + QEMUGLParams *params) +{ + EGLContext ctx; + EGLint ctx_att[] = { + EGL_CONTEXT_CLIENT_VERSION, params->major_ver, + EGL_CONTEXT_MINOR_VERSION_KHR, params->minor_ver, + EGL_NONE + }; + + ctx = eglCreateContext(qemu_egl_display, qemu_egl_config, + eglGetCurrentContext(), ctx_att); + return ctx; +} + +void qemu_egl_destroy_context(DisplayChangeListener *dcl, QEMUGLContext ctx) +{ + eglDestroyContext(qemu_egl_display, ctx); +} + +int qemu_egl_make_context_current(DisplayChangeListener *dcl, + QEMUGLContext ctx) +{ + return eglMakeCurrent(qemu_egl_display, + EGL_NO_SURFACE, EGL_NO_SURFACE, ctx); +} + +QEMUGLContext qemu_egl_get_current_context(DisplayChangeListener *dcl) +{ + return eglGetCurrentContext(); +} |