mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-18 00:49:19 +02:00
use DrawElementsBaseVertexOES if available
This commit is contained in:
@@ -133,12 +133,6 @@ opengl33_vaogeometrybank::draw_( gfx::geometry_handle const &Geometry, gfx::stre
|
|||||||
}
|
}
|
||||||
// render
|
// render
|
||||||
if( chunkrecord.index_count > 0 ) {
|
if( chunkrecord.index_count > 0 ) {
|
||||||
/*
|
|
||||||
::glDrawElementsBaseVertex(
|
|
||||||
chunk.type,
|
|
||||||
chunkrecord.index_count, GL_UNSIGNED_INT, reinterpret_cast<void const *>( chunkrecord.index_offset * sizeof( gfx::basic_index ) ),
|
|
||||||
chunkrecord.vertex_offset );
|
|
||||||
*/
|
|
||||||
if (GLAD_GL_VERSION_3_3 || GLAD_GL_ES_VERSION_3_2) {
|
if (GLAD_GL_VERSION_3_3 || GLAD_GL_ES_VERSION_3_2) {
|
||||||
m_vao->bind();
|
m_vao->bind();
|
||||||
::glDrawRangeElementsBaseVertex(
|
::glDrawRangeElementsBaseVertex(
|
||||||
@@ -147,6 +141,13 @@ opengl33_vaogeometrybank::draw_( gfx::geometry_handle const &Geometry, gfx::stre
|
|||||||
chunkrecord.index_count, GL_UNSIGNED_INT, reinterpret_cast<void const *>( chunkrecord.index_offset * sizeof( gfx::basic_index ) ),
|
chunkrecord.index_count, GL_UNSIGNED_INT, reinterpret_cast<void const *>( chunkrecord.index_offset * sizeof( gfx::basic_index ) ),
|
||||||
chunkrecord.vertex_offset );
|
chunkrecord.vertex_offset );
|
||||||
}
|
}
|
||||||
|
else if (GLAD_GL_OES_draw_elements_base_vertex) {
|
||||||
|
m_vao->bind();
|
||||||
|
::glDrawElementsBaseVertexOES(
|
||||||
|
chunk.type,
|
||||||
|
chunkrecord.index_count, GL_UNSIGNED_INT, reinterpret_cast<void const *>( chunkrecord.index_offset * sizeof( gfx::basic_index ) ),
|
||||||
|
chunkrecord.vertex_offset );
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
setup_attrib(chunkrecord.vertex_offset);
|
setup_attrib(chunkrecord.vertex_offset);
|
||||||
m_vao->bind();
|
m_vao->bind();
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
OpenGL, OpenGL ES loader generated by glad 0.1.34 on Wed Jan 20 19:19:06 2021.
|
OpenGL, OpenGL ES loader generated by glad 0.1.34 on Wed Jan 20 19:37:38 2021.
|
||||||
|
|
||||||
Language/Generator: C/C++
|
Language/Generator: C/C++
|
||||||
Specification: gl
|
Specification: gl
|
||||||
@@ -18,16 +18,17 @@
|
|||||||
GL_EXT_texture_filter_anisotropic,
|
GL_EXT_texture_filter_anisotropic,
|
||||||
GL_EXT_texture_sRGB,
|
GL_EXT_texture_sRGB,
|
||||||
GL_GREMEDY_string_marker,
|
GL_GREMEDY_string_marker,
|
||||||
GL_KHR_debug
|
GL_KHR_debug,
|
||||||
|
GL_OES_draw_elements_base_vertex
|
||||||
Loader: False
|
Loader: False
|
||||||
Local files: False
|
Local files: False
|
||||||
Omit khrplatform: False
|
Omit khrplatform: False
|
||||||
Reproducible: False
|
Reproducible: False
|
||||||
|
|
||||||
Commandline:
|
Commandline:
|
||||||
--profile="compatibility" --api="gl=3.3,gles2=3.2" --generator="c" --spec="gl" --no-loader --extensions="GL_ARB_clip_control,GL_ARB_direct_state_access,GL_ARB_multi_bind,GL_ARB_texture_filter_anisotropic,GL_EXT_clip_control,GL_EXT_framebuffer_object,GL_EXT_geometry_shader,GL_EXT_texture_compression_s3tc,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_sRGB,GL_GREMEDY_string_marker,GL_KHR_debug"
|
--profile="compatibility" --api="gl=3.3,gles2=3.2" --generator="c" --spec="gl" --no-loader --extensions="GL_ARB_clip_control,GL_ARB_direct_state_access,GL_ARB_multi_bind,GL_ARB_texture_filter_anisotropic,GL_EXT_clip_control,GL_EXT_framebuffer_object,GL_EXT_geometry_shader,GL_EXT_texture_compression_s3tc,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_sRGB,GL_GREMEDY_string_marker,GL_KHR_debug,GL_OES_draw_elements_base_vertex"
|
||||||
Online:
|
Online:
|
||||||
https://glad.dav1d.de/#profile=compatibility&language=c&specification=gl&api=gl%3D3.3&api=gles2%3D3.2&extensions=GL_ARB_clip_control&extensions=GL_ARB_direct_state_access&extensions=GL_ARB_multi_bind&extensions=GL_ARB_texture_filter_anisotropic&extensions=GL_EXT_clip_control&extensions=GL_EXT_framebuffer_object&extensions=GL_EXT_geometry_shader&extensions=GL_EXT_texture_compression_s3tc&extensions=GL_EXT_texture_filter_anisotropic&extensions=GL_EXT_texture_sRGB&extensions=GL_GREMEDY_string_marker&extensions=GL_KHR_debug
|
https://glad.dav1d.de/#profile=compatibility&language=c&specification=gl&api=gl%3D3.3&api=gles2%3D3.2&extensions=GL_ARB_clip_control&extensions=GL_ARB_direct_state_access&extensions=GL_ARB_multi_bind&extensions=GL_ARB_texture_filter_anisotropic&extensions=GL_EXT_clip_control&extensions=GL_EXT_framebuffer_object&extensions=GL_EXT_geometry_shader&extensions=GL_EXT_texture_compression_s3tc&extensions=GL_EXT_texture_filter_anisotropic&extensions=GL_EXT_texture_sRGB&extensions=GL_GREMEDY_string_marker&extensions=GL_KHR_debug&extensions=GL_OES_draw_elements_base_vertex
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
@@ -4936,6 +4937,22 @@ GLAPI int GLAD_GL_EXT_texture_filter_anisotropic;
|
|||||||
#define GL_KHR_debug 1
|
#define GL_KHR_debug 1
|
||||||
GLAPI int GLAD_GL_KHR_debug;
|
GLAPI int GLAD_GL_KHR_debug;
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef GL_OES_draw_elements_base_vertex
|
||||||
|
#define GL_OES_draw_elements_base_vertex 1
|
||||||
|
GLAPI int GLAD_GL_OES_draw_elements_base_vertex;
|
||||||
|
typedef void (APIENTRYP PFNGLDRAWELEMENTSBASEVERTEXOESPROC)(GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex);
|
||||||
|
GLAPI PFNGLDRAWELEMENTSBASEVERTEXOESPROC glad_glDrawElementsBaseVertexOES;
|
||||||
|
#define glDrawElementsBaseVertexOES glad_glDrawElementsBaseVertexOES
|
||||||
|
typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSBASEVERTEXOESPROC)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex);
|
||||||
|
GLAPI PFNGLDRAWRANGEELEMENTSBASEVERTEXOESPROC glad_glDrawRangeElementsBaseVertexOES;
|
||||||
|
#define glDrawRangeElementsBaseVertexOES glad_glDrawRangeElementsBaseVertexOES
|
||||||
|
typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXOESPROC)(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex);
|
||||||
|
GLAPI PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXOESPROC glad_glDrawElementsInstancedBaseVertexOES;
|
||||||
|
#define glDrawElementsInstancedBaseVertexOES glad_glDrawElementsInstancedBaseVertexOES
|
||||||
|
typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSBASEVERTEXEXTPROC)(GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount, const GLint *basevertex);
|
||||||
|
GLAPI PFNGLMULTIDRAWELEMENTSBASEVERTEXEXTPROC glad_glMultiDrawElementsBaseVertexEXT;
|
||||||
|
#define glMultiDrawElementsBaseVertexEXT glad_glMultiDrawElementsBaseVertexEXT
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
OpenGL, OpenGL ES loader generated by glad 0.1.34 on Wed Jan 20 19:19:06 2021.
|
OpenGL, OpenGL ES loader generated by glad 0.1.34 on Wed Jan 20 19:37:38 2021.
|
||||||
|
|
||||||
Language/Generator: C/C++
|
Language/Generator: C/C++
|
||||||
Specification: gl
|
Specification: gl
|
||||||
@@ -18,16 +18,17 @@
|
|||||||
GL_EXT_texture_filter_anisotropic,
|
GL_EXT_texture_filter_anisotropic,
|
||||||
GL_EXT_texture_sRGB,
|
GL_EXT_texture_sRGB,
|
||||||
GL_GREMEDY_string_marker,
|
GL_GREMEDY_string_marker,
|
||||||
GL_KHR_debug
|
GL_KHR_debug,
|
||||||
|
GL_OES_draw_elements_base_vertex
|
||||||
Loader: False
|
Loader: False
|
||||||
Local files: False
|
Local files: False
|
||||||
Omit khrplatform: False
|
Omit khrplatform: False
|
||||||
Reproducible: False
|
Reproducible: False
|
||||||
|
|
||||||
Commandline:
|
Commandline:
|
||||||
--profile="compatibility" --api="gl=3.3,gles2=3.2" --generator="c" --spec="gl" --no-loader --extensions="GL_ARB_clip_control,GL_ARB_direct_state_access,GL_ARB_multi_bind,GL_ARB_texture_filter_anisotropic,GL_EXT_clip_control,GL_EXT_framebuffer_object,GL_EXT_geometry_shader,GL_EXT_texture_compression_s3tc,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_sRGB,GL_GREMEDY_string_marker,GL_KHR_debug"
|
--profile="compatibility" --api="gl=3.3,gles2=3.2" --generator="c" --spec="gl" --no-loader --extensions="GL_ARB_clip_control,GL_ARB_direct_state_access,GL_ARB_multi_bind,GL_ARB_texture_filter_anisotropic,GL_EXT_clip_control,GL_EXT_framebuffer_object,GL_EXT_geometry_shader,GL_EXT_texture_compression_s3tc,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_sRGB,GL_GREMEDY_string_marker,GL_KHR_debug,GL_OES_draw_elements_base_vertex"
|
||||||
Online:
|
Online:
|
||||||
https://glad.dav1d.de/#profile=compatibility&language=c&specification=gl&api=gl%3D3.3&api=gles2%3D3.2&extensions=GL_ARB_clip_control&extensions=GL_ARB_direct_state_access&extensions=GL_ARB_multi_bind&extensions=GL_ARB_texture_filter_anisotropic&extensions=GL_EXT_clip_control&extensions=GL_EXT_framebuffer_object&extensions=GL_EXT_geometry_shader&extensions=GL_EXT_texture_compression_s3tc&extensions=GL_EXT_texture_filter_anisotropic&extensions=GL_EXT_texture_sRGB&extensions=GL_GREMEDY_string_marker&extensions=GL_KHR_debug
|
https://glad.dav1d.de/#profile=compatibility&language=c&specification=gl&api=gl%3D3.3&api=gles2%3D3.2&extensions=GL_ARB_clip_control&extensions=GL_ARB_direct_state_access&extensions=GL_ARB_multi_bind&extensions=GL_ARB_texture_filter_anisotropic&extensions=GL_EXT_clip_control&extensions=GL_EXT_framebuffer_object&extensions=GL_EXT_geometry_shader&extensions=GL_EXT_texture_compression_s3tc&extensions=GL_EXT_texture_filter_anisotropic&extensions=GL_EXT_texture_sRGB&extensions=GL_GREMEDY_string_marker&extensions=GL_KHR_debug&extensions=GL_OES_draw_elements_base_vertex
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
@@ -994,6 +995,7 @@ int GLAD_GL_EXT_texture_filter_anisotropic = 0;
|
|||||||
int GLAD_GL_EXT_texture_sRGB = 0;
|
int GLAD_GL_EXT_texture_sRGB = 0;
|
||||||
int GLAD_GL_GREMEDY_string_marker = 0;
|
int GLAD_GL_GREMEDY_string_marker = 0;
|
||||||
int GLAD_GL_KHR_debug = 0;
|
int GLAD_GL_KHR_debug = 0;
|
||||||
|
int GLAD_GL_OES_draw_elements_base_vertex = 0;
|
||||||
PFNGLCLIPCONTROLPROC glad_glClipControl = NULL;
|
PFNGLCLIPCONTROLPROC glad_glClipControl = NULL;
|
||||||
PFNGLCREATETRANSFORMFEEDBACKSPROC glad_glCreateTransformFeedbacks = NULL;
|
PFNGLCREATETRANSFORMFEEDBACKSPROC glad_glCreateTransformFeedbacks = NULL;
|
||||||
PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC glad_glTransformFeedbackBufferBase = NULL;
|
PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC glad_glTransformFeedbackBufferBase = NULL;
|
||||||
@@ -1129,6 +1131,10 @@ PFNGLGETOBJECTPTRLABELKHRPROC glad_glGetObjectPtrLabelKHR = NULL;
|
|||||||
PFNGLGETPOINTERVKHRPROC glad_glGetPointervKHR = NULL;
|
PFNGLGETPOINTERVKHRPROC glad_glGetPointervKHR = NULL;
|
||||||
PFNGLCLIPCONTROLEXTPROC glad_glClipControlEXT = NULL;
|
PFNGLCLIPCONTROLEXTPROC glad_glClipControlEXT = NULL;
|
||||||
PFNGLFRAMEBUFFERTEXTUREEXTPROC glad_glFramebufferTextureEXT = NULL;
|
PFNGLFRAMEBUFFERTEXTUREEXTPROC glad_glFramebufferTextureEXT = NULL;
|
||||||
|
PFNGLDRAWELEMENTSBASEVERTEXOESPROC glad_glDrawElementsBaseVertexOES = NULL;
|
||||||
|
PFNGLDRAWRANGEELEMENTSBASEVERTEXOESPROC glad_glDrawRangeElementsBaseVertexOES = NULL;
|
||||||
|
PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXOESPROC glad_glDrawElementsInstancedBaseVertexOES = NULL;
|
||||||
|
PFNGLMULTIDRAWELEMENTSBASEVERTEXEXTPROC glad_glMultiDrawElementsBaseVertexEXT = NULL;
|
||||||
static void load_GL_VERSION_1_0(GLADloadproc load) {
|
static void load_GL_VERSION_1_0(GLADloadproc load) {
|
||||||
if(!GLAD_GL_VERSION_1_0) return;
|
if(!GLAD_GL_VERSION_1_0) return;
|
||||||
glad_glCullFace = (PFNGLCULLFACEPROC)load("glCullFace");
|
glad_glCullFace = (PFNGLCULLFACEPROC)load("glCullFace");
|
||||||
@@ -2531,6 +2537,13 @@ static void load_GL_EXT_geometry_shader(GLADloadproc load) {
|
|||||||
if(!GLAD_GL_EXT_geometry_shader) return;
|
if(!GLAD_GL_EXT_geometry_shader) return;
|
||||||
glad_glFramebufferTextureEXT = (PFNGLFRAMEBUFFERTEXTUREEXTPROC)load("glFramebufferTextureEXT");
|
glad_glFramebufferTextureEXT = (PFNGLFRAMEBUFFERTEXTUREEXTPROC)load("glFramebufferTextureEXT");
|
||||||
}
|
}
|
||||||
|
static void load_GL_OES_draw_elements_base_vertex(GLADloadproc load) {
|
||||||
|
if(!GLAD_GL_OES_draw_elements_base_vertex) return;
|
||||||
|
glad_glDrawElementsBaseVertexOES = (PFNGLDRAWELEMENTSBASEVERTEXOESPROC)load("glDrawElementsBaseVertexOES");
|
||||||
|
glad_glDrawRangeElementsBaseVertexOES = (PFNGLDRAWRANGEELEMENTSBASEVERTEXOESPROC)load("glDrawRangeElementsBaseVertexOES");
|
||||||
|
glad_glDrawElementsInstancedBaseVertexOES = (PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXOESPROC)load("glDrawElementsInstancedBaseVertexOES");
|
||||||
|
glad_glMultiDrawElementsBaseVertexEXT = (PFNGLMULTIDRAWELEMENTSBASEVERTEXEXTPROC)load("glMultiDrawElementsBaseVertexEXT");
|
||||||
|
}
|
||||||
static int find_extensionsGLES2(void) {
|
static int find_extensionsGLES2(void) {
|
||||||
if (!get_exts()) return 0;
|
if (!get_exts()) return 0;
|
||||||
GLAD_GL_EXT_clip_control = has_ext("GL_EXT_clip_control");
|
GLAD_GL_EXT_clip_control = has_ext("GL_EXT_clip_control");
|
||||||
@@ -2538,6 +2551,7 @@ static int find_extensionsGLES2(void) {
|
|||||||
GLAD_GL_EXT_texture_compression_s3tc = has_ext("GL_EXT_texture_compression_s3tc");
|
GLAD_GL_EXT_texture_compression_s3tc = has_ext("GL_EXT_texture_compression_s3tc");
|
||||||
GLAD_GL_EXT_texture_filter_anisotropic = has_ext("GL_EXT_texture_filter_anisotropic");
|
GLAD_GL_EXT_texture_filter_anisotropic = has_ext("GL_EXT_texture_filter_anisotropic");
|
||||||
GLAD_GL_KHR_debug = has_ext("GL_KHR_debug");
|
GLAD_GL_KHR_debug = has_ext("GL_KHR_debug");
|
||||||
|
GLAD_GL_OES_draw_elements_base_vertex = has_ext("GL_OES_draw_elements_base_vertex");
|
||||||
free_exts();
|
free_exts();
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@@ -2603,6 +2617,7 @@ int gladLoadGLES2Loader(GLADloadproc load) {
|
|||||||
load_GL_EXT_clip_control(load);
|
load_GL_EXT_clip_control(load);
|
||||||
load_GL_EXT_geometry_shader(load);
|
load_GL_EXT_geometry_shader(load);
|
||||||
load_GL_KHR_debug(load);
|
load_GL_KHR_debug(load);
|
||||||
|
load_GL_OES_draw_elements_base_vertex(load);
|
||||||
return GLVersion.major != 0 || GLVersion.minor != 0;
|
return GLVersion.major != 0 || GLVersion.minor != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user