2026-03-24 16:14:05 +08:00
|
|
|
#include <XCEngine/Resources/Mesh/Mesh.h>
|
2026-03-17 22:32:27 +08:00
|
|
|
#include <cstring>
|
|
|
|
|
|
|
|
|
|
namespace XCEngine {
|
|
|
|
|
namespace Resources {
|
|
|
|
|
|
|
|
|
|
Mesh::Mesh() = default;
|
|
|
|
|
Mesh::~Mesh() = default;
|
|
|
|
|
|
|
|
|
|
void Mesh::Release() {
|
|
|
|
|
m_vertexData.Clear();
|
|
|
|
|
m_indexData.Clear();
|
|
|
|
|
m_sections.Clear();
|
|
|
|
|
SetInvalid();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Mesh::SetVertexData(const void* data, size_t size, Core::uint32 vertexCount,
|
|
|
|
|
Core::uint32 vertexStride, VertexAttribute attributes) {
|
|
|
|
|
m_vertexCount = vertexCount;
|
|
|
|
|
m_vertexStride = vertexStride;
|
|
|
|
|
m_attributes = attributes;
|
|
|
|
|
|
|
|
|
|
m_vertexData.Resize(size);
|
|
|
|
|
std::memcpy(m_vertexData.Data(), data, size);
|
|
|
|
|
|
|
|
|
|
m_memorySize += size;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Mesh::SetIndexData(const void* data, size_t size, Core::uint32 indexCount, bool use32Bit) {
|
|
|
|
|
m_indexCount = indexCount;
|
|
|
|
|
m_use32BitIndex = use32Bit;
|
|
|
|
|
|
|
|
|
|
m_indexData.Resize(size);
|
|
|
|
|
std::memcpy(m_indexData.Data(), data, size);
|
|
|
|
|
|
|
|
|
|
m_memorySize += size;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Mesh::AddSection(const MeshSection& section) {
|
|
|
|
|
m_sections.PushBack(section);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
} // namespace Resources
|
|
|
|
|
} // namespace XCEngine
|