libGDX 1.9.7 released

libGDX 1.9.7

Update time. All brought to you by Tomski, marking the first time in libGDX history that someone else did the release!

Heres ya loot drops.

Important and breaking changes

GLFrameBuffer has been refactored

For creating standard FrameBuffers, FloatFrameBuffers, and FrameBufferCubemap use the new static methods in the respective classes.
For creating custom FrameBuffers, use the respective FrameBufferBuilder.

An example for building a custom FrameBuffer with multiple colour attachments and a depth attachment:

GLProfiler has been refactored

In order to support Lwjgl3, GLProfiler has been refactored to be instance based instead of static.
Create an instance of GLProfiler by passing in the Graphics interface. Feel free to make the instance you obtain static.


- Update to MobiVM(RoboVM) 2.3.3
- Add iOS 11 support
- Update to Lwjgl 3.1.3
- Update to MOE 1.4.0
- API Change: GLFrameBuffer has been refactored Create standard FrameBuffers with static methods. Customized FBOS with FrameBufferBuilder
- API addition: Tiled group layer support 
- Fix Tiled properties, offset parsing for image layers
- API addition: Added utility methods for Vector equals with epsilon
- Fix Animation backing array type
- Fix Mesh copying with 0 indices 
- Fix restoration of pooled particle effects scale
- Fix loss of controller listeners on reconnect
- Added basic kotlin project generation support in the setup tool
- API addition: Allow APK expansion to be used in fragments and activities
- API addition: Added color properties support from tiled maps
- API Change: Added rotation vector sensor support on Android
- API Change: GLProfiler refactored for OOP and lwjgl3 multi windows
- LWJGL3: The creation of additional windows via Lwjgl3Application.newWindow() is now deferred, with postRunnable(), until all existing windows have been updated. This fixes a potential native crash with NVidia GL drivers on Windows, presumably caused by a GL context conflict.
- API addition: Lwjgl3WindowListener.created() is called after a new window has been created. It's unsafe to call Lwjgl3Window functions in between Lwjgl3Application.newWindow() and this callback.
- Updated LWJGL3 backend to 3.1.3.
- Lwjgl3Graphics.setUndecorated() and Lwjgl3Graphics.setResizable() now delegate their work to the respective GLFW functions.
- API addition: ProgressBar.isVertical() - returns whether a progress bar is vertical or horizontal.
- API Change: SplitPane now by default does not allow the split amount to shrink children below their minimum sizes (cropping them). This behavior can be reverted by overriding clampSplitAmount or wrapping the children in Containers set to minSize(0) and fill(). SplitPane also now correctly includes the handle min size in its own min size calculations.
- API Change: SplitPane.getSplit() renamed to SplitPane.getSplitAmount() to match other getter and setter names.
- Improved internal Timer synchronization.
- API Change: List#drawItem, added float width parameter.
- API Addition: Make it possible to disable sound on the GWT-Backend with disableSound=true.
- API Change: ScrollPane setWidget deprecated in favor of setActor to match other APIs.
- API Change: removed JGLFW backend
- Fixed mixed up use of TexturePacker.Settings.stripWhitespaceX|Y.
- Added joystick POV support to LWJGL3 controller backend.
- Added support for 2d particles sprite animation.
- API Change: ParticleEmitter getSprite, setSprite, getImagePath, setImagePath are now getSprites, setSprites, getImagePaths, setImagePaths.
- Added support for 2d particles independant scale X and Y.
- API Change: ParticleEmitter getScale, matchSize are now getScaleX/getScaleY, matchSizeX/matchSizeY. Added scaleSize(float scaleX, float scaleY)

Happy coding,
The libGDX team