5 ms·
Having a C API like that is always nice. I don't wanna fight Rust.
by adrift 2y ago
Having a C API like that is always nice. I don't wanna fight Rust.
- Encounter 2y agoWebGPU has a (mostly) standardized C API: https://github.com/webgpu-native/webgpu-headers https://github.com/webgpu-native/webgpu-headers
- westurner 2y agowgpu supports WebGPU: https://github.com/gfx-rs/wgpu https://github.com/gfx-rs/wgpu : > While WebGPU does not support any shading language other than WGSL, we will automatically convert your non-WGSL shaders if you're running on WebGPU.
- dartos 2y agoThat’s just for the shading language
- flohofwoe 2y agoThe Rust wgpu project has an alternative C API which is identical (or at least closely matches, I haven't looked in detail at it yet) the official webgpu.h header. For instance all examples in here are written in C: https://github.com/gfx-rs/wgpu-native/tree/trunk/examples https://github.com/gfx-rs/wgpu-native/tree/trunk/examples There's definitely also people using wgpu from Zig via the C bindings.
- westurner 2y agoI found: shlomnissan/sdl-wasm: https://github.com/shlomnissan/sdl-wasm https://github.com/shlomnissan/sdl-wasm : > A simple example of compiling C/SDL to WebAssembly and binding it to an HTML5 canvas. erik-larsen/emscripten-sdl2-ogles2: https://github.com/erik-larsen/emscripten-sdl2-ogles2 https://github.com/erik-larsen/emscripten-sdl2-ogles2 : > C++/SDL2/OpenGLES2 samples running in the browser via Emscripten IDK how much work there is to migrate these to SDL3? Are there WASM compilation advantages to SDL3 vs SDL2?
- westurner 2y agoThere are rust SDL2 bindings: https://github.com/Rust-SDL2/rust-sdl2#use-sdl2render https://github.com/Rust-SDL2/rust-sdl2#use-sdl2render use::sdl2render, gl-rs for raw OpenGL: https://github.com/Rust-SDL2/rust-sdl2?tab=readme-ov-file#opengl https://github.com/Rust-SDL2/rust-sdl2?tab=readme-ov-file#op...
- westurner 2y ago*sdl2::render src/sdl2/render.rs: https://github.com/Rust-SDL2/rust-sdl2/blob/master/src/sdl2/render.rs https://github.com/Rust-SDL2/rust-sdl2/blob/master/src/sdl2/... SDL/test /testautomation_render.c: https://github.com/libsdl-org/SDL/blob/main/test/testautomation_render.c https://github.com/libsdl-org/SDL/blob/main/test/testautomat...
- kbolino 2y agoIt exists, but IMO it's not a good choice. First of all, it doesn't support RenderGeometry or RenderGeometryRaw, which are necessary for high-performance 2D rendering (absent the new GPU API). I doubt it will support any of the GPU API at this rate, as the geometry rendering is a much simpler API. Maybe both will land all at once, though. To wit, the relevant issue hasn't seen much activity: https://github.com/Rust-SDL2/rust-sdl2/issues/1180 https://github.com/Rust-SDL2/rust-sdl2/issues/1180 Secondly, the abstractions chosen by rust-sdl2 are quite different from those of SDL2 itself. There seems to have been an aggressive attempt by the Rust library authors to make something more Rust-friendly, which maybe has made it more approachable for people who don't know SDL2 already, but it has IMO made it less approachable for people who do know SDL2. The crate gets plenty of downloads, so maybe it's just me.