4 ms·
I've been using wgpu for quite some time (in D, through wgpu-native bindings). What exactly do you find it horrifying? It's much closer to DX12/Vulkan than Open
by skocznymroczny 6y ago
I've been using wgpu for quite some time (in D, through wgpu-native bindings). What exactly do you find it horrifying? It's much closer to DX12/Vulkan than OpenGL. The main difference is that it introduces the concept of a render pipeline, encapsulating all render state from shaders used, shader input layouts, vertex layouts, depth/stencil states, color attachments, which can be pre-created and then bound with a single API call. It's a big improvement over OpenGL which required you to track the state yourself or pre-emptively restore most of the state to avoid side effects between calls.
- singularity2001 6y ago132 lines for hello world (helloTriangle), just so much boiler plate. I cannot pin it down but there must be a better way, this looks like the server world before the invention of ruby on rails. Also magical values in string format: primitiveTopology: 'triangle-list', const swapChainFormat = 'bgra8unorm'; ...
- skocznymroczny 6y agoDoes Javascript have enums? I've seen these stringly typed enums often in JS APIs.
- flohofwoe 6y agoHave you seen a Vulkan "Hello Triangle" in comparison? That's a least a thousand lines of code, and that's with taking shortcuts :) 132 lines isn't really that much for a triangle in any 3D API, except 90's style OpenGL 1.x (which was a nice and convenient API, but also very inefficient). I'm sure there will be plenty of high-level Javascript libraries built on top of WebGPU which will cater to different philosophies and use cases, and those will also allow a Hello Triangle with fewer lines of code (but also will involve compromises at flexibility or performance).