So, it was already picked up by some of you, but here is the official announcement about Gideros 2022.3.
Most changes in this new version aim to increase performance in both general and specific contexts. Internally, Gideros now tries to cache has much data as possible instead of having to recompute everything on each frame. This include sprite boundaries, layouts, shaders, and some other internal variables, allowing higher draw throughput in general but also improved performance when querying object bounds, in Sprite:hitTestPoint() and in Sprite:getChdilrenFromPoint() which has been redesigned to be exponentially faster (it used to perform the same computations several times recursively).
Two more calls have been added to help with performances when lots of Sprite are either clipped or out of screen:
- Sprite:setCheckClip(boolean) to tell Gideros to check clipped children sprites and avoid drawing them (off by default)
- Sprite:setHiddenChildren({ ranges }) to tell Gideros to completely skip the rendering of one or several ranges of children in a single call. This is in effect similar to setting visibility of children sprites to hidden, but it is handled in the parent sprite in a more efficient fashion.
API-wise, most (maybe all) calls that accepted a color and an alpha parameter now accept a vector too (the new luau native type). If a vector is supplied, then the alpha parameter disappear, since the vector contains r,g,b and a values.
Luau engine was updated to latest code (
https://github.com/Roblox/luau/pull/408), I don't know yet the details of the changes, but I noticed they introduced a table.clone() function, which conflicted with the table.clone function I added to Gideros myself. I merged both API so now you can clone a table in Gideros by calling table.clone(source,destination,deep). 'source' would be the source table, destination an optional 'target' table, and 'deep' a boolean indicating if deep cloning should be performed (recursive). The function return the target table or the new table.
Also worth noting the upgrade of ReactPhysics3D plugin to 0.9.0. According the the author, this version is more efficient, more stable and by the look at the changes to the API, more suited to games.
Full list of changes:
Improvements[luau] Update to latest
[studio] Expand folded region if search result is inside
[studio] Slightly decreased highlighter delay
[studio] Types mismatch
[studio] Text editor update
[studio] Can now open json and xml in Studio
[texture] Add a way to disable alpha premultiplication
[particles] Accept vector for color
[core/layout] Add proportional filling and aspect ratio setting
[gfx/pixel] setColor allows vectors parameters + fix anchor point in some cases
[core/layout] Avoid wrappable textfield from constantly needing relayout
[core] Most color calls now accept vectors. Notable exception is Shape sprite
[core] Add a way to hide some childrens from the parent sprite context
[core] Speed up (non) rendering of clipped objects
[core] Keep state of sprite changes to enable caching for faster response
[core] Add application:enableDrawInfo() call
[core] Slower integration of mean frame time
[core] Improve rendering performance
[core] Improve Sprite.getChildrenAtPoint
[plugin/rp3d] Update to 0.9.0
[export/android] Add exported setting to comply with Android 32
[samples] Update more sample .gproj files
Fixes[studio] Fixed highlighter not being reset sometimes
[plugin/cbump] Fix destructor
[plugin/r3d] Fix reactphysics 3D destructors
[build/Linux] Fix linux build script
Download it from here:http://giderosmobile.com/download
Comments
Likes: MobAmuse
Fragmenter - animated loop machine and IKONOMIKON - the memory game
2022-03-09 10:22:48.649 3774-7317/? E/pageboostd: alp start : app commobileamusementsDrumHead
2022-03-09 10:22:48.650 1228-2369/? E/ActivityTaskManager: TouchDown intent received, starting ActiveLaunch
2022-03-09 10:22:48.650 3774-7317/? E/pageboostd: commobileamusementsDrumHead, amt 7983244 scnt 2 fcnt 0
2022-03-09 10:22:48.650 3774-7317/? E/pageboostd: commobileamusementsDrumHead, amt 0 scnt 0 fcnt 0
2022-03-09 10:22:48.650 3774-7317/? E/pageboostd: alp end : app commobileamusementsDrumHead data_amount 7983244
2022-03-09 10:22:48.689 7318-7318/? E/ements.DrumHea: Not starting debugger since process cannot load the jdwp agent.
2022-03-09 10:22:48.690 7318-7318/? E/USNET: USNET: appName: com.mobileamusements.DrumHead
2022-03-09 10:22:48.721 7318-7318/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.mobileamusements.DrumHead, PID: 7318
java.lang.RuntimeException: Unable to get provider com.google.android.gms.ads.MobileAdsInitProvider: java.lang.IllegalStateException:
******************************************************************************
* The Google Mobile Ads SDK was initialized incorrectly. AdMob publishers *
* should follow the instructions here: *
* https://googlemobileadssdk.page.link/admob-android-update-manifest *
* to add a valid App ID inside the AndroidManifest. *
* Google Ad Manager publishers should follow instructions here: *
* https://googlemobileadssdk.page.link/ad-manager-android-update-manifest. *
******************************************************************************
Likes: MobAmuse
Fragmenter - animated loop machine and IKONOMIKON - the memory game
It still has a problem with alpha blending as you can see and the touch works OK for me on both Bluestacks5 emulator and real Samsung device.
I since updated many of my paid only Fire TV and Google apps with the version before this and all updated so far went thru review OK. Just the problem with free with ads versions currently that I cannot update yet due to crashing on tests.
Likes: MobAmuse
Fragmenter - animated loop machine and IKONOMIKON - the memory game
Notes...
03/12/19: Must currently compile in Gideros 2019.10 against Google Play Services 16.0.0 for AppLovin to function on Android and not crash on boot.
...I tried upto 16.0.0 and it all works fine with Gideros 2022.3. At 19.0.0 thru 20.6.0 level on maven repo it causes the crash on boot with Ads plugin onboard.
Future me thanks past me again
Likes: MoKaLux, hgy29, SinisterSoft, hito9
Were you able to diagnose a bit more your alpha issue ? I found the stencil issue reported by @Yan, it could be a similar thing. If you can make a tiny test case, I'd be happy to investigate.
Likes: MobAmuse
The non-texture pack orange alpha blob displays correctly tho.
I also just noticed alpha blend not working around actual text fonts in my slots apps too.
Likes: SinisterSoft
Likes: MobAmuse, MoKaLux
Likes: MoKaLux, MobAmuse, SinisterSoft
[Edit: Perfect thanks!]
Likes: MoKaLux, hgy29
Likes: hgy29
In official docs:
// Destroy the rigid body
world->destroyRigidBody(body);
// Destroy the collision body and remove it from the world
world->destroyCollisionBody(body);
And in Gideros we use:
Destroys a rigid body in the dynamics world.
r3d.World:destroyBody(body)
I tested destroyBody with gideros example 3D Collisions and that
works fine(see edit below).I think there is a bug in r3d destroyBody
Here is a sample code from gideros (3d collisions) with added destroyBody which demonstrates the possible bug: https://github.com/mokalux/GIDEROS_LUAU_SAMPLES/tree/main/3D_Collisions
Sorry
Likes: MoKaLux
Likes: MoKaLux
PS: I pushed (pulled?) the 3d library again with the 3d-anim sample code. They should be fine (they are almost the same as the previous commit). I tested them and I am using them at the moment.
Likes: MoKaLux
At the same time this revert fixes the Studio crash that @MoKaLux 's "3DDemo1/assets/3dbase/3DObjLoader2.lua" edit.Edit: nope, This is not related to LexLua.cxx file. I will add the backtraces of the Studio crash.EDIT: Do you have any idea, how to set the Scintilla editor page margins(especially top margin)?
@MoKaLux Can you edit G3DFormat.lua line 157 and 176, you should replace with cross-platform path separator like below. I don't know there may be better solution.
There are some little platform-based issues. I will keep testing.
Likes: MoKaLux