Vulkan Schnee 0.0.1
High-performance rendering engine
Loading...
Searching...
No Matches
Ecs::TextureAssetPipeline Class Reference

Infrastructure to load images into the ecs. More...

#include <FrameProcessing.h>

Collaboration diagram for Ecs::TextureAssetPipeline:

Public Member Functions

 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
void tick (bool async=true)
 Advances the state machine for the entire pipeline.
void setRenderingDataManager (EngineCore::RenderingDataManager *rdm)
 Sets the RenderingDataManager to notify when textures are loaded.

Private Member Functions

void requestExrHeaders (bool async=true)
void loadImageData (bool async=true)
void retrieveImageData (bool async=true)

Private Attributes

EngineCore::TextureAssetManagertextureAssetManager
EngineCore::RenderingDataManagerrenderingDataManager = nullptr
NamedThreadPoolassetLoaderPool = nullptr
std::vector< std::filesystem::path > assetQueue
std::vector< Ecs::ExrHeaderFutureheaderFutures
std::vector< Ecs::AssetLoadingImageimageFutures

Friends

class EngineCore::AssetManager
class EngineCore::Engine

Detailed Description

Infrastructure to load images into the ecs.

Author
Konstantin Passig
Date
03.12.2025

Definition at line 37 of file FrameProcessing.h.

Constructor & Destructor Documentation

◆ TextureAssetPipeline()

Ecs::TextureAssetPipeline::TextureAssetPipeline ( EngineCore::TextureAssetManager * textureAssetManager,
NamedThreadPool * assetLoaderPool )

Definition at line 31 of file FrameProcessing.cpp.

References assetLoaderPool, and textureAssetManager.

Member Function Documentation

◆ loadImageData()

void Ecs::TextureAssetPipeline::loadImageData ( bool async = true)
private

Definition at line 73 of file FrameProcessing.cpp.

References assetLoaderPool, headerFutures, imageFutures, EngineCore::ExrLoader::load(), textureAssetManager, and TRACY_ZONE_SCOPED_NAMED_ASSET.

Referenced by tick().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ requestExrHeaders()

void Ecs::TextureAssetPipeline::requestExrHeaders ( bool async = true)
private

Definition at line 50 of file FrameProcessing.cpp.

References assetLoaderPool, assetQueue, headerFutures, EngineCore::ExrLoader::loadHeader(), and TRACY_ZONE_SCOPED_NAMED_ASSET.

Referenced by tick().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ retrieveImageData()

void Ecs::TextureAssetPipeline::retrieveImageData ( bool async = true)
private

Definition at line 115 of file FrameProcessing.cpp.

References imageFutures, renderingDataManager, textureAssetManager, TRACY_ZONE_SCOPED_NAMED_ASSET, and TRACY_ZONE_SCOPED_NAMED_D_ASSET.

Referenced by tick().

Here is the caller graph for this function:

◆ setRenderingDataManager()

void Ecs::TextureAssetPipeline::setRenderingDataManager ( EngineCore::RenderingDataManager * rdm)
inline

Sets the RenderingDataManager to notify when textures are loaded.

Parameters
rdmPointer to the RenderingDataManager
Author
Konstantin Passig
Date
2026-01-15

Definition at line 67 of file FrameProcessing.h.

References renderingDataManager.

◆ submitAsset()

void Ecs::TextureAssetPipeline::submitAsset ( const std::filesystem::path & asset)

submit the path to an asset relative from the executable to load

Parameters
assetrelative path to the texture
Author
Konstantin Passig
Date
03.12.2025

Definition at line 38 of file FrameProcessing.cpp.

References assetQueue.

◆ tick()

void Ecs::TextureAssetPipeline::tick ( bool async = true)

Advances the state machine for the entire pipeline.

Parameters
asyncWhether to run steps asynchronously

Definition at line 43 of file FrameProcessing.cpp.

References loadImageData(), requestExrHeaders(), and retrieveImageData().

Here is the call graph for this function:

◆ EngineCore::AssetManager

friend class EngineCore::AssetManager
friend

Definition at line 38 of file FrameProcessing.h.

◆ EngineCore::Engine

friend class EngineCore::Engine
friend

Definition at line 39 of file FrameProcessing.h.

References assetLoaderPool, and textureAssetManager.

Member Data Documentation

◆ assetLoaderPool

NamedThreadPool* Ecs::TextureAssetPipeline::assetLoaderPool = nullptr
private

◆ assetQueue

std::vector<std::filesystem::path> Ecs::TextureAssetPipeline::assetQueue
private

Definition at line 78 of file FrameProcessing.h.

Referenced by requestExrHeaders(), and submitAsset().

◆ headerFutures

std::vector<Ecs::ExrHeaderFuture> Ecs::TextureAssetPipeline::headerFutures
private

Definition at line 79 of file FrameProcessing.h.

Referenced by loadImageData(), and requestExrHeaders().

◆ imageFutures

std::vector<Ecs::AssetLoadingImage> Ecs::TextureAssetPipeline::imageFutures
private

Definition at line 80 of file FrameProcessing.h.

Referenced by loadImageData(), and retrieveImageData().

◆ renderingDataManager

EngineCore::RenderingDataManager* Ecs::TextureAssetPipeline::renderingDataManager = nullptr
private

Definition at line 75 of file FrameProcessing.h.

Referenced by retrieveImageData(), and setRenderingDataManager().

◆ textureAssetManager

EngineCore::TextureAssetManager* Ecs::TextureAssetPipeline::textureAssetManager
private

The documentation for this class was generated from the following files: