From 12a23162b30f0329fbe0dbb2311ac28538349b2c Mon Sep 17 00:00:00 2001 From: Chun-wei Fan Date: Fri, 22 Jun 2018 15:02:24 +0800 Subject: [PATCH] build: Check for EGL support in libepoxy on Windows ...EGL support needs to be explicitly enabled during the build of libepoxy on Windows as it is not enabled by default on Windows. With this, we can add an EGL renderer for Windows that make use of Google's libANGLE, which is a library that translates OpenGL/ES calls to Direct3D 9/11, which will provide better hardware compatibility on Windows and would act as one of the foundations to resolve issue #105. --- gdk/win32/meson.build | 8 +++++++- meson.build | 16 ++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/gdk/win32/meson.build b/gdk/win32/meson.build index 2a1cbe403b..1941fb7f3e 100644 --- a/gdk/win32/meson.build +++ b/gdk/win32/meson.build @@ -43,6 +43,12 @@ gdk_win32_public_headers = files([ install_headers(gdk_win32_public_headers, 'gdkwin32.h', subdir: 'gtk-4.0/gdk/win32/') +GDK_WIN32_EGL_CFLAGS = [] + +if win32_has_egl + GDK_WIN32_EGL_CFLAGS = ['-DGDK_WIN32_ENABLE_EGL'] +endif + gdk_win32_deps = [ # FIXME pangowin32_dep ] @@ -50,5 +56,5 @@ gdk_win32_deps = [ # FIXME libgdk_win32 = static_library('gdk-win32', gdk_win32_sources, gdkconfig, gdkenum_h, include_directories: [confinc, gdkinc], - c_args: ['-DGTK_COMPILATION', '-DG_LOG_DOMAIN="Gdk"', '-DINSIDE_GDK_WIN32'], + c_args: ['-DGTK_COMPILATION', '-DG_LOG_DOMAIN="Gdk"', '-DINSIDE_GDK_WIN32'] + GDK_WIN32_EGL_CFLAGS, dependencies: [gdk_deps, gdk_win32_deps]) diff --git a/meson.build b/meson.build index 71d7fd399f..7fa96b745c 100644 --- a/meson.build +++ b/meson.build @@ -607,6 +607,22 @@ if win32_enabled endif pc_gdk_extra_libs += ['-lwinmm', '-ldwmapi', '-lsetupapi', '-lcfgmgr32'] backend_immodules += ['ime'] + + # Check whether libepoxy is built with EGL support on Windows + win32_has_egl = cc.links( + ''' + #include + + int main(int argc, char *argv[]) + { + EGLDisplay disp = EGL_NO_DISPLAY; + + return epoxy_egl_version (disp); + } + ''', + dependencies : epoxy_dep, + name : 'libepoxy supports EGL on Windows' + ) endif # Check for bind_textdomain_codeset, including -lintl if GLib brings it in by