--- /dev/null
+extension ARB_multisample
--- /dev/null
+extension ARB_texture_border_clamp
--- /dev/null
+extension ARB_texture_cube_map_array
--- /dev/null
+extension ARB_texture_mirrored_repeat
--- /dev/null
+extension EXT_blend_color
--- /dev/null
+extension EXT_stencil_wrap
--- /dev/null
+extension SGIS_texture_edge_clamp
--- /dev/null
+extension SGIS_texture_lod
#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"
#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"
#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
#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>
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
#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>
#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"
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);
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));
+#include <msp/gl/extensions/arb_tessellation_shader.h>
#include "gl.h"
#include "primitivetype.h"
#include "primitivetype_backend.h"
#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"
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)
+#include <msp/gl/extensions/ext_stencil_wrap.h>
#include "gl.h"
#include "stenciltest.h"
#include "stenciltest_backend.h"
+#include <msp/gl/extensions/ext_framebuffer_blit.h>
#include <msp/gl/extensions/ext_framebuffer_object.h>
#include "gl.h"
#include "systemframebuffer.h"
#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"
#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"
#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"
#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>
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);
#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"