Vulkan Schnee 0.0.1
High-performance rendering engine
Loading...
Searching...
No Matches
EcsData.h File Reference
#include "Engine/Entity/Entity.h"
#include "Engine/Files/AssetPath.h"
#include "Engine/Mesh/Vertex.h"
#include "Engine/Renderer/RenderData.h"
#include "Engine/Texture/ExrLoader.h"
#include "entt/entt.hpp"
#include "meshoptimizer.h"
#include "tiny_gltf.h"
#include <filesystem>
#include <future>
#include <glm/glm.hpp>
#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  Ecs::AssetLoadingImage
struct  Ecs::Parent
 Stores parent relationships. More...
struct  Ecs::AssetRequested
 Is a tag for asset loading. When an asset has been rquested for loading but isnt yet created this tag is applied to the entity which will possess the Ecs::StaticMeshData. More...
struct  Ecs::StaticMeshData
struct  Ecs::StaticMeshes
struct  Ecs::ExrHeaderData
struct  Ecs::ExrHeaderFuture
struct  Ecs::GltfModelFuture
struct  Ecs::MaterialLoadingData
struct  Ecs::ImageData
struct  Ecs::Model
struct  Ecs::SimulatesPhysics
 Tag for EnTT which tags entities which should simulate physics. More...
struct  Ecs::TransformDirty
 Tag for dirty transforms (used by scene graph synchronization) More...
struct  Ecs::TransformDirtyRenderer
 Tag for transforms that need GPU upload. Separate from TransformDirty because the renderer clears this after upload, while TransformDirty is cleared during scene graph sync. This allows transforms changed in tick/events to be properly uploaded. More...
struct  Ecs::SceneNodeRef
 A struct which allows the engine to find out which SceneNode needs to propagate a dirty flag down the hierarchy. More...
struct  Ecs::MeshComponentRef
 Reference to a MeshComponent for ECS-based iteration. Allows efficient querying of all mesh components without iterating all actors. More...
struct  Ecs::Tick
 Tag for everything which wants to receive tick events. More...
struct  Ecs::MeshIndex
 The index of the mesh inside the scene. Used to query the mesh index of a scene. More...
struct  Ecs::Mesh
struct  Ecs::ModelNode
struct  Ecs::PrimitiveData
struct  Ecs::MeshletData
struct  Ecs::PrimitiveDataLoading
struct  Ecs::BoundingSphere
 A bounding sphere for an entity. Used for frustum culling. More...
struct  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  Ecs::UnpackedMeshletData
 Pre-packed GPU-ready data for a primitive's meshlets. Generated on background thread during meshlet generation. More...
struct  Ecs::LodHierarchyResult
 Result of LOD hierarchy generation for a mesh primitive. Contains per-cluster and per-group data for all LOD levels. More...
struct  Ecs::PrimitiveMeshletResult
 Result of meshlet generation for a single primitive. Used to transfer data from background thread to main thread safely. More...
struct  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  Ecs::MeshPrimitive
struct  Ecs::MeshPrimitiveData
struct  Ecs::MaterialDiffuseFlatColor
struct  Ecs::MaterialNormals
struct  Ecs::ModelFuture
struct  Ecs::LocalTransform
struct  Ecs::WorldTransform
struct  Ecs::TransformDepth
struct  Ecs::ActiveCamera
 Tag for the active camera in the scene. More...
struct  Ecs::CameraProperties
 Camera properties for projection matrix calculation. More...
 Metadata about a primitive being loaded from gltf file. More...
struct  Ecs::RawMeshData
 Raw mesh geometry data extracted from gltf file Contains unprocessed vertices and indices. More...
struct  Ecs::AssetLoadingStatus
 Status information for asset loading pipeline. More...
struct  Ecs::PipelineGeometryData
 Temporary holder for raw geometry data during pipeline execution This is used to pass data between pipeline stages. More...

Namespaces

namespace  EngineCore
 Log category system implementation.
namespace  Ecs
 Data structs for the Entity Component System.
namespace  Ecs::AssetPipeline

Typedefs

using Ecs::Meshlet = meshopt_Meshlet
 information about the vertex and index data of a single meshlet
using Ecs::UnpackedTriangle = PackedTriangle

Enumerations

enum class  Ecs::AssetLoadingStage : uint8_t {
  Ecs::Pending = 0 ,
  Ecs::MetadataExtracted = 1 ,
  Ecs::MaterialLoaded = 2 ,
  Ecs::GeometryValidated = 3 ,
  Ecs::GeometryExtracted = 4 ,
  Ecs::VerticesAssembled = 5 ,
  Ecs::Complete = 6 ,
  Ecs::Failed = 7
}
 Tracks the current stage of asset loading in the pipeline. More...