WebGL 2.0 / OpenGL ES 3.0 requires a Vertex Array Object (VAO) to be
bound before setting vertex attributes. Desktop OpenGL has a default
VAO (VAO 0), but WebGL 2.0 does not.
Changes to GPU_MANAGER:
- Add m_vao member variable to store VAO handle
- Create VAO in SetShader() when GL context is available
- Bind VAO before glVertexAttribPointer calls in EndDrawing()
- Unbind VAO after rendering completes
- Delete VAO in destructor
This fix enables actual rendering output in WebGL. Without a VAO,
glVertexAttribPointer silently fails and no geometry is drawn.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>