Quick Links: Download Gideros Studio | Gideros Documentation | Gideros community chat | DONATE
Gideros 2025.10 — Gideros Forum

Gideros 2025.10

Hello,

A new Gideros version is available, mainly focused on performance improvements in specific cases.

Full change log:
Improvements
[gfx/sprite] new 'addChildrenAt' call to add several children to specific positions inside a sprite in one call (faster)
[gfx/particles] addParticles is much more efficient with a lot of particles
[export/html5] Change code to support WASM64 (not yet enabled)
[layout] getLayoutContsraints, getLayoutParameters and getLayoutInfo now accept a mask of needed values in return for faster processing
[styling] More color operations in styles

Fixes
[export/html5] Fix some existing files not replaced on export
[plugin/tts] Use correct lua context in callbacks
[Library] Fix 3D library shader

Download it from here:
http://giderosmobile.com/download
Tagged:
+1 -1 (+6 / -0 )Share on Facebook

Comments

  • MoKaLuxMoKaLux Member
    edited October 17
    awesome, thank you hgy29 :)
    will update the wiki to the best of my ability asap, God's willing!
    my growING GIDEROS github repositories: https://github.com/mokalux?tab=repositories
  • hgy29hgy29 Maintainer
    Yes @MoKaLux, I didn't explain how to use those new functions.
    Sprite:addChildrenAt() takes a single argument, a table with keys indicating the position where to add a new child, and values the children themselves.
    Exemple:
     parentSprite:addChildrenAt({1=child1, 3=child3})

    Likes: MoKaLux

    +1 -1 (+1 / -0 )Share on Facebook
  • hgy29hgy29 Maintainer
    Another example for Sprite:getLayoutParameters()
    -- Return a table containing only the computed cellSpacingY of the layout, instead of returning everything
    local lp=sprite:getLayoutParameters(true,Sprite.LayoutKeys.cellSpacingY)

    Likes: MoKaLux

    +1 -1 (+1 / -0 )Share on Facebook
  • MoKaLuxMoKaLux Member
    edited October 17
    hgy29 said:

    Exemple:

     parentSprite:addChildrenAt({1=child1, 3=child3})
    I tried but got this instead :|
    local sprite = Sprite.new()
    local pix = Pixel.new(0x0000ff, 1, 32, 32)
    pix2 = pix:clone()
    pix3 = pix:clone()
    pix2:setColor(0xff0000)
    pix3:setColor(0x00ff00)
    -- position
    pix:setPosition(1*32, 1*32)
    pix2:setPosition(1.5*32, 1.5*32)
    pix3:setPosition(2*32, 2*32)
    -- order
    sprite:addChild(pix)
    -- Expected '}' (to close '{' at column 22), got '='
    --parentSprite:addChildrenAt({1=child1, 3=child3}) -- not ok
    --sprite:addChildrenAt( { 2=pix3, 3=pix2 } ) -- not ok
    --sprite:addChildrenAt { 2=pix3, 3=pix2 } -- not ok
     
    local pixs = {}
    pixs[1] = pix3
    pixs[3] = pix2
    sprite:addChildrenAt( pixs ) -- OK
     
    stage:addChild(sprite)
    :)
    my growING GIDEROS github repositories: https://github.com/mokalux?tab=repositories
  • hgy29hgy29 Maintainer
    Example for new 'brightness' operator in style tables:
    local stageStyle={
    	baseColor=ColorValue(0.7,0.6,0,1)
    }
     
    local spriteStyle={
    	__Parent=stageStyle, --Inherits from 'stageStyle'
    	color1="=baseColor:brightness:1.1",
    	color2="=baseColor:brightness:0.8",
    }
    for x=1,4 do
    	for y=1,4 do
    		local gradient=Pixel.new(0xFFFFFF,1,32,32)
    		gradient:setPosition(x*32,y*32)
    		gradient:setStyle(spriteStyle)
    		gradient:setColor("color"..(1+((x+y)%2)))
    		stage:addChild(gradient)
    	end
    end
     
    stage:addEventListener(Event.MOUSE_DOWN,function() 
    	stageStyle.baseColor=ColorValue(math.random(),math.random(),math.random(),1)
    	stage:setStyle(stageStyle,true)
    end)

    Likes: MoKaLux

    +1 -1 (+1 / -0 )Share on Facebook
  • hgy29hgy29 Maintainer
    @MoKaLux,

    Sorry right syntax was probably:
     parentSprite:addChildrenAt({[1]=child1, [3]=child3})

    Likes: MoKaLux

    +1 -1 (+1 / -0 )Share on Facebook
  • hgy29hgy29 Maintainer
    There was a little bug in the binaries, I have updated them a few minutes ago. If you already downloaded them, the new style functions weren't completely correct.

    Likes: MoKaLux

    +1 -1 (+1 / -0 )Share on Facebook
  • hgy29hgy29 Maintainer
    Also, Sprite:addChildrenAt() can also be used like this:
    parent:addChildrenAt({ child1, child2, child3 })

    Likes: MoKaLux

    +1 -1 (+1 / -0 )Share on Facebook
  • MoKaLuxMoKaLux Member
    edited October 18
    ok I added a couple of the new functions (plus some more) :p :
    - Sprite:setHiddenChildren
    - Sprite:isOnStage
    - Sprite:setStyle
    - Sprite:resolveStyle
    - Sprite:addChildrenAt

    Those are missing because I couldn't wrap my head around them :/ :
    - sprite:setWorldAlign
    - sprite:updateStyle (is this one actually really easy?)
    - sprite:spriteToLocalMatrix

    Viva Gideros!

    Likes: hgy29

    my growING GIDEROS github repositories: https://github.com/mokalux?tab=repositories
    +1 -1 (+1 / -0 )Share on Facebook
  • hgy29hgy29 Maintainer
    Sprite:setWorldAlign(boolean) instructs Gideros to align the Sprite position on a screen pixel. This is useful for Textfields since it makes the text look more sharp.
    Sprite:spriteToLocalMatrix(otherSprite) returns a Matrix that transforms a coordinate in otherSprite space into a coordinate in current sprite space.

    Sprite:updateStyle() performs what need to be done when the style table of a Sprite has changed. It is called automatically by Gideros or when application:applyStyles() is called.
    It can be overriden by your own classes if needed, so it is lua visible so that you can call it in such cases.

    Likes: MoKaLux

    +1 -1 (+1 / -0 )Share on Facebook
  • MobAmuseMobAmuse Member
    edited October 21
    Using latest Android Studio Narwhal (API 36.1) and latest updates results in gradle build problems on Android export...

    Android Studio Narwhal 4 Feature Drop | 2025.1.4
    Build #AI-251.27812.49.2514.14217341, built on October 6, 2025

    ---

    [Incubating] Problems report is available at: file:///C:/Temp/Dweebs/tmp/build/reports/problems/problems-report.html

    Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.

    You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.

    For more on this, please refer to https://docs.gradle.org/8.13/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.

    FAILURE: Build completed with 2 failures.

    1: Task failed with an exception.
    -----------
    * Where:
    Build file 'C:\Temp\Dweebs\tmp\app\build.gradle' line: 4

    * What went wrong:
    A problem occurred evaluating project ':app'.
    > Value is null

    * Try:
    > Run with --stacktrace option to get the stack trace.
    > Run with --info or --debug option to get more log output.
    > Run with --scan to get full insights.
    > Get more help at https://help.gradle.org.
    ==============================================================================

    2: Task failed with an exception.
    -----------
    * What went wrong:
    A problem occurred configuring project ':app'.
    > Android Gradle Plugin: project ':app' does not specify `compileSdk` in build.gradle (C:\Temp\Dweebs\tmp\app\build.gradle).

    * Try:
    > Run with --stacktrace option to get the stack trace.
    > Run with --info or --debug option to get more log output.
    > Run with --scan to get full insights.
    > Get more help at https://help.gradle.org.
    ==============================================================================

    BUILD FAILED in 4s
    Exec returned: 1
    Export failed! See details above.
  • hgy29hgy29 Maintainer
    MobAmuse said:


    * What went wrong:
    A problem occurred evaluating project ':app'.
    > Value is null

    Gideros does set 'compileSdkVersion' in the build.gradle if it was able to find it. I will investigate further.

    Likes: MobAmuse, MoKaLux

    +1 -1 (+2 / -0 )Share on Facebook
  • Me too have the same problem.

    A problem occurred configuring project ':app'.
    > Android Gradle Plugin: project ':app' does not specify `compileSdk` in build.gradle
  • I found what's the problem.
    In export project you must fill Android SDK version (optional) too.

    Likes: MoKaLux, pie, MobAmuse

    +1 -1 (+3 / -0 )Share on Facebook
  • @test29 That works great thank you!

    Likes: MoKaLux

    +1 -1 (+1 / -0 )Share on Facebook
  • hgy29hgy29 Maintainer
    @MobAmuse, @test29,

    Problem spotted, I pushed a fix in Gideros for that
    +1 -1 (+4 / -0 )Share on Facebook
  • @hgy29 Awesome thank you :)

    Likes: MoKaLux

    +1 -1 (+1 / -0 )Share on Facebook
  • JohnJohn Member
    edited November 12
    When I export to html and run it in firefox / mac I get splash screen and spinning gideros icon. I get the following error: Loading failed for the with source “localhost:8888/gideros-wasm.js”. That file not exported. It doesn't work with previous version either so it is not a new problem.
  • JohnJohn Member
    edited November 12
    OK - Found a workaround that works. It happens when you check the enable PWA and compressed files. If you uncheck both of them it works. I haven't narrowed it down to specific checkbox as the cause but it one of those 2.

    Likes: MoKaLux

    +1 -1 (+1 / -0 )Share on Facebook
  • hgy29hgy29 Maintainer
    We should remove compression mode anyhow. Most web servers do perform gzip compression on the fly and some android devices tinker with the .png that holds compressed data.

    Likes: MoKaLux

    +1 -1 (+1 / -0 )Share on Facebook
Sign In or Register to comment.