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.
local mtlfile = mtl.normalMapFile:gsub("\\", "/")
mtl.normalMap=Texture.new(path..mtlfile,true,{ wrap=TextureBase.REPEAT, extend=false})
Thank you for a lots of contributions 3D Gideros features
There are some little platform-based issues. I will keep testing.
In the latest commit I proposed (https://github.com/gideros/gideros/pull/528/files) the code is slightly different, you pass the folder path with separator at the end like so: -- load the animated model local m2=buildGdx("models/theBoss/theBoss_mesh.json", { modelpath="models/theBoss/", } -- ps: I should've called it modelfolder :-( )
And now in G3DFormat.lua this is: if mtl.textureFile and not mtl.texture then local path = mtl.modelpath or "" mtl.texture=Texture.new(path..mtl.textureFile,true,{ wrap=TextureBase.REPEAT, extend=false}) end (same for normal map).
What do you think? - is it better to pass the folder path with the separator at the end? - will it work for any os?
Ok, I’ll merge them. Btw I saw you added assets to the 3D Anim sample code: are they compatible with Gideros license ?
I 99.99% of the time only use cc0 assets, some assets come with the license, others don't. For the plants and the mushrooms: -------------------------------------------------------------------------- Thank you for downloading "Cartoon forest grass and mushrooms " by toman.kirilov Released under Creative Commons Zero (Public Domain) Downloaded from http://www.blendswap.com/blends/view/4127 ################################################################### VERY IMPORTANT LICENSE INFORMATION: This blend has been released under Creative Commons Zero (Public Domain) This means that you can use it for any purpose you see fit, even commercially, as long as you respect these requirements: --There are no requirements for CC-0 licensed blends. ###################################################################
The bench and the tree are cc0 but no license attached (and I don't remember where I got those, I have like thousands cc0 models and didn't think of keeping track of each websites).
The man and the animation are from mixamo.com What type of projects can I create with Mixamo? https://helpx.adobe.com/creative-cloud/faq/mixamo-faq.html You can use both characters and animations royalty free for personal, commercial, and non-profit projects including: Incorporate characters into illustrations and graphic art. 3D print characters Create films Create video games
PS: I am sorry for the .gproj file I messed up, I did the same mistake in the latest pull request I indeed linked the project to the Library/folders BUT the project was not located in the Examples\Graphics3D thus the wrong number of ../../... I can redo the commit if you want Program Files is read only I cannot modify the 3d-anim sample directly in Program Files, even with read only disabled for files and folders
PS2: do you want me to include the cc0 license in the project and change the models which I don't have the license?
What do you think? - is it better to pass the folder path with the separator at the end? - will it work for any os?
In any case we have to convert the path that Blender produced.
Linux, Macosx, Android, Posix accept / separator. Using / as the path separator will work with Lua API on Windows too. We should add file:gsub("\\", "/") method.
@hgy29, editing "/3DDemo1/assets/3dbase/3DObjLoader2.lua" file produces different backtrace outputs. Interesting but it seems hard to find the cause of the problem.
Thread 15 "OutlineWorkerTh" received signal SIGILL, Illegal instruction. [Switching to Thread 0x7fffc6a3b640 (LWP 14202)] 0x000055555589bbc2 in Luau::get > (tv=0x0) at ../luau/Analysis/include/Luau/TypeVar.h:551 551 LUAU_ASSERT(tv); (gdb) bt #0 0x000055555589bbc2 in Luau::get > (tv=0x0) at ../luau/Analysis/include/Luau/TypeVar.h:551 #1 0x0000555555961f45 in operator() (__closure=0x7fffc6a39ab8, ty=0x0) at ../luau/Analysis/src/TypeVar.cpp:46 #2 0x000055555596223e in Luau::follow(Luau::TypeVar const*, std::function) (t=0x0, mapper=...) at ../luau/Analysis/src/TypeVar.cpp:76 #3 0x0000555555961ebf in Luau::follow (t=0x7fffb4041ec0) at ../luau/Analysis/src/TypeVar.cpp:38 #4 0x0000555555973240 in Luau::Unifier::tryUnify_ (this=0x7fffc6a39ec0, subTy=0x7fffb405edc0, superTy=0x7fffb4041ec0, isFunctionCall=false, isIntersection=false) at ../luau/Analysis/src/Unifier.cpp:373 #5 0x000055555597305f in Luau::Unifier::tryUnify (this=0x7fffc6a39ec0, subTy=0x7fffb405edc0, superTy=0x7fffb4041ec0, isFunctionCall=false, isIntersection=false) at ../luau/Analysis/src/Unifier.cpp:351 #6 0x0000555555923bec in Luau::TypeChecker::unify (this=0x555555f7a6d8, subTy=0x7fffb405edc0, superTy=0x7fffb4041ec0, location=..., options=...) at ../luau/Analysis/src/TypeInfer.cpp:4324 #7 0x0000555555923b48 in Luau::TypeChecker::unify (this=0x555555f7a6d8, subTy=0x7fffb405edc0, superTy=0x7fffb4041ec0, location=...) at ../luau/Analysis/src/TypeInfer.cpp:4318 #8 0x0000555555908f7f in Luau::TypeChecker::check (this=0x555555f7a6d8, scope=std::shared_ptr (use count 8, weak count 0) = {...}, ty=0x7fffb405edc0, funScope=std::shared_ptr (use count 4, weak count 0) = {...}, function=...) at ../luau/Analysis/src/TypeInfer.cpp:1148 #9 0x00005555559033a0 in operator() (__closure=0x7fffc6a3a400, stat=0x7fffb40265d0) at ../luau/Analysis/src/TypeInfer.cpp:404 #10 0x0000555555903cb0 in Luau::TypeChecker::checkBlock (this=0x555555f7a6d8, scope=std::shared_ptr (use count 8, weak count 0) = {...}, block=...) at ../luau/Analysis/src/TypeInfer.cpp:487 #11 0x00005555559022ee in Luau::TypeChecker::check (this=0x555555f7a6d8, module=..., mode=Luau::Mode::Nonstrict, environmentScope=std::optional> containing std::shared_ptr for more, q to quit, c to continue without paging--c ope> (use count 6, weak count 0) = {...}) at ../luau/Analysis/src/TypeInfer.cpp:268 #12 0x000055555581a9d6 in Luau::Frontend::check (this=0x555555f7a5d0, name="/home/me/Gideros Yeniler2/MOKALUX Examples/GIDEROS_LUAU_SAMPLES-main/3D-Anim/assets/3dbase/3DObjLoader.lua", optionOverride=std::optional [no contained value]) at ../luau/Analysis/src/Frontend.cpp:411 #13 0x0000555555601f3a in OutlineWorkerThread::run (this=0x5555561964a0) at outlinewidget.cpp:412 #14 0x00007ffff65cec6d in ?? () from /home/me/gideros/Build.Linux/libQt6Core.so.6 #15 0x00007ffff5d9c5c2 in start_thread () from /usr/lib/libc.so.6 #16 0x00007ffff5e21584 in clone () from /usr/lib/libc.so.6 (gdb)
Another one:
Thread 25 "OutlineWorkerTh" received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x7ffff09fa640 (LWP 15096)] 0x00005555558d4d89 in Luau::visit, Luau::Unifiable::Generic, Luau::Unifiable::Error, Luau::TypePack, Luau::VariadicTypePack>(Luau::TypePackStringifier::stringify(Luau::TypePackVar const*)::{lambda(auto:1&&)#1}&&, Luau::Variant, Luau::Unifiable::Generic, Luau::Unifiable::Error, Luau::TypePack, Luau::VariadicTypePack> const&) (vis=..., var=...) at ../luau/Analysis/include/Luau/Variant.h:260 260 tableVisit[var.typeId](vis, &var.storage); (gdb) bt #0 0x00005555558d4d89 in Luau::visit, Luau::Unifiable::Generic, Luau::Unifiable::Error, Luau::TypePack, Luau::VariadicTypePack>(Luau::TypePackStringifier::stringify(Luau::TypePackVar const*)::{lambda(auto:1&&)#1}&&, Luau::Variant, Luau::Unifiable::Generic, Luau::Unifiable::Error, Luau::TypePack, Luau::VariadicTypePack> const&) ( vis=..., var=...) at ../luau/Analysis/include/Luau/Variant.h:260 #1 0x00005555558d4ee7 in Luau::TypePackStringifier::stringify (this=0x7ffff09f92a0, tp=0x7fffcc117e30) at ../luau/Analysis/src/ToString.cpp:747 #2 0x00005555558ca667 in Luau::TypeVarStringifier::stringify (this=0x7ffff09f9440, tp=0x7fffcc117e30) at ../luau/Analysis/src/ToString.cpp:850 #3 0x00005555558d35cb in Luau::TypeVarStringifier::operator() (this=0x7ffff09f9440, ftv=...) at ../luau/Analysis/src/ToString.cpp:426 #4 0x00005555558d601e in Luau::TypeVarStringifier::stringify(Luau::TypeVar const*)::{lambda(auto:1&&)#1}::operator()(Luau::FunctionTypeVar const&) const (__closure=0x7ffff09f93d0, t=...) at ../luau/Analysis/src/ToString.cpp:250 #5 0x00005555558cc744 in Luau::fnVisitV, const Luau::FunctionTypeVar>(struct {...} &, std::conditional_t *) (vis=..., src=0x7fffcc064e18) at ../luau/Analysis/include/Luau/Variant.h:245 #6 0x00005555558d2834 in Luau::visit, Luau::Unifiable::Generic, Luau::Unifiable::Error, Luau::PrimitiveTypeVar, Luau::SingletonTypeVar, Luau::FunctionTypeVar, Luau::TableTypeVar, Luau::MetatableTypeVar, Luau::ClassTypeVar, Luau::AnyTypeVar, Luau::UnionTypeVar, Luau::IntersectionTypeVar, Luau::LazyTypeVar>(Luau::TypeVarStringifier::stringify(Luau::TypeVar const*)::{lambda(auto:1&&)#1}&&, Luau::Variant, Luau::Unifiable::Generic, Luau::Unifiable::Error, Luau::PrimitiveTypeVar, Luau::SingletonTypeVar, Luau::FunctionTypeVar, Luau::TableTypeVar, Luau::MetatableTypeVar, Luau::ClassTypeVar, Luau::AnyTypeVar, Luau::UnionTypeVar, Luau::IntersectionTypeVar, Luau::LazyTypeVar> const&) (vis=..., var=...) at ../luau/Analysis/include/Luau/Variant.h:260 #7 0x00005555558d297b in Luau::TypeVarStringifier::stringify (this=0x7ffff09f9440, tv=0x7fffcc064e10) at ../luau/Analysis/src/ToString.cpp:248 #8 0x00005555558cb238 in Luau::toStringDetailed (ty=0x7fffcc064e10, opts=...) at ../luau/Analysis/src/ToString.cpp:965 #9 0x00005555558cbb61 in Luau::toString[abi:cxx11](Luau::TypeVar const*, Luau::ToStringOptions const&) ( ty=0x7fffcc064e10, opts=...) at ../luau/Analysis/src/ToString.cpp:1075 #10 0x00005555557c4093 in Luau::toString[abi:cxx11](Luau::TypeVar const*) (ty=0x7fffcc064e10) at ../luau/Analysis/include/Luau/ToString.h:58 #11 0x000055555580fbdf in Luau::ErrorConverter::operator()[abi:cxx11](Luau::TypeMismatch const&) const ( this=0x7ffff09f9a57, tm=...) at ../luau/Analysis/src/Error.cpp:54 #12 0x000055555580cf5e in Luau::fnVisitR, Luau::TypeMismatch const> (vis=..., dst="", src=0x7fffcc0dfeb8) at ../luau/Analysis/include/Luau/Variant.h:239 #13 0x0000555555813620 in Luau::visit (vis=..., var=...) at ../luau/Analysis/include/Luau/Variant.h:268 #14 0x000055555580c032 in Luau::toString[abi:cxx11](Luau::TypeError const&) (error=...) --Type for more, q to quit, c to continue without paging--c at ../luau/Analysis/src/Error.cpp:674 #15 0x000055555560202a in OutlineWorkerThread::run (this=0x55555647bda0) at outlinewidget.cpp:416 #16 0x00007ffff65cec6d in ?? () from /home/me/gideros/Build.Linux/libQt6Core.so.6 #17 0x00007ffff5d9c5c2 in start_thread () from /usr/lib/libc.so.6 #18 0x00007ffff5e21584 in clone () from /usr/lib/libc.so.6 (gdb)
In any case we have to convert the path that Blender produced.
Linux, Macosx, Android, Posix accept / separator. Using / as the path separator will work with Lua API on Windows too. We should add file:gsub("\\", "/") method.
Good point, I will add this Sorry but I am confused, I need to check where we pick the actual textures from I believe it is from this function:
localfunction parsemtl(mtls,path,file,prefix,textureFolder,textureMap)ifnotio.open(path.."/"..file)thenprint("Material file not found:"..path.."/"..file)returnendlocal mtl={ texturew=0, textureh=0}for line inio.lines(path.."/"..file)do
line=line:gsub(" ", " ")-- fix for new blender 3.1 inserting 2 spaces instead of 1
fld=Split(line," ",10)
...
elseif fld[1]=="map_Kd"thentable.remove(fld,1)local f=table.concat(fld," ")if textureMap then f=textureMap[f]or f end
mtl.textureFile=(textureFolder or path).."/"..f
elseif fld[1]=="map_Bump"thentable.remove(fld,1)if fld[1]=="-bm"thentable.remove(fld,1)table.remove(fld,1)endlocal f=table.concat(fld," ")if textureMap then f=textureMap[f]or f end
mtl.normalMapFile=(textureFolder or path).."/"..f
endendend
@hgy29, editing "/3DDemo1/assets/3dbase/3DObjLoader2.lua" file produces different backtrace outputs. Interesting but it seems hard to find the cause of the problem.
Thread 15 "OutlineWorkerTh" received signal SIGILL, Illegal instruction. [Switching to Thread 0x7fffc6a3b640 (LWP 14202)] 0x000055555589bbc2 in Luau::get > (tv=0x0) at ../luau/Analysis/include/Luau/TypeVar.h:551 551 LUAU_ASSERT(tv); (gdb) bt #0 0x000055555589bbc2 in Luau::get > (tv=0x0) at ../luau/Analysis/include/Luau/TypeVar.h:551 #1 0x0000555555961f45 in operator() (__closure=0x7fffc6a39ab8, ty=0x0) at ../luau/Analysis/src/TypeVar.cpp:46 #2 0x000055555596223e in Luau::follow(Luau::TypeVar const*, std::function) (t=0x0, mapper=...) at ../luau/Analysis/src/TypeVar.cpp:76 #3 0x0000555555961ebf in Luau::follow (t=0x7fffb4041ec0) at ../luau/Analysis/src/TypeVar.cpp:38 #4 0x0000555555973240 in Luau::Unifier::tryUnify_ (this=0x7fffc6a39ec0, subTy=0x7fffb405edc0, superTy=0x7fffb4041ec0, isFunctionCall=false, isIntersection=false) at ../luau/Analysis/src/Unifier.cpp:373 #5 0x000055555597305f in Luau::Unifier::tryUnify (this=0x7fffc6a39ec0, subTy=0x7fffb405edc0, superTy=0x7fffb4041ec0, isFunctionCall=false, isIntersection=false) at ../luau/Analysis/src/Unifier.cpp:351 #6 0x0000555555923bec in Luau::TypeChecker::unify (this=0x555555f7a6d8, subTy=0x7fffb405edc0, superTy=0x7fffb4041ec0, location=..., options=...) at ../luau/Analysis/src/TypeInfer.cpp:4324 #7 0x0000555555923b48 in Luau::TypeChecker::unify (this=0x555555f7a6d8, subTy=0x7fffb405edc0, superTy=0x7fffb4041ec0, location=...) at ../luau/Analysis/src/TypeInfer.cpp:4318 #8 0x0000555555908f7f in Luau::TypeChecker::check (this=0x555555f7a6d8, scope=std::shared_ptr (use count 8, weak count 0) = {...}, ty=0x7fffb405edc0, funScope=std::shared_ptr (use count 4, weak count 0) = {...}, function=...) at ../luau/Analysis/src/TypeInfer.cpp:1148 #9 0x00005555559033a0 in operator() (__closure=0x7fffc6a3a400, stat=0x7fffb40265d0) at ../luau/Analysis/src/TypeInfer.cpp:404 #10 0x0000555555903cb0 in Luau::TypeChecker::checkBlock (this=0x555555f7a6d8, scope=std::shared_ptr (use count 8, weak count 0) = {...}, block=...) at ../luau/Analysis/src/TypeInfer.cpp:487 #11 0x00005555559022ee in Luau::TypeChecker::check (this=0x555555f7a6d8, module=..., mode=Luau::Mode::Nonstrict, environmentScope=std::optional> containing std::shared_ptr for more, q to quit, c to continue without paging--c ope> (use count 6, weak count 0) = {...}) at ../luau/Analysis/src/TypeInfer.cpp:268 #12 0x000055555581a9d6 in Luau::Frontend::check (this=0x555555f7a5d0, name="/home/me/Gideros Yeniler2/MOKALUX Examples/GIDEROS_LUAU_SAMPLES-main/3D-Anim/assets/3dbase/3DObjLoader.lua", optionOverride=std::optional [no contained value]) at ../luau/Analysis/src/Frontend.cpp:411 #13 0x0000555555601f3a in OutlineWorkerThread::run (this=0x5555561964a0) at outlinewidget.cpp:412 #14 0x00007ffff65cec6d in ?? () from /home/me/gideros/Build.Linux/libQt6Core.so.6 #15 0x00007ffff5d9c5c2 in start_thread () from /usr/lib/libc.so.6 #16 0x00007ffff5e21584 in clone () from /usr/lib/libc.so.6 (gdb)
Another one:
Thread 25 "OutlineWorkerTh" received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x7ffff09fa640 (LWP 15096)] 0x00005555558d4d89 in Luau::visit, Luau::Unifiable::Generic, Luau::Unifiable::Error, Luau::TypePack, Luau::VariadicTypePack>(Luau::TypePackStringifier::stringify(Luau::TypePackVar const*)::{lambda(auto:1&&)#1}&&, Luau::Variant, Luau::Unifiable::Generic, Luau::Unifiable::Error, Luau::TypePack, Luau::VariadicTypePack> const&) (vis=..., var=...) at ../luau/Analysis/include/Luau/Variant.h:260 260 tableVisit[var.typeId](vis, &var.storage); (gdb) bt #0 0x00005555558d4d89 in Luau::visit, Luau::Unifiable::Generic, Luau::Unifiable::Error, Luau::TypePack, Luau::VariadicTypePack>(Luau::TypePackStringifier::stringify(Luau::TypePackVar const*)::{lambda(auto:1&&)#1}&&, Luau::Variant, Luau::Unifiable::Generic, Luau::Unifiable::Error, Luau::TypePack, Luau::VariadicTypePack> const&) ( vis=..., var=...) at ../luau/Analysis/include/Luau/Variant.h:260 #1 0x00005555558d4ee7 in Luau::TypePackStringifier::stringify (this=0x7ffff09f92a0, tp=0x7fffcc117e30) at ../luau/Analysis/src/ToString.cpp:747 #2 0x00005555558ca667 in Luau::TypeVarStringifier::stringify (this=0x7ffff09f9440, tp=0x7fffcc117e30) at ../luau/Analysis/src/ToString.cpp:850 #3 0x00005555558d35cb in Luau::TypeVarStringifier::operator() (this=0x7ffff09f9440, ftv=...) at ../luau/Analysis/src/ToString.cpp:426 #4 0x00005555558d601e in Luau::TypeVarStringifier::stringify(Luau::TypeVar const*)::{lambda(auto:1&&)#1}::operator()(Luau::FunctionTypeVar const&) const (__closure=0x7ffff09f93d0, t=...) at ../luau/Analysis/src/ToString.cpp:250 #5 0x00005555558cc744 in Luau::fnVisitV, const Luau::FunctionTypeVar>(struct {...} &, std::conditional_t *) (vis=..., src=0x7fffcc064e18) at ../luau/Analysis/include/Luau/Variant.h:245 #6 0x00005555558d2834 in Luau::visit, Luau::Unifiable::Generic, Luau::Unifiable::Error, Luau::PrimitiveTypeVar, Luau::SingletonTypeVar, Luau::FunctionTypeVar, Luau::TableTypeVar, Luau::MetatableTypeVar, Luau::ClassTypeVar, Luau::AnyTypeVar, Luau::UnionTypeVar, Luau::IntersectionTypeVar, Luau::LazyTypeVar>(Luau::TypeVarStringifier::stringify(Luau::TypeVar const*)::{lambda(auto:1&&)#1}&&, Luau::Variant, Luau::Unifiable::Generic, Luau::Unifiable::Error, Luau::PrimitiveTypeVar, Luau::SingletonTypeVar, Luau::FunctionTypeVar, Luau::TableTypeVar, Luau::MetatableTypeVar, Luau::ClassTypeVar, Luau::AnyTypeVar, Luau::UnionTypeVar, Luau::IntersectionTypeVar, Luau::LazyTypeVar> const&) (vis=..., var=...) at ../luau/Analysis/include/Luau/Variant.h:260 #7 0x00005555558d297b in Luau::TypeVarStringifier::stringify (this=0x7ffff09f9440, tv=0x7fffcc064e10) at ../luau/Analysis/src/ToString.cpp:248 #8 0x00005555558cb238 in Luau::toStringDetailed (ty=0x7fffcc064e10, opts=...) at ../luau/Analysis/src/ToString.cpp:965 #9 0x00005555558cbb61 in Luau::toString[abi:cxx11](Luau::TypeVar const*, Luau::ToStringOptions const&) ( ty=0x7fffcc064e10, opts=...) at ../luau/Analysis/src/ToString.cpp:1075 #10 0x00005555557c4093 in Luau::toString[abi:cxx11](Luau::TypeVar const*) (ty=0x7fffcc064e10) at ../luau/Analysis/include/Luau/ToString.h:58 #11 0x000055555580fbdf in Luau::ErrorConverter::operator()[abi:cxx11](Luau::TypeMismatch const&) const ( this=0x7ffff09f9a57, tm=...) at ../luau/Analysis/src/Error.cpp:54 #12 0x000055555580cf5e in Luau::fnVisitR, Luau::TypeMismatch const> (vis=..., dst="", src=0x7fffcc0dfeb8) at ../luau/Analysis/include/Luau/Variant.h:239 #13 0x0000555555813620 in Luau::visit (vis=..., var=...) at ../luau/Analysis/include/Luau/Variant.h:268 #14 0x000055555580c032 in Luau::toString[abi:cxx11](Luau::TypeError const&) (error=...) --Type for more, q to quit, c to continue without paging--c at ../luau/Analysis/src/Error.cpp:674 #15 0x000055555560202a in OutlineWorkerThread::run (this=0x55555647bda0) at outlinewidget.cpp:416 #16 0x00007ffff65cec6d in ?? () from /home/me/gideros/Build.Linux/libQt6Core.so.6 #17 0x00007ffff5d9c5c2 in start_thread () from /usr/lib/libc.so.6 #18 0x00007ffff5e21584 in clone () from /usr/lib/libc.so.6 (gdb)
It is always due to luau type checking. I think their code has trouble parsing the same file again in some cases. If you disable type checking, those crashes should disappear. On the other hand, their code is so complex that I am reluctant to 'debug' it.
In any case we have to convert the path that Blender produced.
Linux, Macosx, Android, Posix accept / separator. Using / as the path separator will work with Lua API on Windows too. We should add file:gsub("\\", "/") method.
Good point, I will add this
I will come back soon
Ok, after checking, I can tell that we retrieve the information from the .mtl file in the parsemtl function from 3DObjLoader.lua:
localfunction parsemtl(mtls,path,file,prefix,textureFolder,textureMap)ifnotio.open(path.."/"..file)thenprint("Material file not found:"..path.."/"..file)returnendlocal mtl={}for line inio.lines(path.."/"..file)do
...
elseif fld[1]=="map_Kd"thentable.remove(fld,1)local f=table.concat(fld," ")if textureMap then f=textureMap[f]or f end
mtl.textureFile=(textureFolder or path).."/"..f
print("*", mtl.textureFile)elseif fld[1]=="map_Bump"thentable.remove(fld,1)
...
local f=table.concat(fld," ")if textureMap then f=textureMap[f]or f end
mtl.normalMapFile=(textureFolder or path).."/"..f
print("**", mtl.normalMapFile)endendend
And the output has a mix of / and \ : - print("*", mtl.textureFile) => "* models/player1/tex\StarSparrow_Orange.png" - print("**", mtl.normalMapFile) => "** models/player1/tex\StarSparrow_Normal.png"
And that works for me on windows 10 without changing the code Doesn't this work on mac/linux? Lua may be doing some magic trick behind the scene?
I haven't built android apk with new luau, I will do it later today and try to fix the code if that doesn't work on android. @hito9 your fix worked for animated models and .obj models :
if mtl.textureFile andnot mtl.texture thenlocal path = mtl.modelpath or""
mtl.textureFile =string.gsub(mtl.textureFile, "\\", "/")
mtl.texture=Texture.new(path..mtl.textureFile,true,{ wrap=TextureBase.REPEAT, extend=false})
...
end
The problem is with .glb files and their embedded textures (problem with file path). I am trying to fix it. Can you test on linux without the .glb models and your fix to G3DFormat.lua?
PS: on my android (J6) the demo is lagging a bit (one should remove the skybox and use low poly models)
@hgy29 as i said before i have been studying C++ and Scintilla, i made some imporvements like * auto paste the selection to findDialog and replaceDialog search line * add word wrap icon to Toolbar (per page functional) * add long line indicator checkbox, colordialog, position layout to preferencesDialog * add whitepace checkbox, colordialog, size layout * add Texture Packer and Font Creator menu entries to Tools menu * gotoLine fix with setting visible line in available range (also for Find/Replace Dialogs) * add "add Toolbar to Menu" checkbox * (ImageMagick) command - mogrified -strip examples images avoiding many useless warnings during build/debuggins times * add Gtween pic for example projects(StartPage Widget) * fix style for txt files * edit: changed "Replace all" words from top line to bottom line with one click
TODO: cross platform icons, set color word with color-picker from Toolbar button, QDark Theme first line invasion, lexers() keywords for colorizing(default values) , F3/Shift+F3 stored search pattern improvements, ShortCuts editor, playing media files on tree widgets, change indic box style for braces(hey you @rrraptor , where are you:)), fix a few bugs
Should we add obj,tmx,mtl,plist extensions?
Unfortunately, I am not qualified for some features for now. I don't promise that I can complete it. There are some annoying compatibility issues(deprecated qt5 methods). I don't know how to handle em.
Woaw, those look awesome please note there is a little bug with search/replace, it doesn't replace words in the very first line. For example if you find/replace the class name, it won't replace the class name in the very first line.
Found a strange new crash bug which affects Android target 32 .aab exported app with ads (both AppLovin & Unity) onboard. If I export as .apk and run on BlueStacks emulator all is OK. If I export as .aab and run on real device it crashes on boot.
I suspect AppLovin and Unity ads libs support needs updating but that is just my best guess at this stage?
--- Logcat ---
2022-04-08 17:29:31.520 32504-608/? E/AndroidRuntime: FATAL EXCEPTION: ConnectivityThread Process: com.mobileamusements.AquaSlots2TreasureIslandFREE, PID: 32504 java.lang.SecurityException: getDataNetworkTypeForSubscriber at android.os.Parcel.createExceptionOrNull(Parcel.java:2437) at android.os.Parcel.createException(Parcel.java:2421) at android.os.Parcel.readException(Parcel.java:2404) at android.os.Parcel.readException(Parcel.java:2346) at com.android.internal.telephony.ITelephony$Stub$Proxy.getNetworkTypeForSubscriber(ITelephony.java:9300) at android.telephony.TelephonyManager.getNetworkType(TelephonyManager.java:3550) at android.telephony.TelephonyManager.getNetworkType(TelephonyManager.java:3514) at com.unity3d.services.core.connectivity.ConnectivityMonitor.connectionStatusChanged(ConnectivityMonitor.java:162) at com.unity3d.services.core.connectivity.ConnectivityNetworkCallback.onCapabilitiesChanged(ConnectivityNetworkCallback.java:48)
OK so tried updating Gideros ads.plugin to latest Unity Ads SDK to 4.1.0 and put that SDK in the Gideros cache too. Gideros export then complains min SDK should be 19 not 16, so I updated the Gideros build gradle template so min SDK = 19. I then get this on export (see below)...
--- .APK export test output @ min SDK=19 and target SDK=32 using Unity Ads 4.1.0 ---
> Task :app:compileReleaseJavaWithJavac FAILED C:\Temp\AquaSlots2\tmp\app\src\main\java\com\giderosmobile\android\plugins\ads\frameworks\AdsUnity.java:12: error: cannot find symbol public class AdsUnity implements AdsInterface, IUnityAdsListener { ^ symbol: class IUnityAdsListener C:\Temp\AquaSlots2\tmp\app\src\main\java\com\giderosmobile\android\plugins\ads\frameworks\AdsUnity.java:128: error: cannot find symbol public void onUnityAdsFinish(String s, UnityAds.FinishState finishState) { ^ symbol: class FinishState location: class UnityAds C:\Temp\AquaSlots2\tmp\app\src\main\java\com\giderosmobile\android\plugins\ads\frameworks\AdsUnity.java:138: error: cannot find symbol public void onUnityAdsError(UnityAds.UnityAdsError unityAdsError, String s) { ^ symbol: class UnityAdsError location: class UnityAds C:\Temp\AquaSlots2\tmp\app\src\main\java\com\giderosmobile\android\plugins\ads\frameworks\AdsUnity.java:63: error: no suitable method found for initialize(Activity,String,AdsUnity) UnityAds.initialize(sActivity.get(), param.get(0), this); ^ method UnityAds.initialize(Context,String,IUnityAdsInitializationListener) is not applicable (argument mismatch; AdsUnity cannot be converted to IUnityAdsInitializationListener) method UnityAds.initialize(Context,String,boolean) is not applicable (argument mismatch; AdsUnity cannot be converted to boolean) C:\Temp\AquaSlots2\tmp\app\src\main\java\com\giderosmobile\android\plugins\ads\frameworks\AdsUnity.java:117: error: method does not override or implement a method from a supertype @Override ^ C:\Temp\AquaSlots2\tmp\app\src\main\java\com\giderosmobile\android\plugins\ads\frameworks\AdsUnity.java:122: error: method does not override or implement a method from a supertype @Override ^ C:\Temp\AquaSlots2\tmp\app\src\main\java\com\giderosmobile\android\plugins\ads\frameworks\AdsUnity.java:127: error: method does not override or implement a method from a supertype @Override ^ C:\Temp\AquaSlots2\tmp\app\src\main\java\com\giderosmobile\android\plugins\ads\frameworks\AdsUnity.java:129: error: cannot find symbol if (finishState== UnityAds.FinishState.COMPLETED) ^ symbol: variable FinishState location: class UnityAds C:\Temp\AquaSlots2\tmp\app\src\main\java\com\giderosmobile\android\plugins\ads\frameworks\AdsUnity.java:131: error: cannot find symbol else if (finishState== UnityAds.FinishState.SKIPPED) ^ symbol: variable FinishState location: class UnityAds C:\Temp\AquaSlots2\tmp\app\src\main\java\com\giderosmobile\android\plugins\ads\frameworks\AdsUnity.java:133: error: cannot find symbol else if (finishState== UnityAds.FinishState.ERROR) ^ symbol: variable FinishState location: class UnityAds C:\Temp\AquaSlots2\tmp\app\src\main\java\com\giderosmobile\android\plugins\ads\frameworks\AdsUnity.java:137: error: method does not override or implement a method from a supertype @Override ^ Note: Some input files use or override a deprecated API. Note: Recompile with -Xlint:deprecation for details. Note: Some input files use unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details. Note: Some messages have been simplified; recompile with -Xdiags:verbose to get full output 11 errors
Conclusion: I also went on to test a fully updated app that only uses AppLovin Max Ads and it all worked fine. It may mean then that I drop Unity Ads altogether from my ads waterfall/rotator in the run up to November 2022 to keep them all alive perhaps.
@hgy29 as i said before i have been studying C++ and Scintilla, i made some imporvements like * auto paste the selection to findDialog and replaceDialog search line * add word wrap icon to Toolbar (per page functional) * add long line indicator checkbox, colordialog, position layout to preferencesDialog * add whitepace checkbox, colordialog, size layout * add Texture Packer and Font Creator menu entries to Tools menu * gotoLine fix with setting visible line in available range (also for Find/Replace Dialogs) * add "add Toolbar to Menu" checkbox * (ImageMagick) command - mogrified -strip examples images avoiding many useless warnings during build/debuggins times * add Gtween pic for example projects(StartPage Widget) * fix style for txt files * edit: changed "Replace all" words from top line to bottom line with one click ...
Hi hito9 hope you are doing fine and other gideros people too, I wish all the best for you all and humanity in general hito9 could you push your commits to gideros GH? I am trying to "play" with it but I need some guidance and I believe your commit could help
please note there is a little bug with search/replace, it doesn't replace words in the very first line. For example if you find/replace the class name, it won't replace the class name in the very first line.
Fixed
But i'm so busy these days. I may ask a pull request for some of the commits 3-4 days later. See you
Great to see that you guys are improving Gideros Studio, I am on holidays this week but I have been working on (and yet to finish) two new graphic features: Sprite cloning and 3D particles. I am eager to see what you will do with them.
@hgy29 I made a pull request for some changes. The other improvements is WIP. (Syntax Color Editor, Keymap Editor, media(assets) playing feature) @MoKaLux I am the noob Some changes take time. i hope it helps, Sorry if I reply late.
@hito9 I built your gideros and it seems to work fine your color panel addition is awesome.
One minor issue I have on my side is Highlighter doesn't work (please note it was working with gideros 2022.1.3 but not after that). I tried with different themes, options, ...
@hito9 I built your gideros and it seems to work fine your color panel addition is awesome.
glad to see working well But the all user themes are not compatible with Qt6 widgets like the color dialog. Mumble and QMC2 themes are relatively good. QDark theme causes the following issue that @rrraptor had mentioned before
One minor issue I have on my side is Highlighter doesn't work (please note it was working with gideros 2022.1.3 but not after that). I tried with different themes, options, ...
Yes and the code folding doesn't work , we need to review @rrraptor contributions. Thank you too, for your time and feedbacks
Just to be sure I experience the same thing: for me code folding does work, but symbols in the folding margin aren't drawn correctly. Is this what you see too ?
Just to be sure I experience the same thing: for me code folding does work, but symbols in the folding margin aren't drawn correctly. Is this what you see too ?
If the page consists of simple functions, there is no problem. However, if the page consists of complex blocks, some blocks do not fold or unfold. I am offering to revert LexLua.cxx with the upstream LexLua.cxx for now. After we fix the problem, we can take back the changes. I'm not sure line 216 in LexLua.cxx invalidate the next block. Experienced coder should check it out.
I'm not sure line 216 in LexLua.cxx invalidate the next block.
It shouldn't, although it would be best to remove the 'COMMENTLINE' case on the condition of the next block. Since I made some changes to LexLua myself to deal with Luau ternary operators, I will try to fix it. Could you share a test case of something that doesn't work as it should ? I didn't spot anything wrong with my codes, but maybe I am not understand what is wrong.
I'm not sure line 216 in LexLua.cxx invalidate the next block.
Could you share a test case of something that doesn't work as it should ?
You can test with luashader.lua from VR Oculus example. The first blocks look ok but if you scroll down you can see mixed folded/unfolded blocks. Ctrl + Shift + Mouse_Click on the margin symbols for quick tests.
I think I understood and fixed the problem, it has due to the code I added to support ternary operators, which was causing functions declared as expressions to break folding. The lack of vertical bars in the margin was actually a consequence of the folding problem. I fixed it by assuming that functions would never be used in ternary operators, which is unlikely but may happen since it is perfectly legal in luau. A better way would be to keep a stack of ternay/not ternary context, but that would make the parsing code much more complex.
Comments
-- load the animated model
local m2=buildGdx("models/theBoss/theBoss_mesh.json",
{ modelpath="models/theBoss/", } -- ps: I should've called it modelfolder :-(
)
And now in G3DFormat.lua this is:
if mtl.textureFile and not mtl.texture then
local path = mtl.modelpath or ""
mtl.texture=Texture.new(path..mtl.textureFile,true,{ wrap=TextureBase.REPEAT, extend=false})
end
(same for normal map).
What do you think?
- is it better to pass the folder path with the separator at the end?
- will it work for any os?
For the plants and the mushrooms:
--------------------------------------------------------------------------
Thank you for downloading "Cartoon forest grass and mushrooms " by toman.kirilov
Released under Creative Commons Zero (Public Domain)
Downloaded from http://www.blendswap.com/blends/view/4127
###################################################################
VERY IMPORTANT LICENSE INFORMATION:
This blend has been released under Creative Commons Zero (Public Domain)
This means that you can use it for any purpose you see fit, even commercially,
as long as you respect these requirements:
--There are no requirements for CC-0 licensed blends.
###################################################################
The bench and the tree are cc0 but no license attached (and I don't remember where I got those, I have like thousands cc0 models and didn't think of keeping track of each websites).
The man and the animation are from mixamo.com
What type of projects can I create with Mixamo? https://helpx.adobe.com/creative-cloud/faq/mixamo-faq.html
You can use both characters and animations royalty free for personal, commercial, and non-profit projects including: Incorporate characters into illustrations and graphic art. 3D print characters Create films Create video games
PS: I am sorry for the .gproj file I messed up, I did the same mistake in the latest pull request I indeed linked the project to the Library/folders BUT the project was not located in the Examples\Graphics3D thus the wrong number of ../../...
I can redo the commit if you wantProgram Files is read only I cannot modify the 3d-anim sample directly in Program Files, even with read only disabled for files and foldersPS2: do you want me to include the cc0 license in the project and change the models which I don't have the license?
@hgy29, editing "/3DDemo1/assets/3dbase/3DObjLoader2.lua" file produces different backtrace outputs. Interesting but it seems hard to find the cause of the problem.
[Switching to Thread 0x7fffc6a3b640 (LWP 14202)]
0x000055555589bbc2 in Luau::get > (tv=0x0) at ../luau/Analysis/include/Luau/TypeVar.h:551
551 LUAU_ASSERT(tv);
(gdb) bt
#0 0x000055555589bbc2 in Luau::get > (tv=0x0)
at ../luau/Analysis/include/Luau/TypeVar.h:551
#1 0x0000555555961f45 in operator() (__closure=0x7fffc6a39ab8, ty=0x0)
at ../luau/Analysis/src/TypeVar.cpp:46
#2 0x000055555596223e in Luau::follow(Luau::TypeVar const*, std::function) (t=0x0, mapper=...) at ../luau/Analysis/src/TypeVar.cpp:76
#3 0x0000555555961ebf in Luau::follow (t=0x7fffb4041ec0) at ../luau/Analysis/src/TypeVar.cpp:38
#4 0x0000555555973240 in Luau::Unifier::tryUnify_ (this=0x7fffc6a39ec0, subTy=0x7fffb405edc0,
superTy=0x7fffb4041ec0, isFunctionCall=false, isIntersection=false)
at ../luau/Analysis/src/Unifier.cpp:373
#5 0x000055555597305f in Luau::Unifier::tryUnify (this=0x7fffc6a39ec0, subTy=0x7fffb405edc0,
superTy=0x7fffb4041ec0, isFunctionCall=false, isIntersection=false)
at ../luau/Analysis/src/Unifier.cpp:351
#6 0x0000555555923bec in Luau::TypeChecker::unify (this=0x555555f7a6d8, subTy=0x7fffb405edc0,
superTy=0x7fffb4041ec0, location=..., options=...) at ../luau/Analysis/src/TypeInfer.cpp:4324
#7 0x0000555555923b48 in Luau::TypeChecker::unify (this=0x555555f7a6d8, subTy=0x7fffb405edc0,
superTy=0x7fffb4041ec0, location=...) at ../luau/Analysis/src/TypeInfer.cpp:4318
#8 0x0000555555908f7f in Luau::TypeChecker::check (this=0x555555f7a6d8,
scope=std::shared_ptr (use count 8, weak count 0) = {...}, ty=0x7fffb405edc0,
funScope=std::shared_ptr (use count 4, weak count 0) = {...}, function=...)
at ../luau/Analysis/src/TypeInfer.cpp:1148
#9 0x00005555559033a0 in operator() (__closure=0x7fffc6a3a400, stat=0x7fffb40265d0)
at ../luau/Analysis/src/TypeInfer.cpp:404
#10 0x0000555555903cb0 in Luau::TypeChecker::checkBlock (this=0x555555f7a6d8,
scope=std::shared_ptr (use count 8, weak count 0) = {...}, block=...)
at ../luau/Analysis/src/TypeInfer.cpp:487
#11 0x00005555559022ee in Luau::TypeChecker::check (this=0x555555f7a6d8, module=...,
mode=Luau::Mode::Nonstrict,
environmentScope=std::optional> containing std::shared_ptr for more, q to quit, c to continue without paging--c
ope> (use count 6, weak count 0) = {...}) at ../luau/Analysis/src/TypeInfer.cpp:268
#12 0x000055555581a9d6 in Luau::Frontend::check (this=0x555555f7a5d0, name="/home/me/Gideros Yeniler2/MOKALUX Examples/GIDEROS_LUAU_SAMPLES-main/3D-Anim/assets/3dbase/3DObjLoader.lua", optionOverride=std::optional [no contained value]) at ../luau/Analysis/src/Frontend.cpp:411
#13 0x0000555555601f3a in OutlineWorkerThread::run (this=0x5555561964a0) at outlinewidget.cpp:412
#14 0x00007ffff65cec6d in ?? () from /home/me/gideros/Build.Linux/libQt6Core.so.6
#15 0x00007ffff5d9c5c2 in start_thread () from /usr/lib/libc.so.6
#16 0x00007ffff5e21584 in clone () from /usr/lib/libc.so.6
(gdb)
[Switching to Thread 0x7ffff09fa640 (LWP 15096)]
0x00005555558d4d89 in Luau::visit, Luau::Unifiable::Generic, Luau::Unifiable::Error, Luau::TypePack, Luau::VariadicTypePack>(Luau::TypePackStringifier::stringify(Luau::TypePackVar const*)::{lambda(auto:1&&)#1}&&, Luau::Variant, Luau::Unifiable::Generic, Luau::Unifiable::Error, Luau::TypePack, Luau::VariadicTypePack> const&) (vis=..., var=...) at ../luau/Analysis/include/Luau/Variant.h:260
260 tableVisit[var.typeId](vis, &var.storage);
(gdb) bt
#0 0x00005555558d4d89 in Luau::visit, Luau::Unifiable::Generic, Luau::Unifiable::Error, Luau::TypePack, Luau::VariadicTypePack>(Luau::TypePackStringifier::stringify(Luau::TypePackVar const*)::{lambda(auto:1&&)#1}&&, Luau::Variant, Luau::Unifiable::Generic, Luau::Unifiable::Error, Luau::TypePack, Luau::VariadicTypePack> const&) (
vis=..., var=...) at ../luau/Analysis/include/Luau/Variant.h:260
#1 0x00005555558d4ee7 in Luau::TypePackStringifier::stringify (this=0x7ffff09f92a0, tp=0x7fffcc117e30)
at ../luau/Analysis/src/ToString.cpp:747
#2 0x00005555558ca667 in Luau::TypeVarStringifier::stringify (this=0x7ffff09f9440, tp=0x7fffcc117e30)
at ../luau/Analysis/src/ToString.cpp:850
#3 0x00005555558d35cb in Luau::TypeVarStringifier::operator() (this=0x7ffff09f9440, ftv=...)
at ../luau/Analysis/src/ToString.cpp:426
#4 0x00005555558d601e in Luau::TypeVarStringifier::stringify(Luau::TypeVar const*)::{lambda(auto:1&&)#1}::operator()(Luau::FunctionTypeVar const&) const (__closure=0x7ffff09f93d0, t=...)
at ../luau/Analysis/src/ToString.cpp:250
#5 0x00005555558cc744 in Luau::fnVisitV, const Luau::FunctionTypeVar>(struct {...} &, std::conditional_t *) (vis=..., src=0x7fffcc064e18)
at ../luau/Analysis/include/Luau/Variant.h:245
#6 0x00005555558d2834 in Luau::visit, Luau::Unifiable::Generic, Luau::Unifiable::Error, Luau::PrimitiveTypeVar, Luau::SingletonTypeVar, Luau::FunctionTypeVar, Luau::TableTypeVar, Luau::MetatableTypeVar, Luau::ClassTypeVar, Luau::AnyTypeVar, Luau::UnionTypeVar, Luau::IntersectionTypeVar, Luau::LazyTypeVar>(Luau::TypeVarStringifier::stringify(Luau::TypeVar const*)::{lambda(auto:1&&)#1}&&, Luau::Variant, Luau::Unifiable::Generic, Luau::Unifiable::Error, Luau::PrimitiveTypeVar, Luau::SingletonTypeVar, Luau::FunctionTypeVar, Luau::TableTypeVar, Luau::MetatableTypeVar, Luau::ClassTypeVar, Luau::AnyTypeVar, Luau::UnionTypeVar, Luau::IntersectionTypeVar, Luau::LazyTypeVar> const&) (vis=...,
var=...) at ../luau/Analysis/include/Luau/Variant.h:260
#7 0x00005555558d297b in Luau::TypeVarStringifier::stringify (this=0x7ffff09f9440, tv=0x7fffcc064e10)
at ../luau/Analysis/src/ToString.cpp:248
#8 0x00005555558cb238 in Luau::toStringDetailed (ty=0x7fffcc064e10, opts=...)
at ../luau/Analysis/src/ToString.cpp:965
#9 0x00005555558cbb61 in Luau::toString[abi:cxx11](Luau::TypeVar const*, Luau::ToStringOptions const&) (
ty=0x7fffcc064e10, opts=...) at ../luau/Analysis/src/ToString.cpp:1075
#10 0x00005555557c4093 in Luau::toString[abi:cxx11](Luau::TypeVar const*) (ty=0x7fffcc064e10)
at ../luau/Analysis/include/Luau/ToString.h:58
#11 0x000055555580fbdf in Luau::ErrorConverter::operator()[abi:cxx11](Luau::TypeMismatch const&) const (
this=0x7ffff09f9a57, tm=...) at ../luau/Analysis/src/Error.cpp:54
#12 0x000055555580cf5e in Luau::fnVisitR, Luau::TypeMismatch const> (vis=..., dst="", src=0x7fffcc0dfeb8) at ../luau/Analysis/include/Luau/Variant.h:239
#13 0x0000555555813620 in Luau::visit (vis=...,
var=...) at ../luau/Analysis/include/Luau/Variant.h:268
#14 0x000055555580c032 in Luau::toString[abi:cxx11](Luau::TypeError const&) (error=...)
--Type for more, q to quit, c to continue without paging--c
at ../luau/Analysis/src/Error.cpp:674
#15 0x000055555560202a in OutlineWorkerThread::run (this=0x55555647bda0) at outlinewidget.cpp:416
#16 0x00007ffff65cec6d in ?? () from /home/me/gideros/Build.Linux/libQt6Core.so.6
#17 0x00007ffff5d9c5c2 in start_thread () from /usr/lib/libc.so.6
#18 0x00007ffff5e21584 in clone () from /usr/lib/libc.so.6
(gdb)
Likes: MoKaLux
Good point, I will add thisSorry but I am confused, I need to check where we pick the actual textures from
I believe it is from this function:
Likes: hito9
On the other hand, their code is so complex that I am reluctant to 'debug' it.
Likes: MoKaLux, hito9
- print("*", mtl.textureFile) => "* models/player1/tex\StarSparrow_Orange.png"
- print("**", mtl.normalMapFile) => "** models/player1/tex\StarSparrow_Normal.png"
And that works for me on windows 10 without changing the code
Doesn't this work on mac/linux?
Lua may be doing some magic trick behind the scene?
I haven't built android apk with new luau, I will do it later todayand try to fix the code if that doesn't work on android.@hito9 your fix worked for animated models and .obj models :
Can you test on linux without the .glb models and your fix to G3DFormat.lua?
PS: on my android (J6) the demo is lagging a bit (one should remove the skybox and use low poly models)
Likes: hito9
I should put it on google play one day
Likes: keszegh, hito9
* auto paste the selection to findDialog and replaceDialog search line
* add word wrap icon to Toolbar (per page functional)
* add long line indicator checkbox, colordialog, position layout to preferencesDialog
* add whitepace checkbox, colordialog, size layout
* add Texture Packer and Font Creator menu entries to Tools menu
* gotoLine fix with setting visible line in available range (also for Find/Replace Dialogs)
* add "add Toolbar to Menu" checkbox
* (ImageMagick) command - mogrified -strip examples images avoiding many useless warnings during build/debuggins times
* add Gtween pic for example projects(StartPage Widget)
* fix style for txt files
* edit: changed "Replace all" words from top line to bottom line with one click
TODO: cross platform icons, set color word with color-picker from Toolbar button, QDark Theme first line invasion, lexers() keywords for colorizing(default values) , F3/Shift+F3 stored search pattern improvements, ShortCuts editor, playing media files on tree widgets, change indic box style for braces(hey you @rrraptor , where are you:)), fix a few bugs
Should we add obj,tmx,mtl,plist extensions?
Unfortunately, I am not qualified for some features for now. I don't promise that I can complete it. There are some annoying compatibility issues(deprecated qt5 methods). I don't know how to handle em.
Likes: MoKaLux, SinisterSoft
please note there is a little bug with search/replace, it doesn't replace words in the very first line. For example if you find/replace the class name, it won't replace the class name in the very first line.
Likes: hito9
I suspect AppLovin and Unity ads libs support needs updating but that is just my best guess at this stage?
--- Logcat ---
2022-04-08 17:29:31.520 32504-608/? E/AndroidRuntime: FATAL EXCEPTION: ConnectivityThread
Process: com.mobileamusements.AquaSlots2TreasureIslandFREE, PID: 32504
java.lang.SecurityException: getDataNetworkTypeForSubscriber
at android.os.Parcel.createExceptionOrNull(Parcel.java:2437)
at android.os.Parcel.createException(Parcel.java:2421)
at android.os.Parcel.readException(Parcel.java:2404)
at android.os.Parcel.readException(Parcel.java:2346)
at com.android.internal.telephony.ITelephony$Stub$Proxy.getNetworkTypeForSubscriber(ITelephony.java:9300)
at android.telephony.TelephonyManager.getNetworkType(TelephonyManager.java:3550)
at android.telephony.TelephonyManager.getNetworkType(TelephonyManager.java:3514)
at com.unity3d.services.core.connectivity.ConnectivityMonitor.connectionStatusChanged(ConnectivityMonitor.java:162)
at com.unity3d.services.core.connectivity.ConnectivityNetworkCallback.onCapabilitiesChanged(ConnectivityNetworkCallback.java:48)
--- .APK export test output @ min SDK=19 and target SDK=32 using Unity Ads 4.1.0 ---
> Task :app:compileReleaseJavaWithJavac FAILED
C:\Temp\AquaSlots2\tmp\app\src\main\java\com\giderosmobile\android\plugins\ads\frameworks\AdsUnity.java:12: error: cannot find symbol
public class AdsUnity implements AdsInterface, IUnityAdsListener {
^
symbol: class IUnityAdsListener
C:\Temp\AquaSlots2\tmp\app\src\main\java\com\giderosmobile\android\plugins\ads\frameworks\AdsUnity.java:128: error: cannot find symbol
public void onUnityAdsFinish(String s, UnityAds.FinishState finishState) {
^
symbol: class FinishState
location: class UnityAds
C:\Temp\AquaSlots2\tmp\app\src\main\java\com\giderosmobile\android\plugins\ads\frameworks\AdsUnity.java:138: error: cannot find symbol
public void onUnityAdsError(UnityAds.UnityAdsError unityAdsError, String s) {
^
symbol: class UnityAdsError
location: class UnityAds
C:\Temp\AquaSlots2\tmp\app\src\main\java\com\giderosmobile\android\plugins\ads\frameworks\AdsUnity.java:63: error: no suitable method found for initialize(Activity,String,AdsUnity)
UnityAds.initialize(sActivity.get(), param.get(0), this);
^
method UnityAds.initialize(Context,String,IUnityAdsInitializationListener) is not applicable
(argument mismatch; AdsUnity cannot be converted to IUnityAdsInitializationListener)
method UnityAds.initialize(Context,String,boolean) is not applicable
(argument mismatch; AdsUnity cannot be converted to boolean)
C:\Temp\AquaSlots2\tmp\app\src\main\java\com\giderosmobile\android\plugins\ads\frameworks\AdsUnity.java:117: error: method does not override or implement a method from a supertype
@Override
^
C:\Temp\AquaSlots2\tmp\app\src\main\java\com\giderosmobile\android\plugins\ads\frameworks\AdsUnity.java:122: error: method does not override or implement a method from a supertype
@Override
^
C:\Temp\AquaSlots2\tmp\app\src\main\java\com\giderosmobile\android\plugins\ads\frameworks\AdsUnity.java:127: error: method does not override or implement a method from a supertype
@Override
^
C:\Temp\AquaSlots2\tmp\app\src\main\java\com\giderosmobile\android\plugins\ads\frameworks\AdsUnity.java:129: error: cannot find symbol
if (finishState== UnityAds.FinishState.COMPLETED)
^
symbol: variable FinishState
location: class UnityAds
C:\Temp\AquaSlots2\tmp\app\src\main\java\com\giderosmobile\android\plugins\ads\frameworks\AdsUnity.java:131: error: cannot find symbol
else if (finishState== UnityAds.FinishState.SKIPPED)
^
symbol: variable FinishState
location: class UnityAds
C:\Temp\AquaSlots2\tmp\app\src\main\java\com\giderosmobile\android\plugins\ads\frameworks\AdsUnity.java:133: error: cannot find symbol
else if (finishState== UnityAds.FinishState.ERROR)
^
symbol: variable FinishState
location: class UnityAds
C:\Temp\AquaSlots2\tmp\app\src\main\java\com\giderosmobile\android\plugins\ads\frameworks\AdsUnity.java:137: error: method does not override or implement a method from a supertype
@Override
^
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Note: Some messages have been simplified; recompile with -Xdiags:verbose to get full output
11 errors
Likes: MoKaLux, hito9
hito9 could you push your commits to gideros GH? I am trying to "play" with it but I need some guidance and I believe your commit could help
hello world!
Likes: hito9
But i'm so busy these days. I may ask a pull request for some of the commits 3-4 days later. See you
Likes: SinisterSoft, MoKaLux
Likes: hgy29, Yan
Likes: keszegh, MoKaLux, SinisterSoft, hito9, MobAmuse, vitalitymobile, Yan
Likes: MoKaLux, SinisterSoft
your color panel addition is awesome.
One minor issue I have on my side is Highlighter doesn't work (please note it was working with gideros 2022.1.3 but not after that). I tried with different themes, options, ...
If you build hito9 gideros don't forget to change this line in ui.pro
https://github.com/hitonn/gideros/blob/1c4583c4e024d8b4925e65cc7b31b39676aa69a9/ui/ui.pro#L8
CONFIG += silent c++17 debugCONFIG += silent c++17
Thanks a lot for your contributions
Likes: hito9
Yes and the code folding doesn't work , we need to review @rrraptor contributions. Thank you too, for your time and feedbacks
Likes: MoKaLux
I'm not sure line 216 in LexLua.cxx invalidate the next block. Experienced coder should check it out.
Since I made some changes to LexLua myself to deal with Luau ternary operators, I will try to fix it. Could you share a test case of something that doesn't work as it should ? I didn't spot anything wrong with my codes, but maybe I am not understand what is wrong.
Likes: MoKaLux
I fixed it by assuming that functions would never be used in ternary operators, which is unlikely but may happen since it is perfectly legal in luau. A better way would be to keep a stack of ternay/not ternary context, but that would make the parsing code much more complex.
Commit: https://github.com/gideros/lexilla/commit/7cf1f43ee02ca449a4cae4eab9a97c6daf4ca068
Likes: MoKaLux, hito9