From b3e7987985a06cb9c6b217857b26ac3b087a0e77 Mon Sep 17 00:00:00 2001 From: Swung0x48 Date: Tue, 28 Oct 2025 15:43:35 +0800 Subject: [PATCH] [Fix] (MG_Backend/DirectGLES): properly sync integer vertex pointer --- MobileGL/MG_Backend/DirectGLES/Managers.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/MobileGL/MG_Backend/DirectGLES/Managers.cpp b/MobileGL/MG_Backend/DirectGLES/Managers.cpp index 9aea790e..b1f0da68 100644 --- a/MobileGL/MG_Backend/DirectGLES/Managers.cpp +++ b/MobileGL/MG_Backend/DirectGLES/Managers.cpp @@ -177,10 +177,16 @@ namespace MobileGL::MG_Backend::DirectGLES { backendBufferObject->Bind(GL_ARRAY_BUFFER); MG_External::GLES::glEnableVertexAttribArray(attribIndex); - MG_External::GLES::glVertexAttribPointer( - attribIndex, attrib.Size, MG_Util::ConvertDataTypeToGLEnum(attrib.Type), - attrib.Normalized ? GL_TRUE : GL_FALSE, attrib.Stride, - reinterpret_cast(static_cast(attrib.Offset))); + if (!attrib.IsInteger) { + MG_External::GLES::glVertexAttribPointer( + attribIndex, attrib.Size, MG_Util::ConvertDataTypeToGLEnum(attrib.Type), + attrib.Normalized ? GL_TRUE : GL_FALSE, + attrib.Stride, (const void *)attrib.Offset); + } else { + MG_External::GLES::glVertexAttribIPointer( + attribIndex, attrib.Size, MG_Util::ConvertDataTypeToGLEnum(attrib.Type), + attrib.Stride, (const void *)attrib.Offset); + } // TODO: divisor }