Rendu
A lightweight rendering engine for experimentations
Loading...
Searching...
No Matches
Namespaces | Classes | Macros | Functions
Graphics

Contain items and functions interacting with the graphics API.

This module provides wrapper around GPU primitives, such as textures, meshes and shader programs. Utilities are also provided to render screen quads, alter the rendering state and populate/save GPU data. The interface is currently based on the Vulkan API.

Namespaces

namespace  VkUtils
 Utility functions for the Vulkan backend.
 

Classes

class  DescriptorAllocator
 Manage descriptor set allocations by creating and reusing internal descriptor pools. More...
 
class  GPU
 Provide utility functions to communicate with the driver and GPU. More...
 
struct  ResourceToDelete
 Request for the buffered deletion of a resource. Any of the handles stored below is optional, depending on the kind of resource being deleted. More...
 
struct  AsyncTextureTask
 Request for an asynchronous texture download. Data has been copied from the source texture to a buffer during the frame. The readback of the buffer to the CPU has to be performed once the frame is complete. More...
 
struct  GPUContext
 Global GPU context, storing all structures used for resource allocation and tracking, operations recording and rendering. More...
 
class  GPUTexture
 Store a texture data on the GPU. More...
 
class  GPUBuffer
 Store data in a GPU buffer. More...
 
class  GPUMesh
 Store vertices and triangles data on the GPU, linked by an array object. More...
 
class  GPUState
 Internal GPU state ; not all API options are exposed, only these that can be toggled in Rendu. More...
 
class  GPUQuery
 Represent a GPU query, automatically buffered and retrieved. More...
 
class  GPUMarker
 Inserted a marker on the current render or upload command buffer. These markers are visible in profling and debugging tools such as Renderdoc, as are object debug labels. More...
 
struct  DescriptorSet
 Descriptor set allocation. More...
 
class  PipelineCache
 Create and reuse GPU pipelines based on a given state. This supports both graphics and compute pipelines. More...
 
class  Program
 Represents a group of shaders used for rendering. More...
 
class  QueryAllocator
 Manages GPU queries allocation in a set of pools. Pools need to be buffered per frame so that we can retrieve the previous frame queries while the current queries are running. More...
 
class  SamplerLibrary
 Manage all samplers for GPU textures. Samplers are shared between all shader programs, and directly specified in the shaders based on use. All samplers are stored in a unique, shared descriptor set appended to all other sets (set #3). More...
 
class  ShaderCompiler
 Relies on glslang to compile GLSL shaders to SPIR-V and SPIRV-Cross to generate reflection data. More...
 
class  Swapchain
 A swapchain handles the creation and presentation of the backbuffer, along with GPU work submission and synchronization. More...
 

Macros

#define VK_RETURN_CHECK(F, L)   (F);
 Macro used to check the return code of Vulkan calls.
 
#define VK_RET(F)   VK_RETURN_CHECK((F), __LINE__)
 Macro used to check the return code of Vulkan calls.
 

Functions

VKAPI_ATTR VkBool32 VKAPI_CALL vkDebugCallback (VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageType, const VkDebugUtilsMessengerCallbackDataEXT *callbackData, void *userData)
 

Function Documentation

◆ vkDebugCallback()

VKAPI_ATTR VkBool32 VKAPI_CALL vkDebugCallback ( VkDebugUtilsMessageSeverityFlagBitsEXT  messageSeverity,
VkDebugUtilsMessageTypeFlagsEXT  messageType,
const VkDebugUtilsMessengerCallbackDataEXT *  callbackData,
void *  userData 
)

Callback for validation errors and warnings.

Parameters
messageSeverityseverity of message (error, warning,...)
messageTypetype of message (validation, performance,...)
callbackDatamessage data, including text and ID.
userDatacustom user pointer
Returns
true if the callback completed successfully