It's strange how fast I was able to finish this.
Modified the code style to be less ambiguous.
Removed Game.getRenderMode() and getCurrentScene() in favor of the render HUB system.
Finished up the render HUB system, though I will be making changes to it.
* Note: Currently it does not work, due to ThreadTimed not being complete.
Model animations can now directly access the rendering ticket using it.
Implemented ITexture.isStatic().
Removed that "starting particle" nonsense in ParticleScene.
Fixed the default shader constants in RenderHelper.
Lightly refactored how model animations are handled in RenderTicket.
Implemented new constructors for TextureStatic.
Implemented pausing to ThreadStoppable.
Okay, I think we can begin testing now.
Corrected a reference in the crash report dialog.
Game:
* Returning null for getSettings() will no longer cause a NPE.
* Removed the ability to set gamma, brightness, and constrast. I'll re-implement it one day.
* The main game loop is now under one less nest.
* Removed redundant code related to making the current thread sleep.
* Fixed determineLWJGLPath().
GameSettings:
* Modified the default title.
* Marked the currently unused fields as deprecated.
IRenderEngine.render() is now a void.
Tweaked ParticleScene.
Implemented RenderHelper.makeContextCurrent().
Forgot to make a field in RenderTicket protected.
Removed unneeded chatter when rendering failed.
Removed Tasks because I have more important things to work on, and it needed a refactoring job.
One more thing!
Renamed Camera to Camera3D.
The code for color formats is now much more legible.
Cameras can now determine which rendering mode they use.
ITexture now extends IGLCleanable.
PixelGrid is no longer considered a static texture.