[Optimization] (MG_State/BufferState, VertexArrayState): optimize performance on vao deletion

This commit is contained in:
2025-08-06 10:32:16 +08:00
parent 25fa70ff9d
commit 2c651f2359
4 changed files with 31 additions and 29 deletions
+6 -2
View File
@@ -60,8 +60,12 @@ namespace MobileGL {
void GLContext::MarkBufferObjectForDeletion(Uint index) {
if (ValidateBufferObject(index)) {
auto bufferObject = m_bufferState.GetBufferObject(index);
for (SizeT i = 0; i < m_vertexArrayState.GetAllVertexArrays().size(); ++i) {
auto vao = m_vertexArrayState.GetAllVertexArrays()[i];
auto& vaos = m_vertexArrayState.GetAllVertexArrays();
for (SizeT i = 0; i < vaos.size(); ++i) {
auto vao = vaos[i];
if (vao == nullptr)
continue;
if (vao->GetIndexBufferBindingSlot().GetBoundObject() == bufferObject) {
vao->GetIndexBufferBindingSlot().Bind(nullptr);
}