11#include "misc/Error.h"
12#include "render/general/resources/UploadBuffer.h"
13#include "material/TextureManager.h"
14#include "render/general/resources/shadow/ShadowMapManager.h"
21 enum class ResourceUsageType {
29 enum class ShaderReadWriteTextureResourceFormat {
80 const std::string& sResourceName,
const std::filesystem::path& pathToTextureFile) = 0;
111 const std::string& sResourceName,
112 size_t iElementSizeInBytes,
113 size_t iElementCount,
114 std::optional<bool> isUsedInShadersAsArrayResource) = 0;
142 const std::string& sResourceName,
143 const void* pBufferData,
144 size_t iElementSizeInBytes,
145 size_t iElementCount,
146 ResourceUsageType usage,
147 bool bIsShaderReadWriteResource) = 0;
165 const std::string& sResourceName,
166 size_t iElementSizeInBytes,
167 size_t iElementCount,
168 ResourceUsageType usage,
169 bool bIsShaderReadWriteResource) = 0;
182 const std::string& sResourceName,
184 unsigned int iHeight,
185 ShaderReadWriteTextureResourceFormat format) = 0;
247 static std::variant<std::unique_ptr<GpuResourceManager>,
Error>
262 const std::string& sResourceName,
unsigned int iTextureSize,
bool bPointLightColorCubemap) = 0;
Definition: GpuResourceManager.h:42
virtual std::variant< std::unique_ptr< GpuResource >, Error > createResourceWithData(const std::string &sResourceName, const void *pBufferData, size_t iElementSizeInBytes, size_t iElementCount, ResourceUsageType usage, bool bIsShaderReadWriteResource)=0
static std::variant< std::unique_ptr< GpuResourceManager >, Error > createRendererSpecificManager(Renderer *pRenderer)
Definition: GpuResourceManager.cpp:21
void resetShadowMapManager()
Definition: GpuResourceManager.cpp:85
virtual size_t getUsedVideoMemoryInMb() const =0
std::unique_ptr< TextureManager > pTextureManager
Definition: GpuResourceManager.h:291
virtual std::variant< std::unique_ptr< UploadBuffer >, Error > createResourceWithCpuWriteAccess(const std::string &sResourceName, size_t iElementSizeInBytes, size_t iElementCount, std::optional< bool > isUsedInShadersAsArrayResource)=0
Renderer * getRenderer() const
Definition: GpuResourceManager.cpp:12
ShadowMapManager * getShadowMapManager() const
Definition: GpuResourceManager.cpp:16
TextureManager * getTextureManager() const
Definition: GpuResourceManager.cpp:14
virtual size_t getTotalVideoMemoryInMb() const =0
std::atomic< size_t > iAliveResourceCount
Definition: GpuResourceManager.h:297
static std::variant< std::unique_ptr< GpuResourceManager >, Error > create(Renderer *pRenderer)
Definition: GpuResourceManager.cpp:51
virtual std::variant< std::unique_ptr< GpuResource >, Error > createShadowMapTexture(const std::string &sResourceName, unsigned int iTextureSize, bool bPointLightColorCubemap)=0
void resetTextureManager()
Definition: GpuResourceManager.cpp:83
virtual std::variant< std::unique_ptr< GpuResource >, Error > loadTextureFromDisk(const std::string &sResourceName, const std::filesystem::path &pathToTextureFile)=0
std::unique_ptr< ShadowMapManager > pShadowMapManager
Definition: GpuResourceManager.h:294
size_t getTotalAliveResourceCount()
Definition: GpuResourceManager.cpp:18
virtual std::variant< std::unique_ptr< GpuResource >, Error > createShaderReadWriteTextureResource(const std::string &sResourceName, unsigned int iWidth, unsigned int iHeight, ShaderReadWriteTextureResourceFormat format)=0
virtual std::string getCurrentStateInfo()=0
virtual std::variant< std::unique_ptr< GpuResource >, Error > createResource(const std::string &sResourceName, size_t iElementSizeInBytes, size_t iElementCount, ResourceUsageType usage, bool bIsShaderReadWriteResource)=0
Renderer * pRenderer
Definition: GpuResourceManager.h:300
Definition: GpuResource.h:14
Definition: Renderer.h:39
Definition: ShadowMapManager.h:29
Definition: TextureManager.h:84