Add ResourceRegistry
Closed this issue · 0 comments
TheMostDiligent commented
Currently post-processing techniques use simple array as resource cache. A more generic way is to add a ResourceRegistry
class (ResourceCache
would bee conflicting with other components).
The class can look something like this:
class ResourceRegistry
{
public:
using ResourceIdType = Uint32;
void Add(ResourceIdType Id, IDeviceObject* pObject);
ITexture* GetTexture(ResourceIdType Id) const;
ITexture* GetBuffer(ResourceIdType Id) const;
ITextureView* GetTextureSRV(ResourceIdType Id) const;
IBufferView* GetBufferSRV(ResourceIdType Id) const;
// ...
};
You can add development checks to check type, e.g.
ITexture* ResourceRegistry::GetTexture(ResourceIdType Id) const;
{
DEV_CHECK_ERR(RefCntAutoPtr<ITexture>{m_Resources[Id], IID_Texture}, "Resource is not a texture");
}