[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 7/9] opengl: add egl-context.[ch] helpers
From: |
Marc-André Lureau |
Subject: |
Re: [Qemu-devel] [PATCH 7/9] opengl: add egl-context.[ch] helpers |
Date: |
Fri, 11 Sep 2015 16:13:53 +0200 |
On Wed, Sep 9, 2015 at 1:20 PM, Gerd Hoffmann <address@hidden> wrote:
> Add helper functions to manage opengl contexts using egl.
>
> Signed-off-by: Gerd Hoffmann <address@hidden>
> ---
> include/ui/egl-context.h | 14 ++++++++++++++
> ui/Makefile.objs | 1 +
> ui/egl-context.c | 34 ++++++++++++++++++++++++++++++++++
> 3 files changed, 49 insertions(+)
> create mode 100644 include/ui/egl-context.h
> create mode 100644 ui/egl-context.c
>
Reviewed-by: Marc-André Lureau <address@hidden>
> diff --git a/include/ui/egl-context.h b/include/ui/egl-context.h
> new file mode 100644
> index 0000000..a1c8007
> --- /dev/null
> +++ b/include/ui/egl-context.h
> @@ -0,0 +1,14 @@
> +#ifndef EGL_CONTEXT_H
> +#define EGL_CONTEXT_H
> +
> +#include "ui/console.h"
> +#include "ui/egl-helpers.h"
> +
> +qemu_gl_context qemu_egl_create_context(DisplayChangeListener *dcl,
> + struct qemu_gl_params *params);
> +void qemu_egl_destroy_context(DisplayChangeListener *dcl, qemu_gl_context
> ctx);
> +int qemu_egl_make_context_current(DisplayChangeListener *dcl,
> + qemu_gl_context ctx);
> +qemu_gl_context qemu_egl_get_current_context(DisplayChangeListener *dcl);
> +
> +#endif /* EGL_CONTEXT_H */
> diff --git a/ui/Makefile.objs b/ui/Makefile.objs
> index c62d4d9..9bc64a0 100644
> --- a/ui/Makefile.objs
> +++ b/ui/Makefile.objs
> @@ -31,6 +31,7 @@ ifeq ($(CONFIG_OPENGL),y)
> common-obj-y += shader.o
> common-obj-y += console-gl.o
> common-obj-y += egl-helpers.o
> +common-obj-y += egl-context.o
> common-obj-$(CONFIG_GTK) += gtk-egl.o
> endif
>
> diff --git a/ui/egl-context.c b/ui/egl-context.c
> new file mode 100644
> index 0000000..233ed37
> --- /dev/null
> +++ b/ui/egl-context.c
> @@ -0,0 +1,34 @@
> +#include "qemu-common.h"
> +#include "ui/egl-context.h"
> +
> +qemu_gl_context qemu_egl_create_context(DisplayChangeListener *dcl,
> + struct qemu_gl_params *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, qemu_gl_context
> ctx)
> +{
> + eglDestroyContext(qemu_egl_display, ctx);
> +}
> +
> +int qemu_egl_make_context_current(DisplayChangeListener *dcl,
> + qemu_gl_context ctx)
> +{
> + return eglMakeCurrent(qemu_egl_display,
> + EGL_NO_SURFACE, EGL_NO_SURFACE, ctx);
> +}
> +
> +qemu_gl_context qemu_egl_get_current_context(DisplayChangeListener *dcl)
> +{
> + return eglGetCurrentContext();
> +}
> --
> 1.8.3.1
>
>
--
Marc-André Lureau