@@ -55,16 +55,6 @@ namespace Diligent
5555namespace
5656{
5757
58- constexpr Uint64 RadientDefaultIndexBufferSize = 16ull * 1024ull * 1024ull ;
59- constexpr Uint64 RadientDefaultMaxIndexBufferSize = 256ull * 1024ull * 1024ull ;
60- constexpr Uint64 RadientDefaultMorphTargetBufferSize = 1024ull * 1024ull ;
61- constexpr Uint64 RadientDefaultMaxMorphTargetBufferSize = 256ull * 1024ull * 1024ull ;
62- constexpr Uint32 RadientDefaultVertexPoolSize = 1024u * 1024u ;
63- constexpr Uint32 RadientDefaultTextureAtlasSize = 2048u ;
64- constexpr Uint64 RadientDefaultTextureAtlasMipLevel0Size = 16ull * 1024ull * 1024ull ;
65- constexpr Uint32 RadientDefaultTextureAtlasSlices = 1u ;
66- constexpr Uint32 RadientDefaultTextureAtlasMaxSlices = 2048u ;
67-
6858static constexpr INTERFACE_ID IID_SceneAssetImpl = {0xb59806f1 , 0xa08a , 0x4dff , {0xb0 , 0x37 , 0x84 , 0x75 , 0xd6 , 0xfd , 0x7f , 0x1b }};
6959
7060struct ImportedSceneStorage
@@ -196,52 +186,52 @@ struct ImportedSceneStorage
196186 mutable std::atomic<RADIENT_STATUS > GPUResourceStatus{RADIENT_STATUS_OK };
197187};
198188
199- GLTF ::ResourceManager::CreateInfo CreateResourceManagerInfo ()
189+ GLTF ::ResourceManager::CreateInfo CreateResourceManagerInfo (const RadientResourceManagerCreateInfo& ResourceCI )
200190{
201191 GLTF ::ResourceManager::CreateInfo CreateInfo;
202192
203193 CreateInfo.IndexAllocatorCI .Desc .Name = " Radient index pool" ;
204- CreateInfo.IndexAllocatorCI .Desc .Size = RadientDefaultIndexBufferSize ;
194+ CreateInfo.IndexAllocatorCI .Desc .Size = ResourceCI. IndexBufferSize ;
205195 CreateInfo.IndexAllocatorCI .Desc .Usage = USAGE_DEFAULT ;
206196 CreateInfo.IndexAllocatorCI .Desc .BindFlags = BIND_INDEX_BUFFER ;
207- CreateInfo.IndexAllocatorCI .ExpansionSize = static_cast <Uint32>(RadientDefaultIndexBufferSize) ;
208- CreateInfo.IndexAllocatorCI .MaxSize = RadientDefaultMaxIndexBufferSize ;
197+ CreateInfo.IndexAllocatorCI .ExpansionSize = ResourceCI. IndexBufferSize ;
198+ CreateInfo.IndexAllocatorCI .MaxSize = ResourceCI. MaxIndexBufferSize ;
209199
210200 CreateInfo.MorphTargetAllocatorCI .Desc .Name = " Radient morph target buffer" ;
211- CreateInfo.MorphTargetAllocatorCI .Desc .Size = RadientDefaultMorphTargetBufferSize ;
201+ CreateInfo.MorphTargetAllocatorCI .Desc .Size = ResourceCI. MorphTargetBufferSize ;
212202 CreateInfo.MorphTargetAllocatorCI .Desc .Usage = USAGE_DEFAULT ;
213203 CreateInfo.MorphTargetAllocatorCI .Desc .BindFlags = BIND_SHADER_RESOURCE ;
214204 CreateInfo.MorphTargetAllocatorCI .Desc .Mode = BUFFER_MODE_STRUCTURED ;
215205 CreateInfo.MorphTargetAllocatorCI .Desc .ElementByteStride = sizeof (Float32);
216- CreateInfo.MorphTargetAllocatorCI .ExpansionSize = static_cast <Uint32>(RadientDefaultMorphTargetBufferSize) ;
217- CreateInfo.MorphTargetAllocatorCI .MaxSize = RadientDefaultMaxMorphTargetBufferSize ;
206+ CreateInfo.MorphTargetAllocatorCI .ExpansionSize = ResourceCI. MorphTargetBufferSize ;
207+ CreateInfo.MorphTargetAllocatorCI .MaxSize = ResourceCI. MaxMorphTargetBufferSize ;
218208
219209 CreateInfo.DefaultPoolDesc .Name = " Radient vertex pool" ;
220- CreateInfo.DefaultPoolDesc .VertexCount = RadientDefaultVertexPoolSize ;
210+ CreateInfo.DefaultPoolDesc .VertexCount = ResourceCI. VertexPoolSize ;
221211 CreateInfo.DefaultPoolDesc .Usage = USAGE_DEFAULT ;
222212 CreateInfo.DefaultPoolDesc .Mode = BUFFER_MODE_UNDEFINED ;
223213
224214 CreateInfo.DefaultAtlasDesc .Desc .Name = " Radient texture atlas" ;
225215 CreateInfo.DefaultAtlasDesc .Desc .Type = RESOURCE_DIM_TEX_2D_ARRAY ;
226- CreateInfo.DefaultAtlasDesc .Desc .Width = RadientDefaultTextureAtlasSize ;
227- CreateInfo.DefaultAtlasDesc .Desc .Height = RadientDefaultTextureAtlasSize ;
216+ CreateInfo.DefaultAtlasDesc .Desc .Width = ResourceCI. TextureAtlasSize ;
217+ CreateInfo.DefaultAtlasDesc .Desc .Height = ResourceCI. TextureAtlasSize ;
228218 CreateInfo.DefaultAtlasDesc .Desc .MipLevels = 0 ;
229- CreateInfo.DefaultAtlasDesc .Desc .ArraySize = RadientDefaultTextureAtlasSlices ;
219+ CreateInfo.DefaultAtlasDesc .Desc .ArraySize = ResourceCI. TextureAtlasSlices ;
230220 CreateInfo.DefaultAtlasDesc .Desc .Format = TEX_FORMAT_RGBA8_TYPELESS ;
231221 CreateInfo.DefaultAtlasDesc .Desc .Usage = USAGE_DEFAULT ;
232222 CreateInfo.DefaultAtlasDesc .Desc .BindFlags = BIND_SHADER_RESOURCE ;
233- CreateInfo.DefaultAtlasDesc .MaxSliceCount = RadientDefaultTextureAtlasMaxSlices ;
234- CreateInfo.DefaultAtlasMipLevel0Size = RadientDefaultTextureAtlasMipLevel0Size ;
223+ CreateInfo.DefaultAtlasDesc .MaxSliceCount = ResourceCI. TextureAtlasMaxSlices ;
224+ CreateInfo.DefaultAtlasMipLevel0Size = ResourceCI. TextureAtlasMipLevel0Size ;
235225
236226 return CreateInfo;
237227}
238228
239- RefCntAutoPtr<GLTF ::ResourceManager> CreateRadientResourceManager (IRenderDevice* pDevice)
229+ RefCntAutoPtr<GLTF ::ResourceManager> CreateRadientResourceManager (IRenderDevice* pDevice, const RadientResourceManagerCreateInfo& ResourceCI )
240230{
241231 if (pDevice == nullptr )
242232 return {};
243233
244- return GLTF::ResourceManager::Create (pDevice, CreateResourceManagerInfo ());
234+ return GLTF::ResourceManager::Create (pDevice, CreateResourceManagerInfo (ResourceCI ));
245235}
246236
247237RefCntAutoPtr<IGPUUploadManager> CreateRadientGPUUploadManager (IRenderDevice* pDevice)
@@ -404,7 +394,7 @@ RadientAssetManagerImpl::RadientAssetManagerImpl(IReferenceCounters* pRefCounter
404394 m_pThreadPool{CreateInfo.pThreadPool },
405395 m_pDevice{CreateInfo.pDevice },
406396 m_pAssetResolver{GetRadientAssetResolverOrDefault (CreateInfo.Assets .pAssetResolver )},
407- m_pResourceManager{CreateRadientResourceManager (CreateInfo.pDevice )},
397+ m_pResourceManager{CreateRadientResourceManager (CreateInfo.pDevice , CreateInfo. Resources )},
408398 m_pUploadManager{CreateRadientGPUUploadManager (CreateInfo.pDevice )},
409399 m_pTextureManager{
410400 RadientTextureAssetManager::Create (
0 commit comments