Changelog History
Page 3
-
v1.9.10-b1 Changes
August 17, 2019The first stable release to support LibGDX 1.9.10 and feature
ktx-json
- a new KTX module with utilities for LibGDX JSON serialization API.
- ⚡️ [UPDATE] Updated LibGDX to 1.9.10.
- ⚡️ [UPDATE] Updated to Kotlin 1.3.41.
- ⚡️ [UPDATE] Updated to Kotlin Coroutines 1.3.0-RC2.
- ⚡️ [UPDATE] Updated VisUI to 1.4.4.
- ⚡️ [UPDATE] Updated to Gradle 5.5.1.
- [CHANGE] (
ktx-app
)clearScreen
now also clears depth buffer to support 3D applications. - [FEATURE] (
ktx-json
) Added a new KTX module with the goal of improving LibGDXJson
API:ktx-json
. The following extension methods were added to avoid passing Java class instances:fromJson
addClassTag
getTag
setElementType
setSerializer
readValue
- [FEATURE] (
ktx-graphics
) AddedGLFrameBuffer.use
to allow safe omission of thebegin()
andend()
calls.
-
v1.9.9 Changes
June 02, 2019🚀 Maintenance release with dependencies update and some additional utilities in
ktx-style
.
- ⚡️ [UPDATE] Updated to Kotlin 1.3.31.
- ⚡️ [UPDATE] Updated to Kotlin Coroutines 1.2.1.
- [FEATURE] (
ktx-assets
) AddedTextAssetLoader
that can be registered in anAssetManager
to load text files asynchronously. - [FEATURE] (
ktx-style
) AddedSkin.get
extension method that allows to pass enum instances as style names. - [CHANGE] (
ktx-style
)Skin.get
extension method are no longer infix. - [CHANGE] (
ktx-style
)Skin.get
now has accepts default parameter equal to the default style name.
-
v1.9.9-b2 Changes
June 02, 2019🚀 Maintenance release with dependencies update and some additional utilities in
ktx-style
.
- ⚡️ [UPDATE] Updated to Kotlin 1.3.31.
- ⚡️ [UPDATE] Updated to Kotlin Coroutines 1.2.1.
- [FEATURE] (
ktx-assets
) AddedTextAssetLoader
that can be registered in anAssetManager
to load text files asynchronously. - [FEATURE] (
ktx-style
) AddedSkin.get
extension method that allows to pass enum instances as style names. - [CHANGE] (
ktx-style
)Skin.get
extension method are no longer infix. - [CHANGE] (
ktx-style
)Skin.get
now has accepts default parameter equal to the default style name.
-
v1.9.9-b1 Changes
February 05, 2019🚀 A major KTX release with some significant changes. Most notably:
ktx-async
module was overhauled and now properly provides coroutines scope consistent the stable coroutines API.- 🔨
AssetStorage
andktx-freetype-async
were temporarily removed until they are refactored to the newktx-async
API. ImmutableVector2
was added as an immutable alternative to the officialVector2
.
- ⚡️ [UPDATE] Updated LibGDX to 1.9.9.
- ⚡️ [UPDATE] Updated to Kotlin 1.3.20.
- ⚡️ [UPDATE] Updated to Kotlin Coroutines 1.1.1.
- ⚡️ [UPDATE] Updated VisUI to 1.4.2.
- ⚡️ [UPDATE] Updated to Gradle 5.0.
[CHANGE] (
ktx-actors
) ReplacedStage
andGroup
extension operator methodsplus
andminus
withplusAssign
andminusAssign
to avoid mutating the objects with addition and subtraction operators.// Adding an actor to a Stage/Group - before:stage + actor group + actor// Now:stage += actor group += actor
[CHANGE] (
ktx-actors
) ReplacedStage
andActor
extension operator methodsplus
andminus
withplusAssign
andminusAssign
to avoid mutating the objects with addition and subtraction operators.// Adding an action to a Stage/Actor - before:stage + action actor + action// Now:stage += action actor += action
[CHANGE] (
ktx-actors
)SequenceAction.then
was removed. Using the method on a sequence no longer mutates
it for consistency withAction.then
.then
now unwraps actors from passedSequenceActions
.[CHANGE] (
ktx-actors
)ParallelAction.parallelTo
was removed. Using the method on aParallelAction
no longer
mutates it for consistency withAction.parallelTo
.parallelTo
now unwraps actors from passedParallelActions
.[CHANGE] (
ktx-async
) Overhaul of thektx-async
module.KtxAsync
is now the main coroutines scope that should be used instead of theGlobalScope
.Dispatchers.KTX
can be used to access a coroutines dispatchers that executes tasks on the main rendering thread.AsyncExecutorDispatcher
can be used to wrap LibGDXAsyncExecutor
to execute tasks asynchronously.newSingleThreadAsyncContext
allows to create anAsyncExecutorDispatcher
with a single thread.newAsyncContext
allows to create anAsyncExecutorDispatcher
with the given max amount of threads.onRenderingThread
suspends the coroutine to execute a task on the main rendering thread and return its result.isOnRenderingThread
allows to check whether the corouting is executed on the main rendering thread.skipFrame
attempts to suspend the coroutine for at least one rendering frame.httpRequest
allows to perform an asynchronous HTTP request.schedule
andinterval
functions simplify LibGDXTimer
API usage.AssetStorage
and associated asset loading utilities were temporarily removed. They will be added to a separate module.- Asynchronous tests were significantly simplified.
- Assume that other utilities were either removed or integrated with the listed utilities.
[CHANGE] (
ktx-freetype-async
) The module is temporarily disabled due to the removal ofAssetStorage
.[FEATURE] (
ktx-actors
) Added+
operator to create sequence of actions (an alternative syntax tothen
).[FEATURE] (
ktx-actors
) Added+=
operators toSequenceAction
andParallelAction
to ease adding new actions to these action groups.[FEATURE] (
ktx-actors
) Addedstage
factory method that uses named and default parameters to easeStage
creation.[FEATURE] (
ktx-graphics
) AddedShapeRenderer.use
to allow safe omission of thebegin()
andend()
calls.[FEATURE] (
ktx-math
) AddedImmutableVector2
, an immutable equivalent toVector2
.
Known issues:
- [REMOVAL] (
ktx-async
)AssetStorage
was removed until refactoring to the newktx-async
API. - [REMOVAL] (
ktx-freetype-async
) Sincektx-freetype-async
depends on theAssetStorage
, this module was disabled before this release.
-
v1.9.8 Changes
September 20, 2018🚀 Maintenance release with major dependencies update and an improvement of the
ktx-ashley
component creation API.
- ⚡️ [UPDATE] Updated to Kotlin 1.2.70.
- ⚡️ [UPDATE] Updated to Kotlin Coroutines 0.26.1.
- ⚡️ [UPDATE] Updated to Gradle 4.10.2.
- [FIX] (
ktx-ashley
) Component classes without a default no-arg constructors could not have been initiated by the Ashley engine. This is still the case, but now an exception with a meaningful message is thrown.
-
v1.9.8-b5 Changes
September 20, 2018🚀 Maintenance release with major dependencies update and an improvement of the
ktx-ashley
component creation API.
- ⚡️ [UPDATE] Updated to Kotlin 1.2.70.
- ⚡️ [UPDATE] Updated to Kotlin Coroutines 0.26.1.
- ⚡️ [UPDATE] Updated to Gradle 4.10.2.
- [FIX] (
ktx-ashley
) Component classes without a default no-arg constructors could not have been initiated by the Ashley engine. This is still the case, but now an exception with a meaningful message is thrown.
-
v1.9.8-b4 Changes
July 27, 2018🚀 Maintenance release with notable dependencies updates and
ktx-collections
unit tests refactoring.
- ⚡️ [UPDATE] Updated to Kotlin 1.2.51.
- ⚡️ [UPDATE] Updated to Kotlin Coroutines 0.24.0.
- ⚡️ [UPDATE] Updated to Dokka 0.9.17.
- ⚡️ [UPDATE] Updated to Gradle 4.9.
- [CHANGE] (
ktx-async
)KtxAsync.asynchronous
is now inlined. The action lambda is cross-inlined to avoid excessive object creation.
-
v1.9.8-b3 Changes
June 01, 2018🚀 The first release to feature the new
ktx-graphics
module withShapeRenderer
extensions and various graphics-related utilities moved from thektx-app
module.
- ⚡️ [UPDATE] Updated to Kotlin 1.2.41.
- ⚡️ [UPDATE] Updated to Gradle 4.7.
- [FEATURE] (
ktx-graphics
) Added new graphics module with the followingShapeRenderer
extension methods:arc
box
circle
cone
ellipse
rect
rectLine
rotate
scale
translate
triange
- [CHANGE] (
ktx-app
,ktx-graphics
) Utility functions moved fromktx-app
to the newktx-graphics
:color
Color.copy
Batch.use
ShaderProgram.use
- [MISC] Removed migration guides from very old versions. If you are in a process of migrating an existing application to the latest KTX and facing any errors, see
README
files in1.9.8-b2
tag.
-
v1.9.8-b2 Changes
March 07, 2018Contains notable breaking changes to
ktx-math
operators in order to prevent calculation errors arising from vectors and matrices mutability.
- ⚡️ [UPDATE] Updated to Kotlin 1.2.30.
- ⚡️ [UPDATE] Updated to Kotlin Coroutines 0.22.5.
- ⚡️ [UPDATE] Updated to Dokka 0.9.16.
- ⚡️ [UPDATE] Updated to Gradle 4.6.
- [FEATURE] (
ktx-math
)dot
andx
infix functions added toVector2
andVector3
allow to calculate dot products and cross products of two vectors respectively. - [FEATURE] (
ktx-box2d
) Initiation blocks ofBody
inWorld.body
extension method is now optional thanks to default lambda parameters in inlined functions. - [FEATURE] (
ktx-box2d
)World.query
extension method allowing to execute AABB query with idiomatic Kotlin. - [CHANGE] (
ktx-math
) Binary operators ofVector2
,Vector3
,Matrix3
andMatrix4
(+
,-
,*
,/
) no longer modify the first vector or matrix. Instead, they create new instances of vectors or matrices that store the operation result. Use the assign operators (+=
,-=
,*=
,/=
) instead to avoid creating new instances. - [CHANGE] (
ktx-math
) New mutating assign operators (+=
,-=
,*=
,/=
) were added toVector2
,Vector3
,Matrix3
andMatrix4
. - [CHANGE] (
ktx-math
) Parameters of matrix vector multiplication operators are switched.vector * matrix
does not exist anymore and now is available asmatrix * vector
. - [CHANGE] (
ktx-math
) Operators ofMatrix3
to left-multiply aVector3
were removed.
-
v1.9.8-b1 Changes
January 27, 2018🚀 The first release that contains
ktx-freetype
andktx-freetype-async
modules: FreeType font loading utilities. The transition from Kotlin 1.1 to 1.2 also allowed us to use default functional parameters in inlined methods, which simplified some APIs. It also contains notable changes and simplifications of thektx-inject
API.
- ⚡️ [UPDATE] Updated to LibGDX 1.9.8.
- ⚡️ [UPDATE] Updated to Kotlin 1.2.21.
- ⚡️ [UPDATE] Updated to Kotlin Coroutines 0.22.
- ⚡️ [UPDATE] Updated to Gradle 4.4.
- ⚡️ [UPDATE] Updated to VisUI 1.4.0.
- [CHANGE] (
ktx-scene2d
) Duplicate functions in Scene2D building DSL were removed thanks to optional default lambda parameters in inlined functions (added in Kotlin 1.2). Due to the limitation in inlined methods, there used to be two inlined methods for each actor to support syntax both with braces (init block) and without. Now there is just one factory method supporting both syntax variants per widget. This should not affect most application, but might require
Kotlin 1.2 usage. - [CHANGE] (
ktx-ashley
) Default functional parameters were added tocreate
,entity
andwith
, simplifying the implementation and making configuration blocks optional. - [CHANGE] (
ktx-inject
) Parameters ofbindSingleton
consuming multiple classes have been swapped to be more compatible with thebind
functions. - [CHANGE] (
ktx-inject
)bind
andbindSingleton
methods consuming multiple classes now takeKClass
as parameters instead ofClass
, so now you can useYourType::class
instead of more verboseYourType::class.java
. - [FEATURE] (
ktx-style
) Initiation blocks ofSkin
and Scene2D actor styles are now optional. - [FEATURE] (
ktx-vis-style
) Initiation blocks of VisUI actor styles are now optional. - [FEATURE] (
ktx-box2d
) Initiation blocks of fixtures and joints are now optional thanks to default lambda parameters in inlined functions. [FEATURE] (
ktx-inject
) Add higher-order function parameters forbindSingleton
to allow the use of lambda expressions.fun createCircle(body: Body) { // Before - would not compile without additional braces: body.circle(radius = 2f) {} // Now - braces are optional (lambda parameter defaults to no-op): body.circle(radius = 2f) }
[FEATURE] (
ktx-freetype
) Implementedktx-freetype
module.AssetManager.registerFreeTypeFontLoaders
allows to register all loaders necessary to handle FreeType font assets.AssetManager.loadFreeTypeFont
provides Kotlin DSL for loading of FreeType fonts.freeTypeFontParameters
function provides Kotlin DSL for building FreeType font loading parameters.FreeTypeFontGenerator.generateFont
extension function allows to generateBitmapFont
with Kotlin DSL.
[FEATURE] (
ktx-freetype-async
) Implementedktx-freetype-async
module.AssetStorage.registerFreeTypeFontLoaders
allows to register all loaders necessary to handle FreeType font assets.AssetStorage.loadFreeTypeFont
provides Kotlin DSL for asynchronous loading of FreeType fonts.
[FIX] (
ktx-box2d
) As LibGDX 1.9.8 fixes itsChainShape
implementation,ChainShape
utilities are supported once again.