[Fix] (MG_Impl/GLImpl, MG_State, MG_Backend/DirectGLES): eliminate packed_pixels SIGTRAPs - complete TexImage format/type/internalformat validation matrix (depth-stencil family, integer-ness, packed-type pairing, 3D depth rejection), fix inverted UpdateSubData assert with clamped copy, demote unimplemented readback asserts to logged no-ops

This commit is contained in:
2026-07-16 02:23:18 -04:00
parent 5331150cb9
commit fe7a5ee1b2
5 changed files with 258 additions and 71 deletions
@@ -31,11 +31,12 @@ namespace MobileGL {
auto& targetData = m_data;
MOBILEGL_ASSERT(level < targetData.size(), "UpdateSubData: level out of range");
auto& levelData = targetData[level];
MOBILEGL_ASSERT(levelData.size() <= input.size, "UpdateSubData: input data larger than allocated");
MOBILEGL_ASSERT(input.size <= levelData.size(), "UpdateSubData: input data larger than allocated");
if (input.data && input.size > 0) {
const Uint8* src = static_cast<const Uint8*>(input.data);
Memcpy(levelData.data(), src, input.size);
// Clamp so a size mismatch can never write past the allocation.
Memcpy(levelData.data(), src, std::min(input.size, levelData.size()));
m_isDirty[level] = true;
}
}