logoalt Hacker News

mort96last Sunday at 2:33 PM1 replyview on HN

SDL2 and SDL3 both have hardware accelerated 2D renderers, appropriately called SDL_Renderer. You can tell SDL to upload pixel buffers to GPU textures and tell SDL to draw those textures on the screen with various transformations and color effects.

SDL3 added a way to tell SDL to render vertex-based geometry as well: https://wiki.libsdl.org/SDL3/SDL_RenderGeometry. Those vertexes can have 3D positions, so that counts as a 3D renderer I guess. Though of course the GPU is doing the heavy lifting; SDL is just exposing a little bit more of the GPU's functionality. It's quite useful for some 2D applications as well. I remember reading about how it could enable more efficient drawing of 2D plots or cleaner ImGUI integration, though I don't remember details.


Replies

kbolinolast Sunday at 3:41 PM

SDL_RenderGeometry(Raw) are only capable of 2D rendering and the vertexes do not even have a z-coordinate.

Genuine 3D support is available in SDL3 via the GPU types and functions: https://wiki.libsdl.org/SDL3/CategoryGPU

show 2 replies