* Add new "Limits" enum to hold maximums of various renderer capabilities such as texture size
* Add support for seamless cubemap (enabled by default for mipmapped cubemaps)
* Fix conflict when using GL tracing with GL debugging
- When GraphicsDebug is enabled, check for GL errors and display hints from the driver
- When GraphicsTrace is enabled, dump OpenGL calls on the console
* Unified all renderers into common class 'ALAudioRenderer'
* LWJGL and Android now implement the AL / ALC / EFX interfaces to provide a common OpenAL backend for jME
* Added support for OpenAL Soft "Pause Device" extension, which allows the engine to pause the context while running in the background (currently requires OpenAL soft 1.16 and thus is Android only feature)
(so far only for lwjgl because I'm lazy)
Went ahead and added in divisor support while I was
at it because it doesn't cost anything and there might
be use-cases for it.
Mesh now knows about instances and you can directly
ask it for an instance count. I haven't added support
for proper bounding box calculation but it should
at least be possible now.
* All GL calls are done via static imports
* Once again remove dependency on GL21 / GL30 - with the generator it will be possible to choose whether to target GL2+extensions or GL3 core
* ContextCapabilities is field in Renderer, not allowed to use GLContext to retrieve it anymore
* Assume depth textures are always supported (they should be since GL1.4)
* Deprecate old library loader
* Add warning when the requested number of antialiasing samples cannot be satisfied
* Cleaned up LwjglContext.determineMaxSamples()
* Remove the sanity check from TextureUtil since it is now done once during initialization of the renderer.
* If LwjglRenderer.VALIDATE_SHADER is enabled, log shader compilation warnings as Level.WARNING instead of Level.FINE. Also slightly better grammar in shader compile / link messages.
* ARGB8 and BGRA8 formats now support sRGB -> linear conversion if sRGB pipeline is used, previously they were ignored.
* All float and half float formats are considered supported if we either support OpenGL 3 or ARB float texture.
* Cleanup TextureUtil a bit by removing constant references from ARBHalfFloatPixel, ARBTextureFloat, EXTPackedFloat, EXTTextureSharedExponent and EXTTextureSRGB to GL21 and GL30 classes (which are identical anyway).
* Check if we support sRGB textures before choosing sRGB format (although this check should have been done earlier? not sure..)
- Add instanced geometry support. This is performed by uploading 4 vertex buffers each containing 4 floats. The top 3 rows are the world matrix and the bottom row is a quaternion representing the normal matrix. Hence, both unshaded and lit geometries can be rendered through instancing.
See Instancing.glsllib for more information as well as the comment in LwjglRenderer.
One can now mark a texture param in a material definition as linear by using -Linear at the end of the parameter declaration (case insensitive).
An Image bound to a material texture param in a linear color space will have its ColorSpace set to linear when bound to the material by mat.setTexture("name", texture);
Added the -LINEAR flag to all texture param that needed it in stock materials (lighting.j3md, terrainLighting.j3md, different Filter materials).