Skip to content

KTX 1.9.6-b2

Pre-release
Pre-release
Compare
Choose a tag to compare
@czyzby czyzby released this 22 Apr 15:50
· 937 commits to master since this release

The first release with the io.github.libktx group ID. Features a new module: ktx-async. Contains a few API changes, most notably in ktx-vis and ktx-scene2d modules - make sure to check README files for migration guides.


  • [UPDATE] Updated to Kotlin 1.1.1.
  • [UPDATE] Updated to VisUI 1.3.0.
  • [FEATURE] (ktx-actors) Added inlined txt extension properties to Label and TextButton widgets.
  • [FEATURE] (ktx-actors) Added KtxInputListener: an InputListener extension with parameter types improvements.
  • [FEATURE] (ktx-actors) alpha extension properties of Actor and Stage are now inlined.
  • [FEATURE] (ktx-app) Added KtxApplicationAdapter interface which makes implementing all of ApplicationListener methods optional.
  • [FEATURE] (ktx-app) Added KtxInputAdapter interface which makes implementing all of InputProcessor methods optional.
  • [FEATURE] (ktx-app) Added use inlined methods to Batch and ShaderProgram, allowing to omit begin() and end() calls.
  • [FEATURE] (ktx-app) Added color factory method to allow constructing LibGDX Color instances with named parameters.
  • [FEATURE] (ktx-app) Added Color.copy extension method that allows to copy Color instances with optional overriding of chosen values.
  • [CHANGE] (ktx-app) KotlinApplication#timeSinceLastRender now has a protected default getter.
  • [CHANGE] (ktx-assets) Static AssetManager instance container was deprecated. Static access to AssetManager will be removed in the next release.
  • [FEATURE] (ktx-assets) Added load, loadAsset, loadOnDemand, getAsset, unload and unloadSafety extension methods to AssetManager to provide an alternative to equivalent utility functions using static manager instance.
  • [FEATURE] (ktx-assets) Added getLoader and setLoader extension methods to AssetManager for AssetLoader handling.
  • [FEATURE] (ktx-async) Implemented a new KTX module with multi-threaded operations utilities: ktx-async.
    • Implemented coroutines context using LibGDX threading model: KtxAsync. It resumes suspending operations on the main rendering thread with Gdx.app.postRunnable utility. It has to be initiated on the main thread with enableKtxCoroutines.
    • Added utility ktxAsync function which launches non-blocking coroutine using KtxAsync context.
    • Added skipFrame method that suspends the coroutine and resumes it on the next frame using Gdx.app.postRunnable.
    • Added delay method that offers non-blocking coroutine suspensions for the given period of time.
    • Added httpRequest method that performs asynchronous suspending HTTP request using LibGDX Net API.
    • Added asynchronous method, which allows to perform suspending operations on a separate thread.
    • schedule and interval utility methods added to ease the use of com.badlogic.gdx.utils.Timer API.
    • Added HttpRequestResult: a thread-safe HttpResponse wrapper that addresses libgdx#4700.
  • [FEATURE] (ktx-collections) Added sortDescending, sortBy and sortByDescending utility methods to LibGDX Array.
  • [FEATURE] (ktx-collections) Added type aliases to LibGDX collections to avoid name collisions with standard library:
    • GdxArray: com.badlogic.gdx.utils.Array
    • GdxIntArray: com.badlogic.gdx.utils.IntArray
    • GdxFloatArray: com.badlogic.gdx.utils.FloatArray
    • GdxBooleanArray: com.badlogic.gdx.utils.BooleanArray
    • GdxCharArray: com.badlogic.gdx.utils.CharArray
    • GdxLongArray: com.badlogic.gdx.utils.LongArray
    • GdxShortArray: com.badlogic.gdx.utils.ShortArray
    • GdxSet: com.badlogic.gdx.utils.ObjectSet
    • GdxMap: com.badlogic.gdx.utils.ObjectMap
    • GdxList: ktx.collections.PooledList
  • [FEATURE] (ktx-collections) lastIndex extension properties of LibGDX arrays are now inlined.
  • [FEATURE] (ktx-collections) Added component1() and component2() operator extension methods to Entry classes of LibGDX maps to support destructing syntax and simplify iteration.
  • [CHANGE] (ktx-i18n) Static I18NBundle instance container was deprecated. Static access to I18NBundle will be removed in the next release.
  • [CHANGE] (ktx-inject) Static Context instance container was deprecated. Static access to Context will be removed in the next release.
  • [FEATURE] (ktx-scene2d, ktx-vis) inCell extension property added to Table children. Now you can easily access Cell instance outside of the actors' building blocks.
  • [FEATURE] (ktx-scene2d, ktx-vis) inNode extension property added to Tree children. Now you can easily access Node instance outside of the actors' building blocks.
  • [FEATURE] (ktx-scene2d, ktx-vis) fluent cell extension method added to Table children, allowing to configure Cell properties outside of actors' building blocks.
  • [FEATURE] (ktx-scene2d, ktx-vis) fluent node extension method added to Tree children, allowing to configure Node properties outside of actors' building blocks.
  • [FEATURE] (ktx-scene2d, ktx-vis) Resolved DSL scoping issues with Kotlin 1.1 @DslMarker API.
  • [CHANGE] (ktx-scene2d, ktx-vis) Due to @DslMarker introduction, implicit access to parental widgets is no longer possible in children building blocks. See ktx-scene2d or ktx-vis documentation for more info on the migration.
  • [CHANGE] (ktx-scene2d) KNode.invoke extension method was moved directly to KNode API and no longer has to be imported.
  • [FEATURE] (ktx-style) Skin instance is now available under lambda parameter of skin method init blocks.
  • [FEATURE] (ktx-style, ktx-style-vis) Resolved DSL scoping issues with Kotlin 1.1 @DslMarker API.
  • [CHANGE] (ktx-style, ktx-style-vis) Due to @DslMarker introduction, implicit access to Skin instance is no longer possible. See ktx-style documentation for more info on the migration.
  • [FEATURE] (ktx-vis) Added support for HorizontalCollapsibleWidget: horizontalCollapsible builder methods added to all parental actors.
  • [FEATURE] (ktx-vis) Added support for VisTree building using type-safe API.
  • [CHANGE] (ktx-vis) Cells and nodes are now available as lambda parameters. See ktx-vis documentation for migration guide.