<pre style='margin:0'>
Ryan Schmidt (ryandesign) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/fdd3ac4273270414160e09d59f552d21d0e1b1c8">https://github.com/macports/macports-ports/commit/fdd3ac4273270414160e09d59f552d21d0e1b1c8</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit fdd3ac4273270414160e09d59f552d21d0e1b1c8
</span>Author: Ryan Schmidt <ryandesign@macports.org>
AuthorDate: Mon Apr 18 05:14:19 2022 -0500
<span style='display:block; white-space:pre;color:#404040;'> assimp: Update to 5.2.3
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> assimp_tools: Remove unused libdevil dependency
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Closes: https://trac.macports.org/ticket/60848
</span>---
graphics/assimp/Portfile | 42 ++--
graphics/assimp/files/4203.patch | 265 ---------------------
.../patch-code-AssetLib-glTF2-glTF2Asset.inl.diff | 11 -
.../assimp/files/patch-code-CMakeLists.txt.diff | 33 ++-
.../patch-code-Common-ZipArchiveIOSystem.cpp.diff | 13 +
5 files changed, 65 insertions(+), 299 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/assimp/Portfile b/graphics/assimp/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 75383bbf144..4b257aaf15b 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/graphics/assimp/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/assimp/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3,30 +3,31 @@
</span> PortSystem 1.0
PortGroup cmake 1.1
PortGroup github 1.0
<span style='display:block; white-space:pre;background:#ffe0e0;'>-PortGroup legacysupport 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup legacysupport 1.1
</span>
# strnlen
legacysupport.newest_darwin_requires_legacy 10
<span style='display:block; white-space:pre;background:#ffe0e0;'>-github.setup assimp assimp 5.1.5 v
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-revision 2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums rmd160 adf21a78900d6bab170898c1536fdec94195e319 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- sha256 8fea5953ac509fd0687e80cc19c7a35c0d5d4d8c654efd003a6112372d4edfda \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- size 48978688
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.setup assimp assimp 5.2.3 v
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums rmd160 db8d7c7faa68066cc3d66193cb1f4bba0306a574 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 b20fc41af171f6d8f1f45d4621f18e6934ab7264e71c37cd72fd9832509af2a8 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 49606233
</span>
conflicts assimp2
categories graphics
maintainers nomaintainer
<span style='display:block; white-space:pre;background:#ffe0e0;'>-description library to import/export 3D model formats
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+description library to import/export 3-D model formats
</span> long_description Open Asset Import Library (short name: Assimp) is a \
portable Open Source library to import various well-known \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- 3D model formats in a uniform manner. The most recent \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- version also knows how to export 3d files and is therefore \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- suitable as general-purpose 3D model converter.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 3-D model formats in a uniform manner. The most recent \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ version also knows how to export 3_D files and is therefore \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ suitable as a general-purpose 3-D model converter.
</span> homepage http://www.assimp.org
<span style='display:block; white-space:pre;background:#ffe0e0;'>-platforms darwin
</span> license BSD
<span style='display:block; white-space:pre;background:#e0ffe0;'>+github.tarball_from archive
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> depends_build-append \
port:pkgconfig
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -34,22 +35,25 @@ depends_lib port:minizip \
</span> port:pugixml \
port:zlib
<span style='display:block; white-space:pre;background:#ffe0e0;'>-patchfiles-append patch-code-AssetLib-glTF2-glTF2Asset.inl.diff \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- patch-code-CMakeLists.txt.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-extract {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Ensure we don't use these bundled libraries.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ foreach item [list pugixml unzip zlib] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ move ${worksrcpath}/contrib/${item} ${worksrcpath}/contrib/${item}-disabled
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# Fix for qt5-qtquick3d build; to be included in release following 5.2.2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-patchfiles-append 4203.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append patch-code-Common-ZipArchiveIOSystem.cpp.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patch-code-CMakeLists.txt.diff
</span>
compiler.cxx_standard 2011
compiler.thread_local_storage yes
configure.args-append -DASSIMP_BUILD_ASSIMP_TOOLS:BOOL=OFF -DASSIMP_BUILD_TESTS:BOOL=OFF
subport assimp_tools {
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ PortGroup qt5 1.0
</span>
depends_lib-append \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- port:${name} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:libdevil \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:qt5-qtbase
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:${name}
</span>
configure.args-replace \
-DASSIMP_BUILD_ASSIMP_TOOLS:BOOL=OFF \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -62,4 +66,4 @@ subport assimp_tools {
</span> }
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-github.livecheck.regex {(\d\.\d\.\d)}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.livecheck.regex {(\d+(\.\d+)+)}
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/assimp/files/4203.patch b/graphics/assimp/files/4203.patch
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index b5fc293f040..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/graphics/assimp/files/4203.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,265 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From 2fdf52488fba296beae885b4b6e983de375a8236 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: RichardTea <31507749+RichardTea@users.noreply.github.com>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Tue, 23 Nov 2021 13:53:58 +0000
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH 1/3] float and integer material property bool conversion
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-All reading float and integer material property values as bool
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Zero => False
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Non-Zero => True
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- include/assimp/material.inl | 41 +++++++++++++++++++++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- test/unit/utMaterialSystem.cpp | 65 ++++++++++++++++++++++++++++++----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 2 files changed, 100 insertions(+), 6 deletions(-)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/include/assimp/material.inl b/include/assimp/material.inl
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 693785c3c0..1aec6d8650 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- include/assimp/material.inl
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ include/assimp/material.inl
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -137,6 +137,47 @@ aiReturn aiMaterial::Get(const char* pKey,unsigned int type,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return ret;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+// ---------------------------------------------------------------------------
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+// Specialisation for a single bool.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+// Casts floating point and integer to bool
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+template <>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+AI_FORCE_INLINE
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ aiReturn
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ aiMaterial::Get(const char *pKey, unsigned int type,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ unsigned int idx, bool &pOut) const {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ const aiMaterialProperty *prop;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ const aiReturn ret = ::aiGetMaterialProperty(this, pKey, type, idx,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (const aiMaterialProperty **)&prop);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (AI_SUCCESS == ret) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ switch (prop->mType) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ // Type cannot be converted
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ default: return AI_FAILURE;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ case aiPTI_Buffer: {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ // Native bool value storage
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (prop->mDataLength < sizeof(bool)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return AI_FAILURE;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ::memcpy(&pOut, prop->mData, sizeof(bool));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ } break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ case aiPTI_Float:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ case aiPTI_Double:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ case aiPTI_Integer: {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ // Read as integer and cast to bool
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ int value = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (AI_SUCCESS == ::aiGetMaterialInteger(this, pKey, type, idx, &value)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ pOut = static_cast<bool>(value);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return AI_SUCCESS;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return AI_FAILURE;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return ret;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- // ---------------------------------------------------------------------------
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- AI_FORCE_INLINE
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- aiReturn aiMaterial::Get(const char* pKey,unsigned int type,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/test/unit/utMaterialSystem.cpp b/test/unit/utMaterialSystem.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 8db014d9c4..9df64ae3ba 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- test/unit/utMaterialSystem.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ test/unit/utMaterialSystem.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -125,13 +125,66 @@ TEST_F(MaterialSystemTest, testStringProperty) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- // ------------------------------------------------------------------------------------------------
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--TEST_F(MaterialSystemTest, testMaterialNameAccess) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- aiMaterial *mat = new aiMaterial();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- EXPECT_NE(nullptr, mat);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- aiString name = mat->GetName();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+TEST_F(MaterialSystemTest, testDefaultMaterialName) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ aiString name = pcMat->GetName();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const int retValue(strncmp(name.C_Str(), AI_DEFAULT_MATERIAL_NAME, name.length));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- EXPECT_EQ(0, retValue);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+// ------------------------------------------------------------------------------------------------
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+TEST_F(MaterialSystemTest, testBoolProperty) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ const bool valTrue = true;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ const bool valFalse = false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ EXPECT_EQ(AI_SUCCESS, pcMat->AddProperty(&valTrue, 1, "bool_true"));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ EXPECT_EQ(AI_SUCCESS, pcMat->AddProperty(&valFalse, 1, "bool_false"));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ bool read = false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ EXPECT_EQ(AI_SUCCESS, pcMat->Get("bool_true", 0, 0, read));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ EXPECT_TRUE(read) << "read true bool";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ EXPECT_EQ(AI_SUCCESS, pcMat->Get("bool_false", 0, 0, read));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ EXPECT_FALSE(read) << "read false bool";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- delete mat;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+// ------------------------------------------------------------------------------------------------
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+TEST_F(MaterialSystemTest, testCastIntProperty) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ int value = 10;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ EXPECT_EQ(AI_SUCCESS, pcMat->AddProperty(&value, 1, "integer"));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ value = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ EXPECT_EQ(AI_SUCCESS, pcMat->AddProperty(&value, 1, "zero"));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ // To float
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ float valFloat = 0.0f;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ EXPECT_EQ(AI_SUCCESS, pcMat->Get("integer", 0, 0, valFloat));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ EXPECT_EQ(10.0f, valFloat);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ EXPECT_EQ(AI_SUCCESS, pcMat->Get("zero", 0, 0, valFloat));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ EXPECT_EQ(0.0f, valFloat);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ // To bool
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ bool valBool = false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ EXPECT_EQ(AI_SUCCESS, pcMat->Get("integer", 0, 0, valBool));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ EXPECT_EQ(true, valBool);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ EXPECT_EQ(AI_SUCCESS, pcMat->Get("zero", 0, 0, valBool));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ EXPECT_EQ(false, valBool);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+// ------------------------------------------------------------------------------------------------
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+TEST_F(MaterialSystemTest, testCastFloatProperty) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ float value = 150392.63f;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ EXPECT_EQ(AI_SUCCESS, pcMat->AddProperty(&value, 1, "float"));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ value = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ EXPECT_EQ(AI_SUCCESS, pcMat->AddProperty(&value, 1, "zero"));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ // To int
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ int valInt = 0.0f;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ EXPECT_EQ(AI_SUCCESS, pcMat->Get("float", 0, 0, valInt));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ EXPECT_EQ(150392, valInt);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ EXPECT_EQ(AI_SUCCESS, pcMat->Get("zero", 0, 0, valInt));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ EXPECT_EQ(0, valInt);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ // To bool
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ bool valBool = false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ EXPECT_EQ(AI_SUCCESS, pcMat->Get("float", 0, 0, valBool));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ EXPECT_EQ(true, valBool);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ EXPECT_EQ(AI_SUCCESS, pcMat->Get("zero", 0, 0, valBool));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ EXPECT_EQ(false, valBool);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From 5143044cc84decd933bebd0a48b2c24e816b074a Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: RichardTea <31507749+RichardTea@users.noreply.github.com>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Tue, 23 Nov 2021 13:55:27 +0000
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH 2/3] redefine AI_MATKEY_GLTF_PBRSPECULARGLOSSINESS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-This key is deprecated but is used by Qt5 & Qt 6.2.1 QtQuick3D
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- include/assimp/pbrmaterial.h | 2 +-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 1 file changed, 1 insertion(+), 1 deletion(-)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/include/assimp/pbrmaterial.h b/include/assimp/pbrmaterial.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index b642a96e39..2103a31f07 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- include/assimp/pbrmaterial.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ include/assimp/pbrmaterial.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -61,7 +61,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #define AI_MATKEY_GLTF_PBRMETALLICROUGHNESS_METALLIC_FACTOR AI_MATKEY_METALLIC_FACTOR
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #define AI_MATKEY_GLTF_PBRMETALLICROUGHNESS_ROUGHNESS_FACTOR AI_MATKEY_ROUGHNESS_FACTOR
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--//#define AI_MATKEY_GLTF_PBRSPECULARGLOSSINESS "$mat.gltf.pbrSpecularGlossiness", 0, 0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define AI_MATKEY_GLTF_PBRSPECULARGLOSSINESS AI_MATKEY_GLOSSINESS_FACTOR
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #define AI_MATKEY_GLTF_PBRSPECULARGLOSSINESS_GLOSSINESS_FACTOR AI_MATKEY_GLOSSINESS_FACTOR
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- // Use AI_MATKEY_SHADING_MODEL == aiShadingMode_Unlit instead
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From d18709b899de50f18d9d6ae7cb85f4233a715179 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: RichardTea <31507749+RichardTea@users.noreply.github.com>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Tue, 23 Nov 2021 14:15:32 +0000
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH 3/3] Small float values should be true
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- include/assimp/material.inl | 15 ++++++++++-----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- test/unit/utMaterialSystem.cpp | 28 ++++++++++++++++++++++++++++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 2 files changed, 38 insertions(+), 5 deletions(-)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/include/assimp/material.inl b/include/assimp/material.inl
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 1aec6d8650..b299892b0b 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- include/assimp/material.inl
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ include/assimp/material.inl
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -163,16 +163,21 @@ AI_FORCE_INLINE
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- case aiPTI_Float:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- case aiPTI_Double:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- case aiPTI_Integer: {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- // Read as integer and cast to bool
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- int value = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (AI_SUCCESS == ::aiGetMaterialInteger(this, pKey, type, idx, &value)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ case aiPTI_Double: {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ // Read as float and cast to bool
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ float value = 0.0f;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (AI_SUCCESS == ::aiGetMaterialFloat(this, pKey, type, idx, &value)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- pOut = static_cast<bool>(value);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return AI_SUCCESS;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return AI_FAILURE;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ case aiPTI_Integer: {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ // Cast to bool
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ const int value = static_cast<int>(*prop->mData);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ pOut = static_cast<bool>(value);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return AI_SUCCESS;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return ret;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/test/unit/utMaterialSystem.cpp b/test/unit/utMaterialSystem.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 9df64ae3ba..363a4b1934 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- test/unit/utMaterialSystem.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ test/unit/utMaterialSystem.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -151,6 +151,8 @@ TEST_F(MaterialSystemTest, testCastIntProperty) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- EXPECT_EQ(AI_SUCCESS, pcMat->AddProperty(&value, 1, "integer"));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- value = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- EXPECT_EQ(AI_SUCCESS, pcMat->AddProperty(&value, 1, "zero"));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ value = -1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ EXPECT_EQ(AI_SUCCESS, pcMat->AddProperty(&value, 1, "negative"));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- // To float
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- float valFloat = 0.0f;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -158,6 +160,8 @@ TEST_F(MaterialSystemTest, testCastIntProperty) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- EXPECT_EQ(10.0f, valFloat);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- EXPECT_EQ(AI_SUCCESS, pcMat->Get("zero", 0, 0, valFloat));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- EXPECT_EQ(0.0f, valFloat);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ EXPECT_EQ(AI_SUCCESS, pcMat->Get("negative", 0, 0, valFloat));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ EXPECT_EQ(-1.0f, valFloat);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- // To bool
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- bool valBool = false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -165,6 +169,8 @@ TEST_F(MaterialSystemTest, testCastIntProperty) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- EXPECT_EQ(true, valBool);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- EXPECT_EQ(AI_SUCCESS, pcMat->Get("zero", 0, 0, valBool));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- EXPECT_EQ(false, valBool);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ EXPECT_EQ(AI_SUCCESS, pcMat->Get("negative", 0, 0, valBool));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ EXPECT_EQ(true, valBool);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- // ------------------------------------------------------------------------------------------------
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -188,3 +194,25 @@ TEST_F(MaterialSystemTest, testCastFloatProperty) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- EXPECT_EQ(AI_SUCCESS, pcMat->Get("zero", 0, 0, valBool));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- EXPECT_EQ(false, valBool);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+// ------------------------------------------------------------------------------------------------
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+TEST_F(MaterialSystemTest, testCastSmallFloatProperty) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ float value = 0.0078125f;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ EXPECT_EQ(AI_SUCCESS, pcMat->AddProperty(&value, 1, "float"));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ value = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ EXPECT_EQ(AI_SUCCESS, pcMat->AddProperty(&value, 1, "zero"));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ // To int
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ int valInt = 0.0f;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ EXPECT_EQ(AI_SUCCESS, pcMat->Get("float", 0, 0, valInt));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ EXPECT_EQ(0, valInt);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ EXPECT_EQ(AI_SUCCESS, pcMat->Get("zero", 0, 0, valInt));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ EXPECT_EQ(0, valInt);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ // To bool
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ bool valBool = false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ EXPECT_EQ(AI_SUCCESS, pcMat->Get("float", 0, 0, valBool));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ EXPECT_EQ(true, valBool);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ EXPECT_EQ(AI_SUCCESS, pcMat->Get("zero", 0, 0, valBool));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ EXPECT_EQ(false, valBool);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/assimp/files/patch-code-AssetLib-glTF2-glTF2Asset.inl.diff b/graphics/assimp/files/patch-code-AssetLib-glTF2-glTF2Asset.inl.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 58c1e156ff1..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/graphics/assimp/files/patch-code-AssetLib-glTF2-glTF2Asset.inl.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,11 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- code/AssetLib/glTF2/glTF2Asset.inl.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ code/AssetLib/glTF2/glTF2Asset.inl
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -45,6 +45,8 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <assimp/StringUtils.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <assimp/DefaultLogger.hpp>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <rapidjson/stringbuffer.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- // clang-format off
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #ifdef ASSIMP_ENABLE_DRACO
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/assimp/files/patch-code-CMakeLists.txt.diff b/graphics/assimp/files/patch-code-CMakeLists.txt.diff
</span><span style='display:block; white-space:pre;color:#808080;'>index bfcf99aa444..ada4075bf7a 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/graphics/assimp/files/patch-code-CMakeLists.txt.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/assimp/files/patch-code-CMakeLists.txt.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,11 +1,36 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- code/CMakeLists.txt.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ code/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1201,7 +1201,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Explain to the build system that we would like to use MacPorts versions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+of these libraries, not the bundled ones which may become out of date.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- code/CMakeLists.txt.orig 2022-03-17 05:35:44.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ code/CMakeLists.txt 2022-04-18 14:44:47.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -896,8 +896,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ SOURCE_GROUP( Extra FILES ${Extra_SRCS})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # pugixml
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-IF(ASSIMP_HUNTER_ENABLED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- hunter_add_package(pugixml)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++IF(TRUE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ find_package(pugixml CONFIG REQUIRED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ELSE()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ SET( Pugixml_SRCS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -950,9 +949,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ENDIF()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # minizip/unzip
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-IF(ASSIMP_HUNTER_ENABLED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- hunter_add_package(minizip)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- find_package(minizip CONFIG REQUIRED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++IF(TRUE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ #minizip does not ship with CMake files
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ #find_package(minizip CONFIG REQUIRED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ELSE()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ SET( unzip_SRCS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ../contrib/unzip/crypt.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1213,7 +1212,7 @@
</span> target_link_libraries(assimp PUBLIC ${draco_LIBRARIES})
endif()
ELSE()
- TARGET_LINK_LIBRARIES(assimp ${ZLIB_LIBRARIES} ${OPENDDL_PARSER_LIBRARIES})
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+ TARGET_LINK_LIBRARIES(assimp ${ZLIB_LIBRARIES} ${OPENDDL_PARSER_LIBRARIES} pugixml)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ TARGET_LINK_LIBRARIES(assimp ${ZLIB_LIBRARIES} ${OPENDDL_PARSER_LIBRARIES} minizip pugixml)
</span> if (ASSIMP_BUILD_DRACO)
target_link_libraries(assimp ${draco_LIBRARIES})
endif()
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/assimp/files/patch-code-Common-ZipArchiveIOSystem.cpp.diff b/graphics/assimp/files/patch-code-Common-ZipArchiveIOSystem.cpp.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..9c11f9302bb
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/assimp/files/patch-code-Common-ZipArchiveIOSystem.cpp.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/assimp/assimp/issues/4334
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- code/Common/ZipArchiveIOSystem.cpp.orig 2022-03-17 05:35:44.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ code/Common/ZipArchiveIOSystem.cpp 2022-04-18 05:10:56.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -196,7 +196,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ zlib_filefunc_def mapping;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ mapping.zopen_file = (open_file_func)open;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef ZOPENDISK64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ mapping.zopendisk_file = (opendisk_file_func)opendisk;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ mapping.zread_file = (read_file_func)read;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ mapping.zwrite_file = (write_file_func)write;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ mapping.ztell_file = (tell_file_func)tell;
</span></pre><pre style='margin:0'>
</pre>