@@ -15,65 +15,36 @@ namespace nbl::ext::MitsubaLoader
15
15
class CMitsubaSerializedMetadata final : public asset::IAssetMetadata
16
16
{
17
17
public:
18
- class CRenderpassIndependentPipeline : public asset ::IRenderpassIndependentPipelineMetadata
18
+ class CPolygonGeometry : public asset ::IPolygonGeometryMetadata
19
19
{
20
20
public:
21
- CRenderpassIndependentPipeline (CRenderpassIndependentPipeline&& _other) : CRenderpassIndependentPipeline()
22
- {
23
- CRenderpassIndependentPipeline::operator =(std::move (_other));
24
- }
25
- template <typename ... Args>
26
- CRenderpassIndependentPipeline (Args&&... args) : IRenderpassIndependentPipelineMetadata(std::forward<Args>(args)...) {}
27
-
28
- inline CRenderpassIndependentPipeline& operator =(CRenderpassIndependentPipeline&& other)
29
- {
30
- IRenderpassIndependentPipelineMetadata::operator =(std::move (other));
31
- return *this ;
32
- }
33
- };
34
- class CMesh : public asset ::IMeshMetadata
35
- {
36
- public:
37
- inline CMesh () : IMeshMetadata() {}
38
- template <typename ... Args>
39
- inline CMesh (std::string&& _name, const uint32_t _id, Args&&... args) : m_name(std::move(_name)), m_id(_id), IMeshMetadata(std::forward<Args>(args)...) {}
21
+ inline CPolygonGeometry () : IPolygonGeometryMetadata() {}
22
+ inline CPolygonGeometry (std::string&& _name, const uint32_t _id) : m_name(std::move(_name)), m_id(_id) {}
40
23
41
24
std::string m_name;
42
25
uint32_t m_id;
43
26
};
44
27
45
- CMitsubaSerializedMetadata (const uint32_t meshBound, core::smart_refctd_dynamic_array<asset::IRenderpassIndependentPipelineMetadata::ShaderInputSemantic>&& _semanticStorage) :
46
- m_pipelineStorage (asset::IAssetMetadata::createContainer<CRenderpassIndependentPipeline>(meshBound)), m_meshStorage(asset::IAssetMetadata::createContainer<CMesh>(meshBound)), m_semanticStorage(std::move(_semanticStorage))
47
- {
48
- }
28
+ inline CMitsubaSerializedMetadata (const uint32_t meshBound) : m_polygonGeometryStorage(asset::IAssetMetadata::createContainer<CPolygonGeometry>(meshBound)) {}
49
29
50
30
_NBL_STATIC_INLINE_CONSTEXPR const char * LoaderName = " ext::MitsubaLoader::CSerializedLoader" ;
51
31
const char * getLoaderName () const override { return LoaderName; }
52
32
53
33
// !
54
- inline const CRenderpassIndependentPipeline* getAssetSpecificMetadata (const asset::ICPURenderpassIndependentPipeline* asset) const
55
- {
56
- const auto found = IAssetMetadata::getAssetSpecificMetadata (asset);
57
- return static_cast <const CRenderpassIndependentPipeline*>(found);
58
- }
59
- inline const CMesh* getAssetSpecificMetadata (const asset::ICPUMesh* asset) const
34
+ inline const CPolygonGeometry* getAssetSpecificMetadata (const asset::ICPUPolygonGeometry* asset) const
60
35
{
61
36
const auto found = IAssetMetadata::getAssetSpecificMetadata (asset);
62
- return static_cast <const CMesh *>(found);
37
+ return static_cast <const CPolygonGeometry *>(found);
63
38
}
64
39
65
40
private:
66
- meta_container_t <CRenderpassIndependentPipeline> m_pipelineStorage;
67
- meta_container_t <CMesh> m_meshStorage;
68
- core::smart_refctd_dynamic_array<asset::IRenderpassIndependentPipelineMetadata::ShaderInputSemantic> m_semanticStorage;
41
+ meta_container_t <CPolygonGeometry> m_polygonGeometryStorage;
69
42
70
43
friend class CSerializedLoader ;
71
- inline void placeMeta (uint32_t offset, const asset::ICPURenderpassIndependentPipeline* ppln, const asset::ICPUMesh* mesh, CMesh && meshMeta )
44
+ inline void placeMeta (uint32_t offset, const asset::ICPUPolygonGeometry* geo, CPolygonGeometry && geoMeta )
72
45
{
73
- auto & pplnMetaRef = m_pipelineStorage->operator [](offset) = CRenderpassIndependentPipeline (core::SRange<const asset::IRenderpassIndependentPipelineMetadata::ShaderInputSemantic>(m_semanticStorage->begin (),m_semanticStorage->end ()));
74
- auto & meshMetaRef = m_meshStorage->operator [](offset) = std::move (meshMeta);
75
- IAssetMetadata::insertAssetSpecificMetadata (ppln,&pplnMetaRef);
76
- IAssetMetadata::insertAssetSpecificMetadata (mesh,&meshMetaRef);
46
+ auto & geoMetaRef = m_polygonGeometryStorage->operator [](offset) = std::move (geoMeta);
47
+ IAssetMetadata::insertAssetSpecificMetadata (geo,&geoMetaRef);
77
48
}
78
49
};
79
50
0 commit comments