Fixed pressing space on tree view nodes without checkboxes causing the checkboxes to reappear.
Fixed delayed scroll in tree view after selecting an item.
Fixed excess lag caused by tree view due to custom draw.
AnimationBatch no longer controls the models MeshBatch, this should now be done by the caller.
Fixed TriangleMeshBuilder sprite normal, and OctoSphere being inverted.
Shader now tries to support joints for GLSL 150 by using UBOs. When an entity has more joints than the UBO can fit, it will fallback to baking the connections.
Changed main texture uniform from being bound as an attribute to a uniform (which fixes some issues with how the uniform is assigned).
Texture uniform is now assigned via texture unit index.
Joint attribute is now always present in the shader, and is used instead of DiscardValue to determine if a joint should be hidden.
A lot of shader refactoring and optimizations. Uniforms now have the u_ prefix to help distinguish them from local variables, and color is now processed in vec3, since alpha is never used.
Fixed sprite joint matrices not correctly handling camera rotation (since they were attempting to apply it at setup time and not at render time). Now, two more matrix uniforms are used to apply sprite camera rotation.
Fixed sprite transforms incorrectly eliminating model rotation.
TextureBinder now combines 32 VRAM pages into a single texture, this reduces the number of texture binds, and allows for much more mesh batching.
TextureBinder now uses TexSubImage2D after the first call.
BufferSubData is now used instead of BufferData after the first call.
Fixed normal for Neversoft PSX sprites being inverted.
Meshes now get their data from the VertexArrayObject class. All root entities use a single VAO for all meshes, and meshes will use a portion of the data stored in it.
Added mesh batching for the models mesh batch. With this, the number of draw calls can be reduced by between x4 and x8 (also thanks to the texture sharing).
Fixed Scene.CameraYawRotation being inverted.
Vertex attributes are no longer bound every time a mesh is drawn, but only after data is assigned. When drawing a mesh, only the vertex array is bound.
Baked connections now take sprite rotation into account.
u_
prefix to help distinguish them from local variables, and color is now processed in vec3, since alpha is never used.