Topaz 5.0
Topaz Game Engine
Loading...
Searching...
No Matches
GPU Library

Description

Abstract rendering API for low-level, high-performance 3D desktop graphics.

This library provides a API to interact with a single desktop GPU, agnostic of whichever graphics API runs under-the-hood (e.g Vulkan/OpenGL/D3D12). When you use this library, the implementation will use one of these graphics APIs (which one is used depends on your platform and is configurable at compile-time) automatically with minimal overhead.

If you intend to do 3D graphics in Topaz, you should first consult the Rendering Library incase a high-level implementation of what you want to achieve already exists. It is unlikely that the Rendering Library contains all the rendering components you need for a modern game, especially if your game has some more bespoke graphical features or its own unique style. In which case, you should use this library to build your feature from the ground-up.

The GPU Library works as follows:

An example graph could be comprised of:

The timeline of GPU execution of this graph could look as follows:

Topics

 Graphs
 Documentation for render graphs - describes the execution of Passes.
 
 Hardware
 Documentation specialised for iterating over rendering hardware and selecting one to be used for rendering.
 
 Passes
 Documentation for render/compute passes - each a single node within Graphs.
 
 Resources
 Create/edit/destroy resources (images and buffers).
 
 Settings
 Global settings that affect all passes and graphs. The kind of stuff you'd expect to see in a game's video options.
 
 Shaders
 Create shaders to carry out programmable GPU work.
 

Typedefs

using tz::gpu::index_t = std::uint32_t
 Represents a single index. Indices are always 32-bit unsigned integers.
 

Classes

struct  tz::gpu::draw_t
 Represents a single unindexed draw-call. More...
 
struct  tz::gpu::draw_indexed_t
 Represents a single indexed draw-call. More...
 

Typedef Documentation

◆ index_t

using tz::gpu::index_t = std::uint32_t

Represents a single index. Indices are always 32-bit unsigned integers.