korlibs/korge-next
### [`v2.7.0`](https://togithub.com/korlibs-archive/korge-next/releases/tag/v2.7.0)
#### What's Changed
- Fix wrong task by [@soywiz-invideo](https://togithub.com/soywiz-invideo) in [https://github.com/korlibs/korge-next/pull/491](https://togithub.com/korlibs/korge-next/pull/491)
- Added UntransformedSizeBmpCoordsWithInstance by [@soywiz-invideo](https://togithub.com/soywiz-invideo) in [https://github.com/korlibs/korge-next/pull/492](https://togithub.com/korlibs/korge-next/pull/492)
- KDynamic and Dynamic2 was being autocompleted as they were exposing methods in a public object by [@soywiz-invideo](https://togithub.com/soywiz-invideo) in [https://github.com/korlibs/korge-next/pull/494](https://togithub.com/korlibs/korge-next/pull/494)
- Do not include extra samples if DISABLED_EXTRA_KORGE_LIBS is enabled by [@soywiz-invideo](https://togithub.com/soywiz-invideo) in [https://github.com/korlibs/korge-next/pull/496](https://togithub.com/korlibs/korge-next/pull/496)
- Adds com.soywiz.korio.test.assertEqualsJvmFileReference by [@soywiz-invideo](https://togithub.com/soywiz-invideo) in [https://github.com/korlibs/korge-next/pull/495](https://togithub.com/korlibs/korge-next/pull/495)
- Allow Image to support custom shaders, support custom functions in shaders & added stexture2D function to the default shader repeat wrapping by default by [@soywiz-invideo](https://togithub.com/soywiz-invideo) in [https://github.com/korlibs/korge-next/pull/493](https://togithub.com/korlibs/korge-next/pull/493)
- Add linux based android SDK locations to gradle by [@jobe-m](https://togithub.com/jobe-m) in [https://github.com/korlibs/korge-next/pull/497](https://togithub.com/korlibs/korge-next/pull/497)
- Fix RGBA.withR/G/B/A clamping by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/499](https://togithub.com/korlibs/korge-next/pull/499)
- Add MutableMargin and convert Margin into an interface, MarginInt and MutableMarginInt by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/500](https://togithub.com/korlibs/korge-next/pull/500)
- Add support for FOR constant loops with (if break) in shaders, adds Unop Operand by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/501](https://togithub.com/korlibs/korge-next/pull/501)
- Adds UISlider component by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/502](https://togithub.com/korlibs/korge-next/pull/502)
- Support blending modes in lineBatcher & use BlendMode.INVERT in debug annotations by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/503](https://togithub.com/korlibs/korge-next/pull/503)
- Fixes BatchBuilder2D.\_PROGRAMS thread local issue + fix order of PRE_ADD/POST_ADD programs by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/504](https://togithub.com/korlibs/korge-next/pull/504)
- Faster BlurFilter + filter optimizations, fixes and improvements by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/505](https://togithub.com/korlibs/korge-next/pull/505)
- Initial experimental SSL/TLS support on darwin: macos & ios by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/506](https://togithub.com/korlibs/korge-next/pull/506)
- Linux SSL sockets using OpenSSL dynamically by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/508](https://togithub.com/korlibs/korge-next/pull/508)
- Allows to seed extra random bytes by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/509](https://togithub.com/korlibs/korge-next/pull/509)
- Delete samples/box2dv2 directory by [@SchneckeddeF](https://togithub.com/SchneckeddeF) in [https://github.com/korlibs/korge-next/pull/507](https://togithub.com/korlibs/korge-next/pull/507)
- Proper --add-opens on runJvm by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/515](https://togithub.com/korlibs/korge-next/pull/515)
- Execute BaseAwtGameWindow.DialogInterface methods with EventQueue.invokeLater by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/513](https://togithub.com/korlibs/korge-next/pull/513)
- Fix jvmTest with newer versions of jvm by calling useJUnit + add jvmTestFix by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/510](https://togithub.com/korlibs/korge-next/pull/510)
- Try to fix linux libraries not found on /lib /usr/lib + now ncurses or tinfo are not needed & openal & glut do not require dev versions, only runtime ones by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/519](https://togithub.com/korlibs/korge-next/pull/519)
- Use filter border in View bounds + BlurFilter improvements by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/520](https://togithub.com/korlibs/korge-next/pull/520)
- Some darwin SSL stability fixes by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/526](https://togithub.com/korlibs/korge-next/pull/526)
- jvmTest on e2e-test on mac seems to be flaky due to timeout, by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/527](https://togithub.com/korlibs/korge-next/pull/527)
- Optimize displaylink on Macos Native by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/530](https://togithub.com/korlibs/korge-next/pull/530)
- Use esbuild instead of webpack when running samples by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/528](https://togithub.com/korlibs/korge-next/pull/528)
- Initial GPU vector rendering as a sample by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/524](https://togithub.com/korlibs/korge-next/pull/524)
- Fixes a crash on K/N linuxX64 (reproduced on 1.6.10 and 1.6.20-RC2), by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/531](https://togithub.com/korlibs/korge-next/pull/531)
- Fix SSL sockets hanging in linux JVM by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/532](https://togithub.com/korlibs/korge-next/pull/532)
- Fixes falsely reporting an issue with glGenVertexArrays by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/533](https://togithub.com/korlibs/korge-next/pull/533)
- Make SortedMap implement Map interface. Not changing the name yet. by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/534](https://togithub.com/korlibs/korge-next/pull/534)
- \[KorIM] Added QOI Image Format by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/535](https://togithub.com/korlibs/korge-next/pull/535)
#### New Contributors
- [@SchneckeddeF](https://togithub.com/SchneckeddeF) made their first contribution in [https://github.com/korlibs/korge-next/pull/507](https://togithub.com/korlibs/korge-next/pull/507)
**Full Changelog**: https://github.com/korlibs/korge-next/compare/v2.6.3...v2.7.0
### [`v2.6.3`](https://togithub.com/korlibs-archive/korge-next/releases/tag/v2.6.3)
#### Major addition
- Integrate Fleks ECS into korge + example by [@jobe-m](https://togithub.com/jobe-m) & [@Quillraven](https://togithub.com/Quillraven) in [https://github.com/korlibs/korge-next/pull/472](https://togithub.com/korlibs/korge-next/pull/472) + https://github.com/Quillraven/Fleks
#### What's Changed
- Added publishMobileRepo task by [@soywiz-invideo](https://togithub.com/soywiz-invideo) in [https://github.com/korlibs/korge-next/pull/463](https://togithub.com/korlibs/korge-next/pull/463)
- Added missing publishIosX64PublicationToMavenRepository to publishMobileRepo by [@soywiz-invideo](https://togithub.com/soywiz-invideo) in [https://github.com/korlibs/korge-next/pull/464](https://togithub.com/korlibs/korge-next/pull/464)
- Fixed macos packing by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/468](https://togithub.com/korlibs/korge-next/pull/468)
- Be nicer to kotlin linters in iOS generated bootstrap by [@soywiz-invideo](https://togithub.com/soywiz-invideo) in [https://github.com/korlibs/korge-next/pull/469](https://togithub.com/korlibs/korge-next/pull/469)
- Partial support for gradle cache configuration on the korge plugin by [@soywiz-invideo](https://togithub.com/soywiz-invideo) in [https://github.com/korlibs/korge-next/pull/470](https://togithub.com/korlibs/korge-next/pull/470)
- Add missing task for publishMobileLocal & publishMobileRepo for korge-gradle-plugin by [@soywiz-invideo](https://togithub.com/soywiz-invideo) in [https://github.com/korlibs/korge-next/pull/471](https://togithub.com/korlibs/korge-next/pull/471)
- Make tests headless by default by [@soywiz-invideo](https://togithub.com/soywiz-invideo) in [https://github.com/korlibs/korge-next/pull/474](https://togithub.com/korlibs/korge-next/pull/474)
- Ignore hprof files by [@soywiz-invideo](https://togithub.com/soywiz-invideo) in [https://github.com/korlibs/korge-next/pull/475](https://togithub.com/korlibs/korge-next/pull/475)
- Fixes alpha not being cleared on AG.clear() on macOS (black shadow issue) by [@soywiz-invideo](https://togithub.com/soywiz-invideo) in [https://github.com/korlibs/korge-next/pull/477](https://togithub.com/korlibs/korge-next/pull/477)
- Adds View.filterScale by [@soywiz-invideo](https://togithub.com/soywiz-invideo) in [https://github.com/korlibs/korge-next/pull/476](https://togithub.com/korlibs/korge-next/pull/476)
- Bump and unify gradle versions by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/480](https://togithub.com/korlibs/korge-next/pull/480)
- HttpPortable optimizations, improvements and refactors by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/479](https://togithub.com/korlibs/korge-next/pull/479)
- Disable additive tinting by default by [@soywiz-invideo](https://togithub.com/soywiz-invideo) in [https://github.com/korlibs/korge-next/pull/473](https://togithub.com/korlibs/korge-next/pull/473)
- Adds runBlockingNoJs to gameWindow and stage by [@soywiz-invideo](https://togithub.com/soywiz-invideo) in [https://github.com/korlibs/korge-next/pull/481](https://togithub.com/korlibs/korge-next/pull/481)
- Do not sleep on runBlockingNoJs if not required by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/482](https://togithub.com/korlibs/korge-next/pull/482)
- Enable trilinear filtering when smoothing with mipmaps by default by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/484](https://togithub.com/korlibs/korge-next/pull/484)
- Add some explicit types by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/483](https://togithub.com/korlibs/korge-next/pull/483)
- View extension method for scaling view by maintaining aspecg ratio. by [@Kietyo](https://togithub.com/Kietyo) in [https://github.com/korlibs/korge-next/pull/448](https://togithub.com/korlibs/korge-next/pull/448)
- \[Klock] Fixes am/pm on languages other than english by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/485](https://togithub.com/korlibs/korge-next/pull/485)
- improve debugger by [@bognari](https://togithub.com/bognari) in [https://github.com/korlibs/korge-next/pull/442](https://togithub.com/korlibs/korge-next/pull/442)
- Fix double dispatch issue by [@soywiz-invideo](https://togithub.com/soywiz-invideo) in [https://github.com/korlibs/korge-next/pull/487](https://togithub.com/korlibs/korge-next/pull/487)
- Implement playing image animation only once by [@jobe-m](https://togithub.com/jobe-m) in [https://github.com/korlibs/korge-next/pull/488](https://togithub.com/korlibs/korge-next/pull/488)
- Fixes some CancellationException paths not being handled & fixes server socket accept hang & unifies android and jvm AsyncSocket implementations by [@soywiz-invideo](https://togithub.com/soywiz-invideo) in [https://github.com/korlibs/korge-next/pull/489](https://togithub.com/korlibs/korge-next/pull/489)
**Full Changelog**: https://github.com/korlibs/korge-next/compare/v2.6.2...v2.6.3
### [`v2.6.2`](https://togithub.com/korlibs-archive/korge-next/releases/tag/v2.6.2)
#### What's Changed
- KorgeMultithreadedTest doesn't work without coroutines -mt by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/454](https://togithub.com/korlibs/korge-next/pull/454)
- Change master -> main branch in github/worflows by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/455](https://togithub.com/korlibs/korge-next/pull/455)
- Support compiling linux on windows by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/456](https://togithub.com/korlibs/korge-next/pull/456)
- Do not print stacktrace on \_launch and \_async by default by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/457](https://togithub.com/korlibs/korge-next/pull/457)
- Add new constructors for createHttpClient/Server/Endpoint with a block by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/458](https://togithub.com/korlibs/korge-next/pull/458)
- Make AsyncServer.listen more resilient by using a supervisorScope to prevent cancellation propagation by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/459](https://togithub.com/korlibs/korge-next/pull/459)
- Propagate socket address + add errorHandler to HttpServer by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/460](https://togithub.com/korlibs/korge-next/pull/460)
- Restore ImageInfo.orientation ThreadLocal that was removed by mistake by [@soywiz-invideo](https://togithub.com/soywiz-invideo) in [https://github.com/korlibs/korge-next/pull/462](https://togithub.com/korlibs/korge-next/pull/462)
**Full Changelog**: https://github.com/korlibs/korge-next/compare/v2.6.1...v2.6.2
### [`v2.6.1`](https://togithub.com/korlibs-archive/korge-next/releases/tag/v2.6.1)
- Fixes reading Spine 3.8 JSON: [https://github.com/korlibs/korge/issues/425](https://togithub.com/korlibs/korge/issues/425)
- Fix BitmapCoords after rotation & transformation
- Fix missing ThreadLocal in ImageInfo.orientation to support korge in a separate non-main thread
- Bump kotlinx.coroutines and kotlinx.serialization versions
**Full Changelog**: https://github.com/korlibs/korge-next/compare/v2.6.0...v2.6.1
### [`v2.6.0`](https://togithub.com/korlibs-archive/korge-next/releases/tag/v2.6.0)
#### What's Changed
- Bump to Kotlin 1.6.10 again
- Add material colors to Korge. by [@Kietyo](https://togithub.com/Kietyo) in [https://github.com/korlibs/korge-next/pull/447](https://togithub.com/korlibs/korge-next/pull/447)
- Allow removing `android.enableJetifier=true` by [@soywiz-invideo](https://togithub.com/soywiz-invideo) in [https://github.com/korlibs/korge-next/pull/451](https://togithub.com/korlibs/korge-next/pull/451)
- Simplify project structure so any source set has only one parent by [@soywiz-invideo](https://togithub.com/soywiz-invideo) in [https://github.com/korlibs/korge-next/pull/452](https://togithub.com/korlibs/korge-next/pull/452)
- Check if View is a Circle when Shape is null by [@jobhh](https://togithub.com/jobhh) in [https://github.com/korlibs/korge-next/pull/450](https://togithub.com/korlibs/korge-next/pull/450)
- Support ImageInfo.orientation, support EXIF reading ImageInfo, support reading EXIF from JPEG, PNG and HEIC/AVIF
- MAJOR gradle project structure changes to not require cinterop commonization for now. Simplify project structure so any source set has only one parent
- Try not to use androidx.appcompat either
- Gradle: Reduce the number of warnings when building
- Proper gradient transformations on Core Graphics
- Fixes vector rendering with transformations on Android
- Added Bitmap.resizedUpTo
- Circumvent issues with cuplicate $catalog
#### New Contributors
- [@Kietyo](https://togithub.com/Kietyo) made their first contribution in [https://github.com/korlibs/korge-next/pull/447](https://togithub.com/korlibs/korge-next/pull/447)
- [@jobhh](https://togithub.com/jobhh) made their first contribution in [https://github.com/korlibs/korge-next/pull/450](https://togithub.com/korlibs/korge-next/pull/450)
**Full Changelog**: https://github.com/korlibs/korge-next/compare/v2.5.3...v2.6.0
### [`v2.5.3`](https://togithub.com/korlibs-archive/korge-next/releases/tag/v2.5.3)
#### What's Changed
- Prepare for [https://github.com/korlibs/korim/issues/69](https://togithub.com/korlibs/korim/issues/69) by [@soywiz-invideo](https://togithub.com/soywiz-invideo) in [https://github.com/korlibs/korge-next/pull/445](https://togithub.com/korlibs/korge-next/pull/445)
- fix gradle deprecation warnings by [@bognari](https://togithub.com/bognari) in [https://github.com/korlibs/korge-next/pull/441](https://togithub.com/korlibs/korge-next/pull/441)
- Add ThreadLocal to Bitmap.transformMat
- Fix e2e tests on macos by being less strict since renderer there is a software one producing slightly different results on some filters like the blur one
- Fixes spurious bug rendering composed filters super small in some cases, specially in retina displays
- Some fixes in Views and Korge constructor
- Proper propagate ImageDecodingProps on readBitmap variants
- Use kCGColorSpaceSRGB on Core Graphics renderer
- Make View.renderToBitmap more resilient
- Deprecate Bitmap.transformMat and remove u_TexTransformMatN uniform and matrix multiplication in fragment shaders. Remove unused texTransformMat. Move Bitmap.transformMat to Korvi instead
- Add sample of using Korvi with KorGE benefiting from frame coordinates for transforms
- Adds a way to chain filter addition to views
- Try not to fail if LD included directory doesn't exist Relates to [https://github.com/korlibs/korge/issues/424](https://togithub.com/korlibs/korge/issues/424)
- Fixes BMP 32-bit decoding, and BMP with extra header size Fixes [https://github.com/korlibs/korim/issues/71](https://togithub.com/korlibs/korim/issues/71)
- Fixes TGA decoding
- Try to fix Apple Core Graphics native image decoding
- Unifies macos and ios/watchos/tvos image loading implementation using CG (Core Graphics), and supports rescaling while loading
- Implements Android decodeHeaderInternal and decodeInternal with rescaling while loading support
- Supports creating an ImageInfo from a lambda block
- Adds NativeImageFormatProvider.decodeHeader to not require fully decoding the image to get information
- Change how ImageDecodingProps works to make it compatible with both Android and iOS native thumbnailed decoding
- Make readBitmap to propagate ImageDecodingProps correctly
- Native support for resizing images while decoding Prepare for [https://github.com/korlibs/korim/issues/69](https://togithub.com/korlibs/korim/issues/69) ([https://github.com/korlibs/korge-next/pull/445](https://togithub.com/korlibs/korge-next/pull/445))
#### New Contributors
- [@bognari](https://togithub.com/bognari) made their first contribution in [https://github.com/korlibs/korge-next/pull/441](https://togithub.com/korlibs/korge-next/pull/441)
**Full Changelog**: https://github.com/korlibs/korge-next/compare/v2.5.2...v2.5.3
### [`v2.5.2`](https://togithub.com/korlibs-archive/korge-next/releases/tag/v2.5.2)
- Fixed RenderContext.renderToTexture rendering outside expected bounds
- Add BitmapPaint.toString
- Enable apple macos/ios/tvos/watchos native vector rendering
- Fix clipping in native JS rendering
- Detect retina displays on macos target
- Limit debug macTrace for environment MAC_TRACE=true
- Detect ARM macos host, for runNativeDebug/Release
- Fix FpsOverlay message
- Allow FixedSizeContainer with clipping to work when rotation is applied by using a RenderBuffer
- Fix filters when the image width & height were between 65 and 128
- Include failing opengl reference test for 128x128 render buffers
- Add reference test for scenario failing with filters of 128x128
**Full Changelog**: https://github.com/korlibs/korge-next/compare/v2.5.1...v2.5.2
### [`v2.5.1`](https://togithub.com/korlibs-archive/korge-next/releases/tag/v2.5.1): 2.5.1
#### What's Changed
- Fix final blit for composed filter by [@sahilbajaj](https://togithub.com/sahilbajaj) in [https://github.com/korlibs/korge-next/pull/440](https://togithub.com/korlibs/korge-next/pull/440)
- Support publishing to custom repositories https://github.com/korlibs/korge-next/commit/dba1c2c41b8e4de53ca66ade646345f02cb4653b `KORLIBS_CUSTOM_MAVEN_USER`, `KORLIBS_CUSTOM_MAVEN_PASS`, `KORLIBS_CUSTOM_MAVEN_URL`
- Fix lineHeight for some fonts like Pacifico.ttf
- Fix Rectangle.toInt
- Fix devicePixelRatio not being computed on AWT (for retina macOS displays)
- \[Debug] Do not render debug text with filtering
- Add reference test to verify View filters
- Image flipping problem, exif rotation and flipping support [https://github.com/korlibs/korim/issues/59](https://togithub.com/korlibs/korim/issues/59)
- Support VfsFile.readBitmapSliceWithOrientation providing a mutable atlas
- Added mechanism to map primitive arrays into double arrays without boxing
- Fixes FastByteArrayInputStream.skipToAlign
**Full Changelog**: https://github.com/korlibs/korge-next/compare/v2.5.0...v2.5.1
### [`v2.5.0`](https://togithub.com/korlibs-archive/korge-next/releases/tag/v2.5.0)
- [KorVI: remove exoplayer](https://togithub.com/korlibs/korge-next/commit/6aea32aed03cd02dedd1d9096a120b365103af2d)[](https://togithub.com/soywiz-invideo)
- Fixes Image decoding in android is blocking [#426](https://togithub.com/korlibs/korge-next/issues/426)
**Full Changelog**: https://github.com/korlibs/korge-next/compare/v2.4.12...v2.5.0
### [`v2.4.12`](https://togithub.com/korlibs-archive/korge-next/releases/tag/v2.4.12)
- Add some missing ThreadLocal
- Replaces println(e) with e.printStackTrace() in IosGameWindow
- Fix KorviVideo.pause to not throw, but to do nothing by default
- BmpCoords rotate -> rotated, flip -> flipped to be consistent with naming
**Full Changelog**: https://github.com/korlibs/korge-next/compare/v2.4.11...v2.4.12
### [`v2.4.11`](https://togithub.com/korlibs-archive/korge-next/releases/tag/v2.4.11)
#### UI additions
- Added UITreeView
- Added UITooltipContainer
- Added UIImage supporting scaleMode and contentAnchor
- Added UIButtonToggleableGroup
- Added UIGridFill
#### What's Changed
- Gradle 7.4
- Go back to Kotlin 1.5.31
- Use kotlinx.coroutines 1.5.2 to avoid issues with the intellij plugin
- Bump kotlinx.coroutines to 1.6.0 by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/407](https://togithub.com/korlibs/korge-next/pull/407)
- Adds support for loading a build.android.indirect.gradle from the main project folder by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/409](https://togithub.com/korlibs/korge-next/pull/409)
- Support processing folders in ResourceProcessor & generate & use $catalog.json for resourcesVfs on JS by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/411](https://togithub.com/korlibs/korge-next/pull/411)
- Fixed Point.Up and Point.Down by [@davjhan](https://togithub.com/davjhan) in [https://github.com/korlibs/korge-next/pull/422](https://togithub.com/korlibs/korge-next/pull/422)
- Corrected transform order in VertexShader by [@Stechmuck](https://togithub.com/Stechmuck) in [https://github.com/korlibs/korge-next/pull/415](https://togithub.com/korlibs/korge-next/pull/415)
- Add Base64url variant of Base64 encoding by [@gsteckman](https://togithub.com/gsteckman) in [https://github.com/korlibs/korge-next/pull/423](https://togithub.com/korlibs/korge-next/pull/423)
- Some work on [https://github.com/korlibs/korge-next/issues/417](https://togithub.com/korlibs/korge-next/issues/417) : Move back krypto to its own repo by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/427](https://togithub.com/korlibs/korge-next/pull/427)
- KorGE: Support using arbitrary texture coordinates for rendering images by [@soywiz-invideo](https://togithub.com/soywiz-invideo) in [https://github.com/korlibs/korge-next/pull/438](https://togithub.com/korlibs/korge-next/pull/438)
- Documentation: Document how (resources|rootLocal|application|local|etc)Vfs should be used [#432](https://togithub.com/korlibs/korge-next/issues/432)
- Added yarn.lock file
- Fix macOS bug when embedding GLCanvas with KorGE on an existing AWT app (ie. intellij plugin)
- Added GLCanvasWithKorge to simplify GLCanvas creation for korge added AwtSample
- Make GLCanvasGameWindow exitProcessOnExit=false by default
- Improve Korge.Config to simplify creation without requiring a Module
- Create Base64.TABLE_URL and DECODE_URL in the same way as TABLE and DECODE arrays.
- Verifies Extention for toDynamicLocalDate()
- \[WIP] Support processing folders in ResourceProcessor & generate & use $catalog.json for resourcesVfs on JS
- Adds support for loading a build.android.indirect.gradle from the main project folder
- Add BmpCoordsWithT.name
- KorVI: Backport: add support for ExoPlayer
- KorGE: Backport: offer compatibility with raw shader by using functions VertexShader and FragmentShader
- KorGE: Support using arbitrary texture coordinates for rendering images
- KorGE: Backport: Make BatchBuilder2D support texTransformMat and flipRender (check)
- KorGE: Backport: Added Korge.Config.constructedScene
- KorGE: Backport: some extra ThreadLocal
- KorGE: Backport: getUpdateComponents
- KorGW: Backport: make FragmentShader.appending to not fail when using raw shaders
- KorGW: Backport: Use transformMat from Bitmap and add experimental u_TexTransformMatN
- KorGW: Support raw shader definition (GLSL)
- KorVI: Backport: Add unimplemented pause method
- KorIM: Backport: Add missing ThreadLocal + add Bitmap.transformMat + makes KorimExperimental a warning
- KorIO: Backport: Make Resources extensible, and provide a way to subscribe to resource generation
- Prevent JavaScript NodeJsRootPlugin reconfiguration failing on projects with multiple modules
- Added DateFormat.format with KlockLocale
- Add Bus.sendAsync
- Added SyncBus and SyncGlobalBus
- Use SensitivityWatchEventModifier.HIGH on JVM file watching
- Simplify AsyncDestructor in AsyncInjector
- Fixes [https://github.com/korlibs/klock/issues/187](https://togithub.com/korlibs/klock/issues/187) problem with millisecond padding in ISO8601.DATETIME_UTC_COMPLETE_FRACTION
- Fixed [https://github.com/korlibs/korge-next/issues/435](https://togithub.com/korlibs/korge-next/issues/435): SVG renderer issue
- Added BmpSlice.showImageAndWait
- Added Anchor.toNamedString
- Added ScaleMode.FILL alias
- Added sample showing how to use UIImage
- Added Container.toChildrenList
#### New Contributors
- [@davjhan](https://togithub.com/davjhan) made their first contribution in [https://github.com/korlibs/korge-next/pull/422](https://togithub.com/korlibs/korge-next/pull/422)
- [@Stechmuck](https://togithub.com/Stechmuck) made their first contribution in [https://github.com/korlibs/korge-next/pull/415](https://togithub.com/korlibs/korge-next/pull/415)
- [@gsteckman](https://togithub.com/gsteckman) made their first contribution in [https://github.com/korlibs/korge-next/pull/423](https://togithub.com/korlibs/korge-next/pull/423)
**Full Changelog**: https://github.com/korlibs/korge-next/compare/v2.4.10...v2.4.11
### [`v2.4.10`](https://togithub.com/korlibs-archive/korge-next/releases/tag/v2.4.10)
- [Added missing publishIosSimulatorArm64](https://togithub.com/korlibs/korge-next/commit/b7611004ce35960d9876eca2cc4c1fd0ccab247c)[](https://togithub.com/soywiz)
**Full Changelog**: https://github.com/korlibs/korge-next/compare/v2.4.9...v2.4.10
### [`v2.4.9`](https://togithub.com/korlibs-archive/korge-next/releases/tag/v2.4.9)
#### What's Changed
- Kotlin 1.6.10
- Gradle to 7.3.1
- Add parallax data container and view with example code by [@jobe-m](https://togithub.com/jobe-m) in [https://github.com/korlibs/korge-next/pull/391](https://togithub.com/korlibs/korge-next/pull/391)
- Fix parent dir path error in TiledMaps by [@jobe-m](https://togithub.com/jobe-m) in [https://github.com/korlibs/korge-next/pull/400](https://togithub.com/korlibs/korge-next/pull/400)
- Implement storing bitmap font into atlas by [@jobe-m](https://togithub.com/jobe-m) in [https://github.com/korlibs/korge-next/pull/398](https://togithub.com/korlibs/korge-next/pull/398)
- Make addUpdater configurable in ParallaxDataView by [@jobe-m](https://togithub.com/jobe-m) in [https://github.com/korlibs/korge-next/pull/397](https://togithub.com/korlibs/korge-next/pull/397)
- Fix updating frame index in ImageAnimationView by [@jobe-m](https://togithub.com/jobe-m) in [https://github.com/korlibs/korge-next/pull/403](https://togithub.com/korlibs/korge-next/pull/403)
- Fixes windows resource .res creation
- Add support for iosSimulatorArm64
- Reduce gradle memory for each process
- Fix NodeJS version to support macosArm64
- Actually compile using the Kotlin version from gradle.properties
- Proper macosArm64 support on K/N
- Some fixes of deprecated 1.6.0 APIs
- Fix FastRandom global object mutating on K/N
- Disable vis-assert (somehow preventing intellij from importing the project in some cases)
- Fix esbuild to also work when no global node is installed, and install it globally
- Fixes compress crashes on iOS when run in a coroutine [https://github.com/korlibs/korio/issues/152](https://togithub.com/korlibs/korio/issues/152)
**Full Changelog**: https://github.com/korlibs/korge-next/compare/v2.4.8...v2.4.9
### [`v2.4.8`](https://togithub.com/korlibs-archive/korge-next/releases/tag/v2.4.8)
#### What's Changed
- Huge improvement on I/O and compression in all targets, especially on K/N by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/385](https://togithub.com/korlibs/korge-next/pull/385)
- Implements WindowsRegistry in K/N Mingw and JVM. Fixes [https://github.com/korlibs/korge-next/issues/384](https://togithub.com/korlibs/korge-next/issues/384)
- Adds CSV. Fixes [https://github.com/korlibs/korge-next/issues/319](https://togithub.com/korlibs/korge-next/issues/319)
- Hugely reduced the overhead of LocalVfsNativeBase
- Allow to debug and measure times for native deflate with an environment variable
- Support passing a bufferSize to uncompressStream and compressStream
- Make asyncStreamWriter use AsyncByteArrayDequeChunked by default
- Add KorAtomic\*.toString
- Allow ZipFile and ZipVfs to provide the zip name
- Optimize BitReader to not use intermediary buffers, but write directly to the RingBuffer
- Added AsyncByteArrayDequeChunked
- Added ChunkedByteDeque
- Optimize ArrayDeque
- Optimize RingBuffer and add internal API for other classes to be able to be more performant
- Fixes [https://github.com/korlibs/korge-next/issues/376](https://togithub.com/korlibs/korge-next/issues/376) implements GL and X11 fully dynamically on linux
- Some work on [https://github.com/korlibs/korge-next/issues/376](https://togithub.com/korlibs/korge-next/issues/376) Make KorAU external library-free
- Added LZO support. Fixes [https://github.com/korlibs/korio/issues/95](https://togithub.com/korlibs/korio/issues/95) . Implements LZO short header Fixes [https://github.com/korlibs/korio/issues/151](https://togithub.com/korlibs/korio/issues/151)
- Fixes Native DynamicRootVfsVfs incorrect list(). [https://github.com/korlibs/korio/issues/138](https://togithub.com/korlibs/korio/issues/138)
**Full Changelog**: https://github.com/korlibs/korge-next/compare/v2.4.7...v2.4.8
### [`v2.4.7`](https://togithub.com/korlibs-archive/korge-next/releases/tag/v2.4.7)
#### What's Changed
- Render buffer dirty flag being set only when Renderbuffer's size changes by [@sahilbajaj](https://togithub.com/sahilbajaj) in [https://github.com/korlibs/korge-next/pull/367](https://togithub.com/korlibs/korge-next/pull/367)
- Secondary thread iOS render by [@sahilbajaj](https://togithub.com/sahilbajaj) in [https://github.com/korlibs/korge-next/pull/368](https://togithub.com/korlibs/korge-next/pull/368)
- Fixes [https://github.com/korlibs/korio/issues/128](https://togithub.com/korlibs/korio/issues/128) Specify what renameTo does and add rename method to VfsFile
- Fixes [https://github.com/korlibs/korio/issues/111](https://togithub.com/korlibs/korio/issues/111) and improves unicode on windows
- Fixes Files with UTF8 are not supported on Windows. [https://github.com/korlibs/korio/issues/136](https://togithub.com/korlibs/korio/issues/136)
- Fixed [https://github.com/korlibs/korio/issues/147](https://togithub.com/korlibs/korio/issues/147) raw websockets against ws.js
- Support initializing (registering events) WebSocketClient before the open event is triggered
- Add --ignore-scripts to npm for security reasons https://blog.jetbrains.com/kotlin/2021/10/control-over-npm-dependencies-in-kotlin-js/
- Avoid crossinline in LocalVfsJvm.executeIo to avoid bugs + Try to avoid crossinline on android I/O
- Move SSLProcessorJvm to JVM+Android
- Added JvmNioAsyncClient + AsyncClientSSLProcessor for sockets on the JVM
- Adds SSLProcessor and AsyncClientSSLProcessor to implement SSL on top of an existing AsyncClient
- Fixes HttpClient does not read chunked encoding correctly on JVM target [https://github.com/korlibs/korio/issues/150](https://togithub.com/korlibs/korio/issues/150)
- Proper GZIP.toString + name asyncStreamWriter when uncompressing/compressing
- Some AsyncByteArrayDeque fixes
- Add some extra members to ByteDeque and RingBuffer
- Optimize AwtContext2dRenderer.applyState to not set the clip if it is equal to the previous, since setting clipping is costly in AWT
- Fixes [https://github.com/korlibs/korge-next/issues/372](https://togithub.com/korlibs/korge-next/issues/372) Make GameCoroutineDispatcher ThreadSafe on the JVM
- Gradle: Only add --add-opens=sun.awt.X11 on linux
- Fixes \[BUG] Duble.bn doesn't work properly[https://github.com/korlibs/kbignum/issues/9](https://togithub.com/korlibs/kbignum/issues/9)9
- Proper fix for CVDisplayLinkCreateWithCGDisplay not found on Monterey
- Add missing kotlin.native.concurrent import + change some things from ThreadLocal to SharedImmutable
- Render buffer dirty being set only when texture size changed ([https://github.com/korlibs/korge-next/pull/367](https://togithub.com/korlibs/korge-next/pull/367))
- Some work on AG Software Renderer
- Set game icon image on taskbar from `@appicon.png`
- Bump androidBuildGradleVersion to support Java 17
**Full Changelog**: https://github.com/korlibs/korge-next/compare/v2.4.6...v2.4.7
### [`v2.4.6`](https://togithub.com/korlibs-archive/korge-next/releases/tag/v2.4.6)
#### What's Changed
- Bump to Kotlin 1.6.0-RC
- Updated Android API Level to 29 by [@jfbilodeau](https://togithub.com/jfbilodeau) in [https://github.com/korlibs/korge-next/pull/363](https://togithub.com/korlibs/korge-next/pull/363)
- Removed line that disabled the load of texture for particle emitter by [@jfbilodeau](https://togithub.com/jfbilodeau) in [https://github.com/korlibs/korge-next/pull/364](https://togithub.com/korlibs/korge-next/pull/364)
- Added VfsFile.mkdirs
- Support GameWindow.close(exitCode: Int)
- Added e2e tests on CI doing a screenshot verifying filters and basic rendering
- Some filter effect fixes
- Fix K/N Windows compilation by using ResourceHacker to replace .exe resources (check code comments for details)
**Full Changelog**: https://github.com/korlibs/korge-next/compare/v2.4.5...v2.4.6
### [`v2.4.5`](https://togithub.com/korlibs-archive/korge-next/releases/tag/v2.4.5)
#### Improvements
- Make not finding LD libraries on linux a warning, not a failing error
- Some work on debugging UI components
**Full Changelog**: https://github.com/korlibs/korge-next/compare/v2.4.4...v2.4.5
### [`v2.4.4`](https://togithub.com/korlibs-archive/korge-next/releases/tag/v2.4.4)
#### Additions
- Korge: supports specifying the number of frames for SpriteAnimation + support reading by rows or by columns
- Korim: support trying to get a color by name
- Gradle: Try to check required libraries in linux (by using LD paths)
#### Fixes
- Support ParticleEmitterView particles rotation
- Cursor jumps into incorrect position when deleting last char of UITextInput [#400](https://togithub.com/korlibs/korge/issues/400)
- Korte: Supports reading properties without accessors
- Some fixes supporting newer versions of Java `--add-opens`
- Change UUID.randomUUID to use a SecureRandom implementation
- Try to fix hangs on macbook when using filters with a Radeon PRO 5300M
#### Optimizations
- KBigNum: Use JS BigNum (when available) and JVM BigInteger
- KBigNum: hugely optimized String to BigInt parsing
- Make ParticleEmitterView use FSprites
#### General improvements
- Korte: Join JVM and Android implementations
- Some gradle improvements
- Unify linuxArm32 and linuxX64. Unify mingwX64 in mingwCommon
- Improves ViewsForTesting and WString
**Full Changelog**: https://github.com/korlibs/korge-next/compare/v2.4.3...v2.4.4
### [`v2.4.3`](https://togithub.com/korlibs-archive/korge-next/releases/tag/v2.4.3)
#### What's Changed
- Update GL.def by [@conifer-dev](https://togithub.com/conifer-dev) in [https://github.com/korlibs/korge-next/pull/348](https://togithub.com/korlibs/korge-next/pull/348)
- Fix AM/PM parsing bug when hour is 12, and ignore case of AM/PM in parsed string by [@CharlesKozel](https://togithub.com/CharlesKozel) in [https://github.com/korlibs/korge-next/pull/346](https://togithub.com/korlibs/korge-next/pull/346)
- Added Dyn.toStringOrNull() by [@jfbilodeau](https://togithub.com/jfbilodeau) in [https://github.com/korlibs/korge-next/pull/354](https://togithub.com/korlibs/korge-next/pull/354)
- Add SDL_ShowCursor and set cursor to hidden for SDL windows by [@ObsidianX](https://togithub.com/ObsidianX) in [https://github.com/korlibs/korge-next/pull/359](https://togithub.com/korlibs/korge-next/pull/359)
#### New Contributors
- [@conifer-dev](https://togithub.com/conifer-dev) made their first contribution in [https://github.com/korlibs/korge-next/pull/348](https://togithub.com/korlibs/korge-next/pull/348)
- [@CharlesKozel](https://togithub.com/CharlesKozel) made their first contribution in [https://github.com/korlibs/korge-next/pull/346](https://togithub.com/korlibs/korge-next/pull/346)
**Full Changelog**: https://github.com/korlibs/korge-next/compare/v2.4.2...v2.4.3
### [`v2.4.2`](https://togithub.com/korlibs-archive/korge-next/releases/tag/v2.4.2)
🎊 KorGE 2.4.2 released!
Changelog
#### Improvements
- Support changing kotlin version to EAPs and RCs
- Experimental work on windows secure sockets
- Allow particle emitter position to be the global emitter position that is usually the expected behaviour
- \[kbignum] Add support for 0x, 0o and 0b prefixes
- \[kbignum] Added BigNum .toBigInt, toBigIntFloor, .toBigIntCeil, toBigIntRound & decimalPart
- Rewrite SDL implementation to load dynamically
#### Fixes
- Properly sets the stencil bits in android for masks to work
- \[kbignum] Fixes BigInt division
- Fixes `WSAGetLastError` problem by doing some required initializations
- Do not install esbuild is already available
- Fixes esbuild usage on windows
- Only one texture lookup on `linuxArm32Hfp` target also
- Proper parsing timezone offset without ':'
- Try to fix some SDL / linuxArm32 issues
#### Optimizations
- \[kbignum] Optimize toString2
### [`v2.4.1`](https://togithub.com/korlibs-archive/korge-next/releases/tag/v2.4.1)
🎊 KorGE 2.4.1 released!
Changelog
#### Fixes
- Fix shape bounds when not including strokes
#### Additions
- Supports `MeshBuilder3D` building with geometry types other than `triangles`
- Added `Sphere3D`
- Updated `Cube3D`
#### Remove
- Remove `tensork` from korge-next (moved to the old folder)
### [`v2.4.0`](https://togithub.com/korlibs-archive/korge-next/releases/tag/v2.4.0)
🎊 KorGE 2.4.0 released!
Changelog
#### Breaking changes
- Reduce Klock dependencies by changing `DateTime.toString` to not format the date by default. Added `DateTime.toStringDefault` with the old behaviour
#### Improvements
- Reduce output size by removing dependencies from global objects and reestructuring internal code
- Prepare for the `macosArm64` target (disabled)
- Add task `jsBrowserEsbuildClosureCompiler` (closure compiler minimification)
- Remove a lot of `run { }` to potentially reduce compilation/time/output size on debug K/N builds
### [`v2.3.4`](https://togithub.com/korlibs-archive/korge-next/releases/tag/v2.3.4)
🎊 KorGE 2.3.4 released!
Changelog
#### Additions:
- Added `BatchBuilder2D.setTemporalUniforms`
- Added `BaseGraphics.preciseAutoScaling`
- Added `BaseGraphics.ignoreStrokesForBounds`
- Support for getting BaseGraphics bounds with and without strokes
- Added `View.hitTestLocal`
- Added `View.addUpdater`
- Added `FSprite.anchorX` & `FSprite.anchorY` for anchoring
- Added `FSprite.texId` to support multiple textures in FSprites
- Added `SDL2`-based linux native backend
- Support loading TTF fonts freezing
- Support TTF `sbix` section (Standard Bitmap Graphics) for supporting more emoji fonts
- Added `Environment.tempPath`
- Added `FastByteArrayInputStream.unread`
- Added `OS.isJsDenoJs` (supports deno.js)
- Added `Double.isAlmostEquals`
#### Fixes:
- Added some `SharedImmutable` and `ThreadLocal`
- Makes `IRectangle` check for almost equality in `.equals`
#### Optimizations:
- Optimized texture lookup to do a binary search
#### Tests:
- Add `ReferenceGraphicsTest`
### [`v2.3.3`](https://togithub.com/korlibs-archive/korge-next/releases/tag/v2.3.3)
🎊 KorGE 2.3.3 released!
Changelog
#### Major changes:
- \[Gradle] Make Kotlin.JS use [Esbuild](https://togithub.com/evanw/esbuild) instead. A couple of order of magnitude faster startup times, less downloads, and smaller build folder
#### Major fixes
- Circumvents
#### Major additions:
- \[KDS] Added RLE and RLEComparer
- \[KORIM] Added `Bitmap.trace` to convert a 1-bit bitmap into a `VectorPath`
- \[KORIM] Support above 0xFFFF codePoints when rendering fonts
- \[KORIM] Improved system font support on all targets (but JS), added
- \[KORIM] Support rendering colored TTF glyphs and TTF bitmaps (supports both the Windows Emoji font and the Apple one)
![emoji](https://user-images.githubusercontent.com/570848/129796548-440df8ea-f188-4740-b00b-6799295322e8.png)
- \[KORIM] Added `SystemFont.getEmojiFont()` & `SystemFont.geDefaultFont()`
- \[KORIM] Added `VectorFont.withFallback(...VectorFont)`, so you can for example: `DefaultTTFFont.withFallback(SystemFont.getEmojiFont())`
- \[KORIO] Added `WString`, `WChar` and `String.forEachCodePoint` to support high codepoints with surrogate pairs
#### Major optimizations
- \[KORIM] Hugely optimized `SystemFont` catalog generation
- \[KORIM] Optimized font loading
### [`v2.3.2`](https://togithub.com/korlibs-archive/korge-next/releases/tag/v2.3.2)
🎊 KorGE 2.3.2 released!
Changelog
#### PRs:
- Do not include hidden layers of ASE file into generated atlas [https://github.com/korlibs/korge-next/pull/326](https://togithub.com/korlibs/korge-next/pull/326) Thanks [@jobe-m](https://togithub.com/jobe-m) !
- Remove invisible layers from image data of ASE file [https://github.com/korlibs/korge-next/pull/330](https://togithub.com/korlibs/korge-next/pull/330) Thanks [@jobe-m](https://togithub.com/jobe-m) !
- Fix loading tiledmap into given atlas [#333](https://togithub.com/korlibs/korge-next/issues/333) [https://github.com/korlibs/korge-next/pull/333](https://togithub.com/korlibs/korge-next/pull/333) Thanks [@jobe-m](https://togithub.com/jobe-m) !
- Fix slicing in ase files [https://github.com/korlibs/korge-next/pull/334](https://togithub.com/korlibs/korge-next/pull/334) Thanks [@jobe-m](https://togithub.com/jobe-m) !
- JVM target doesn't work on macOS arm64 [https://github.com/korlibs/korge-next/pull/331](https://togithub.com/korlibs/korge-next/pull/331) Thanks [@IsaacShelton](https://togithub.com/IsaacShelton) !
#### Version updates:
- Updated to Kotlin `1.5.30-RC`
#### Major improvements
- Added Binary Volume Hierarchy `BVH` (n-dimensional), `BVH2D` and `BVH3D`. (Improved and optimized port of [jsBVH](https://togithub.com/imbcmdth/jsBVH)) this supports raycasting and range selections for 2d and 3d for AABB3D and Rectangle and in general AABB structures. Check `korge-samples/samples/raycasting` for usage.
![raycasting](https://user-images.githubusercontent.com/570848/129797056-e34c7268-87c0-44f1-92d9-2c02fbc84f9d.png)
- Added AABB3D, Ray3D, Ray, and initial Vector3
- Improved batching of line shapes. Some API changes on RenderContext
- Added `Line` (simple lines) and `Outline` (Arbitrary VectorPath) views that render 1px lines instead of solids
#### Improvements
- Improved `Environment` to support custom environments
- Support `MaskTransition.filtering`
- Simplify starter kit key movement
- Added `InputKeys.getDeltaAxis(minus1: Key, plus1: Key): Double` to simplify keyboard movement
- Some work on shape collisions on tilemaps
- Added `View.hitTestView`
- Add Shape2d intersection check. Add View.hitShape2d and use it for collision detection.
- Publish korge-box2d again as an artifact
#### Fixes
- Fix TransitionView & View.renderFiltered with clipping inside & scaled window + test
- Do not apply a timeout by default on tween, so speed doesn't interefer
- Remove remaining bintray references
- Fixes `Environment.expand("~")` on windows on different drives
- Fix artifacts descriptions on central
- Added missing mouse events on JVM AWT
#### Internal testing (QA)
- Added internal `jvmTestFix` task to support updating reference file checks, and that allows to add more of those tests that will cover more cases
- Test FSprites and instanced rendering
- Test log AG with multiple textures in a single batch
### [`v2.3.1`](https://togithub.com/korlibs-archive/korge-next/releases/tag/v2.3.1)
🎊 KorGE 2.3.1 released!
Changelog
#### Version updates:
- Updated to Kotlin 1.5.30-M1
#### Major improvements
- Added tiled tilemap animations support
- Added tiled tilemap collision support
- Added ASEprite loading
- Added KRA Krita pixel layer reading
- Hugely improved zlib/deflate performance on all targets
- Added support to image providers to provide animations, slices, and several files in a single container file
- Added utilities to move a view in a specific direction using hitTest collisions into account
- Support loading images, slices, tilemaps, aseprite and any other image format into a single MutableAtlas
- Added direction to hitTest, so collisions can take this into account.
- Added `ImageAnimationView` and `ImageDataView` to simplify displaying ASEprite and other format images and animations
- FSprites support for colorMul, allocating and freeing
#### PRs
- Creates fromUnix function to return with applied timezone [#211](https://togithub.com/korlibs/korge-next/pull/211) Thanks [@Caps-Looking](https://togithub.com/Caps-Looking) !
- \[Disabled] Raspbery Pi support ![https://github.com/korlibs/korge-next/pull/316](https://togithub.com/korlibs/korge-next/pull/316)6 Thanks [@ObsidianX](https://togithub.com/ObsidianX) !
#### Fixes
- Fixed orthographic tilemaps
- Some UI improvements
#### Additions
- \[KLOCK] `Date.inThisWeek`
- Added UIRadioButton
- Added support for reading properties and system properties: SystemProperties (works on JVM) and Properties to load .property files
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR has been generated by Mend Renovate. View repository job log here.
This PR contains the following updates:
2.2.0
->2.7.0
Release Notes
korlibs/korge-next
### [`v2.7.0`](https://togithub.com/korlibs-archive/korge-next/releases/tag/v2.7.0) #### What's Changed - Fix wrong task by [@soywiz-invideo](https://togithub.com/soywiz-invideo) in [https://github.com/korlibs/korge-next/pull/491](https://togithub.com/korlibs/korge-next/pull/491) - Added UntransformedSizeBmpCoordsWithInstance by [@soywiz-invideo](https://togithub.com/soywiz-invideo) in [https://github.com/korlibs/korge-next/pull/492](https://togithub.com/korlibs/korge-next/pull/492) - KDynamic and Dynamic2 was being autocompleted as they were exposing methods in a public object by [@soywiz-invideo](https://togithub.com/soywiz-invideo) in [https://github.com/korlibs/korge-next/pull/494](https://togithub.com/korlibs/korge-next/pull/494) - Do not include extra samples if DISABLED_EXTRA_KORGE_LIBS is enabled by [@soywiz-invideo](https://togithub.com/soywiz-invideo) in [https://github.com/korlibs/korge-next/pull/496](https://togithub.com/korlibs/korge-next/pull/496) - Adds com.soywiz.korio.test.assertEqualsJvmFileReference by [@soywiz-invideo](https://togithub.com/soywiz-invideo) in [https://github.com/korlibs/korge-next/pull/495](https://togithub.com/korlibs/korge-next/pull/495) - Allow Image to support custom shaders, support custom functions in shaders & added stexture2D function to the default shader repeat wrapping by default by [@soywiz-invideo](https://togithub.com/soywiz-invideo) in [https://github.com/korlibs/korge-next/pull/493](https://togithub.com/korlibs/korge-next/pull/493) - Add linux based android SDK locations to gradle by [@jobe-m](https://togithub.com/jobe-m) in [https://github.com/korlibs/korge-next/pull/497](https://togithub.com/korlibs/korge-next/pull/497) - Fix RGBA.withR/G/B/A clamping by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/499](https://togithub.com/korlibs/korge-next/pull/499) - Add MutableMargin and convert Margin into an interface, MarginInt and MutableMarginInt by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/500](https://togithub.com/korlibs/korge-next/pull/500) - Add support for FOR constant loops with (if break) in shaders, adds Unop Operand by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/501](https://togithub.com/korlibs/korge-next/pull/501) - Adds UISlider component by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/502](https://togithub.com/korlibs/korge-next/pull/502) - Support blending modes in lineBatcher & use BlendMode.INVERT in debug annotations by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/503](https://togithub.com/korlibs/korge-next/pull/503) - Fixes BatchBuilder2D.\_PROGRAMS thread local issue + fix order of PRE_ADD/POST_ADD programs by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/504](https://togithub.com/korlibs/korge-next/pull/504) - Faster BlurFilter + filter optimizations, fixes and improvements by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/505](https://togithub.com/korlibs/korge-next/pull/505) - Initial experimental SSL/TLS support on darwin: macos & ios by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/506](https://togithub.com/korlibs/korge-next/pull/506) - Linux SSL sockets using OpenSSL dynamically by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/508](https://togithub.com/korlibs/korge-next/pull/508) - Allows to seed extra random bytes by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/509](https://togithub.com/korlibs/korge-next/pull/509) - Delete samples/box2dv2 directory by [@SchneckeddeF](https://togithub.com/SchneckeddeF) in [https://github.com/korlibs/korge-next/pull/507](https://togithub.com/korlibs/korge-next/pull/507) - Proper --add-opens on runJvm by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/515](https://togithub.com/korlibs/korge-next/pull/515) - Execute BaseAwtGameWindow.DialogInterface methods with EventQueue.invokeLater by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/513](https://togithub.com/korlibs/korge-next/pull/513) - Fix jvmTest with newer versions of jvm by calling useJUnit + add jvmTestFix by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/510](https://togithub.com/korlibs/korge-next/pull/510) - Try to fix linux libraries not found on /lib /usr/lib + now ncurses or tinfo are not needed & openal & glut do not require dev versions, only runtime ones by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/519](https://togithub.com/korlibs/korge-next/pull/519) - Use filter border in View bounds + BlurFilter improvements by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/520](https://togithub.com/korlibs/korge-next/pull/520) - Some darwin SSL stability fixes by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/526](https://togithub.com/korlibs/korge-next/pull/526) - jvmTest on e2e-test on mac seems to be flaky due to timeout, by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/527](https://togithub.com/korlibs/korge-next/pull/527) - Optimize displaylink on Macos Native by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/530](https://togithub.com/korlibs/korge-next/pull/530) - Use esbuild instead of webpack when running samples by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/528](https://togithub.com/korlibs/korge-next/pull/528) - Initial GPU vector rendering as a sample by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/524](https://togithub.com/korlibs/korge-next/pull/524) - Fixes a crash on K/N linuxX64 (reproduced on 1.6.10 and 1.6.20-RC2), by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/531](https://togithub.com/korlibs/korge-next/pull/531) - Fix SSL sockets hanging in linux JVM by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/532](https://togithub.com/korlibs/korge-next/pull/532) - Fixes falsely reporting an issue with glGenVertexArrays by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/533](https://togithub.com/korlibs/korge-next/pull/533) - Make SortedMap implement Map interface. Not changing the name yet. by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/534](https://togithub.com/korlibs/korge-next/pull/534) - \[KorIM] Added QOI Image Format by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/535](https://togithub.com/korlibs/korge-next/pull/535) #### New Contributors - [@SchneckeddeF](https://togithub.com/SchneckeddeF) made their first contribution in [https://github.com/korlibs/korge-next/pull/507](https://togithub.com/korlibs/korge-next/pull/507) **Full Changelog**: https://github.com/korlibs/korge-next/compare/v2.6.3...v2.7.0 ### [`v2.6.3`](https://togithub.com/korlibs-archive/korge-next/releases/tag/v2.6.3) #### Major addition - Integrate Fleks ECS into korge + example by [@jobe-m](https://togithub.com/jobe-m) & [@Quillraven](https://togithub.com/Quillraven) in [https://github.com/korlibs/korge-next/pull/472](https://togithub.com/korlibs/korge-next/pull/472) + https://github.com/Quillraven/Fleks #### What's Changed - Added publishMobileRepo task by [@soywiz-invideo](https://togithub.com/soywiz-invideo) in [https://github.com/korlibs/korge-next/pull/463](https://togithub.com/korlibs/korge-next/pull/463) - Added missing publishIosX64PublicationToMavenRepository to publishMobileRepo by [@soywiz-invideo](https://togithub.com/soywiz-invideo) in [https://github.com/korlibs/korge-next/pull/464](https://togithub.com/korlibs/korge-next/pull/464) - Fixed macos packing by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/468](https://togithub.com/korlibs/korge-next/pull/468) - Be nicer to kotlin linters in iOS generated bootstrap by [@soywiz-invideo](https://togithub.com/soywiz-invideo) in [https://github.com/korlibs/korge-next/pull/469](https://togithub.com/korlibs/korge-next/pull/469) - Partial support for gradle cache configuration on the korge plugin by [@soywiz-invideo](https://togithub.com/soywiz-invideo) in [https://github.com/korlibs/korge-next/pull/470](https://togithub.com/korlibs/korge-next/pull/470) - Add missing task for publishMobileLocal & publishMobileRepo for korge-gradle-plugin by [@soywiz-invideo](https://togithub.com/soywiz-invideo) in [https://github.com/korlibs/korge-next/pull/471](https://togithub.com/korlibs/korge-next/pull/471) - Make tests headless by default by [@soywiz-invideo](https://togithub.com/soywiz-invideo) in [https://github.com/korlibs/korge-next/pull/474](https://togithub.com/korlibs/korge-next/pull/474) - Ignore hprof files by [@soywiz-invideo](https://togithub.com/soywiz-invideo) in [https://github.com/korlibs/korge-next/pull/475](https://togithub.com/korlibs/korge-next/pull/475) - Fixes alpha not being cleared on AG.clear() on macOS (black shadow issue) by [@soywiz-invideo](https://togithub.com/soywiz-invideo) in [https://github.com/korlibs/korge-next/pull/477](https://togithub.com/korlibs/korge-next/pull/477) - Adds View.filterScale by [@soywiz-invideo](https://togithub.com/soywiz-invideo) in [https://github.com/korlibs/korge-next/pull/476](https://togithub.com/korlibs/korge-next/pull/476) - Bump and unify gradle versions by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/480](https://togithub.com/korlibs/korge-next/pull/480) - HttpPortable optimizations, improvements and refactors by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/479](https://togithub.com/korlibs/korge-next/pull/479) - Disable additive tinting by default by [@soywiz-invideo](https://togithub.com/soywiz-invideo) in [https://github.com/korlibs/korge-next/pull/473](https://togithub.com/korlibs/korge-next/pull/473) - Adds runBlockingNoJs to gameWindow and stage by [@soywiz-invideo](https://togithub.com/soywiz-invideo) in [https://github.com/korlibs/korge-next/pull/481](https://togithub.com/korlibs/korge-next/pull/481) - Do not sleep on runBlockingNoJs if not required by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/482](https://togithub.com/korlibs/korge-next/pull/482) - Enable trilinear filtering when smoothing with mipmaps by default by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/484](https://togithub.com/korlibs/korge-next/pull/484) - Add some explicit types by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/483](https://togithub.com/korlibs/korge-next/pull/483) - View extension method for scaling view by maintaining aspecg ratio. by [@Kietyo](https://togithub.com/Kietyo) in [https://github.com/korlibs/korge-next/pull/448](https://togithub.com/korlibs/korge-next/pull/448) - \[Klock] Fixes am/pm on languages other than english by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/485](https://togithub.com/korlibs/korge-next/pull/485) - improve debugger by [@bognari](https://togithub.com/bognari) in [https://github.com/korlibs/korge-next/pull/442](https://togithub.com/korlibs/korge-next/pull/442) - Fix double dispatch issue by [@soywiz-invideo](https://togithub.com/soywiz-invideo) in [https://github.com/korlibs/korge-next/pull/487](https://togithub.com/korlibs/korge-next/pull/487) - Implement playing image animation only once by [@jobe-m](https://togithub.com/jobe-m) in [https://github.com/korlibs/korge-next/pull/488](https://togithub.com/korlibs/korge-next/pull/488) - Fixes some CancellationException paths not being handled & fixes server socket accept hang & unifies android and jvm AsyncSocket implementations by [@soywiz-invideo](https://togithub.com/soywiz-invideo) in [https://github.com/korlibs/korge-next/pull/489](https://togithub.com/korlibs/korge-next/pull/489) **Full Changelog**: https://github.com/korlibs/korge-next/compare/v2.6.2...v2.6.3 ### [`v2.6.2`](https://togithub.com/korlibs-archive/korge-next/releases/tag/v2.6.2) #### What's Changed - KorgeMultithreadedTest doesn't work without coroutines -mt by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/454](https://togithub.com/korlibs/korge-next/pull/454) - Change master -> main branch in github/worflows by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/455](https://togithub.com/korlibs/korge-next/pull/455) - Support compiling linux on windows by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/456](https://togithub.com/korlibs/korge-next/pull/456) - Do not print stacktrace on \_launch and \_async by default by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/457](https://togithub.com/korlibs/korge-next/pull/457) - Add new constructors for createHttpClient/Server/Endpoint with a block by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/458](https://togithub.com/korlibs/korge-next/pull/458) - Make AsyncServer.listen more resilient by using a supervisorScope to prevent cancellation propagation by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/459](https://togithub.com/korlibs/korge-next/pull/459) - Propagate socket address + add errorHandler to HttpServer by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/460](https://togithub.com/korlibs/korge-next/pull/460) - Restore ImageInfo.orientation ThreadLocal that was removed by mistake by [@soywiz-invideo](https://togithub.com/soywiz-invideo) in [https://github.com/korlibs/korge-next/pull/462](https://togithub.com/korlibs/korge-next/pull/462) **Full Changelog**: https://github.com/korlibs/korge-next/compare/v2.6.1...v2.6.2 ### [`v2.6.1`](https://togithub.com/korlibs-archive/korge-next/releases/tag/v2.6.1) - Fixes reading Spine 3.8 JSON: [https://github.com/korlibs/korge/issues/425](https://togithub.com/korlibs/korge/issues/425) - Fix BitmapCoords after rotation & transformation - Fix missing ThreadLocal in ImageInfo.orientation to support korge in a separate non-main thread - Bump kotlinx.coroutines and kotlinx.serialization versions **Full Changelog**: https://github.com/korlibs/korge-next/compare/v2.6.0...v2.6.1 ### [`v2.6.0`](https://togithub.com/korlibs-archive/korge-next/releases/tag/v2.6.0) #### What's Changed - Bump to Kotlin 1.6.10 again - Add material colors to Korge. by [@Kietyo](https://togithub.com/Kietyo) in [https://github.com/korlibs/korge-next/pull/447](https://togithub.com/korlibs/korge-next/pull/447) - Allow removing `android.enableJetifier=true` by [@soywiz-invideo](https://togithub.com/soywiz-invideo) in [https://github.com/korlibs/korge-next/pull/451](https://togithub.com/korlibs/korge-next/pull/451) - Simplify project structure so any source set has only one parent by [@soywiz-invideo](https://togithub.com/soywiz-invideo) in [https://github.com/korlibs/korge-next/pull/452](https://togithub.com/korlibs/korge-next/pull/452) - Check if View is a Circle when Shape is null by [@jobhh](https://togithub.com/jobhh) in [https://github.com/korlibs/korge-next/pull/450](https://togithub.com/korlibs/korge-next/pull/450) - Support ImageInfo.orientation, support EXIF reading ImageInfo, support reading EXIF from JPEG, PNG and HEIC/AVIF - MAJOR gradle project structure changes to not require cinterop commonization for now. Simplify project structure so any source set has only one parent - Try not to use androidx.appcompat either - Gradle: Reduce the number of warnings when building - Proper gradient transformations on Core Graphics - Fixes vector rendering with transformations on Android - Added Bitmap.resizedUpTo - Circumvent issues with cuplicate $catalog #### New Contributors - [@Kietyo](https://togithub.com/Kietyo) made their first contribution in [https://github.com/korlibs/korge-next/pull/447](https://togithub.com/korlibs/korge-next/pull/447) - [@jobhh](https://togithub.com/jobhh) made their first contribution in [https://github.com/korlibs/korge-next/pull/450](https://togithub.com/korlibs/korge-next/pull/450) **Full Changelog**: https://github.com/korlibs/korge-next/compare/v2.5.3...v2.6.0 ### [`v2.5.3`](https://togithub.com/korlibs-archive/korge-next/releases/tag/v2.5.3) #### What's Changed - Prepare for [https://github.com/korlibs/korim/issues/69](https://togithub.com/korlibs/korim/issues/69) by [@soywiz-invideo](https://togithub.com/soywiz-invideo) in [https://github.com/korlibs/korge-next/pull/445](https://togithub.com/korlibs/korge-next/pull/445) - fix gradle deprecation warnings by [@bognari](https://togithub.com/bognari) in [https://github.com/korlibs/korge-next/pull/441](https://togithub.com/korlibs/korge-next/pull/441) - Add ThreadLocal to Bitmap.transformMat - Fix e2e tests on macos by being less strict since renderer there is a software one producing slightly different results on some filters like the blur one - Fixes spurious bug rendering composed filters super small in some cases, specially in retina displays - Some fixes in Views and Korge constructor - Proper propagate ImageDecodingProps on readBitmap variants - Use kCGColorSpaceSRGB on Core Graphics renderer - Make View.renderToBitmap more resilient - Deprecate Bitmap.transformMat and remove u_TexTransformMatN uniform and matrix multiplication in fragment shaders. Remove unused texTransformMat. Move Bitmap.transformMat to Korvi instead - Add sample of using Korvi with KorGE benefiting from frame coordinates for transforms - Adds a way to chain filter addition to views - Try not to fail if LD included directory doesn't exist Relates to [https://github.com/korlibs/korge/issues/424](https://togithub.com/korlibs/korge/issues/424) - Fixes BMP 32-bit decoding, and BMP with extra header size Fixes [https://github.com/korlibs/korim/issues/71](https://togithub.com/korlibs/korim/issues/71) - Fixes TGA decoding - Try to fix Apple Core Graphics native image decoding - Unifies macos and ios/watchos/tvos image loading implementation using CG (Core Graphics), and supports rescaling while loading - Implements Android decodeHeaderInternal and decodeInternal with rescaling while loading support - Supports creating an ImageInfo from a lambda block - Adds NativeImageFormatProvider.decodeHeader to not require fully decoding the image to get information - Change how ImageDecodingProps works to make it compatible with both Android and iOS native thumbnailed decoding - Make readBitmap to propagate ImageDecodingProps correctly - Native support for resizing images while decoding Prepare for [https://github.com/korlibs/korim/issues/69](https://togithub.com/korlibs/korim/issues/69) ([https://github.com/korlibs/korge-next/pull/445](https://togithub.com/korlibs/korge-next/pull/445)) #### New Contributors - [@bognari](https://togithub.com/bognari) made their first contribution in [https://github.com/korlibs/korge-next/pull/441](https://togithub.com/korlibs/korge-next/pull/441) **Full Changelog**: https://github.com/korlibs/korge-next/compare/v2.5.2...v2.5.3 ### [`v2.5.2`](https://togithub.com/korlibs-archive/korge-next/releases/tag/v2.5.2) - Fixed RenderContext.renderToTexture rendering outside expected bounds - Add BitmapPaint.toString - Enable apple macos/ios/tvos/watchos native vector rendering - Fix clipping in native JS rendering - Detect retina displays on macos target - Limit debug macTrace for environment MAC_TRACE=true - Detect ARM macos host, for runNativeDebug/Release - Fix FpsOverlay message - Allow FixedSizeContainer with clipping to work when rotation is applied by using a RenderBuffer - Fix filters when the image width & height were between 65 and 128 - Include failing opengl reference test for 128x128 render buffers - Add reference test for scenario failing with filters of 128x128 **Full Changelog**: https://github.com/korlibs/korge-next/compare/v2.5.1...v2.5.2 ### [`v2.5.1`](https://togithub.com/korlibs-archive/korge-next/releases/tag/v2.5.1): 2.5.1 #### What's Changed - Fix final blit for composed filter by [@sahilbajaj](https://togithub.com/sahilbajaj) in [https://github.com/korlibs/korge-next/pull/440](https://togithub.com/korlibs/korge-next/pull/440) - Support publishing to custom repositories https://github.com/korlibs/korge-next/commit/dba1c2c41b8e4de53ca66ade646345f02cb4653b `KORLIBS_CUSTOM_MAVEN_USER`, `KORLIBS_CUSTOM_MAVEN_PASS`, `KORLIBS_CUSTOM_MAVEN_URL` - Fix lineHeight for some fonts like Pacifico.ttf - Fix Rectangle.toInt - Fix devicePixelRatio not being computed on AWT (for retina macOS displays) - \[Debug] Do not render debug text with filtering - Add reference test to verify View filters - Image flipping problem, exif rotation and flipping support [https://github.com/korlibs/korim/issues/59](https://togithub.com/korlibs/korim/issues/59) - Support VfsFile.readBitmapSliceWithOrientation providing a mutable atlas - Added mechanism to map primitive arrays into double arrays without boxing - Fixes FastByteArrayInputStream.skipToAlign **Full Changelog**: https://github.com/korlibs/korge-next/compare/v2.5.0...v2.5.1 ### [`v2.5.0`](https://togithub.com/korlibs-archive/korge-next/releases/tag/v2.5.0) - [KorVI: remove exoplayer](https://togithub.com/korlibs/korge-next/commit/6aea32aed03cd02dedd1d9096a120b365103af2d)[](https://togithub.com/soywiz-invideo) - Fixes Image decoding in android is blocking [#426](https://togithub.com/korlibs/korge-next/issues/426) **Full Changelog**: https://github.com/korlibs/korge-next/compare/v2.4.12...v2.5.0 ### [`v2.4.12`](https://togithub.com/korlibs-archive/korge-next/releases/tag/v2.4.12) - Add some missing ThreadLocal - Replaces println(e) with e.printStackTrace() in IosGameWindow - Fix KorviVideo.pause to not throw, but to do nothing by default - BmpCoords rotate -> rotated, flip -> flipped to be consistent with naming **Full Changelog**: https://github.com/korlibs/korge-next/compare/v2.4.11...v2.4.12 ### [`v2.4.11`](https://togithub.com/korlibs-archive/korge-next/releases/tag/v2.4.11) #### UI additions - Added UITreeView - Added UITooltipContainer - Added UIImage supporting scaleMode and contentAnchor - Added UIButtonToggleableGroup - Added UIGridFill #### What's Changed - Gradle 7.4 - Go back to Kotlin 1.5.31 - Use kotlinx.coroutines 1.5.2 to avoid issues with the intellij plugin - Bump kotlinx.coroutines to 1.6.0 by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/407](https://togithub.com/korlibs/korge-next/pull/407) - Adds support for loading a build.android.indirect.gradle from the main project folder by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/409](https://togithub.com/korlibs/korge-next/pull/409) - Support processing folders in ResourceProcessor & generate & use $catalog.json for resourcesVfs on JS by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/411](https://togithub.com/korlibs/korge-next/pull/411) - Fixed Point.Up and Point.Down by [@davjhan](https://togithub.com/davjhan) in [https://github.com/korlibs/korge-next/pull/422](https://togithub.com/korlibs/korge-next/pull/422) - Corrected transform order in VertexShader by [@Stechmuck](https://togithub.com/Stechmuck) in [https://github.com/korlibs/korge-next/pull/415](https://togithub.com/korlibs/korge-next/pull/415) - Add Base64url variant of Base64 encoding by [@gsteckman](https://togithub.com/gsteckman) in [https://github.com/korlibs/korge-next/pull/423](https://togithub.com/korlibs/korge-next/pull/423) - Some work on [https://github.com/korlibs/korge-next/issues/417](https://togithub.com/korlibs/korge-next/issues/417) : Move back krypto to its own repo by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/427](https://togithub.com/korlibs/korge-next/pull/427) - KorGE: Support using arbitrary texture coordinates for rendering images by [@soywiz-invideo](https://togithub.com/soywiz-invideo) in [https://github.com/korlibs/korge-next/pull/438](https://togithub.com/korlibs/korge-next/pull/438) - Documentation: Document how (resources|rootLocal|application|local|etc)Vfs should be used [#432](https://togithub.com/korlibs/korge-next/issues/432) - Added yarn.lock file - Fix macOS bug when embedding GLCanvas with KorGE on an existing AWT app (ie. intellij plugin) - Added GLCanvasWithKorge to simplify GLCanvas creation for korge added AwtSample - Make GLCanvasGameWindow exitProcessOnExit=false by default - Improve Korge.Config to simplify creation without requiring a Module - Create Base64.TABLE_URL and DECODE_URL in the same way as TABLE and DECODE arrays. - Verifies Extention for toDynamicLocalDate() - \[WIP] Support processing folders in ResourceProcessor & generate & use $catalog.json for resourcesVfs on JS - Adds support for loading a build.android.indirect.gradle from the main project folder - Add BmpCoordsWithT.name - KorVI: Backport: add support for ExoPlayer - KorGE: Backport: offer compatibility with raw shader by using functions VertexShader and FragmentShader - KorGE: Support using arbitrary texture coordinates for rendering images - KorGE: Backport: Make BatchBuilder2D support texTransformMat and flipRender (check) - KorGE: Backport: Added Korge.Config.constructedScene - KorGE: Backport: some extra ThreadLocal - KorGE: Backport: getUpdateComponents - KorGW: Backport: make FragmentShader.appending to not fail when using raw shaders - KorGW: Backport: Use transformMat from Bitmap and add experimental u_TexTransformMatN - KorGW: Support raw shader definition (GLSL) - KorVI: Backport: Add unimplemented pause method - KorIM: Backport: Add missing ThreadLocal + add Bitmap.transformMat + makes KorimExperimental a warning - KorIO: Backport: Make Resources extensible, and provide a way to subscribe to resource generation - Prevent JavaScript NodeJsRootPlugin reconfiguration failing on projects with multiple modules - Added DateFormat.format with KlockLocale - Add Bus.sendAsync - Added SyncBus and SyncGlobalBus - Use SensitivityWatchEventModifier.HIGH on JVM file watching - Simplify AsyncDestructor in AsyncInjector - Fixes [https://github.com/korlibs/klock/issues/187](https://togithub.com/korlibs/klock/issues/187) problem with millisecond padding in ISO8601.DATETIME_UTC_COMPLETE_FRACTION - Fixed [https://github.com/korlibs/korge-next/issues/435](https://togithub.com/korlibs/korge-next/issues/435): SVG renderer issue - Added BmpSlice.showImageAndWait - Added Anchor.toNamedString - Added ScaleMode.FILL alias - Added sample showing how to use UIImage - Added Container.toChildrenList #### New Contributors - [@davjhan](https://togithub.com/davjhan) made their first contribution in [https://github.com/korlibs/korge-next/pull/422](https://togithub.com/korlibs/korge-next/pull/422) - [@Stechmuck](https://togithub.com/Stechmuck) made their first contribution in [https://github.com/korlibs/korge-next/pull/415](https://togithub.com/korlibs/korge-next/pull/415) - [@gsteckman](https://togithub.com/gsteckman) made their first contribution in [https://github.com/korlibs/korge-next/pull/423](https://togithub.com/korlibs/korge-next/pull/423) **Full Changelog**: https://github.com/korlibs/korge-next/compare/v2.4.10...v2.4.11 ### [`v2.4.10`](https://togithub.com/korlibs-archive/korge-next/releases/tag/v2.4.10) - [Added missing publishIosSimulatorArm64](https://togithub.com/korlibs/korge-next/commit/b7611004ce35960d9876eca2cc4c1fd0ccab247c)[](https://togithub.com/soywiz) **Full Changelog**: https://github.com/korlibs/korge-next/compare/v2.4.9...v2.4.10 ### [`v2.4.9`](https://togithub.com/korlibs-archive/korge-next/releases/tag/v2.4.9) #### What's Changed - Kotlin 1.6.10 - Gradle to 7.3.1 - Add parallax data container and view with example code by [@jobe-m](https://togithub.com/jobe-m) in [https://github.com/korlibs/korge-next/pull/391](https://togithub.com/korlibs/korge-next/pull/391) - Fix parent dir path error in TiledMaps by [@jobe-m](https://togithub.com/jobe-m) in [https://github.com/korlibs/korge-next/pull/400](https://togithub.com/korlibs/korge-next/pull/400) - Implement storing bitmap font into atlas by [@jobe-m](https://togithub.com/jobe-m) in [https://github.com/korlibs/korge-next/pull/398](https://togithub.com/korlibs/korge-next/pull/398) - Make addUpdater configurable in ParallaxDataView by [@jobe-m](https://togithub.com/jobe-m) in [https://github.com/korlibs/korge-next/pull/397](https://togithub.com/korlibs/korge-next/pull/397) - Fix updating frame index in ImageAnimationView by [@jobe-m](https://togithub.com/jobe-m) in [https://github.com/korlibs/korge-next/pull/403](https://togithub.com/korlibs/korge-next/pull/403) - Fixes windows resource .res creation - Add support for iosSimulatorArm64 - Reduce gradle memory for each process - Fix NodeJS version to support macosArm64 - Actually compile using the Kotlin version from gradle.properties - Proper macosArm64 support on K/N - Some fixes of deprecated 1.6.0 APIs - Fix FastRandom global object mutating on K/N - Disable vis-assert (somehow preventing intellij from importing the project in some cases) - Fix esbuild to also work when no global node is installed, and install it globally - Fixes compress crashes on iOS when run in a coroutine [https://github.com/korlibs/korio/issues/152](https://togithub.com/korlibs/korio/issues/152) **Full Changelog**: https://github.com/korlibs/korge-next/compare/v2.4.8...v2.4.9 ### [`v2.4.8`](https://togithub.com/korlibs-archive/korge-next/releases/tag/v2.4.8) #### What's Changed - Huge improvement on I/O and compression in all targets, especially on K/N by [@soywiz](https://togithub.com/soywiz) in [https://github.com/korlibs/korge-next/pull/385](https://togithub.com/korlibs/korge-next/pull/385) - Implements WindowsRegistry in K/N Mingw and JVM. Fixes [https://github.com/korlibs/korge-next/issues/384](https://togithub.com/korlibs/korge-next/issues/384) - Adds CSV. Fixes [https://github.com/korlibs/korge-next/issues/319](https://togithub.com/korlibs/korge-next/issues/319) - Hugely reduced the overhead of LocalVfsNativeBase - Allow to debug and measure times for native deflate with an environment variable - Support passing a bufferSize to uncompressStream and compressStream - Make asyncStreamWriter use AsyncByteArrayDequeChunked by default - Add KorAtomic\*.toString - Allow ZipFile and ZipVfs to provide the zip name - Optimize BitReader to not use intermediary buffers, but write directly to the RingBuffer - Added AsyncByteArrayDequeChunked - Added ChunkedByteDeque - Optimize ArrayDeque - Optimize RingBuffer and add internal API for other classes to be able to be more performant - Fixes [https://github.com/korlibs/korge-next/issues/376](https://togithub.com/korlibs/korge-next/issues/376) implements GL and X11 fully dynamically on linux - Some work on [https://github.com/korlibs/korge-next/issues/376](https://togithub.com/korlibs/korge-next/issues/376) Make KorAU external library-free - Added LZO support. Fixes [https://github.com/korlibs/korio/issues/95](https://togithub.com/korlibs/korio/issues/95) . Implements LZO short header Fixes [https://github.com/korlibs/korio/issues/151](https://togithub.com/korlibs/korio/issues/151) - Fixes Native DynamicRootVfsVfs incorrect list(). [https://github.com/korlibs/korio/issues/138](https://togithub.com/korlibs/korio/issues/138) **Full Changelog**: https://github.com/korlibs/korge-next/compare/v2.4.7...v2.4.8 ### [`v2.4.7`](https://togithub.com/korlibs-archive/korge-next/releases/tag/v2.4.7) #### What's Changed - Render buffer dirty flag being set only when Renderbuffer's size changes by [@sahilbajaj](https://togithub.com/sahilbajaj) in [https://github.com/korlibs/korge-next/pull/367](https://togithub.com/korlibs/korge-next/pull/367) - Secondary thread iOS render by [@sahilbajaj](https://togithub.com/sahilbajaj) in [https://github.com/korlibs/korge-next/pull/368](https://togithub.com/korlibs/korge-next/pull/368) - Fixes [https://github.com/korlibs/korio/issues/128](https://togithub.com/korlibs/korio/issues/128) Specify what renameTo does and add rename method to VfsFile - Fixes [https://github.com/korlibs/korio/issues/111](https://togithub.com/korlibs/korio/issues/111) and improves unicode on windows - Fixes Files with UTF8 are not supported on Windows. [https://github.com/korlibs/korio/issues/136](https://togithub.com/korlibs/korio/issues/136) - Fixed [https://github.com/korlibs/korio/issues/147](https://togithub.com/korlibs/korio/issues/147) raw websockets against ws.js - Support initializing (registering events) WebSocketClient before the open event is triggered - Add --ignore-scripts to npm for security reasons https://blog.jetbrains.com/kotlin/2021/10/control-over-npm-dependencies-in-kotlin-js/ - Avoid crossinline in LocalVfsJvm.executeIo to avoid bugs + Try to avoid crossinline on android I/O - Move SSLProcessorJvm to JVM+Android - Added JvmNioAsyncClient + AsyncClientSSLProcessor for sockets on the JVM - Adds SSLProcessor and AsyncClientSSLProcessor to implement SSL on top of an existing AsyncClient - Fixes HttpClient does not read chunked encoding correctly on JVM target [https://github.com/korlibs/korio/issues/150](https://togithub.com/korlibs/korio/issues/150) - Proper GZIP.toString + name asyncStreamWriter when uncompressing/compressing - Some AsyncByteArrayDeque fixes - Add some extra members to ByteDeque and RingBuffer - Optimize AwtContext2dRenderer.applyState to not set the clip if it is equal to the previous, since setting clipping is costly in AWT - Fixes [https://github.com/korlibs/korge-next/issues/372](https://togithub.com/korlibs/korge-next/issues/372) Make GameCoroutineDispatcher ThreadSafe on the JVM - Gradle: Only add --add-opens=sun.awt.X11 on linux - Fixes \[BUG] Duble.bn doesn't work properly[https://github.com/korlibs/kbignum/issues/9](https://togithub.com/korlibs/kbignum/issues/9)9 - Proper fix for CVDisplayLinkCreateWithCGDisplay not found on Monterey - Add missing kotlin.native.concurrent import + change some things from ThreadLocal to SharedImmutable - Render buffer dirty being set only when texture size changed ([https://github.com/korlibs/korge-next/pull/367](https://togithub.com/korlibs/korge-next/pull/367)) - Some work on AG Software Renderer - Set game icon image on taskbar from `@appicon.png` - Bump androidBuildGradleVersion to support Java 17 **Full Changelog**: https://github.com/korlibs/korge-next/compare/v2.4.6...v2.4.7 ### [`v2.4.6`](https://togithub.com/korlibs-archive/korge-next/releases/tag/v2.4.6) #### What's Changed - Bump to Kotlin 1.6.0-RC - Updated Android API Level to 29 by [@jfbilodeau](https://togithub.com/jfbilodeau) in [https://github.com/korlibs/korge-next/pull/363](https://togithub.com/korlibs/korge-next/pull/363) - Removed line that disabled the load of texture for particle emitter by [@jfbilodeau](https://togithub.com/jfbilodeau) in [https://github.com/korlibs/korge-next/pull/364](https://togithub.com/korlibs/korge-next/pull/364) - Added VfsFile.mkdirs - Support GameWindow.close(exitCode: Int) - Added e2e tests on CI doing a screenshot verifying filters and basic rendering - Some filter effect fixes - Fix K/N Windows compilation by using ResourceHacker to replace .exe resources (check code comments for details) **Full Changelog**: https://github.com/korlibs/korge-next/compare/v2.4.5...v2.4.6 ### [`v2.4.5`](https://togithub.com/korlibs-archive/korge-next/releases/tag/v2.4.5) #### Improvements - Make not finding LD libraries on linux a warning, not a failing error - Some work on debugging UI components **Full Changelog**: https://github.com/korlibs/korge-next/compare/v2.4.4...v2.4.5 ### [`v2.4.4`](https://togithub.com/korlibs-archive/korge-next/releases/tag/v2.4.4) #### Additions - Korge: supports specifying the number of frames for SpriteAnimation + support reading by rows or by columns - Korim: support trying to get a color by name - Gradle: Try to check required libraries in linux (by using LD paths) #### Fixes - Support ParticleEmitterView particles rotation - Cursor jumps into incorrect position when deleting last char of UITextInput [#400](https://togithub.com/korlibs/korge/issues/400) - Korte: Supports reading properties without accessors - Some fixes supporting newer versions of Java `--add-opens` - Change UUID.randomUUID to use a SecureRandom implementation - Try to fix hangs on macbook when using filters with a Radeon PRO 5300M #### Optimizations - KBigNum: Use JS BigNum (when available) and JVM BigInteger - KBigNum: hugely optimized String to BigInt parsing - Make ParticleEmitterView use FSprites #### General improvements - Korte: Join JVM and Android implementations - Some gradle improvements - Unify linuxArm32 and linuxX64. Unify mingwX64 in mingwCommon - Improves ViewsForTesting and WString **Full Changelog**: https://github.com/korlibs/korge-next/compare/v2.4.3...v2.4.4 ### [`v2.4.3`](https://togithub.com/korlibs-archive/korge-next/releases/tag/v2.4.3) #### What's Changed - Update GL.def by [@conifer-dev](https://togithub.com/conifer-dev) in [https://github.com/korlibs/korge-next/pull/348](https://togithub.com/korlibs/korge-next/pull/348) - Fix AM/PM parsing bug when hour is 12, and ignore case of AM/PM in parsed string by [@CharlesKozel](https://togithub.com/CharlesKozel) in [https://github.com/korlibs/korge-next/pull/346](https://togithub.com/korlibs/korge-next/pull/346) - Added Dyn.toStringOrNull() by [@jfbilodeau](https://togithub.com/jfbilodeau) in [https://github.com/korlibs/korge-next/pull/354](https://togithub.com/korlibs/korge-next/pull/354) - Add SDL_ShowCursor and set cursor to hidden for SDL windows by [@ObsidianX](https://togithub.com/ObsidianX) in [https://github.com/korlibs/korge-next/pull/359](https://togithub.com/korlibs/korge-next/pull/359) #### New Contributors - [@conifer-dev](https://togithub.com/conifer-dev) made their first contribution in [https://github.com/korlibs/korge-next/pull/348](https://togithub.com/korlibs/korge-next/pull/348) - [@CharlesKozel](https://togithub.com/CharlesKozel) made their first contribution in [https://github.com/korlibs/korge-next/pull/346](https://togithub.com/korlibs/korge-next/pull/346) **Full Changelog**: https://github.com/korlibs/korge-next/compare/v2.4.2...v2.4.3 ### [`v2.4.2`](https://togithub.com/korlibs-archive/korge-next/releases/tag/v2.4.2) 🎊 KorGE 2.4.2 released! ChangelogConfiguration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.