From f08411ba3f696793a86848ef1c30d4933e63db3f Mon Sep 17 00:00:00 2001 From: Jelle Raaijmakers Date: Thu, 1 Sep 2022 13:27:11 +0200 Subject: [PATCH] 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+ :^) --- Userland/Libraries/LibGL/GL/gl.h | 75 ++++++++++++------------ Userland/Libraries/LibGL/GL/glplatform.h | 14 +++-- Userland/Libraries/LibGL/GLAPI.cpp | 4 +- Userland/Libraries/LibGL/GLContext.cpp | 14 ++--- Userland/Libraries/LibGL/GLContext.h | 4 +- 5 files changed, 58 insertions(+), 53 deletions(-) diff --git a/Userland/Libraries/LibGL/GL/gl.h b/Userland/Libraries/LibGL/GL/gl.h index 70052cfd5d..c15c077dfa 100644 --- a/Userland/Libraries/LibGL/GL/gl.h +++ b/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); diff --git a/Userland/Libraries/LibGL/GL/glplatform.h b/Userland/Libraries/LibGL/GL/glplatform.h index 60bc1d2735..c637b54348 100644 --- a/Userland/Libraries/LibGL/GL/glplatform.h +++ b/Userland/Libraries/LibGL/GL/glplatform.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, Jelle Raaijmakers + * Copyright (c) 2021-2022, Jelle Raaijmakers * * 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 diff --git a/Userland/Libraries/LibGL/GLAPI.cpp b/Userland/Libraries/LibGL/GLAPI.cpp index b8aed682e5..575349f4fa 100644 --- a/Userland/Libraries/LibGL/GLAPI.cpp +++ b/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); } diff --git a/Userland/Libraries/LibGL/GLContext.cpp b/Userland/Libraries/LibGL/GLContext.cpp index 132a56a00d..2ca2d5acd3 100644 --- a/Userland/Libraries/LibGL/GLContext.cpp +++ b/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(const_cast(m_device_info.vendor_name.characters())); + return reinterpret_cast(m_device_info.vendor_name.characters()); case GL_RENDERER: - return reinterpret_cast(const_cast(m_device_info.device_name.characters())); + return reinterpret_cast(m_device_info.device_name.characters()); case GL_VERSION: - return reinterpret_cast(const_cast("1.5")); + return reinterpret_cast("1.5"); case GL_EXTENSIONS: - return reinterpret_cast(const_cast(m_extensions.characters())); + return reinterpret_cast(m_extensions.characters()); case GL_SHADING_LANGUAGE_VERSION: - return reinterpret_cast(const_cast("0.0")); + return reinterpret_cast("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); diff --git a/Userland/Libraries/LibGL/GLContext.h b/Userland/Libraries/LibGL/GLContext.h index e520d13703..9afaa508a2 100644 --- a/Userland/Libraries/LibGL/GLContext.h +++ b/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);