Skip to content

Commit 473e3e3

Browse files
committed
[Improvement] (Buffer): Remove useless BufferMapping struct.
1 parent 83a6a21 commit 473e3e3

2 files changed

Lines changed: 2 additions & 74 deletions

File tree

src/main/cpp/gl/buffer.cpp

Lines changed: 2 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -311,8 +311,6 @@ void InitVertexArrayMap(size_t expectedSize) {
311311
g_element_array_buffer_per_vao.resize(1, 0);
312312
}
313313

314-
unordered_map<GLuint, BufferMapping> g_active_mappings;
315-
316314
void glGenBuffers(GLsizei n, GLuint* buffers) {
317315
LOG()
318316
LOG_D("glGenBuffers(%i, %p)", n, buffers)
@@ -711,17 +709,6 @@ void* glMapBuffer(GLenum target, GLenum access) {
711709
if (g_gles_caps.GL_OES_mapbuffer) {
712710
return GLES.glMapBufferOES(target, access);
713711
}
714-
if (get_binding_query(target) == 0) {
715-
return nullptr;
716-
}
717-
GLint current_buffer;
718-
GLES.glGetIntegerv(get_binding_query(target), &current_buffer);
719-
if (current_buffer == 0) {
720-
return nullptr;
721-
}
722-
if (g_active_mappings[current_buffer].mapped_ptr != nullptr) {
723-
return nullptr;
724-
}
725712
GLint buffer_size;
726713
GLES.glGetBufferParameteriv(target, GL_BUFFER_SIZE, &buffer_size);
727714
if (buffer_size <= 0 || glGetError() != GL_NO_ERROR) {
@@ -733,39 +720,16 @@ void* glMapBuffer(GLenum target, GLenum access) {
733720
flags = GL_MAP_READ_BIT;
734721
break;
735722
case GL_WRITE_ONLY:
736-
flags = GL_MAP_WRITE_BIT /*| GL_MAP_INVALIDATE_BUFFER_BIT*/;
723+
flags = GL_MAP_WRITE_BIT | GL_MAP_INVALIDATE_BUFFER_BIT;
737724
break;
738725
case GL_READ_WRITE:
739726
flags = GL_MAP_READ_BIT | GL_MAP_WRITE_BIT;
740727
break;
741728
default:
742729
return nullptr;
743730
}
744-
void* ptr = GLES.glMapBufferRange(target, 0, buffer_size, flags);
745-
if (!ptr) return nullptr;
746-
BufferMapping mapping;
747-
mapping.target = target;
748-
mapping.buffer_id = (GLuint)current_buffer;
749-
mapping.mapped_ptr = ptr;
750-
#if GLOBAL_DEBUG || DEBUG
751-
if (target == GL_PIXEL_UNPACK_BUFFER) {
752-
mapping.client_ptr = malloc(buffer_size);
753-
memset(mapping.client_ptr, 0xFF, buffer_size);
754-
}
755-
#endif
756-
mapping.size = buffer_size;
757-
mapping.flags = flags;
758-
mapping.is_dirty = (flags & GL_MAP_WRITE_BIT) ? GL_TRUE : GL_FALSE;
759-
g_active_mappings[current_buffer] = mapping;
760-
CHECK_GL_ERROR
761-
#if GLOBAL_DEBUG || DEBUG
762-
if (target == GL_PIXEL_UNPACK_BUFFER)
763-
return mapping.client_ptr;
764-
else
765-
return ptr;
766-
#else
731+
void* ptr = glMapBufferRange(target, 0, buffer_size, flags);
767732
return ptr;
768-
#endif
769733
}
770734

771735
#if GLOBAL_DEBUG || DEBUG
@@ -798,31 +762,7 @@ GLboolean glUnmapBuffer(GLenum target) {
798762
LOG_D("%s(%s)", __func__, glEnumToString(target));
799763
if (g_gles_caps.GL_OES_mapbuffer) return GLES.glUnmapBuffer(target);
800764

801-
GLint buffer;
802-
GLenum binding_query = get_binding_query(target);
803-
GLES.glGetIntegerv(binding_query, &buffer);
804-
805-
if (buffer == 0) return GL_FALSE;
806-
807-
#if GLOBAL_DEBUG || DEBUG
808-
// Blit data from client side to OpenGL here
809-
if (target == GL_PIXEL_UNPACK_BUFFER) {
810-
auto& mapping = g_active_mappings[buffer];
811-
812-
std::fstream fs(std::string(BIN_FILE_PREFIX) + "buf" + std::to_string(buffer) + ".bin",
813-
std::ios::out | std::ios::binary | std::ios::trunc);
814-
fs.write((const char*)mapping.client_ptr, mapping.size);
815-
fs.close();
816-
817-
// memset(mapping.mapped_ptr, 0xFF, mapping.size);
818-
memcpy(mapping.mapped_ptr, mapping.client_ptr, mapping.size);
819-
free(mapping.client_ptr);
820-
mapping.client_ptr = nullptr;
821-
}
822-
#endif
823-
824765
GLboolean result = GLES.glUnmapBuffer(target);
825-
g_active_mappings.erase(buffer);
826766
CHECK_GL_ERROR
827767
return result;
828768
}

src/main/cpp/gl/buffer.h

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,18 +14,6 @@
1414
#include <cstddef>
1515
#include <vector>
1616

17-
typedef struct {
18-
GLenum target;
19-
GLuint buffer_id;
20-
void* mapped_ptr;
21-
#if GLOBAL_DEBUG || DEBUG
22-
void* client_ptr;
23-
#endif
24-
GLsizeiptr size;
25-
GLbitfield flags;
26-
GLboolean is_dirty;
27-
} BufferMapping;
28-
2917
#ifdef __cplusplus
3018
extern "C"
3119
{

0 commit comments

Comments
 (0)