Raven Engine v0.1
Loading...
Searching...
No Matches
Raven Namespace Reference

Namespaces

namespace  Colors
namespace  FileDialogs
namespace  Filesystem
namespace  Hardware
namespace  Key
namespace  MemoryTracker
namespace  Mouse
namespace  ReflectionUtils
namespace  ShaderResource
namespace  UI
namespace  Utils

Classes

struct  Allocation
 Represents a single allocation record. More...
struct  AllocatorTraits
 Compile-time traits for determining allocation strategy of T. More...
struct  always_false
 Helper type that always yields false, used for static assertions in templates. More...
struct  ApplicationSpecification
 Holds initial configuration for the Application. More...
class  AppRenderEvent
 Event triggered once per application render. More...
class  AppTickEvent
 Event triggered once per tick cycle. More...
class  AppUpdateEvent
 Event triggered once per application update. More...
class  ArgParser
struct  Buffer
 A simple container for a raw memory buffer. More...
struct  BufferElement
 Describes a single element in a vertex buffer layout. More...
class  Camera
 Base class for camera implementations. More...
struct  CameraData
 Uniform buffer object holding camera view-projection matrix. More...
class  Castable
 CRTP base class enabling self-casting in derived types. More...
class  ComponentBase
 Abstract base class for all components. More...
struct  ComponentData
 Aggregates optional component data for serialization. More...
class  ComponentStorage
 Stores component data for a specific component type. More...
class  ConfigurationManager
 Singleton manager for application configuration files. More...
class  ConsoleHandler
 Handler that writes log messages to the console. More...
struct  ContainedTypeRegistrar
struct  ContainedTypeRegistrar< std::array< T, N > >
struct  ContainedTypeRegistrar< std::unordered_map< T, N > >
struct  ContainedTypeRegistrar< std::vector< T > >
class  DeferredDeletionQueue
 Manages deferred execution of destruction callbacks. More...
class  DescriptorSetManager
 Manages Vulkan descriptor sets for a given render pass specification. More...
struct  DirectionalLightData
class  EditorCamera
struct  EditorResources
class  Entity
 Lightweight wrapper for manipulating a single entity within the ECS. More...
struct  EntityData
 Data structure representing an entity for serialization. More...
class  Event
 Abstract base class for all events in Raven. More...
class  EventDispatcher
 Routes an Event to a matching handler function. More...
class  Expected
 Template representing either a valid value or an error. More...
class  FileHandler
 Handler that writes log messages to a file. More...
class  FixedFunction
 Type-erased callable wrapper with small buffer optimization (SBO). More...
class  FixedFunction< R(Args...), StorageSize >
class  Formatter
 Utility for formatting log messages with level and timestamp. More...
class  Framebuffer
 Abstract interface for framebuffer management. More...
struct  FramebufferAttachmentSpecification
 Defines a collection of texture attachments for a framebuffer. More...
struct  FramebufferSpecification
 Configuration settings for creating or resizing a framebuffer. More...
struct  FramebufferTextureSpecification
 Describes a single texture attachment in a framebuffer. More...
class  Framework
 Core application manager handling initialization, update loop, rendering, and shutdown. More...
class  HLSLIncluder
 Custom include handler for HLSL shader source files used with shaderc compiler. More...
class  IllumineRenderer
 Static interface facade for all renderer operations. More...
class  Image2D
 Abstract interface representing a GPU image resource.Defines lifecycle management, resizing, and query functions for images. More...
struct  ImageSpecification
 Describes the properties required to create or configure an Image2D resource. More...
class  ImGuiRenderer
 Interface for ImGui rendering backend implementations. More...
class  IndexBuffer
 Interface representing an index buffer resource. More...
class  Input
 Provides static methods to query keyboard and mouse state. More...
struct  InputContext
class  Job
 Represents a job that encapsulates a task to be executed. More...
class  JobQueue
 A thread-safe queue for enqueuing and dequeuing jobs. More...
class  KeyEvent
 Abstract base class for keyboard-related events. More...
class  KeyPressedEvent
 Event triggered when a key is pressed. More...
class  KeyReleasedEvent
 Event triggered when a key is released. More...
class  Logger
 Central logging facility for the Raven engine. More...
struct  LogSettings
class  MalevolentAllocator
 Fixed-size chunk pool allocator. More...
class  Material
 Abstract interface for material resource binding. More...
struct  MaterialAsset
 Serializable description of a material. More...
struct  MaterialHandle
 Opaque handle referencing a material in the registry. More...
class  MaterialRegistry
 Central manager for material lifetimes and asset persistence. More...
class  MemoryManager
 Central singleton for managing engine memory allocators. More...
class  Mesh
 Interface representing a 3D mesh resource. More...
struct  MeshData
 Holds mesh asset reference data for an entity. More...
struct  MeshVertex
 Vertex structure used for the Mesh's representation. More...
class  MouseButtonEvent
 Base class for mouse button events. More...
class  MouseButtonPressedEvent
 Event triggered when a mouse button is pressed. More...
class  MouseButtonReleasedEvent
 Event triggered when a mouse button is released. More...
class  MouseMovedEvent
 Event triggered when the mouse is moved. More...
class  MouseScrolledEvent
 Event triggered when the mouse wheel is scrolled. More...
class  Pipeline
 Abstract interface for managing a rendering pipeline. More...
struct  PipelineSpecification
 Configuration parameters to describe a rendering pipeline. More...
struct  PipelineStatistics
 Holds GPU statistics gathered from pipeline execution. More...
struct  PointLightComponent
struct  PointLightData
struct  PointLightUBOData
class  Project
 Represents an active project including configuration and directory management. More...
struct  ProjectConfig
 Holds basic configuration data for a project. More...
class  ProjectSerializer
 Handles serialization and deserialization of Project configurations. More...
struct  PushConstant
class  QueueFamilyIndices
 Holds the indices of Vulkan queue families used for graphics and presentation. More...
class  Ref
 Atomic reference-counted pointer. More...
struct  RegisterMember
struct  RegisterType
class  Registry
 Central manager for component registration and entity-component mapping. More...
class  RenderCommandBuffer
class  RendererAPI
 Core abstraction for GPU rendering operations. More...
struct  RendererConfig
 Configuration options controlling renderer behavior. More...
struct  RendererData
 Runtime statistics and shared renderer resources. More...
class  RenderPass
 Interface representing a GPU render pass abstraction. More...
struct  RenderPassInput
 Describes a single input resource for a render pass, including type, binding indices, and resource handles. More...
struct  RenderPassSpecification
 Holds the essential configuration for a RenderPass. More...
class  Scene
 Represents a scene containing entities and handles their lifecycle and rendering. More...
struct  SceneData
 Top-level structure representing the entire scene data. More...
class  SceneRenderer
 Responsible for rendering a Scene, managing framebuffers, pipelines, and draw calls. More...
class  SceneSerializer
 Serializes and deserializes a Scene to/from disk. More...
class  Scope
 Exclusive-ownership smart pointer. More...
struct  ScopedBuffer
 A wrapper around Buffer that ensures automatic release of memory when it goes out of scope. More...
class  ScopedTimer
 A scoped timer class for automatic timing. More...
class  ScopeWithAllocator
 Scoped smart pointer that uses a specific allocator. More...
struct  Semaphores
class  Shader
 Represents a complete shader composed of multiple shader stage modules. More...
struct  ShaderBuffer
 Represents a shader buffer (e.g., uniform or constant buffer). More...
class  ShaderLibrary
 Manages a collection of shaders for efficient reuse and lookup. More...
class  ShaderModuleHandle
 Represents a single shader stage module within a Shader. More...
struct  ShaderResourceDeclaration
 Declares any shader resource including buffers and textures. More...
struct  ShaderSettingsData
struct  SkylightComponent
struct  SkylightData
class  StackAllocator
 Stack-based allocator for objects of type T. More...
struct  StaticMeshComponent
 Component holding a reference to a static mesh asset. More...
struct  StaticMeshSubmission
 Represents a static mesh draw submission. More...
struct  SubMesh
 Represents a contiguous section of the mesh data inside the merged buffers. More...
class  Swapchain
 Abstract interface for the platform-specific swapchain. More...
struct  SystemHolder
 Holds all necessary data for managing a system instance. More...
class  SystemManager
 Manages the registration, update, and shutdown of systems. More...
struct  SystemVTable
 A static vtable holding function pointers for system operations. More...
struct  TagComponent
 Simple tag to name or identify an entity. More...
class  Texture
 Abstract interface representing a texture resource. More...
class  Texture2D
 Factory and concrete interface for 2D textures. More...
struct  TextureSlot
 Lightweight descriptor of a texture binding inside a material. More...
struct  TextureSpecification
 Defines the properties and intended usage of a texture. More...
class  ThreadPool
 A thread pool for scheduling and executing jobs in parallel. More...
class  Time
class  Timer
 A high-resolution timer class. More...
struct  TimerData
 Holds the name, elapsed time, and threshold for a timer. More...
class  Timestep
 A class representing a time step. More...
struct  TransformComponent
 Stores position, rotation, and scale of an entity. More...
struct  TransformData
 Represents position, rotation, and scale of an entity. More...
struct  TypeData
 Metadata about a type. More...
class  TypeID
 A unique identifier for a type. More...
class  TypeRegistry
 Global runtime type registry for Raven Engine. More...
class  UIManager
 Manages UI lifecycle, panels, and rendering for both editor and runtime. More...
struct  UIPanelContext
 Context passed to UI panel callbacks during rendering. More...
class  UniformBuffer
 Represents a GPU uniform buffer for shader constant data.Provides an interface to create uniform buffers and update their contents. Designed to be implemented by backend-specific subclasses. More...
class  UUID
 A class representing a Universally Unique Identifier (UUID). More...
class  UUIDGenerator
 Centralized generator for 64-bit tagged UUIDs. More...
struct  VariableData
class  VariableID
class  VertexBuffer
 Represents a GPU vertex buffer.Used to store vertex data for rendering. The class provides a factory method to create vertex buffers from raw data. More...
class  VertexBufferLayout
 Represents the layout of vertex buffer elements in memory. More...
class  VulkanCommandBuffer
 Vulkan-specific implementation of a RenderCommandBuffer. More...
class  VulkanCommandPool
 Wrapper around a Vulkan command pool. More...
class  VulkanDevice
 Manages Vulkan physical and logical device selection and creation. More...
class  VulkanFramebuffer
 Vulkan implementation of the Framebuffer abstraction. More...
class  VulkanImage2D
 Vulkan implementation of a 2D image resource. More...
struct  VulkanImageInfo
 Holds Vulkan-specific handles related to an image. More...
class  VulkanImGuiRenderer
 ImGui renderer implementation using Vulkan backend. More...
class  VulkanIndexBuffer
 Vulkan implementation of an index buffer. More...
class  VulkanMaterial
 Vulkan-specific material resource binder. More...
class  VulkanMesh
 Vulkan-specific implementation of a Mesh. More...
class  VulkanPipeline
 Vulkan implementation of the rendering Pipeline abstraction. More...
class  VulkanRenderer
 Vulkan implementation of the RendererAPI interface. More...
class  VulkanRenderPass
 Vulkan-specific implementation of a RenderPass. More...
class  VulkanShader
 Represents a Vulkan shader, managing modules, reflection data, and descriptor sets. More...
class  VulkanShaderCompiler
 Manages compilation and reflection of Vulkan-compatible SPIR-V shaders from HLSL sources. More...
class  VulkanShaderModuleHandle
class  VulkanSwapchain
 Holds semaphores used for synchronizing image acquisition and rendering. More...
class  VulkanTexture2D
 Vulkan-specific 2D texture implementation. More...
class  VulkanUniformBuffer
 Vulkan-specific UniformBuffer implementation. More...
class  VulkanVertexBuffer
 Vulkan backend implementation of a vertex buffer. More...
class  Window
 Class representing a window. More...
class  WindowCloseEvent
 Event triggered when the window is requested to close. More...
struct  WindowProps
 Struct to hold window properties. More...
class  WindowResizeEvent
 Event triggered when the main window is resized. More...
class  Worker
 Background thread that fetches and executes jobs from a JobQueue. More...

Concepts

concept  DerivedFrom
 Concept to check if T is derived from Base.
concept  RTApp
 Concept to check if T is a Raven application type.
concept  POD
 Concept to check if T is a Plain Old Data (POD) type.
concept  Invocable
 Concept to check if T is invocable (i.e., can be called with no arguments and return void).
concept  Arithmetic
 Concept to check if T supports basic arithmetic operations (+, -, *, /).
concept  Streamable
 Concept to check if T can be streamed to an ostream (i.e., supports '<<' operator).
concept  Iterable
 Concept to check if T is iterable (supports begin() and end()).

Typedefs

using EventCallbackFn = std::function<void(Event&)>
using ComponentID = UUID
using KeyCode = u16
using MouseCode = u8
 Typedef for unsigned 8-bit integer used to represent mouse button codes.
using JobQueueType = JobQueue<Job>
 Alias for a JobQueue containing Raven::Job instances.
Fixed-Width Integral Types
using i8 = signed char
 8-bit signed integer.
using u8 = unsigned char
 8-bit unsigned integer.
using i16 = short
 16-bit signed integer.
using u16 = unsigned short
 16-bit unsigned integer.
using i32 = int
 32-bit signed integer.
using u32 = unsigned int
 32-bit unsigned integer.
using i64 = long long
 64-bit signed integer.
using u64 = unsigned long long
 64-bit unsigned integer.
Floating-Point Types
using f32 = float
 32-bit IEEE 754 floating-point.
using f64 = double
 64-bit IEEE 754 floating-point.
Size and Pointer Types
using usize = unsigned long long
 Unsigned integer type for object sizes and indices (64-bit).
using generic_ptr = void*
 Generic pointer to any object.
using uptr = u64
 Unsigned integer type capable of storing a pointer address on 64-bit.
using max_align = double
 A type guaranteed to have maximal alignment requirements.

Enumerations

enum class  UUIDTag : u8 {
  Entity = 0x1 , Asset = 0x2 , Scene = 0x3 , Component = 0x4 ,
  General = 0xF
}
 Defines the high-level category for generated UUIDs. More...
enum class  ErrorCode : u8 {
  ErrorCode::SUCCESS = 0 , ErrorCode::FILE_NOT_FOUND = 1 , ErrorCode::OUT_OF_MEMORY = 2 , ErrorCode::INVALID_INPUT = 3 ,
  ErrorCode::FATAL_ERROR = 4 , ErrorCode::OBJECT_MOVED = 5 , ErrorCode::OBJECT_NOT_FOUND = 6
}
 Symbolic status codes for Raven engine operations. More...
enum class  EventType : u8 {
  EventType::None = 0 , EventType::WindowClose , EventType::WindowResize , EventType::WindowFocus ,
  EventType::WindowLostFocus , EventType::WindowMoved , EventType::AppTick , EventType::AppUpdate ,
  EventType::AppRender , EventType::KeyPressed , EventType::KeyReleased , EventType::MouseButtonPressed ,
  EventType::MouseButtonReleased , EventType::MouseMoved , EventType::MouseScrolled
}
 Identifiers for all possible event types in the engine. More...
enum class  EventCategory : u8 {
  EventCategory::None = 0 , EventCategory::Application = 0 << 1 , EventCategory::Input = 1 << 1 , EventCategory::Keyboard = 1 << 2 ,
  EventCategory::Mouse = 1 << 3 , EventCategory::MouseButton = 1 << 4
}
 Primary categories and subcategories for engine events. More...
enum class  LogLevel : u8 {
  LogLevel::MEMORY = 0 , LogLevel::DEBUG = 1 , LogLevel::INFO = 2 , LogLevel::WARNING = 3 ,
  LogLevel::ERROR = 4 , LogLevel::CRITICAL = 5
}
 Severity levels for log messages. More...
enum class  AllocatorType { AllocatorType::None , AllocatorType::Stack , AllocatorType::Malevolent }
 Types of allocators supported by ScopeWithAllocator. More...
enum class  InputType : uint8_t { InputType::UniformBuffer , InputType::Image , InputType::Sampler , InputType::SampledImage }
 Defines types of inputs that can be bound to descriptor sets. More...
enum class  ShaderDataType {
  ShaderDataType::None = 0 , ShaderDataType::Float , ShaderDataType::Float2 , ShaderDataType::Float3 ,
  ShaderDataType::Float4 , ShaderDataType::Mat3 , ShaderDataType::Mat4 , ShaderDataType::Int ,
  ShaderDataType::Int2 , ShaderDataType::Int3 , ShaderDataType::Int4 , ShaderDataType::Bool
}
 Enumerates common shader data types for vertex attributes. More...
enum class  FramebufferBlendMode {
  FramebufferBlendMode::None = 0 , FramebufferBlendMode::OneZero , FramebufferBlendMode::SrcAlphaOneMinusSrc , FramebufferBlendMode::Additive ,
  FramebufferBlendMode::Zero_SrcColor
}
 Defines blending modes used when compositing framebuffer outputs. More...
enum class  AttachmentLoadOp : u8 { AttachmentLoadOp::Inherit = 0 , AttachmentLoadOp::Clear = 1 , AttachmentLoadOp::Load = 2 , AttachmentLoadOp::DontCare = 3 }
 Specifies load operations for framebuffer attachments at render pass start. More...
enum class  VSyncModes : u8 { VSyncModes::Off = 0 , VSyncModes::On = 1 }
 Specifies vertical synchronization modes for frame presentation. More...
enum class  ImageFormat : u8 {
  ImageFormat::RGBA8 , ImageFormat::RGBA8_UNORM , ImageFormat::BGRA8_SRGB , ImageFormat::BGRA8_UNORM ,
  ImageFormat::RGBA16F , ImageFormat::RGBA32F , ImageFormat::DEPTH32STENCIL8
}
 Defines formats for images and textures. More...
enum class  ColorSpace : u8 { ColorSpace::SRGB_NONLINEAR , ColorSpace::DisplayP3 , ColorSpace::AdobeRGB , ColorSpace::Rec2020 }
 Enumerates color spaces used in rendering. More...
enum class  ImageUsage : u8 {
  ImageUsage::ColorAttachment = 1 << 0 , ImageUsage::DepthStencilAttachment = 1 << 1 , ImageUsage::Sampled = 1 << 2 , ImageUsage::Storage = 1 << 3 ,
  ImageUsage::TransferSrc = 1 << 4 , ImageUsage::TransferDst = 1 << 5 , ImageUsage::Texture = 1 << 6 , ImageUsage::HostRead = 1 << 7
}
 Flags describing intended usage of images. More...
enum class  ImageLayout {
  ImageLayout::Undefined = 0 , ImageLayout::General = 1 , ImageLayout::ColorAttachmentOptimal = 2 , ImageLayout::DepthStencilAttachmentOptimal = 3 ,
  ImageLayout::DepthStencilReadOnlyOptimal = 4 , ImageLayout::ShaderReadOnlyOptimal = 5 , ImageLayout::TransferSrcOptimal = 6 , ImageLayout::TransferDstOptimal = 7 ,
  ImageLayout::PreInitialized = 8
}
 Specifies image layouts for Vulkan synchronization. More...
enum class  CompositeAlpha : u8 { CompositeAlpha::Opaque , CompositeAlpha::PreMultiplied , CompositeAlpha::PostMultiplied , CompositeAlpha::Inherit }
 Alpha compositing modes for swapchain images. More...
enum class  ShaderStage : u8 { ShaderStage::Vertex , ShaderStage::Fragment }
 Shader stages relevant for pipeline configuration. More...
enum class  PrimitiveTopology : u8 {
  PrimitiveTopology::None = 0 , PrimitiveTopology::Points , PrimitiveTopology::Lines , PrimitiveTopology::Triangles ,
  PrimitiveTopology::LineStrip , PrimitiveTopology::TriangleStrip , PrimitiveTopology::TriangleFan
}
 Defines the type of primitives to assemble from vertex data. More...
enum class  DepthCompareOperator : u8 {
  DepthCompareOperator::None = 0 , DepthCompareOperator::Never , DepthCompareOperator::NotEqual , DepthCompareOperator::Less ,
  DepthCompareOperator::LessOrEqual , DepthCompareOperator::Greater , DepthCompareOperator::GreaterOrEqual , DepthCompareOperator::Equal ,
  DepthCompareOperator::Alyways
}
 Comparison operators for depth testing. More...
enum  PanelScope : u8 { EditorOnly = 0 , RuntimeOnly = 1 , EditorAndRuntime = 2 }
 Specifies the visibility scope of a UI panel. More...

Functions

template<typename T>
ConvertFromString (const std::string &str)
 Primary template for ConvertFromString: triggers compile-time error if instantiated.
template<>
int ConvertFromString< int > (const std::string &str)
 Convert string to int.
template<>
float ConvertFromString< float > (const std::string &str)
 Convert string to float.
template<>
double ConvertFromString< double > (const std::string &str)
 Convert string to double.
template<>
bool ConvertFromString< bool > (const std::string &str)
 Convert string to bool.
template<>
std::string ConvertFromString< std::string > (const std::string &str)
 Identity conversion for std::string.
template<>
i8 ConvertFromString< i8 > (const std::string &str)
 Convert string to int8.
template<>
u8 ConvertFromString< u8 > (const std::string &str)
 Convert string to u8.
template<>
i16 ConvertFromString< i16 > (const std::string &str)
 Convert string to i16.
template<>
u16 ConvertFromString< u16 > (const std::string &str)
 Convert string to u16.
template<>
u32 ConvertFromString< u32 > (const std::string &str)
 Convert string to u32.
template<>
i64 ConvertFromString< i64 > (const std::string &str)
 Convert string to i64.
template<>
u64 ConvertFromString< u64 > (const std::string &str)
 Convert string to u64.
template<>
const char * ConvertFromString< const char * > (const std::string &str)
 Convert string to C-string pointer.
template<typename T>
std::string ConvertToString (const T &value)
 Primary template for ConvertToString: triggers compile-time error if instantiated.
template<>
std::string ConvertToString< int > (const int &value)
 Convert int to string.
template<>
std::string ConvertToString< float > (const float &value)
 Convert float to string.
template<>
std::string ConvertToString< double > (const double &value)
 Convert double to string.
template<>
std::string ConvertToString< bool > (const bool &value)
 Convert bool to string ("true"/"false").
template<>
std::string ConvertToString< std::string > (const std::string &value)
 Identity conversion for std::string.
template<>
std::string ConvertToString< i8 > (const i8 &value)
 Convert int8 to string.
template<>
std::string ConvertToString< u8 > (const u8 &value)
 Convert u8 to string.
template<>
std::string ConvertToString< i16 > (const i16 &value)
 Convert i16 to string.
template<>
std::string ConvertToString< u16 > (const u16 &value)
 Convert u16 to string.
template<>
std::string ConvertToString< u32 > (const u32 &value)
 Convert u32 to string.
template<>
std::string ConvertToString< i64 > (const i64 &value)
 Convert i64 to string.
template<>
std::string ConvertToString< u64 > (const u64 &value)
 Convert u64 to string.
template<>
std::string ConvertToString< const char * > (const char *const &value)
 Convert C-string pointer to std::string.
void SetEditorMode (bool enabled)
bool IsEditor ()
template<typename To, typename From>
To CastHelper (From *ptr)
 Safe casting function between types.
template<RTApp App>
int Main (int argc, char **argv)
template<typename T>
const SystemVTableGetSystemVTable ()
 Retrieves a static vtable for the specified system type T.
template<typename T>
constexpr usize AlignOf () noexcept
 Compile-time query of a type's alignment requirement.
std::ostream & operator<< (std::ostream &os, const Event &e)
 Stream insertion operator for events.
template<typename T, typename... Args>
constexpr Ref< T > CreateRef (Args &&... args)
 Helper to create a Ref<T> by allocating with rnew.
template<typename T, typename... Args>
Scope< T > CreateScope (Args &&... args)
 Helper to create a Scope<T> by constructing T in-place.
template<typename T, typename... Args>
ScopeWithAllocator< T > CreateScopeWithAllocator (usize objectCount, Args &&... args)
 Creates a ScopeWithAllocator using default allocator selection.
template<typename T, typename Allocator, typename... Args>
ScopeWithAllocator< T > CreateScopeWithAllocator (Allocator *allocator, Args &&... args)
 Creates a ScopeWithAllocator with explicit allocator.
template<typename T>
void RegisterContainedTypes ()
std::string Trim (const std::string &str)
 Removes leading and trailing whitespace from a string.
std::string ToLower (std::string_view str)
 Converts a string view to lowercase.
bool Contains (const std::string &str, const std::string &substring)
 Checks if a string contains a substring, case-insensitive.
const char * strcasestr (const char *haystack, const char *needle) noexcept
 Performs a case-insensitive substring search.
bool ResolveWorkingDirectory (const std::string &dirPath)
 Resolves the path to the working directory.
template<typename Enum, typename T, usize N>
constexpr T Lookup (Enum value, const std::array< T, N > &mapping)
 Lookup helper template for enum-to-value mappings.
void DestroyDebugUtilsMessengerEXT (VkInstance instance, VkDebugUtilsMessengerEXT debugMessenger, const VkAllocationCallbacks *pAllocator)
 Wrapper to destroy a Vulkan debug utils messenger.
constexpr VSyncModes ToVSyncMode (u8 value)
 Converts raw byte value to a valid VSyncModes enum.
ImageUsage operator| (ImageUsage a, ImageUsage b)
 Bitwise OR operator for ImageUsage flags.
ImageUsage operator& (ImageUsage a, ImageUsage b)
 Bitwise AND operator for ImageUsage flags.

Variables

constexpr u64 kTagBits = 4
 Number of bits reserved for the tag portion of the UUID.
constexpr u64 kTagShift = 64 - kTagBits
 Bit position shift to place the tag in the upper bits of the 64-bit value.
constexpr u32 tempSize = 2

Typedef Documentation

◆ ComponentID

Unique identifier type for component types.

◆ EventCallbackFn

using Raven::EventCallbackFn = std::function<void(Event&)>

◆ f32

using Raven::f32 = float

32-bit IEEE 754 floating-point.

◆ f64

using Raven::f64 = double

64-bit IEEE 754 floating-point.

◆ generic_ptr

using Raven::generic_ptr = void*

Generic pointer to any object.

◆ i16

using Raven::i16 = short

16-bit signed integer.

◆ i32

using Raven::i32 = int

32-bit signed integer.

◆ i64

using Raven::i64 = long long

64-bit signed integer.

◆ i8

using Raven::i8 = signed char

8-bit signed integer.

◆ JobQueueType

Alias for a JobQueue containing Raven::Job instances.

◆ KeyCode

◆ max_align

using Raven::max_align = double

A type guaranteed to have maximal alignment requirements.

◆ u16

using Raven::u16 = unsigned short

16-bit unsigned integer.

◆ u32

using Raven::u32 = unsigned int

32-bit unsigned integer.

◆ u64

using Raven::u64 = unsigned long long

64-bit unsigned integer.

◆ u8

using Raven::u8 = unsigned char

8-bit unsigned integer.

◆ uptr

using Raven::uptr = u64

Unsigned integer type capable of storing a pointer address on 64-bit.

◆ usize

using Raven::usize = unsigned long long

Unsigned integer type for object sizes and indices (64-bit).

Enumeration Type Documentation

◆ UUIDTag

enum class Raven::UUIDTag : u8
strong

Defines the high-level category for generated UUIDs.

The top 4 bits of each 64-bit identifier are reserved to represent the tag. This enables type-safe distinction between different ID domains (entities, assets, scenes, etc.).

Enumerator
Entity 

Tag for game entities.

Asset 

Tag for game assets (textures, meshes, etc.)

Scene 

Tag for scene or level identifiers.

Component 

Tag for component instances.

General 

Tag for miscellaneous or custom UUIDs.

Function Documentation

◆ AlignOf()

template<typename T>
usize Raven::AlignOf ( )
constexprnoexcept

Compile-time query of a type's alignment requirement.

Template Parameters
TType to inspect.
Returns
Alignment in bytes of type T.
Note
Wraps the builtin alignof for consistent usage.

◆ ConvertFromString()

template<typename T>
T Raven::ConvertFromString ( const std::string & str)
inline

Primary template for ConvertFromString: triggers compile-time error if instantiated.

Template Parameters
TThe target type to convert to.
Parameters
strInput string.

◆ ConvertFromString< bool >()

template<>
bool Raven::ConvertFromString< bool > ( const std::string & str)
inline

Convert string to bool.

Returns true if the lowercase string is "true" or equals "1".

◆ ConvertFromString< const char * >()

template<>
const char * Raven::ConvertFromString< const char * > ( const std::string & str)
inline

Convert string to C-string pointer.

Warning
Returns pointer to internal static string; subsequent calls overwrite it.

◆ ConvertFromString< double >()

template<>
double Raven::ConvertFromString< double > ( const std::string & str)
inline

Convert string to double.

◆ ConvertFromString< float >()

template<>
float Raven::ConvertFromString< float > ( const std::string & str)
inline

Convert string to float.

◆ ConvertFromString< i16 >()

template<>
i16 Raven::ConvertFromString< i16 > ( const std::string & str)
inline

Convert string to i16.

◆ ConvertFromString< i64 >()

template<>
i64 Raven::ConvertFromString< i64 > ( const std::string & str)
inline

Convert string to i64.

◆ ConvertFromString< i8 >()

template<>
i8 Raven::ConvertFromString< i8 > ( const std::string & str)
inline

Convert string to int8.

◆ ConvertFromString< int >()

template<>
int Raven::ConvertFromString< int > ( const std::string & str)
inline

Convert string to int.

◆ ConvertFromString< std::string >()

template<>
std::string Raven::ConvertFromString< std::string > ( const std::string & str)
inline

Identity conversion for std::string.

◆ ConvertFromString< u16 >()

template<>
u16 Raven::ConvertFromString< u16 > ( const std::string & str)
inline

Convert string to u16.

◆ ConvertFromString< u32 >()

template<>
u32 Raven::ConvertFromString< u32 > ( const std::string & str)
inline

Convert string to u32.

◆ ConvertFromString< u64 >()

template<>
u64 Raven::ConvertFromString< u64 > ( const std::string & str)
inline

Convert string to u64.

◆ ConvertFromString< u8 >()

template<>
u8 Raven::ConvertFromString< u8 > ( const std::string & str)
inline

Convert string to u8.

◆ ConvertToString()

template<typename T>
std::string Raven::ConvertToString ( const T & value)
inline

Primary template for ConvertToString: triggers compile-time error if instantiated.

Template Parameters
TThe source type to convert from.
Parameters
valueInput value.

◆ ConvertToString< bool >()

template<>
std::string Raven::ConvertToString< bool > ( const bool & value)
inline

Convert bool to string ("true"/"false").

◆ ConvertToString< const char * >()

template<>
std::string Raven::ConvertToString< const char * > ( const char *const & value)
inline

Convert C-string pointer to std::string.

◆ ConvertToString< double >()

template<>
std::string Raven::ConvertToString< double > ( const double & value)
inline

Convert double to string.

◆ ConvertToString< float >()

template<>
std::string Raven::ConvertToString< float > ( const float & value)
inline

Convert float to string.

◆ ConvertToString< i16 >()

template<>
std::string Raven::ConvertToString< i16 > ( const i16 & value)
inline

Convert i16 to string.

◆ ConvertToString< i64 >()

template<>
std::string Raven::ConvertToString< i64 > ( const i64 & value)
inline

Convert i64 to string.

◆ ConvertToString< i8 >()

template<>
std::string Raven::ConvertToString< i8 > ( const i8 & value)
inline

Convert int8 to string.

◆ ConvertToString< int >()

template<>
std::string Raven::ConvertToString< int > ( const int & value)
inline

Convert int to string.

◆ ConvertToString< std::string >()

template<>
std::string Raven::ConvertToString< std::string > ( const std::string & value)
inline

Identity conversion for std::string.

◆ ConvertToString< u16 >()

template<>
std::string Raven::ConvertToString< u16 > ( const u16 & value)
inline

Convert u16 to string.

◆ ConvertToString< u32 >()

template<>
std::string Raven::ConvertToString< u32 > ( const u32 & value)
inline

Convert u32 to string.

◆ ConvertToString< u64 >()

template<>
std::string Raven::ConvertToString< u64 > ( const u64 & value)
inline

Convert u64 to string.

◆ ConvertToString< u8 >()

template<>
std::string Raven::ConvertToString< u8 > ( const u8 & value)
inline

Convert u8 to string.

◆ CreateScope()

template<typename T, typename... Args>
Scope< T > Raven::CreateScope ( Args &&... args)
inline

Helper to create a Scope<T> by constructing T in-place.

Template Parameters
TType to allocate.
Parameters
argsConstructor arguments.
Returns
Scope<T> managing the new object.

◆ CreateScopeWithAllocator() [1/2]

template<typename T, typename Allocator, typename... Args>
ScopeWithAllocator< T > Raven::CreateScopeWithAllocator ( Allocator * allocator,
Args &&... args )

Creates a ScopeWithAllocator with explicit allocator.

Template Parameters
TThe type to allocate.
AllocatorThe allocator type.
Parameters
allocatorPointer to allocator instance.
argsConstructor arguments.
Returns
ScopeWithAllocator<T> managing the new object.

◆ CreateScopeWithAllocator() [2/2]

template<typename T, typename... Args>
ScopeWithAllocator< T > Raven::CreateScopeWithAllocator ( usize objectCount,
Args &&... args )

Creates a ScopeWithAllocator using default allocator selection.

Chooses Stack or Pool allocator based on AllocatorTraits<T>.

Template Parameters
TThe type to allocate.
Parameters
objectCountNumber of elements for pool or stack size heuristic.
argsConstructor arguments.
Returns
ScopeWithAllocator<T> managing the new object.

◆ IsEditor()

bool Raven::IsEditor ( )
inline

◆ Lookup()

template<typename Enum, typename T, usize N>
T Raven::Lookup ( Enum value,
const std::array< T, N > & mapping )
constexpr

Lookup helper template for enum-to-value mappings.

Template Parameters
EnumEnum type.
TMapped type.
NSize of the mapping array.
Parameters
valueEnum value to map.
mappingArray mapping enum values to T.
Returns
constexpr T Mapped value.

◆ Main()

template<RTApp App>
int Raven::Main ( int argc,
char ** argv )

◆ RegisterContainedTypes()

template<typename T>
void Raven::RegisterContainedTypes ( )

◆ SetEditorMode()

void Raven::SetEditorMode ( bool enabled)
inline

Variable Documentation

◆ kTagBits

u64 Raven::kTagBits = 4
constexpr

Number of bits reserved for the tag portion of the UUID.

◆ kTagShift

u64 Raven::kTagShift = 64 - kTagBits
constexpr

Bit position shift to place the tag in the upper bits of the 64-bit value.

◆ tempSize

u32 Raven::tempSize = 2
constexpr