|
Vulkan Schnee 0.0.1
High-performance rendering engine
|
#include "Engine/Core/Asset.h"#include "Engine/Entity/Entity.h"#include "Engine/Files/AssetPath.h"#include "Engine/Mesh/MeshAssetRef.h"#include "Engine/Mesh/Vertex.h"#include "Engine/Renderer/RenderData.h"#include "Engine/Texture/ExrLoader.h"#include "Engine/Texture/Ktx2Loader.h"#include "entt/entt.hpp"#include "meshoptimizer.h"#include "tiny_gltf.h"#include <filesystem>#include <future>#include <glm/glm.hpp>#include <glm/gtc/quaternion.hpp>#include <memory>#include <optional>#include <string>#include <vector>Go to the source code of this file.
Classes | |
| struct | Engine::Ecs::AssetLoadingImage |
| struct | Engine::Ecs::Parent |
| Stores parent relationships. More... | |
| struct | Engine::Ecs::AssetRequested |
| Is a tag for asset loading. When an asset has been requested for loading but isn't yet created this tag is applied to the entity which will possess the Ecs::StaticMeshData. More... | |
| struct | Engine::Ecs::StaticMeshData |
| struct | Engine::Ecs::StaticMeshes |
| struct | Engine::Ecs::ExrHeaderData |
| struct | Engine::Ecs::ExrHeaderFuture |
| struct | Engine::Ecs::Ktx2LoadFuture |
| struct | Engine::Ecs::GltfModelFuture |
| struct | Engine::Ecs::MaterialLoadingData |
| struct | Engine::Ecs::ImageData |
| struct | Engine::Ecs::Model |
| struct | Engine::Ecs::SimulatesPhysics |
| Tag for EnTT which tags entities which should simulate physics. More... | |
| struct | Engine::Ecs::TransformDirty |
| Tag for dirty transforms (used by scene graph synchronization) More... | |
| struct | Engine::Ecs::TransformDirtyRenderer |
| Tag for transforms that need GPU upload. More... | |
| struct | Engine::Ecs::RendererDirtyList |
| Global dirty entity collector for renderer transform uploads. More... | |
| struct | Engine::Ecs::SceneNodeRef |
| A struct which allows the engine to find out which SceneNode needs to propagate a dirty flag down the hierarchy. More... | |
| struct | Engine::Ecs::MeshComponentRef |
| Reference to a MeshComponent for ECS-based iteration. Allows efficient querying of all mesh components without iterating all actors. More... | |
| struct | Engine::Ecs::Tick |
| Tag for everything which wants to receive tick events. More... | |
| struct | Engine::Ecs::MeshIndex |
| The index of the mesh inside the scene. Used to query the mesh index of a scene. More... | |
| struct | Engine::Ecs::Mesh |
| struct | Engine::Ecs::ModelNode |
| struct | Engine::Ecs::PrimitiveData |
| struct | Engine::Ecs::MeshletData |
| struct | Engine::Ecs::PrimitiveDataLoading |
| struct | Engine::Ecs::BoundingSphere |
| A bounding sphere for an entity. Used for frustum culling. More... | |
| struct | Engine::Ecs::PackedTriangle |
| GPU-ready packed triangle data (matches shader layout). Stores 3 x 8-bit local indices packed into a single uint32_t. Packing: [unused:8][i2:8][i1:8][i0:8] - bits 31-24, 23-16, 15-8, 7-0 This provides 4x bandwidth reduction vs unpacked format. More... | |
| struct | Engine::Ecs::UnpackedMeshletData |
| Pre-packed GPU-ready data for a primitive's meshlets. Generated on background thread during meshlet generation. More... | |
| struct | Engine::Ecs::LodHierarchyResult |
| Result of LOD hierarchy generation for a mesh primitive. Contains per-cluster and per-group data for all LOD levels. More... | |
| struct | Engine::Ecs::PrimitiveMeshletResult |
| Result of meshlet generation for a single primitive. Used to transfer data from background thread to main thread safely. More... | |
| struct | Engine::Ecs::CompletedMeshletGeneration |
| Complete result of meshlet generation for all primitives of a mesh. This is returned from the background meshlet generation task and queued for processing on the main thread at a safe point. More... | |
| struct | Engine::Ecs::MeshPrimitive |
| struct | Engine::Ecs::MeshPrimitiveData |
| struct | Engine::Ecs::MaterialDiffuseFlatColor |
| struct | Engine::Ecs::MaterialNormals |
| struct | Engine::Ecs::ModelFuture |
| struct | Engine::Ecs::Transform |
| struct | Engine::Ecs::WorldTransform |
| struct | Engine::Ecs::TransformDepth |
| struct | Engine::Ecs::ActiveCamera |
| Tag for the active camera in the scene. More... | |
| struct | Engine::Ecs::CameraProperties |
| Camera properties for projection matrix calculation. More... | |
| struct | Engine::Ecs::LightData |
| Tag for ECS entities that provide renderer light data. More... | |
| struct | Engine::Ecs::DirectionalLightData |
| Runtime directional light data mirrored from Components::DirectionalLight. sceneNodeEntity points to the transform used to derive the light direction unless hasDirectionOverride is set. More... | |
| struct | Engine::Ecs::PointLightData |
| Runtime point light data mirrored from Components::PointLight. sceneNodeEntity points to the transform used as the light position. More... | |
| struct | Engine::Ecs::PrimitiveMetaData |
| Metadata about a primitive being loaded from gltf file. More... | |
| struct | Engine::Ecs::RawMeshData |
| Raw mesh geometry data extracted from gltf file Contains unprocessed vertices and indices. More... | |
| struct | Engine::Ecs::AssetLoadingStatus |
| Status information for asset loading pipeline. More... | |
| struct | Engine::Ecs::PipelineGeometryData |
| Temporary holder for raw geometry data during pipeline execution This is used to pass data between pipeline stages. More... | |
| struct | Engine::Ecs::SkeletalMeshData |
| Skeletal mesh data component. Similar to StaticMeshData but references skin/animation. More... | |
| struct | Engine::Ecs::AnimationState |
| Animation playback state for an entity with a skeletal mesh. More... | |
| struct | Engine::Ecs::BoneTransformsDirty |
| Tag component indicating bone transforms need GPU upload. Analogous to TransformDirty for world transforms. More... | |
| struct | Engine::Ecs::ComputedBoneTransforms |
| Stores computed bone matrices for GPU upload. More... | |
| struct | Engine::Ecs::VRTrackingInput |
| VR tracking input populated from OpenXR each frame. Used by the IK system to drive skeletal animation from controller poses. More... | |
| struct | Engine::Ecs::VRTrackingInput::DevicePose |
Namespaces | |
| namespace | Engine |
| namespace | Engine::Components |
| namespace | Engine::Entities |
| namespace | Engine::Core |
| Core audio subsystem owning the miniaudio engine and managing playback. | |
| namespace | Engine::Rendering |
| namespace | Engine::Assets |
| namespace | Ecs |
| Data structs for the Entity Component System. | |
| namespace | Engine::Ecs |
| namespace | Engine::Ecs::AssetPipeline |
Typedefs | |
| using | Engine::Ecs::Meshlet = meshopt_Meshlet |
| information about the vertex and index data of a single meshlet | |
| using | Engine::Ecs::UnpackedTriangle = PackedTriangle |
Enumerations | |
| enum class | Engine::Ecs::AssetLoadingStage : uint8_t { Engine::Ecs::PENDING = 0 , Engine::Ecs::METADATA_EXTRACTED = 1 , Engine::Ecs::MATERIAL_LOADED = 2 , Engine::Ecs::GEOMETRY_VALIDATED = 3 , Engine::Ecs::GEOMETRY_EXTRACTED = 4 , Engine::Ecs::VERTICES_ASSEMBLED = 5 , Engine::Ecs::COMPLETE = 6 , Engine::Ecs::FAILED = 7 } |
| Tracks the current stage of asset loading in the pipeline. More... | |