8000 Packaging, distribution, portability by Rezmason · Pull Request #66 · Rezmason/matrix · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
8000

Packaging, distribution, portability #66

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 23 commits into
base: nohren/dev
Choose a base branch
from

Conversation

Rezmason
Copy link
Owner
@Rezmason Rezmason commented May 8, 2025

No description provided.

@Rezmason Rezmason changed the base branch from master to nohren/dev May 15, 2025 07:46
Rezmason added 8 commits May 15, 2025 01:36
…d entries into config.js. Inclusions are now explicit dynamic import lambdas, so the cache functions can detect and call them; however, webpack and rollup seem to use them differently.
…er; replaced webpack and rollup with vite; converted bundle-contents to "core" and "full" bundle profiles; renamed "inclusions" to "staticAssets", which are "url" base64-encoded images and "raw" text strings; renamed the Matrix component module to the JSX extension; built out a test scaffold at tools/test/index.html to manually test the various deploy options.
…d text, never GPU resource handles; renamed renderer "formulate" to "configure"; WebGPU renderer's configure function needs early returns after each major await, in case there's a new config; the render loops are now locally stored closures; renderers now have start and stop functions; fixed bugs in the REGL and WebGPU mirror passes; WebGPU bloom pass now enforces texture dimensions are greater than zero; the react component now stores the renderer type in a useRef and returns early from renderer init awaits to prevent multiple renderers from instantiating.
@Rezmason Rezmason marked this pull request as ready for review May 25, 2025 15:45
@Rezmason
Copy link
Owner Author

The switch to vite simplified the project's build and test cycle enormously, and afforded some big changes:

  • The bundled distros' asset caches are now preloaded with the shaders
  • the REGL and WebGPU renderers are now vanilla JS classes
    • start and stop methods control a single RAF, so configuring creates a new render function instead of a new RAF. (This code will get cleaner shortly.)
    • the WebGPU renderer debounces when the config changes rapidly, such as when responding to sliders, by detecting when the scoped config is stale and returning early.
  • the React component also does some debouncing when swapping the renderer.

The React component test app contains some additional inputs to really put the renderers through their paces, and to help identify lingering problems. Currently, I believe there are none. But as soon as we add a speed control slider, it'll get wacky again, because currently each timed phenomenon (glyph cycling, rain falling, forward motion) uses a multiple of the current time instead of an accumulation of the multiplied delta time. The renderer base class will probably wind up governing speeds for this reason.

I'll keep the PR open for a week or so, in case @nohren has questions or feedback. Afterward, PRs should be much much smaller.

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
0