mirror of
https://github.com/MobileGL-Dev/MobileGL
synced 2026-09-10 05:08:31 +09:00
glTextureBuffer and glTextureBufferRange took any internal format the texture enum converter recognised. A buffer texture accepts a much shorter list than a sampled or a renderable texture does (GL 4.6 core table 8.16), and it cannot be inferred from either, so a format like GL_RGB8 was accepted and produced a texture nothing could read. Two error codes were wrong as well. A texture whose effective target is not GL_TEXTURE_BUFFER is the wrong object rather than the wrong token, so it is INVALID_OPERATION. And the range form never checked its range against the buffer it was attaching, so a size past the end of the buffer was accepted and left the texture addressing memory the buffer does not own. Fixes direct_state_access.textures_buffer_errors and textures_buffer_range_errors on both backends. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DnW6wQYv2Pvrfisqak8UJu