]> git.tdb.fi Git - libs/gl.git/commitdiff
Pull in various constants and functions through extensions
authorMikko Rasa <tdb@tdb.fi>
Tue, 5 Sep 2023 09:58:20 +0000 (12:58 +0300)
committerMikko Rasa <tdb@tdb.fi>
Tue, 5 Sep 2023 09:58:20 +0000 (12:58 +0300)
Windows SDK does not have glext.h and the base gl.h only has definitions
for OpenGL 1.1.

23 files changed:
extensions/arb_multisample.glext [new file with mode: 0644]
extensions/arb_texture_border_clamp.glext [new file with mode: 0644]
extensions/arb_texture_cube_map_array.glext [new file with mode: 0644]
extensions/arb_texture_mirrored_repeat.glext [new file with mode: 0644]
extensions/ext_blend_color.glext [new file with mode: 0644]
extensions/ext_stencil_wrap.glext [new file with mode: 0644]
extensions/sgis_texture_edge_clamp.glext [new file with mode: 0644]
extensions/sgis_texture_lod.glext [new file with mode: 0644]
source/backends/opengl/blend_backend.cpp
source/backends/opengl/datatype_backend.cpp
source/backends/opengl/extension.cpp
source/backends/opengl/framebuffer_backend.cpp
source/backends/opengl/gl.h
source/backends/opengl/pipelinestate_backend.cpp
source/backends/opengl/primitivetype_backend.cpp
source/backends/opengl/sampler_backend.cpp
source/backends/opengl/stenciltest_backend.cpp
source/backends/opengl/systemframebuffer.cpp
source/backends/opengl/texture1d_backend.cpp
source/backends/opengl/texture2d_backend.cpp
source/backends/opengl/texture3d_backend.cpp
source/backends/opengl/texture_backend.cpp
source/backends/opengl/texturecube_backend.cpp

diff --git a/extensions/arb_multisample.glext b/extensions/arb_multisample.glext
new file mode 100644 (file)
index 0000000..e21e8fb
--- /dev/null
@@ -0,0 +1 @@
+extension ARB_multisample
diff --git a/extensions/arb_texture_border_clamp.glext b/extensions/arb_texture_border_clamp.glext
new file mode 100644 (file)
index 0000000..a295c64
--- /dev/null
@@ -0,0 +1 @@
+extension ARB_texture_border_clamp
diff --git a/extensions/arb_texture_cube_map_array.glext b/extensions/arb_texture_cube_map_array.glext
new file mode 100644 (file)
index 0000000..01fa2e1
--- /dev/null
@@ -0,0 +1 @@
+extension ARB_texture_cube_map_array
diff --git a/extensions/arb_texture_mirrored_repeat.glext b/extensions/arb_texture_mirrored_repeat.glext
new file mode 100644 (file)
index 0000000..c750380
--- /dev/null
@@ -0,0 +1 @@
+extension ARB_texture_mirrored_repeat
diff --git a/extensions/ext_blend_color.glext b/extensions/ext_blend_color.glext
new file mode 100644 (file)
index 0000000..e20ef0c
--- /dev/null
@@ -0,0 +1 @@
+extension EXT_blend_color
diff --git a/extensions/ext_stencil_wrap.glext b/extensions/ext_stencil_wrap.glext
new file mode 100644 (file)
index 0000000..0d24b52
--- /dev/null
@@ -0,0 +1 @@
+extension EXT_stencil_wrap
diff --git a/extensions/sgis_texture_edge_clamp.glext b/extensions/sgis_texture_edge_clamp.glext
new file mode 100644 (file)
index 0000000..5b742b8
--- /dev/null
@@ -0,0 +1 @@
+extension SGIS_texture_edge_clamp
diff --git a/extensions/sgis_texture_lod.glext b/extensions/sgis_texture_lod.glext
new file mode 100644 (file)
index 0000000..0c0b7e8
--- /dev/null
@@ -0,0 +1 @@
+extension SGIS_texture_lod
index 44267480bd180ba16fc32fbea6c34add1977fce9..9d4b43d2a4f5a4a12aa8712878dca094f6af5cde 100644 (file)
@@ -1,4 +1,5 @@
 #include <stdexcept>
+#include <msp/gl/extensions/ext_blend_color.h>
 #include <msp/gl/extensions/ext_blend_minmax.h>
 #include <msp/gl/extensions/ext_blend_subtract.h>
 #include "blend.h"
index da97010fae0ccdb99cf4ac29ca6035f1cea1abd7..be23911c5b0bbcf4a5553f2114f05218e2480356 100644 (file)
@@ -1,6 +1,10 @@
 #include <algorithm>
 #include <stdexcept>
 #include <msp/gl/extensions/arb_gpu_shader_fp64.h>
+#include <msp/gl/extensions/arb_shader_image_load_store.h>
+#include <msp/gl/extensions/arb_shader_objects.h>
+#include <msp/gl/extensions/arb_texture_cube_map_array.h>
+#include <msp/gl/extensions/ext_gpu_shader4.h>
 #include <msp/gl/extensions/nv_half_float.h>
 #include <msp/gl/extensions/nv_non_square_matrices.h>
 #include "datatype.h"
index 82661c70eb418f254bea16fd151bcd3dc55252ad..a650b65021707c78211b4c96eae72e3392cea46b 100644 (file)
 #include "extension.h"
 #include "gl.h"
 
+#ifndef GL_VERSION_2_0
+#define GL_SHADING_LANGUAGE_VERSION 0x8B8C
+#endif
+
 #ifndef GL_VERSION_3_0
 #define GL_NUM_EXTENSIONS 0x821D
 #endif
index a81566b5adcc1355c28f7fddb5a98c91daf6655d..247d9a4b59792276c394bf379b33b3ce2eafcddc 100644 (file)
@@ -3,6 +3,7 @@
 #include <msp/gl/extensions/arb_geometry_shader4.h>
 #include <msp/gl/extensions/arb_internalformat_query.h>
 #include <msp/gl/extensions/arb_internalformat_query2.h>
+#include <msp/gl/extensions/ext_framebuffer_blit.h>
 #include <msp/gl/extensions/ext_framebuffer_object.h>
 #include <msp/gl/extensions/ext_texture_array.h>
 #include <msp/gl/extensions/ext_texture3d.h>
index 28ac186f343946af3ef0dbe1304e1a28007a6ecc..c243ebd76bf4c367510041bd66d45d67c9369dab 100644 (file)
  typedef double GLdouble;
  typedef long long GLint64;
 
-#else
- #ifdef _WIN32
-  #ifndef WINAPI
-   #if defined(_ARM_)
-    #define WINAPI
-   #else
-    #define WINAPI __stdcall
-   #endif
-  #endif
-  #ifndef APIENTRY
-   #define APIENTRY WINAPI
-  #endif
-  #ifndef DECLSPEC_IMPORT
-   #define DECLSPEC_IMPORT __declspec(dllimport)
-  #endif
-  #ifndef WINGDIAPI
-   #define WINGDIAPI DECLSPEC_IMPORT
+#elif defined(_WIN32)
+ #ifndef WINAPI
+  #if defined(_ARM_)
+   #define WINAPI
+  #else
+   #define WINAPI __stdcall
   #endif
  #endif
+ #ifndef APIENTRY
+  #define APIENTRY WINAPI
+ #endif
+ #ifndef DECLSPEC_IMPORT
+  #define DECLSPEC_IMPORT __declspec(dllimport)
+ #endif
+ #ifndef WINGDIAPI
+  #define WINGDIAPI DECLSPEC_IMPORT
+ #endif
 
+ #include <GL/gl.h>
+ #include <cstdint>
+ using GLchar = char;
+ using GLintptr = intptr_t;
+ #ifdef _WIN64
+  using GLsizeiptr = signed long int;
+ #else
+  using GLsizeiptr = signed long long int;
+ #endif
+ using GLint64 = int64_t;
+ using GLDEBUGPROC = void (APIENTRY *)(GLenum, GLenum, GLuint, GLenum, GLsizei, const GLchar *, const void *);
+ using GLhalfNV = unsigned short;
+
+#else
  #include <GL/gl.h>
  #include <GL/glext.h>
 #endif
index 7c41bd364a17c9d672c4f244c1e5461e862eac0b..af6584a785b841ba80b52cb659cefc3e93d4f37f 100644 (file)
@@ -1,4 +1,6 @@
 #include <msp/gl/extensions/arb_direct_state_access.h>
+#include <msp/gl/extensions/arb_multisample.h>
+#include <msp/gl/extensions/arb_multitexture.h>
 #include <msp/gl/extensions/arb_sampler_objects.h>
 #include <msp/gl/extensions/arb_shader_image_load_store.h>
 #include <msp/gl/extensions/arb_shader_objects.h>
@@ -6,8 +8,11 @@
 #include <msp/gl/extensions/arb_uniform_buffer_object.h>
 #include <msp/gl/extensions/arb_vertex_array_object.h>
 #include <msp/gl/extensions/arb_tessellation_shader.h>
+#include <msp/gl/extensions/ext_blend_color.h>
+#include <msp/gl/extensions/ext_blend_minmax.h>
 #include <msp/gl/extensions/ext_framebuffer_object.h>
 #include <msp/gl/extensions/msp_primitive_restart.h>
+#include <msp/gl/extensions/oes_mapbuffer.h>
 #include "blend.h"
 #include "buffer.h"
 #include "depthtest.h"
@@ -143,6 +148,8 @@ void OpenGLPipelineState::apply() const
                                                glBindTextureUnit(r.binding, r.texture->id);
                                        else
                                        {
+                                               static Require _req(ARB_multitexture);
+
                                                glActiveTexture(GL_TEXTURE0+r.binding);
                                                if(dev_state.bound_tex_targets[r.binding] && static_cast<int>(r.texture->target)!=dev_state.bound_tex_targets[r.binding])
                                                        glBindTexture(dev_state.bound_tex_targets[r.binding], 0);
@@ -240,6 +247,9 @@ void OpenGLPipelineState::apply() const
                const Blend &blend = self.blend;
                if(blend.enabled)
                {
+                       static Require _req(EXT_blend_minmax);
+                       static Require _req2(EXT_blend_color);
+
                        glEnable(GL_BLEND);
                        glBlendEquation(get_gl_blend_equation(blend.equation));
                        glBlendFunc(get_gl_blend_factor(blend.src_factor), get_gl_blend_factor(blend.dst_factor));
index a3c862c020913a7ce0b11016dcb1962491a1ba34..e3995dcd59784d574215cd3e7b80995d077fea01 100644 (file)
@@ -1,3 +1,4 @@
+#include <msp/gl/extensions/arb_tessellation_shader.h>
 #include "gl.h"
 #include "primitivetype.h"
 #include "primitivetype_backend.h"
index 31dcc6bcf0f48b5b18a06625fc02cb5f9c3c8d33..161429f0597a7f0023d5f852d3da8d3ec9e1c8cc 100644 (file)
@@ -1,9 +1,12 @@
 #include <msp/gl/extensions/arb_direct_state_access.h>
 #include <msp/gl/extensions/arb_sampler_objects.h>
 #include <msp/gl/extensions/arb_shadow.h>
+#include <msp/gl/extensions/arb_texture_border_clamp.h>
+#include <msp/gl/extensions/arb_texture_mirrored_repeat.h>
 #include <msp/gl/extensions/ext_texture_filter_anisotropic.h>
 #include <msp/gl/extensions/ext_texture3d.h>
 #include <msp/gl/extensions/khr_debug.h>
+#include <msp/gl/extensions/sgis_texture_edge_clamp.h>
 #include "gl.h"
 #include "sampler.h"
 #include "sampler_backend.h"
@@ -52,7 +55,7 @@ void OpenGLSampler::update(unsigned mask) const
        if(mask&Sampler::MAG_FILTER)
                glSamplerParameteri(id, GL_TEXTURE_MAG_FILTER, get_gl_filter(self.mag_filter));
        if(mask&Sampler::MAX_ANISOTROPY)
-               glSamplerParameterf(id, GL_TEXTURE_MAX_ANISOTROPY_EXT, self.max_anisotropy);
+               glSamplerParameterf(id, GL_TEXTURE_MAX_ANISOTROPY, self.max_anisotropy);
        if(mask&Sampler::WRAP_S)
                glSamplerParameteri(id, GL_TEXTURE_WRAP_S, get_gl_wrap(self.wrap_s));
        if(mask&Sampler::WRAP_T)
index 1c049ea38deca7abf9460310ae0cac4144d670ae..f26bdbe6a475a68daa9f4db98e42abe648c37131 100644 (file)
@@ -1,3 +1,4 @@
+#include <msp/gl/extensions/ext_stencil_wrap.h>
 #include "gl.h"
 #include "stenciltest.h"
 #include "stenciltest_backend.h"
index 2d0664527f734458422660be2202f85185526c54..7b92ddcaf615ccb8fb3451a0deacf2165250a60c 100644 (file)
@@ -1,3 +1,4 @@
+#include <msp/gl/extensions/ext_framebuffer_blit.h>
 #include <msp/gl/extensions/ext_framebuffer_object.h>
 #include "gl.h"
 #include "systemframebuffer.h"
index aa9e1f298f9f5a9a407ccc9b24262762bf86ac8f..f7831dbd82fc45445d64bee853796fd71b62817d 100644 (file)
@@ -1,6 +1,7 @@
 #include <msp/gl/extensions/arb_direct_state_access.h>
 #include <msp/gl/extensions/arb_texture_storage.h>
 #include <msp/gl/extensions/msp_texture1d.h>
+#include <msp/gl/extensions/sgis_texture_lod.h>
 #include "gl.h"
 #include "texture1d.h"
 #include "texture1d_backend.h"
index a4e3cad64c737d78a840b15930542e7cf7e6838f..9abfab545e1697173d65157a20a399b73cb270a9 100644 (file)
@@ -1,6 +1,8 @@
 #include <msp/gl/extensions/arb_direct_state_access.h>
+#include <msp/gl/extensions/arb_pixel_buffer_object.h>
 #include <msp/gl/extensions/arb_texture_storage.h>
 #include <msp/gl/extensions/arb_vertex_buffer_object.h>
+#include <msp/gl/extensions/sgis_texture_lod.h>
 #include "buffer.h"
 #include "gl.h"
 #include "texture2d.h"
index 81783850383c0db70670768e0e318b7cd8e88b13..b71ad811ec752224f37c9ab16f2efc6a970ee778 100644 (file)
@@ -2,6 +2,7 @@
 #include <msp/gl/extensions/arb_texture_storage.h>
 #include <msp/gl/extensions/ext_texture3d.h>
 #include <msp/gl/extensions/ext_texture_array.h>
+#include <msp/gl/extensions/sgis_texture_lod.h>
 #include "gl.h"
 #include "texture3d.h"
 #include "texture3d_backend.h"
index 818defdd44c475a103b96adcf2ac20d8acb7f12e..c96227d46ae7cc0a8435dbb6b17cac745e183341 100644 (file)
@@ -1,4 +1,5 @@
 #include <msp/gl/extensions/arb_direct_state_access.h>
+#include <msp/gl/extensions/arb_multitexture.h>
 #include <msp/gl/extensions/arb_texture_swizzle.h>
 #include <msp/gl/extensions/ext_framebuffer_object.h>
 #include <msp/gl/extensions/khr_debug.h>
@@ -118,6 +119,8 @@ void OpenGLTexture::set_debug_name(const string &name)
 
 void OpenGLTexture::bind_scratch()
 {
+       static Require _req(ARB_multitexture);
+
        const OpenGLTexture *&scratch_binding = Device::get_current().get_state().scratch_texture;
        if(!scratch_binding)
                glActiveTexture(GL_TEXTURE0);
index e363f6fb50c77f25a687942f8bea484d2c77ef36..9b703c05c5425e6f62142089f343b71de1c418ca 100644 (file)
@@ -2,6 +2,7 @@
 #include <msp/gl/extensions/arb_seamless_cube_map.h>
 #include <msp/gl/extensions/arb_texture_cube_map.h>
 #include <msp/gl/extensions/arb_texture_storage.h>
+#include <msp/gl/extensions/sgis_texture_lod.h>
 #include "gl.h"
 #include "texturecube.h"
 #include "texturecube_backend.h"