Raven Engine v0.1
A modern 3D Game Engine
Loading...
Searching...
No Matches
Vulkan

Classes

class  Raven::VulkanGPUQuery
 Vulkan implementation of GPU timestamp query profiling. More...
class  Raven::VulkanTextureCube
 Vulkan implementation of a cubemap texture. More...
struct  Raven::RenderPassInput
 Describes a single input resource for a render pass, including type, binding indices, and resource handles. More...
class  Raven::DescriptorSetManager
 Manages Vulkan descriptor sets for a given render pass specification. More...
class  Raven::QueueFamilyIndices
 Holds the indices of Vulkan queue families used for graphics and presentation. More...
class  Raven::VulkanCommandBuffer
 Vulkan-specific implementation of a RenderCommandBuffer. More...
class  Raven::VulkanCommandPool
 Wrapper around a Vulkan command pool. More...
class  Raven::VulkanDevice
 Manages Vulkan physical and logical device selection and creation. More...
class  Raven::VulkanFramebuffer
 Vulkan implementation of the Framebuffer abstraction. More...
struct  Raven::VulkanImageInfo
 Holds Vulkan-specific handles related to an image. More...
class  Raven::VulkanImage2D
 Vulkan implementation of a 2D image resource. More...
class  Raven::VulkanImGuiRenderer
 ImGui renderer implementation using Vulkan backend. More...
class  Raven::VulkanIndexBuffer
 Vulkan implementation of an index buffer. More...
class  Raven::VulkanMaterial
 Vulkan-specific material resource binder. More...
class  Raven::VulkanPipeline
 Vulkan implementation of the rendering Pipeline abstraction. More...
class  Raven::VulkanRenderer
 Vulkan implementation of the RendererAPI interface. More...
class  Raven::VulkanRenderPass
 Vulkan-specific implementation of a RenderPass. More...
class  VulkanShaderHandle
 Handles a Vulkan shader module lifecycle and stores its entry point. More...
class  Raven::VulkanShader
 Represents a Vulkan shader, managing modules, reflection data, and descriptor sets. More...
class  Raven::VulkanShaderCompiler
 Manages compilation and reflection of Vulkan-compatible SPIR-V shaders from HLSL sources. More...
struct  Raven::ShaderResource::ShaderDescriptor
 Represents an individual shader descriptor binding. More...
struct  Raven::ShaderResource::UniformBuffer
 Represents a uniform buffer descriptor. More...
struct  Raven::ShaderResource::StorageBuffer
 Represents a uniform buffer descriptor. More...
struct  Raven::ShaderResource::ShaderDescriptorSet
 Groups multiple descriptors into a descriptor set. More...
struct  Raven::ShaderResource::PushConstantRange
 Represents a push constant range used in shaders. More...
struct  Raven::ShaderBuffer
 Represents a shader buffer (e.g., uniform or constant buffer). More...
struct  Raven::ShaderResourceDeclaration
 Declares any shader resource including buffers and textures. More...
class  Raven::VulkanStorageBuffer
 Vulkan-specific StorageBuffer implementation. More...
class  Raven::VulkanSwapchain
 Holds semaphores used for synchronizing image acquisition and rendering. More...
class  Raven::VulkanTexture2D
 Vulkan-specific 2D texture implementation. More...
class  Raven::VulkanUniformBuffer
 Vulkan-specific UniformBuffer implementation. More...
class  Raven::VulkanVertexBuffer
 Vulkan backend implementation of a vertex buffer. More...

Macros

#define VK_CHECK(call)
 Macro wrapper for vkCheck that passes current function and line automatically.

Enumerations

enum class  Raven::InputType : uint8_t {
  Raven::InputType::UniformBuffer , Raven::InputType::StorageBuffer , Raven::InputType::Image , Raven::InputType::Sampler ,
  Raven::InputType::SampledImage
}
 Defines types of inputs that can be bound to descriptor sets. More...
enum class  Raven::ShaderResource::ResourceType : u8 {
  Raven::ShaderResource::ResourceType::UniformBuffer , Raven::ShaderResource::ResourceType::SampledImage , Raven::ShaderResource::ResourceType::StorageBuffer , Raven::ShaderResource::ResourceType::Sampler ,
  Raven::ShaderResource::ResourceType::Unknown
}
 Enumerates the different types of shader resources. More...

Functions

void Raven::vkCheck (VkResult result, const char *function, int line)
 Checks a Vulkan API call result and logs errors if any.
VkDebugUtilsMessengerCreateInfoEXT Raven::CreateDebugUtilsMessengerCreateInfo ()
 Helper to initialize a VkDebugUtilsMessengerCreateInfoEXT structure.
VkResult Raven::CreateDebugUtilsMessengerEXT (VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkDebugUtilsMessengerEXT *pDebugMessenger)
 Wrapper to create a Vulkan debug utils messenger.
void Raven::DestroyDebugUtilsMessengerEXT (VkInstance instance, VkDebugUtilsMessengerEXT debugMessenger, const VkAllocationCallbacks *pAllocator)
 Wrapper to destroy a Vulkan debug utils messenger.
u32 Raven::FindMemoryType (VkPhysicalDevice device, u32 typeFilter, VkMemoryPropertyFlags properties)
 Finds a suitable memory type for Vulkan resource allocation.

Detailed Description

Vulkan-specific implementation of the rendering backend.

Macro Definition Documentation

◆ VK_CHECK

#define VK_CHECK ( call)
Value:
Raven::vkCheck((call), __FUNCTION__, __LINE__)
void vkCheck(VkResult result, const char *function, int line)
Checks a Vulkan API call result and logs errors if any.
Definition VulkanHelpers.h:83

Macro wrapper for vkCheck that passes current function and line automatically.

Usage: VK_CHECK(vkSomeFunction(...));

Enumeration Type Documentation

◆ InputType

enum class Raven::InputType : uint8_t
strong

Defines types of inputs that can be bound to descriptor sets.

Enumerator
UniformBuffer 

Uniform buffer input type.

StorageBuffer 

Storage buffer input type.

Image 

Image input type (without sampler).

Sampler 

Sampler input type.

SampledImage 

Combined image sampler input type.

◆ ResourceType

enum class Raven::ShaderResource::ResourceType : u8
strong

Enumerates the different types of shader resources.

Enumerator
UniformBuffer 

Uniform buffer resource.

SampledImage 

Sampled image (texture).

StorageBuffer 

Storage buffer resource.

Sampler 

Sampler resource.

Unknown 

Unknown or unspecified resource type.

Function Documentation

◆ CreateDebugUtilsMessengerCreateInfo()

VkDebugUtilsMessengerCreateInfoEXT Raven::CreateDebugUtilsMessengerCreateInfo ( )
inline

Helper to initialize a VkDebugUtilsMessengerCreateInfoEXT structure.

Sets up the create info with appropriate message severity flags, message types, and assigns the debug callback function.

Returns
Initialized VkDebugUtilsMessengerCreateInfoEXT structure.

◆ CreateDebugUtilsMessengerEXT()

VkResult Raven::CreateDebugUtilsMessengerEXT ( VkInstance instance,
const VkDebugUtilsMessengerCreateInfoEXT * pCreateInfo,
const VkAllocationCallbacks * pAllocator,
VkDebugUtilsMessengerEXT * pDebugMessenger )
inline

Wrapper to create a Vulkan debug utils messenger.

Retrieves the function pointer dynamically and calls it. Returns VK_ERROR_EXTENSION_NOT_PRESENT if the extension is unavailable.

Parameters
instanceVulkan instance.
pCreateInfoPointer to messenger create info.
pAllocatorOptional custom allocator callbacks.
pDebugMessengerPointer to the messenger handle to be created.
Returns
VkResult of the creation call.

◆ DestroyDebugUtilsMessengerEXT()

void Raven::DestroyDebugUtilsMessengerEXT ( VkInstance instance,
VkDebugUtilsMessengerEXT debugMessenger,
const VkAllocationCallbacks * pAllocator )
inline

Wrapper to destroy a Vulkan debug utils messenger.

Dynamically retrieves the destroy function and calls it if available.

Parameters
instanceVulkan instance.
debugMessengerDebug messenger handle to destroy.
pAllocatorOptional custom allocator callbacks.

◆ FindMemoryType()

u32 Raven::FindMemoryType ( VkPhysicalDevice device,
u32 typeFilter,
VkMemoryPropertyFlags properties )
inline

Finds a suitable memory type for Vulkan resource allocation.

Queries the physical device memory properties and searches for a memory type that satisfies the requested type filter and property flags. Logs a critical error if no suitable type is found.

Parameters
deviceVulkan physical device.
typeFilterBitmask of acceptable memory types.
propertiesRequired memory property flags (e.g. device local, host visible).
Returns
Index of a suitable memory type, or -1 if none found.

◆ vkCheck()

void Raven::vkCheck ( VkResult result,
const char * function,
int line )
inline

Checks a Vulkan API call result and logs errors if any.

If the result is not VK_SUCCESS, logs an error message including the function name and line, then aborts the program. Otherwise, logs a debug message confirming success.

Parameters
resultResult from a Vulkan call.
functionName of the calling function.
lineLine number where the call happened.