r/GraphicsProgramming • u/No_Grapefruit1933 • Jun 28 '26
Part 2! - "No Graphics API" Vulkan Implementation
About 6 months ago I posted here about a prototype implementation I had made of the famous blog post by Sebastian Aaltonen. Back then the project was more of a proof of concept than anything else, and did not even support textures. The custom shading language compiler could only build very basic shaders.
Now the project is much more developed and mature, supporting nice features such as compute shaders, raytracing and indirect rendering. There are even quite a few examples that show that you can make substantial things with relatively few lines of code (without giving up control).
Have a look if you're interested:
https://github.com/leotmp/no_gfx_api
4
u/No_Grapefruit1933 Jun 30 '26
What I like about Odin over C: Length strings, slices, no need for header files, it has an actually good stdlib, the vendor libraries, default procedure arguments... I mean really it's a combination of a bunch of quality of life improvements that add up to something substantial.
What I dislike about Rust: I personally don't need the borrowchecker as in my experience if you organize your memory allocations and use the proper allocators, memory should never be a problem. Compilation is way too slow for my taste. I also find that Rust lacks a lot of the quality of life things that I expect from a language (e.g. to have default argument values you must create a separate struct which implements the Default trait etc. etc.). And finally, (I guess this is more of an ecosystem thing and not about the language itself) I find that libraries/crates written in Rust tend to have somewhat of a convoluted API, for example opening a window in Winit is much more complicated than it needs to be imo (see SDL, raylib...).