Skip to content

Commit 0ac9082

Browse files
Make the compiler shut up with the warnings
1 parent 30be602 commit 0ac9082

File tree

9 files changed

+68
-57
lines changed

9 files changed

+68
-57
lines changed

include/nbl/asset/ICPUMeshBuffer.h

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -422,21 +422,24 @@ class ICPUMeshBuffer final : public IMeshBuffer<ICPUBuffer,ICPUDescriptorSet,ICP
422422
{
423423
double output64[4]{ 0., 0., 0., 1. };
424424
decodePixels<double>(format, &src, output64, 0u, 0u);
425-
std::copy(output64, output64+4, output.pointer);
425+
for (auto i=0u; i<4u; i++)
426+
output[i] = static_cast<float>(output64[i]);
426427
}
427428
else
428429
{
429430
if (isSignedFormat(format))
430431
{
431432
int64_t output64i[4]{ 0, 0, 0, 1 };
432433
decodePixels<int64_t>(impl::getCorrespondingIntegerFmt(format), &src, output64i, 0u, 0u);
433-
std::copy(output64i, output64i+4, output.pointer);
434+
for (auto i=0u; i<4u; i++)
435+
output[i] = static_cast<float>(output64i[i]);
434436
}
435437
else
436438
{
437439
uint64_t output64u[4]{ 0u, 0u, 0u, 1u };
438440
decodePixels<uint64_t>(impl::getCorrespondingIntegerFmt(format), &src, output64u, 0u, 0u);
439-
std::copy(output64u, output64u+4, output.pointer);
441+
for (auto i=0u; i<4u; i++)
442+
output[i] = static_cast<float>(output64u[i]);
440443
}
441444
}
442445

include/nbl/asset/filters/CBlitImageFilter.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -457,7 +457,10 @@ class CBlitImageFilter : public CImageFilter<CBlitImageFilter<Swizzle,Dither,Nor
457457
};
458458
//
459459
constexpr uint32_t batch_dims = 2u;
460-
const uint32_t batchExtent[batch_dims] = {intermediateExtent[axis][loopCoordID[0]],intermediateExtent[axis][loopCoordID[1]]};
460+
const uint32_t batchExtent[batch_dims] = {
461+
static_cast<uint32_t>(intermediateExtent[axis][loopCoordID[0]]),
462+
static_cast<uint32_t>(intermediateExtent[axis][loopCoordID[1]])
463+
};
461464
CBasicImageFilterCommon::BlockIterator<batch_dims> begin(batchExtent);
462465
const uint32_t spaceFillingEnd[batch_dims] = {0u,batchExtent[1]};
463466
CBasicImageFilterCommon::BlockIterator<batch_dims> end(begin.getExtentBatches(),spaceFillingEnd);

include/nbl/core/IReferenceCounted.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,8 @@
22
// This file is part of the "Nabla Engine" and was originally part of the "Irrlicht Engine"
33
// For conditions of distribution and use, see copyright notice in nabla.h
44
// See the original file in irrlicht source for authors
5-
6-
#ifndef __NBL_CORE_I_IREFERENCE_COUNTED_H_INCLUDED__
7-
#define __NBL_CORE_I_IREFERENCE_COUNTED_H_INCLUDED__
5+
#ifndef _NBL_CORE_I_IREFERENCE_COUNTED_H_INCLUDED_
6+
#define _NBL_CORE_I_IREFERENCE_COUNTED_H_INCLUDED_
87

98
#include "nbl/core/decl/Types.h"
109
#include "nbl/core/decl/BaseClasses.h"

include/nbl/core/alloc/AlignedBase.h

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ namespace impl
7070
template<class U> using operator_delete_array_t = decltype(NBL_TYPENAME_4_STTC_MBR U::operator delete[](nullptr));
7171
template<class U> using operator_delete_w_size_t = decltype(NBL_TYPENAME_4_STTC_MBR U::operator delete(nullptr,0ull));
7272
template<class U> using operator_delete_array_w_size_t = decltype(NBL_TYPENAME_4_STTC_MBR U::operator delete[](nullptr,0ull));
73+
template<class U> using operator_placement_delete_t = decltype(NBL_TYPENAME_4_STTC_MBR U::operator delete(nullptr,nullptr));
7374

7475
template<class,class=void> struct has_new_operator : std::false_type {};
7576
template<class,class=void> struct has_new_array_operator : std::false_type {};
@@ -79,6 +80,7 @@ namespace impl
7980
template<class,class=void> struct has_delete_array_operator : std::false_type {};
8081
template<class,class=void> struct has_delete_operator_w_size : std::false_type {};
8182
template<class,class=void> struct has_delete_array_operator_w_size : std::false_type {};
83+
template<class,class=void> struct has_placement_delete_operator : std::false_type {};
8284
template<class U> struct has_new_operator<U,std::void_t<operator_new_t<U> > > : std::is_same<operator_new_t<U>,void*> {};
8385
template<class U> struct has_new_array_operator<U,std::void_t<operator_new_array_t<U> > > : std::is_same<operator_new_array_t<U>,void*> {};
8486
template<class U> struct has_placement_new_operator<U,std::void_t<operator_placement_new_t<U> > > : std::is_same<operator_placement_new_t<U>,void*> {};
@@ -87,6 +89,7 @@ namespace impl
8789
template<class U> struct has_delete_array_operator<U,std::void_t<operator_delete_array_t<U> > > : std::is_same<operator_delete_array_t<U>,void> {};
8890
template<class U> struct has_delete_operator_w_size<U,std::void_t<operator_delete_w_size_t<U> > > : std::is_same<operator_delete_w_size_t<U>,void> {};
8991
template<class U> struct has_delete_array_operator_w_size<U,std::void_t<operator_delete_array_w_size_t<U> > > : std::is_same<operator_delete_array_w_size_t<U>,void> {};
92+
template<class U> struct has_placement_delete_operator<U,std::void_t<operator_placement_delete_t<U> > > : std::is_same<operator_placement_delete_t<U>,void> {};
9093
public:
9194
/** Now we could override the new and delete operators always with the same thing, and allocate aligned to `std::alignment_of<most_aligned_type>::value`,
9295
however we want to call the most aligned class' new and delete operators (if such exist) so its overrides actually matter.
@@ -124,6 +127,10 @@ namespace impl
124127
{
125128
std::conditional<has_delete_array_operator_w_size<most_aligned_type>::value,most_aligned_type,DefaultAlignedAllocationOverriden>::type::operator delete[](ptr,size);
126129
}
130+
static inline void operator delete(void* dummy, void* ptr) noexcept
131+
{
132+
std::conditional<has_placement_delete_operator<most_aligned_type>::value,most_aligned_type,DefaultAlignedAllocationOverriden>::type::operator delete(dummy,ptr);
133+
}
127134

128135
};
129136

@@ -171,6 +178,13 @@ namespace impl
171178
static inline void operator delete(void* ptr, size_t size) noexcept {operator delete(ptr);} //roll back to own operator with no size
172179
static inline void operator delete[](void* ptr, size_t size) noexcept {operator delete[](ptr);} //roll back to own operator with no size
173180

181+
// make the compiler shut up about memory not being freed if there is an exception
182+
static inline void operator delete(void* dummy, void* ptr) noexcept
183+
{
184+
assert(false);
185+
exit(-0x45);
186+
}
187+
174188
static inline bool isPtrAlignedForThisType(const void* ptr) noexcept
175189
{
176190
return is_aligned_to(ptr,object_alignment);
@@ -199,7 +213,8 @@ static_assert(sizeof(AllocationOverrideDefault)==_NBL_SIMD_ALIGNMENT,"This compi
199213
static inline void operator delete(void* ptr) noexcept {nbl::core::impl::ResolveAlignment<__VA_ARGS__>::operator delete(ptr);} \
200214
static inline void operator delete[](void* ptr) noexcept {nbl::core::impl::ResolveAlignment<__VA_ARGS__>::operator delete[](ptr);} \
201215
static inline void operator delete(void* ptr, size_t size) noexcept {nbl::core::impl::ResolveAlignment<__VA_ARGS__>::operator delete(ptr,size);} \
202-
static inline void operator delete[](void* ptr, size_t size) noexcept {nbl::core::impl::ResolveAlignment<__VA_ARGS__>::operator delete[](ptr,size);}
216+
static inline void operator delete[](void* ptr, size_t size) noexcept {nbl::core::impl::ResolveAlignment<__VA_ARGS__>::operator delete[](ptr,size);} \
217+
static inline void operator delete(void* dummy, void* ptr) noexcept {nbl::core::impl::ResolveAlignment<__VA_ARGS__>::operator delete(dummy,ptr);}
203218
#else
204219
struct NBL_FORCE_EBO AllocationOverrideDefault {};
205220

include/nbl/core/containers/dynamic_array.h

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,13 @@
11
// Copyright (C) 2018-2020 - DevSH Graphics Programming Sp. z O.O.
22
// This file is part of the "Nabla Engine".
33
// For conditions of distribution and use, see copyright notice in nabla.h
4-
5-
#ifndef __NBL_CORE_DYNAMIC_ARRAY_H_INCLUDED__
6-
#define __NBL_CORE_DYNAMIC_ARRAY_H_INCLUDED__
4+
#ifndef _NBL_CORE_DYNAMIC_ARRAY_H_INCLUDED_
5+
#define _NBL_CORE_DYNAMIC_ARRAY_H_INCLUDED_
76

87
#include "nbl/macros.h"
98
#include "nbl/core/decl/Types.h" //for core::allocator
109

11-
namespace nbl
12-
{
13-
namespace core
10+
namespace nbl::core
1411
{
1512

1613
namespace impl
@@ -166,6 +163,8 @@ class NBL_FORCE_EBO dynamic_array : public impl::dynamic_array_base<allocator,T,
166163
{
167164
allocator().deallocate(reinterpret_cast<pointer>(ptr));
168165
}
166+
167+
169168
// size hint is ill-formed
170169
static void operator delete(void* ptr, std::size_t sz) = delete;
171170
// no arrays
@@ -180,12 +179,6 @@ class NBL_FORCE_EBO dynamic_array : public impl::dynamic_array_base<allocator,T,
180179
// no arrays
181180
static void operator delete[](void* ptr, std::align_val_t al) = delete;
182181
static void operator delete[](void* ptr, std::size_t sz, std::align_val_t al) = delete;
183-
#if 0 // TODO: change later when c++20 is standardised
184-
static void operator delete(dynamic_array<T,allocator,CRTP,OverAlignmentTypes...>* ptr, std::destroying_delete_t) = delete;
185-
static void operator delete(dynamic_array<T,allocator,CRTP,OverAlignmentTypes...>* ptr, std::destroying_delete_t, std::align_val_t al) = delete;
186-
static void operator delete(dynamic_array<T,allocator,CRTP,OverAlignmentTypes...>* ptr, std::destroying_delete_t, std::size_t sz) = delete;
187-
static void operator delete(dynamic_array<T,allocator,CRTP,OverAlignmentTypes...>* ptr, std::destroying_delete_t, std::size_t sz, std::align_val_t al) = delete;
188-
#endif
189182

190183
inline bool operator!=(const this_real_type& _other) const
191184
{
@@ -232,7 +225,6 @@ class NBL_FORCE_EBO dynamic_array : public impl::dynamic_array_base<allocator,T,
232225
};
233226

234227

235-
}
236228
}
237229

238230
#endif

include/nbl/core/decl/smart_refctd_ptr.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,8 @@
22
// This file is part of the "Nabla Engine" and was originally part of the "Irrlicht Engine"
33
// For conditions of distribution and use, see copyright notice in nabla.h
44
// See the original file in irrlicht source for authors
5-
6-
#ifndef __NBL_CORE_DECL_SMART_REFCTD_PTR_H_INCLUDED__
7-
#define __NBL_CORE_DECL_SMART_REFCTD_PTR_H_INCLUDED__
5+
#ifndef _NBL_CORE_DECL_SMART_REFCTD_PTR_H_INCLUDED_
6+
#define _NBL_CORE_DECL_SMART_REFCTD_PTR_H_INCLUDED_
87

98
#include "nbl/core/IReferenceCounted.h"
109

include/nbl/core/def/smart_refctd_ptr.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
// For conditions of distribution and use, see copyright notice in nabla.h
44
// See the original file in irrlicht source for authors
55

6-
#ifndef __NBL_CORE_DEF_SMART_REFCTD_PTR_H_INCLUDED__
7-
#define __NBL_CORE_DEF_SMART_REFCTD_PTR_H_INCLUDED__
6+
#ifndef _NBL_CORE_DEF_SMART_REFCTD_PTR_H_INCLUDED_
7+
#define _NBL_CORE_DEF_SMART_REFCTD_PTR_H_INCLUDED_
88

99
#include "nbl/core/decl/smart_refctd_ptr.h"
1010

src/nbl/asset/interchange/CGLTFLoader.cpp

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1671,7 +1671,7 @@ using namespace nbl::asset;
16711671
const auto& extras = tweets.at_key("extras");
16721672

16731673
if (scene.error() != simdjson::error_code::NO_SUCH_FIELD)
1674-
glTF.defaultScene = scene.get_uint64();
1674+
glTF.defaultScene = static_cast<uint32_t>(scene.get_uint64());
16751675

16761676
if (scenes.error() != simdjson::error_code::NO_SUCH_FIELD)
16771677
{
@@ -1724,7 +1724,7 @@ using namespace nbl::asset;
17241724
const auto& extras = jsonBufferView.at_key("extras");
17251725

17261726
if (buffer.error() != simdjson::error_code::NO_SUCH_FIELD)
1727-
glTFBufferView.buffer = buffer.get_uint64().value();
1727+
glTFBufferView.buffer = static_cast<uint32_t>(buffer.get_uint64().value());
17281728

17291729
if (byteOffset.error() != simdjson::error_code::NO_SUCH_FIELD)
17301730
glTFBufferView.byteOffset = byteOffset.get_uint64().value();
@@ -1733,10 +1733,10 @@ using namespace nbl::asset;
17331733
glTFBufferView.byteLength = byteLength.get_uint64().value();
17341734

17351735
if (byteStride.error() != simdjson::error_code::NO_SUCH_FIELD)
1736-
glTFBufferView.byteStride = byteStride.get_uint64().value();
1736+
glTFBufferView.byteStride = static_cast<uint32_t>(byteStride.get_uint64().value());
17371737

17381738
if (target.error() != simdjson::error_code::NO_SUCH_FIELD)
1739-
glTFBufferView.target = target.get_uint64().value();
1739+
glTFBufferView.target = static_cast<uint32_t>(target.get_uint64().value());
17401740

17411741
if (name.error() != simdjson::error_code::NO_SUCH_FIELD)
17421742
glTFBufferView.name = name.get_string().value();
@@ -1815,10 +1815,10 @@ using namespace nbl::asset;
18151815
const auto& name = texture.at_key("name");
18161816

18171817
if (sampler.error() != simdjson::error_code::NO_SUCH_FIELD)
1818-
glTFTexture.sampler = sampler.get_uint64().value();
1818+
glTFTexture.sampler = static_cast<uint32_t>(sampler.get_uint64().value());
18191819

18201820
if (source.error() != simdjson::error_code::NO_SUCH_FIELD)
1821-
glTFTexture.source = source.get_uint64().value();
1821+
glTFTexture.source = static_cast<uint32_t>(source.get_uint64().value());
18221822

18231823
if (name.error() != simdjson::error_code::NO_SUCH_FIELD)
18241824
glTFTexture.name = name.get_string().value();
@@ -1874,10 +1874,10 @@ using namespace nbl::asset;
18741874
const auto& texCoord = bctData.at_key("texCoord");
18751875

18761876
if (index.error() != simdjson::error_code::NO_SUCH_FIELD)
1877-
glTFBaseColorTexture.index = index.get_uint64().value();
1877+
glTFBaseColorTexture.index = static_cast<uint32_t>(index.get_uint64().value());
18781878

18791879
if (texCoord.error() != simdjson::error_code::NO_SUCH_FIELD)
1880-
glTFBaseColorTexture.texCoord = texCoord.get_uint64().value();
1880+
glTFBaseColorTexture.texCoord = static_cast<uint32_t>(texCoord.get_uint64().value());
18811881
}
18821882

18831883
if (metallicFactor.error() != simdjson::error_code::NO_SUCH_FIELD)
@@ -1895,27 +1895,27 @@ using namespace nbl::asset;
18951895
const auto& texCoord = mrtData.at_key("texCoord");
18961896

18971897
if (index.error() != simdjson::error_code::NO_SUCH_FIELD)
1898-
glTFMetallicRoughnessTexture.index = index.get_uint64().value();
1898+
glTFMetallicRoughnessTexture.index = static_cast<uint32_t>(index.get_uint64().value());
18991899

19001900
if (texCoord.error() != simdjson::error_code::NO_SUCH_FIELD)
1901-
glTFMetallicRoughnessTexture.texCoord = texCoord.get_uint64().value();
1901+
glTFMetallicRoughnessTexture.texCoord = static_cast<uint32_t>(texCoord.get_uint64().value());
19021902
}
19031903
}
19041904

19051905
if (normalTexture.error() != simdjson::error_code::NO_SUCH_FIELD)
19061906
{
19071907
auto& glTFNormalTexture = glTFMaterial.normalTexture.emplace();
1908-
const const auto& normalTextureData = normalTexture.get_object();
1908+
const auto& normalTextureData = normalTexture.get_object();
19091909

19101910
const auto& index = normalTextureData.at_key("index");
19111911
const auto& texCoord = normalTextureData.at_key("texCoord");
19121912
const auto& scale = normalTextureData.at_key("scale");
19131913

19141914
if (index.error() != simdjson::error_code::NO_SUCH_FIELD)
1915-
glTFNormalTexture.index = index.get_uint64().value();
1915+
glTFNormalTexture.index = static_cast<uint32_t>(index.get_uint64().value());
19161916

19171917
if (texCoord.error() != simdjson::error_code::NO_SUCH_FIELD)
1918-
glTFNormalTexture.texCoord = texCoord.get_uint64().value();
1918+
glTFNormalTexture.texCoord = static_cast<uint32_t>(texCoord.get_uint64().value());
19191919

19201920
if (scale.error() != simdjson::error_code::NO_SUCH_FIELD)
19211921
glTFNormalTexture.scale = texCoord.get_double().value();
@@ -1931,10 +1931,10 @@ using namespace nbl::asset;
19311931
const auto& strength = occlusionTextureData.at_key("strength");
19321932

19331933
if (index.error() != simdjson::error_code::NO_SUCH_FIELD)
1934-
glTFOcclusionTexture.index = index.get_uint64().value();
1934+
glTFOcclusionTexture.index = static_cast<uint32_t>(texCoord.get_uint64().value());
19351935

19361936
if (texCoord.error() != simdjson::error_code::NO_SUCH_FIELD)
1937-
glTFOcclusionTexture.texCoord = texCoord.get_uint64().value();
1937+
glTFOcclusionTexture.texCoord = static_cast<uint32_t>(texCoord.get_uint64().value());
19381938

19391939
if (strength.error() != simdjson::error_code::NO_SUCH_FIELD)
19401940
glTFOcclusionTexture.strength = texCoord.get_double().value();
@@ -1949,10 +1949,10 @@ using namespace nbl::asset;
19491949
const auto& texCoord = emissiveTextureData.at_key("texCoord");
19501950

19511951
if (index.error() != simdjson::error_code::NO_SUCH_FIELD)
1952-
glTFEmissiveTexture.index = index.get_uint64().value();
1952+
glTFEmissiveTexture.index = static_cast<uint32_t>(texCoord.get_uint64().value());
19531953

19541954
if (texCoord.error() != simdjson::error_code::NO_SUCH_FIELD)
1955-
glTFEmissiveTexture.texCoord = texCoord.get_uint64().value();
1955+
glTFEmissiveTexture.texCoord = static_cast<uint32_t>(texCoord.get_uint64().value());
19561956
}
19571957

19581958
if (emissiveFactor.error() != simdjson::error_code::NO_SUCH_FIELD)
@@ -2137,7 +2137,7 @@ using namespace nbl::asset;
21372137
const auto& extras = accessor.at_key("extras");
21382138

21392139
if (bufferView.error() != simdjson::error_code::NO_SUCH_FIELD)
2140-
glTFAccessor.bufferView = bufferView.get_uint64().value();
2140+
glTFAccessor.bufferView = static_cast<uint32_t>(bufferView.get_uint64().value());
21412141

21422142
if (byteOffset.error() != simdjson::error_code::NO_SUCH_FIELD)
21432143
glTFAccessor.byteOffset = byteOffset.get_uint64().value();
@@ -2149,7 +2149,7 @@ using namespace nbl::asset;
21492149
glTFAccessor.normalized = normalized.get_bool().value();
21502150

21512151
if (count.error() != simdjson::error_code::NO_SUCH_FIELD)
2152-
glTFAccessor.count = count.get_uint64().value();
2152+
glTFAccessor.count = static_cast<uint32_t>(count.get_uint64().value());
21532153

21542154
if (type.error() != simdjson::error_code::NO_SUCH_FIELD)
21552155
{
@@ -2236,25 +2236,25 @@ using namespace nbl::asset;
22362236
const auto& extras = primitive.at_key("extras");
22372237

22382238
if (indices.error() != simdjson::error_code::NO_SUCH_FIELD)
2239-
glTFPrimitive.indices = indices.get_uint64().value();
2239+
glTFPrimitive.indices = static_cast<uint32_t>(indices.get_uint64().value());
22402240

22412241
if (material.error() != simdjson::error_code::NO_SUCH_FIELD)
2242-
glTFPrimitive.material = material.get_uint64().value();
2242+
glTFPrimitive.material = static_cast<uint32_t>(material.get_uint64().value());
22432243

22442244
if (mode.error() != simdjson::error_code::NO_SUCH_FIELD)
2245-
glTFPrimitive.mode = mode.get_uint64().value();
2245+
glTFPrimitive.mode = static_cast<uint32_t>(mode.get_uint64().value());
22462246
else
22472247
glTFPrimitive.mode = 4;
22482248

22492249
if (targets.error() != simdjson::error_code::NO_SUCH_FIELD)
22502250
for (const auto& [targetKey, targetID] : targets.get_object())
2251-
glTFPrimitive.targets.emplace()[targetKey.data()] = targetID.get_uint64().value();
2251+
glTFPrimitive.targets.emplace()[targetKey.data()] = static_cast<uint32_t>(targetID.get_uint64().value());
22522252

22532253
if (attributes.error() != simdjson::error_code::NO_SUCH_FIELD)
22542254
{
22552255
for (const auto& [attributeKey, accessorID] : attributes.get_object())
22562256
{
2257-
const auto& requestedAccessor = accessorID.get_uint64().value();
2257+
const auto requestedAccessor = accessorID.get_uint64().value();
22582258

22592259
std::pair<std::string, uint8_t> attributeMap;
22602260
{
@@ -2351,14 +2351,14 @@ using namespace nbl::asset;
23512351
const auto& extras = jsonNode.at_key("extras");
23522352

23532353
if (camera.error() != simdjson::error_code::NO_SUCH_FIELD)
2354-
glTFnode.camera = camera.get_uint64().value();
2354+
glTFnode.camera = static_cast<uint32_t>(camera.get_uint64().value());
23552355

23562356
if (children.error() != simdjson::error_code::NO_SUCH_FIELD)
23572357
for (const auto& child : children)
23582358
glTFnode.children.push_back(child.get_uint64().value());
23592359

23602360
if (skin.error() != simdjson::error_code::NO_SUCH_FIELD)
2361-
glTFnode.skin = skin.get_uint64().value();
2361+
glTFnode.skin = static_cast<uint32_t>(skin.get_uint64().value());
23622362

23632363
if (matrix.error() != simdjson::error_code::NO_SUCH_FIELD)
23642364
{
@@ -2410,7 +2410,7 @@ using namespace nbl::asset;
24102410
}
24112411

24122412
if (mesh.error() != simdjson::error_code::NO_SUCH_FIELD)
2413-
glTFnode.mesh = mesh.get_uint64().value();
2413+
glTFnode.mesh = static_cast<uint32_t>(mesh.get_uint64().value());
24142414

24152415
if (name.error() != simdjson::error_code::NO_SUCH_FIELD)
24162416
glTFnode.name = name.get_string().value();

0 commit comments

Comments
 (0)