Graphics/Model: Add mesh callback parameter
It allows to query/save/update the mesh before it's used to create a GraphicalMesh and disposed of
This commit is contained in:
parent
5a46ebda36
commit
18b6d14670
|
|
@ -20,6 +20,8 @@
|
||||||
#include <Nazara/Renderer/RenderPipeline.hpp>
|
#include <Nazara/Renderer/RenderPipeline.hpp>
|
||||||
#include <Nazara/Utility/Mesh.hpp>
|
#include <Nazara/Utility/Mesh.hpp>
|
||||||
#include <Nazara/Utility/VertexDeclaration.hpp>
|
#include <Nazara/Utility/VertexDeclaration.hpp>
|
||||||
|
#include <NazaraUtils/FunctionRef.hpp>
|
||||||
|
#include <NazaraUtils/Result.hpp>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
namespace Nz
|
namespace Nz
|
||||||
|
|
@ -27,6 +29,7 @@ namespace Nz
|
||||||
struct NAZARA_GRAPHICS_API ModelParams : ResourceParameters
|
struct NAZARA_GRAPHICS_API ModelParams : ResourceParameters
|
||||||
{
|
{
|
||||||
bool loadMaterials = true;
|
bool loadMaterials = true;
|
||||||
|
FunctionRef<Result<void, ResourceLoadingError>(const std::shared_ptr<Mesh>& mesh)> meshCallback = nullptr;
|
||||||
MeshParams mesh;
|
MeshParams mesh;
|
||||||
|
|
||||||
bool IsValid() const;
|
bool IsValid() const;
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,13 @@ namespace Nz::Loaders
|
||||||
if (!mesh)
|
if (!mesh)
|
||||||
return Err(ResourceLoadingError::Unrecognized);
|
return Err(ResourceLoadingError::Unrecognized);
|
||||||
|
|
||||||
|
if (parameters.meshCallback)
|
||||||
|
{
|
||||||
|
Result res = parameters.meshCallback(mesh);
|
||||||
|
if (!res)
|
||||||
|
return Err(res.GetError());
|
||||||
|
}
|
||||||
|
|
||||||
std::shared_ptr<GraphicalMesh> gfxMesh = GraphicalMesh::BuildFromMesh(*mesh);
|
std::shared_ptr<GraphicalMesh> gfxMesh = GraphicalMesh::BuildFromMesh(*mesh);
|
||||||
if (!gfxMesh)
|
if (!gfxMesh)
|
||||||
return Err(ResourceLoadingError::Internal);
|
return Err(ResourceLoadingError::Internal);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue