Skip to content

Attempt upgrading all dependencies#7

Open
iongion wants to merge 1 commit intomode777:mainfrom
iongion:upgrade-dependencies
Open

Attempt upgrading all dependencies#7
iongion wants to merge 1 commit intomode777:mainfrom
iongion:upgrade-dependencies

Conversation

@iongion
Copy link

@iongion iongion commented Mar 17, 2024

Added

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

@iongion iongion force-pushed the upgrade-dependencies branch from d216486 to 3936f05 Compare March 17, 2024 12:09
case "unsigned int *":
case "const int *":
case "int *":
this.declare(name, 'JSValue', false, `JS_NewArrayBufferCopy(ctx, ${src}, sizeof(${src}))`)
Copy link
Author

@iongion iongion Mar 17, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not sure this is correct, there was no mapping for int * and the new version of raylib has functions that return int *

@mode777
Copy link
Owner

mode777 commented Mar 17, 2024

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.

@iongion
Copy link
Author

iongion commented Mar 17, 2024

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.

@mode777
Copy link
Owner

mode777 commented Mar 24, 2024

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants