diff --git a/mingw-w64-assimp/005-restore-deprecated-macros.patch b/mingw-w64-assimp/005-restore-deprecated-macros.patch deleted file mode 100644 index 9b29a03bb9..0000000000 --- a/mingw-w64-assimp/005-restore-deprecated-macros.patch +++ /dev/null @@ -1,265 +0,0 @@ -From 2fdf52488fba296beae885b4b6e983de375a8236 Mon Sep 17 00:00:00 2001 -From: RichardTea <31507749+RichardTea@users.noreply.github.com> -Date: Tue, 23 Nov 2021 13:53:58 +0000 -Subject: [PATCH 1/3] float and integer material property bool conversion - -All reading float and integer material property values as bool -Zero => False -Non-Zero => True ---- - include/assimp/material.inl | 41 +++++++++++++++++++++ - test/unit/utMaterialSystem.cpp | 65 ++++++++++++++++++++++++++++++---- - 2 files changed, 100 insertions(+), 6 deletions(-) - -diff --git a/include/assimp/material.inl b/include/assimp/material.inl -index 693785c3c0..1aec6d8650 100644 ---- a/include/assimp/material.inl -+++ b/include/assimp/material.inl -@@ -137,6 +137,47 @@ aiReturn aiMaterial::Get(const char* pKey,unsigned int type, - return ret; - } - -+// --------------------------------------------------------------------------- -+// Specialisation for a single bool. -+// Casts floating point and integer to bool -+template <> -+AI_FORCE_INLINE -+ aiReturn -+ aiMaterial::Get(const char *pKey, unsigned int type, -+ unsigned int idx, bool &pOut) const { -+ const aiMaterialProperty *prop; -+ const aiReturn ret = ::aiGetMaterialProperty(this, pKey, type, idx, -+ (const aiMaterialProperty **)&prop); -+ if (AI_SUCCESS == ret) { -+ -+ switch (prop->mType) { -+ // Type cannot be converted -+ default: return AI_FAILURE; -+ -+ case aiPTI_Buffer: { -+ // Native bool value storage -+ if (prop->mDataLength < sizeof(bool)) { -+ return AI_FAILURE; -+ } -+ ::memcpy(&pOut, prop->mData, sizeof(bool)); -+ } break; -+ -+ case aiPTI_Float: -+ case aiPTI_Double: -+ case aiPTI_Integer: { -+ // Read as integer and cast to bool -+ int value = 0; -+ if (AI_SUCCESS == ::aiGetMaterialInteger(this, pKey, type, idx, &value)) { -+ pOut = static_cast(value); -+ return AI_SUCCESS; -+ } -+ return AI_FAILURE; -+ } -+ } -+ } -+ return ret; -+} -+ - // --------------------------------------------------------------------------- - AI_FORCE_INLINE - aiReturn aiMaterial::Get(const char* pKey,unsigned int type, -diff --git a/test/unit/utMaterialSystem.cpp b/test/unit/utMaterialSystem.cpp -index 8db014d9c4..9df64ae3ba 100644 ---- a/test/unit/utMaterialSystem.cpp -+++ b/test/unit/utMaterialSystem.cpp -@@ -125,13 +125,66 @@ TEST_F(MaterialSystemTest, testStringProperty) { - } - - // ------------------------------------------------------------------------------------------------ --TEST_F(MaterialSystemTest, testMaterialNameAccess) { -- aiMaterial *mat = new aiMaterial(); -- EXPECT_NE(nullptr, mat); -- -- aiString name = mat->GetName(); -+TEST_F(MaterialSystemTest, testDefaultMaterialName) { -+ aiString name = pcMat->GetName(); - const int retValue(strncmp(name.C_Str(), AI_DEFAULT_MATERIAL_NAME, name.length)); - EXPECT_EQ(0, retValue); -+} -+ -+// ------------------------------------------------------------------------------------------------ -+TEST_F(MaterialSystemTest, testBoolProperty) { -+ const bool valTrue = true; -+ const bool valFalse = false; -+ EXPECT_EQ(AI_SUCCESS, pcMat->AddProperty(&valTrue, 1, "bool_true")); -+ EXPECT_EQ(AI_SUCCESS, pcMat->AddProperty(&valFalse, 1, "bool_false")); -+ -+ bool read = false; -+ EXPECT_EQ(AI_SUCCESS, pcMat->Get("bool_true", 0, 0, read)); -+ EXPECT_TRUE(read) << "read true bool"; -+ EXPECT_EQ(AI_SUCCESS, pcMat->Get("bool_false", 0, 0, read)); -+ EXPECT_FALSE(read) << "read false bool"; -+} - -- delete mat; -+// ------------------------------------------------------------------------------------------------ -+TEST_F(MaterialSystemTest, testCastIntProperty) { -+ int value = 10; -+ EXPECT_EQ(AI_SUCCESS, pcMat->AddProperty(&value, 1, "integer")); -+ value = 0; -+ EXPECT_EQ(AI_SUCCESS, pcMat->AddProperty(&value, 1, "zero")); -+ -+ // To float -+ float valFloat = 0.0f; -+ EXPECT_EQ(AI_SUCCESS, pcMat->Get("integer", 0, 0, valFloat)); -+ EXPECT_EQ(10.0f, valFloat); -+ EXPECT_EQ(AI_SUCCESS, pcMat->Get("zero", 0, 0, valFloat)); -+ EXPECT_EQ(0.0f, valFloat); -+ -+ // To bool -+ bool valBool = false; -+ EXPECT_EQ(AI_SUCCESS, pcMat->Get("integer", 0, 0, valBool)); -+ EXPECT_EQ(true, valBool); -+ EXPECT_EQ(AI_SUCCESS, pcMat->Get("zero", 0, 0, valBool)); -+ EXPECT_EQ(false, valBool); -+} -+ -+// ------------------------------------------------------------------------------------------------ -+TEST_F(MaterialSystemTest, testCastFloatProperty) { -+ float value = 150392.63f; -+ EXPECT_EQ(AI_SUCCESS, pcMat->AddProperty(&value, 1, "float")); -+ value = 0; -+ EXPECT_EQ(AI_SUCCESS, pcMat->AddProperty(&value, 1, "zero")); -+ -+ // To int -+ int valInt = 0.0f; -+ EXPECT_EQ(AI_SUCCESS, pcMat->Get("float", 0, 0, valInt)); -+ EXPECT_EQ(150392, valInt); -+ EXPECT_EQ(AI_SUCCESS, pcMat->Get("zero", 0, 0, valInt)); -+ EXPECT_EQ(0, valInt); -+ -+ // To bool -+ bool valBool = false; -+ EXPECT_EQ(AI_SUCCESS, pcMat->Get("float", 0, 0, valBool)); -+ EXPECT_EQ(true, valBool); -+ EXPECT_EQ(AI_SUCCESS, pcMat->Get("zero", 0, 0, valBool)); -+ EXPECT_EQ(false, valBool); - } - -From 5143044cc84decd933bebd0a48b2c24e816b074a Mon Sep 17 00:00:00 2001 -From: RichardTea <31507749+RichardTea@users.noreply.github.com> -Date: Tue, 23 Nov 2021 13:55:27 +0000 -Subject: [PATCH 2/3] redefine AI_MATKEY_GLTF_PBRSPECULARGLOSSINESS - -This key is deprecated but is used by Qt5 & Qt 6.2.1 QtQuick3D ---- - include/assimp/pbrmaterial.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/include/assimp/pbrmaterial.h b/include/assimp/pbrmaterial.h -index b642a96e39..2103a31f07 100644 ---- a/include/assimp/pbrmaterial.h -+++ b/include/assimp/pbrmaterial.h -@@ -61,7 +61,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - #define AI_MATKEY_GLTF_PBRMETALLICROUGHNESS_METALLIC_FACTOR AI_MATKEY_METALLIC_FACTOR - #define AI_MATKEY_GLTF_PBRMETALLICROUGHNESS_ROUGHNESS_FACTOR AI_MATKEY_ROUGHNESS_FACTOR - --//#define AI_MATKEY_GLTF_PBRSPECULARGLOSSINESS "$mat.gltf.pbrSpecularGlossiness", 0, 0 -+#define AI_MATKEY_GLTF_PBRSPECULARGLOSSINESS AI_MATKEY_GLOSSINESS_FACTOR - #define AI_MATKEY_GLTF_PBRSPECULARGLOSSINESS_GLOSSINESS_FACTOR AI_MATKEY_GLOSSINESS_FACTOR - - // Use AI_MATKEY_SHADING_MODEL == aiShadingMode_Unlit instead - -From d18709b899de50f18d9d6ae7cb85f4233a715179 Mon Sep 17 00:00:00 2001 -From: RichardTea <31507749+RichardTea@users.noreply.github.com> -Date: Tue, 23 Nov 2021 14:15:32 +0000 -Subject: [PATCH 3/3] Small float values should be true - ---- - include/assimp/material.inl | 15 ++++++++++----- - test/unit/utMaterialSystem.cpp | 28 ++++++++++++++++++++++++++++ - 2 files changed, 38 insertions(+), 5 deletions(-) - -diff --git a/include/assimp/material.inl b/include/assimp/material.inl -index 1aec6d8650..b299892b0b 100644 ---- a/include/assimp/material.inl -+++ b/include/assimp/material.inl -@@ -163,16 +163,21 @@ AI_FORCE_INLINE - } break; - - case aiPTI_Float: -- case aiPTI_Double: -- case aiPTI_Integer: { -- // Read as integer and cast to bool -- int value = 0; -- if (AI_SUCCESS == ::aiGetMaterialInteger(this, pKey, type, idx, &value)) { -+ case aiPTI_Double: { -+ // Read as float and cast to bool -+ float value = 0.0f; -+ if (AI_SUCCESS == ::aiGetMaterialFloat(this, pKey, type, idx, &value)) { - pOut = static_cast(value); - return AI_SUCCESS; - } - return AI_FAILURE; - } -+ case aiPTI_Integer: { -+ // Cast to bool -+ const int value = static_cast(*prop->mData); -+ pOut = static_cast(value); -+ return AI_SUCCESS; -+ } - } - } - return ret; -diff --git a/test/unit/utMaterialSystem.cpp b/test/unit/utMaterialSystem.cpp -index 9df64ae3ba..363a4b1934 100644 ---- a/test/unit/utMaterialSystem.cpp -+++ b/test/unit/utMaterialSystem.cpp -@@ -151,6 +151,8 @@ TEST_F(MaterialSystemTest, testCastIntProperty) { - EXPECT_EQ(AI_SUCCESS, pcMat->AddProperty(&value, 1, "integer")); - value = 0; - EXPECT_EQ(AI_SUCCESS, pcMat->AddProperty(&value, 1, "zero")); -+ value = -1; -+ EXPECT_EQ(AI_SUCCESS, pcMat->AddProperty(&value, 1, "negative")); - - // To float - float valFloat = 0.0f; -@@ -158,6 +160,8 @@ TEST_F(MaterialSystemTest, testCastIntProperty) { - EXPECT_EQ(10.0f, valFloat); - EXPECT_EQ(AI_SUCCESS, pcMat->Get("zero", 0, 0, valFloat)); - EXPECT_EQ(0.0f, valFloat); -+ EXPECT_EQ(AI_SUCCESS, pcMat->Get("negative", 0, 0, valFloat)); -+ EXPECT_EQ(-1.0f, valFloat); - - // To bool - bool valBool = false; -@@ -165,6 +169,8 @@ TEST_F(MaterialSystemTest, testCastIntProperty) { - EXPECT_EQ(true, valBool); - EXPECT_EQ(AI_SUCCESS, pcMat->Get("zero", 0, 0, valBool)); - EXPECT_EQ(false, valBool); -+ EXPECT_EQ(AI_SUCCESS, pcMat->Get("negative", 0, 0, valBool)); -+ EXPECT_EQ(true, valBool); - } - - // ------------------------------------------------------------------------------------------------ -@@ -188,3 +194,25 @@ TEST_F(MaterialSystemTest, testCastFloatProperty) { - EXPECT_EQ(AI_SUCCESS, pcMat->Get("zero", 0, 0, valBool)); - EXPECT_EQ(false, valBool); - } -+ -+// ------------------------------------------------------------------------------------------------ -+TEST_F(MaterialSystemTest, testCastSmallFloatProperty) { -+ float value = 0.0078125f; -+ EXPECT_EQ(AI_SUCCESS, pcMat->AddProperty(&value, 1, "float")); -+ value = 0; -+ EXPECT_EQ(AI_SUCCESS, pcMat->AddProperty(&value, 1, "zero")); -+ -+ // To int -+ int valInt = 0.0f; -+ EXPECT_EQ(AI_SUCCESS, pcMat->Get("float", 0, 0, valInt)); -+ EXPECT_EQ(0, valInt); -+ EXPECT_EQ(AI_SUCCESS, pcMat->Get("zero", 0, 0, valInt)); -+ EXPECT_EQ(0, valInt); -+ -+ // To bool -+ bool valBool = false; -+ EXPECT_EQ(AI_SUCCESS, pcMat->Get("float", 0, 0, valBool)); -+ EXPECT_EQ(true, valBool); -+ EXPECT_EQ(AI_SUCCESS, pcMat->Get("zero", 0, 0, valBool)); -+ EXPECT_EQ(false, valBool); -+} diff --git a/mingw-w64-assimp/PKGBUILD b/mingw-w64-assimp/PKGBUILD index 4c1a081085..ec9dd94d69 100644 --- a/mingw-w64-assimp/PKGBUILD +++ b/mingw-w64-assimp/PKGBUILD @@ -3,8 +3,8 @@ _realname=assimp pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=5.2.2 -pkgrel=2 +pkgver=5.2.3 +pkgrel=1 pkgdesc="Portable Open Source library to import various well-known 3D model formats in an uniform manner (mingw-w64)" arch=('any') mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clang32' 'clangarm64') @@ -20,21 +20,18 @@ source=(${_realname}-${pkgver}.tar.gz::https://github.com/assimp/assimp/archive/ 001-fix-assimp_cmd-rc-file.patch 002-llvm-rc-workaround.patch 003-disable-werror.patch - 004-soversion-with-clang.patch - 005-restore-deprecated-macros.patch) + 004-soversion-with-clang.patch) options=('staticlibs') -sha256sums=('ad76c5d86c380af65a9d9f64e8fc57af692ffd80a90f613dfc6bd945d0b80bb4' +sha256sums=('b20fc41af171f6d8f1f45d4621f18e6934ab7264e71c37cd72fd9832509af2a8' '9f12e8760b24e45fa5d308d6d80a65eebe7f499c283e8b54f0d8bb3dab95c5ae' '3bdb6483fda22db9126991380a01220785e2e1d3ac1be7e4694096e5f69bcdfd' '35f08302caedff9822f7399ef10521b8128d291bb07ffdf8195201005ca387b0' - '6bd125c59bcf663c0f23d19796ec99a6af01392309936aeb67e9e2169512bc5d' - 'a227714a215023184536e38b4bc7f8341f635e16bfb3b0ea029d420c29aacd2d') + '6bd125c59bcf663c0f23d19796ec99a6af01392309936aeb67e9e2169512bc5d') prepare() { cd ${_realname}-${pkgver} patch -p1 -i ${srcdir}/001-fix-assimp_cmd-rc-file.patch patch -p1 -i ${srcdir}/003-disable-werror.patch - patch -p1 -i ${srcdir}/005-restore-deprecated-macros.patch if [[ ${MINGW_PACKAGE_PREFIX} == *-clang-* ]]; then patch -p1 -i "${srcdir}/002-llvm-rc-workaround.patch"