Attempt upgrading all dependencies
Added
- Changes specifier in CHANGELOG.md
- Version specifier in VERSION
- Node version specifier in .nvmrc to allow compatibility
- Simple shell script to invoke the bindings generator in
generate-bindings.sh - Simple shell script to invoke the build process in one step in
build-rayjs.sh
Changed
- Upgraded raylib to 9a8d73e
- Upgraded raygui to 82ba2b1
- Upgraded quickjs to 6a89d7c
- Generated new bindings
- Upgraded all packages of the bindings generator
Removed
- Removed the need of transpilation when using the bindings generator (this is useful to debug generator issues as ts-node can represent errors as they are, without the need of source maps)
- Removed webpack requirement
Fixed
- Markdown linting errors
Wow, thats a big one! Thanks a lot - I will take some time to review it but on first glance all of these changes seem very reasonable to me. I'll report back ASAP.
Take your time, I know open source endeavors are though, you don't need to accept it, even if you get some inspiration it is still good.
I've tried to upgrade all deps to today's last commits, added the CHANGELOG.md and VERSION formality so that other projects depending on yours don't break, but you will have to connect them to tagging and the github actions CI you have in place.
I also started another one here https://github.com/iongion/raylib-quickjsx - it is basically the same as your repo, but it has some considerable philosophical changes.
- I use a fork of quickjs that also ads JSX support, it is from the creator of sciter-js which is amazing, but I can't use it for my case as it is not covered
- Basically I need to add non-main thread opengl graphics to a video processing pipeline that runs on gstreamer, this simple task has proven extremely difficult to achieve. Drawing on video and then re-streaming in a cross-mobile/desktop way is madness.
- RayJS is a perfect graphic engine for cross-platform opengl graphics, but writing c++ to show simple logos and animations on videos is too static and time consuming, hence the need for JS, JS just as an api layer is still sad, but allows faster prototype. JS with JSX and RmlUi is excellent, basically a react developer would feel at home if there would be a DOM-like thingy at his hands.
- Taking further, adding RmlUi is just this, it is a CSS+HTML like tehnology to build UIs
- Now, if one would want animations, lottie is the format to go and luckily there is rlottie from Samsung that is somehow achievable in RmlUi
- Same as for basic SVG support
Task I am exploring now is integrating RmlUi in raylib with a custom or a default OpenGL renderer and then also exposing it using quickjs.
I could have taken the lua path, which is great for bindings, but I can't develop everything, and JS world has animation/tweening libraries that are pretty advanced and optimized, plus so many other things that can be adapted to quickjs.
I don't want to duplicate work with yours, but I don't know how comfortable you are for merging this with RmlUi + rlottie and lunasvg, especially with the JSX fork of quickjs.
Always opened for anything.
Hey @iongion, again, thanks a lot for your support here. I finally had time to check this out. I tried to update everything locally and build and it worked. However I made a copy of your branch and ran it through the pipeline it succeeded for mac but failed for windows and linux (guess which platform I'm on). It seems this is different problems. On Windows it seems like an unsupported define in quickjs while on Linux it's some wayland dependencies from raylib. I think both can be fixed but it will take some more time. If you want to investigate yourself here's the pipeline. Let me know if you have trouble accessing it: https://github.com/mode777/rayjs/actions/runs/8408950341
Regarding your plans, thats quite an interesting project. Thanks for pointing out RmIUi, looks like it would be the perfect match for quickjs. For rayjs, its probably not so helpful as it's meant as a standalone runtime for raylib with javascript on top. It was never meant to integrate into anything.