Files
Seele/src/Engine/Graphics/Mesh.h
T

37 lines
711 B
C++
Raw Normal View History

2020-04-15 02:03:56 +02:00
#pragma once
2023-10-24 15:01:09 +02:00
#include "Asset/MaterialInstanceAsset.h"
#include "VertexData.h"
2020-04-15 02:03:56 +02:00
namespace Seele
{
class Mesh
{
public:
2023-10-08 21:07:45 +02:00
Mesh();
2020-04-15 02:03:56 +02:00
~Mesh();
2020-05-05 01:51:13 +02:00
2023-10-24 15:01:09 +02:00
VertexData* vertexData;
MeshId id;
2023-11-01 13:38:49 +01:00
uint64 vertexCount;
2023-11-06 14:47:21 +01:00
PMaterialInstanceAsset referencedMaterial;
2023-11-01 13:38:49 +01:00
Array<Meshlet> meshlets;
2023-11-05 10:36:01 +01:00
void save(ArchiveBuffer& buffer) const;
2023-11-01 13:38:49 +01:00
void load(ArchiveBuffer& buffer);
private:
2020-04-15 02:03:56 +02:00
};
2021-04-01 16:40:14 +02:00
DEFINE_REF(Mesh)
2023-11-05 10:36:01 +01:00
namespace Serialization
{
template<>
2023-11-06 14:47:21 +01:00
void save(ArchiveBuffer& buffer, const OMesh& ptr)
2023-11-05 10:36:01 +01:00
{
ptr->save(buffer);
}
template<>
2023-11-06 14:47:21 +01:00
void load(ArchiveBuffer& buffer, OMesh& ptr)
2023-11-05 10:36:01 +01:00
{
ptr = new Mesh();
ptr->load(buffer);
}
} // namespace Serialization
2020-05-05 01:51:13 +02:00
} // namespace Seele