Renderer
The Renderer owns GPU state and draw logic for rendering a Scene with a specified Camera. It is typically constructed and driven by the Application runtime, but can also be used directly in manual setups.
Typical usage:
vglx::Renderer renderer({
.framebuffer_width = window.FramebufferWidth(),
.framebuffer_height = window.FramebufferHeight(),
.clear_color = 0x444444
});
auto ok = renderer.Initialize();
if (!ok) {
HandleError(ok.error());
}
// Per-frame:
renderer.Render(scene.get(), camera.get());
Construction
Constructors
Renderer()
vglx::Renderer::Renderer(const Renderer::Parameters ¶ms)
Parameter | Description |
---|---|
params | Renderer::Parameters |
Constructs a renderer object with the given parameters. GPU resources are not created until Initialize is called.
Types
Renderer::Parameters struct
Functions
Initialize() std::expected< void, std::string >
std::expected< void, std::string > vglx::Renderer::Initialize()
Initializes GPU state and allocates required resources.
Render() void
void vglx::Renderer::Render(Scene *scene, Camera *camera)
Parameter | Description |
---|---|
scene | Pointer to the scene to render (must be non-null). |
camera | Pointer to the active camera (must be non-null). |
Renders the given scene from the specified camera. The scene is expected to be in a consistent state for rendering. If you are using the runtime path, this is handled automatically. In direct initialization flows, call your per-frame update routine (e.g., Scene::Advance) prior to rendering.
RenderedObjectsPerFrame() size_t
size_t vglx::Renderer::RenderedObjectsPerFrame() const
Returns the number of renderable objects drawn in the last frame. Intended for statistics overlays and debugging.
SetClearColor() void
void vglx::Renderer::SetClearColor(const Color &color)
Parameter | Description |
---|---|
color | Clear color in RGB format. |
Sets the clear color for subsequent frames. The color is applied at the start of each frame when the framebuffer is cleared. Typically used to define the background color of the rendering surface.
SetViewport() void
void vglx::Renderer::SetViewport(int x, int y, int width, int height)
Parameter | Description |
---|---|
x | Left pixel of the viewport. |
y | Bottom pixel of the viewport. |
width | Viewport width in pixels. |
height | Viewport height in pixels. |
Sets the active viewport rectangle in pixels. Call this when the framebuffer size changes or when rendering to a sub-rectangle of the target.