Rendering Engine 0.2.0
Modular Graphics Rendering Engine | v0.2.0
Loading...
Searching...
No Matches
rendering_engine Namespace Reference

Namespaces

namespace  axes
 Commonly used 3D axis and direction vectors.

Classes

class  Actor
class  AppClock
 Provides high-resolution timing for frame updates. More...
struct  AppConfig
 Basic application settings loaded from a configuration file. More...
class  AppTime
 Manages current, total, and elapsed time for the application. More...
class  Camera
 Represents a 3D perspective camera with world transform and projection settings. More...
class  Camera2D
 Represents a 2D camera with position, rotation, and zoom control. More...
struct  Color
 Represents a color with red, green, blue, and alpha channels. More...
class  CoreApplication
 Default implementation of the IApplication interface. More...
class  Drawable2D
 2D drawable component for rendering objects in 2D space. More...
class  Drawable3D
 3D drawable component for rendering objects in 3D space. More...
class  DrawableComponent
 Abstract base for all drawable (renderable) objects in the engine. More...
class  Enum
class  IApplication
 Defines a generic application interface for rendering-based programs. More...
class  ImageData
 Represents raw 2D image data stored in memory. More...
class  ImageDataGpu
 Combines CPU-side and GPU-side texture representations, managing both lifetimes and transitions. More...
class  IMaterialRenderResources
 Interface for backend-specific material GPU resources. More...
class  IMeshRenderResources
 Interface for GPU mesh resource management. More...
class  IRenderer
 Defines an abstract interface for rendering backends. More...
class  IRendererObserver
 Interface for observing renderer resource lifecycle events. More...
class  IRenderResources
 Interface for rendering backend resource aggregation and submission. More...
class  ITextureRenderResources
 Interface for backend-specific GPU texture resource management. More...
class  IWindowSystem
 Abstract interface for platform-specific window management. More...
class  Material
 Represents a material instance with parameter values, texture bindings, and rendering configuration. More...
class  MaterialCache
 Manages creation, storage, and lifecycle of Material objects within the rendering engine. More...
struct  MaterialParameterLayoutEntry
 Describes the layout of a single packed parameter inside a uniform buffer. More...
struct  MaterialSettings
 Settings required to define a material instance. More...
class  Mesh
 Represents a single geometric mesh imported from a model file. More...
class  MeshDataGpu
 Manages mesh data in RAM and GPU, including upload and release operations. More...
class  Model
 Represents a 3D model composed of multiple meshes and materials. More...
class  ModelCache
 Manages loading, caching, and GPU residency of all model/mesh resources. More...
class  ModelMaterial
 Represents a single material imported from a 3D model file. More...
struct  PackedMaterialData
 Contains the raw buffer data and layout metadata of packed material parameters. More...
struct  PackEntry
 Metadata describing one file stored inside a packed asset archive. More...
class  Quad2D
 2D drawable component for rendering rectangular primitives. More...
struct  QueueFamilyIndices
 Holds indices of Vulkan queue families supporting required operations. More...
struct  RenderResourceContext
 Aggregates pointers to global rendering resource managers. More...
class  Scene
 Base class representing a renderable scene. More...
struct  SceneAutoRegistrar
 Template-based auto-registrar for scenes. More...
class  SceneComponent
 Represents a 3D transformable scene component with position, rotation, and scale. More...
class  SceneComponent2D
 Represents a 2D transformable scene component with position, rotation, and scale. More...
class  SceneManager
 Manages scenes, resource caches, and scene transitions within the rendering engine. More...
struct  ScreenSettings
 Describes window and display configuration for the application. More...
class  StandaloneDesktopWindow
 Desktop implementation of the IWindowSystem interface using GLFW. More...
struct  StartSceneAutoSetter
 Helper struct for automatically setting the start scene name. More...
class  StaticMesh
 3D drawable component for rendering static (non-animated) meshes. More...
struct  SwapChainSupportDetails
 Describes capabilities and available configurations for a physical device's swap chain. More...
class  TextRenderer
class  TextureAtlasMaker
class  TextureCache
 Manages texture loading, GPU uploading, and caching for reuse. More...
struct  Transformations2D
 Contains transformation matrices for 2D rendering. More...
struct  Transformations3D
 Contains model, view, and projection matrices for 3D rendering. More...
class  Utility
 Provides static helper methods for file I/O and path management. More...
struct  Vertex2D
 Vertex format for 2D UI/Overlay elements. More...
struct  VertexPositionColorTexture
 Vertex format for unlit 3D geometry. More...
struct  VertexPositionColorTextureNormalTangent
 Vertex format for lit 3D geometry (normal and tangent support). More...
struct  VertexSkinnedPositionTextureNormalTangent
 Vertex format for skinned meshes (skeletal animation). More...
class  VulkanMaterialResources
 Vulkan-specific implementation of material render resources. More...
class  VulkanMeshResources
 Vulkan implementation of the mesh GPU resource interface. More...
class  VulkanRenderer
 Vulkan-based implementation of the IRenderer interface. More...
class  VulkanRenderResources
 Vulkan implementation of IRenderResources for the Rendering Engine. More...
class  VulkanTextureResources
 Vulkan-specific implementation of ITextureRenderResources. More...
struct  WindowResolution
 Represents the pixel resolution of a window or display. More...

Typedefs

using PackEntries = std::unordered_map<std::string, PackEntry>

Enumerations

enum class  MaterialDomain { Surface3D , Sprite2D }
 Specifies the rendering domain where the material is used. More...
enum class  BlendMode { Opaque , Translucent }
 Specifies how the material handles transparency. More...
enum class  ShadingModel { Lit , Unlit }
 Specifies the shading model used by the material. More...
enum class  MeshType { None , Sprite2D , Billboard , Surface }
 Types of supported mesh layouts for GPU upload and rendering. More...
enum  TextureType {
  Difffuse = 0 , SpecularMap , Ambient , Emissive ,
  Heightmap , NormalMap , SpecularPowerMap , DisplacementMap ,
  LightMap , Begin = Difffuse , End = LightMap
}
 Enumerates supported texture map types for imported materials. More...

Variables

class RE_API Camera2D
const int MAX_FRAMES_IN_FLIGHT = 2
 Number of frames that can be processed simultaneously (double buffering).
static PackEntries sPackEntries
static bool sPackEntriesLoaded = false
const bool enableValidationLayers = true

Typedef Documentation

◆ PackEntries

using rendering_engine::PackEntries = std::unordered_map<std::string, PackEntry>

Definition at line 48 of file utility.hpp.

Enumeration Type Documentation

◆ BlendMode

enum class rendering_engine::BlendMode
strong

Specifies how the material handles transparency.

Enumerator
Opaque 
Translucent 

Definition at line 26 of file material_types.hpp.

◆ MaterialDomain

Specifies the rendering domain where the material is used.

Enumerator
Surface3D 
Sprite2D 

Definition at line 17 of file material_types.hpp.

◆ MeshType

enum class rendering_engine::MeshType
strong

Types of supported mesh layouts for GPU upload and rendering.

Enumerator
None 

Undefined or not yet set.

Sprite2D 

2D sprite mesh (typically for UI or simple quads).

Billboard 

3D billboard mesh (sprites that face the camera).

Surface 

Full 3D surface mesh (models with normals/tangents, etc.).

Definition at line 22 of file mesh_data_gpu.hpp.

23{
24 None, ///< Undefined or not yet set.
25 Sprite2D, ///< 2D sprite mesh (typically for UI or simple quads).
26 Billboard, ///< 3D billboard mesh (sprites that face the camera).
27 Surface ///< Full 3D surface mesh (models with normals/tangents, etc.).
28};
@ None
Undefined or not yet set.
@ Surface
Full 3D surface mesh (models with normals/tangents, etc.).
@ Billboard
3D billboard mesh (sprites that face the camera).

◆ ShadingModel

enum class rendering_engine::ShadingModel
strong

Specifies the shading model used by the material.

Enumerator
Lit 
Unlit 

Definition at line 35 of file material_types.hpp.

◆ TextureType

Enumerates supported texture map types for imported materials.

These correspond to common texture slots used in 3D rendering pipelines and align with Assimp's material texture types. The range [Begin, End] allows easy iteration through all supported types.

Enumerator
Difffuse 
SpecularMap 
Ambient 
Emissive 
Heightmap 
NormalMap 
SpecularPowerMap 
DisplacementMap 
LightMap 
Begin 
End 

Definition at line 24 of file model_material.hpp.

Variable Documentation

◆ Camera2D

class RE_API rendering_engine::Camera2D

Definition at line 14 of file drawable_2d.hpp.

◆ enableValidationLayers

const bool rendering_engine::enableValidationLayers = true

Definition at line 23 of file vulkan_renderer.cpp.

◆ MAX_FRAMES_IN_FLIGHT

const int rendering_engine::MAX_FRAMES_IN_FLIGHT = 2

Number of frames that can be processed simultaneously (double buffering).

Definition at line 20 of file vulkan_renderer.hpp.

◆ sPackEntries

PackEntries rendering_engine::sPackEntries
static

Definition at line 19 of file utility.cpp.

◆ sPackEntriesLoaded

bool rendering_engine::sPackEntriesLoaded = false
static

Definition at line 20 of file utility.cpp.