sessamekesh / iggpu Goto Github PK
View Code? Open in Web Editor NEWUtility library for cross-compiling apps using GLFW+Dawn to native and WASM targets
License: MIT License
Utility library for cross-compiling apps using GLFW+Dawn to native and WASM targets
License: MIT License
Of the WebGPU utilities, I think this is the only one that actually makes sense to move over. InstanceBuffer is nice and I use it all the time, but it's clunky and not sufficiently generally useful for this library.
Dawn has a bunch of useful utility methods that are specific to Dawn here: https://dawn.googlesource.com/dawn/+/refs/heads/main/src/dawn/utils/
iggpu is meant to be an abstraction over Dawn (native) or WebGPU for cross-platform builds including WASM targets.
Most of these are things that existed in pre-isolation iggpu
versions (sanctify-game, sanctify-min projects) but I just haven't brought over yet. The Dawn implementations are generally similar, even without igcore::PodVector
etc. types from previous iggpu
iterations.
Especially helpful methods to bring over (or at least something similar):
Embind methods to give std::string
parameters, but AppBase::Create expects a c-string.
Instead, either:
C-strings referencing values that are cleaned up on the stack (e.g. a std::string parameter for a create_app embind method) end up pointing to garbage and ruining canvas reference stuff.
This more naturally follows how WebGPU does things, and should be the preferred pattern.
Cannot do this until Emscripten supports wgpuDeviceCreateRenderPipelineAsync method.
... I suspect it won't be hard to implement that method myself, so I'm leaving this little note to do it. It might be hard. We'll see.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.