8#include <unordered_map>
9#include <unordered_set>
12#include "shader/general/resources/ShaderResource.h"
13#include "shader/general/resources/cpuwrite/ShaderCpuWriteResourceUniquePtr.h"
14#include "render/general/resources/frame/FrameResourcesManager.h"
37 std::unordered_map<ShaderCpuWriteResource*, std::unique_ptr<ShaderCpuWriteResource>>
all;
41 std::unordered_set<ShaderCpuWriteResource*>,
74 const std::string& sShaderResourceName,
75 const std::string& sResourceAdditionalInfo,
76 size_t iResourceSizeInBytes,
77 const std::unordered_set<Pipeline*>& pipelinesToUse,
78 const std::function<
void*()>& onStartedUpdatingResource,
79 const std::function<
void()>& onFinishedUpdatingResource);
103 std::pair<std::recursive_mutex, Resources>*
getResources();
120 std::variant<ShaderCpuWriteResourceUniquePtr, Error>
static constexpr unsigned int getFrameResourcesCount()
Definition: FrameResourcesManager.h:74
Definition: Renderer.h:39
Definition: ShaderCpuWriteResourceManager.h:21
std::pair< std::recursive_mutex, Resources > mtxShaderCpuWriteResources
Definition: ShaderCpuWriteResourceManager.h:135
Renderer * pRenderer
Definition: ShaderCpuWriteResourceManager.h:132
~ShaderCpuWriteResourceManager()
Definition: ShaderCpuWriteResourceManager.cpp:183
void updateResources(size_t iCurrentFrameResourceIndex)
Definition: ShaderCpuWriteResourceManager.cpp:79
std::pair< std::recursive_mutex, Resources > * getResources()
Definition: ShaderCpuWriteResourceManager.cpp:175
std::variant< ShaderCpuWriteResourceUniquePtr, Error > createShaderCpuWriteResource(const std::string &sShaderResourceName, const std::string &sResourceAdditionalInfo, size_t iResourceSizeInBytes, const std::unordered_set< Pipeline * > &pipelinesToUse, const std::function< void *()> &onStartedUpdatingResource, const std::function< void()> &onFinishedUpdatingResource)
Definition: ShaderCpuWriteResourceManager.cpp:17
std::variant< ShaderCpuWriteResourceUniquePtr, Error > handleResourceCreation(std::variant< std::unique_ptr< ShaderCpuWriteResource >, Error > result)
Definition: ShaderCpuWriteResourceManager.cpp:54
void markResourceAsNeedsUpdate(ShaderCpuWriteResource *pResourceToDestroy)
Definition: ShaderCpuWriteResourceManager.cpp:132
void destroyResource(ShaderCpuWriteResource *pResourceToDestroy)
Definition: ShaderCpuWriteResourceManager.cpp:154
Definition: ShaderCpuWriteResourceUniquePtr.h:17
Definition: ShaderResource.h:120
Definition: ShaderCpuWriteResourceManager.h:30
std::array< std::unordered_set< ShaderCpuWriteResource * >, FrameResourcesManager::getFrameResourcesCount()> vToBeUpdated
Definition: ShaderCpuWriteResourceManager.h:43
std::unordered_map< ShaderCpuWriteResource *, std::unique_ptr< ShaderCpuWriteResource > > all
Definition: ShaderCpuWriteResourceManager.h:37