Build: Update OIIO and Manifold

* OpenImageIO to v3.0.6.1
* Manifold to v.3.1.0

Pull Request: https://projects.blender.org/blender/blender/pulls/138938
This commit is contained in:
Thomas Dinges
2025-05-22 16:46:12 +02:00
committed by Thomas Dinges
parent 99a4c93081
commit 0379a40627
3 changed files with 6 additions and 83 deletions

View File

@@ -131,9 +131,6 @@ ExternalProject_Add(external_openimageio
${PATCH_CMD} -p 1 -N -d
${BUILD_DIR}/openimageio/src/external_openimageio/ <
${PATCH_DIR}/openimageio.diff &&
${PATCH_CMD} -p 1 -N -d
${BUILD_DIR}/openimageio/src/external_openimageio/ <
${PATCH_DIR}/oiio_4630.diff &&
${PATCH_CMD} -p 1 -N -d
${BUILD_DIR}/openimageio/src/external_openimageio/ <
${PATCH_DIR}/oiio_windows_arm64.diff

View File

@@ -274,10 +274,10 @@ set(LLVM_HOMEPAGE https://github.com/llvm/llvm-project/)
set(LLVM_LICENSE SPDX:Apache-2.0 WITH LLVM-exception)
set(LLVM_COPYRIGHT "Copyright (c) 2003-2019 University of Illinois at Urbana-Champaign. All rights reserved.")
set(OPENIMAGEIO_VERSION v3.0.3.1)
set(OPENIMAGEIO_VERSION v3.0.6.1)
set(OPENIMAGEIO_NAME OpenImageIO)
set(OPENIMAGEIO_URI https://github.com/AcademySoftwareFoundation/OpenImageIO/archive/refs/tags/${OPENIMAGEIO_VERSION}.tar.gz)
set(OPENIMAGEIO_HASH d2d50bfe58e302c26dc7e24b86cb75fd)
set(OPENIMAGEIO_HASH 935f926a7457ffd49fa4774449e99325)
set(OPENIMAGEIO_HASH_TYPE MD5)
set(OPENIMAGEIO_FILE OpenImageIO-${OPENIMAGEIO_VERSION}.tar.gz)
set(OPENIMAGEIO_HOMEPAGE https://github.com/AcademySoftwareFoundation/OpenImageIO)
@@ -333,13 +333,12 @@ set(OSL_HOMEPAGE https://github.com/AcademySoftwareFoundation/OpenShadingLanguag
set(OSL_LICENSE SPDX:BSD-3-Clause)
set(OSL_COPYRIGHT "Copyright Contributors to the Open Shading Language project.")
set(MANIFOLD_VERSION 3.0.1)
set(MANIFOLD_COMMIT "4edd442297e25bb1dc293559efc548bb0a89b053")
set(MANIFOLD_VERSION v3.1.0)
set(MANIFOLD_NAME "Manifold")
set(MANIFOLD_URI https://github.com/elalish/manifold/archive/${MANIFOLD_COMMIT}.tar.gz)
set(MANIFOLD_HASH 4c2187839f30844be5dbfc394166e613)
set(MANIFOLD_URI https://github.com/elalish/manifold/archive/refs/tags/${MANIFOLD_VERSION}.tar.gz)
set(MANIFOLD_HASH ddbc6b342d57b3a1a6c53cd60c63c867)
set(MANIFOLD_HASH_TYPE MD5)
set(MANIFOLD_FILE Manifold-${MANIFOLD_VERSION}-${MANIFOLD_COMMIT}.tar.gz)
set(MANIFOLD_FILE Manifold-${MANIFOLD_VERSION}.tar.gz)
set(MANIFOLD_HOMEPAGE https://github.com/elalish/manifold)
set(MANIFOLD_LICENSE SPDX:Apache-2.0)
set(MANIFOLD_COPYRIGHT "Copyright 2021 The Manifold Authors.")

View File

@@ -1,73 +0,0 @@
diff --git a/src/libOpenImageIO/imagebuf.cpp b/src/libOpenImageIO/imagebuf.cpp
index 1cae86b9c9..b015995e9c 100644
--- a/src/libOpenImageIO/imagebuf.cpp
+++ b/src/libOpenImageIO/imagebuf.cpp
@@ -99,20 +99,20 @@ span_from_buffer(void* data, TypeDesc format, int nchannels, int width,
if (xstride >= 0) {
bufend += xstride * (width - 1);
} else {
- bufstart -= xstride * (width - 1);
+ bufstart += xstride * (width - 1);
}
// Expand to the span range for a whole image plane.
if (ystride >= 0) {
bufend += ystride * (height - 1);
} else {
- bufstart -= ystride * (height - 1);
+ bufstart += ystride * (height - 1);
}
// Expand to the span range for a whole volume.
if (depth > 1 && zstride != 0) {
if (zstride >= 0) {
bufend += zstride * (depth - 1);
} else {
- bufstart -= zstride * (depth - 1);
+ bufstart += zstride * (depth - 1);
}
}
return { bufstart, size_t(bufend - bufstart) };
@@ -905,7 +905,7 @@ ImageBufImpl::set_bufspan_localpixels(span<std::byte> bufspan,
}
m_bufspan = bufspan;
m_localpixels = (char*)buforigin;
- OIIO_DASSERT(check_span(m_bufspan, m_localpixels, spec().format));
+ OIIO_ASSERT(check_span(m_bufspan, m_localpixels, spec().format));
}
diff --git a/src/libOpenImageIO/imagebuf_test.cpp b/src/libOpenImageIO/imagebuf_test.cpp
index 2785ccf96c..9ef4219f73 100644
--- a/src/libOpenImageIO/imagebuf_test.cpp
+++ b/src/libOpenImageIO/imagebuf_test.cpp
@@ -300,6 +300,31 @@ ImageBuf_test_appbuffer_strided()
}
}
}
+
+ // Test negative strides by filling with yellow, backwards
+ {
+ ImageBufAlgo::fill(wrapped, cspan<float>(green));
+ // Use the ImageBuf constructor from a pointer to the last pixel and
+ // negative strides. But don't include the edge pixels of the original
+ // buffer.
+ ImageBuf neg(ImageSpec(res - 2, res - 2, nchans, TypeFloat),
+ &mem[res - 2][res - 2][0] /* point to last pixel */,
+ -nchans * sizeof(float) /* negative x stride */,
+ -res * nchans * sizeof(float) /* negative y stride*/);
+ const float yellow[nchans] = { 1.0f, 1.0f, 0.0f };
+ ImageBufAlgo::fill(neg, cspan<float>(yellow));
+
+ for (int y = 0; y < res; ++y) {
+ for (int x = 0; x < res; ++x) {
+ if (x == 0 || x == res - 1 || y == 0 || y == res - 1)
+ OIIO_CHECK_ASSERT(make_cspan(mem[y][x], nchans)
+ == make_cspan(green));
+ else
+ OIIO_CHECK_ASSERT(make_cspan(mem[y][x], nchans)
+ == make_cspan(yellow));
+ }
+ }
+ }
}