From aa491bb80161060d8ddf62ea1ee760b6206543e5 Mon Sep 17 00:00:00 2001 From: BZLZHH Date: Sat, 17 May 2025 14:27:45 +0800 Subject: [PATCH] [Fix] (BufferState): Convert access in AcquireBufferMemory. --- MG/MG_GL/State/Buffer/BufferState.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/MG/MG_GL/State/Buffer/BufferState.cpp b/MG/MG_GL/State/Buffer/BufferState.cpp index 48e83cbf..a909e247 100644 --- a/MG/MG_GL/State/Buffer/BufferState.cpp +++ b/MG/MG_GL/State/Buffer/BufferState.cpp @@ -196,7 +196,15 @@ GLenum BufferState::CopyBufferRange(GLenum readTarget, GLenum writeTarget, GLint } GLenum BufferState::AcquireBufferMemory(GLenum target, GLenum access, void** mappedPointer) { - return AcquireBufferMemoryRange(target, 0, buffers_[currentBindings_[target]].data.size(), access, mappedPointer); + GLbitfield flags = 0; + switch (access) { + case GL_READ_ONLY: flags = GL_MAP_READ_BIT; break; + case GL_WRITE_ONLY: flags = GL_MAP_WRITE_BIT; break; + case GL_READ_WRITE: flags = GL_MAP_READ_BIT | GL_MAP_WRITE_BIT; break; + default: + flags = access; + } + return AcquireBufferMemoryRange(target, 0, buffers_[currentBindings_[target]].data.size(), flags, mappedPointer); } GLenum BufferState::ReleaseBufferMemory(GLenum target) {