Hymn to Beauty
C++ 3D Engine
Video::Renderer Class Reference

Handles rendering using a low-level renderer. More...

#include <Renderer.hpp>

Public Types

enum class  GraphicsAPI { OPENGL , VULKAN , WEBGPU }
 The supported graphics APIs. More...
 

Public Member Functions

 Renderer (GraphicsAPI graphicsAPI, Utility::Window *window)
 Create new renderer. More...
 
 ~Renderer ()
 Destructor. More...
 
LowLevelRendererGetLowLevelRenderer ()
 Get the low-level renderer. More...
 
const glm::uvec2 & GetRenderSurfaceSize () const
 Get the size of the render surface. More...
 
void BeginFrame ()
 Begin new frame. More...
 
void Render (const RenderScene &renderScene)
 Render a scene. More...
 
void Present ()
 Display the rendered results to back buffer and swap back and front buffers. More...
 
void WaitForRender ()
 Wait until rendering and presentation is done. More...
 
CommandBufferGetCommandBuffer ()
 Get the command buffer where commands are being recorded. More...
 
Utility::WindowGetWindow ()
 Get the window the renderer is using. More...
 

Detailed Description

Handles rendering using a low-level renderer.

Member Enumeration Documentation

◆ GraphicsAPI

enum class Video::Renderer::GraphicsAPI
strong

The supported graphics APIs.

Enumerator
OPENGL 

OpenGL.

VULKAN 

Vulkan.

WEBGPU 

WebGPU.

Constructor & Destructor Documentation

◆ Renderer()

Renderer::Renderer ( GraphicsAPI  graphicsAPI,
Utility::Window window 
)

Create new renderer.

Parameters
graphicsAPIWhich graphics API to use for rendering.
windowWindow to render to.

◆ ~Renderer()

Renderer::~Renderer ( )

Destructor.

Member Function Documentation

◆ BeginFrame()

void Renderer::BeginFrame ( )

Begin new frame.

◆ GetCommandBuffer()

CommandBuffer * Renderer::GetCommandBuffer ( )

Get the command buffer where commands are being recorded.

Returns
The command buffer to record into.

◆ GetLowLevelRenderer()

LowLevelRenderer * Renderer::GetLowLevelRenderer ( )

Get the low-level renderer.

Returns
The low-level renderer.

◆ GetRenderSurfaceSize()

const glm::uvec2 & Renderer::GetRenderSurfaceSize ( ) const

Get the size of the render surface.

Returns
The size of the render surface.

◆ GetWindow()

Utility::Window * Renderer::GetWindow ( )

Get the window the renderer is using.

Returns
The window the renderer is using.

◆ Present()

void Renderer::Present ( )

Display the rendered results to back buffer and swap back and front buffers.

◆ Render()

void Renderer::Render ( const RenderScene renderScene)

Render a scene.

Parameters
renderSceneThe scene to render.

◆ WaitForRender()

void Renderer::WaitForRender ( )

Wait until rendering and presentation is done.

Note
Needs to be done before destroying render resources or they could still be in use.

The documentation for this class was generated from the following files: