52 void submitAsset(
const std::filesystem::path &asset);
58 void tick(
bool async =
true);
106 void submitAsset(
const std::filesystem::path &asset);
108 void tick(
bool async =
true);
void setRenderingDataManager(EngineCore::RenderingDataManager *rdm)
Sets the RenderingDataManager to notify when meshes/materials are loaded.
NamedThreadPool * assetLoaderPool
void submitLoadModel(bool async=true)
void processMeshData(bool async=true)
std::vector< Ecs::CompletedMeshletGeneration > pendingMeshletCompletions_
std::vector< Ecs::CompletedMeshletGeneration > takePendingMeshletCompletions()
Get and clear pending meshlet completions. Call this at a safe point to retrieve completed meshlet ge...
ModelAssetPipeline(EngineCore::MeshAssetManager *meshAssetManager, EngineCore::MaterialAssetManager *materialAssetManager, EngineCore::ModelAssetManager *modelAssetManager, EngineCore::TextureAssetManager *textureAssetManager, NamedThreadPool *assetLoaderPool, EngineCore::AssetManager *assetManager=nullptr)
std::vector< std::filesystem::path > assetQueue
EngineCore::TextureAssetManager * textureAssetManager
std::vector< std::future< Ecs::CompletedMeshletGeneration > > meshletGenerationFutures
void processModel(bool async=true)
void processTextures(EngineCore::ModelAsset *modelAsset, const std::filesystem::path &modelPath)
Extracts and registers texture assets from loaded glTF models.
EngineCore::GltfLoader * loader
std::vector< Ecs::GltfModelFuture > modelLoadingFutures
std::vector< std::future< Ecs::PrimitiveDataLoading > > primitiveDataFutures
void tick(bool async=true)
EngineCore::MeshAssetManager * meshAssetManager
NamedThreadPool * threadPool
std::vector< std::future< Ecs::MaterialLoadingData > > materialFutures
void submitAsset(const std::filesystem::path &asset)
Requests the load of a gltf file.
void processMaterial(bool async=true)
EngineCore::RenderingDataManager * renderingDataManager
EngineCore::MaterialAssetManager * materialAssetManager
EngineCore::AssetManager * assetManager_
For TextureHandleRegistry access.
EngineCore::ModelAssetManager * modelAssetManager
NamedThreadPool * assetLoaderPool
EngineCore::TextureAssetManager * textureAssetManager
void tick(bool async=true)
Advances the state machine for the entire pipeline.
void requestExrHeaders(bool async=true)
void setRenderingDataManager(EngineCore::RenderingDataManager *rdm)
Sets the RenderingDataManager to notify when textures are loaded.
std::vector< std::filesystem::path > assetQueue
std::vector< Ecs::AssetLoadingImage > imageFutures
EngineCore::RenderingDataManager * renderingDataManager
std::vector< Ecs::ExrHeaderFuture > headerFutures
void retrieveImageData(bool async=true)
void loadImageData(bool async=true)
TextureAssetPipeline(EngineCore::TextureAssetManager *textureAssetManager, NamedThreadPool *assetLoaderPool)
void submitAsset(const std::filesystem::path &asset)
submit the path to an asset relative from the executable to load
Stores mesh data with their primitives.
The model asset is used to bind together all files of one gtlf model. The idea is that textures,...
The rendering data manager is supposed to hold all methods to update the contents of the buffers whic...
Tracy-named thread pool using BS_tracy::tracy_thread_pool.
Data structs for the Entity Component System.
Log category system implementation.