summaryrefslogtreecommitdiffstats
path: root/platform/linuxbsd/wayland/detect_prime_egl.h
diff options
context:
space:
mode:
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