From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57031) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZhzVT-0004Fh-2s for qemu-devel@nongnu.org; Fri, 02 Oct 2015 08:32:16 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZhzVR-0001v2-Ik for qemu-devel@nongnu.org; Fri, 02 Oct 2015 08:32:10 -0400 Received: from mx1.redhat.com ([209.132.183.28]:59626) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZhzVR-0001ue-De for qemu-devel@nongnu.org; Fri, 02 Oct 2015 08:32:09 -0400 Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (Postfix) with ESMTPS id 2CF372FAA9B for ; Fri, 2 Oct 2015 12:32:09 +0000 (UTC) From: Gerd Hoffmann Date: Fri, 2 Oct 2015 14:31:54 +0200 Message-Id: <1443789116-27876-10-git-send-email-kraxel@redhat.com> In-Reply-To: <1443789116-27876-1-git-send-email-kraxel@redhat.com> References: <1443789116-27876-1-git-send-email-kraxel@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [PATCH v3 09/11] opengl: add egl-context.[ch] helpers List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Gerd Hoffmann Add helper functions to manage opengl contexts using egl. Signed-off-by: Gerd Hoffmann Reviewed-by: Marc-Andr=C3=A9 Lureau --- 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 diff --git a/include/ui/egl-context.h b/include/ui/egl-context.h new file mode 100644 index 0000000..f004ce1 --- /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" + +QEMUGLContext qemu_egl_create_context(DisplayChangeListener *dcl, + QEMUGLParams *params); +void qemu_egl_destroy_context(DisplayChangeListener *dcl, QEMUGLContext = ctx); +int qemu_egl_make_context_current(DisplayChangeListener *dcl, + QEMUGLContext ctx); +QEMUGLContext qemu_egl_get_current_context(DisplayChangeListener *dcl); + +#endif /* EGL_CONTEXT_H */ diff --git a/ui/Makefile.objs b/ui/Makefile.objs index 0034fbb..7a49026 100644 --- a/ui/Makefile.objs +++ b/ui/Makefile.objs @@ -31,6 +31,7 @@ ifeq ($(CONFIG_OPENGL),y) common-obj-y +=3D shader.o common-obj-y +=3D console-gl.o common-obj-y +=3D egl-helpers.o +common-obj-y +=3D egl-context.o common-obj-$(CONFIG_GTK) +=3D gtk-egl.o endif =20 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[] =3D { + EGL_CONTEXT_CLIENT_VERSION, params->major_ver, + EGL_CONTEXT_MINOR_VERSION_KHR, params->minor_ver, + EGL_NONE + }; + + ctx =3D 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(); +} --=20 1.8.3.1