Rendering

OpenGL included.
OpenGL not required.

The built-in backend uses Silk.NET.OpenGL. VOID's higher-level rendering systems are designed around public renderer-neutral contracts so another backend can replace it without redefining the rest of the framework.

One default. More than one possible backend.

VOID 2.x uses SDL3 for the platform layer, Silk.NET.OpenGL for the built-in renderer, and Silk.NET.OpenAL for audio. The OpenGL implementation is the default renderer, not the definition of the renderer API.

Backend authors can implement the public graphics contracts for APIs such as Vulkan, Direct3D, Metal, WebGPU, OpenGL, or another renderer.

Higher-level systems stay neutral.

Sprite batching, primitives, textures, render targets, cameras, shaders, and other game-facing systems should not need to become API-specific just because the backend changes.

VOID Engine renderer architecture showing the API-agnostic rendering layer, renderer abstraction, pluggable graphics backends, SDL3, and OpenAL.

Public contracts

The backend boundary is explicit.

IRendererBackend

Backend-level renderer integration and lifecycle.

IGraphicsDevice

Renderer-specific GPU behavior behind a public device contract.

IRendererContext

Renderer context data, including native platform handles when a backend requires them.

Why it matters.

A project can begin with the built-in OpenGL backend and still have an architectural path to another graphics API later. That can matter for different platforms, specialized rendering requirements, or future web-oriented backends.

The goal is not to make every developer write a renderer. The built-in renderer exists so normal projects can simply use VOID. The pluggable boundary is there for the projects that need something else.

Use the default first

Start building. Change the backend only if you need to.