diff options
| author | Riteo <riteo@posteo.net> | 2024-06-01 20:04:16 +0200 |
|---|---|---|
| committer | Riteo <riteo@posteo.net> | 2024-06-04 08:43:34 +0200 |
| commit | 8f69f2969433ba88b8eda923ef2d576f81a959c1 (patch) | |
| tree | c07b83cae7ee0d3fc71a87041a1244c7eafbae3c /platform/linuxbsd/wayland/detect_prime_egl.h | |
| parent | 705b7a0b0bd535c95e4e8fb439f3d84b3fb4f427 (diff) | |
| download | redot-engine-8f69f2969433ba88b8eda923ef2d576f81a959c1.tar.gz | |
EGL: Use EGL_EXT_platform_base whenever possible
This avoids any assumption from the driver, which would otherwise select
a specific platform and potentially mess up everything, resulting
usually in a display server failure.
Diffstat (limited to 'platform/linuxbsd/wayland/detect_prime_egl.h')
| -rw-r--r-- | platform/linuxbsd/wayland/detect_prime_egl.h | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/platform/linuxbsd/wayland/detect_prime_egl.h b/platform/linuxbsd/wayland/detect_prime_egl.h index 26351b0dce..3391e020d8 100644 --- a/platform/linuxbsd/wayland/detect_prime_egl.h +++ b/platform/linuxbsd/wayland/detect_prime_egl.h @@ -34,6 +34,30 @@ #ifdef GLES3_ENABLED #ifdef EGL_ENABLED +#ifdef GLAD_ENABLED +#include "thirdparty/glad/glad/egl.h" +#include "thirdparty/glad/glad/gl.h" +#else +#include <EGL/egl.h> +#include <EGL/eglext.h> +#include <GL/glcorearb.h> + +#define GLAD_EGL_VERSION_1_5 1 + +#ifdef EGL_EXT_platform_base +#define GLAD_EGL_EXT_platform_base 1 +#endif + +#define KHRONOS_STATIC 1 +extern "C" EGLAPI EGLDisplay EGLAPIENTRY eglGetPlatformDisplayEXT(EGLenum platform, void *native_display, const EGLint *attrib_list); +#undef KHRONOS_STATIC + +#endif // GLAD_ENABLED + +#ifndef EGL_EXT_platform_base +#define GLAD_EGL_EXT_platform_base 0 +#endif + class DetectPrimeEGL { private: struct Vendor { @@ -53,10 +77,10 @@ private: { nullptr, 0 } }; - static void create_context(); + static void create_context(EGLenum p_platform_enum); public: - static int detect_prime(); + static int detect_prime(EGLenum p_platform_enum); }; #endif // GLES3_ENABLED |
