Explorar o código

LibGL: Improve constants and types compatibility

When compiling with SDL_opengl, all kinds of differences between LibGL
and OpenGL constants and types popped up as redefinition warnings and
errors.

This fixes all LibGL-related warnings when compiling PrBoom+ :^)
Jelle Raaijmakers %!s(int64=2) %!d(string=hai) anos
pai
achega
f08411ba3f

+ 37 - 38
Userland/Libraries/LibGL/GL/gl.h

@@ -55,9 +55,9 @@ extern "C" {
 #define GL_ALWAYS 0x0207
 
 // Buffer bits
-#define GL_DEPTH_BUFFER_BIT 0x00100
-#define GL_STENCIL_BUFFER_BIT 0x00400
-#define GL_COLOR_BUFFER_BIT 0x04000
+#define GL_DEPTH_BUFFER_BIT 0x00000100
+#define GL_STENCIL_BUFFER_BIT 0x00000400
+#define GL_COLOR_BUFFER_BIT 0x00004000
 
 // Enable capabilities
 #define GL_LINE_SMOOTH 0x0B20
@@ -411,70 +411,69 @@ extern "C" {
 
 // Texture Unit indices
 #define GL_TEXTURE0 0x84C0
+#define GL_TEXTURE0_ARB 0x84C0
 #define GL_TEXTURE1 0x84C1
+#define GL_TEXTURE1_ARB 0x84C1
 #define GL_TEXTURE2 0x84C2
+#define GL_TEXTURE2_ARB 0x84C2
 #define GL_TEXTURE3 0x84C3
+#define GL_TEXTURE3_ARB 0x84C3
 #define GL_TEXTURE4 0x84C4
+#define GL_TEXTURE4_ARB 0x84C4
 #define GL_TEXTURE5 0x84C5
+#define GL_TEXTURE5_ARB 0x84C5
 #define GL_TEXTURE6 0x84C6
+#define GL_TEXTURE6_ARB 0x84C6
 #define GL_TEXTURE7 0x84C7
+#define GL_TEXTURE7_ARB 0x84C7
 #define GL_TEXTURE8 0x84C8
+#define GL_TEXTURE8_ARB 0x84C8
 #define GL_TEXTURE9 0x84C9
+#define GL_TEXTURE9_ARB 0x84C9
 #define GL_TEXTURE10 0x84CA
+#define GL_TEXTURE10_ARB 0x84CA
 #define GL_TEXTURE11 0x84CB
+#define GL_TEXTURE11_ARB 0x84CB
 #define GL_TEXTURE12 0x84CC
+#define GL_TEXTURE12_ARB 0x84CC
 #define GL_TEXTURE13 0x84CD
+#define GL_TEXTURE13_ARB 0x84CD
 #define GL_TEXTURE14 0x84CE
+#define GL_TEXTURE14_ARB 0x84CE
 #define GL_TEXTURE15 0x84CF
+#define GL_TEXTURE15_ARB 0x84CF
 #define GL_TEXTURE16 0x84D0
+#define GL_TEXTURE16_ARB 0x84D0
 #define GL_TEXTURE17 0x84D1
+#define GL_TEXTURE17_ARB 0x84D1
 #define GL_TEXTURE18 0x84D2
+#define GL_TEXTURE18_ARB 0x84D2
 #define GL_TEXTURE19 0x84D3
+#define GL_TEXTURE19_ARB 0x84D3
 #define GL_TEXTURE20 0x84D4
+#define GL_TEXTURE20_ARB 0x84D4
 #define GL_TEXTURE21 0x84D5
+#define GL_TEXTURE21_ARB 0x84D5
 #define GL_TEXTURE22 0x84D6
+#define GL_TEXTURE22_ARB 0x84D6
 #define GL_TEXTURE23 0x84D7
+#define GL_TEXTURE23_ARB 0x84D7
 #define GL_TEXTURE24 0x84D8
+#define GL_TEXTURE24_ARB 0x84D8
 #define GL_TEXTURE25 0x84D9
+#define GL_TEXTURE25_ARB 0x84D9
 #define GL_TEXTURE26 0x84DA
+#define GL_TEXTURE26_ARB 0x84DA
 #define GL_TEXTURE27 0x84DB
+#define GL_TEXTURE27_ARB 0x84DB
 #define GL_TEXTURE28 0x84DC
+#define GL_TEXTURE28_ARB 0x84DC
 #define GL_TEXTURE29 0x84DD
+#define GL_TEXTURE29_ARB 0x84DD
 #define GL_TEXTURE30 0x84DE
+#define GL_TEXTURE30_ARB 0x84DE
 #define GL_TEXTURE31 0x84DF
-
-#define GL_TEXTURE0_ARB GL_TEXTURE0
-#define GL_TEXTURE1_ARB GL_TEXTURE1
-#define GL_TEXTURE2_ARB GL_TEXTURE2
-#define GL_TEXTURE3_ARB GL_TEXTURE3
-#define GL_TEXTURE4_ARB GL_TEXTURE4
-#define GL_TEXTURE5_ARB GL_TEXTURE5
-#define GL_TEXTURE6_ARB GL_TEXTURE6
-#define GL_TEXTURE7_ARB GL_TEXTURE7
-#define GL_TEXTURE8_ARB GL_TEXTURE8
-#define GL_TEXTURE9_ARB GL_TEXTURE9
-#define GL_TEXTURE10_ARB GL_TEXTURE10
-#define GL_TEXTURE11_ARB GL_TEXTURE11
-#define GL_TEXTURE12_ARB GL_TEXTURE12
-#define GL_TEXTURE13_ARB GL_TEXTURE13
-#define GL_TEXTURE14_ARB GL_TEXTURE14
-#define GL_TEXTURE15_ARB GL_TEXTURE15
-#define GL_TEXTURE16_ARB GL_TEXTURE16
-#define GL_TEXTURE17_ARB GL_TEXTURE17
-#define GL_TEXTURE18_ARB GL_TEXTURE18
-#define GL_TEXTURE19_ARB GL_TEXTURE19
-#define GL_TEXTURE20_ARB GL_TEXTURE20
-#define GL_TEXTURE21_ARB GL_TEXTURE21
-#define GL_TEXTURE22_ARB GL_TEXTURE22
-#define GL_TEXTURE23_ARB GL_TEXTURE23
-#define GL_TEXTURE24_ARB GL_TEXTURE24
-#define GL_TEXTURE25_ARB GL_TEXTURE25
-#define GL_TEXTURE26_ARB GL_TEXTURE26
-#define GL_TEXTURE27_ARB GL_TEXTURE27
-#define GL_TEXTURE28_ARB GL_TEXTURE28
-#define GL_TEXTURE29_ARB GL_TEXTURE29
-#define GL_TEXTURE30_ARB GL_TEXTURE30
-#define GL_TEXTURE31_ARB GL_TEXTURE31
+#define GL_TEXTURE31_ARB 0x84DF
 
 // Texture coord names
 #define GL_S 0x2000
@@ -572,7 +571,7 @@ GLAPI void glEnd();
 GLAPI void glFrustum(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble nearVal, GLdouble farVal);
 GLAPI void glGenTextures(GLsizei n, GLuint* textures);
 GLAPI GLenum glGetError();
-GLAPI GLubyte* glGetString(GLenum name);
+GLAPI GLubyte const* glGetString(GLenum name);
 GLAPI void glLoadIdentity();
 GLAPI void glLoadMatrixd(GLdouble const* matrix);
 GLAPI void glLoadMatrixf(GLfloat const* matrix);
@@ -684,7 +683,7 @@ GLAPI void glDepthRange(GLdouble nearVal, GLdouble farVal);
 GLAPI void glDepthFunc(GLenum func);
 GLAPI void glPolygonMode(GLenum face, GLenum mode);
 GLAPI void glPolygonOffset(GLfloat factor, GLfloat units);
-GLAPI void glFogfv(GLenum mode, GLfloat* params);
+GLAPI void glFogfv(GLenum mode, GLfloat const* params);
 GLAPI void glFogf(GLenum pname, GLfloat param);
 GLAPI void glFogi(GLenum pname, GLint param);
 GLAPI void glPixelStorei(GLenum pname, GLint param);

+ 10 - 4
Userland/Libraries/LibGL/GL/glplatform.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2021, Jelle Raaijmakers <jelle@gmta.nl>
+ * Copyright (c) 2021-2022, Jelle Raaijmakers <jelle@gmta.nl>
  *
  * SPDX-License-Identifier: BSD-2-Clause
  */
@@ -21,7 +21,7 @@
 // Defines types used by all OpenGL applications
 // https://www.khronos.org/opengl/wiki/OpenGL_Type
 typedef char GLchar;
-typedef char GLbyte;
+typedef signed char GLbyte;
 typedef unsigned char GLuchar;
 typedef unsigned char GLubyte;
 typedef unsigned char GLboolean;
@@ -30,8 +30,6 @@ typedef unsigned short GLushort;
 typedef int GLint;
 typedef unsigned int GLuint;
 typedef int GLfixed;
-typedef long long GLint64;
-typedef unsigned long long GLuint64;
 typedef int GLsizei;
 typedef void GLvoid;
 typedef float GLfloat;
@@ -40,3 +38,11 @@ typedef float GLclampf;
 typedef double GLdouble;
 typedef unsigned int GLenum;
 typedef unsigned int GLbitfield;
+
+#if defined(__x86_64__) || defined(__aarch64__)
+typedef long GLint64;
+typedef unsigned long GLuint64;
+#else
+typedef long long GLint64;
+typedef unsigned long long GLuint64;
+#endif

+ 2 - 2
Userland/Libraries/LibGL/GLAPI.cpp

@@ -354,7 +354,7 @@ void glFinish()
     g_gl_context->gl_finish();
 }
 
-void glFogfv(GLenum pname, GLfloat* params)
+void glFogfv(GLenum pname, GLfloat const* params)
 {
     g_gl_context->gl_fogfv(pname, params);
 }
@@ -444,7 +444,7 @@ void glGetMaterialiv(GLenum face, GLenum pname, GLint* params)
     g_gl_context->gl_get_material(face, pname, params, GL_INT);
 }
 
-GLubyte* glGetString(GLenum name)
+GLubyte const* glGetString(GLenum name)
 {
     return g_gl_context->gl_get_string(name);
 }

+ 7 - 7
Userland/Libraries/LibGL/GLContext.cpp

@@ -191,21 +191,21 @@ GLenum GLContext::gl_get_error()
     return last_error;
 }
 
-GLubyte* GLContext::gl_get_string(GLenum name)
+GLubyte const* GLContext::gl_get_string(GLenum name)
 {
     RETURN_VALUE_WITH_ERROR_IF(m_in_draw_state, GL_INVALID_OPERATION, nullptr);
 
     switch (name) {
     case GL_VENDOR:
-        return reinterpret_cast<GLubyte*>(const_cast<char*>(m_device_info.vendor_name.characters()));
+        return reinterpret_cast<GLubyte const*>(m_device_info.vendor_name.characters());
     case GL_RENDERER:
-        return reinterpret_cast<GLubyte*>(const_cast<char*>(m_device_info.device_name.characters()));
+        return reinterpret_cast<GLubyte const*>(m_device_info.device_name.characters());
     case GL_VERSION:
-        return reinterpret_cast<GLubyte*>(const_cast<char*>("1.5"));
+        return reinterpret_cast<GLubyte const*>("1.5");
     case GL_EXTENSIONS:
-        return reinterpret_cast<GLubyte*>(const_cast<char*>(m_extensions.characters()));
+        return reinterpret_cast<GLubyte const*>(m_extensions.characters());
     case GL_SHADING_LANGUAGE_VERSION:
-        return reinterpret_cast<GLubyte*>(const_cast<char*>("0.0"));
+        return reinterpret_cast<GLubyte const*>("0.0");
     default:
         dbgln_if(GL_DEBUG, "gl_get_string({:#x}): unknown name", name);
         break;
@@ -725,7 +725,7 @@ void GLContext::gl_polygon_offset(GLfloat factor, GLfloat units)
     m_rasterizer->set_options(rasterizer_options);
 }
 
-void GLContext::gl_fogfv(GLenum pname, GLfloat* params)
+void GLContext::gl_fogfv(GLenum pname, GLfloat const* params)
 {
     APPEND_TO_CALL_LIST_AND_RETURN_IF_NEEDED(gl_fogfv, pname, params);
     RETURN_WITH_ERROR_IF(m_in_draw_state, GL_INVALID_OPERATION);

+ 2 - 2
Userland/Libraries/LibGL/GLContext.h

@@ -113,7 +113,7 @@ public:
     void gl_frustum(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near_val, GLdouble far_val);
     void gl_gen_textures(GLsizei n, GLuint* textures);
     GLenum gl_get_error();
-    GLubyte* gl_get_string(GLenum name);
+    GLubyte const* gl_get_string(GLenum name);
     void gl_load_identity();
     void gl_load_matrix(FloatMatrix4x4 const& matrix);
     void gl_matrix_mode(GLenum mode);
@@ -177,7 +177,7 @@ public:
     void gl_depth_func(GLenum func);
     void gl_polygon_mode(GLenum face, GLenum mode);
     void gl_polygon_offset(GLfloat factor, GLfloat units);
-    void gl_fogfv(GLenum pname, GLfloat* params);
+    void gl_fogfv(GLenum pname, GLfloat const* params);
     void gl_fogf(GLenum pname, GLfloat param);
     void gl_fogi(GLenum pname, GLint param);
     void gl_pixel_storei(GLenum pname, GLint param);