Vulkan Schnee 0.0.1 (22840dc8)
High-performance rendering engine
Loading...
Searching...
No Matches
AssetImportPipeline.h
1#pragma once
2#include <filesystem>
3
4#include "Engine/Ecs/TextureAssetPipeline.h"
5#include "Engine/Ecs/ModelAssetPipeline.h"
6#include "Engine/Ecs/AudioAssetPipeline.h"
7
8class NamedThreadPool;
9
10namespace Engine::Assets
11{
15 class MeshAssetManager;
16 class ModelAssetManager;
17 class SkinAssetManager;
19} // namespace Engine::Assets
20
21namespace Engine::Core
22{
23 class AssetManager;
24 class RenderingDataManager;
25}
26
27namespace Engine::Ecs
28{
38 public:
52 Assets::TextureAssetManager * textureAssetManager,
53 Assets::MeshAssetManager * meshAssetManager,
54 Assets::MaterialAssetManager * materialAssetManager,
55 Assets::ModelAssetManager * modelAssetManager,
56 Assets::SkinAssetManager * skinAssetManager,
57 Assets::AnimationAssetManager * animationAssetManager,
58 Assets::AudioAssetManager * audioAssetManager,
59 NamedThreadPool * assetLoaderPool,
60 Core::AssetManager * assetManager = nullptr
61 );
62
67 void submitAsset(const std::filesystem::path &asset);
68
73 void tick(bool async = true);
74
79
85 void setRenderingDataManager( Core::RenderingDataManager * renderingDataManager);
86
91
96
101
102 private:
106 };
107
108} // namespace Engine::Ecs
Stores animation clips keyed by their source mesh path.
Manages audio assets by filesystem path, providing dedup and lookup.
Definition AudioAsset.h:80
Asset manager for materials keyed by source file path and material name.
Stores mesh data with their primitives.
Definition MeshAsset.h:51
Stores skin and skeleton binding data keyed by source mesh path.
Definition SkinAsset.h:93
Asset manager for texture assets keyed by filesystem path.
Coordinates engine asset loading pipelines and runtime texture descriptor ownership.
void submitAsset(const std::filesystem::path &asset)
Submit a path to an asset for loading, dispatched to the correct sub-pipeline by extension.
ModelAssetPipeline & getModelAssetPipeline()
Gets the glTF model loading sub-pipeline.
void tick(bool async=true)
Advances all sub-pipelines in dependency order (texture, model, audio).
void discardPendingWork()
Clears all queued and in-flight loading work in every sub-pipeline.
void setRenderingDataManager(Core::RenderingDataManager *renderingDataManager)
Wires the RenderingDataManager into the sub-pipelines and links the model pipeline to this master for...
AudioAssetPipeline & getAudioAssetPipeline()
Gets the audio loading sub-pipeline.
AssetImportPipeline(Assets::TextureAssetManager *textureAssetManager, Assets::MeshAssetManager *meshAssetManager, Assets::MaterialAssetManager *materialAssetManager, Assets::ModelAssetManager *modelAssetManager, Assets::SkinAssetManager *skinAssetManager, Assets::AnimationAssetManager *animationAssetManager, Assets::AudioAssetManager *audioAssetManager, NamedThreadPool *assetLoaderPool, Core::AssetManager *assetManager=nullptr)
Create the master asset import pipeline and its sub-pipelines.
TextureAssetPipeline & getTextureAssetPipeline()
Gets the texture loading sub-pipeline.
Async pipeline for loading audio assets (WAV, FLAC, MP3)
The model asset pipeline loads a gltf scene and loads and loads the mesh and material data....
Infrastructure to load images into the ecs.
EnTT component data used by engine systems.