Bläddra i källkod

Fix GLAD-related build problems on Linux

- Use gl.h provided by GLAD in the OpenXR module
- Use non-EXT variants of some OpenGL defines
- Remove libGL-related code paths
Jens Nolte 2 år sedan
förälder
incheckning
67f31f571e

+ 51 - 99
modules/openxr/extensions/openxr_opengl_extension.cpp

@@ -160,16 +160,8 @@ void *OpenXROpenGLExtension::set_session_create_and_get_next_pointer(void *p_nex
 }
 
 void OpenXROpenGLExtension::get_usable_swapchain_formats(Vector<int64_t> &p_usable_swap_chains) {
-#ifdef WIN32
-	p_usable_swap_chains.push_back(GL_SRGB8_ALPHA8);
-	p_usable_swap_chains.push_back(GL_RGBA8);
-#elif ANDROID_ENABLED
 	p_usable_swap_chains.push_back(GL_SRGB8_ALPHA8);
 	p_usable_swap_chains.push_back(GL_RGBA8);
-#else
-	p_usable_swap_chains.push_back(GL_SRGB8_ALPHA8_EXT);
-	p_usable_swap_chains.push_back(GL_RGBA8_EXT);
-#endif
 }
 
 void OpenXROpenGLExtension::get_usable_depth_formats(Vector<int64_t> &p_usable_depth_formats) {
@@ -294,59 +286,7 @@ void OpenXROpenGLExtension::cleanup_swapchain_graphics_data(void **p_swapchain_g
 String OpenXROpenGLExtension::get_swapchain_format_name(int64_t p_swapchain_format) const {
 	// These are somewhat different per platform, will need to weed some stuff out...
 	switch (p_swapchain_format) {
-#ifdef WIN32
-		// using definitions from GLAD
-		ENUM_TO_STRING_CASE(GL_R8_SNORM)
-		ENUM_TO_STRING_CASE(GL_RG8_SNORM)
-		ENUM_TO_STRING_CASE(GL_RGB8_SNORM)
-		ENUM_TO_STRING_CASE(GL_RGBA8_SNORM)
-		ENUM_TO_STRING_CASE(GL_R16_SNORM)
-		ENUM_TO_STRING_CASE(GL_RG16_SNORM)
-		ENUM_TO_STRING_CASE(GL_RGB16_SNORM)
-		ENUM_TO_STRING_CASE(GL_RGBA16_SNORM)
-		ENUM_TO_STRING_CASE(GL_RGB4)
-		ENUM_TO_STRING_CASE(GL_RGB5)
-		ENUM_TO_STRING_CASE(GL_RGB8)
-		ENUM_TO_STRING_CASE(GL_RGB10)
-		ENUM_TO_STRING_CASE(GL_RGB12)
-		ENUM_TO_STRING_CASE(GL_RGB16)
-		ENUM_TO_STRING_CASE(GL_RGBA2)
-		ENUM_TO_STRING_CASE(GL_RGBA4)
-		ENUM_TO_STRING_CASE(GL_RGB5_A1)
-		ENUM_TO_STRING_CASE(GL_RGBA8)
-		ENUM_TO_STRING_CASE(GL_RGB10_A2)
-		ENUM_TO_STRING_CASE(GL_RGBA12)
-		ENUM_TO_STRING_CASE(GL_RGBA16)
-		ENUM_TO_STRING_CASE(GL_RGBA32F)
-		ENUM_TO_STRING_CASE(GL_RGB32F)
-		ENUM_TO_STRING_CASE(GL_RGBA16F)
-		ENUM_TO_STRING_CASE(GL_RGB16F)
-		ENUM_TO_STRING_CASE(GL_RGBA32UI)
-		ENUM_TO_STRING_CASE(GL_RGB32UI)
-		ENUM_TO_STRING_CASE(GL_RGBA16UI)
-		ENUM_TO_STRING_CASE(GL_RGB16UI)
-		ENUM_TO_STRING_CASE(GL_RGBA8UI)
-		ENUM_TO_STRING_CASE(GL_RGB8UI)
-		ENUM_TO_STRING_CASE(GL_RGBA32I)
-		ENUM_TO_STRING_CASE(GL_RGB32I)
-		ENUM_TO_STRING_CASE(GL_RGBA16I)
-		ENUM_TO_STRING_CASE(GL_RGB16I)
-		ENUM_TO_STRING_CASE(GL_RGBA8I)
-		ENUM_TO_STRING_CASE(GL_RGB8I)
-		ENUM_TO_STRING_CASE(GL_RGB10_A2UI)
-		ENUM_TO_STRING_CASE(GL_SRGB)
-		ENUM_TO_STRING_CASE(GL_SRGB8)
-		ENUM_TO_STRING_CASE(GL_SRGB_ALPHA)
-		ENUM_TO_STRING_CASE(GL_SRGB8_ALPHA8)
-		ENUM_TO_STRING_CASE(GL_DEPTH_COMPONENT16)
-		ENUM_TO_STRING_CASE(GL_DEPTH_COMPONENT24)
-		ENUM_TO_STRING_CASE(GL_DEPTH_COMPONENT32)
-		ENUM_TO_STRING_CASE(GL_DEPTH24_STENCIL8)
-		ENUM_TO_STRING_CASE(GL_R11F_G11F_B10F)
-		ENUM_TO_STRING_CASE(GL_DEPTH_COMPONENT32F)
-		ENUM_TO_STRING_CASE(GL_DEPTH32F_STENCIL8)
-
-#elif ANDROID_ENABLED
+#ifdef ANDROID_ENABLED
 		// using definitions from GLES3/gl3.h
 
 		ENUM_TO_STRING_CASE(GL_RGBA4)
@@ -418,44 +358,56 @@ String OpenXROpenGLExtension::get_swapchain_format_name(int64_t p_swapchain_form
 		ENUM_TO_STRING_CASE(GL_DEPTH24_STENCIL8)
 
 #else
-		// using definitions from GL/gl.h
-		ENUM_TO_STRING_CASE(GL_ALPHA4_EXT)
-		ENUM_TO_STRING_CASE(GL_ALPHA8_EXT)
-		ENUM_TO_STRING_CASE(GL_ALPHA12_EXT)
-		ENUM_TO_STRING_CASE(GL_ALPHA16_EXT)
-		ENUM_TO_STRING_CASE(GL_LUMINANCE4_EXT)
-		ENUM_TO_STRING_CASE(GL_LUMINANCE8_EXT)
-		ENUM_TO_STRING_CASE(GL_LUMINANCE12_EXT)
-		ENUM_TO_STRING_CASE(GL_LUMINANCE16_EXT)
-		ENUM_TO_STRING_CASE(GL_LUMINANCE4_ALPHA4_EXT)
-		ENUM_TO_STRING_CASE(GL_LUMINANCE6_ALPHA2_EXT)
-		ENUM_TO_STRING_CASE(GL_LUMINANCE8_ALPHA8_EXT)
-		ENUM_TO_STRING_CASE(GL_LUMINANCE12_ALPHA4_EXT)
-		ENUM_TO_STRING_CASE(GL_LUMINANCE12_ALPHA12_EXT)
-		ENUM_TO_STRING_CASE(GL_LUMINANCE16_ALPHA16_EXT)
-		ENUM_TO_STRING_CASE(GL_INTENSITY_EXT)
-		ENUM_TO_STRING_CASE(GL_INTENSITY4_EXT)
-		ENUM_TO_STRING_CASE(GL_INTENSITY8_EXT)
-		ENUM_TO_STRING_CASE(GL_INTENSITY12_EXT)
-		ENUM_TO_STRING_CASE(GL_INTENSITY16_EXT)
-		ENUM_TO_STRING_CASE(GL_RGB2_EXT)
-		ENUM_TO_STRING_CASE(GL_RGB4_EXT)
-		ENUM_TO_STRING_CASE(GL_RGB5_EXT)
-		ENUM_TO_STRING_CASE(GL_RGB8_EXT)
-		ENUM_TO_STRING_CASE(GL_RGB10_EXT)
-		ENUM_TO_STRING_CASE(GL_RGB12_EXT)
-		ENUM_TO_STRING_CASE(GL_RGB16_EXT)
-		ENUM_TO_STRING_CASE(GL_RGBA2_EXT)
-		ENUM_TO_STRING_CASE(GL_RGBA4_EXT)
-		ENUM_TO_STRING_CASE(GL_RGB5_A1_EXT)
-		ENUM_TO_STRING_CASE(GL_RGBA8_EXT)
-		ENUM_TO_STRING_CASE(GL_RGB10_A2_EXT)
-		ENUM_TO_STRING_CASE(GL_RGBA12_EXT)
-		ENUM_TO_STRING_CASE(GL_RGBA16_EXT)
-		ENUM_TO_STRING_CASE(GL_SRGB_EXT)
-		ENUM_TO_STRING_CASE(GL_SRGB8_EXT)
-		ENUM_TO_STRING_CASE(GL_SRGB_ALPHA_EXT)
-		ENUM_TO_STRING_CASE(GL_SRGB8_ALPHA8_EXT)
+		// using definitions from GLAD
+		ENUM_TO_STRING_CASE(GL_R8_SNORM)
+		ENUM_TO_STRING_CASE(GL_RG8_SNORM)
+		ENUM_TO_STRING_CASE(GL_RGB8_SNORM)
+		ENUM_TO_STRING_CASE(GL_RGBA8_SNORM)
+		ENUM_TO_STRING_CASE(GL_R16_SNORM)
+		ENUM_TO_STRING_CASE(GL_RG16_SNORM)
+		ENUM_TO_STRING_CASE(GL_RGB16_SNORM)
+		ENUM_TO_STRING_CASE(GL_RGBA16_SNORM)
+		ENUM_TO_STRING_CASE(GL_RGB4)
+		ENUM_TO_STRING_CASE(GL_RGB5)
+		ENUM_TO_STRING_CASE(GL_RGB8)
+		ENUM_TO_STRING_CASE(GL_RGB10)
+		ENUM_TO_STRING_CASE(GL_RGB12)
+		ENUM_TO_STRING_CASE(GL_RGB16)
+		ENUM_TO_STRING_CASE(GL_RGBA2)
+		ENUM_TO_STRING_CASE(GL_RGBA4)
+		ENUM_TO_STRING_CASE(GL_RGB5_A1)
+		ENUM_TO_STRING_CASE(GL_RGBA8)
+		ENUM_TO_STRING_CASE(GL_RGB10_A2)
+		ENUM_TO_STRING_CASE(GL_RGBA12)
+		ENUM_TO_STRING_CASE(GL_RGBA16)
+		ENUM_TO_STRING_CASE(GL_RGBA32F)
+		ENUM_TO_STRING_CASE(GL_RGB32F)
+		ENUM_TO_STRING_CASE(GL_RGBA16F)
+		ENUM_TO_STRING_CASE(GL_RGB16F)
+		ENUM_TO_STRING_CASE(GL_RGBA32UI)
+		ENUM_TO_STRING_CASE(GL_RGB32UI)
+		ENUM_TO_STRING_CASE(GL_RGBA16UI)
+		ENUM_TO_STRING_CASE(GL_RGB16UI)
+		ENUM_TO_STRING_CASE(GL_RGBA8UI)
+		ENUM_TO_STRING_CASE(GL_RGB8UI)
+		ENUM_TO_STRING_CASE(GL_RGBA32I)
+		ENUM_TO_STRING_CASE(GL_RGB32I)
+		ENUM_TO_STRING_CASE(GL_RGBA16I)
+		ENUM_TO_STRING_CASE(GL_RGB16I)
+		ENUM_TO_STRING_CASE(GL_RGBA8I)
+		ENUM_TO_STRING_CASE(GL_RGB8I)
+		ENUM_TO_STRING_CASE(GL_RGB10_A2UI)
+		ENUM_TO_STRING_CASE(GL_SRGB)
+		ENUM_TO_STRING_CASE(GL_SRGB8)
+		ENUM_TO_STRING_CASE(GL_SRGB_ALPHA)
+		ENUM_TO_STRING_CASE(GL_SRGB8_ALPHA8)
+		ENUM_TO_STRING_CASE(GL_DEPTH_COMPONENT16)
+		ENUM_TO_STRING_CASE(GL_DEPTH_COMPONENT24)
+		ENUM_TO_STRING_CASE(GL_DEPTH_COMPONENT32)
+		ENUM_TO_STRING_CASE(GL_DEPTH24_STENCIL8)
+		ENUM_TO_STRING_CASE(GL_R11F_G11F_B10F)
+		ENUM_TO_STRING_CASE(GL_DEPTH_COMPONENT32F)
+		ENUM_TO_STRING_CASE(GL_DEPTH32F_STENCIL8)
 #endif
 		default: {
 			return String("Swapchain format 0x") + String::num_int64(p_swapchain_format, 16);

+ 2 - 3
modules/openxr/extensions/openxr_opengl_extension.h

@@ -59,9 +59,8 @@
 #include OPENGL_INCLUDE_H
 #define GL_GLEXT_PROTOTYPES 1
 #define GL3_PROTOTYPES 1
-#include <GL/gl.h>
-#include <GL/glext.h>
-#include <GL/glx.h>
+#include "thirdparty/glad/glad/gl.h"
+#include "thirdparty/glad/glad/glx.h"
 #include <X11/Xlib.h>
 #endif
 

+ 2 - 3
modules/openxr/openxr_api.cpp

@@ -64,9 +64,8 @@
 #include OPENGL_INCLUDE_H
 #define GL_GLEXT_PROTOTYPES 1
 #define GL3_PROTOTYPES 1
-#include <GL/gl.h>
-#include <GL/glext.h>
-#include <GL/glx.h>
+#include "thirdparty/glad/glad/gl.h"
+#include "thirdparty/glad/glad/glx.h"
 #include <X11/Xlib.h>
 #endif // X11_ENABLED
 #endif // GLES_ENABLED