I have released Gideros 2022.6 today, and while I delayed it, judging it was not worth, it still comes with a few interesting changes and additions.
To begin with, it includes a new collision plugin: cute_c2, an excellent contribution from
@rrraptor, and an update to ImGui, again from
@rrraptor.
Then it comes with experimental mipmapping support: you can enable it by adding mipmap=true in texture options when creating a Texture, and it allows Gideros to generate pre-downsampled versions of a larger texture and automatically select the best resolution when rendering.
On the audio side, audio engine used on Android and QT, OpenAL soft, is now also used on iOS, and comes with two new features:
- the ability to enable filtering (high-pass, low-pass, band-pass)
- the ability to select the left-right balance of a stereo source
Long term plan is to use OpenAL-Soft for all platforms and expose more and more features and effects to lua API.
There is a big change also about HTML export: exported code now makes use of native webassembly exceptions instead of emulated ones. This results in smaller and a lot faster code. There is a drawback though, it will work only on supported browsers: Firefox, Safari, Edge, Chrome at the time of writing this.
I have also been working on a very specific and still not fully implemented feature: styling support. It adds two calls to Sprite class: setStyle(table) and resolveStyle(reference,table). The first call has two effects: it attaches a style table to a Sprite and mark it as dirty. The second call resolves a style reference from the given style table or the one attached to the sprite.
This means that a Sprite can now be given style references instead of plain values, and Gideros will resolve those references to actual values thanks to style tables at runtime. Currently they are handled for Sprite layout constraints and layout parameters, and for Pixel color, but more may come in the future.
Things that are possible thanks to styles:
local style={
cellColor=vector(1,0,0,1) --cellColor is Red initially
}
for i=1,10 do
local p=Pixel.new(vector(0,0,0,0),10,10)
p:setX((i-1)*15)
p:setStyle(style)
p:setColor("cellColor")
stage:addChild(p)
end
Core.asyncCall(function()
Core.yield(3) --Wait 3s
style.cellColor=vector(0,1,0,1) --Set cellColor to green
for i=1,10 do
stage:getChildAt(i):setStyle(style)
end
end) |
Of course the above source code has little benefit from setting the color directly, but if you happen to have a complex sprite hierarchy and need to change styles at runtime, it can save a lot of hassle.
Full list of changes:
New features[gfx] Support texture mipmap
[audio] Allow filtering and balance setting in audio/openal
[sprite] Initial support for style references
[plugin/cute_c2] Add cute_c2 plugin
Improvements[font] Break characters is now considered 'latin', to avoid running through slow harfbuzz shaping when a text is truncated
[export/html] Use wasm exception catching: provides a huge boost but only major browsers support it
[export/apple] Use OpenAL soft backend for more features
[plugins/imgui] ImGui v1.87
[plugins/imgui] Removed ImPlot from sources
[plugins/imgui] Fixed fonts not being loaded correctly sometimes
[plugins/imgui] Fixed key codes sended to inputText callback
[plugins/imgui] Added new functions to inputText callback data
[plugins/imgui] Added new functions to resize callback data
[plugins/imgui] Renamed "Font:getFontSize()" to "Font:getSize()"
[plugins/imgui] Renamed "getBufDirty()" to "isBufDirty()"
Fixes[gfx] Sprite: fix self references when cloning
[gfx] Fix textfield crashing when created with a sample text
[math] Prevent normalize function from returning nan if vector is 0 length
[examples] added missing gtween.png for the examples
Download it from here:http://giderosmobile.com/download
Comments
https://deluxepixel.com/images/screenshots/gideros_stutter.mp4
https://deluxepixel.com
In the news I met such statistics from Steam (January 2022):
Windows 7 accounts for 4% of the platform's users.
If the report rate is set to 1000 per second then it freezes gideros.
Likes: MoKaLux, E1e5en
https://deluxepixel.com
Fragmenter - animated loop machine and IKONOMIKON - the memory game
Likes: MoKaLux
Fragmenter - animated loop machine and IKONOMIKON - the memory game
Likes: MoKaLux, E1e5en, SinisterSoft, hgy29
Fragmenter - animated loop machine and IKONOMIKON - the memory game
edit: sometimes it works some time it doesn't I will investigate and come back asap
edit2: FYI when you use find, you click next/previous that works, but when you use find click next/previous then click somewhere in your code and click previous that doesn't work. Click next works and then when you click previous that works again
I'm trying to compile gideros mobile on my linux, everything is fine following the guide on the downloads page. However when I went to execute the command "qmake ui.pro" in the ui directory it said that the directory and several luau files were missing (WARNING: Failure to find: ../luau/VM/...). As what was missing was obvious I scoured the internet for lual and found this one git (https://github.com/Roblox/luau). However even this git is missing:
WARNING: Failure to find: ../luau/VM/src/lint64lib.cpp
WARNING: Failure to find: ../luau/VM/src/liolib.cpp
WARNING: Failure to find: ../luau/Compiler/src/PseudoCode.cpp
Do you have the "luau" package you used to share?
I'm stuck on this part that compiles GiderosStudio. FontCreator and TexturePacker compile successfully.
Plus you may need https://github.com/gideros/lexilla and https://github.com/gideros/scintilla ???
They can be found in Gideros home repositories https://github.com/gideros
Likes: kinrpg
t was almost... I downloaded the files you indicated, I really need them, but I had to take them out of the directories as they were organized and put everything inside a new directory within the ui, all the files together lol.
But now he stopped at another part of the compilation. I checked the wiki and saw that MinGW is required to install QT, but in the linux version it doesn't come in the QT installer. However, I saw that it can be installed separately from the repository (mingw-w64)... Are these errors related to the lack of this package?
Looking at the error you get I think you are still using Qt 5, while Gideros now needs Qt 6.
Also late to the party for the missing dependencies above, but all you had to do was calling make -f scripts/Makefile.gid prep.repo to pull lexilla/scintilla/luau and others dependencies.
See https://wiki.gideros.rocks/index.php/Compiling_Gideros_Luau_Source, and specifically the commands to run after having modified the Makefile.def file:
make -f scripts/Makefile.gid prep.repo
make -f scripts/Makefile.gid qscintilla
make -f scripts/Makefile.gid qlexilla
make -f scripts/Makefile.gid versioning
Likes: MoKaLux, kinrpg
Likes: kinrpg
I need to document it in the wiki, will do asap (I need to thinker with it a little bit)
C:\Users\xxx\AppData\Local\Gideros\UserPlugins
require "CuteC2"
Likes: dreiko65
Likes: MoKaLux
Fragmenter - animated loop machine and IKONOMIKON - the memory game
when you place a break point (the red dot) and you click the debug button, you can then press the step into button and when you hover any variable it will give you its current value.
This workflow helped me find quite a not so obvious bug.
Likes: SinisterSoft
my issue is actually that currently zerobrane does not even give me realtime the print output, it only appears after stopping the run of the program. so even the most basic 'print' based debug workflow is not possible in it. yet for many reasons i'm so used to zbs by now that i don't want to use the gideros gui for writing code.
Fragmenter - animated loop machine and IKONOMIKON - the memory game
Trouble is I don't know ZBS enough to deal with ZBS integration part, and Paul doesn't know Gideros enough (I guess) to integrate the library I provided, plus that library may lack a few calls needed by ZBS.