summaryrefslogtreecommitdiffstats
path: root/platform/linuxbsd/wayland/detect_prime_egl.h
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2024-06-13 17:19:17 +0200
committerRémi Verschelde <rverschelde@gmail.com>2024-06-13 17:19:17 +0200
commite15c2e051e4d5b2257b5ea24e466b4056d8c2310 (patch)
tree3427c02aa99467f7708224ea94d0bd5e11610053 /platform/linuxbsd/wayland/detect_prime_egl.h
parent1567a498cbe0d2aeb73a9d2a67d3ac6b22b340a1 (diff)
parent8f69f2969433ba88b8eda923ef2d576f81a959c1 (diff)
downloadredot-engine-e15c2e051e4d5b2257b5ea24e466b4056d8c2310.tar.gz
Merge pull request #92663 from Riteo/holy-egl-batman
EGL: Use `EGL_EXT_platform_base` whenever possible
Diffstat (limited to 'platform/linuxbsd/wayland/detect_prime_egl.h')
-rw-r--r--platform/linuxbsd/wayland/detect_prime_egl.h28
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