|
@@ -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);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|