191 lines
4.8 KiB
Diff
191 lines
4.8 KiB
Diff
https://src.fedoraproject.org/rpms/blender/blob/rawhide/f/blender-openexr.patch
|
|
|
|
--- a/source/blender/imbuf/intern/openexr/openexr_api.cpp
|
|
+++ b/source/blender/imbuf/intern/openexr/openexr_api.cpp
|
|
@@ -32,30 +32,31 @@
|
|
#include <stdexcept>
|
|
#include <string>
|
|
|
|
-#include <Iex.h>
|
|
+#include <OpenEXR/Iex.h>
|
|
#include <ImathBox.h>
|
|
-#include <ImfArray.h>
|
|
-#include <ImfChannelList.h>
|
|
-#include <ImfCompression.h>
|
|
-#include <ImfCompressionAttribute.h>
|
|
-#include <ImfIO.h>
|
|
-#include <ImfInputFile.h>
|
|
-#include <ImfOutputFile.h>
|
|
-#include <ImfPixelType.h>
|
|
-#include <ImfStandardAttributes.h>
|
|
-#include <ImfStringAttribute.h>
|
|
-#include <ImfVersion.h>
|
|
-#include <half.h>
|
|
+#include <OpenEXR/ImfArray.h>
|
|
+#include <OpenEXR/ImfFrameBuffer.h>
|
|
+#include <OpenEXR/ImfChannelList.h>
|
|
+#include <OpenEXR/ImfCompression.h>
|
|
+#include <OpenEXR/ImfCompressionAttribute.h>
|
|
+#include <OpenEXR/ImfIO.h>
|
|
+#include <OpenEXR/ImfInputFile.h>
|
|
+#include <OpenEXR/ImfOutputFile.h>
|
|
+#include <OpenEXR/ImfPixelType.h>
|
|
+#include <OpenEXR/ImfStandardAttributes.h>
|
|
+#include <OpenEXR/ImfStringAttribute.h>
|
|
+#include <OpenEXR/ImfVersion.h>
|
|
+#include <Imath/half.h>
|
|
|
|
/* multiview/multipart */
|
|
-#include <ImfInputPart.h>
|
|
-#include <ImfMultiPartInputFile.h>
|
|
-#include <ImfMultiPartOutputFile.h>
|
|
-#include <ImfMultiView.h>
|
|
-#include <ImfOutputPart.h>
|
|
-#include <ImfPartHelper.h>
|
|
-#include <ImfPartType.h>
|
|
-#include <ImfTiledOutputPart.h>
|
|
+#include <OpenEXR/ImfInputPart.h>
|
|
+#include <OpenEXR/ImfMultiPartInputFile.h>
|
|
+#include <OpenEXR/ImfMultiPartOutputFile.h>
|
|
+#include <OpenEXR/ImfMultiView.h>
|
|
+#include <OpenEXR/ImfOutputPart.h>
|
|
+#include <OpenEXR/ImfPartHelper.h>
|
|
+#include <OpenEXR/ImfPartType.h>
|
|
+#include <OpenEXR/ImfTiledOutputPart.h>
|
|
|
|
#include "DNA_scene_types.h" /* For OpenEXR compression constants */
|
|
|
|
@@ -131,12 +132,12 @@ class IMemStream : public Imf::IStream {
|
|
return false;
|
|
}
|
|
|
|
- Int64 tellg() override
|
|
+ uint64_t tellg() override
|
|
{
|
|
return _exrpos;
|
|
}
|
|
|
|
- void seekg(Int64 pos) override
|
|
+ void seekg(uint64_t pos) override
|
|
{
|
|
_exrpos = pos;
|
|
}
|
|
@@ -146,8 +147,8 @@ class IMemStream : public Imf::IStream {
|
|
}
|
|
|
|
private:
|
|
- Int64 _exrpos;
|
|
- Int64 _exrsize;
|
|
+ uint64_t _exrpos;
|
|
+ uint64_t _exrsize;
|
|
unsigned char *_exrbuf;
|
|
};
|
|
|
|
@@ -182,12 +183,12 @@ class IFileStream : public Imf::IStream
|
|
return check_error();
|
|
}
|
|
|
|
- Int64 tellg() override
|
|
+ uint64_t tellg() override
|
|
{
|
|
return std::streamoff(ifs.tellg());
|
|
}
|
|
|
|
- void seekg(Int64 pos) override
|
|
+ void seekg(uint64_t pos) override
|
|
{
|
|
ifs.seekg(pos);
|
|
check_error();
|
|
@@ -231,19 +232,19 @@ class OMemStream : public OStream {
|
|
ibuf->encodedsize += n;
|
|
}
|
|
|
|
- Int64 tellp() override
|
|
+ uint64_t tellp() override
|
|
{
|
|
return offset;
|
|
}
|
|
|
|
- void seekp(Int64 pos) override
|
|
+ void seekp(uint64_t pos) override
|
|
{
|
|
offset = pos;
|
|
ensure_size(offset);
|
|
}
|
|
|
|
private:
|
|
- void ensure_size(Int64 size)
|
|
+ void ensure_size(uint64_t size)
|
|
{
|
|
/* if buffer is too small increase it. */
|
|
while (size > ibuf->encodedbuffersize) {
|
|
@@ -254,7 +255,7 @@ class OMemStream : public OStream {
|
|
}
|
|
|
|
ImBuf *ibuf;
|
|
- Int64 offset;
|
|
+ uint64_t offset;
|
|
};
|
|
|
|
/* File Output Stream */
|
|
@@ -284,12 +285,12 @@ class OFileStream : public OStream {
|
|
check_error();
|
|
}
|
|
|
|
- Int64 tellp() override
|
|
+ uint64_t tellp() override
|
|
{
|
|
return std::streamoff(ofs.tellp());
|
|
}
|
|
|
|
- void seekp(Int64 pos) override
|
|
+ void seekp(uint64_t pos) override
|
|
{
|
|
ofs.seekp(pos);
|
|
check_error();
|
|
--- a/build_files/cmake/Modules/FindOpenEXR.cmake
|
|
+++ b/build_files/cmake/Modules/FindOpenEXR.cmake
|
|
@@ -25,6 +25,7 @@
|
|
# see accompanying file BSD-3-Clause-license.txt for details.
|
|
#=============================================================================
|
|
|
|
+
|
|
# If OPENEXR_ROOT_DIR was defined in the environment, use it.
|
|
IF(NOT OPENEXR_ROOT_DIR AND NOT $ENV{OPENEXR_ROOT_DIR} STREQUAL "")
|
|
SET(OPENEXR_ROOT_DIR $ENV{OPENEXR_ROOT_DIR})
|
|
@@ -33,6 +34,16 @@ ENDIF()
|
|
# Old versions (before 2.0?) do not have any version string, just assuming this should be fine though.
|
|
SET(_openexr_libs_ver_init "2.0")
|
|
|
|
+find_package(Imath CONFIG QUIET)
|
|
+if(TARGET Imath::Imath)
|
|
+SET(_openexr_FIND_COMPONENTS
|
|
+ Imath
|
|
+ Iex
|
|
+ OpenEXR
|
|
+ IlmThread
|
|
+)
|
|
+
|
|
+else()
|
|
SET(_openexr_FIND_COMPONENTS
|
|
Half
|
|
Iex
|
|
@@ -40,6 +51,7 @@ SET(_openexr_FIND_COMPONENTS
|
|
IlmThread
|
|
Imath
|
|
)
|
|
+endif()
|
|
|
|
SET(_openexr_SEARCH_DIRS
|
|
${OPENEXR_ROOT_DIR}
|
|
@@ -121,6 +133,9 @@ IF(OPENEXR_FOUND)
|
|
SET(OPENEXR_LIBRARIES ${_openexr_LIBRARIES})
|
|
# Both include paths are needed because of dummy OSL headers mixing #include <OpenEXR/foo.h> and #include <foo.h> :(
|
|
SET(OPENEXR_INCLUDE_DIRS ${OPENEXR_INCLUDE_DIR} ${OPENEXR_INCLUDE_DIR}/OpenEXR)
|
|
+ if(TARGET Imath::Imath)
|
|
+ list(APPEND OPENEXR_INCLUDE_DIRS ${OPENEXR_INCLUDE_DIR}/Imath)
|
|
+ endif()
|
|
ENDIF()
|
|
|
|
MARK_AS_ADVANCED(
|