Raven Engine v0.1
Loading...
Searching...
No Matches
Frontend

Classes

struct  Raven::ImageSpecification
 Describes the properties required to create or configure an Image2D resource. More...
class  Raven::Image2D
 Abstract interface representing a GPU image resource.Defines lifecycle management, resizing, and query functions for images. More...
struct  Raven::StaticMeshSubmission
 Represents a static mesh draw submission. More...
struct  Raven::BufferElement
 Describes a single element in a vertex buffer layout. More...
class  Raven::VertexBufferLayout
 Represents the layout of vertex buffer elements in memory. More...
class  Raven::Camera
 Base class for camera implementations. More...
struct  Raven::FramebufferTextureSpecification
 Describes a single texture attachment in a framebuffer. More...
struct  Raven::FramebufferAttachmentSpecification
 Defines a collection of texture attachments for a framebuffer. More...
struct  Raven::FramebufferSpecification
 Configuration settings for creating or resizing a framebuffer. More...
class  Raven::Framebuffer
 Abstract interface for framebuffer management. More...
class  Raven::IllumineRenderer
 Static interface facade for all renderer operations. More...
class  Raven::ImGuiRenderer
 Interface for ImGui rendering backend implementations. More...
class  Raven::IndexBuffer
 Interface representing an index buffer resource. More...
class  Raven::Material
 Abstract interface for material resource binding. More...
struct  Raven::MaterialHandle
 Opaque handle referencing a material in the registry. More...
struct  Raven::TextureSlot
 Lightweight descriptor of a texture binding inside a material. More...
struct  Raven::MaterialAsset
 Serializable description of a material. More...
class  Raven::MaterialRegistry
 Central manager for material lifetimes and asset persistence. More...
struct  Raven::MeshVertex
 Vertex structure used for the Mesh's representation. More...
class  Raven::Mesh
 Interface representing a 3D mesh resource. More...
struct  Raven::PipelineStatistics
 Holds GPU statistics gathered from pipeline execution. More...
struct  Raven::PipelineSpecification
 Configuration parameters to describe a rendering pipeline. More...
class  Raven::Pipeline
 Abstract interface for managing a rendering pipeline. More...
class  Raven::RendererAPI
 Core abstraction for GPU rendering operations. More...
class  Raven::RenderPass
 Interface representing a GPU render pass abstraction. More...
class  Raven::Swapchain
 Abstract interface for the platform-specific swapchain. More...
class  Raven::Texture
 Abstract interface representing a texture resource. More...
class  Raven::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  Raven::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...

Enumerations

enum class  Raven::ShaderDataType {
  Raven::ShaderDataType::None = 0 , Raven::ShaderDataType::Float , Raven::ShaderDataType::Float2 , Raven::ShaderDataType::Float3 ,
  Raven::ShaderDataType::Float4 , Raven::ShaderDataType::Mat3 , Raven::ShaderDataType::Mat4 , Raven::ShaderDataType::Int ,
  Raven::ShaderDataType::Int2 , Raven::ShaderDataType::Int3 , Raven::ShaderDataType::Int4 , Raven::ShaderDataType::Bool
}
 Enumerates common shader data types for vertex attributes. More...
enum class  Raven::FramebufferBlendMode {
  Raven::FramebufferBlendMode::None = 0 , Raven::FramebufferBlendMode::OneZero , Raven::FramebufferBlendMode::SrcAlphaOneMinusSrc , Raven::FramebufferBlendMode::Additive ,
  Raven::FramebufferBlendMode::Zero_SrcColor
}
 Defines blending modes used when compositing framebuffer outputs. More...
enum class  Raven::AttachmentLoadOp : u8 { Raven::AttachmentLoadOp::Inherit = 0 , Raven::AttachmentLoadOp::Clear = 1 , Raven::AttachmentLoadOp::Load = 2 , Raven::AttachmentLoadOp::DontCare = 3 }
 Specifies load operations for framebuffer attachments at render pass start. More...
enum class  Raven::VSyncModes : u8 { Raven::VSyncModes::Off = 0 , Raven::VSyncModes::On = 1 }
 Specifies vertical synchronization modes for frame presentation. More...
enum class  Raven::ImageFormat : u8 {
  Raven::ImageFormat::RGBA8 , Raven::ImageFormat::RGBA8_UNORM , Raven::ImageFormat::BGRA8_SRGB , Raven::ImageFormat::BGRA8_UNORM ,
  Raven::ImageFormat::RGBA16F , Raven::ImageFormat::RGBA32F , Raven::ImageFormat::DEPTH32STENCIL8
}
 Defines formats for images and textures. More...
enum class  Raven::ColorSpace : u8 { Raven::ColorSpace::SRGB_NONLINEAR , Raven::ColorSpace::DisplayP3 , Raven::ColorSpace::AdobeRGB , Raven::ColorSpace::Rec2020 }
 Enumerates color spaces used in rendering. More...
enum class  Raven::ImageUsage : u8 {
  Raven::ImageUsage::ColorAttachment = 1 << 0 , Raven::ImageUsage::DepthStencilAttachment = 1 << 1 , Raven::ImageUsage::Sampled = 1 << 2 , Raven::ImageUsage::Storage = 1 << 3 ,
  Raven::ImageUsage::TransferSrc = 1 << 4 , Raven::ImageUsage::TransferDst = 1 << 5 , Raven::ImageUsage::Texture = 1 << 6 , Raven::ImageUsage::HostRead = 1 << 7
}
 Flags describing intended usage of images. More...
enum class  Raven::ImageLayout {
  Raven::ImageLayout::Undefined = 0 , Raven::ImageLayout::General = 1 , Raven::ImageLayout::ColorAttachmentOptimal = 2 , Raven::ImageLayout::DepthStencilAttachmentOptimal = 3 ,
  Raven::ImageLayout::DepthStencilReadOnlyOptimal = 4 , Raven::ImageLayout::ShaderReadOnlyOptimal = 5 , Raven::ImageLayout::TransferSrcOptimal = 6 , Raven::ImageLayout::TransferDstOptimal = 7 ,
  Raven::ImageLayout::PreInitialized = 8
}
 Specifies image layouts for Vulkan synchronization. More...
enum class  Raven::CompositeAlpha : u8 { Raven::CompositeAlpha::Opaque , Raven::CompositeAlpha::PreMultiplied , Raven::CompositeAlpha::PostMultiplied , Raven::CompositeAlpha::Inherit }
 Alpha compositing modes for swapchain images. More...
enum class  Raven::ShaderStage : u8 { Raven::ShaderStage::Vertex , Raven::ShaderStage::Fragment }
 Shader stages relevant for pipeline configuration. More...
enum class  Raven::PrimitiveTopology : u8 {
  Raven::PrimitiveTopology::None = 0 , Raven::PrimitiveTopology::Points , Raven::PrimitiveTopology::Lines , Raven::PrimitiveTopology::Triangles ,
  Raven::PrimitiveTopology::LineStrip , Raven::PrimitiveTopology::TriangleStrip , Raven::PrimitiveTopology::TriangleFan
}
 Defines the type of primitives to assemble from vertex data. More...
enum class  Raven::DepthCompareOperator : u8 {
  Raven::DepthCompareOperator::None = 0 , Raven::DepthCompareOperator::Never , Raven::DepthCompareOperator::NotEqual , Raven::DepthCompareOperator::Less ,
  Raven::DepthCompareOperator::LessOrEqual , Raven::DepthCompareOperator::Greater , Raven::DepthCompareOperator::GreaterOrEqual , Raven::DepthCompareOperator::Equal ,
  Raven::DepthCompareOperator::Alyways
}
 Comparison operators for depth testing. More...

Functions

constexpr VSyncModes Raven::ToVSyncMode (u8 value)
 Converts raw byte value to a valid VSyncModes enum.
ImageUsage Raven::operator| (ImageUsage a, ImageUsage b)
 Bitwise OR operator for ImageUsage flags.
ImageUsage Raven::operator& (ImageUsage a, ImageUsage b)
 Bitwise AND operator for ImageUsage flags.

Detailed Description

API-agnostic rendering interface and orchestration layer. Handles resource lifecycles, scene drawing, and abstraction.

Enumeration Type Documentation

◆ AttachmentLoadOp

enum class Raven::AttachmentLoadOp : u8
strong

Specifies load operations for framebuffer attachments at render pass start.

Enumerator
Inherit 

Load operation inherited from previous state.

Clear 

Clear attachment at start.

Load 

Preserve existing contents.

DontCare 

Contents are undefined after load.

◆ ColorSpace

enum class Raven::ColorSpace : u8
strong

Enumerates color spaces used in rendering.

Enumerator
SRGB_NONLINEAR 

Standard sRGB nonlinear color space.

DisplayP3 

Wide gamut for modern displays.

AdobeRGB 

Color accurate space for creative apps.

Rec2020 

Ultra-wide color gamut for future displays.

◆ CompositeAlpha

enum class Raven::CompositeAlpha : u8
strong

Alpha compositing modes for swapchain images.

Enumerator
Opaque 

Alpha is ignored.

PreMultiplied 

Premultiplied alpha.

PostMultiplied 

Postmultiplied alpha.

Inherit 

Inherit from surface.

◆ DepthCompareOperator

enum class Raven::DepthCompareOperator : u8
strong

Comparison operators for depth testing.

Enumerator
None 

No depth test.

Never 

Never passes.

NotEqual 

Passes if not equal.

Less 

Passes if less.

LessOrEqual 

Passes if less or equal.

Greater 

Passes if greater.

GreaterOrEqual 

Passes if greater or equal.

Equal 

Passes if equal.

Alyways 

Always passes (note: typo 'Alyways' likely intentional from original).

◆ FramebufferBlendMode

enum class Raven::FramebufferBlendMode
strong

Defines blending modes used when compositing framebuffer outputs.

Enumerator
None 

No blending.

OneZero 

Source * 1 + Dest * 0 (overwrite).

SrcAlphaOneMinusSrc 

Standard alpha blending.

Additive 

Additive blending.

Zero_SrcColor 

Zero source, source color destination.

◆ ImageFormat

enum class Raven::ImageFormat : u8
strong

Defines formats for images and textures.

Enumerator
RGBA8 

Standard 8-bit RGBA format.

RGBA8_UNORM 

8-bit RGBA format in linear color space

BGRA8_SRGB 

8-bit BGRA with sRGB nonlinear color space.

BGRA8_UNORM 

8-bit BGRA with linear color space.

RGBA16F 

16-bit floating point RGBA.

RGBA32F 

32-bit floating point RGBA, linear space.

DEPTH32STENCIL8 

Combined 32-bit depth and 8-bit stencil buffer.

◆ ImageLayout

enum class Raven::ImageLayout
strong

Specifies image layouts for Vulkan synchronization.

Enumerator
Undefined 

Layout is undefined.

General 

General layout usable for any access.

ColorAttachmentOptimal 

Optimized for color attachment writes.

DepthStencilAttachmentOptimal 

Optimized for depth/stencil writes.

DepthStencilReadOnlyOptimal 

Depth/stencil read-only layout.

ShaderReadOnlyOptimal 

Read-only layout for shader sampling.

TransferSrcOptimal 

Optimal layout for transfer source.

TransferDstOptimal 

Optimal layout for transfer destination.

PreInitialized 

Image pre-initialized layout.

◆ ImageUsage

enum class Raven::ImageUsage : u8
strong

Flags describing intended usage of images.

Enumerator
ColorAttachment 

Image used as render target.

DepthStencilAttachment 

Depth or stencil buffer usage.

Sampled 

For shader sampling.

Storage 

For image load/store operations.

TransferSrc 

Source in data transfer operations.

TransferDst 

Destination in data transfer operations.

Texture 

Image represents a texture.

HostRead 

Host CPU read access.

◆ PrimitiveTopology

enum class Raven::PrimitiveTopology : u8
strong

Defines the type of primitives to assemble from vertex data.

Enumerator
None 

No primitive topology.

Points 

Points.

Lines 

Lines.

Triangles 

Triangles.

LineStrip 

Line strip.

TriangleStrip 

Triangle strip.

TriangleFan 

Triangle fan.

◆ ShaderDataType

enum class Raven::ShaderDataType
strong

Enumerates common shader data types for vertex attributes.

Includes scalar, vector, matrix, integer, and boolean types. Used to describe the format of each buffer element.

Enumerator
None 

Invalid/None type.

Float 

Single float.

Float2 

2-component float vector.

Float3 

3-component float vector.

Float4 

4-component float vector.

Mat3 

3x3 float matrix.

Mat4 

4x4 float matrix.

Int 

Single integer.

Int2 

2-component integer vector.

Int3 

3-component integer vector.

Int4 

4-component integer vector.

Bool 

Boolean value (1 byte).

◆ ShaderStage

enum class Raven::ShaderStage : u8
strong

Shader stages relevant for pipeline configuration.

Enumerator
Vertex 

Vertex shader stage.

Fragment 

Fragment shader stage.

◆ VSyncModes

enum class Raven::VSyncModes : u8
strong

Specifies vertical synchronization modes for frame presentation.

Enumerator
Off 

VSync disabled.

On 

VSync enabled.

Function Documentation

◆ operator&()

ImageUsage Raven::operator& ( ImageUsage a,
ImageUsage b )
inline

Bitwise AND operator for ImageUsage flags.

◆ operator|()

ImageUsage Raven::operator| ( ImageUsage a,
ImageUsage b )
inline

Bitwise OR operator for ImageUsage flags.

◆ ToVSyncMode()

VSyncModes Raven::ToVSyncMode ( u8 value)
constexpr

Converts raw byte value to a valid VSyncModes enum.

Parameters
valueRaw byte input.
Returns
Clamped VSyncModes value.