refactor: reorganize Resources module into Core/Asset, Core/IO and Resources subdirectories
- Split core resource architecture into Core/Asset/ (IResource, ResourceManager, ResourceCache, etc.)
- Moved IO layer into Core/IO/ (IResourceLoader, ResourceFileSystem, etc.)
- Reorganized concrete resource types into Resources/{Texture,Mesh,Material,Shader,AudioClip}/
- Updated all include paths from relative to <XCEngine/...> format
- Fixed circular dependency in Material.h (removed unnecessary ResourceManager.h include)
- Fixed malformed include syntax in ResourceManager.h and AsyncLoader.h
- Fixed glad.h path issues in CMakeLists.txt
This commit is contained in:
44
engine/src/Resources/Mesh/Mesh.cpp
Normal file
44
engine/src/Resources/Mesh/Mesh.cpp
Normal file
@@ -0,0 +1,44 @@
|
||||
#include "Resources/Mesh.h"
|
||||
#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
|
||||
Reference in New Issue
Block a user