Vulkan Schnee 0.0.1
High-performance rendering engine
Loading...
Searching...
No Matches
EcsData.h File Reference
#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>
Include dependency graph for EcsData.h:
This graph shows which files directly or indirectly include this file:

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...
 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...