Browse Source

Updated cgltf.

Бранимир Караџић 1 year ago
parent
commit
961bbfa295
1 changed files with 14 additions and 1 deletions
  1. 14 1
      3rdparty/cgltf/cgltf.h

+ 14 - 1
3rdparty/cgltf/cgltf.h

@@ -1697,7 +1697,20 @@ cgltf_result cgltf_validate(cgltf_data* data)
 	{
 	{
 		if (data->nodes[i].weights && data->nodes[i].mesh)
 		if (data->nodes[i].weights && data->nodes[i].mesh)
 		{
 		{
-			CGLTF_ASSERT_IF (data->nodes[i].mesh->primitives_count && data->nodes[i].mesh->primitives[0].targets_count != data->nodes[i].weights_count, cgltf_result_invalid_gltf);
+			CGLTF_ASSERT_IF(data->nodes[i].mesh->primitives_count && data->nodes[i].mesh->primitives[0].targets_count != data->nodes[i].weights_count, cgltf_result_invalid_gltf);
+		}
+
+		if (data->nodes[i].has_mesh_gpu_instancing)
+		{
+			CGLTF_ASSERT_IF(data->nodes[i].mesh == NULL, cgltf_result_invalid_gltf);
+			CGLTF_ASSERT_IF(data->nodes[i].mesh_gpu_instancing.attributes_count == 0, cgltf_result_invalid_gltf);
+
+			cgltf_accessor* first = data->nodes[i].mesh_gpu_instancing.attributes[0].data;
+
+			for (cgltf_size k = 0; k < data->nodes[i].mesh_gpu_instancing.attributes_count; ++k)
+			{
+				CGLTF_ASSERT_IF(data->nodes[i].mesh_gpu_instancing.attributes[k].data->count != first->count, cgltf_result_invalid_gltf);
+			}
 		}
 		}
 	}
 	}