Graphics/MaterialInstance: Add LoadFrom*
This commit is contained in:
parent
5502e51d71
commit
fe0d70d9e1
|
|
@ -39,7 +39,7 @@ namespace Nz
|
|||
using MaterialInstanceManager = ResourceManager<MaterialInstance, MaterialInstanceParams>;
|
||||
using MaterialInstanceSaver = ResourceSaver<MaterialInstance, MaterialInstanceParams>;
|
||||
|
||||
class NAZARA_GRAPHICS_API MaterialInstance : public TransferInterface
|
||||
class NAZARA_GRAPHICS_API MaterialInstance : public Resource, public TransferInterface
|
||||
{
|
||||
struct CopyToken {};
|
||||
|
||||
|
|
@ -106,6 +106,10 @@ namespace Nz
|
|||
|
||||
static constexpr std::size_t InvalidPropertyIndex = MaterialSettings::InvalidPropertyIndex;
|
||||
|
||||
static std::shared_ptr<MaterialInstance> LoadFromFile(const std::filesystem::path& filePath, const MaterialInstanceParams& params = MaterialInstanceParams());
|
||||
static std::shared_ptr<MaterialInstance> LoadFromMemory(const void* data, std::size_t size, const MaterialInstanceParams& params = MaterialInstanceParams());
|
||||
static std::shared_ptr<MaterialInstance> LoadFromStream(Stream& stream, const MaterialInstanceParams& params = MaterialInstanceParams());
|
||||
|
||||
NazaraSignal(OnMaterialInstancePipelineInvalidated, const MaterialInstance* /*matInstance*/, std::size_t /*passIndex*/);
|
||||
NazaraSignal(OnMaterialInstanceShaderBindingInvalidated, const MaterialInstance* /*matInstance*/);
|
||||
|
||||
|
|
|
|||
|
|
@ -337,4 +337,28 @@ namespace Nz
|
|||
|
||||
OnTransferRequired(this);
|
||||
}
|
||||
|
||||
std::shared_ptr<MaterialInstance> MaterialInstance::LoadFromFile(const std::filesystem::path& filePath, const MaterialInstanceParams& params)
|
||||
{
|
||||
Graphics* graphics = Graphics::Instance();
|
||||
NazaraAssert(graphics, "Utility module has not been initialized");
|
||||
|
||||
return graphics->GetMaterialInstanceLoader().LoadFromFile(filePath, params);
|
||||
}
|
||||
|
||||
std::shared_ptr<MaterialInstance> MaterialInstance::LoadFromMemory(const void* data, std::size_t size, const MaterialInstanceParams& params)
|
||||
{
|
||||
Graphics* graphics = Graphics::Instance();
|
||||
NazaraAssert(graphics, "Utility module has not been initialized");
|
||||
|
||||
return graphics->GetMaterialInstanceLoader().LoadFromMemory(data, size, params);
|
||||
}
|
||||
|
||||
std::shared_ptr<MaterialInstance> MaterialInstance::LoadFromStream(Stream& stream, const MaterialInstanceParams& params)
|
||||
{
|
||||
Graphics* graphics = Graphics::Instance();
|
||||
NazaraAssert(graphics, "Utility module has not been initialized");
|
||||
|
||||
return graphics->GetMaterialInstanceLoader().LoadFromStream(stream, params);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue