From 263c8d383dc0181f91c1a58857460c1088163e0c Mon Sep 17 00:00:00 2001 From: korenkonder Date: Mon, 21 Apr 2025 20:40:40 +0300 Subject: [PATCH] Replaced `GL_VERSION` variables with `DIVA_GL_VERSION` --- src/DivaGL/GL/array_buffer.cpp | 16 +- src/DivaGL/GL/element_array_buffer.cpp | 16 +- src/DivaGL/GL/shader_storage_buffer.cpp | 26 +-- src/DivaGL/GL/uniform_buffer.cpp | 16 +- src/DivaGL/effect.cpp | 16 +- src/DivaGL/gl_state.cpp | 10 +- src/DivaGL/hook.cpp | 2 +- src/DivaGL/mdl/draw_object.cpp | 7 +- src/DivaGL/object.cpp | 4 +- src/DivaGL/render.cpp | 2 +- src/DivaGL/render_context.cpp | 230 ++++++++++++------------ src/DivaGL/render_context.hpp | 4 +- src/DivaGL/renderer/dof.cpp | 2 +- src/DivaGL/renderer/transparency.cpp | 6 +- src/DivaGL/shader.cpp | 20 +-- src/DivaGL/wrap.cpp | 36 ++-- src/DivaGL/wrap.hpp | 12 +- 17 files changed, 213 insertions(+), 212 deletions(-) diff --git a/src/DivaGL/GL/array_buffer.cpp b/src/DivaGL/GL/array_buffer.cpp index c8e8916..4428d8e 100644 --- a/src/DivaGL/GL/array_buffer.cpp +++ b/src/DivaGL/GL/array_buffer.cpp @@ -15,14 +15,14 @@ namespace GL { if (buffer) return; - if (GL_VERSION_4_5) { + if (DIVA_GL_VERSION_4_5) { glCreateBuffers(1, &buffer); glNamedBufferStorage(buffer, (GLsizeiptr)size, 0, GL_DYNAMIC_STORAGE_BIT | GL_MAP_WRITE_BIT); } else { glGenBuffers(1, &buffer); gl_state_bind_array_buffer(buffer, true); - if (GL_VERSION_4_4) + if (DIVA_GL_VERSION_4_4) glBufferStorage(GL_ARRAY_BUFFER, (GLsizeiptr)size, 0, GL_DYNAMIC_STORAGE_BIT | GL_MAP_WRITE_BIT); else @@ -34,7 +34,7 @@ namespace GL { if (buffer) return; - if (GL_VERSION_4_5) { + if (DIVA_GL_VERSION_4_5) { glCreateBuffers(1, &buffer); glNamedBufferStorage(buffer, (GLsizeiptr)size, data, dynamic ? GL_DYNAMIC_STORAGE_BIT | GL_MAP_WRITE_BIT : 0); @@ -42,7 +42,7 @@ namespace GL { else { glGenBuffers(1, &buffer); gl_state_bind_array_buffer(buffer, true); - if (GL_VERSION_4_4) + if (DIVA_GL_VERSION_4_4) glBufferStorage(GL_ARRAY_BUFFER, (GLsizeiptr)size, data, dynamic ? GL_DYNAMIC_STORAGE_BIT | GL_MAP_WRITE_BIT : 0); else @@ -63,7 +63,7 @@ namespace GL { return 0; void* data; - if (GL_VERSION_4_5) + if (DIVA_GL_VERSION_4_5) data = glMapNamedBuffer(buffer, GL_WRITE_ONLY); else { gl_state_bind_array_buffer(buffer); @@ -73,7 +73,7 @@ namespace GL { if (data) return data; - if (GL_VERSION_4_5) + if (DIVA_GL_VERSION_4_5) glUnmapNamedBuffer(buffer); else { glUnmapBuffer(GL_ARRAY_BUFFER); @@ -86,7 +86,7 @@ namespace GL { if (!buffer) return; - if (GL_VERSION_4_5) + if (DIVA_GL_VERSION_4_5) glUnmapNamedBuffer(buffer); else { glUnmapBuffer(GL_ARRAY_BUFFER); @@ -98,7 +98,7 @@ namespace GL { if (!buffer || !size) return; - if (GL_VERSION_4_5) + if (DIVA_GL_VERSION_4_5) glNamedBufferSubData(buffer, (GLsizeiptr)offset, (GLsizeiptr)size, data); else { gl_state_bind_array_buffer(buffer); diff --git a/src/DivaGL/GL/element_array_buffer.cpp b/src/DivaGL/GL/element_array_buffer.cpp index 1bb00cf..b3acd48 100644 --- a/src/DivaGL/GL/element_array_buffer.cpp +++ b/src/DivaGL/GL/element_array_buffer.cpp @@ -15,14 +15,14 @@ namespace GL { if (buffer) return; - if (GL_VERSION_4_5) { + if (DIVA_GL_VERSION_4_5) { glCreateBuffers(1, &buffer); glNamedBufferStorage(buffer, (GLsizeiptr)size, 0, GL_DYNAMIC_STORAGE_BIT | GL_MAP_WRITE_BIT); } else { glGenBuffers(1, &buffer); gl_state_bind_element_array_buffer(buffer, true); - if (GL_VERSION_4_4) + if (DIVA_GL_VERSION_4_4) glBufferStorage(GL_ELEMENT_ARRAY_BUFFER, (GLsizeiptr)size, 0, GL_DYNAMIC_STORAGE_BIT | GL_MAP_WRITE_BIT); else @@ -34,7 +34,7 @@ namespace GL { if (buffer) return; - if (GL_VERSION_4_5) { + if (DIVA_GL_VERSION_4_5) { glCreateBuffers(1, &buffer); glNamedBufferStorage(buffer, (GLsizeiptr)size, data, dynamic ? GL_DYNAMIC_STORAGE_BIT | GL_MAP_WRITE_BIT : 0); @@ -42,7 +42,7 @@ namespace GL { else { glGenBuffers(1, &buffer); gl_state_bind_element_array_buffer(buffer, true); - if (GL_VERSION_4_4) + if (DIVA_GL_VERSION_4_4) glBufferStorage(GL_ELEMENT_ARRAY_BUFFER, (GLsizeiptr)size, data, dynamic ? GL_DYNAMIC_STORAGE_BIT | GL_MAP_WRITE_BIT : 0); else @@ -63,7 +63,7 @@ namespace GL { return 0; void* data; - if (GL_VERSION_4_5) + if (DIVA_GL_VERSION_4_5) data = glMapNamedBuffer(buffer, GL_WRITE_ONLY); else { gl_state_bind_element_array_buffer(buffer); @@ -73,7 +73,7 @@ namespace GL { if (data) return data; - if (GL_VERSION_4_5) + if (DIVA_GL_VERSION_4_5) glUnmapNamedBuffer(buffer); else { glUnmapBuffer(GL_ELEMENT_ARRAY_BUFFER); @@ -86,7 +86,7 @@ namespace GL { if (!buffer) return; - if (GL_VERSION_4_5) + if (DIVA_GL_VERSION_4_5) glUnmapNamedBuffer(buffer); else { glUnmapBuffer(GL_ELEMENT_ARRAY_BUFFER); @@ -98,7 +98,7 @@ namespace GL { if (!buffer || !size) return; - if (GL_VERSION_4_5) + if (DIVA_GL_VERSION_4_5) glNamedBufferSubData(buffer, (GLsizeiptr)offset, (GLsizeiptr)size, data); else { gl_state_bind_element_array_buffer(buffer); diff --git a/src/DivaGL/GL/shader_storage_buffer.cpp b/src/DivaGL/GL/shader_storage_buffer.cpp index de4713c..a709356 100644 --- a/src/DivaGL/GL/shader_storage_buffer.cpp +++ b/src/DivaGL/GL/shader_storage_buffer.cpp @@ -12,17 +12,17 @@ namespace GL { } void ShaderStorageBuffer::Create(size_t size) { - if (!GL_VERSION_4_3 || buffer) + if (!DIVA_GL_VERSION_4_3 || buffer) return; - if (GL_VERSION_4_5) { + if (DIVA_GL_VERSION_4_5) { glCreateBuffers(1, &buffer); glNamedBufferStorage(buffer, (GLsizeiptr)size, 0, GL_DYNAMIC_STORAGE_BIT | GL_MAP_WRITE_BIT); } else { glGenBuffers(1, &buffer); gl_state_bind_shader_storage_buffer(buffer, true); - if (GL_VERSION_4_4) + if (DIVA_GL_VERSION_4_4) glBufferStorage(GL_SHADER_STORAGE_BUFFER, (GLsizeiptr)size, 0, GL_DYNAMIC_STORAGE_BIT | GL_MAP_WRITE_BIT); else @@ -31,10 +31,10 @@ namespace GL { } void ShaderStorageBuffer::Create(size_t size, const void* data, bool dynamic) { - if (!GL_VERSION_4_3 || buffer) + if (!DIVA_GL_VERSION_4_3 || buffer) return; - if (GL_VERSION_4_5) { + if (DIVA_GL_VERSION_4_5) { glCreateBuffers(1, &buffer); glNamedBufferStorage(buffer, (GLsizeiptr)size, data, dynamic ? GL_DYNAMIC_STORAGE_BIT | GL_MAP_WRITE_BIT : 0); @@ -42,7 +42,7 @@ namespace GL { else { glGenBuffers(1, &buffer); gl_state_bind_shader_storage_buffer(buffer, true); - if (GL_VERSION_4_4) + if (DIVA_GL_VERSION_4_4) glBufferStorage(GL_SHADER_STORAGE_BUFFER, (GLsizeiptr)size, data, dynamic ? GL_DYNAMIC_STORAGE_BIT | GL_MAP_WRITE_BIT : 0); else @@ -59,11 +59,11 @@ namespace GL { } void* ShaderStorageBuffer::MapMemory() { - if (!GL_VERSION_4_3 || !buffer) + if (!DIVA_GL_VERSION_4_3 || !buffer) return 0; void* data; - if (GL_VERSION_4_5) + if (DIVA_GL_VERSION_4_5) data = glMapNamedBuffer(buffer, GL_WRITE_ONLY); else { gl_state_bind_shader_storage_buffer(buffer); @@ -73,7 +73,7 @@ namespace GL { if (data) return data; - if (GL_VERSION_4_5) + if (DIVA_GL_VERSION_4_5) glUnmapNamedBuffer(buffer); else { glUnmapBuffer(GL_SHADER_STORAGE_BUFFER); @@ -83,10 +83,10 @@ namespace GL { } void ShaderStorageBuffer::UnmapMemory() { - if (!GL_VERSION_4_3 || !buffer) + if (!DIVA_GL_VERSION_4_3 || !buffer) return; - if (GL_VERSION_4_5) + if (DIVA_GL_VERSION_4_5) glUnmapNamedBuffer(buffer); else { glUnmapBuffer(GL_SHADER_STORAGE_BUFFER); @@ -95,10 +95,10 @@ namespace GL { } void ShaderStorageBuffer::WriteMemory(size_t offset, size_t size, const void* data) { - if (!GL_VERSION_4_3 || !buffer || !size) + if (!DIVA_GL_VERSION_4_3 || !buffer || !size) return; - if (GL_VERSION_4_5) + if (DIVA_GL_VERSION_4_5) glNamedBufferSubData(buffer, (GLsizeiptr)offset, (GLsizeiptr)size, data); else { gl_state_bind_shader_storage_buffer(buffer); diff --git a/src/DivaGL/GL/uniform_buffer.cpp b/src/DivaGL/GL/uniform_buffer.cpp index d6bab09..46b90a3 100644 --- a/src/DivaGL/GL/uniform_buffer.cpp +++ b/src/DivaGL/GL/uniform_buffer.cpp @@ -15,14 +15,14 @@ namespace GL { if (buffer) return; - if (GL_VERSION_4_5) { + if (DIVA_GL_VERSION_4_5) { glCreateBuffers(1, &buffer); glNamedBufferStorage(buffer, (GLsizeiptr)size, 0, GL_DYNAMIC_STORAGE_BIT | GL_MAP_WRITE_BIT); } else { glGenBuffers(1, &buffer); gl_state_bind_uniform_buffer(buffer, true); - if (GL_VERSION_4_4) + if (DIVA_GL_VERSION_4_4) glBufferStorage(GL_UNIFORM_BUFFER, (GLsizeiptr)size, 0, GL_DYNAMIC_STORAGE_BIT | GL_MAP_WRITE_BIT); else @@ -34,7 +34,7 @@ namespace GL { if (buffer) return; - if (GL_VERSION_4_5) { + if (DIVA_GL_VERSION_4_5) { glCreateBuffers(1, &buffer); glNamedBufferStorage(buffer, (GLsizeiptr)size, data, dynamic ? GL_DYNAMIC_STORAGE_BIT | GL_MAP_WRITE_BIT : 0); @@ -42,7 +42,7 @@ namespace GL { else { glGenBuffers(1, &buffer); gl_state_bind_uniform_buffer(buffer, true); - if (GL_VERSION_4_4) + if (DIVA_GL_VERSION_4_4) glBufferStorage(GL_UNIFORM_BUFFER, (GLsizeiptr)size, data, dynamic ? GL_DYNAMIC_STORAGE_BIT | GL_MAP_WRITE_BIT : 0); else @@ -63,7 +63,7 @@ namespace GL { return 0; void* data; - if (GL_VERSION_4_5) + if (DIVA_GL_VERSION_4_5) data = glMapNamedBuffer(buffer, GL_WRITE_ONLY); else { gl_state_bind_uniform_buffer(buffer); @@ -73,7 +73,7 @@ namespace GL { if (data) return data; - if (GL_VERSION_4_5) + if (DIVA_GL_VERSION_4_5) glUnmapNamedBuffer(buffer); else { glUnmapBuffer(GL_UNIFORM_BUFFER); @@ -86,7 +86,7 @@ namespace GL { if (!buffer) return; - if (GL_VERSION_4_5) + if (DIVA_GL_VERSION_4_5) glUnmapNamedBuffer(buffer); else { glUnmapBuffer(GL_UNIFORM_BUFFER); @@ -98,7 +98,7 @@ namespace GL { if (!buffer || !size) return; - if (GL_VERSION_4_5) + if (DIVA_GL_VERSION_4_5) glNamedBufferSubData(buffer, (GLsizeiptr)offset, (GLsizeiptr)size, data); else { gl_state_bind_uniform_buffer(buffer); diff --git a/src/DivaGL/effect.cpp b/src/DivaGL/effect.cpp index e5aa9f8..f38cb2f 100644 --- a/src/DivaGL/effect.cpp +++ b/src/DivaGL/effect.cpp @@ -435,14 +435,14 @@ struct EffectStorage { } void Bind(int32_t index, bool force = false) { - if (GL_VERSION_4_3) + if (DIVA_GL_VERSION_4_3) ssbo.Bind(index, force); else gl_state_bind_vertex_array(vao); } void Create(size_t size, size_t count, const EffectStorageAttrib* attribs) { - if (GL_VERSION_4_3) { + if (DIVA_GL_VERSION_4_3) { ssbo.Create(size * count); return; } @@ -470,7 +470,7 @@ struct EffectStorage { void Create(size_t size, size_t count, const EffectStorageAttrib* attribs, const void* data, bool dynamic = false) { - if (GL_VERSION_4_3) { + if (DIVA_GL_VERSION_4_3) { ssbo.Create(size * count, data, dynamic); return; } @@ -497,7 +497,7 @@ struct EffectStorage { } void Destroy() { - if (GL_VERSION_4_3) { + if (DIVA_GL_VERSION_4_3) { ssbo.Destroy(); return; } @@ -511,28 +511,28 @@ struct EffectStorage { } void Draw(GLenum mode, GLint first, GLsizei count) { - if (GL_VERSION_4_3) + if (DIVA_GL_VERSION_4_3) glDrawArraysDLL(mode, first, count); else glDrawArraysInstanced(mode, first, 6, count / 6); } void* MapMemory() { - if (GL_VERSION_4_3) + if (DIVA_GL_VERSION_4_3) return ssbo.MapMemory(); else return vbo.MapMemory(); } void UnmapMemory() { - if (GL_VERSION_4_3) + if (DIVA_GL_VERSION_4_3) ssbo.UnmapMemory(); else vbo.UnmapMemory(); } void WriteMemory(size_t offset, size_t size, const void* data) { - if (GL_VERSION_4_3) + if (DIVA_GL_VERSION_4_3) ssbo.WriteMemory(offset, size, data); else vbo.WriteMemory(offset, size, data); diff --git a/src/DivaGL/gl_state.cpp b/src/DivaGL/gl_state.cpp index 564ecfb..9e7c45e 100644 --- a/src/DivaGL/gl_state.cpp +++ b/src/DivaGL/gl_state.cpp @@ -117,7 +117,7 @@ void gl_state_bind_uniform_buffer_range(GLuint index, } void gl_state_bind_shader_storage_buffer(GLuint buffer, bool force) { - if (!GL_VERSION_4_3) + if (!DIVA_GL_VERSION_4_3) return; if (force || gl_state.shader_storage_buffer_binding != buffer) { @@ -127,7 +127,7 @@ void gl_state_bind_shader_storage_buffer(GLuint buffer, bool force) { } void gl_state_bind_shader_storage_buffer_base(GLuint index, GLuint buffer, bool force) { - if (!GL_VERSION_4_3) + if (!DIVA_GL_VERSION_4_3) return; if (force || gl_state.shader_storage_buffer_bindings[index] != buffer) { @@ -141,7 +141,7 @@ void gl_state_bind_shader_storage_buffer_base(GLuint index, GLuint buffer, bool void gl_state_bind_shader_storage_buffer_range(GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size, bool force) { - if (!GL_VERSION_4_3) + if (!DIVA_GL_VERSION_4_3) return; if (force || gl_state.shader_storage_buffer_bindings[index] != buffer @@ -307,7 +307,7 @@ void gl_state_get() { glGetIntegervDLL(GL_ACTIVE_TEXTURE, (GLint*)&gl_state.active_texture); gl_state.active_texture_index = gl_state.active_texture - GL_TEXTURE0; - if (GL_VERSION_4_5) { + if (DIVA_GL_VERSION_4_5) { for (GLuint i = 0; i < 32; i++) { glGetIntegeri_v(GL_TEXTURE_BINDING_2D, i, &gl_state.texture_binding_2d[i]); glGetIntegeri_v(GL_TEXTURE_BINDING_CUBE_MAP, i, &gl_state.texture_binding_cube_map[i]); @@ -346,7 +346,7 @@ void gl_state_get() { glGetInteger64i_v(GL_UNIFORM_BUFFER_SIZE, i, (GLsizeiptr*)&gl_state.uniform_buffer_sizes[i]); } - if (GL_VERSION_4_3) { + if (DIVA_GL_VERSION_4_3) { glGetIntegervDLL(GL_SHADER_STORAGE_BUFFER_BINDING, (GLint*)&gl_state.shader_storage_buffer_binding); for (GLuint i = 0; i < 14; i++) { glGetIntegeri_v(GL_SHADER_STORAGE_BUFFER_BINDING, i, (GLint*)&gl_state.shader_storage_buffer_bindings[i]); diff --git a/src/DivaGL/hook.cpp b/src/DivaGL/hook.cpp index b7509ca..473c805 100644 --- a/src/DivaGL/hook.cpp +++ b/src/DivaGL/hook.cpp @@ -34,7 +34,7 @@ static void APIENTRY gl_debug_output(GLenum source, GLenum type, uint32_t id, HOOK(int32_t, FASTCALL, data_init, 0x0000000140192FF0) { #ifdef DEBUG - if (GL_VERSION_4_3) { + if (DIVA_GL_VERSION_4_3) { typedef void (APIENTRY* GLDEBUGPROC)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* message, const void* userParam); diff --git a/src/DivaGL/mdl/draw_object.cpp b/src/DivaGL/mdl/draw_object.cpp index 521751d..bcd1d87 100644 --- a/src/DivaGL/mdl/draw_object.cpp +++ b/src/DivaGL/mdl/draw_object.cpp @@ -189,8 +189,9 @@ namespace mdl { GLuint buffer = 0; size_t offset = 0; size_t size = 0; - if (rctx->get_shared_storage_uniform_buffer_data((size_t)args->mats, buffer, offset, size, !!GL_VERSION_4_3)) - if (GL_VERSION_4_3) + if (rctx->get_shared_storage_uniform_buffer_data( + (size_t)args->mats, buffer, offset, size, !!DIVA_GL_VERSION_4_3)) + if (DIVA_GL_VERSION_4_3) gl_state_bind_shader_storage_buffer_range(0, buffer, (GLintptr)offset, (GLsizeiptr)size); else gl_state_bind_uniform_buffer_range(6, buffer, (GLintptr)offset, (GLsizeiptr)size); @@ -206,7 +207,7 @@ namespace mdl { g_joint_transforms[2] = mat.row2; } - if (GL_VERSION_4_3) + if (DIVA_GL_VERSION_4_3) rctx->data.buffer_skinning.WriteMemory(rctx->data.buffer_skinning_data); else rctx->data.buffer_skinning_ubo.WriteMemory(0, diff --git a/src/DivaGL/object.cpp b/src/DivaGL/object.cpp index 9e51d30..1dfec07 100644 --- a/src/DivaGL/object.cpp +++ b/src/DivaGL/object.cpp @@ -1164,7 +1164,7 @@ static GLuint create_index_buffer(size_t size, const void* data) { GLuint buffer = 0; glGenBuffers(1, &buffer); gl_state_bind_element_array_buffer(buffer); - if (GL_VERSION_4_4) + if (DIVA_GL_VERSION_4_4) glBufferStorage(GL_ELEMENT_ARRAY_BUFFER, (GLsizeiptr)size, data, 0); else glBufferData(GL_ELEMENT_ARRAY_BUFFER, (GLsizeiptr)size, data, GL_STATIC_DRAW); @@ -1184,7 +1184,7 @@ static GLuint create_vertex_buffer(size_t size, const void* data, bool dynamic) GLuint buffer = 0; glGenBuffers(1, &buffer); gl_state_bind_array_buffer(buffer); - if (GL_VERSION_4_4) + if (DIVA_GL_VERSION_4_4) glBufferStorage(GL_ARRAY_BUFFER, (GLsizeiptr)size, data, dynamic ? GL_DYNAMIC_STORAGE_BIT | GL_MAP_WRITE_BIT : 0); else diff --git a/src/DivaGL/render.cpp b/src/DivaGL/render.cpp index 264fffe..f7c5102 100644 --- a/src/DivaGL/render.cpp +++ b/src/DivaGL/render.cpp @@ -1773,7 +1773,7 @@ namespace rndr { * ((float_t)TONE_MAP_SAT_GAMMA_SAMPLES / (float_t)i) * (1.0f - saturation); } - if (GL_VERSION_4_5) + if (DIVA_GL_VERSION_4_5) glTextureSubImage2D(tonemap_lut_texture, 0, 0, 0, 16 * TONE_MAP_SAT_GAMMA_SAMPLES, 1, GL_RG, GL_FLOAT, tex_data); else { diff --git a/src/DivaGL/render_context.cpp b/src/DivaGL/render_context.cpp index e3007a8..79f0ed7 100644 --- a/src/DivaGL/render_context.cpp +++ b/src/DivaGL/render_context.cpp @@ -260,7 +260,7 @@ void render_data::init() { buffer_shader.Create(sizeof(obj_shader_data)); buffer_scene.Create(sizeof(obj_scene_data)); buffer_batch.Create(sizeof(obj_batch_data)); - if (GL_VERSION_4_3) + if (DIVA_GL_VERSION_4_3) buffer_skinning.Create(sizeof(obj_skinning_data)); else buffer_skinning_ubo.Create(sizeof(obj_skinning_data)); @@ -274,7 +274,7 @@ void render_data::init() { } void render_data::free() { - if (GL_VERSION_4_3) + if (DIVA_GL_VERSION_4_3) buffer_skinning.Destroy(); else buffer_skinning_ubo.Destroy(); @@ -348,7 +348,7 @@ void render_data::set(render_context* rctx) { buffer_batch.Bind(2); if (uniform->arr[U_SKINNING] && !config_shared_storage_uniform_buffer) - if (GL_VERSION_4_3) + if (DIVA_GL_VERSION_4_3) buffer_skinning.Bind(0); else buffer_skinning_ubo.Bind(6); @@ -614,7 +614,7 @@ samplers(), render_samplers(), sprite_samplers(), screen_width(), screen_height( glGetIntegervDLL(GL_MAX_UNIFORM_BLOCK_SIZE, (GLint*)&max_uniform_block_size); glGetIntegervDLL(GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT, (GLint*)&uniform_buffer_offset_alignment); - if (GL_VERSION_4_3) { + if (DIVA_GL_VERSION_4_3) { glGetIntegervDLL(GL_MAX_SHADER_STORAGE_BLOCK_SIZE, (GLint*)&max_storage_block_size); glGetIntegervDLL(GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT, (GLint*)&storage_buffer_offset_alignment); @@ -630,7 +630,7 @@ render_context::~render_context() { i.destroy(); shared_uniform_buffers.clear(); - if (GL_VERSION_4_3) { + if (DIVA_GL_VERSION_4_3) { shared_storage_buffer_entries.clear(); for (render_context::shared_storage_buffer& i : shared_storage_buffers) @@ -837,116 +837,6 @@ void render_context::add_shared_storage_uniform_buffer_data(size_t index, } } -void render_context::pre_proc() { - if (config_shared_storage_uniform_buffer) { - auto add_obj_list = [](render_context* rctx, const mdl::ObjSubMeshArgs* args) { - if (!args->mat_count || !args->mats) - return; - - if (GL_VERSION_4_3) { - if (rctx->shared_storage_buffer_entries.find((size_t)args->mats) - != rctx->shared_storage_buffer_entries.end()) - return; - } - else { - if (rctx->shared_uniform_buffer_entries.find((size_t)args->mats) - != rctx->shared_uniform_buffer_entries.end()) - return; - } - - const int32_t mat_count = min_def(args->mat_count, 256); - const mat4* mats = args->mats; - vec4* g_joint_transforms = rctx->data.buffer_skinning_data.g_joint_transforms; - - mat4 mat; - for (int32_t i = 0; i < mat_count; i++, mats++, g_joint_transforms += 3) { - mat4_transpose(mats, &mat); - g_joint_transforms[0] = mat.row0; - g_joint_transforms[1] = mat.row1; - g_joint_transforms[2] = mat.row2; - } - - const size_t buffer_size = sizeof(vec4) * 3 * 256; - const size_t size = sizeof(vec4) * 3 * mat_count; - rctx->add_shared_storage_uniform_buffer_data((size_t)args->mats, - rctx->data.buffer_skinning_data.g_joint_transforms, size, buffer_size, !!GL_VERSION_4_3); - }; - - for (int32_t type = 0; type < mdl::OBJ_TYPE_MAX; type++) - for (mdl::ObjData*& i : disp_manager->get_obj_list((mdl::ObjType)type)) - switch (i->kind) { - case mdl::OBJ_KIND_NORMAL: - add_obj_list(rctx, &i->args.sub_mesh); - break; - case mdl::OBJ_KIND_TRANSLUCENT: - for (int32_t j = 0; j < i->args.translucent.count; j++) - add_obj_list(rctx, i->args.translucent.sub_mesh[j]); - break; - } - - for (int32_t type = 0; type < mdl::OBJ_TYPE_LOCAL_MAX; type++) - for (mdl::ObjData*& i : disp_manager->get_obj_list((mdl::ObjTypeLocal)type)) - switch (i->kind) { - case mdl::OBJ_KIND_NORMAL: - add_obj_list(rctx, &i->args.sub_mesh); - break; - case mdl::OBJ_KIND_TRANSLUCENT: - for (int32_t j = 0; j < i->args.translucent.count; j++) - add_obj_list(rctx, i->args.translucent.sub_mesh[j]); - break; - } - - for (int32_t type = 0; type < mdl::OBJ_TYPE_REFLECT_MAX; type++) - for (mdl::ObjData*& i : disp_manager->get_obj_list((mdl::ObjTypeReflect)type)) - switch (i->kind) { - case mdl::OBJ_KIND_NORMAL: - add_obj_list(rctx, &i->args.sub_mesh); - break; - case mdl::OBJ_KIND_TRANSLUCENT: - for (int32_t j = 0; j < i->args.translucent.count; j++) - add_obj_list(rctx, i->args.translucent.sub_mesh[j]); - break; - } - - if (GL_VERSION_4_3) - for (render_context::shared_storage_buffer& i : shared_storage_buffers) { - if (!i.offset) - continue; - - size_t align = align_val(i.offset, storage_buffer_offset_alignment) - i.offset; - if (align) - memset((void*)((size_t)i.data + i.offset), 0, align); - i.buffer.WriteMemory(0, i.size, i.data); - } - - for (render_context::shared_uniform_buffer& i : shared_uniform_buffers) { - if (!i.offset) - continue; - - size_t align = align_val(i.offset, uniform_buffer_offset_alignment) - i.offset; - if (align) - memset((void*)((size_t)i.data + i.offset), 0, align); - i.buffer.WriteMemory(0, i.size, i.data); - } - } -} - -void render_context::post_proc() { - if (config_shared_storage_uniform_buffer) { - if (GL_VERSION_4_3) { - for (render_context::shared_storage_buffer& i : shared_storage_buffers) - i.offset = 0; - - shared_storage_buffer_entries.clear(); - } - - for (render_context::shared_uniform_buffer& i : shared_uniform_buffers) - i.offset = 0; - - shared_uniform_buffer_entries.clear(); - } -} - void render_context::get_scene_fog_params(render_context::fog_params& value) { render_data* data = &this->data; value.depth_color = data->buffer_scene_data.g_fog_depth_color; @@ -1000,6 +890,116 @@ bool render_context::get_shared_storage_uniform_buffer_data(size_t index, } } +void render_context::pre_proc() { + if (config_shared_storage_uniform_buffer) { + auto add_obj_list = [](render_context* rctx, const mdl::ObjSubMeshArgs* args) { + if (!args->mat_count || !args->mats) + return; + + if (DIVA_GL_VERSION_4_3) { + if (rctx->shared_storage_buffer_entries.find((size_t)args->mats) + != rctx->shared_storage_buffer_entries.end()) + return; + } + else { + if (rctx->shared_uniform_buffer_entries.find((size_t)args->mats) + != rctx->shared_uniform_buffer_entries.end()) + return; + } + + const int32_t mat_count = min_def(args->mat_count, 256); + const mat4* mats = args->mats; + vec4* g_joint_transforms = rctx->data.buffer_skinning_data.g_joint_transforms; + + mat4 mat; + for (int32_t i = 0; i < mat_count; i++, mats++, g_joint_transforms += 3) { + mat4_transpose(mats, &mat); + g_joint_transforms[0] = mat.row0; + g_joint_transforms[1] = mat.row1; + g_joint_transforms[2] = mat.row2; + } + + const size_t buffer_size = sizeof(vec4) * 3 * 256; + const size_t size = sizeof(vec4) * 3 * mat_count; + rctx->add_shared_storage_uniform_buffer_data((size_t)args->mats, + rctx->data.buffer_skinning_data.g_joint_transforms, size, buffer_size, !!DIVA_GL_VERSION_4_3); + }; + + for (int32_t type = 0; type < mdl::OBJ_TYPE_MAX; type++) + for (mdl::ObjData*& i : disp_manager->get_obj_list((mdl::ObjType)type)) + switch (i->kind) { + case mdl::OBJ_KIND_NORMAL: + add_obj_list(rctx, &i->args.sub_mesh); + break; + case mdl::OBJ_KIND_TRANSLUCENT: + for (int32_t j = 0; j < i->args.translucent.count; j++) + add_obj_list(rctx, i->args.translucent.sub_mesh[j]); + break; + } + + for (int32_t type = 0; type < mdl::OBJ_TYPE_LOCAL_MAX; type++) + for (mdl::ObjData*& i : disp_manager->get_obj_list((mdl::ObjTypeLocal)type)) + switch (i->kind) { + case mdl::OBJ_KIND_NORMAL: + add_obj_list(rctx, &i->args.sub_mesh); + break; + case mdl::OBJ_KIND_TRANSLUCENT: + for (int32_t j = 0; j < i->args.translucent.count; j++) + add_obj_list(rctx, i->args.translucent.sub_mesh[j]); + break; + } + + for (int32_t type = 0; type < mdl::OBJ_TYPE_REFLECT_MAX; type++) + for (mdl::ObjData*& i : disp_manager->get_obj_list((mdl::ObjTypeReflect)type)) + switch (i->kind) { + case mdl::OBJ_KIND_NORMAL: + add_obj_list(rctx, &i->args.sub_mesh); + break; + case mdl::OBJ_KIND_TRANSLUCENT: + for (int32_t j = 0; j < i->args.translucent.count; j++) + add_obj_list(rctx, i->args.translucent.sub_mesh[j]); + break; + } + + if (DIVA_GL_VERSION_4_3) + for (render_context::shared_storage_buffer& i : shared_storage_buffers) { + if (!i.offset) + continue; + + size_t align = align_val(i.offset, storage_buffer_offset_alignment) - i.offset; + if (align) + memset((void*)((size_t)i.data + i.offset), 0, align); + i.buffer.WriteMemory(0, i.size, i.data); + } + + for (render_context::shared_uniform_buffer& i : shared_uniform_buffers) { + if (!i.offset) + continue; + + size_t align = align_val(i.offset, uniform_buffer_offset_alignment) - i.offset; + if (align) + memset((void*)((size_t)i.data + i.offset), 0, align); + i.buffer.WriteMemory(0, i.size, i.data); + } + } +} + +void render_context::post_proc() { + if (config_shared_storage_uniform_buffer) { + if (DIVA_GL_VERSION_4_3) { + for (render_context::shared_storage_buffer& i : shared_storage_buffers) + i.offset = 0; + + shared_storage_buffer_entries.clear(); + } + + for (render_context::shared_uniform_buffer& i : shared_uniform_buffers) + i.offset = 0; + + shared_uniform_buffer_entries.clear(); + } +} + void render_context::set_batch_alpha_threshold(const float_t value) { render_data* data = &this->data; data->buffer_batch_data.g_max_alpha.z = value; diff --git a/src/DivaGL/render_context.hpp b/src/DivaGL/render_context.hpp index 09b3713..33f7554 100644 --- a/src/DivaGL/render_context.hpp +++ b/src/DivaGL/render_context.hpp @@ -504,14 +504,14 @@ struct render_context { void add_shared_storage_uniform_buffer_data(size_t index, const void* data, size_t size, size_t max_size, bool storage = false); - void post_proc(); - void pre_proc(); void get_scene_fog_params(render_context::fog_params& value); void get_scene_light(vec4* light_env_stage_diffuse, vec4* light_env_stage_specular, vec4* light_chara_dir, vec4* light_chara_luce, vec4* light_env_chara_diffuse, vec4* light_env_chara_specular); bool get_shared_storage_uniform_buffer_data(size_t index, GLuint& buffer, size_t& offset, size_t& size, bool storage = false); + void post_proc(); + void pre_proc(); void set_batch_alpha_threshold(const float_t value); void set_batch_blend_color(const vec4& blend_color); void set_batch_blend_color_offset_color(const vec4& blend_color, const vec4& offset_color); diff --git a/src/DivaGL/renderer/dof.cpp b/src/DivaGL/renderer/dof.cpp index 940846c..d0e576b 100644 --- a/src/DivaGL/renderer/dof.cpp +++ b/src/DivaGL/renderer/dof.cpp @@ -283,7 +283,7 @@ namespace renderer { gl_state_bind_sampler(4, samplers[1]); glDrawArraysDLL(GL_TRIANGLE_STRIP, 0, 4); - if (GL_VERSION_4_3) + if (DIVA_GL_VERSION_4_3) glCopyImageSubData( buf_rt->GetColorTex(), GL_TEXTURE_2D, 0, 0, 0, 0, rt->GetColorTex(), GL_TEXTURE_2D, 0, 0, 0, 0, width, height, 1); diff --git a/src/DivaGL/renderer/transparency.cpp b/src/DivaGL/renderer/transparency.cpp index cc1a89c..7d18ba3 100644 --- a/src/DivaGL/renderer/transparency.cpp +++ b/src/DivaGL/renderer/transparency.cpp @@ -55,7 +55,7 @@ namespace renderer { shaders_ft.draw_arrays(GL_TRIANGLE_STRIP, 0, 4); gl_state_enable_depth_test(); - if (GL_VERSION_4_3) + if (DIVA_GL_VERSION_4_3) glCopyImageSubData(rctx->render_buffer.GetColorTex(), GL_TEXTURE_2D, 0, 0, 0, 0, rt->GetColorTex(), GL_TEXTURE_2D, 0, 0, 0, 0, fbo.width, fbo.height, 1); else @@ -65,14 +65,14 @@ namespace renderer { } void Transparency::copy(GLuint texture) { - if (GL_VERSION_4_3) + if (DIVA_GL_VERSION_4_3) glCopyImageSubData(texture, GL_TEXTURE_2D, 0, 0, 0, 0, fbo.textures[0], GL_TEXTURE_2D, 0, 0, 0, 0, fbo.width, fbo.height, 1); fbo.bind_buffer(); gl_state_set_viewport(0, 0, fbo.width, fbo.height); - if (!GL_VERSION_4_3) { + if (!DIVA_GL_VERSION_4_3) { gl_state_disable_depth_test(); uniform->arr[U_REDUCE] = 0; shaders_ft.set(SHADER_FT_REDUCE); diff --git a/src/DivaGL/shader.cpp b/src/DivaGL/shader.cpp index 035939a..9d9891f 100644 --- a/src/DivaGL/shader.cpp +++ b/src/DivaGL/shader.cpp @@ -71,9 +71,9 @@ static char* get_uniform_location(char* data, prj::vector_pair samplers; prj::vector_pair uniforms; - if (!GL_VERSION_4_3) { + if (!DIVA_GL_VERSION_4_3) { vert_data = get_uniform_location(vert_data, samplers, uniforms, apple); frag_data = get_uniform_location(frag_data, samplers, uniforms, apple); } @@ -801,7 +801,7 @@ void shader_set_data::load(farc* f, bool ignore_cache, memcpy((void*)b->binary, (void*)((size_t)bin + bin->binary), bin->length); } - if (!GL_VERSION_4_3) { + if (!DIVA_GL_VERSION_4_3) { if (programs[k] && samplers.size()) { GLuint program = programs[k]; @@ -866,7 +866,7 @@ void shader_set_data::load(farc* f, bool ignore_cache, memcpy((void*)b->binary, (void*)((size_t)bin + bin->binary), bin->length); } - if (!GL_VERSION_4_3) { + if (!DIVA_GL_VERSION_4_3) { if (programs[0] && samplers.size()) { GLuint program = programs[0]; diff --git a/src/DivaGL/wrap.cpp b/src/DivaGL/wrap.cpp index f016622..6ab99b7 100644 --- a/src/DivaGL/wrap.cpp +++ b/src/DivaGL/wrap.cpp @@ -381,12 +381,12 @@ func_struct wrap_addr_glut[19] = { { 0x000000000002A3C0, 0, (size_t)&glVertex3fvGLUT, }, // glVertex3fv }; -bool GL_VERSION_4_1 = false; -bool GL_VERSION_4_2 = false; -bool GL_VERSION_4_3 = false; -bool GL_VERSION_4_4 = false; -bool GL_VERSION_4_5 = false; -bool GL_VERSION_4_6 = false; +bool DIVA_GL_VERSION_4_1 = false; +bool DIVA_GL_VERSION_4_2 = false; +bool DIVA_GL_VERSION_4_3 = false; +bool DIVA_GL_VERSION_4_4 = false; +bool DIVA_GL_VERSION_4_5 = false; +bool DIVA_GL_VERSION_4_6 = false; PFNGLBINDTEXTUREDLLPROC* divagl_glBindTextureDLL = (PFNGLBINDTEXTUREDLLPROC*)0x0000000140965BF8; // glBindTexture @@ -2746,12 +2746,12 @@ HOOK(void, FASTCALL, wglGetProcAddresses, 0x0000000140461B50) { int32_t minor; sscanf_s(version, "%d.%d", &major, &minor); - GL_VERSION_4_1 = (major == 4 && minor >= 1) || major > 4; - GL_VERSION_4_2 = (major == 4 && minor >= 2) || major > 4; - GL_VERSION_4_3 = (major == 4 && minor >= 3) || major > 4; - GL_VERSION_4_4 = (major == 4 && minor >= 4) || major > 4; - GL_VERSION_4_5 = (major == 4 && minor >= 5) || major > 4; - GL_VERSION_4_6 = (major == 4 && minor >= 6) || major > 4; + DIVA_GL_VERSION_4_1 = (major == 4 && minor >= 1) || major > 4; + DIVA_GL_VERSION_4_2 = (major == 4 && minor >= 2) || major > 4; + DIVA_GL_VERSION_4_3 = (major == 4 && minor >= 3) || major > 4; + DIVA_GL_VERSION_4_4 = (major == 4 && minor >= 4) || major > 4; + DIVA_GL_VERSION_4_5 = (major == 4 && minor >= 5) || major > 4; + DIVA_GL_VERSION_4_6 = (major == 4 && minor >= 6) || major > 4; } #define REPLACE_FUNC(name) \ @@ -2781,14 +2781,14 @@ HOOK(void, FASTCALL, wglGetProcAddresses, 0x0000000140461B50) { glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISORPROC)wglGetProcAddressDLL("glVertexAttribDivisor"); // 4.1 - if (GL_VERSION_4_1) { + if (DIVA_GL_VERSION_4_1) { glClearDepthf = (PFNGLCLEARDEPTHFPROC)wglGetProcAddressDLL("glClearDepthf"); glGetProgramBinary = (PFNGLGETPROGRAMBINARYPROC)wglGetProcAddressDLL("glGetProgramBinary"); glProgramBinary = (PFNGLPROGRAMBINARYPROC)wglGetProcAddressDLL("glProgramBinary"); } // 4.3 - if (GL_VERSION_4_3) { + if (DIVA_GL_VERSION_4_3) { divagl_glPushDebugGroup_orig = (PFNGLPUSHDEBUGGROUPPROC)wglGetProcAddressDLL("glPushDebugGroup"); divagl_glPopDebugGroup_orig = (PFNGLPOPDEBUGGROUPPROC)wglGetProcAddressDLL("glPopDebugGroup"); } @@ -2797,11 +2797,11 @@ HOOK(void, FASTCALL, wglGetProcAddresses, 0x0000000140461B50) { glPopDebugGroup = divagl_glPopDebugGroup_impl; // 4.4 - if (GL_VERSION_4_4) + if (DIVA_GL_VERSION_4_4) glBufferStorage = (PFNGLBUFFERSTORAGEPROC)wglGetProcAddressDLL("glBufferStorage"); // 4.5 - if (GL_VERSION_4_5) { + if (DIVA_GL_VERSION_4_5) { glCreateBuffers = (PFNGLCREATEBUFFERSPROC)wglGetProcAddressDLL("glCreateBuffers"); glNamedBufferStorage = (PFNGLNAMEDBUFFERSTORAGEPROC)wglGetProcAddressDLL("glNamedBufferStorage"); glNamedBufferSubData = (PFNGLNAMEDBUFFERSUBDATAPROC)wglGetProcAddressDLL("glNamedBufferSubData"); @@ -3412,11 +3412,11 @@ static void GLAPIENTRY divagl_glTexImage2DDLL_impl(GLenum target, GLint level, G } static void GLAPIENTRY divagl_glPushDebugGroup_impl(GLenum source, GLuint id, GLsizei length, const GLchar* message) { - if (GL_VERSION_4_3) + if (DIVA_GL_VERSION_4_3) return divagl_glPushDebugGroup_orig(source, id, length, message); } static void GLAPIENTRY divagl_glPopDebugGroup_impl() { - if (GL_VERSION_4_3) + if (DIVA_GL_VERSION_4_3) return divagl_glPopDebugGroup_orig(); } diff --git a/src/DivaGL/wrap.hpp b/src/DivaGL/wrap.hpp index b9490b2..fe4fab3 100644 --- a/src/DivaGL/wrap.hpp +++ b/src/DivaGL/wrap.hpp @@ -3434,12 +3434,12 @@ extern PFNGLTEXTURESUBIMAGE2DPROC divagl_glTextureSubImage2D; #define glUnmapNamedBuffer divagl_glUnmapNamedBuffer #define glTextureSubImage2D divagl_glTextureSubImage2D -extern bool GL_VERSION_4_1; -extern bool GL_VERSION_4_2; -extern bool GL_VERSION_4_3; -extern bool GL_VERSION_4_4; -extern bool GL_VERSION_4_5; -extern bool GL_VERSION_4_6; +extern bool DIVA_GL_VERSION_4_1; +extern bool DIVA_GL_VERSION_4_2; +extern bool DIVA_GL_VERSION_4_3; +extern bool DIVA_GL_VERSION_4_4; +extern bool DIVA_GL_VERSION_4_5; +extern bool DIVA_GL_VERSION_4_6; extern void wrap_addresses(); extern void wrap_patch();