summaryrefslogtreecommitdiff
path: root/src/tests
diff options
context:
space:
mode:
Diffstat (limited to 'src/tests')
-rw-r--r--src/tests/test_mesh.cc26
1 files changed, 22 insertions, 4 deletions
diff --git a/src/tests/test_mesh.cc b/src/tests/test_mesh.cc
index 7f898c4..992471a 100644
--- a/src/tests/test_mesh.cc
+++ b/src/tests/test_mesh.cc
@@ -242,8 +242,16 @@ bool load_obj_and_create_buffers(const char* path, Object3D& out_obj) {
g_mesh_gpu_data.vertex_buffer = gpu_create_buffer(g_device, final_vertices.size() * sizeof(MeshVertex), WGPUBufferUsage_Vertex | WGPUBufferUsage_CopyDst, final_vertices.data()).buffer;
g_mesh_gpu_data.index_buffer = gpu_create_buffer(g_device, final_indices.size() * sizeof(uint32_t), WGPUBufferUsage_Index | WGPUBufferUsage_CopyDst, final_indices.data()).buffer;
+ struct MeshData {
+ std::vector<MeshVertex> vertices;
+ std::vector<uint32_t> indices;
+ };
+ MeshData* mesh_data = new MeshData();
+ mesh_data->vertices = final_vertices;
+ mesh_data->indices = final_indices;
+
out_obj.type = ObjectType::MESH;
- out_obj.user_data = new std::vector<MeshVertex>(final_vertices);
+ out_obj.user_data = mesh_data;
// This test doesn't use the asset system, so we override the renderer's internal cache lookup
// by manually setting the buffers on the renderer object. This is a HACK for this specific tool.
@@ -314,8 +322,14 @@ int main(int argc, char** argv) {
#if !defined(STRIP_ALL)
if (debug_mode) {
- auto* vertices = (std::vector<MeshVertex>*)g_scene.objects[1].user_data;
- g_renderer.GetVisualDebug().add_mesh_normals(g_scene.objects[1].get_model_matrix(), (uint32_t)vertices->size(), vertices->data());
+ struct MeshData {
+ std::vector<MeshVertex> vertices;
+ std::vector<uint32_t> indices;
+ };
+ auto* data = (MeshData*)g_scene.objects[1].user_data;
+ VisualDebug& dbg = g_renderer.GetVisualDebug();
+ dbg.add_mesh_normals(g_scene.objects[1].get_model_matrix(), (uint32_t)data->vertices.size(), data->vertices.data());
+ dbg.add_mesh_wireframe(g_scene.objects[1].get_model_matrix(), (uint32_t)data->vertices.size(), data->vertices.data(), (uint32_t)data->indices.size(), data->indices.data(), vec3(0.0f, 1.0f, 1.0f));
}
#endif /* !defined(STRIP_ALL) */
@@ -334,7 +348,11 @@ int main(int argc, char** argv) {
Renderer3D::SetDebugEnabled(false); // Reset debug mode
#endif
- delete (std::vector<MeshVertex>*)g_scene.objects[1].user_data;
+ struct MeshData {
+ std::vector<MeshVertex> vertices;
+ std::vector<uint32_t> indices;
+ };
+ delete (MeshData*)g_scene.objects[1].user_data;
wgpuBufferRelease(g_mesh_gpu_data.vertex_buffer);
wgpuBufferRelease(g_mesh_gpu_data.index_buffer);