diff options
Diffstat (limited to 'graphics/Blender/blender-3.0.1-openexr.patch')
-rw-r--r-- | graphics/Blender/blender-3.0.1-openexr.patch | 190 |
1 files changed, 190 insertions, 0 deletions
diff --git a/graphics/Blender/blender-3.0.1-openexr.patch b/graphics/Blender/blender-3.0.1-openexr.patch new file mode 100644 index 000000000000..435498cd8a3d --- /dev/null +++ b/graphics/Blender/blender-3.0.1-openexr.patch @@ -0,0 +1,190 @@ +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( |