Releases: libgdx/libgdx
1.14.0 Release
We are proud to present a new release of libGDX: version 1.14.0! Check out our blog post to find out more!
Click to show the full list of changes
- Added JsonValue#toJson that takes a Writer. by @NathanSweet in #7645
- Update spotless gradle plugin version to let libgdx compila with java 21 by @patton73 in #7637
- Replace deprecated methods on AndroidAudioDevice and AndroidCursor by @obigu in #7603
- Update freetype to v2.13.3 by @PokeMMO in #7650
- [Tiled] Class support by @Quillraven in #7653
- BUGFIX: Prevents crashes when calculating soft buttons bar height. by @noblemaster in #7661
- fix: Modify Pools api to prevent android/desugar issues. by @PokeMMO in #7648
- Extract createGraphics method so a custom AndroidGraphics can be created. by @lucas-viva in #7664
- Add Vector.One static fields for convenience by @rust2 in #7662
- fix misspellings in AsyncExecutor.java by @rust2 in #7667
- Add dark version of libGDX logo by @Frosty-J in #7669
- Update StringBuilder to apache.commons.text. by @NathanSweet in #7674
- Fix accidental breakage in Array constructor by @Berstanio in #7680
- Added JsonMatcher, extracts values with pattern matching by @NathanSweet in #7675
- JsonValue#last added for O(1) append. by @NathanSweet in #7683
- Multisample FBO to support OpenGL ES 3.0 by @WinterAlexander in #7679
- VAO byte calculation add support for int and uint; by @ZCHawk in #7682
- Added glBlendFuncSeparate support in RenderContext by @MORIMORI0317 in #7673
- JsonWriter/String/Matcher improvements by @NathanSweet in #7684
- Update MetalANGLEKit to 1.2.1 by @Berstanio in #7677
- Support for integer arrays
glUniform_iv
functions in 8000 ShaderProgram by @WinterAlexander in #7694 - Added Template Object Support for TiledMaps. Replacement for PR (#5938) by @BoBIsHere86 in #7533
- fix wrong x, y layer offset in HexagonalTiledMapRenderer by @willie-deev in #7652
- Add a constructor taking a TextureData array to FileTextureArrayData by @armingensler in #7706
- Fixed a GWT incompatibility issue in the AtlasTmxMapLoader and AtlasTmjMapLoader + new GWT specific Test by @BoBIsHere86 in #7657
- [Tiled] Optimization for #7653 by @Quillraven in #7658
- Allow Creation of HexagonTiledMapRenderer with empty TiledMap. BugFix - Fixes Issue #7024 by @BoBIsHere86 in #7700
- Small but Important fix to the TmjMapLoader. by @BoBIsHere86 in #7698
- Duplicate code cleanup in Tiled Map Loaders. Replacement for PR(#7136) by @BoBIsHere86 in #7635
- Feature Added: A Universal Tiled Map Loader by @BoBIsHere86 in #7640
- Update Gradle to 8.14.3 by @obigu in #7708
- Upgrade Gradle to 8.14.3 properly by @obigu in #7710
- Clean-up in CharArray. by @tommyettinger in #7711
- Add Lwjgl3ApplicationConfiguration.useGlfwAsync option by @damn in #7659
- Nuke Pools class by @Berstanio in #7678
- fix: Make missing actions registration more verbose by @Berstanio in #7714
Full Changelog: 1.13.5...1.14.0
Click to show a list of new first time contributors
1.13.5
SonaType is sunsetting OSSRH, the service we used to deploy libGDX to Maven Central. This release migrates the libGDX deployment to the new Central Portal service.
NOTE: if you want to continue consuming up-to-date SNAPSHOT builds of libGDX, please add this repository to your build configuration:
https://central.sonatype.com/repository/maven-snapshots/
Click to show the full list of changes
- Update CHANGES by @crykn in #7562
- Versions maintenance by @obigu in #7526
- Array classes: replaceFirst + replaceAll by @TCreutzenberg in #7560
- feat: Make reader in Json changeable by @SimonIT in #7567
- Fix NPE on AndroidXKeyboardHeightProvider#close by @Berstanio in #7569
- Improve TexturePacker MaxRectsPacker pruning by @lucas-viva in #7453
- Optmize JNI performance of Box2D Body methods by @obigu in #7579
- Add option to use Box2D native ContactFilter for performance optimization by @obigu in #7578
- feat: Deserialize char from number by @SimonIT in #7570
- Use
Locale.ROOT
instead ofROOT_LOCALE
by @Frosty-J in #7585 - Add x,y documentation to Shape2D Circle and Ellipse by @soundasleep in #7571
- Add Ellipse#toString() by @soundasleep in #7576
- Add FinishableAction interface and implement in relevant actions by @slateblua in #7575
- Replace PixmapPackerRectangle Rectangle inheritance by Bounds by @obigu in #7592
- Fix out-of-bounds exception in TexturePacker by @gandis0713 in #7595
- Two GWT emu fixes re: long in DataInputStream. by @tommyettinger in #7590
- Remove
touchSleepTime
by @Frosty-J in #7586 - Added Point Object Support in Tiled. Replacement for PR(#6384) by @BoBIsHere86 in #7523
- Get BSpline and a test for it working. by @tommyettinger in #7515
- Introduce Labeler for Pull Request labeling by @SimonIT in #7452
- Add unit tests for Polygon and update of GeometryUtils by @Juliette-Rlt in #7540
- Remove gdx-setup by @Frosty-J in #7426
- ci: Fix labeler typos by @SimonIT in #7596
- Hopefully fix labeler labeling everything as android by @Berstanio in #7598
- Bump project target to java 8 by @Berstanio in #7602
- Implement new DefaultPool based on a supplier by @Berstanio in #7474
- Minor code improvements to DefaultAndroidInput by @obigu in #7601
- Fix permissions on Android tests by @obigu in #7606
- Migrate set/getStyle calls in
Skin#setEnabled
to an interface by @Berstanio in #7607 - Migrate away from ArrayReflection array instantiation by @Berstanio in #7605
- Upgrade to MobiVM 2.3.23 by @obigu in #7615
- Remove reflection use for lwjgl3 sound/audio creation by @Berstanio in #7608
- Use official ANGLE for MetalANGLE by @Berstanio in #7597
- Add Drawable default interface methods by @NathanSweet in #7619
- Add JsonValue copy constructor and setChild methods by @NathanSweet in #7625
- TiledMapPacker Tool Enhancement, ImageLayer and Json map Support, + crashfix. by @BoBIsHere86 in #7525
- ci: Update to Ubuntu 22.04 runner by @SimonIT in #7629
- Added task to extentions:gdx-tools build.gradle so buildRunnables can produce a jar for the TiledMapPacker by @BoBIsHere86 in #7633
- Remove reflection use in ParallelArray by @Berstanio in #7616
- Support for Text Objects in BaseTmxMapLoader + bugfix. by @BoBIsHere86 in #7498
- Versions Maintenance by @obigu in #7614
- Replace Android Vibrator deprecated methods by @obigu in #7600
- Adding initial character to iOS invisible text delegate. by @auraxangelic in #7612
- Fix GLFW window creation with ANGLE and Ubuntu with Nvidia GPU Drivers by @fgnm in #7069
- Logging and other minor code improvements to Android classes by @obigu in #7604
- WORLD1/2 keys for Lwjgl3 backends by @curioustorvald in #7456
- Fix: Set alpha channel bits to 8 for Android backend by @Raxorg in #7415
- [scene2d.ui] HorizontalGroup and VerticalGroup set transform false by default. by @NathanSweet in #7632
- [scene2d.ui] Fixed Container#setCullingArea. by @NathanSweet in #7631
- Respect AndroidApplicationConfiguration in BufferFormat creation by @Raxorg in #7641
- OrderedSet overrides for efficiency by @NathanSweet in #7643
Full Changelog: 1.13.1...1.13.5
Click to show a list of new first time contributors
- @lucas-viva made their first contribution in #7453
- @slateblua made their first contribution in #7575
- @gandis0713 made their first contribution in #7595
- @Juliette-Rlt made their first contribution in #7540
- @curioustorvald made their first contribution in #7456
1.13.1
libGDX 1.13.1 brings a few pressing bugfixes as well as a couple of interesting new features. Check out our blog post to find out more!
Click to show the full list of changes
- Fix floating point inaccuracy with touch position on iOS by @Berstanio in #7471
- Change visibility of PolygonSpriteBatch.switchTexture() to protected by @TCreutzenberg in #7467
- Support for Image Layer repeat x and y in TiledMap + Bugfix by @BoBIsHere86 in #7080
- Update MobiVM to 2.3.22 by @obigu in #7483
- Unproject and pick ray docs for Viewport/Camera by @Tom-Ski in #7469
- Improve Android input keyboard with autocorrection by @fgnm in #7484
- FIX: Parsing imagelayer inside a group tag in TMX file by @TMalygin in #7135
- XmlReader.getChildren() + XmlReader.replaceChild() by @TCreutzenberg in #7499
- fix: Wayland doesn't support setting window position and icon by @SimonIT in #7497
- GWT - Calculate MD5 hash while copying file to avoid errors on very large files by @MobiDevelop in #6853
- Do not inline the version string by @Geolykt in #7398
- Change defaults of SpriteBatch to use VBO instead of VertexArray on gl2/gles2.0 by @Tom-Ski in #7486
- Upgrade gha XCode to 15.4 by @obigu in #7511
- Fix #7509 Gdx.net.openURI not working on iOS 18.1 Simulator by @obigu in #7510
- Added FPSLogger.setBound() by @TCreutzenberg in #7424
- fix duplicate points returned in polygon intersection by @jose-puente in #7519
- Added tiledmap loader for JSON files. Replacement for PR (#7386) by @BoBIsHere86 in #7505
- reset existing transformations of provided overlap Polygon in Polygon::intersectPolygons by @jose-puente in #7522
- A few modifications to LongArray and a test class for it (clean) by @melvilpf in #7524
- Fix for classpath files on GWT. by @tommyettinger in #7530
- SortTest class (clean) by @JujuG02 in #7532
- Support for Layer TintColor in TiledMap by @BoBIsHere86 in #7076
- #7432 tiled class prop support by @Quillraven in #7534
- Use docker container action for building Linux natives in natives-linux job to fix issues with Node 20+ by @SonicGDX in #7544
- fix depth shader recycling by @mgsx-dev in #7541
- Add AndroidX Core dependency to Android backend by @obigu in #7543
- Hiero font name validation ( #7502 ) by @tommyettinger in #7512
- Fix pauseWhenLostFocus not working as expected by @obigu in #7500
- Defer content view resolve for KeyboardHeightProvider to allow for late setContentView by @Berstanio in #7553
- Downgrade LWJGL 3 to 3.3.3 by @obigu in #7555
- API Addition: Added Array#replaceFirst and Array#replaceAll by @TCreutzenberg in #7557
- Replace uses of expand&fill with grow by @Frotty in #7559
Full Changelog: 1.13.0...1.13.1
1.13.0
It has been some time since our last release, but version 1.13.0 of libGDX brings plenty of improvements and bug fixes. Check out our blog post to find out more!
Click to show the full list of changes
- Tighten Spotless rules to only include java src folders by @obigu in #7271
- chore: Update to gwt 2.10.0 by @SimonIT in #7250
- Ensure that all ANGLE calls go through GLES classes by @Berstanio in #7274
- Vector2: Added static methods for angleDeg and angleRad by @TCreutzenberg in #6886
- Fixed scene2d.ui layout for fractional positions and sizes. by @NathanSweet in #7276
- Update missing build.gradle files with new syntax for registering tasks by @obigu in #7270
- fix(gdx-setup): Add jsinterop-annotations as sources dependency by @SimonIT in #7280
- Upgrade libGDX to Gradle 8.4 by @obigu in #7246
- Set correct versions in DependencyBank by @obigu in #7284
- Fixed Timer#stop, remember time spent stopped and delay tasks when started again. by @NathanSweet in #7288
- Upgrade Gdx Setup to generate projects using Gradle 8.4 by @obigu in #7247
- Upgrade Gdx Setup Gradle and Kotlin versions by @obigu in #7302
- Adds status detection for an httpRequest by @supermaximus80 in #7305
- Use empty Audio implementations on Android and iOS when audio is disabled by @obigu in #7309
- Set GdxSetup source level to java 8 by @obigu in #7311
- Added possibility to reset a particle effect without starting it by @supermaximus80 in #7306
- Move #removeFromConnectionsAndListeners into the finally block. by @crykn in #7312
- Revert "Try to fix build" by @obigu in #7320
- Android: Quality of life improvement for android cutout handling. by @marcosantos98 in #7317
- Removed 2D Particle Editor from main repo by @obigu in #7322
- Update GdxSetupUI.java with a new error message and changed build gradle by @LoopingMobiusStrip in #7315
- Bump min Android API level to 19 by @obigu in #7310
- Fix compilation error by @obigu in #7332
- Add API to get user input with native text fields by @Berstanio in #7004
- Add more docs on stereo sound panning by @soundasleep in #6885
- feat: Change audio device on gwt by @SimonIT in #7243
- Fix delta time not being reset when resizing. by @crykn in #7254
- Fix javadoc format by @SimonIT in #7344
- Fix Intersector.intersectPolygons() corner case by @obigu in #7278
- Multisample framebuffer by @mgsx-dev in #7185
- Added antialiasing flag to the ScreenUtils. by @GadWissberg in #7286
- Add arm64 capabilities by @obigu in #7364
- Make Screen actually Disposable by @Anton-Samarskyi in #7350
- Document units of Batch rotation by @soundasleep in #7366
- Added new Color CLEAR_WHITE by @raeleus in #7374
- Adding iOS RoboVM AudioDevice implementation by @auraxangelic in #7371
- Generate updated MobiVM MetalANGLE backend by @Berstanio in #7377
- Fix RoboVM backend gdx tests by @obigu in #7372
- Only allow scrolling of a scroll pane if it has scroll focus by @raeleus in #7358
- Added Proguard/R8 rules for Scene2d Skins by @obigu in #7375
- Exceptions occurring on Runnable tasks no longer swallowed by @obigu in #7384
- Improve preferred FPS setting logic and documentation on iOS backend by @obigu in #7382
- Fix incorrect glyph page index in FreeTypeFontGenerator by @raeleus in #7357
- [scene2d.ui] Fixed TextField breaking if the font has markup enabled. by @NathanSweet in #7383
- Added pauseWhenMinimized and pauseWhenLostFocus to Lwjgl3 backend by @obigu in #7287
- Alternative to #7357 for setting glyph page index. by @NathanSweet in #7388
- gdx-ttf fonts bleed black color onto glyphs when they have shadows of any color by @WinterAlexander in #7391
- Fix DragListener stopping when another button is pressed. by @NathanSweet in #7389
- Correct grammatical error in the JavaDoc of the Application interface by @SonicGDX in #7395
- Fixed Timer tasks being run after cancellation. by @NathanSweet in #7393
- fix: avoid unnecessary window.makeCurrent() calls by @McMurat in #7362
- Make Pixmap safe to dispose if already disposed by @obigu in #7347
- Check for missing MetalANGLE changes on PR CI by @Berstanio in #7379
- Upgrade RoboVM to 2.3.21 and minimumOS version to 12 by @obigu in #7376
- Optimization for SpriteBatch when running non VertexArray VertexDataModes. (GL30 default) by @Tom-Ski in #7346
- Download NDK versions instead of using shipped ones by the runner by @Berstanio in #7327
- Upgrade gha XCode to 14.3.1 by @SimonIT in #7401
- Fix : RenderBuffer leak in GLFrameBuffer class by @dar-dev in #7096
- Fix offsets in ConvexHull while unsorted being improperly accounted for by @Geolykt in #7399
- Prevent loss of precision in OrthographicCamera.update by @armingensler in #7255
- [GH-7411] New API: Color.set(Color rgb, float a) by @angelickite in #7412
- Debug colors' access modifiers set to public by @Raxorg in #7416
- glTexImage2D support on GWT by @Ret-Mode in #7378
- JsonReader improvements, added JsonSkimmer, JsonString by @NathanSweet in #7410
- Improve WAV support with 8-bit PCM and more! by @Frosty-J in #6792
- Add config for automatic output device fetching on gwt by @SimonIT in #7359
- Cache packed color on Sprite by @obigu in #7222
- fix(tests): Properly dispose audio if test is closed by @Berstanio in #7439
- force a dummy render to make sure gl is initialized at the time of create by @Tom-Ski in #7428
- Add missing changelog entries by @crykn in #7442
- feat: RISCV native build support by @SimonIT in #7275
- Update to GWT 2.11.0 by @tommyettinger in #7435
- Fix iosgl function name mismatch by @Berstanio in #7440
- Respect OnscreenKeyboardType on gwt getTextInput by @SimonIT in #6939
- Apply
transient
to Array's Iterable, Iterator by @tommyettinger in #7443 - Revert "feat: RISCV native build support (#7275)" by @Berstanio in #7444
- Retire the gdx-lwjgl3-glfw-awt-macos extension by @crykn in #7361
- Fix when GLFW_LIBRARY_NAME.get() is null. by @tommyettinger in #7455
- Add support for predictive back gestures by @Frosty-J in #7429
- Update actions by @SimonIT in #7457
- Revert "Update actions (#7457)" Since checkout breaks linux building due to node compatibility by @Tom-Ski in #7458
- Flame 3D particle editor UX improvement on bad user manipulations by @WinterAlexander in #7462
- Revert "Revert "feat: RISCV native build support (#7275)" (#7444)" by @SimonIT in #7451
- Support predictive back gesture in fragments by @Frosty-J in #7466
- Fix custom view usage on android by @Berstanio in #7475
Full Changelog: 1.12.1...1.13.0
Click to show a list of new first time contributors
- @supermaximus80 made their first contribution in https://gith...
1.12.1
libGDX 1.12.1 is a minor release containing plenty of small fixes and improvements. Check out our blog post to find out more!
Click to show the full list of changes
- Revert "Add back OpenGLES linking for gdx-setup" by @Berstanio in #6889
- Fix borderless fullscreen when taskbar is on the left/top by @crykn in #7164
- Change androidx.fragment dependency to compileOnly by @Berstanio in #7179
- One-line fix for Tiled failures on GWT. by @tommyettinger in #7176
- Update WebGL API - getFramebufferAttachmentParameter by @JamesTKhan in #7193
- [Tiled] TiledLayer paralaxx default values fix by @lyze237 in #7192
- Use setup-java v3 to manage gradle caches by @fourlastor in #7074
- Fixes potential IndexOutOfBoundsException on AsynchronousAndroidSound by @obigu in #7181
- gdx-setup: 1.10.1 -> 1.11.0 by @Frosty-J in #7195
- Automatically switch audio device if it was changed on the OS by @rafaskb in #7184
- For GL30 compatibility, use indexed lsans-15.png . by @tommyettinger in #7172
- Revert #6821 by @obigu in #7215
- Fix for #7216 (bitwise precedence). by @tommyettinger in #7217
- Add comment to Input.Keys documentation for ⌘ Command key by @mwhiter in #7225
- Fix some casts in ParticleEditor and Flame. by @tommyettinger in #7213
- Update to LWJGL 3.3.3 by @Berstanio in #7236
- Fix setCursor releasing the caught cursor on the LWJGL 3 backend. by @crykn in #7239
- Update CONTRIBUTING.md by @crykn in #7237
- Remove unnecessary Input hack by @obigu in #7242
- "Dokumentation" Merge Rectangle by @lukasb1b in #7233
- Dokumentation Ellipse by @lukasb1b in #7231
- Add Bullet test demonstrating btHeightfieldTerrainShape by @JamesTKhan in #7238
- Lower GLIBC requirements by using building linux natives on ubuntu 18.04 docker by @theofficialgman in #7178
- Remove usage of deprecated tag on GL30 by @JamesTKhan in #7196
- 6901 - Support Tiled "Object" Type Map Property by @JohnLavender474 in #7229
- Clear list pointers of child before adding it to a JsonValue by @dasisdormax in #7044
- Upgrade MobiVM to 2.3.20 by @obigu in #7249
- align for TiledDrawable by @TCreutzenberg in #7207
- Use STBVorbis to decode ogg data for Sound by @Hangman in #7140
- Upgrade some default Android backend versions by @obigu in #7244
- Fix ANGLE GLES renderer on dekstop by @Berstanio in #7251
- Fixes #7256 by @obigu in #7259
- Add Vector4 class and use it where fitting by @tommyettinger in #7260
- Add missing changelog entries. by @crykn in #7266
- Fix longPress being triggered on back Android System gesture by @obigu in #7265
Full Changelog: 1.12.0...1.12.1
Click to show a list of new first time contributors
- @mwhiter made their first contribution in #7225
- @lukasb1b made their first contribution in #7233
- @theofficialgman made their first contribution in #7178
- @JohnLavender474 made their first contribution in #7229
1.12.0
1.11.0
Since our last release a little over a year ago, a great deal of work has been done! libGDX 1.11.0 brings improvements and new features in various areas – take a look at our blog post to find out more! If you are upgrading from an older version, be sure to also check out the Ultimate Migration Guide (1.9.10 to 1.10.0).
1.10.0
It has been over five years since the release of 1.9.0, the last major version of libGDX. That doesn’t mean that libGDX did not change over the last years – in fact, it has quite a lot – but we weren’t always as strict about our versioning as we should have been. By and large, version 1.10.0 doesn’t include any shining new features, but it provides a clean cut from the past 1.9.x releases and contains a few breaking changes. So let’s dive right in and take a look at those.