├── .bazelrc
├── .bazelversion
├── .clang-format
├── .git-blame-ignore-revs
├── .github
├── dependabot.yml
└── workflows
│ ├── analysis_workflow.yml
│ ├── bazel_build.yml
│ ├── ci_steps.yml
│ ├── ci_workflow.yml
│ ├── ci_workflow_old.yml
│ ├── codeql.yml
│ ├── ossfuzz_workflow.yml
│ ├── python-wheels-publish-test.yml
│ ├── python-wheels-publish.yml
│ ├── python-wheels.yml
│ ├── release-notice.yml
│ ├── release-sign.yml
│ ├── scorecard.yml
│ ├── snyk-scan-cron.yml
│ ├── website.yml
│ └── website_preview_link.yml
├── .gitignore
├── .mailmap
├── .readthedocs.yml
├── ASWF
├── charter
│ └── OpenEXR-Technical-Charter.md
├── images
│ ├── aswf.png
│ └── openexr-logo.jpg
└── proposal
│ └── OpenEXR-Adoption-Proposal.md
├── BUILD.bazel
├── CHANGES.md
├── CMakeLists.txt
├── CMakePresets.json
├── CODEOWNERS
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── CONTRIBUTORS.md
├── Contrib
├── DtexToExr
│ ├── AUTHORS
│ ├── ChangeLog
│ ├── DtexToExr.cpp
│ ├── Makefile.test
│ ├── PxBaseDeepHelper.h
│ ├── PxDeepOutPixel.h
│ ├── PxDeepOutRow.h
│ ├── PxDeepUtils.cpp
│ ├── PxDeepUtils.h
│ ├── PxFourChanDeepRgba.h
│ ├── PxOneChanDeepAlpha.h
│ ├── PxOneChanDeepOpacity.h
│ ├── README
│ ├── bootstrap
│ ├── configure.ac
│ └── m4
│ │ ├── compilelinkrun.m4
│ │ ├── path.pkgconfig.m4
│ │ └── threads.m4
└── NuGet
│ ├── OpenEXR-msvc-x64-build.nuget.bat
│ ├── OpenEXR-msvc-x64.nuspec
│ ├── OpenEXR-msvc-x64.targets
│ ├── OpenEXR-msvc-x86-build.nuget.bat
│ ├── OpenEXR-msvc-x86.nuspec
│ └── OpenEXR-msvc-x86.targets
├── GOVERNANCE.md
├── LICENSE.md
├── MODULE.bazel
├── PATENTS
├── README.md
├── SECURITY.md
├── WORKSPACE.bazel
├── bazel
├── BUILD.bazel
├── imath_add_build_file.patch
├── imath_module_dot_bazel.patch
├── libdeflate_add_build_file.patch
├── libdeflate_module_dot_bazel.patch
├── openjph_add_build_file.patch
└── openjph_module_dot_bazel.patch
├── cmake
├── CMakeLists.txt
├── FindPythonPackage.cmake
├── FindSphinx.cmake
├── IexConfig.h.in
├── IexConfigInternal.h.in
├── IlmThreadConfig.h.in
├── JoinPaths.cmake
├── LibraryDefine.cmake
├── OpenEXR.pc.in
├── OpenEXRConfig.cmake.in
├── OpenEXRConfig.h.in
├── OpenEXRConfigInternal.h.in
├── OpenEXRLibraryDefine.cmake
├── OpenEXRSetup.cmake
├── SampleCTestScript.cmake
├── Toolchain-Linux-VFX_Platform15.cmake
├── Toolchain-mingw.cmake
├── clang-format.cmake
└── cmake_uninstall.cmake.in
├── docs
└── CMakeLists.txt
├── pyproject.toml
├── share
├── ci
│ ├── install_manifest
│ │ ├── install_manifest.macos.1.txt
│ │ ├── install_manifest.macos.2.txt
│ │ ├── install_manifest.macos.3.txt
│ │ ├── install_manifest.macos.4.txt
│ │ ├── install_manifest.macos.5.txt
│ │ ├── install_manifest.macos.6.txt
│ │ ├── install_manifest.macos.7.txt
│ │ ├── install_manifest.ubuntu.1.txt
│ │ ├── install_manifest.ubuntu.10.txt
│ │ ├── install_manifest.ubuntu.2.txt
│ │ ├── install_manifest.ubuntu.3.txt
│ │ ├── install_manifest.ubuntu.4.txt
│ │ ├── install_manifest.ubuntu.5.txt
│ │ ├── install_manifest.ubuntu.6.txt
│ │ ├── install_manifest.ubuntu.7.txt
│ │ ├── install_manifest.ubuntu.8.txt
│ │ ├── install_manifest.ubuntu.9.txt
│ │ ├── install_manifest.windows.1.txt
│ │ ├── install_manifest.windows.10.txt
│ │ ├── install_manifest.windows.2.txt
│ │ ├── install_manifest.windows.3.txt
│ │ ├── install_manifest.windows.4.txt
│ │ ├── install_manifest.windows.5.txt
│ │ ├── install_manifest.windows.6.txt
│ │ ├── install_manifest.windows.7.txt
│ │ ├── install_manifest.windows.8.txt
│ │ └── install_manifest.windows.9.txt
│ └── scripts
│ │ ├── install_help2man.sh
│ │ ├── install_imath.sh
│ │ ├── install_libdeflate.sh
│ │ ├── install_openjph.sh
│ │ ├── install_pybind11.sh
│ │ ├── linux
│ │ ├── install_valgrind.sh
│ │ ├── log_valgrind.sh
│ │ ├── run_gcov.sh
│ │ └── validate_openexr_libs.sh
│ │ └── validate_install.py
└── util
│ ├── abi_checker.sh
│ ├── clang_coverage.sh
│ └── reformat.sh
├── sonar-project.properties
├── src
├── bin
│ ├── CMakeLists.txt
│ ├── exr2aces
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── exrcheck
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── exrenvmap
│ │ ├── CMakeLists.txt
│ │ ├── EnvmapImage.cpp
│ │ ├── EnvmapImage.h
│ │ ├── blurImage.cpp
│ │ ├── blurImage.h
│ │ ├── main.cpp
│ │ ├── makeCubeMap.cpp
│ │ ├── makeCubeMap.h
│ │ ├── makeLatLongMap.cpp
│ │ ├── makeLatLongMap.h
│ │ ├── namespaceAlias.h
│ │ ├── readInputImage.cpp
│ │ ├── readInputImage.h
│ │ ├── resizeImage.cpp
│ │ └── resizeImage.h
│ ├── exrheader
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── exrinfo
│ │ ├── CMakeLists.txt
│ │ └── main.c
│ ├── exrmakepreview
│ │ ├── CMakeLists.txt
│ │ ├── main.cpp
│ │ ├── makePreview.cpp
│ │ └── makePreview.h
│ ├── exrmaketiled
│ │ ├── CMakeLists.txt
│ │ ├── Image.cpp
│ │ ├── Image.h
│ │ ├── main.cpp
│ │ ├── makeTiled.cpp
│ │ ├── makeTiled.h
│ │ └── namespaceAlias.h
│ ├── exrmanifest
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── exrmetrics
│ │ ├── CMakeLists.txt
│ │ ├── exrmetrics.cpp
│ │ ├── exrmetrics.h
│ │ └── main.cpp
│ ├── exrmultipart
│ │ ├── CMakeLists.txt
│ │ └── exrmultipart.cpp
│ ├── exrmultiview
│ │ ├── CMakeLists.txt
│ │ ├── Image.cpp
│ │ ├── Image.h
│ │ ├── main.cpp
│ │ ├── makeMultiView.cpp
│ │ ├── makeMultiView.h
│ │ └── namespaceAlias.h
│ └── exrstdattr
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
├── examples
│ ├── BUILD.bazel
│ ├── CMakeLists.txt
│ ├── deepExamples.cpp
│ ├── deepExamples.h
│ ├── deepTiledExamples.cpp
│ ├── deepTiledExamples.h
│ ├── deepidexample.cpp
│ ├── deepidselect.cpp
│ ├── drawImage.cpp
│ ├── drawImage.h
│ ├── generalInterfaceExamples.cpp
│ ├── generalInterfaceExamples.h
│ ├── generalInterfaceTiledExamples.cpp
│ ├── generalInterfaceTiledExamples.h
│ ├── lowLevelIoExamples.cpp
│ ├── lowLevelIoExamples.h
│ ├── main.cpp
│ ├── multipartExamples.cpp
│ ├── multipartExamples.h
│ ├── namespaceAlias.h
│ ├── previewImageExamples.cpp
│ ├── previewImageExamples.h
│ ├── rgbaInterfaceExamples.cpp
│ ├── rgbaInterfaceExamples.h
│ ├── rgbaInterfaceTiledExamples.cpp
│ └── rgbaInterfaceTiledExamples.h
├── lib
│ ├── .gitignore
│ ├── CMakeLists.txt
│ ├── Iex
│ │ ├── CMakeLists.txt
│ │ ├── Iex.h
│ │ ├── IexBaseExc.cpp
│ │ ├── IexBaseExc.h
│ │ ├── IexErrnoExc.h
│ │ ├── IexExport.h
│ │ ├── IexForward.h
│ │ ├── IexMacros.h
│ │ ├── IexMathExc.h
│ │ ├── IexMathFloatExc.cpp
│ │ ├── IexMathFloatExc.h
│ │ ├── IexMathFpu.cpp
│ │ ├── IexMathFpu.h
│ │ ├── IexMathIeeeExc.h
│ │ ├── IexNamespace.h
│ │ ├── IexThrowErrnoExc.cpp
│ │ └── IexThrowErrnoExc.h
│ ├── IlmThread
│ │ ├── CMakeLists.txt
│ │ ├── IlmThread.cpp
│ │ ├── IlmThread.h
│ │ ├── IlmThreadExport.h
│ │ ├── IlmThreadForward.h
│ │ ├── IlmThreadMutex.h
│ │ ├── IlmThreadNamespace.h
│ │ ├── IlmThreadPool.cpp
│ │ ├── IlmThreadPool.h
│ │ ├── IlmThreadProcessGroup.h
│ │ ├── IlmThreadSemaphore.cpp
│ │ ├── IlmThreadSemaphore.h
│ │ ├── IlmThreadSemaphoreOSX.cpp
│ │ ├── IlmThreadSemaphorePosix.cpp
│ │ ├── IlmThreadSemaphorePosixCompat.cpp
│ │ └── IlmThreadSemaphoreWin32.cpp
│ ├── OpenEXR
│ │ ├── CMakeLists.txt
│ │ ├── ImfAcesFile.cpp
│ │ ├── ImfAcesFile.h
│ │ ├── ImfArray.h
│ │ ├── ImfAttribute.cpp
│ │ ├── ImfAttribute.h
│ │ ├── ImfAutoArray.h
│ │ ├── ImfB44Compressor.cpp
│ │ ├── ImfB44Compressor.h
│ │ ├── ImfBoxAttribute.cpp
│ │ ├── ImfBoxAttribute.h
│ │ ├── ImfCRgbaFile.cpp
│ │ ├── ImfCRgbaFile.h
│ │ ├── ImfChannelList.cpp
│ │ ├── ImfChannelList.h
│ │ ├── ImfChannelListAttribute.cpp
│ │ ├── ImfChannelListAttribute.h
│ │ ├── ImfCheckedArithmetic.h
│ │ ├── ImfChromaticities.cpp
│ │ ├── ImfChromaticities.h
│ │ ├── ImfChromaticitiesAttribute.cpp
│ │ ├── ImfChromaticitiesAttribute.h
│ │ ├── ImfCompositeDeepScanLine.cpp
│ │ ├── ImfCompositeDeepScanLine.h
│ │ ├── ImfCompression.cpp
│ │ ├── ImfCompression.h
│ │ ├── ImfCompressionAttribute.cpp
│ │ ├── ImfCompressionAttribute.h
│ │ ├── ImfCompressor.cpp
│ │ ├── ImfCompressor.h
│ │ ├── ImfContext.cpp
│ │ ├── ImfContext.h
│ │ ├── ImfContextInit.cpp
│ │ ├── ImfContextInit.h
│ │ ├── ImfConvert.cpp
│ │ ├── ImfConvert.h
│ │ ├── ImfDeepCompositing.cpp
│ │ ├── ImfDeepCompositing.h
│ │ ├── ImfDeepFrameBuffer.cpp
│ │ ├── ImfDeepFrameBuffer.h
│ │ ├── ImfDeepImageState.h
│ │ ├── ImfDeepImageStateAttribute.cpp
│ │ ├── ImfDeepImageStateAttribute.h
│ │ ├── ImfDeepScanLineInputFile.cpp
│ │ ├── ImfDeepScanLineInputFile.h
│ │ ├── ImfDeepScanLineInputPart.cpp
│ │ ├── ImfDeepScanLineInputPart.h
│ │ ├── ImfDeepScanLineOutputFile.cpp
│ │ ├── ImfDeepScanLineOutputFile.h
│ │ ├── ImfDeepScanLineOutputPart.cpp
│ │ ├── ImfDeepScanLineOutputPart.h
│ │ ├── ImfDeepTiledInputFile.cpp
│ │ ├── ImfDeepTiledInputFile.h
│ │ ├── ImfDeepTiledInputPart.cpp
│ │ ├── ImfDeepTiledInputPart.h
│ │ ├── ImfDeepTiledOutputFile.cpp
│ │ ├── ImfDeepTiledOutputFile.h
│ │ ├── ImfDeepTiledOutputPart.cpp
│ │ ├── ImfDeepTiledOutputPart.h
│ │ ├── ImfDoubleAttribute.cpp
│ │ ├── ImfDoubleAttribute.h
│ │ ├── ImfDwaCompressor.cpp
│ │ ├── ImfDwaCompressor.h
│ │ ├── ImfEnvmap.cpp
│ │ ├── ImfEnvmap.h
│ │ ├── ImfEnvmapAttribute.cpp
│ │ ├── ImfEnvmapAttribute.h
│ │ ├── ImfExport.h
│ │ ├── ImfFastHuf.cpp
│ │ ├── ImfFastHuf.h
│ │ ├── ImfFloatAttribute.cpp
│ │ ├── ImfFloatAttribute.h
│ │ ├── ImfFloatVectorAttribute.cpp
│ │ ├── ImfFloatVectorAttribute.h
│ │ ├── ImfForward.h
│ │ ├── ImfFrameBuffer.cpp
│ │ ├── ImfFrameBuffer.h
│ │ ├── ImfFramesPerSecond.cpp
│ │ ├── ImfFramesPerSecond.h
│ │ ├── ImfGenericInputFile.cpp
│ │ ├── ImfGenericInputFile.h
│ │ ├── ImfGenericOutputFile.cpp
│ │ ├── ImfGenericOutputFile.h
│ │ ├── ImfHTCompressor.cpp
│ │ ├── ImfHTCompressor.h
│ │ ├── ImfHeader.cpp
│ │ ├── ImfHeader.h
│ │ ├── ImfHuf.cpp
│ │ ├── ImfHuf.h
│ │ ├── ImfIDManifest.cpp
│ │ ├── ImfIDManifest.h
│ │ ├── ImfIDManifestAttribute.cpp
│ │ ├── ImfIDManifestAttribute.h
│ │ ├── ImfIO.cpp
│ │ ├── ImfIO.h
│ │ ├── ImfInputFile.cpp
│ │ ├── ImfInputFile.h
│ │ ├── ImfInputPart.cpp
│ │ ├── ImfInputPart.h
│ │ ├── ImfInputPartData.cpp
│ │ ├── ImfInputPartData.h
│ │ ├── ImfInputStreamMutex.h
│ │ ├── ImfInt64.h
│ │ ├── ImfIntAttribute.cpp
│ │ ├── ImfIntAttribute.h
│ │ ├── ImfKeyCode.cpp
│ │ ├── ImfKeyCode.h
│ │ ├── ImfKeyCodeAttribute.cpp
│ │ ├── ImfKeyCodeAttribute.h
│ │ ├── ImfLineOrder.h
│ │ ├── ImfLineOrderAttribute.cpp
│ │ ├── ImfLineOrderAttribute.h
│ │ ├── ImfLut.cpp
│ │ ├── ImfLut.h
│ │ ├── ImfMatrixAttribute.cpp
│ │ ├── ImfMatrixAttribute.h
│ │ ├── ImfMisc.cpp
│ │ ├── ImfMisc.h
│ │ ├── ImfMultiPartInputFile.cpp
│ │ ├── ImfMultiPartInputFile.h
│ │ ├── ImfMultiPartOutputFile.cpp
│ │ ├── ImfMultiPartOutputFile.h
│ │ ├── ImfMultiView.cpp
│ │ ├── ImfMultiView.h
│ │ ├── ImfName.h
│ │ ├── ImfNamespace.h
│ │ ├── ImfOpaqueAttribute.cpp
│ │ ├── ImfOpaqueAttribute.h
│ │ ├── ImfOptimizedPixelReading.h
│ │ ├── ImfOutputFile.cpp
│ │ ├── ImfOutputFile.h
│ │ ├── ImfOutputPart.cpp
│ │ ├── ImfOutputPart.h
│ │ ├── ImfOutputPartData.cpp
│ │ ├── ImfOutputPartData.h
│ │ ├── ImfOutputStreamMutex.h
│ │ ├── ImfPartHelper.h
│ │ ├── ImfPartType.cpp
│ │ ├── ImfPartType.h
│ │ ├── ImfPixelType.h
│ │ ├── ImfPizCompressor.cpp
│ │ ├── ImfPizCompressor.h
│ │ ├── ImfPreviewImage.cpp
│ │ ├── ImfPreviewImage.h
│ │ ├── ImfPreviewImageAttribute.cpp
│ │ ├── ImfPreviewImageAttribute.h
│ │ ├── ImfPxr24Compressor.cpp
│ │ ├── ImfPxr24Compressor.h
│ │ ├── ImfRational.cpp
│ │ ├── ImfRational.h
│ │ ├── ImfRationalAttribute.cpp
│ │ ├── ImfRationalAttribute.h
│ │ ├── ImfRgba.h
│ │ ├── ImfRgbaFile.cpp
│ │ ├── ImfRgbaFile.h
│ │ ├── ImfRgbaYca.cpp
│ │ ├── ImfRgbaYca.h
│ │ ├── ImfRle.cpp
│ │ ├── ImfRle.h
│ │ ├── ImfRleCompressor.cpp
│ │ ├── ImfRleCompressor.h
│ │ ├── ImfScanLineInputFile.cpp
│ │ ├── ImfScanLineInputFile.h
│ │ ├── ImfSimd.h
│ │ ├── ImfStandardAttributes.cpp
│ │ ├── ImfStandardAttributes.h
│ │ ├── ImfStdIO.cpp
│ │ ├── ImfStdIO.h
│ │ ├── ImfStringAttribute.cpp
│ │ ├── ImfStringAttribute.h
│ │ ├── ImfStringVectorAttribute.cpp
│ │ ├── ImfStringVectorAttribute.h
│ │ ├── ImfSystemSpecific.cpp
│ │ ├── ImfSystemSpecific.h
│ │ ├── ImfTestFile.cpp
│ │ ├── ImfTestFile.h
│ │ ├── ImfThreading.cpp
│ │ ├── ImfThreading.h
│ │ ├── ImfTileDescription.h
│ │ ├── ImfTileDescriptionAttribute.cpp
│ │ ├── ImfTileDescriptionAttribute.h
│ │ ├── ImfTileOffsets.cpp
│ │ ├── ImfTileOffsets.h
│ │ ├── ImfTiledInputFile.cpp
│ │ ├── ImfTiledInputFile.h
│ │ ├── ImfTiledInputPart.cpp
│ │ ├── ImfTiledInputPart.h
│ │ ├── ImfTiledMisc.cpp
│ │ ├── ImfTiledMisc.h
│ │ ├── ImfTiledOutputFile.cpp
│ │ ├── ImfTiledOutputFile.h
│ │ ├── ImfTiledOutputPart.cpp
│ │ ├── ImfTiledOutputPart.h
│ │ ├── ImfTiledRgbaFile.cpp
│ │ ├── ImfTiledRgbaFile.h
│ │ ├── ImfTimeCode.cpp
│ │ ├── ImfTimeCode.h
│ │ ├── ImfTimeCodeAttribute.cpp
│ │ ├── ImfTimeCodeAttribute.h
│ │ ├── ImfVecAttribute.cpp
│ │ ├── ImfVecAttribute.h
│ │ ├── ImfVersion.cpp
│ │ ├── ImfVersion.h
│ │ ├── ImfWav.cpp
│ │ ├── ImfWav.h
│ │ ├── ImfXdr.h
│ │ ├── ImfZip.cpp
│ │ ├── ImfZip.h
│ │ ├── ImfZipCompressor.cpp
│ │ ├── ImfZipCompressor.h
│ │ ├── b44ExpLogTable.cpp
│ │ └── dwaLookups.cpp
│ ├── OpenEXRCore
│ │ ├── CMakeLists.txt
│ │ ├── attributes.c
│ │ ├── backward_compatibility.h
│ │ ├── base.c
│ │ ├── channel_list.c
│ │ ├── chunk.c
│ │ ├── coding.c
│ │ ├── compression.c
│ │ ├── context.c
│ │ ├── debug.c
│ │ ├── decoding.c
│ │ ├── dwaLookups.h
│ │ ├── encoding.c
│ │ ├── float_vector.c
│ │ ├── internal_attr.h
│ │ ├── internal_b44.c
│ │ ├── internal_b44_table.c
│ │ ├── internal_channel_list.h
│ │ ├── internal_coding.h
│ │ ├── internal_compress.h
│ │ ├── internal_constants.h
│ │ ├── internal_cpuid.h
│ │ ├── internal_decompress.h
│ │ ├── internal_dwa.c
│ │ ├── internal_dwa_channeldata.h
│ │ ├── internal_dwa_classifier.h
│ │ ├── internal_dwa_compressor.h
│ │ ├── internal_dwa_decoder.h
│ │ ├── internal_dwa_encoder.h
│ │ ├── internal_dwa_helpers.h
│ │ ├── internal_dwa_simd.h
│ │ ├── internal_file.h
│ │ ├── internal_float_vector.h
│ │ ├── internal_ht.cpp
│ │ ├── internal_ht_common.cpp
│ │ ├── internal_ht_common.h
│ │ ├── internal_huf.c
│ │ ├── internal_huf.h
│ │ ├── internal_memory.h
│ │ ├── internal_opaque.h
│ │ ├── internal_piz.c
│ │ ├── internal_posix_file_impl.h
│ │ ├── internal_preview.h
│ │ ├── internal_pxr24.c
│ │ ├── internal_rle.c
│ │ ├── internal_string.h
│ │ ├── internal_string_vector.h
│ │ ├── internal_structs.c
│ │ ├── internal_structs.h
│ │ ├── internal_util.h
│ │ ├── internal_win32_file_impl.h
│ │ ├── internal_xdr.h
│ │ ├── internal_zip.c
│ │ ├── memory.c
│ │ ├── opaque.c
│ │ ├── openexr.h
│ │ ├── openexr_attr.h
│ │ ├── openexr_base.h
│ │ ├── openexr_chunkio.h
│ │ ├── openexr_coding.h
│ │ ├── openexr_compression.h
│ │ ├── openexr_config.h
│ │ ├── openexr_context.h
│ │ ├── openexr_debug.h
│ │ ├── openexr_decode.h
│ │ ├── openexr_encode.h
│ │ ├── openexr_errors.h
│ │ ├── openexr_part.h
│ │ ├── openexr_std_attr.h
│ │ ├── openexr_version.h
│ │ ├── pack.c
│ │ ├── parse_header.c
│ │ ├── part.c
│ │ ├── part_attr.c
│ │ ├── preview.c
│ │ ├── std_attr.c
│ │ ├── string.c
│ │ ├── string_vector.c
│ │ ├── unpack.c
│ │ ├── validation.c
│ │ └── write_header.c
│ └── OpenEXRUtil
│ │ ├── CMakeLists.txt
│ │ ├── ImfCheckFile.cpp
│ │ ├── ImfCheckFile.h
│ │ ├── ImfDeepImage.cpp
│ │ ├── ImfDeepImage.h
│ │ ├── ImfDeepImageChannel.cpp
│ │ ├── ImfDeepImageChannel.h
│ │ ├── ImfDeepImageIO.cpp
│ │ ├── ImfDeepImageIO.h
│ │ ├── ImfDeepImageLevel.cpp
│ │ ├── ImfDeepImageLevel.h
│ │ ├── ImfFlatImage.cpp
│ │ ├── ImfFlatImage.h
│ │ ├── ImfFlatImageChannel.cpp
│ │ ├── ImfFlatImageChannel.h
│ │ ├── ImfFlatImageIO.cpp
│ │ ├── ImfFlatImageIO.h
│ │ ├── ImfFlatImageLevel.cpp
│ │ ├── ImfFlatImageLevel.h
│ │ ├── ImfImage.cpp
│ │ ├── ImfImage.h
│ │ ├── ImfImageChannel.cpp
│ │ ├── ImfImageChannel.h
│ │ ├── ImfImageChannelRenaming.h
│ │ ├── ImfImageDataWindow.cpp
│ │ ├── ImfImageDataWindow.h
│ │ ├── ImfImageIO.cpp
│ │ ├── ImfImageIO.h
│ │ ├── ImfImageLevel.cpp
│ │ ├── ImfImageLevel.h
│ │ ├── ImfSampleCountChannel.cpp
│ │ ├── ImfSampleCountChannel.h
│ │ ├── ImfUtilExport.h
│ │ └── README
├── test
│ ├── CMakeLists.txt
│ ├── IexTest
│ │ ├── CMakeLists.txt
│ │ ├── main.cpp
│ │ ├── mathFuncs.cpp
│ │ ├── mathFuncs.h
│ │ ├── testBaseExc.cpp
│ │ ├── testBaseExc.h
│ │ ├── testMathExc.cpp
│ │ └── testMathExc.h
│ ├── OpenEXRCoreTest
│ │ ├── CMakeLists.txt
│ │ ├── base_units.cpp
│ │ ├── base_units.h
│ │ ├── buffer.cpp
│ │ ├── buffer.h
│ │ ├── compression.cpp
│ │ ├── compression.h
│ │ ├── compressionTables.cpp
│ │ ├── deep.cpp
│ │ ├── deep.h
│ │ ├── dwaQuantTables.h
│ │ ├── general_attr.cpp
│ │ ├── general_attr.h
│ │ ├── main.cpp
│ │ ├── performance.cpp
│ │ ├── read.cpp
│ │ ├── read.h
│ │ ├── test_value.h
│ │ ├── write.cpp
│ │ └── write.h
│ ├── OpenEXRFuzzTest
│ │ ├── CMakeLists.txt
│ │ ├── fuzzFile.cpp
│ │ ├── fuzzFile.h
│ │ ├── main.cpp
│ │ ├── oss-fuzz
│ │ ├── testFuzzDeepScanLines.cpp
│ │ ├── testFuzzDeepScanLines.h
│ │ ├── testFuzzDeepTiles.cpp
│ │ ├── testFuzzDeepTiles.h
│ │ ├── testFuzzScanLines.cpp
│ │ ├── testFuzzScanLines.h
│ │ ├── testFuzzTiles.cpp
│ │ └── testFuzzTiles.h
│ ├── OpenEXRTest
│ │ ├── CMakeLists.txt
│ │ ├── TestUtilFStream.h
│ │ ├── bswap_32.h
│ │ ├── comp_b44.exr
│ │ ├── comp_b44_piz.exr
│ │ ├── comp_bad_bounds_piz.exr
│ │ ├── comp_bad_neg_bounds_pxr24.exr
│ │ ├── comp_bad_pos_bounds_piz.exr
│ │ ├── comp_bad_pos_bounds_pxr24.exr
│ │ ├── comp_dwaa_piz.exr
│ │ ├── comp_dwaa_v1.exr
│ │ ├── comp_dwaa_v2.exr
│ │ ├── comp_dwab_piz.exr
│ │ ├── comp_dwab_v1.exr
│ │ ├── comp_dwab_v2.exr
│ │ ├── comp_early_eof_piz.exr
│ │ ├── comp_invalid_unknown.exr
│ │ ├── comp_none.exr
│ │ ├── comp_piz.exr
│ │ ├── comp_rle.exr
│ │ ├── comp_short_decode_piz.exr
│ │ ├── comp_zip.exr
│ │ ├── comp_zips.exr
│ │ ├── compareB44.cpp
│ │ ├── compareB44.h
│ │ ├── compareDwa.cpp
│ │ ├── compareDwa.h
│ │ ├── compareFloat.cpp
│ │ ├── compareFloat.h
│ │ ├── invalid.exr
│ │ ├── invalid_shared_attrs_multipart.exr
│ │ ├── lineOrder_decreasing.exr
│ │ ├── lineOrder_increasing.exr
│ │ ├── main.cpp
│ │ ├── random.cpp
│ │ ├── random.h
│ │ ├── scanline_with_deepscanline_type.exr
│ │ ├── scanline_with_deeptiled_type.exr
│ │ ├── scanline_with_tiledimage_type.exr
│ │ ├── testAttributes.cpp
│ │ ├── testAttributes.h
│ │ ├── testBackwardCompatibility.cpp
│ │ ├── testBackwardCompatibility.h
│ │ ├── testBadTypeAttributes.cpp
│ │ ├── testBadTypeAttributes.h
│ │ ├── testCRgba.cpp
│ │ ├── testCRgba.h
│ │ ├── testChannels.cpp
│ │ ├── testChannels.h
│ │ ├── testCompositeDeepScanLine.cpp
│ │ ├── testCompositeDeepScanLine.h
│ │ ├── testCompression.cpp
│ │ ├── testCompression.h
│ │ ├── testCompressionApi.cpp
│ │ ├── testCompressionApi.h
│ │ ├── testConversion.cpp
│ │ ├── testConversion.h
│ │ ├── testCopyDeepScanLine.cpp
│ │ ├── testCopyDeepScanLine.h
│ │ ├── testCopyDeepTiled.cpp
│ │ ├── testCopyDeepTiled.h
│ │ ├── testCopyMultiPartFile.cpp
│ │ ├── testCopyMultiPartFile.h
│ │ ├── testCopyPixels.cpp
│ │ ├── testCopyPixels.h
│ │ ├── testCpuId.cpp
│ │ ├── testCpuId.h
│ │ ├── testCustomAttributes.cpp
│ │ ├── testCustomAttributes.h
│ │ ├── testDeepScanLineBasic.cpp
│ │ ├── testDeepScanLineBasic.h
│ │ ├── testDeepScanLineHuge.cpp
│ │ ├── testDeepScanLineHuge.h
│ │ ├── testDeepScanLineMultipleRead.cpp
│ │ ├── testDeepScanLineMultipleRead.h
│ │ ├── testDeepTiledBasic.cpp
│ │ ├── testDeepTiledBasic.h
│ │ ├── testExistingStreams.cpp
│ │ ├── testExistingStreams.h
│ │ ├── testFutureProofing.cpp
│ │ ├── testFutureProofing.h
│ │ ├── testHeader.cpp
│ │ ├── testHeader.h
│ │ ├── testHuf.cpp
│ │ ├── testHuf.h
│ │ ├── testIDManifest.cpp
│ │ ├── testIDManifest.h
│ │ ├── testInputPart.cpp
│ │ ├── testInputPart.h
│ │ ├── testIsComplete.cpp
│ │ ├── testIsComplete.h
│ │ ├── testLargeDataWindowOffsets.cpp
│ │ ├── testLargeDataWindowOffsets.h
│ │ ├── testLineOrder.cpp
│ │ ├── testLineOrder.h
│ │ ├── testLut.cpp
│ │ ├── testLut.h
│ │ ├── testMagic.cpp
│ │ ├── testMagic.h
│ │ ├── testMalformedImages.cpp
│ │ ├── testMalformedImages.h
│ │ ├── testMultiPartApi.cpp
│ │ ├── testMultiPartApi.h
│ │ ├── testMultiPartFileMixingBasic.cpp
│ │ ├── testMultiPartFileMixingBasic.h
│ │ ├── testMultiPartSharedAttributes.cpp
│ │ ├── testMultiPartSharedAttributes.h
│ │ ├── testMultiPartThreading.cpp
│ │ ├── testMultiPartThreading.h
│ │ ├── testMultiScanlinePartThreading.cpp
│ │ ├── testMultiScanlinePartThreading.h
│ │ ├── testMultiTiledPartThreading.cpp
│ │ ├── testMultiTiledPartThreading.h
│ │ ├── testMultiView.cpp
│ │ ├── testMultiView.h
│ │ ├── testNativeFormat.cpp
│ │ ├── testNativeFormat.h
│ │ ├── testOptimized.cpp
│ │ ├── testOptimized.h
│ │ ├── testOptimizedInterleavePatterns.cpp
│ │ ├── testOptimizedInterleavePatterns.h
│ │ ├── testPartHelper.cpp
│ │ ├── testPartHelper.h
│ │ ├── testPreviewImage.cpp
│ │ ├── testPreviewImage.h
│ │ ├── testRgba.cpp
│ │ ├── testRgba.h
│ │ ├── testRgbaThreading.cpp
│ │ ├── testRgbaThreading.h
│ │ ├── testRle.cpp
│ │ ├── testRle.h
│ │ ├── testSampleImages.cpp
│ │ ├── testSampleImages.h
│ │ ├── testScanLineApi.cpp
│ │ ├── testScanLineApi.h
│ │ ├── testSharedFrameBuffer.cpp
│ │ ├── testSharedFrameBuffer.h
│ │ ├── testStandardAttributes.cpp
│ │ ├── testStandardAttributes.h
│ │ ├── testTiledCompression.cpp
│ │ ├── testTiledCompression.h
│ │ ├── testTiledCopyPixels.cpp
│ │ ├── testTiledCopyPixels.h
│ │ ├── testTiledLineOrder.cpp
│ │ ├── testTiledLineOrder.h
│ │ ├── testTiledRgba.cpp
│ │ ├── testTiledRgba.h
│ │ ├── testTiledYa.cpp
│ │ ├── testTiledYa.h
│ │ ├── testWav.cpp
│ │ ├── testWav.h
│ │ ├── testXdr.cpp
│ │ ├── testXdr.h
│ │ ├── testYca.cpp
│ │ ├── testYca.h
│ │ ├── test_native1.exr
│ │ ├── test_native2.exr
│ │ ├── tiled.exr
│ │ ├── tiled_with_deepscanline_type.exr
│ │ ├── tiled_with_deeptile_type.exr
│ │ ├── tiled_with_scanlineimage_type.exr
│ │ ├── tmpDir.h
│ │ ├── v1.7.test.1.exr
│ │ ├── v1.7.test.interleaved.exr
│ │ ├── v1.7.test.planar.exr
│ │ └── v1.7.test.tiled.exr
│ ├── OpenEXRUtilTest
│ │ ├── CMakeLists.txt
│ │ ├── main.cpp
│ │ ├── testDeepImage.cpp
│ │ ├── testDeepImage.h
│ │ ├── testFlatImage.cpp
│ │ ├── testFlatImage.h
│ │ ├── testIO.cpp
│ │ └── testIO.h
│ ├── bin
│ │ ├── CMakeLists.txt
│ │ ├── do_run.py
│ │ ├── test_exr2aces.py
│ │ ├── test_exrcheck.py
│ │ ├── test_exrenvmap.py
│ │ ├── test_exrheader.py
│ │ ├── test_exrinfo.py
│ │ ├── test_exrmakepreview.py
│ │ ├── test_exrmaketiled.py
│ │ ├── test_exrmanifest.py
│ │ ├── test_exrmetrics.py
│ │ ├── test_exrmultipart.py
│ │ ├── test_exrmultiview.py
│ │ ├── test_exrstdattr.py
│ │ └── test_images
│ │ │ ├── 11.deep.exr
│ │ │ ├── 11.deep.exr.txt
│ │ │ ├── 42.deep.exr
│ │ │ ├── 42.deep.exr.txt
│ │ │ ├── 64.deep.exr
│ │ │ ├── 64.deep.exr.txt
│ │ │ ├── Flowers.exr
│ │ │ ├── GammaChart.exr
│ │ │ ├── GrayRampsHorizontal.exr
│ │ │ ├── WavyLinesCube.exr
│ │ │ ├── WavyLinesLatLong.exr
│ │ │ ├── multipart.0001.exr
│ │ │ ├── multivariate.deep.exr
│ │ │ ├── multivariate.deep.exr.txt
│ │ │ ├── objectid.deep.exr
│ │ │ └── objectid.deep.exr.txt
│ └── oss-fuzz
│ │ ├── CMakeLists.txt
│ │ ├── openexr_exrcheck_fuzzer.cc
│ │ ├── openexr_exrcorecheck_fuzzer.cc
│ │ └── test_build.sh
└── wrappers
│ └── python
│ ├── CMakeLists.txt
│ ├── Imath.py
│ ├── PyOpenEXR.cpp
│ ├── PyOpenEXR.h
│ ├── PyOpenEXR_old.cpp
│ ├── README.md
│ ├── openexr_skbuild_plugin.py
│ └── tests
│ ├── test.exr
│ ├── test_deep.py
│ ├── test_exceptions.py
│ ├── test_images.py
│ ├── test_import.py
│ ├── test_minimal.py
│ ├── test_old.py
│ ├── test_readme.py
│ ├── test_rgba.py
│ └── test_unittest.py
└── website
├── API.rst
├── CMakeLists.txt
├── DeepIDsSpecification.rst
├── Doxyfile.in
├── HelloWorld.rst
├── InterpretingDeepPixels.rst
├── MultiViewOpenEXR.rst
├── OpenEXRCoreAPI.rst
├── OpenEXRFileLayout.rst
├── PortingGuide.rst
├── ReadingAndWritingImageFiles.rst
├── SceneLinear.rst
├── StandardAttributes.rst
├── SymbolVisibility.rst
├── TechnicalIntroduction.rst
├── TheoryDeepPixels.rst
├── _templates
└── layout.html
├── about.rst
├── bin
├── exr2aces.rst
├── exrcheck.rst
├── exrenvmap.rst
├── exrheader.rst
├── exrinfo.rst
├── exrmakepreview.rst
├── exrmaketiled.rst
├── exrmanifest.rst
├── exrmetrics.rst
├── exrmultipart.rst
├── exrmultiview.rst
└── exrstdattr.rst
├── concepts.rst
├── conf.py
├── downloads
└── sample.exr
├── imageprocessing.dot
├── images
├── InterpretingDeepPixels1.png
├── InterpretingDeepPixels2.png
├── InterpretingDeepPixels3.png
├── OpenEXR_Reel_2020.png
├── cubeMap.big.png
├── cubeMap.png
├── drawing.png
├── envcube.png
├── imageprocessing.png
├── latlong.png
├── latlongMap.big.png
├── latlongMap.png
├── mapped.jpg
├── news.png
├── openexr-fav.ico
├── openexr-horizontal-color.png
├── openexr-logo.jpg
├── openexr-stacked-color.png
├── raw.jpg
├── screenwin.big.png
├── screenwin.png
├── tiles.big.png
├── tiles.png
├── twosamples.png
├── windowExample1.big.png
├── windowExample1.png
├── windowExample1.small.png
├── windowExample2.big.png
└── windowExample2.png
├── index.rst
├── install.rst
├── latest_news_title.rst
├── license.rst
├── news.rst
├── python.rst
├── requirements.txt
├── scripts
├── install_doxygen.sh
└── test_images.py
├── src
├── CMakeLists.txt
├── C_IStream.cpp
├── C_IStream_clear.cpp
├── C_IStream_read.cpp
├── C_IStream_seekg.cpp
├── C_IStream_tellg.cpp
├── IStream.cpp
├── MemoryMappedIStream.cpp
├── MemoryMappedIStream_constructor.cpp
├── MemoryMappedIStream_destructor.cpp
├── MemoryMappedIStream_isMemoryMapped.cpp
├── MemoryMappedIStream_read.cpp
├── MemoryMappedIStream_readMemoryMapped.cpp
├── all.cpp
├── compression.cpp
├── envmap.cpp
├── exrreader
│ ├── CMakeLists.txt
│ ├── build.sh
│ └── exrreader.cpp
├── exrwriter
│ ├── CMakeLists.txt
│ ├── build.sh
│ └── exrwriter.cpp
├── mergeOverlappingSamples.cpp
├── multithreading.cpp
├── previewImageExamples.cpp
├── readChannelsAndLayers.cpp
├── readDeepScanLineFile.cpp
├── readDeepTiledFile.cpp
├── readGZ1.cpp
├── readGZ2.cpp
├── readHeader.cpp
├── readRgba1.cpp
├── readRgba2.cpp
├── readRgbaFILE.cpp
├── readTiled1.cpp
├── readTiledRgba1.cpp
├── splitVolumeSample.cpp
├── structDefinitions.cpp
├── tileDescription.cpp
├── validExrFile.cpp
├── writeDeepScanLineFile.cpp
├── writeDeepTiledFile.cpp
├── writeGZ1.cpp
├── writeGZ2.cpp
├── writeRgba1.cpp
├── writeRgba2.cpp
├── writeRgba3.cpp
├── writeRgbaMT.cpp
├── writeRgbaWithPreview1.cpp
├── writeRgbaWithPreview2.cpp
├── writeTiled1.cpp
├── writeTiledRgbaMIP1.cpp
├── writeTiledRgbaMIP2.cpp
├── writeTiledRgbaONE1.cpp
├── writeTiledRgbaONE2.cpp
└── writeTiledRgbaRIP1.cpp
├── test_images.txt
├── test_images
├── Beachball
│ ├── multipart.0001.rst
│ ├── multipart.0002.rst
│ ├── multipart.0003.rst
│ ├── multipart.0004.rst
│ ├── multipart.0005.rst
│ ├── multipart.0006.rst
│ ├── multipart.0007.rst
│ ├── multipart.0008.rst
│ ├── singlepart.0001.rst
│ ├── singlepart.0002.rst
│ ├── singlepart.0003.rst
│ ├── singlepart.0004.rst
│ ├── singlepart.0005.rst
│ ├── singlepart.0006.rst
│ ├── singlepart.0007.rst
│ └── singlepart.0008.rst
├── Chromaticities
│ ├── Rec709.rst
│ ├── Rec709_YC.rst
│ ├── XYZ.rst
│ └── XYZ_YC.rst
├── DisplayWindow
│ ├── t01.rst
│ ├── t02.rst
│ ├── t03.rst
│ ├── t04.rst
│ ├── t05.rst
│ ├── t06.rst
│ ├── t07.rst
│ ├── t08.rst
│ ├── t09.rst
│ ├── t10.rst
│ ├── t11.rst
│ ├── t12.rst
│ ├── t13.rst
│ ├── t14.rst
│ ├── t15.rst
│ └── t16.rst
├── LuminanceChroma
│ ├── CrissyField.rst
│ ├── Flowers.rst
│ ├── Garden.rst
│ ├── MtTamNorth.rst
│ └── StarField.rst
├── MultiResolution
│ ├── Bonita.rst
│ ├── ColorCodedLevels.rst
│ ├── Kapaa.rst
│ ├── KernerEnvCube.rst
│ ├── KernerEnvLatLong.rst
│ ├── MirrorPattern.rst
│ ├── OrientationCube.rst
│ ├── OrientationLatLong.rst
│ ├── PeriodicPattern.rst
│ ├── StageEnvCube.rst
│ ├── StageEnvLatLong.rst
│ ├── WavyLinesCube.rst
│ ├── WavyLinesLatLong.rst
│ └── WavyLinesSphere.rst
├── MultiView
│ ├── Adjuster.rst
│ ├── Balls.rst
│ ├── Fog.rst
│ ├── Impact.rst
│ └── LosPadres.rst
├── ScanLines
│ ├── Blobbies.rst
│ ├── CandleGlass.rst
│ ├── Cannon.rst
│ ├── Carrots.rst
│ ├── Desk.rst
│ ├── MtTamWest.rst
│ ├── PrismsLenses.rst
│ ├── StillLife.rst
│ └── Tree.rst
├── TestImages
│ ├── AllHalfValues.rst
│ ├── BrightRings.rst
│ ├── BrightRingsNanInf.rst
│ ├── GammaChart.rst
│ ├── GrayRampsDiagonal.rst
│ ├── GrayRampsHorizontal.rst
│ ├── RgbRampsDiagonal.rst
│ ├── SquaresSwirls.rst
│ ├── WideColorGamut.rst
│ └── WideFloatRange.rst
├── Tiles
│ ├── GoldenGate.rst
│ ├── Ocean.rst
│ └── Spirals.rst
├── index.rst
├── toctree.rst
└── v2
│ ├── LeftView
│ ├── Balls.rst
│ ├── Ground.rst
│ ├── Leaves.rst
│ └── Trunks.rst
│ ├── LowResLeftView
│ ├── Balls.rst
│ ├── Ground.rst
│ ├── Leaves.rst
│ ├── Trunks.rst
│ └── composited.rst
│ └── Stereo
│ ├── Balls.rst
│ ├── Ground.rst
│ ├── Leaves.rst
│ ├── Trunks.rst
│ └── composited.rst
├── toc_redirect.rst
└── tools.rst
/.bazelrc:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: BSD-3-Clause
2 | # Copyright (c) Contributors to the OpenEXR Project.
3 |
4 | common --enable_platform_specific_config
5 |
6 | # Enable modern C++ features
7 | build:linux --cxxopt=-std=c++17
8 | build:linux --host_cxxopt=-std=c++17
9 | build:macos --cxxopt=-std=c++17
10 | build:macos --host_cxxopt=-std=c++17
11 | build:windows --cxxopt=/std:c++17
12 | build:windows --host_cxxopt=/std:c++17
13 |
--------------------------------------------------------------------------------
/.bazelversion:
--------------------------------------------------------------------------------
1 | 8.1.1
2 |
--------------------------------------------------------------------------------
/.git-blame-ignore-revs:
--------------------------------------------------------------------------------
1 | # if you have git newer than 2.23, you can either
2 | # specify this on the command line
3 | # git blame foo.cpp --ignore-revs-file path/to/this/file
4 | # or add this file to your config
5 | # git config --global blame.ignoreRevsFile .git-blame-ignore-revs
6 |
7 | # initial clang-format run
8 | 2a24ae77ab94f4c06b102eba73feb52e2f90cb46
9 | # clang-format run 17-Mar-2024
10 | 84f58b85aef7a7844f0d3bfb1301e778eb22e42c
11 |
--------------------------------------------------------------------------------
/.github/dependabot.yml:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: BSD-3-Clause
2 | # Copyright (c) Contributors to the OpenEXR Project.
3 |
4 | version: 2
5 | updates:
6 |
7 | - package-ecosystem: "github-actions"
8 | directory: "/"
9 | schedule:
10 | interval: "daily"
11 |
12 | - package-ecosystem: "pip"
13 | directory: "/"
14 | schedule:
15 | day: "monday"
16 | interval: "weekly"
17 |
18 | - package-ecosystem: "gitsubmodule"
19 | directory: "/"
20 | schedule:
21 | day: "monday"
22 | interval: "weekly"
23 |
--------------------------------------------------------------------------------
/.github/workflows/website_preview_link.yml:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: BSD-3-Clause
2 | # Copyright (c) Contributors to the OpenEXR Project.
3 | #
4 | # GitHub Actions workflow file
5 | # https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions
6 |
7 | #
8 | # This action adds a link to the PR description pointing to the
9 | # readthedocs build of the website, for PRs that modify the website.
10 | #
11 | # Note that the link is also available in the PR checks, but it gets
12 | # buried among the output of the checks and isn't obvious.
13 | #
14 |
15 | name: Website preview link
16 | on:
17 | pull_request_target:
18 | types:
19 | - opened
20 | paths:
21 | - 'website/**'
22 |
23 | permissions:
24 | pull-requests: write
25 |
26 | jobs:
27 | pull-request-links:
28 | runs-on: ubuntu-latest
29 | steps:
30 | - uses: readthedocs/actions/preview@cc0920454cf03ca8a3fbd3cbaa2ce2e509e70636 # v1.2
31 | with:
32 | project-slug: "openexr"
33 | message-template: "Website preview: {docs-pr-index-url}"
34 |
35 |
36 |
--------------------------------------------------------------------------------
/.readthedocs.yml:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: BSD-3-Clause
2 | # Copyright Contributors to the OpenEXR Project.
3 |
4 | # .readthedocs.yml
5 | # Read the Docs configuration file
6 | # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
7 |
8 | # Required
9 | version: 2
10 |
11 | build:
12 | os: "ubuntu-22.04"
13 | tools:
14 | python: "3.9"
15 |
16 | sphinx:
17 | configuration: website/conf.py
18 |
19 | python:
20 | install:
21 | - requirements: website/requirements.txt
22 |
--------------------------------------------------------------------------------
/ASWF/images/aswf.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/ASWF/images/aswf.png
--------------------------------------------------------------------------------
/ASWF/images/openexr-logo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/ASWF/images/openexr-logo.jpg
--------------------------------------------------------------------------------
/CMakePresets.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": 3,
3 | "cmakeMinimumRequired": {
4 | "major": 3,
5 | "minor": 15,
6 | "patch": 0
7 | },
8 | "configurePresets": [
9 | {
10 | "name": "oss_fuzz",
11 | "cacheVariables": {
12 | "CMAKE_VERBOSE_MAKEFILE": "ON",
13 | "BUILD_SHARED_LIBS": "OFF",
14 | "OPENEXR_FORCE_INTERNAL_IMATH": "ON",
15 | "OPENEXR_FORCE_INTERNAL_DEFLATE": "ON",
16 | "OPENEXR_FORCE_INTERNAL_OPENJPH": "ON",
17 | "OPENEXR_BUILD_TOOLS": "OFF",
18 | "OPENEXR_BUILD_EXAMPLES": "OFF",
19 | "OPENEXR_BUILD_DOCS": "OFF",
20 | "OPENEXR_BUILD_OSS_FUZZ": "ON"
21 | }
22 | }
23 | ]
24 | }
25 |
--------------------------------------------------------------------------------
/CODEOWNERS:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/articles/about-codeowners/
2 | # for more info about CODEOWNERS file
3 |
4 | # It uses the same pattern rule for gitignore file
5 | # https://git-scm.com/docs/gitignore#_pattern_format
6 |
7 | # Admin
8 | /openexr/ASWF/ @cary-ilm @kdt3rd @lgritz @meshula @peterhillman @xlietz
9 | /openexr/*.md @cary-ilm @kdt3rd @lgritz @meshula @peterhillman @xlietz
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Contrib/DtexToExr/AUTHORS:
--------------------------------------------------------------------------------
1 | Developers:
2 | -----------
3 |
4 | Christopher Horvath
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Contrib/DtexToExr/ChangeLog:
--------------------------------------------------------------------------------
1 | Version 1.0.0:
2 | * Initial release of this code.
3 |
4 | Version 1.0.1:
5 | * Fixed misinterpretation of values read from "deepopacity" dtex files.
6 | The data stored is actually transmission, or 1.0-opacity, which means
7 | that "deepopacity" dtex values actually monotonically decrease from 1
8 | to 0. We have updated the comments and documentation to reflect this
9 | and have fixed the PxOneChanDeepOpacity file to convert the data
10 | as it is read out of the file.
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/Contrib/NuGet/OpenEXR-msvc-x64.nuspec:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | openexr-msvc-x64
5 | 2.3.0.8788
6 | administrator
7 | false
8 | Visual Studio 2017 Release OpenEXR as NuGet package.
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Contrib/NuGet/OpenEXR-msvc-x86.nuspec:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | openexr-msvc-x86
5 | 2.3.0.8788
6 | administrator
7 | false
8 | Visual Studio 2017 Release OpenEXR as NuGet package.
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/WORKSPACE.bazel:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: BSD-3-Clause
2 | # Copyright Contributors to the OpenEXR Project.
3 |
4 | # WORKSPACE marker file needed by Bazel
5 |
--------------------------------------------------------------------------------
/bazel/BUILD.bazel:
--------------------------------------------------------------------------------
1 | # Empty by intend
2 |
--------------------------------------------------------------------------------
/bazel/imath_module_dot_bazel.patch:
--------------------------------------------------------------------------------
1 | --- MODULE.bazel
2 | +++ MODULE.bazel
3 | @@ -0,0 +1,6 @@
4 | +module(
5 | + name = "imath",
6 | + compatibility_level = 1,
7 | +)
8 | +
9 | +bazel_dep(name = "bazel_skylib", version = "1.7.1")
10 |
--------------------------------------------------------------------------------
/bazel/libdeflate_module_dot_bazel.patch:
--------------------------------------------------------------------------------
1 | --- MODULE.bazel
2 | +++ MODULE.bazel
3 | @@ -0,0 +1,4 @@
4 | +module(
5 | + name = "libdeflate",
6 | + compatibility_level = 1,
7 | +)
8 |
--------------------------------------------------------------------------------
/bazel/openjph_module_dot_bazel.patch:
--------------------------------------------------------------------------------
1 | --- MODULE.bazel
2 | +++ MODULE.bazel
3 | @@ -0,0 +1,8 @@
4 | +module(
5 | + name = "openjph",
6 | + version = "0.21.2",
7 | + compatibility_level = 1,
8 | +)
9 | +
10 | +bazel_dep(name = "rules_cc", version = "0.1.1")
11 | +bazel_dep(name = "rules_license", version = "1.0.0")
--------------------------------------------------------------------------------
/cmake/FindSphinx.cmake:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: BSD-3-Clause
2 | # Copyright (c) Contributors to the OpenEXR Project.
3 |
4 | #Look for an executable called sphinx-build
5 | find_program(SPHINX_EXECUTABLE
6 | NAMES sphinx-build
7 | DOC "Path to sphinx-build executable")
8 |
9 | include(FindPackageHandleStandardArgs)
10 |
11 | #Handle standard arguments to find_package like REQUIRED and QUIET
12 | find_package_handle_standard_args(Sphinx
13 | "Failed to find sphinx-build executable"
14 | SPHINX_EXECUTABLE)
15 |
16 |
--------------------------------------------------------------------------------
/cmake/IexConfig.h.in:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: BSD-3-Clause
2 | // Copyright (c) Contributors to the OpenEXR Project.
3 |
4 | // This file is auto-generated by the cmake configure step
5 |
6 | #ifndef INCLUDED_IEX_CONFIG_H
7 | #define INCLUDED_IEX_CONFIG_H 1
8 |
9 | #pragma once
10 |
11 | //
12 | //
13 | // C++ namespace configuration / options
14 |
15 | // automated formatting does not handle the cmake tags well
16 | // clang-format off
17 |
18 | //
19 | // Current internal library namespace name
20 | //
21 | #define IEX_INTERNAL_NAMESPACE_CUSTOM @IEX_NAMESPACE_CUSTOM@
22 | #define IEX_INTERNAL_NAMESPACE @IEX_INTERNAL_NAMESPACE@
23 |
24 | //
25 | // Current public user namespace name
26 | //
27 |
28 | #define IEX_NAMESPACE_CUSTOM @IEX_NAMESPACE_CUSTOM@
29 | #define IEX_NAMESPACE @IEX_NAMESPACE@
30 |
31 | // clang-format on
32 |
33 | #endif // INCLUDED_IEX_CONFIG_H
34 |
--------------------------------------------------------------------------------
/cmake/IexConfigInternal.h.in:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: BSD-3-Clause
2 | // Copyright (c) Contributors to the OpenEXR Project.
3 |
4 | #pragma once
5 |
6 | //
7 | // Dealing with FPEs
8 | //
9 |
10 | // automated formatting does not handle the cmake tags well
11 | // clang-format off
12 |
13 | #cmakedefine HAVE_UCONTEXT_H 1
14 | #cmakedefine IEX_HAVE_CONTROL_REGISTER_SUPPORT 1
15 | #cmakedefine IEX_HAVE_SIGCONTEXT_CONTROL_REGISTER_SUPPORT 1
16 |
17 | // clang-format on
18 |
--------------------------------------------------------------------------------
/cmake/JoinPaths.cmake:
--------------------------------------------------------------------------------
1 | # This module provides function for joining paths
2 | # known from from most languages
3 | #
4 | # SPDX-License-Identifier: BSD-3-Clause
5 | # Copyright (c) Contributors to the OpenEXR Project.
6 | # https://github.com/jtojnar/cmake-snips
7 | #
8 | # Modelled after Python’s os.path.join
9 | # https://docs.python.org/3.7/library/os.path.html#os.path.join
10 | # Windows not supported
11 | function(join_paths joined_path first_path_segment)
12 | set(temp_path "${first_path_segment}")
13 | foreach(current_segment IN LISTS ARGN)
14 | if(NOT ("${current_segment}" STREQUAL ""))
15 | if(IS_ABSOLUTE "${current_segment}")
16 | set(temp_path "${current_segment}")
17 | else()
18 | set(temp_path "${temp_path}/${current_segment}")
19 | endif()
20 | endif()
21 | endforeach()
22 | set(${joined_path} "${temp_path}" PARENT_SCOPE)
23 | endfunction()
24 |
--------------------------------------------------------------------------------
/cmake/OpenEXR.pc.in:
--------------------------------------------------------------------------------
1 | ##
2 | ## SPDX-License-Identifier: BSD-3-Clause
3 | ## Copyright (c) Contributors to the OpenEXR Project.
4 | ##
5 |
6 | prefix=@CMAKE_INSTALL_PREFIX@
7 | exec_prefix=${prefix}
8 | libdir=@PKG_CONFIG_INSTALL_LIBDIR@
9 | includedir=@PKG_CONFIG_INSTALL_INCLUDEDIR@
10 | OpenEXR_includedir=${includedir}/OpenEXR
11 | libsuffix=@LIB_SUFFIX_DASH@
12 |
13 | Name: OpenEXR
14 | Description: OpenEXR image library
15 | Version: @OPENEXR_VERSION@
16 |
17 | Libs: @exr_pthread_libs@ -L${libdir} -lOpenEXR${libsuffix} -lOpenEXRUtil${libsuffix} -lOpenEXRCore${libsuffix} -lIex${libsuffix} -lIlmThread${libsuffix}
18 | Cflags: -I${includedir} -I${OpenEXR_includedir} @exr_pthread_cflags@
19 | Requires: Imath
20 | Requires: openjph
21 | Requires.private: @EXR_DEFLATE_PKGCONFIG_REQUIRES@
22 |
23 |
--------------------------------------------------------------------------------
/cmake/OpenEXRConfig.cmake.in:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: BSD-3-Clause
2 | # Copyright (c) Contributors to the OpenEXR Project.
3 |
4 | @PACKAGE_INIT@
5 |
6 | include(CMakeFindDependencyMacro)
7 |
8 | set(openexr_needthreads @OPENEXR_ENABLE_THREADING@)
9 | if (openexr_needthreads)
10 | set(THREADS_PREFER_PTHREAD_FLAG ON)
11 | find_dependency(Threads)
12 | endif()
13 | unset(openexr_needthreads)
14 |
15 | find_dependency(Imath)
16 |
17 | if (@libdeflate_FOUND@)
18 | find_dependency(libdeflate)
19 | endif()
20 |
21 | include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake")
22 | check_required_components("@PROJECT_NAME@")
23 |
--------------------------------------------------------------------------------
/cmake/cmake_uninstall.cmake.in:
--------------------------------------------------------------------------------
1 | # Source: https://gitlab.kitware.com/cmake/community/-/wikis/FAQ#can-i-do-make-uninstall-with-cmake
2 |
3 | if(NOT EXISTS "@CMAKE_BINARY_DIR@/install_manifest.txt")
4 | message(FATAL_ERROR "Cannot find install manifest: @CMAKE_BINARY_DIR@/install_manifest.txt")
5 | endif()
6 |
7 | file(READ "@CMAKE_BINARY_DIR@/install_manifest.txt" files)
8 | string(REGEX REPLACE "\n" ";" files "${files}")
9 | foreach(file ${files})
10 | message(STATUS "Uninstalling $ENV{DESTDIR}${file}")
11 | if(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
12 | exec_program(
13 | "@CMAKE_COMMAND@" ARGS
14 | "-E remove \"$ENV{DESTDIR}${file}\""
15 | OUTPUT_VARIABLE rm_out
16 | RETURN_VALUE rm_retval)
17 | if(NOT "${rm_retval}" STREQUAL 0)
18 | message(FATAL_ERROR "Problem when removing $ENV{DESTDIR}${file}")
19 | endif()
20 | else(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
21 | message(STATUS "File $ENV{DESTDIR}${file} does not exist.")
22 | endif()
23 | endforeach()
24 |
--------------------------------------------------------------------------------
/share/ci/scripts/install_help2man.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | # SPDX-License-Identifier: BSD-3-Clause
3 | # Copyright Contributors to the OpenColorIO Project.
4 |
5 | set -ex
6 |
7 | HELP2MAN_VERSION="1.49.3"
8 | HELP2MAN_URL="https://ftp.gnu.org/gnu/help2man/help2man-$HELP2MAN_VERSION.tar.xz"
9 | HELP2MAN_DIR="help2man-$HELP2MAN_VERSION"
10 |
11 | SUDO=$(command -v sudo >/dev/null 2>&1 && echo sudo || echo "")
12 |
13 | # Download help2man source code
14 | echo "Downloading help2man version $HELP2MAN_VERSION..."
15 | curl -O "$HELP2MAN_URL"
16 |
17 | # Extract the downloaded tarball. On ChangeLog is a symlink, which
18 | # Windows doesn't like, so exclude it.
19 | echo "Extracting help2man..."
20 | tar -xf "$HELP2MAN_DIR.tar.xz" --exclude="*/ChangeLog"
21 |
22 | # Navigate into the help2man source directory
23 | cd "$HELP2MAN_DIR"
24 |
25 | # Configure, build, and install help2man
26 | echo "Configuring help2man..."
27 | ./configure
28 |
29 | echo "Building help2man..."
30 | make
31 |
32 | echo "Installing help2man..."
33 | $SUDO make install
34 |
35 | echo "help2man installed successfully!"
36 |
37 |
38 |
--------------------------------------------------------------------------------
/share/ci/scripts/install_imath.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | # SPDX-License-Identifier: BSD-3-Clause
3 | # Copyright Contributors to the OpenColorIO Project.
4 |
5 | set -ex
6 |
7 | TAG="$1"
8 |
9 | SUDO=$(command -v sudo >/dev/null 2>&1 && echo sudo || echo "")
10 |
11 | git clone https://github.com/AcademySoftwareFoundation/Imath.git
12 | cd Imath
13 |
14 | git checkout ${TAG}
15 |
16 | mkdir build
17 | cd build
18 | cmake -DCMAKE_BUILD_TYPE=Release ..
19 | $SUDO cmake --build . \
20 | --target install \
21 | --config Release \
22 | --parallel 2
23 |
24 | cd ../..
25 | rm -rf Imath
26 |
--------------------------------------------------------------------------------
/share/ci/scripts/install_libdeflate.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | # SPDX-License-Identifier: BSD-3-Clause
3 | # Copyright Contributors to the OpenColorIO Project.
4 |
5 | set -ex
6 |
7 | TAG="$1"
8 |
9 | SUDO=$(command -v sudo >/dev/null 2>&1 && echo sudo || echo "")
10 |
11 | git clone https://github.com/ebiggers/libdeflate
12 | cd libdeflate
13 |
14 | git checkout ${TAG}
15 |
16 | mkdir build
17 | cd build
18 | cmake -DCMAKE_BUILD_TYPE=Release ..
19 | $SUDO cmake --build . \
20 | --target install \
21 | --config Release \
22 | --parallel 2
23 |
24 | cd ../..
25 | rm -rf libdeflate
26 |
--------------------------------------------------------------------------------
/share/ci/scripts/install_openjph.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | # SPDX-License-Identifier: BSD-3-Clause
3 | # Copyright Contributors to the OpenColorIO Project.
4 |
5 | set -ex
6 |
7 | TAG="$1"
8 |
9 | SUDO=$(command -v sudo >/dev/null 2>&1 && echo sudo || echo "")
10 |
11 | git clone https://github.com/aous72/OpenJPH.git
12 | cd OpenJPH
13 |
14 | git checkout ${TAG}
15 |
16 | cd build
17 | cmake -DOJPH_ENABLE_TIFF_SUPPORT=OFF -DCMAKE_BUILD_TYPE=Release ..
18 | $SUDO cmake --build . \
19 | --target install \
20 | --config Release \
21 | --parallel 2
22 |
23 | cd ../..
24 | rm -rf OpenJPH
25 |
--------------------------------------------------------------------------------
/share/ci/scripts/install_pybind11.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | # SPDX-License-Identifier: BSD-3-Clause
3 | # Copyright Contributors to the OpenColorIO Project.
4 |
5 | set -ex
6 |
7 | PYBIND11_VERSION="$1"
8 |
9 | SUDO=$(command -v sudo >/dev/null 2>&1 && echo sudo || echo "")
10 |
11 | git clone https://github.com/pybind/pybind11.git
12 | cd pybind11
13 |
14 | if [ "$PYBIND11_VERSION" == "latest" ]; then
15 | LATEST_TAG=$(git describe --abbrev=0 --tags)
16 | git checkout tags/${LATEST_TAG} -b ${LATEST_TAG}
17 | else
18 | git checkout tags/v${PYBIND11_VERSION} -b v${PYBIND11_VERSION}
19 | fi
20 |
21 | mkdir build
22 | cd build
23 | cmake -DCMAKE_BUILD_TYPE=Release \
24 | -DPYBIND11_INSTALL=ON \
25 | -DPYBIND11_TEST=OFF \
26 | ../.
27 | $SUDO cmake --build . \
28 | --target install \
29 | --config Release \
30 | --parallel 2
31 |
32 | cd ../..
33 | rm -rf pybind11
34 |
--------------------------------------------------------------------------------
/share/ci/scripts/linux/install_valgrind.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | # SPDX-License-Identifier: BSD-3-Clause
4 | # Copyright Contributors to the OpenEXR Project.
5 |
6 | set -ex
7 |
8 | VALGRIND_VERSION="3.15.0"
9 |
10 | echo "Updating to Valgrind ${VALGRIND_VERSION}"
11 |
12 | wget -q https://sourceware.org/ftp/valgrind/valgrind-${VALGRIND_VERSION}.tar.bz2
13 | tar -xjf valgrind-${VALGRIND_VERSION}.tar.bz2
14 |
15 | cd valgrind-${VALGRIND_VERSION}
16 |
17 | # Build valgrind
18 | sed -i 's|/doc/valgrind||' docs/Makefile.in &&
19 | ./configure --prefix=/usr \
20 | --datadir=/usr/share/doc/valgrind-${VALGRIND_VERSION} &&
21 | make
22 |
23 | # Test the build - disabled
24 | # NOTE: if enabled, must install prerequisites gedb-8.3 and six-1.12.0
25 | # make regtest
26 |
27 | # Install valgrind
28 | sudo make install
29 |
30 | echo $(which valgrind)
31 |
32 | cd ..
33 |
--------------------------------------------------------------------------------
/share/ci/scripts/linux/log_valgrind.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | # SPDX-License-Identifier: BSD-3-Clause
4 | # Copyright Contributors to the OpenEXR Project.
5 |
6 | set -ex
7 |
8 | LOGDIR="$1"
9 |
10 | if [[ -d ${LOGDIR}/Testing/Temporary ]]; then
11 | for log in ${LOGDIR}/Testing/Temporary/MemoryChecker.*.log; do
12 | echo "========================== " ${log##*/} " =========================="
13 | cat $log
14 | echo
15 | done
16 | else
17 | echo "Memcheck log files not found."
18 | fi
19 |
--------------------------------------------------------------------------------
/share/util/reformat.sh:
--------------------------------------------------------------------------------
1 | #! /bin/sh
2 |
3 | cformat=`which clang-format`
4 | if [[ "${cformat}" == "" ]]; then
5 | echo "ERROR: clang-format not found"
6 | exit 1
7 | fi
8 |
9 | scriptpath=`realpath $0`
10 | scriptdir=`dirname $scriptpath`
11 | basedir=`dirname $scriptdir`
12 | echo "Processing files in: ${basedir}"
13 | cd ${basedir}
14 | find . \( -name '*.cpp' -o -name '*.h' \) -exec ${cformat} -style=file -verbose -i {} \;
15 |
16 |
--------------------------------------------------------------------------------
/sonar-project.properties:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: BSD-3-Clause
2 | # Copyright (c) Contributors to the OpenEXR Project.
3 | #
4 | # SonarCloud analysis configuration file
5 | # https://sonarcloud.io/documentation/analysis/analysis-parameters
6 |
7 | sonar.host.url=https://sonarcloud.io
8 |
9 | # Required metadata
10 | sonar.organization=academysoftwarefoundation
11 | sonar.projectKey=AcademySoftwareFoundation_openexr
12 | sonar.projectName=OpenEXR
13 | sonar.projectVersion=2.5
14 |
15 | # Project links
16 | sonar.links.homepage=http://openexr.com
17 | sonar.links.ci=https://github.com/AcademySoftwareFoundation/openexr/actions
18 | sonar.links.scm=https://github.com/AcademySoftwareFoundation/openexr
19 | sonar.links.issue=https://github.com/AcademySoftwareFoundation/openexr/issues
20 |
21 | # Source properties
22 | sonar.sources=src
23 | sonar.sourceEncoding=UTF-8
24 | sonar.exclusions=src/bindings/java/**,*.java
25 |
26 | # C/C++ analyzer properties
27 | sonar.cfamily.build-wrapper-output=_build/bw_output
28 | sonar.cfamily.gcov.reportsPath=_coverage
29 |
30 |
--------------------------------------------------------------------------------
/src/bin/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: BSD-3-Clause
2 | # Copyright (c) Contributors to the OpenEXR Project.
3 |
4 | ##################
5 | # Binaries / Tools
6 | ##################
7 |
8 | message(STATUS "Building OpenEXR tools")
9 |
10 | add_subdirectory( exr2aces )
11 | add_subdirectory( exrheader )
12 | add_subdirectory( exrinfo )
13 | add_subdirectory( exrmaketiled )
14 | add_subdirectory( exrmetrics )
15 | add_subdirectory( exrstdattr )
16 | add_subdirectory( exrmakepreview )
17 | add_subdirectory( exrenvmap )
18 | add_subdirectory( exrmultiview )
19 | add_subdirectory( exrmultipart )
20 | add_subdirectory( exrcheck )
21 | add_subdirectory( exrmanifest )
22 |
--------------------------------------------------------------------------------
/src/bin/exr2aces/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: BSD-3-Clause
2 | # Copyright (c) Contributors to the OpenEXR Project.
3 |
4 | add_executable(exr2aces main.cpp)
5 | target_link_libraries(exr2aces OpenEXR::OpenEXR)
6 | set_target_properties(exr2aces PROPERTIES
7 | RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
8 | )
9 | if(OPENEXR_INSTALL_TOOLS)
10 | install(TARGETS exr2aces DESTINATION ${CMAKE_INSTALL_BINDIR})
11 | endif()
12 | if(WIN32 AND BUILD_SHARED_LIBS)
13 | target_compile_definitions(exr2aces PRIVATE OPENEXR_DLL)
14 | endif()
15 |
--------------------------------------------------------------------------------
/src/bin/exrcheck/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: BSD-3-Clause
2 | # Copyright (c) Contributors to the OpenEXR Project.
3 |
4 | add_executable(exrcheck main.cpp)
5 | target_link_libraries(exrcheck OpenEXR::OpenEXR OpenEXR::OpenEXRUtil)
6 | set_target_properties(exrcheck PROPERTIES
7 | RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
8 | )
9 |
10 | # exrcheck is considered a "developer" tool, so only install it
11 | # when installation of developer tools is enabled.
12 | if(OPENEXR_INSTALL_DEVELOPER_TOOLS)
13 | install(TARGETS exrcheck DESTINATION ${CMAKE_INSTALL_BINDIR})
14 | endif()
15 | if(WIN32 AND (BUILD_SHARED_LIBS OR OPENEXR_BUILD_BOTH_STATIC_SHARED))
16 | target_compile_definitions(exrcheck PRIVATE OPENEXR_DLL)
17 | endif()
18 |
--------------------------------------------------------------------------------
/src/bin/exrenvmap/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: BSD-3-Clause
2 | # Copyright (c) Contributors to the OpenEXR Project.
3 |
4 | add_executable( exrenvmap
5 | blurImage.cpp
6 | blurImage.h
7 | EnvmapImage.cpp
8 | EnvmapImage.h
9 | main.cpp
10 | makeCubeMap.cpp
11 | makeCubeMap.h
12 | makeLatLongMap.cpp
13 | makeLatLongMap.h
14 | namespaceAlias.h
15 | readInputImage.cpp
16 | readInputImage.h
17 | resizeImage.cpp
18 | resizeImage.h
19 | )
20 |
21 | target_link_libraries(exrenvmap OpenEXR::OpenEXR)
22 | set_target_properties(exrenvmap PROPERTIES
23 | RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
24 | )
25 | if(OPENEXR_INSTALL_TOOLS)
26 | install(TARGETS exrenvmap DESTINATION ${CMAKE_INSTALL_BINDIR})
27 | endif()
28 | if(WIN32 AND BUILD_SHARED_LIBS)
29 | target_compile_definitions(exrenvmap PRIVATE OPENEXR_DLL)
30 | endif()
31 |
--------------------------------------------------------------------------------
/src/bin/exrenvmap/blurImage.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef INCLUDED_BLUR_IMAGE_H
7 | #define INCLUDED_BLUR_IMAGE_H
8 |
9 | //-----------------------------------------------------------------------------
10 | //
11 | // function blurImage() -- performs a hemispherical blur
12 | //
13 | // An environment map image is blurred by applying a 180-degree-wide
14 | // filter kernel, such that point-sampling the blurred image at a
15 | // location that corresponds to 3D direction N returns the color that
16 | // a white diffuse reflector with surface normal N would have if it
17 | // was illuminated using the original non-blurred image.
18 | //
19 | //-----------------------------------------------------------------------------
20 |
21 | #include
22 |
23 | void blurImage (EnvmapImage& image, bool verbose);
24 |
25 | #endif
26 |
--------------------------------------------------------------------------------
/src/bin/exrenvmap/namespaceAlias.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef NAMESPACEALIAS_H_
7 | #define NAMESPACEALIAS_H_
8 |
9 | #include "IexNamespace.h"
10 | #include "ImathNamespace.h"
11 | #include "ImfNamespace.h"
12 |
13 | namespace IMF = OPENEXR_IMF_NAMESPACE;
14 | namespace IMATH = IMATH_NAMESPACE;
15 | namespace IEX = IEX_NAMESPACE;
16 |
17 | #endif /* NAMESPACEALIAS_H_ */
18 |
--------------------------------------------------------------------------------
/src/bin/exrenvmap/readInputImage.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef INCLUDED_READ_INPUT_IMAGE_H
7 | #define INCLUDED_READ_INPUT_IMAGE_H
8 |
9 | //-----------------------------------------------------------------------------
10 | //
11 | // function readInputImage() --
12 | // reads an image file and constructs an EnvMapImage object
13 | //
14 | //-----------------------------------------------------------------------------
15 |
16 | #include
17 | #include
18 | #include
19 |
20 | #include "namespaceAlias.h"
21 |
22 | class EnvmapImage;
23 |
24 | void readInputImage (
25 | const char inFileName[],
26 | float padTop,
27 | float padBottom,
28 | IMF::Envmap overrideType,
29 | bool verbose,
30 | EnvmapImage& image,
31 | IMF::Header& header,
32 | IMF::RgbaChannels& channels);
33 |
34 | #endif
35 |
--------------------------------------------------------------------------------
/src/bin/exrenvmap/resizeImage.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef INCLUDED_RESIZE_IMAGE_H
7 | #define INCLUDED_RESIZE_IMAGE_H
8 |
9 | //-----------------------------------------------------------------------------
10 | //
11 | // resizeLatLong(), resizeCube() -- functions that resample
12 | // an environment map and convert it to latitude-longitude or
13 | // cube-face format.
14 | //
15 | //-----------------------------------------------------------------------------
16 |
17 | #include "EnvmapImage.h"
18 |
19 | void resizeLatLong (
20 | const EnvmapImage& image1,
21 | EnvmapImage& image2,
22 | const IMATH::Box2i& image2DataWindow,
23 | float filterRadius,
24 | int numSamples);
25 |
26 | void resizeCube (
27 | const EnvmapImage& image1,
28 | EnvmapImage& image2,
29 | const IMATH::Box2i& image2DataWindow,
30 | float filterRadius,
31 | int numSamples);
32 |
33 | #endif
34 |
--------------------------------------------------------------------------------
/src/bin/exrheader/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: BSD-3-Clause
2 | # Copyright (c) Contributors to the OpenEXR Project.
3 |
4 | add_executable(exrheader main.cpp)
5 | target_link_libraries(exrheader OpenEXR::OpenEXR)
6 | set_target_properties(exrheader PROPERTIES
7 | RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
8 | )
9 | if(OPENEXR_INSTALL_TOOLS)
10 | install(TARGETS exrheader DESTINATION ${CMAKE_INSTALL_BINDIR})
11 | endif()
12 | if(WIN32 AND BUILD_SHARED_LIBS)
13 | target_compile_definitions(exrheader PRIVATE OPENEXR_DLL)
14 | endif()
15 |
--------------------------------------------------------------------------------
/src/bin/exrinfo/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: BSD-3-Clause
2 | # Copyright Contributors to the OpenEXR Project.
3 |
4 | add_executable(exrinfo main.c)
5 | target_link_libraries(exrinfo OpenEXR::OpenEXRCore)
6 | set_target_properties(exrinfo PROPERTIES
7 | RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
8 | )
9 |
10 | if(OPENEXR_INSTALL_TOOLS)
11 | install(TARGETS exrinfo DESTINATION ${CMAKE_INSTALL_BINDIR})
12 | endif()
13 | if(WIN32 AND (BUILD_SHARED_LIBS OR OPENEXR_BUILD_BOTH_STATIC_SHARED))
14 | target_compile_definitions(exrinfo PRIVATE OPENEXR_DLL)
15 | endif()
16 |
--------------------------------------------------------------------------------
/src/bin/exrmakepreview/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: BSD-3-Clause
2 | # Copyright (c) Contributors to the OpenEXR Project.
3 |
4 | add_executable(exrmakepreview
5 | main.cpp
6 | makePreview.cpp
7 | makePreview.h
8 | )
9 | target_link_libraries(exrmakepreview OpenEXR::OpenEXR)
10 | set_target_properties(exrmakepreview PROPERTIES
11 | RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
12 | )
13 | if(OPENEXR_INSTALL_TOOLS)
14 | install(TARGETS exrmakepreview DESTINATION ${CMAKE_INSTALL_BINDIR})
15 | endif()
16 | if(WIN32 AND BUILD_SHARED_LIBS)
17 | target_compile_definitions(exrmakepreview PRIVATE OPENEXR_DLL)
18 | endif()
19 |
--------------------------------------------------------------------------------
/src/bin/exrmakepreview/makePreview.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef INCLUDED_MAKE_PREVIEW_H
7 | #define INCLUDED_MAKE_PREVIEW_H
8 |
9 | //----------------------------------------------------------------------------
10 | //
11 | // Add a preview image to an OpenEXR file.
12 | //
13 | //----------------------------------------------------------------------------
14 |
15 | void makePreview (
16 | const char inFileName[],
17 | const char outFileName[],
18 | int previewWidth,
19 | float exposure,
20 | bool verbose);
21 |
22 | #endif
23 |
--------------------------------------------------------------------------------
/src/bin/exrmaketiled/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: BSD-3-Clause
2 | # Copyright (c) Contributors (c) to the OpenEXR Project.
3 |
4 | add_executable(exrmaketiled
5 | Image.cpp
6 | Image.h
7 | main.cpp
8 | makeTiled.cpp
9 | makeTiled.h
10 | namespaceAlias.h
11 | )
12 | target_link_libraries(exrmaketiled OpenEXR::OpenEXR)
13 | set_target_properties(exrmaketiled PROPERTIES
14 | RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
15 | )
16 | if(OPENEXR_INSTALL_TOOLS)
17 | install(TARGETS exrmaketiled DESTINATION ${CMAKE_INSTALL_BINDIR})
18 | endif()
19 | if(WIN32 AND BUILD_SHARED_LIBS)
20 | target_compile_definitions(exrmaketiled PRIVATE OPENEXR_DLL)
21 | endif()
22 |
--------------------------------------------------------------------------------
/src/bin/exrmaketiled/namespaceAlias.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef NAMESPACEALIAS_H_
7 | #define NAMESPACEALIAS_H_
8 |
9 | #include
10 | #include
11 | #include
12 |
13 | namespace IMF = OPENEXR_IMF_NAMESPACE;
14 | namespace IMATH = IMATH_NAMESPACE;
15 | namespace IEX = IEX_NAMESPACE;
16 |
17 | #endif /* NAMESPACEALIAS_H_ */
18 |
--------------------------------------------------------------------------------
/src/bin/exrmanifest/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: BSD-3-Clause
2 | # Copyright (c) Contributors to the OpenEXR Project.
3 |
4 | add_executable(exrmanifest main.cpp)
5 | target_link_libraries(exrmanifest OpenEXR::OpenEXR)
6 | set_target_properties(exrmanifest PROPERTIES
7 | RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
8 | )
9 | if(OPENEXR_INSTALL_TOOLS)
10 | install(TARGETS exrmanifest DESTINATION ${CMAKE_INSTALL_BINDIR})
11 | endif()
12 | if(WIN32 AND BUILD_SHARED_LIBS)
13 | target_compile_definitions(exrmanifest PRIVATE OPENEXR_DLL)
14 | endif()
15 |
--------------------------------------------------------------------------------
/src/bin/exrmetrics/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: BSD-3-Clause
2 | # Copyright (c) Contributors to the OpenEXR Project.
3 |
4 | add_executable(exrmetrics main.cpp exrmetrics.cpp)
5 | target_link_libraries(exrmetrics OpenEXR::OpenEXR)
6 | set_target_properties(exrmetrics PROPERTIES
7 | RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
8 | )
9 | if(OPENEXR_INSTALL_TOOLS)
10 | install(TARGETS exrmetrics DESTINATION ${CMAKE_INSTALL_BINDIR})
11 | endif()
12 | if(WIN32 AND BUILD_SHARED_LIBS)
13 | target_compile_definitions(exrmetrics PRIVATE OPENEXR_DLL)
14 | endif()
15 |
--------------------------------------------------------------------------------
/src/bin/exrmultipart/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: BSD-3-Clause
2 | # Copyright (c) Contributors to the OpenEXR Project.
3 |
4 | add_executable(exrmultipart exrmultipart.cpp)
5 | target_link_libraries(exrmultipart OpenEXR::OpenEXR)
6 | set_target_properties(exrmultipart PROPERTIES
7 | RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
8 | )
9 | if(OPENEXR_INSTALL_TOOLS)
10 | install(TARGETS exrmultipart DESTINATION ${CMAKE_INSTALL_BINDIR})
11 | endif()
12 | if(WIN32 AND BUILD_SHARED_LIBS)
13 | target_compile_definitions(exrmultipart PRIVATE OPENEXR_DLL)
14 | endif()
15 |
--------------------------------------------------------------------------------
/src/bin/exrmultiview/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: BSD-3-Clause
2 | # Copyright (c) Contributors to the OpenEXR Project.
3 |
4 | add_executable(exrmultiview
5 | Image.cpp
6 | Image.h
7 | main.cpp
8 | makeMultiView.cpp
9 | makeMultiView.h
10 | namespaceAlias.h
11 | )
12 | target_link_libraries(exrmultiview OpenEXR::OpenEXR)
13 | set_target_properties(exrmultiview PROPERTIES
14 | RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
15 | )
16 | if(OPENEXR_INSTALL_TOOLS)
17 | install(TARGETS exrmultiview DESTINATION ${CMAKE_INSTALL_BINDIR})
18 | endif()
19 | if(WIN32 AND BUILD_SHARED_LIBS)
20 | target_compile_definitions(exrmultiview PRIVATE OPENEXR_DLL)
21 | endif()
22 |
--------------------------------------------------------------------------------
/src/bin/exrmultiview/makeMultiView.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef INCLUDED_MAKE_MULTI_VIEW_H
7 | #define INCLUDED_MAKE_MULTI_VIEW_H
8 |
9 | //----------------------------------------------------------------------------
10 | //
11 | // Combine multiple single-view images
12 | // into one multi-view image.
13 | //
14 | //----------------------------------------------------------------------------
15 |
16 | #include "namespaceAlias.h"
17 | #include
18 | #include
19 | #include
20 |
21 | void makeMultiView (
22 | const std::vector& viewNames,
23 | const std::vector& inFileNames,
24 | const char* outFileName,
25 | IMF::Compression compression,
26 | bool verbose);
27 |
28 | #endif
29 |
--------------------------------------------------------------------------------
/src/bin/exrmultiview/namespaceAlias.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef NAMESPACEALIAS_H_
7 | #define NAMESPACEALIAS_H_
8 |
9 | #include
10 | #include
11 | #include
12 |
13 | namespace IMF = OPENEXR_IMF_NAMESPACE;
14 | namespace IMATH = IMATH_NAMESPACE;
15 | namespace IEX = IEX_NAMESPACE;
16 |
17 | #endif /* NAMESPACEALIAS_H_ */
18 |
--------------------------------------------------------------------------------
/src/bin/exrstdattr/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: BSD-3-Clause
2 | # Copyright (c) Contributors to the OpenEXR Project.
3 |
4 | add_executable(exrstdattr main.cpp)
5 | target_link_libraries(exrstdattr OpenEXR::OpenEXR)
6 | set_target_properties(exrstdattr PROPERTIES
7 | RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
8 | )
9 | if(OPENEXR_INSTALL_TOOLS)
10 | install(TARGETS exrstdattr DESTINATION ${CMAKE_INSTALL_BINDIR})
11 | endif()
12 | if(WIN32 AND BUILD_SHARED_LIBS)
13 | target_compile_definitions(exrstdattr PRIVATE OPENEXR_DLL)
14 | endif()
15 |
--------------------------------------------------------------------------------
/src/examples/BUILD.bazel:
--------------------------------------------------------------------------------
1 | cc_test(
2 | name = "OpenEXRExamples",
3 | srcs = [
4 | "deepExamples.cpp",
5 | "deepExamples.h",
6 | "deepTiledExamples.cpp",
7 | "deepTiledExamples.h",
8 | "drawImage.cpp",
9 | "drawImage.h",
10 | "generalInterfaceExamples.cpp",
11 | "generalInterfaceExamples.h",
12 | "generalInterfaceTiledExamples.cpp",
13 | "generalInterfaceTiledExamples.h",
14 | "lowLevelIoExamples.cpp",
15 | "lowLevelIoExamples.h",
16 | "main.cpp",
17 | "multipartExamples.cpp",
18 | "multipartExamples.h",
19 | "namespaceAlias.h",
20 | "previewImageExamples.cpp",
21 | "previewImageExamples.h",
22 | "rgbaInterfaceExamples.cpp",
23 | "rgbaInterfaceExamples.h",
24 | "rgbaInterfaceTiledExamples.cpp",
25 | "rgbaInterfaceTiledExamples.h",
26 | ],
27 | deps = ["//:OpenEXR"],
28 | )
29 |
--------------------------------------------------------------------------------
/src/examples/deepExamples.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | void deepExamples ();
7 |
--------------------------------------------------------------------------------
/src/examples/deepTiledExamples.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | void deepTiledExamples ();
7 |
--------------------------------------------------------------------------------
/src/examples/generalInterfaceExamples.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | void generalInterfaceExamples ();
7 |
--------------------------------------------------------------------------------
/src/examples/generalInterfaceTiledExamples.h:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: BSD-3-Clause
2 | // Copyright (c) Contributors to the OpenEXR Project.
3 |
4 | void generalInterfaceTiledExamples ();
5 |
--------------------------------------------------------------------------------
/src/examples/lowLevelIoExamples.h:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: BSD-3-Clause
2 | // Copyright (c) Contributors to the OpenEXR Project.
3 |
4 | void lowLevelIoExamples ();
5 |
--------------------------------------------------------------------------------
/src/examples/multipartExamples.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | void multipartExamples ();
7 |
--------------------------------------------------------------------------------
/src/examples/namespaceAlias.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef NAMESPACEALIAS_H_
7 | #define NAMESPACEALIAS_H_
8 |
9 | #include
10 |
11 | namespace IMF = OPENEXR_IMF_NAMESPACE;
12 |
13 | #endif /* NAMESPACEALIAS_H_ */
14 |
--------------------------------------------------------------------------------
/src/examples/previewImageExamples.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | void previewImageExamples ();
7 |
--------------------------------------------------------------------------------
/src/examples/rgbaInterfaceExamples.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | void rgbaInterfaceExamples ();
7 |
--------------------------------------------------------------------------------
/src/examples/rgbaInterfaceTiledExamples.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | void rgbaInterfaceTiledExamples ();
7 |
--------------------------------------------------------------------------------
/src/lib/.gitignore:
--------------------------------------------------------------------------------
1 | IlmBase.pc
2 | autom4te.cache/
3 | config.guess
4 | config.log
5 | config.status
6 | config.sub
7 | config/IlmBaseConfig.h
8 | config/stamp-h1
9 | configure
10 | depcomp
11 | install-sh
12 | libtool
13 | ltmain.sh
14 | missing
15 | .metadata/
16 |
17 |
--------------------------------------------------------------------------------
/src/lib/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: BSD-3-Clause
2 | # Copyright (c) Contributors to the OpenEXR Project.
3 |
4 | message(STATUS "Building OpenEXR libraries")
5 |
6 | add_subdirectory( Iex )
7 | add_subdirectory( IlmThread )
8 |
9 | add_subdirectory( OpenEXRCore )
10 | add_subdirectory( OpenEXR )
11 | add_subdirectory( OpenEXRUtil )
12 |
--------------------------------------------------------------------------------
/src/lib/Iex/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: BSD-3-Clause
2 | # Copyright (c) Contributors to the OpenEXR Project.
3 |
4 | openexr_define_library(Iex
5 | PRIV_EXPORT IEX_EXPORTS
6 | CURDIR ${CMAKE_CURRENT_SOURCE_DIR}
7 | SOURCES
8 | IexMathFpu.h
9 | IexBaseExc.cpp
10 | IexMathFloatExc.cpp
11 | IexMathFpu.cpp
12 | IexThrowErrnoExc.cpp
13 | HEADERS
14 | Iex.h
15 | IexBaseExc.h
16 | IexErrnoExc.h
17 | IexExport.h
18 | IexForward.h
19 | IexMacros.h
20 | IexMathExc.h
21 | IexMathFloatExc.h
22 | IexMathIeeeExc.h
23 | IexNamespace.h
24 | IexThrowErrnoExc.h
25 | DEPENDENCIES
26 | OpenEXR::Config
27 | )
28 |
--------------------------------------------------------------------------------
/src/lib/Iex/Iex.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef INCLUDED_IEX_H
7 | #define INCLUDED_IEX_H
8 |
9 | //--------------------------------
10 | //
11 | // Exception handling
12 | //
13 | //--------------------------------
14 |
15 | #include "IexBaseExc.h"
16 | #include "IexMacros.h"
17 | #include "IexMathExc.h"
18 | #include "IexThrowErrnoExc.h"
19 |
20 | // Note that we do not include file IexErrnoExc.h here. That file
21 | // defines over 150 classes and significantly slows down compilation.
22 | // If you throw ErrnoExc exceptions using the throwErrnoExc() function,
23 | // you don't need IexErrnoExc.h. You have to include IexErrnoExc.h
24 | // only if you want to catch specific subclasses of ErrnoExc.
25 |
26 | #endif
27 |
--------------------------------------------------------------------------------
/src/lib/Iex/IexExport.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef INCLUDED_IEXEXPORT_H
7 | #define INCLUDED_IEXEXPORT_H
8 |
9 | #include "OpenEXRConfig.h"
10 |
11 | #if defined(OPENEXR_DLL)
12 |
13 | // when building as a DLL for windows, typical dllexport / import case
14 | // where we need to switch depending on whether we are compiling
15 | // internally or not
16 |
17 | # if defined(IEX_EXPORTS)
18 | # define IEX_EXPORT __declspec (dllexport)
19 | # else
20 | # define IEX_EXPORT __declspec (dllimport)
21 | # endif
22 |
23 | // DLLs don't support these types of visibility controls, just leave them as empty
24 | # define IEX_EXPORT_TYPE
25 | # define IEX_EXPORT_ENUM
26 |
27 | #else // OPENEXR_DLL
28 |
29 | // just pass these through from the top level config
30 | # define IEX_EXPORT OPENEXR_EXPORT
31 | # define IEX_EXPORT_TYPE OPENEXR_EXPORT_TYPE
32 | # define IEX_EXPORT_ENUM OPENEXR_EXPORT_ENUM
33 |
34 | #endif // OPENEXR_DLL
35 |
36 | #endif // #ifndef INCLUDED_IEXEXPORT_H
37 |
--------------------------------------------------------------------------------
/src/lib/Iex/IexMathExc.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef INCLUDED_IEXMATHEXC_H
7 | #define INCLUDED_IEXMATHEXC_H
8 |
9 | #include "IexBaseExc.h"
10 |
11 | IEX_INTERNAL_NAMESPACE_HEADER_ENTER
12 |
13 | //--------------------------------------------------------
14 | // Exception classes which correspond to specific floating
15 | // point exceptions.
16 | //--------------------------------------------------------
17 |
18 | DEFINE_EXC_EXP (IEX_EXPORT, OverflowExc, MathExc) // Overflow
19 | DEFINE_EXC_EXP (IEX_EXPORT, UnderflowExc, MathExc) // Underflow
20 | DEFINE_EXC_EXP (IEX_EXPORT, DivzeroExc, MathExc) // Division by zero
21 | DEFINE_EXC_EXP (IEX_EXPORT, InexactExc, MathExc) // Inexact result
22 | DEFINE_EXC_EXP (IEX_EXPORT, InvalidFpOpExc, MathExc) // Invalid operation
23 |
24 | IEX_INTERNAL_NAMESPACE_HEADER_EXIT
25 |
26 | #endif // INCLUDED_IEXMATHEXC_H
27 |
--------------------------------------------------------------------------------
/src/lib/Iex/IexMathIeeeExc.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef INCLUDED_IEXMATHIEEE_EXC_H
7 | #define INCLUDED_IEXMATHIEEE_EXC_H
8 |
9 | //---------------------------------------------------------------------------
10 | //
11 | // Names for the loating point exceptions defined by IEEE standard 754
12 | //
13 | //---------------------------------------------------------------------------
14 |
15 | #include "IexExport.h"
16 | #include "IexNamespace.h"
17 |
18 | IEX_INTERNAL_NAMESPACE_HEADER_ENTER
19 |
20 | enum IEX_EXPORT_ENUM IeeeExcType
21 | {
22 | IEEE_OVERFLOW = 1,
23 | IEEE_UNDERFLOW = 2,
24 | IEEE_DIVZERO = 4,
25 | IEEE_INEXACT = 8,
26 | IEEE_INVALID = 16
27 | };
28 |
29 | IEX_INTERNAL_NAMESPACE_HEADER_EXIT
30 |
31 | #endif
32 |
--------------------------------------------------------------------------------
/src/lib/IlmThread/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: BSD-3-Clause
2 | # Copyright (c) Contributors to the OpenEXR Project.
3 |
4 | openexr_define_library(IlmThread
5 | PRIV_EXPORT ILMTHREAD_EXPORTS
6 | CURDIR ${CMAKE_CURRENT_SOURCE_DIR}
7 | SOURCES
8 | IlmThread.cpp
9 | IlmThreadPool.cpp
10 | IlmThreadSemaphore.cpp
11 | IlmThreadSemaphoreOSX.cpp
12 | IlmThreadSemaphorePosix.cpp
13 | IlmThreadSemaphorePosixCompat.cpp
14 | IlmThreadSemaphoreWin32.cpp
15 | HEADERS
16 | IlmThread.h
17 | IlmThreadExport.h
18 | IlmThreadForward.h
19 | IlmThreadMutex.h
20 | IlmThreadNamespace.h
21 | IlmThreadPool.h
22 | IlmThreadProcessGroup.h
23 | IlmThreadSemaphore.h
24 | DEPENDENCIES
25 | OpenEXR::Config
26 | OpenEXR::Iex
27 | )
28 |
29 | if(OPENEXR_ENABLE_THREADING)
30 | if (ILMTHREAD_USE_TBB)
31 | target_link_libraries(IlmThread PUBLIC TBB::tbb)
32 | endif()
33 | target_link_libraries(IlmThread PUBLIC Threads::Threads)
34 | endif()
35 |
36 |
--------------------------------------------------------------------------------
/src/lib/IlmThread/IlmThreadForward.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef INCLUDED_ILMTHREADFORWARD_H
7 | #define INCLUDED_ILMTHREADFORWARD_H
8 |
9 | #include "IlmThreadConfig.h"
10 | #include "IlmThreadNamespace.h"
11 |
12 | #if ILMTHREAD_THREADING_ENABLED
13 | namespace std
14 | {
15 | class mutex;
16 | }
17 | #endif
18 |
19 | ILMTHREAD_INTERNAL_NAMESPACE_HEADER_ENTER
20 |
21 | class Thread;
22 | #if ILMTHREAD_THREADING_ENABLED
23 | using Mutex = std::mutex;
24 | #else
25 | class Mutex;
26 | #endif
27 | class Lock;
28 | class ThreadPool;
29 | class Task;
30 | class TaskGroup;
31 | class Semaphore;
32 |
33 | ILMTHREAD_INTERNAL_NAMESPACE_HEADER_EXIT
34 |
35 | #endif // INCLUDED_ILMTHREADFORWARD_H
36 |
--------------------------------------------------------------------------------
/src/lib/IlmThread/IlmThreadSemaphore.cpp:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | //-----------------------------------------------------------------------------
7 | //
8 | // class Semaphore -- dummy implementation for
9 | // for platforms that do not support threading
10 | //
11 | //-----------------------------------------------------------------------------
12 |
13 | #include "IlmThreadSemaphore.h"
14 |
15 | #if ILMTHREAD_SEMAPHORE_DISABLED
16 |
17 | ILMTHREAD_INTERNAL_NAMESPACE_SOURCE_ENTER
18 |
19 | Semaphore::Semaphore (unsigned int value)
20 | {}
21 | Semaphore::~Semaphore ()
22 | {}
23 | void
24 | Semaphore::wait ()
25 | {}
26 | bool
27 | Semaphore::tryWait ()
28 | {
29 | return true;
30 | }
31 | void
32 | Semaphore::post ()
33 | {}
34 | int
35 | Semaphore::value () const
36 | {
37 | return 0;
38 | }
39 |
40 | ILMTHREAD_INTERNAL_NAMESPACE_SOURCE_EXIT
41 |
42 | #endif // ILMTHREAD_SEMAPHORE_DISABLED
43 |
--------------------------------------------------------------------------------
/src/lib/OpenEXR/ImfBoxAttribute.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef INCLUDED_IMF_BOX_ATTRIBUTE_H
7 | #define INCLUDED_IMF_BOX_ATTRIBUTE_H
8 |
9 | //-----------------------------------------------------------------------------
10 | //
11 | // class Box2iAttribute
12 | // class Box2fAttribute
13 | //
14 | //-----------------------------------------------------------------------------
15 |
16 | #include "ImfExport.h"
17 | #include "ImfNamespace.h"
18 |
19 | #include "ImfAttribute.h"
20 | #include
21 |
22 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER
23 |
24 | using Box2iAttribute = TypedAttribute;
25 | using Box2fAttribute = TypedAttribute;
26 |
27 | #ifndef COMPILING_IMF_BOX_ATTRIBUTE
28 | extern template class IMF_EXPORT_EXTERN_TEMPLATE
29 | TypedAttribute;
30 | extern template class IMF_EXPORT_EXTERN_TEMPLATE
31 | TypedAttribute;
32 | #endif
33 |
34 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_EXIT
35 |
36 | #endif
37 |
--------------------------------------------------------------------------------
/src/lib/OpenEXR/ImfChannelListAttribute.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef INCLUDED_IMF_CHANNEL_LIST_ATTRIBUTE_H
7 | #define INCLUDED_IMF_CHANNEL_LIST_ATTRIBUTE_H
8 |
9 | //-----------------------------------------------------------------------------
10 | //
11 | // class ChannelListAttribute
12 | //
13 | //-----------------------------------------------------------------------------
14 |
15 | #include "ImfExport.h"
16 | #include "ImfNamespace.h"
17 |
18 | #include "ImfAttribute.h"
19 | #include "ImfChannelList.h"
20 |
21 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER
22 |
23 | typedef TypedAttribute
24 | ChannelListAttribute;
25 |
26 | #ifndef COMPILING_IMF_CHANNEL_LIST_ATTRIBUTE
27 | extern template class IMF_EXPORT_EXTERN_TEMPLATE
28 | TypedAttribute;
29 | #endif
30 |
31 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_EXIT
32 |
33 | #endif
34 |
--------------------------------------------------------------------------------
/src/lib/OpenEXR/ImfChromaticitiesAttribute.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef INCLUDED_IMF_CHROMATICITIES_ATTRIBUTE_H
7 | #define INCLUDED_IMF_CHROMATICITIES_ATTRIBUTE_H
8 |
9 | //-----------------------------------------------------------------------------
10 | //
11 | // class ChromaticitiesAttribute
12 | //
13 | //-----------------------------------------------------------------------------
14 |
15 | #include "ImfAttribute.h"
16 | #include "ImfChromaticities.h"
17 |
18 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER
19 |
20 | typedef TypedAttribute
21 | ChromaticitiesAttribute;
22 |
23 | #ifndef COMPILING_IMF_CHROMATICITIES_ATTRIBUTE
24 | extern template class IMF_EXPORT_EXTERN_TEMPLATE
25 | TypedAttribute;
26 | #endif
27 |
28 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_EXIT
29 |
30 | #endif
31 |
--------------------------------------------------------------------------------
/src/lib/OpenEXR/ImfCompressionAttribute.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef INCLUDED_IMF_COMPRESSION_ATTRIBUTE_H
7 | #define INCLUDED_IMF_COMPRESSION_ATTRIBUTE_H
8 |
9 | //-----------------------------------------------------------------------------
10 | //
11 | // class CompressionAttribute
12 | //
13 | //-----------------------------------------------------------------------------
14 |
15 | #include "ImfAttribute.h"
16 | #include "ImfCompression.h"
17 |
18 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER
19 |
20 | typedef TypedAttribute
21 | CompressionAttribute;
22 |
23 | #ifndef COMPILING_IMF_COMPRESSION_ATTRIBUTE
24 | extern template class IMF_EXPORT_EXTERN_TEMPLATE
25 | TypedAttribute;
26 | #endif
27 |
28 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_EXIT
29 |
30 | #endif
31 |
--------------------------------------------------------------------------------
/src/lib/OpenEXR/ImfDeepImageStateAttribute.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef INCLUDED_IMF_DEEPIMAGESTATE_ATTRIBUTE_H
7 | #define INCLUDED_IMF_DEEPIMAGESTATE_ATTRIBUTE_H
8 |
9 | //-----------------------------------------------------------------------------
10 | //
11 | // class DeepImageStateAttribute
12 | //
13 | //-----------------------------------------------------------------------------
14 |
15 | #include "ImfAttribute.h"
16 | #include "ImfDeepImageState.h"
17 | #include "ImfExport.h"
18 |
19 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER
20 |
21 | typedef TypedAttribute
22 | DeepImageStateAttribute;
23 |
24 | #ifndef COMPILING_IMF_DEEP_IMAGE_STATE_ATTRIBUTE
25 | extern template class IMF_EXPORT_EXTERN_TEMPLATE
26 | TypedAttribute;
27 | #endif
28 |
29 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_EXIT
30 |
31 | #endif
32 |
--------------------------------------------------------------------------------
/src/lib/OpenEXR/ImfDoubleAttribute.cpp:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | //-----------------------------------------------------------------------------
7 | //
8 | // class DoubleAttribute
9 | //
10 | //-----------------------------------------------------------------------------
11 |
12 | #define COMPILING_IMF_DOUBLE_ATTRIBUTE
13 | #include "ImfDoubleAttribute.h"
14 |
15 | #if defined(_MSC_VER)
16 | // suppress warning about non-exported base classes
17 | # pragma warning(disable : 4251)
18 | # pragma warning(disable : 4275)
19 | #endif
20 |
21 | OPENEXR_IMF_INTERNAL_NAMESPACE_SOURCE_ENTER
22 |
23 | template <>
24 | IMF_EXPORT const char*
25 | DoubleAttribute::staticTypeName ()
26 | {
27 | return "double";
28 | }
29 |
30 | template class IMF_EXPORT_TEMPLATE_INSTANCE TypedAttribute;
31 |
32 | OPENEXR_IMF_INTERNAL_NAMESPACE_SOURCE_EXIT
33 |
--------------------------------------------------------------------------------
/src/lib/OpenEXR/ImfDoubleAttribute.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef INCLUDED_IMF_DOUBLE_ATTRIBUTE_H
7 | #define INCLUDED_IMF_DOUBLE_ATTRIBUTE_H
8 |
9 | //-----------------------------------------------------------------------------
10 | //
11 | // class DoubleAttribute
12 | //
13 | //-----------------------------------------------------------------------------
14 |
15 | #include "ImfAttribute.h"
16 | #include "ImfExport.h"
17 |
18 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER
19 |
20 | typedef TypedAttribute DoubleAttribute;
21 |
22 | #ifndef COMPILING_IMF_DOUBLE_ATTRIBUTE
23 | extern template class IMF_EXPORT_EXTERN_TEMPLATE TypedAttribute;
24 | #endif
25 |
26 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_EXIT
27 |
28 | #endif
29 |
--------------------------------------------------------------------------------
/src/lib/OpenEXR/ImfEnvmapAttribute.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef INCLUDED_IMF_ENVMAP_ATTRIBUTE_H
7 | #define INCLUDED_IMF_ENVMAP_ATTRIBUTE_H
8 |
9 | //-----------------------------------------------------------------------------
10 | //
11 | // class EnvmapAttribute
12 | //
13 | //-----------------------------------------------------------------------------
14 |
15 | #include "ImfAttribute.h"
16 | #include "ImfEnvmap.h"
17 | #include "ImfExport.h"
18 |
19 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER
20 |
21 | typedef TypedAttribute EnvmapAttribute;
22 |
23 | #ifndef COMPILING_IMF_ENVMAP_ATTRIBUTE
24 | extern template class IMF_EXPORT_EXTERN_TEMPLATE
25 | TypedAttribute;
26 | #endif
27 |
28 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_EXIT
29 |
30 | #endif
31 |
--------------------------------------------------------------------------------
/src/lib/OpenEXR/ImfFloatAttribute.cpp:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | //-----------------------------------------------------------------------------
7 | //
8 | // class FloatAttribute
9 | //
10 | //-----------------------------------------------------------------------------
11 |
12 | #define COMPILING_IMF_FLOAT_ATTRIBUTE
13 |
14 | #include
15 |
16 | #if defined(_MSC_VER)
17 | // suppress warning about non-exported base classes
18 | # pragma warning(disable : 4251)
19 | # pragma warning(disable : 4275)
20 | #endif
21 |
22 | OPENEXR_IMF_INTERNAL_NAMESPACE_SOURCE_ENTER
23 |
24 | template <>
25 | IMF_EXPORT const char*
26 | FloatAttribute::staticTypeName ()
27 | {
28 | return "float";
29 | }
30 |
31 | template class IMF_EXPORT_TEMPLATE_INSTANCE TypedAttribute;
32 |
33 | OPENEXR_IMF_INTERNAL_NAMESPACE_SOURCE_EXIT
34 |
--------------------------------------------------------------------------------
/src/lib/OpenEXR/ImfFloatAttribute.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef INCLUDED_IMF_FLOAT_ATTRIBUTE_H
7 | #define INCLUDED_IMF_FLOAT_ATTRIBUTE_H
8 |
9 | //-----------------------------------------------------------------------------
10 | //
11 | // class FloatAttribute
12 | //
13 | //-----------------------------------------------------------------------------
14 |
15 | #include "ImfExport.h"
16 | #include "ImfNamespace.h"
17 |
18 | #include "ImfAttribute.h"
19 |
20 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER
21 |
22 | typedef TypedAttribute FloatAttribute;
23 |
24 | #ifndef COMPILING_IMF_FLOAT_ATTRIBUTE
25 | extern template class IMF_EXPORT_EXTERN_TEMPLATE TypedAttribute;
26 | #endif
27 |
28 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_EXIT
29 |
30 | #endif
31 |
--------------------------------------------------------------------------------
/src/lib/OpenEXR/ImfFloatVectorAttribute.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Weta Digital, Ltd and Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef INCLUDED_IMF_FLOATVECTOR_ATTRIBUTE_H
7 | #define INCLUDED_IMF_FLOATVECTOR_ATTRIBUTE_H
8 |
9 | //-----------------------------------------------------------------------------
10 | //
11 | // class FloatVectorAttribute
12 | //
13 | //-----------------------------------------------------------------------------
14 |
15 | #include "ImfExport.h"
16 | #include "ImfNamespace.h"
17 |
18 | #include "ImfAttribute.h"
19 |
20 | #include
21 |
22 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER
23 |
24 | typedef std::vector FloatVector;
25 |
26 | typedef TypedAttribute
27 | FloatVectorAttribute;
28 |
29 | #ifndef COMPILING_IMF_FLOAT_VECTOR_ATTRIBUTE
30 | extern template class IMF_EXPORT_EXTERN_TEMPLATE TypedAttribute;
31 | #endif
32 |
33 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_EXIT
34 |
35 | #endif
36 |
--------------------------------------------------------------------------------
/src/lib/OpenEXR/ImfGenericInputFile.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef IMFGENERICINPUTFILE_H_
7 | #define IMFGENERICINPUTFILE_H_
8 |
9 | #include "ImfForward.h"
10 |
11 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER
12 |
13 | class IMF_EXPORT_TYPE GenericInputFile
14 | {
15 | public:
16 | IMF_EXPORT
17 | virtual ~GenericInputFile ();
18 |
19 | protected:
20 | IMF_EXPORT
21 | GenericInputFile ();
22 | IMF_EXPORT
23 | void readMagicNumberAndVersionField (
24 | OPENEXR_IMF_INTERNAL_NAMESPACE::IStream& is, int& version);
25 | };
26 |
27 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_EXIT
28 |
29 | #endif /* IMFGENERICINPUTFILE_H_ */
30 |
--------------------------------------------------------------------------------
/src/lib/OpenEXR/ImfGenericOutputFile.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef IMFGENERICOUTPUTFILE_H_
7 | #define IMFGENERICOUTPUTFILE_H_
8 |
9 | #include "ImfForward.h"
10 |
11 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER
12 |
13 | class IMF_EXPORT_TYPE GenericOutputFile
14 | {
15 | public:
16 | IMF_EXPORT
17 | virtual ~GenericOutputFile ();
18 |
19 | protected:
20 | IMF_EXPORT
21 | GenericOutputFile ();
22 | IMF_EXPORT
23 | void writeMagicNumberAndVersionField (
24 | OPENEXR_IMF_INTERNAL_NAMESPACE::OStream& os, const Header& header);
25 | IMF_EXPORT
26 | void writeMagicNumberAndVersionField (
27 | OPENEXR_IMF_INTERNAL_NAMESPACE::OStream& os,
28 | const Header* headers,
29 | int parts);
30 | };
31 |
32 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_EXIT
33 |
34 | #endif /* GENERICOUTPUTFILE_H_ */
35 |
--------------------------------------------------------------------------------
/src/lib/OpenEXR/ImfIDManifestAttribute.h:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: BSD-3-Clause
2 | // Copyright (c) Contributors to the OpenEXR Project.
3 |
4 | #ifndef INCLUDED_IMF_IDMANIFEST_ATTRIBUTE_H
5 | #define INCLUDED_IMF_IDMANIFEST_ATTRIBUTE_H
6 |
7 | #include "ImfExport.h"
8 | #include "ImfNamespace.h"
9 |
10 | #include "ImfAttribute.h"
11 | #include "ImfIDManifest.h"
12 |
13 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER
14 |
15 | #if defined(_MSC_VER)
16 | // suppress warning about non-exported base classes
17 | # pragma warning(disable : 4251)
18 | # pragma warning(disable : 4275)
19 | #endif
20 |
21 | typedef TypedAttribute
22 | IDManifestAttribute;
23 |
24 | #ifndef COMPILING_IMF_IDMANIFEST_ATTRIBUTE
25 | extern template class IMF_EXPORT_EXTERN_TEMPLATE
26 | TypedAttribute;
27 | #endif
28 |
29 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_EXIT
30 |
31 | #endif
32 |
--------------------------------------------------------------------------------
/src/lib/OpenEXR/ImfInputPartData.cpp:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #include "ImfInputPartData.h"
7 | #include "ImfNamespace.h"
8 |
9 | #include
10 | #include
11 | OPENEXR_IMF_INTERNAL_NAMESPACE_SOURCE_ENTER
12 |
13 | InputPartData::InputPartData (
14 | const Context& ctxt,
15 | int partNumber,
16 | int numThreads
17 | )
18 | : header (ctxt.header (partNumber))
19 | , numThreads (numThreads)
20 | , partNumber (partNumber)
21 | , context (ctxt)
22 | {
23 | }
24 |
25 | OPENEXR_IMF_INTERNAL_NAMESPACE_SOURCE_EXIT
26 |
--------------------------------------------------------------------------------
/src/lib/OpenEXR/ImfInputPartData.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef IMFINPUTPARTDATA_H_
7 | #define IMFINPUTPARTDATA_H_
8 |
9 | #include "ImfForward.h"
10 |
11 | #include
12 |
13 | #include "ImfHeader.h"
14 |
15 | #include "ImfContext.h"
16 |
17 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER
18 |
19 | struct InputPartData
20 | {
21 | // TODO: reconsider / update
22 | Header header;
23 |
24 | int numThreads;
25 | int partNumber;
26 | Context context;
27 |
28 | InputPartData () = default;
29 |
30 | InputPartData (
31 | const Context& ctxt,
32 | int partNumber,
33 | int numThreads);
34 | };
35 |
36 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_EXIT
37 |
38 | #endif /* IMFINPUTPARTDATA_H_ */
39 |
--------------------------------------------------------------------------------
/src/lib/OpenEXR/ImfInputStreamMutex.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef IMFINPUTSTREAMMUTEX_H_
7 | #define IMFINPUTSTREAMMUTEX_H_
8 |
9 | #include "ImfForward.h"
10 |
11 | #include "IlmThreadConfig.h"
12 |
13 | #if ILMTHREAD_THREADING_ENABLED
14 | # include
15 | #endif
16 |
17 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER
18 |
19 | //
20 | // Used to wrap OPENEXR_IMF_INTERNAL_NAMESPACE::IStream as a mutex.
21 | //
22 | struct InputStreamMutex
23 | #if ILMTHREAD_THREADING_ENABLED
24 | : public std::mutex
25 | #endif
26 | {
27 | OPENEXR_IMF_INTERNAL_NAMESPACE::IStream* is = nullptr;
28 | uint64_t currentPosition = 0;
29 | };
30 |
31 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_EXIT
32 |
33 | #endif /* IMFINPUTSTREAMMUTEX_H_ */
34 |
--------------------------------------------------------------------------------
/src/lib/OpenEXR/ImfInt64.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef INCLUDED_IMF_INT64_H
7 | #define INCLUDED_IMF_INT64_H
8 |
9 | //----------------------------------------------------------------------------
10 | //
11 | // Deprecated Int64/SInt64 unsigned 64-bit integer type.
12 | // Use int64_t and uint64_t instead.
13 | //
14 | //----------------------------------------------------------------------------
15 |
16 | #include "ImathInt64.h"
17 | #include "ImfNamespace.h"
18 | #include
19 |
20 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER
21 |
22 | IMATH_DEPRECATED ("use uint64_t")
23 | typedef IMATH_NAMESPACE::Int64 Int64;
24 |
25 | IMATH_DEPRECATED ("use int64_t")
26 | typedef IMATH_NAMESPACE::SInt64 SInt64;
27 |
28 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_EXIT
29 |
30 | #endif // INCLUDED_IMF_INT64_H
31 |
--------------------------------------------------------------------------------
/src/lib/OpenEXR/ImfIntAttribute.cpp:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | //-----------------------------------------------------------------------------
7 | //
8 | // class IntAttribute
9 | //
10 | //-----------------------------------------------------------------------------
11 |
12 | #define COMPILING_IMF_INT_ATTRIBUTE
13 | #include "ImfIntAttribute.h"
14 |
15 | #if defined(_MSC_VER)
16 | // suppress warning about non-exported base classes
17 | # pragma warning(disable : 4251)
18 | # pragma warning(disable : 4275)
19 | #endif
20 |
21 | OPENEXR_IMF_INTERNAL_NAMESPACE_SOURCE_ENTER
22 |
23 | //#if defined(__MINGW32__)
24 | //template <>
25 | //IMF_EXPORT
26 | //TypedAttribute::~TypedAttribute ()
27 | //{
28 | //}
29 | //#endif
30 |
31 | template <>
32 | IMF_EXPORT const char*
33 | IntAttribute::staticTypeName ()
34 | {
35 | return "int";
36 | }
37 |
38 | template class IMF_EXPORT_TEMPLATE_INSTANCE TypedAttribute;
39 |
40 | OPENEXR_IMF_INTERNAL_NAMESPACE_SOURCE_EXIT
41 |
--------------------------------------------------------------------------------
/src/lib/OpenEXR/ImfIntAttribute.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef INCLUDED_IMF_INT_ATTRIBUTE_H
7 | #define INCLUDED_IMF_INT_ATTRIBUTE_H
8 |
9 | //-----------------------------------------------------------------------------
10 | //
11 | // class IntAttribute
12 | //
13 | //-----------------------------------------------------------------------------
14 |
15 | #include "ImfExport.h"
16 | #include "ImfNamespace.h"
17 |
18 | #include "ImfAttribute.h"
19 |
20 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER
21 |
22 | typedef TypedAttribute IntAttribute;
23 |
24 | #ifndef COMPILING_IMF_INT_ATTRIBUTE
25 | extern template class IMF_EXPORT_EXTERN_TEMPLATE TypedAttribute;
26 | #endif
27 |
28 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_EXIT
29 |
30 | #endif
31 |
--------------------------------------------------------------------------------
/src/lib/OpenEXR/ImfKeyCodeAttribute.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef INCLUDED_IMF_KEY_CODE_ATTRIBUTE_H
7 | #define INCLUDED_IMF_KEY_CODE_ATTRIBUTE_H
8 |
9 | //-----------------------------------------------------------------------------
10 | //
11 | // class KeyCodeAttribute
12 | //
13 | //-----------------------------------------------------------------------------
14 |
15 | #include "ImfExport.h"
16 | #include "ImfNamespace.h"
17 |
18 | #include "ImfAttribute.h"
19 |
20 | #include "ImfKeyCode.h"
21 |
22 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER
23 |
24 | typedef TypedAttribute
25 | KeyCodeAttribute;
26 |
27 | #ifndef COMPILING_IMF_KEYCODE_ATTRIBUTE
28 | extern template class IMF_EXPORT_EXTERN_TEMPLATE
29 | TypedAttribute;
30 | #endif
31 |
32 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_EXIT
33 |
34 | #endif
35 |
--------------------------------------------------------------------------------
/src/lib/OpenEXR/ImfLineOrder.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef INCLUDED_IMF_LINE_ORDER_H
7 | #define INCLUDED_IMF_LINE_ORDER_H
8 |
9 | //-----------------------------------------------------------------------------
10 | //
11 | // enum LineOrder
12 | //
13 | //-----------------------------------------------------------------------------
14 | #include "ImfExport.h"
15 | #include "ImfNamespace.h"
16 |
17 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER
18 |
19 | enum IMF_EXPORT_ENUM LineOrder
20 | {
21 | INCREASING_Y = 0, // first scan line has lowest y coordinate
22 |
23 | DECREASING_Y = 1, // first scan line has highest y coordinate
24 |
25 | RANDOM_Y = 2, // only for tiled files; tiles are written
26 | // in random order
27 |
28 | NUM_LINEORDERS // number of different line orders
29 | };
30 |
31 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_EXIT
32 |
33 | #endif
34 |
--------------------------------------------------------------------------------
/src/lib/OpenEXR/ImfLineOrderAttribute.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef INCLUDED_IMF_LINE_ORDER_ATTRIBUTE_H
7 | #define INCLUDED_IMF_LINE_ORDER_ATTRIBUTE_H
8 |
9 | //-----------------------------------------------------------------------------
10 | //
11 | // class LineOrderAttribute
12 | //
13 | //-----------------------------------------------------------------------------
14 |
15 | #include "ImfExport.h"
16 | #include "ImfNamespace.h"
17 |
18 | #include "ImfAttribute.h"
19 | #include "ImfLineOrder.h"
20 |
21 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER
22 |
23 | using LineOrderAttribute =
24 | TypedAttribute;
25 |
26 | #ifndef COMPILING_IMF_LINE_ORDER_ATTRIBUTE
27 | extern template class IMF_EXPORT_EXTERN_TEMPLATE
28 | TypedAttribute;
29 | #endif
30 |
31 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_EXIT
32 |
33 | #endif
34 |
--------------------------------------------------------------------------------
/src/lib/OpenEXR/ImfOutputPartData.cpp:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #include "ImfOutputPartData.h"
7 | #include "ImfNamespace.h"
8 |
9 | OPENEXR_IMF_INTERNAL_NAMESPACE_SOURCE_ENTER
10 |
11 | OutputPartData::OutputPartData (
12 | OutputStreamMutex* mutex,
13 | const Header& header,
14 | int partNumber,
15 | int numThreads,
16 | bool multipart)
17 | : header (header)
18 | , numThreads (numThreads)
19 | , partNumber (partNumber)
20 | , multipart (multipart)
21 | , mutex (mutex)
22 | {}
23 |
24 | OPENEXR_IMF_INTERNAL_NAMESPACE_SOURCE_EXIT
25 |
--------------------------------------------------------------------------------
/src/lib/OpenEXR/ImfOutputPartData.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef IMFOUTPUTPARTDATA_H_
7 | #define IMFOUTPUTPARTDATA_H_
8 |
9 | #include "ImfForward.h"
10 |
11 | #include "ImfHeader.h"
12 |
13 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER
14 |
15 | struct OutputPartData
16 | {
17 | Header header;
18 | uint64_t chunkOffsetTablePosition;
19 | uint64_t previewPosition;
20 | int numThreads;
21 | int partNumber;
22 | bool multipart;
23 | OutputStreamMutex* mutex;
24 |
25 | OutputPartData (
26 | OutputStreamMutex* mutex,
27 | const Header& header,
28 | int partNumber,
29 | int numThreads,
30 | bool multipart);
31 | };
32 |
33 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_EXIT
34 |
35 | #endif /* IMFOUTPUTPARTDATA_H_ */
36 |
--------------------------------------------------------------------------------
/src/lib/OpenEXR/ImfOutputStreamMutex.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef IMFOUTPUTSTREAMMUTEX_H_
7 | #define IMFOUTPUTSTREAMMUTEX_H_
8 |
9 | #include "ImfForward.h"
10 |
11 | #include "IlmThreadConfig.h"
12 |
13 | #if ILMTHREAD_THREADING_ENABLED
14 | # include
15 | #endif
16 |
17 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER
18 |
19 | //
20 | // Used to wrap OPENEXR_IMF_INTERNAL_NAMESPACE::OStream as a Mutex.
21 | //
22 | struct OutputStreamMutex
23 | #if ILMTHREAD_THREADING_ENABLED
24 | : public std::mutex
25 | #endif
26 | {
27 | OPENEXR_IMF_INTERNAL_NAMESPACE::OStream* os = nullptr;
28 | uint64_t currentPosition = 0;
29 | };
30 |
31 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_EXIT
32 |
33 | #endif /* IMFOUTPUTSTREAMMUTEX_H_ */
34 |
--------------------------------------------------------------------------------
/src/lib/OpenEXR/ImfPartType.cpp:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #include "ImfNamespace.h"
7 | #include
8 |
9 | OPENEXR_IMF_INTERNAL_NAMESPACE_SOURCE_ENTER
10 |
11 | using std::string;
12 |
13 | bool
14 | isImage (const string& name)
15 | {
16 | return (name == SCANLINEIMAGE || name == TILEDIMAGE);
17 | }
18 |
19 | bool
20 | isTiled (const string& name)
21 | {
22 | return (name == TILEDIMAGE || name == DEEPTILE);
23 | }
24 |
25 | bool
26 | isDeepData (const string& name)
27 | {
28 | return (name == DEEPTILE || name == DEEPSCANLINE);
29 | }
30 |
31 | bool
32 | isSupportedType (const string& name)
33 | {
34 | return (
35 | name == SCANLINEIMAGE || name == TILEDIMAGE || name == DEEPSCANLINE ||
36 | name == DEEPTILE);
37 | }
38 |
39 | OPENEXR_IMF_INTERNAL_NAMESPACE_SOURCE_EXIT
40 |
--------------------------------------------------------------------------------
/src/lib/OpenEXR/ImfPartType.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef IMFPARTTYPE_H_
7 | #define IMFPARTTYPE_H_
8 |
9 | #include "ImfExport.h"
10 | #include "ImfNamespace.h"
11 |
12 | #include
13 |
14 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER
15 |
16 | static const std::string SCANLINEIMAGE = "scanlineimage";
17 | static const std::string TILEDIMAGE = "tiledimage";
18 | static const std::string DEEPSCANLINE = "deepscanline";
19 | static const std::string DEEPTILE = "deeptile";
20 |
21 | IMF_EXPORT bool isImage (const std::string& name);
22 |
23 | IMF_EXPORT bool isTiled (const std::string& name);
24 |
25 | IMF_EXPORT bool isDeepData (const std::string& name);
26 |
27 | IMF_EXPORT bool isSupportedType (const std::string& name);
28 |
29 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_EXIT
30 |
31 | #endif /* IMFPARTTYPE_H_ */
32 |
--------------------------------------------------------------------------------
/src/lib/OpenEXR/ImfPixelType.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef INCLUDED_IMF_PIXEL_TYPE_H
7 | #define INCLUDED_IMF_PIXEL_TYPE_H
8 |
9 | //-----------------------------------------------------------------------------
10 | //
11 | // enum PixelType
12 | //
13 | //-----------------------------------------------------------------------------
14 |
15 | #include "ImfExport.h"
16 | #include "ImfNamespace.h"
17 |
18 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER
19 |
20 | enum IMF_EXPORT_ENUM PixelType
21 | {
22 | UINT = 0, // unsigned int (32 bit)
23 | HALF = 1, // half (16 bit floating point)
24 | FLOAT = 2, // float (32 bit floating point)
25 |
26 | NUM_PIXELTYPES // number of different pixel types
27 | };
28 |
29 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_EXIT
30 |
31 | #endif
32 |
--------------------------------------------------------------------------------
/src/lib/OpenEXR/ImfPizCompressor.cpp:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | //-----------------------------------------------------------------------------
7 | //
8 | // class PizCompressor
9 | //
10 | //-----------------------------------------------------------------------------
11 |
12 | #include "ImfPizCompressor.h"
13 |
14 | OPENEXR_IMF_INTERNAL_NAMESPACE_SOURCE_ENTER
15 |
16 | PizCompressor::PizCompressor (
17 | const Header& hdr, size_t maxScanLineSize, int numScanLines)
18 | : Compressor (hdr, EXR_COMPRESSION_PIZ, maxScanLineSize, numScanLines)
19 | {
20 | }
21 |
22 | PizCompressor::~PizCompressor ()
23 | {
24 | }
25 |
26 | OPENEXR_IMF_INTERNAL_NAMESPACE_SOURCE_EXIT
27 |
--------------------------------------------------------------------------------
/src/lib/OpenEXR/ImfPizCompressor.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef INCLUDED_IMF_PIZ_COMPRESSOR_H
7 | #define INCLUDED_IMF_PIZ_COMPRESSOR_H
8 |
9 | //-----------------------------------------------------------------------------
10 | //
11 | // class PizCompressor -- uses Wavelet and Huffman encoding.
12 | //
13 | //-----------------------------------------------------------------------------
14 |
15 | #include "ImfCompressor.h"
16 |
17 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER
18 |
19 | class PizCompressor : public Compressor
20 | {
21 | public:
22 | PizCompressor (
23 | const Header& hdr, size_t maxScanLineSize, int numScanLines);
24 |
25 | virtual ~PizCompressor ();
26 |
27 | PizCompressor (const PizCompressor& other) = delete;
28 | PizCompressor& operator= (const PizCompressor& other) = delete;
29 | PizCompressor (PizCompressor&& other) = delete;
30 | PizCompressor& operator= (PizCompressor&& other) = delete;
31 | };
32 |
33 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_EXIT
34 |
35 | #endif
36 |
--------------------------------------------------------------------------------
/src/lib/OpenEXR/ImfPreviewImageAttribute.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef INCLUDED_IMF_PREVIEW_IMAGE_ATTRIBUTE_H
7 | #define INCLUDED_IMF_PREVIEW_IMAGE_ATTRIBUTE_H
8 |
9 | //-----------------------------------------------------------------------------
10 | //
11 | // class PreviewImageAttribute
12 | //
13 | //-----------------------------------------------------------------------------
14 |
15 | #include "ImfExport.h"
16 | #include "ImfNamespace.h"
17 |
18 | #include "ImfAttribute.h"
19 | #include "ImfPreviewImage.h"
20 |
21 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER
22 |
23 | typedef TypedAttribute
24 | PreviewImageAttribute;
25 |
26 | #ifndef COMPILING_IMF_PREVIEW_IMAGE_ATTRIBUTE
27 | extern template class IMF_EXPORT_EXTERN_TEMPLATE
28 | TypedAttribute;
29 | #endif
30 |
31 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_EXIT
32 |
33 | #endif
34 |
--------------------------------------------------------------------------------
/src/lib/OpenEXR/ImfRationalAttribute.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef INCLUDED_IMF_RATIONAL_ATTRIBUTE_H
7 | #define INCLUDED_IMF_RATIONAL_ATTRIBUTE_H
8 |
9 | //-----------------------------------------------------------------------------
10 | //
11 | // class RationalAttribute
12 | //
13 | //-----------------------------------------------------------------------------
14 |
15 | #include "ImfAttribute.h"
16 | #include "ImfRational.h"
17 |
18 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER
19 |
20 | typedef TypedAttribute
21 | RationalAttribute;
22 |
23 | #ifndef COMPILING_IMF_RATIONAL_ATTRIBUTE
24 | extern template class IMF_EXPORT_EXTERN_TEMPLATE
25 | TypedAttribute;
26 | #endif
27 |
28 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_EXIT
29 |
30 | #endif
31 |
--------------------------------------------------------------------------------
/src/lib/OpenEXR/ImfRle.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef INCLUDED_IMF_RLE_H_
7 | #define INCLUDED_IMF_RLE_H_
8 |
9 | #include "ImfExport.h"
10 | #include "ImfNamespace.h"
11 |
12 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER
13 |
14 | //
15 | // Compress an array of bytes, using run-length encoding,
16 | // and return the length of the compressed data.
17 | //
18 |
19 | IMF_EXPORT
20 | int rleCompress (int inLength, const char in[], signed char out[]);
21 |
22 | //
23 | // Uncompress an array of bytes compressed with rleCompress().
24 | // Returns the length of the uncompressed data, or 0 if the
25 | // length of the uncompressed data would be more than maxLength.
26 | //
27 |
28 | IMF_EXPORT
29 | int
30 | rleUncompress (int inLength, int maxLength, const signed char in[], char out[]);
31 |
32 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_EXIT
33 |
34 | #endif
35 |
--------------------------------------------------------------------------------
/src/lib/OpenEXR/ImfRleCompressor.cpp:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | //-----------------------------------------------------------------------------
7 | //
8 | // class RleCompressor
9 | //
10 | //-----------------------------------------------------------------------------
11 |
12 | #include "ImfRleCompressor.h"
13 |
14 | OPENEXR_IMF_INTERNAL_NAMESPACE_SOURCE_ENTER
15 |
16 | RleCompressor::RleCompressor (const Header& hdr, size_t maxScanLineSize)
17 | : Compressor (hdr, EXR_COMPRESSION_RLE, maxScanLineSize, 1)
18 | {
19 | }
20 |
21 | RleCompressor::~RleCompressor ()
22 | {
23 | }
24 |
25 | OPENEXR_IMF_INTERNAL_NAMESPACE_SOURCE_EXIT
26 |
--------------------------------------------------------------------------------
/src/lib/OpenEXR/ImfRleCompressor.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef INCLUDED_IMF_RLE_COMPRESSOR_H
7 | #define INCLUDED_IMF_RLE_COMPRESSOR_H
8 |
9 | //-----------------------------------------------------------------------------
10 | //
11 | // class RleCompressor -- performs run-length encoding
12 | //
13 | //-----------------------------------------------------------------------------
14 |
15 | #include "ImfCompressor.h"
16 |
17 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER
18 |
19 | class RleCompressor : public Compressor
20 | {
21 | public:
22 | RleCompressor (const Header& hdr, size_t maxScanLineSize);
23 | virtual ~RleCompressor ();
24 |
25 | RleCompressor (const RleCompressor& other) = delete;
26 | RleCompressor& operator= (const RleCompressor& other) = delete;
27 | RleCompressor (RleCompressor&& other) = delete;
28 | RleCompressor& operator= (RleCompressor&& other) = delete;
29 | };
30 |
31 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_EXIT
32 |
33 | #endif
34 |
--------------------------------------------------------------------------------
/src/lib/OpenEXR/ImfStringAttribute.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef INCLUDED_IMF_STRING_ATTRIBUTE_H
7 | #define INCLUDED_IMF_STRING_ATTRIBUTE_H
8 |
9 | //-----------------------------------------------------------------------------
10 | //
11 | // class StringAttribute
12 | //
13 | //-----------------------------------------------------------------------------
14 |
15 | #include "ImfExport.h"
16 | #include "ImfNamespace.h"
17 |
18 | #include "ImfAttribute.h"
19 |
20 | #include
21 |
22 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER
23 |
24 | typedef TypedAttribute StringAttribute;
25 |
26 | #ifndef COMPILING_IMF_STRING_ATTRIBUTE
27 | extern template class IMF_EXPORT_EXTERN_TEMPLATE TypedAttribute;
28 | #endif
29 |
30 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_EXIT
31 |
32 | #endif
33 |
--------------------------------------------------------------------------------
/src/lib/OpenEXR/ImfStringVectorAttribute.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Weta Digital, Ltd and Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef INCLUDED_IMF_STRINGVECTOR_ATTRIBUTE_H
7 | #define INCLUDED_IMF_STRINGVECTOR_ATTRIBUTE_H
8 |
9 | //-----------------------------------------------------------------------------
10 | //
11 | // class StringVectorAttribute
12 | //
13 | //-----------------------------------------------------------------------------
14 |
15 | #include "ImfExport.h"
16 | #include "ImfNamespace.h"
17 |
18 | #include "ImfAttribute.h"
19 |
20 | #include
21 | #include
22 |
23 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER
24 |
25 | typedef std::vector StringVector;
26 | typedef TypedAttribute
27 | StringVectorAttribute;
28 |
29 | #ifndef COMPILING_IMF_STRING_VECTOR_ATTRIBUTE
30 | extern template class IMF_EXPORT_EXTERN_TEMPLATE
31 | TypedAttribute;
32 | #endif
33 |
34 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_EXIT
35 |
36 | #endif
37 |
--------------------------------------------------------------------------------
/src/lib/OpenEXR/ImfThreading.cpp:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | //-----------------------------------------------------------------------------
7 | //
8 | // Threading support for the OpenEXR library
9 | //
10 | //-----------------------------------------------------------------------------
11 |
12 | #include "ImfThreading.h"
13 | #include "IlmThreadPool.h"
14 | #include "ImfNamespace.h"
15 |
16 | OPENEXR_IMF_INTERNAL_NAMESPACE_SOURCE_ENTER
17 |
18 | int
19 | globalThreadCount ()
20 | {
21 | return ILMTHREAD_NAMESPACE::ThreadPool::globalThreadPool ().numThreads ();
22 | }
23 |
24 | void
25 | setGlobalThreadCount (int count)
26 | {
27 | ILMTHREAD_NAMESPACE::ThreadPool::globalThreadPool ().setNumThreads (count);
28 | }
29 |
30 | OPENEXR_IMF_INTERNAL_NAMESPACE_SOURCE_EXIT
31 |
--------------------------------------------------------------------------------
/src/lib/OpenEXR/ImfTileDescriptionAttribute.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef INCLUDED_IMF_TILE_DESCRIPTION_ATTRIBUTE_H
7 | #define INCLUDED_IMF_TILE_DESCRIPTION_ATTRIBUTE_H
8 |
9 | //-----------------------------------------------------------------------------
10 | //
11 | // class TileDescriptionAttribute
12 | //
13 | //-----------------------------------------------------------------------------
14 |
15 | #include "ImfExport.h"
16 | #include "ImfNamespace.h"
17 |
18 | #include "ImfAttribute.h"
19 | #include "ImfTileDescription.h"
20 |
21 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER
22 |
23 | typedef TypedAttribute
24 | TileDescriptionAttribute;
25 |
26 | #ifndef COMPILING_IMF_STRING_VECTOR_ATTRIBUTE
27 | extern template class IMF_EXPORT_EXTERN_TEMPLATE
28 | TypedAttribute;
29 | #endif
30 |
31 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_EXIT
32 |
33 | #endif
34 |
--------------------------------------------------------------------------------
/src/lib/OpenEXR/ImfTimeCodeAttribute.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef INCLUDED_IMF_TIME_CODE_ATTRIBUTE_H
7 | #define INCLUDED_IMF_TIME_CODE_ATTRIBUTE_H
8 |
9 | //-----------------------------------------------------------------------------
10 | //
11 | // class TimeCodeAttribute
12 | //
13 | //-----------------------------------------------------------------------------
14 |
15 | #include "ImfExport.h"
16 | #include "ImfNamespace.h"
17 |
18 | #include "ImfAttribute.h"
19 | #include "ImfTimeCode.h"
20 |
21 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER
22 |
23 | typedef TypedAttribute
24 | TimeCodeAttribute;
25 |
26 | #ifndef COMPILING_IMF_TIMECODE_ATTRIBUTE
27 | extern template class IMF_EXPORT_EXTERN_TEMPLATE
28 | TypedAttribute;
29 | #endif
30 |
31 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_EXIT
32 |
33 | #endif
34 |
--------------------------------------------------------------------------------
/src/lib/OpenEXR/ImfVersion.cpp:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | //-----------------------------------------------------------------------------
7 | //
8 | // Magic and version number.
9 | //
10 | //-----------------------------------------------------------------------------
11 |
12 | #include "ImfNamespace.h"
13 | #include
14 |
15 | OPENEXR_IMF_INTERNAL_NAMESPACE_SOURCE_ENTER
16 |
17 | bool
18 | isImfMagic (const char bytes[4])
19 | {
20 | return bytes[0] == ((MAGIC >> 0) & 0x00ff) &&
21 | bytes[1] == ((MAGIC >> 8) & 0x00ff) &&
22 | bytes[2] == ((MAGIC >> 16) & 0x00ff) &&
23 | bytes[3] == ((MAGIC >> 24) & 0x00ff);
24 | }
25 |
26 | OPENEXR_IMF_INTERNAL_NAMESPACE_SOURCE_EXIT
27 |
--------------------------------------------------------------------------------
/src/lib/OpenEXR/ImfZipCompressor.cpp:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | //-----------------------------------------------------------------------------
7 | //
8 | // class ZipCompressor
9 | //
10 | //-----------------------------------------------------------------------------
11 |
12 | #include "ImfZipCompressor.h"
13 |
14 | OPENEXR_IMF_INTERNAL_NAMESPACE_SOURCE_ENTER
15 |
16 | ZipCompressor::ZipCompressor (
17 | const Header& hdr, size_t maxScanLineSize, int numScanLines)
18 | : Compressor (hdr,
19 | (numScanLines == 16) ? EXR_COMPRESSION_ZIPS : EXR_COMPRESSION_ZIP,
20 | maxScanLineSize,
21 | numScanLines)
22 | {
23 | }
24 |
25 | ZipCompressor::~ZipCompressor ()
26 | {
27 | }
28 |
29 | OPENEXR_IMF_INTERNAL_NAMESPACE_SOURCE_EXIT
30 |
--------------------------------------------------------------------------------
/src/lib/OpenEXR/ImfZipCompressor.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef INCLUDED_IMF_ZIP_COMPRESSOR_H
7 | #define INCLUDED_IMF_ZIP_COMPRESSOR_H
8 |
9 | //-----------------------------------------------------------------------------
10 | //
11 | // class ZipCompressor -- performs zlib-style compression
12 | //
13 | //-----------------------------------------------------------------------------
14 |
15 | #include "ImfCompressor.h"
16 |
17 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER
18 |
19 | class ZipCompressor : public Compressor
20 | {
21 | public:
22 | ZipCompressor (
23 | const Header& hdr, size_t maxScanLineSize, int numScanLines);
24 |
25 | virtual ~ZipCompressor ();
26 | };
27 |
28 | OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_EXIT
29 |
30 | #endif
31 |
--------------------------------------------------------------------------------
/src/lib/OpenEXRCore/internal_constants.h:
--------------------------------------------------------------------------------
1 | /*
2 | ** SPDX-License-Identifier: BSD-3-Clause
3 | ** Copyright Contributors to the OpenEXR Project.
4 | */
5 |
6 | #ifndef OPENEXR_PRIV_CONSTANTS_H
7 | #define OPENEXR_PRIV_CONSTANTS_H
8 |
9 | #define EXR_REQ_CHANNELS_STR "channels"
10 | #define EXR_REQ_COMP_STR "compression"
11 | #define EXR_REQ_DATA_STR "dataWindow"
12 | #define EXR_REQ_DISP_STR "displayWindow"
13 | #define EXR_REQ_LO_STR "lineOrder"
14 | #define EXR_REQ_PAR_STR "pixelAspectRatio"
15 | #define EXR_REQ_SCR_WC_STR "screenWindowCenter"
16 | #define EXR_REQ_SCR_WW_STR "screenWindowWidth"
17 | #define EXR_REQ_TILES_STR "tiles"
18 | /* exr 2.0 req attr */
19 | #define EXR_REQ_NAME_STR "name"
20 | #define EXR_REQ_TYPE_STR "type"
21 | #define EXR_REQ_VERSION_STR "version"
22 | #define EXR_REQ_CHUNK_COUNT_STR "chunkCount"
23 | /* this is in the file layout / technical info document
24 | * but not actually used anywhere...
25 | * #define REQ_MSS_COUNT_STR "maxSamplesPerPixel"
26 | */
27 |
28 | #define EXR_SHORTNAME_MAXLEN 31
29 | #define EXR_LONGNAME_MAXLEN 255
30 |
31 | #endif /* OPENEXR_PRIV_CONSTANTS_H */
32 |
--------------------------------------------------------------------------------
/src/lib/OpenEXRCore/internal_ht_common.h:
--------------------------------------------------------------------------------
1 | /*
2 | ** SPDX-License-Identifier: BSD-3-Clause
3 | ** Copyright Contributors to the OpenEXR Project.
4 | */
5 |
6 | #ifndef OPENEXR_PRIVATE_HT_COMMON_H
7 | #define OPENEXR_PRIVATE_HT_COMMON_H
8 |
9 | #include
10 | #include
11 | #include "openexr_coding.h"
12 |
13 | struct CodestreamChannelInfo {
14 | int file_index;
15 | size_t raster_line_offset;
16 | };
17 |
18 | bool
19 | make_channel_map (
20 | int channel_count, exr_coding_channel_info_t* channels, std::vector& cs_to_file_ch);
21 |
22 | #endif /* OPENEXR_PRIVATE_HT_COMMON_H */
23 |
--------------------------------------------------------------------------------
/src/lib/OpenEXRCore/internal_huf.h:
--------------------------------------------------------------------------------
1 | /*
2 | ** SPDX-License-Identifier: BSD-3-Clause
3 | ** Copyright Contributors to the OpenEXR Project.
4 | */
5 |
6 | #ifndef OPENEXR_CORE_HUF_CODING_H
7 | #define OPENEXR_CORE_HUF_CODING_H
8 |
9 | #include "openexr_errors.h"
10 | #include "openexr_decode.h"
11 |
12 | uint64_t internal_exr_huf_compress_spare_bytes (void);
13 | uint64_t internal_exr_huf_decompress_spare_bytes (void);
14 |
15 | exr_result_t internal_huf_compress (
16 | uint64_t* encbytes,
17 | void* out,
18 | uint64_t outsz,
19 | const uint16_t* raw,
20 | uint64_t nRaw,
21 | void* spare,
22 | uint64_t sparebytes);
23 |
24 | exr_result_t internal_huf_decompress (
25 | exr_decode_pipeline_t* decode,
26 | const uint8_t* compressed,
27 | uint64_t nCompressed,
28 | uint16_t* raw,
29 | uint64_t nRaw,
30 | void* spare,
31 | uint64_t sparebytes);
32 |
33 | #endif /* OPENEXR_CORE_HUF_CODING_H */
34 |
--------------------------------------------------------------------------------
/src/lib/OpenEXRCore/internal_memory.h:
--------------------------------------------------------------------------------
1 | /*
2 | ** SPDX-License-Identifier: BSD-3-Clause
3 | ** Copyright Contributors to the OpenEXR Project.
4 | */
5 |
6 | #ifndef OPENEXR_PRIVATE_MEMORY_H
7 | #define OPENEXR_PRIVATE_MEMORY_H
8 |
9 | #include "openexr_base.h"
10 |
11 | #if defined(__GNUC__) || defined(__clang__)
12 | __attribute__ ((malloc))
13 | #endif
14 | void*
15 | internal_exr_alloc (size_t bytes);
16 |
17 | #if defined(__GNUC__) || defined(__clang__)
18 | __attribute__ ((malloc))
19 | #endif
20 | void*
21 | internal_exr_alloc_aligned (
22 | void* (*alloc_fn) (size_t), void** tofreeptr, size_t bytes, size_t align);
23 |
24 | void internal_exr_free (void* ptr);
25 |
26 | #endif /* OPENEXR_PRIVATE_MEMORY_H */
27 |
--------------------------------------------------------------------------------
/src/lib/OpenEXRCore/openexr.h:
--------------------------------------------------------------------------------
1 | /*
2 | ** SPDX-License-Identifier: BSD-3-Clause
3 | ** Copyright Contributors to the OpenEXR Project.
4 | */
5 |
6 | #ifndef OPENEXR_CORE_H
7 | #define OPENEXR_CORE_H
8 |
9 | #include "openexr_config.h"
10 |
11 | #include "openexr_base.h"
12 | #include "openexr_errors.h"
13 |
14 | #include "openexr_attr.h"
15 | #include "openexr_context.h"
16 |
17 | #include "openexr_part.h"
18 |
19 | #include "openexr_std_attr.h"
20 |
21 | #include "openexr_chunkio.h"
22 |
23 | #include "openexr_compression.h"
24 |
25 | #include "openexr_decode.h"
26 | #include "openexr_encode.h"
27 |
28 | #include "openexr_debug.h"
29 |
30 | #endif /* OPENEXR_CORE_H */
31 |
--------------------------------------------------------------------------------
/src/lib/OpenEXRCore/openexr_debug.h:
--------------------------------------------------------------------------------
1 | /*
2 | ** SPDX-License-Identifier: BSD-3-Clause
3 | ** Copyright Contributors to the OpenEXR Project.
4 | */
5 |
6 | #ifndef OPENEXR_DEBUG_H
7 | #define OPENEXR_DEBUG_H
8 |
9 | #include "openexr_context.h"
10 |
11 | #ifdef __cplusplus
12 | extern "C" {
13 | #endif
14 |
15 | /** @file */
16 |
17 | /** Debug function: print to stdout the parts and attributes of the
18 | * context @p c
19 | */
20 | EXR_EXPORT exr_result_t
21 | exr_print_context_info (exr_const_context_t c, int verbose);
22 |
23 | #ifdef __cplusplus
24 | } /* extern "C" */
25 | #endif
26 |
27 | #endif /* OPENEXR_DEBUG_H */
28 |
--------------------------------------------------------------------------------
/src/lib/OpenEXRCore/openexr_std_attr.h:
--------------------------------------------------------------------------------
1 | /*
2 | ** SPDX-License-Identifier: BSD-3-Clause
3 | ** Copyright Contributors to the OpenEXR Project.
4 | */
5 |
6 | #ifndef OPENEXR_CORE_STD_ATTR_H
7 | #define OPENEXR_CORE_STD_ATTR_H
8 |
9 | #include "openexr_attr.h"
10 |
11 | #ifdef __cplusplus
12 | extern "C" {
13 | #endif
14 |
15 | /** @file */
16 |
17 | /**
18 | * @defgroup Standard attributes
19 | * @brief These are a group of attributes which are not strictly required,
20 | * but have common definitions and should be preferred for representing
21 | * the information they describe.
22 | * @{
23 | */
24 |
25 | /*
26 | chromaticities
27 | whiteLuminance
28 | adoptedNeutral
29 | xDensity
30 | owner
31 | comments
32 | capDate
33 | utcOffset
34 | longitude
35 | latitude
36 | altitude
37 | focus
38 | expTime
39 | aperture
40 | isoSpeed
41 | envmap
42 | keyCode
43 | timeCode
44 | wrapmodes
45 | framesPerSecond
46 | multiView
47 | worldToCamera
48 | worldToNDC
49 | deepImageState
50 | originalDataWindow
51 | */
52 |
53 | /** @} */
54 |
55 | #ifdef __cplusplus
56 | } /* extern "C" */
57 | #endif
58 |
59 | #endif /* OPENEXR_CORE_STD_ATTR_H */
60 |
--------------------------------------------------------------------------------
/src/lib/OpenEXRCore/openexr_version.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 | // This is the OpenEXR library version information.
6 | // ImfVersion.h contains version information about the file format.
7 | #pragma once
8 | #ifndef INCLUDED_OPENEXR_VERSION_H
9 | # define INCLUDED_OPENEXR_VERSION_H
10 |
11 | # define OPENEXR_VERSION_MAJOR 3
12 | # define OPENEXR_VERSION_MINOR 4
13 | # define OPENEXR_VERSION_PATCH 0
14 |
15 | #endif
16 |
--------------------------------------------------------------------------------
/src/lib/OpenEXRCore/std_attr.c:
--------------------------------------------------------------------------------
1 | /*
2 | ** SPDX-License-Identifier: BSD-3-Clause
3 | ** Copyright Contributors to the OpenEXR Project.
4 | */
5 |
6 | #include "openexr_std_attr.h"
7 |
--------------------------------------------------------------------------------
/src/test/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: BSD-3-Clause
2 | # Copyright (c) Contributors to the OpenEXR Project.
3 |
4 | # We require this to get object library link library support and
5 | # combined python 2 + 3 support
6 |
7 | if (OPENEXR_TEST_LIBRARIES)
8 | add_subdirectory(IexTest)
9 | add_subdirectory(OpenEXRCoreTest)
10 | add_subdirectory(OpenEXRTest)
11 | add_subdirectory(OpenEXRUtilTest)
12 | add_subdirectory(OpenEXRFuzzTest)
13 | endif()
14 |
15 | set(LIB_FUZZING_ENGINE $ENV{LIB_FUZZING_ENGINE})
16 | if (OPENEXR_BUILD_OSS_FUZZ AND LIB_FUZZING_ENGINE)
17 | add_subdirectory(oss-fuzz)
18 | endif()
19 |
20 | if (OPENEXR_BUILD_TOOLS AND OPENEXR_TEST_TOOLS)
21 | add_subdirectory(bin)
22 | endif()
23 |
24 |
--------------------------------------------------------------------------------
/src/test/IexTest/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: BSD-3-Clause
2 | # Copyright (c) Contributors to the OpenEXR Project.
3 |
4 | add_executable(IexTest
5 | main.cpp
6 | testBaseExc.cpp
7 | testBaseExc.h
8 | testMathExc.cpp
9 | testMathExc.h
10 | mathFuncs.cpp
11 | mathFuncs.h
12 | )
13 |
14 | target_link_libraries(IexTest OpenEXR::Iex)
15 | set_target_properties(IexTest PROPERTIES
16 | RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
17 | )
18 | if(WIN32 AND BUILD_SHARED_LIBS)
19 | target_compile_definitions(IexTest PRIVATE OPENEXR_DLL)
20 | endif()
21 |
22 | # CMAKE_CROSSCOMPILING_EMULATOR is necessary to support cross-compiling (ex: to win32 from mingw and running tests with wine)
23 | add_test(NAME OpenEXR.Iex COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $)
24 |
--------------------------------------------------------------------------------
/src/test/IexTest/main.cpp:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifdef NDEBUG
7 | # undef NDEBUG
8 | #endif
9 |
10 | #include
11 | #include
12 |
13 | #include
14 |
15 | #define TEST(x) \
16 | if (argc < 2 || !strcmp (argv[1], #x)) x ();
17 |
18 | int
19 | main (int argc, char* argv[])
20 | {
21 | TEST (testBaseExc);
22 | TEST (testMathExc);
23 | return 0;
24 | }
25 |
--------------------------------------------------------------------------------
/src/test/IexTest/mathFuncs.cpp:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: BSD-3-Clause
2 | // Copyright Contributors to the OpenEXR Project.
3 |
4 | #undef __THROW
5 | #include
6 | #include
7 |
8 | float
9 | divide (float x, float y)
10 | {
11 | std::cout << x << " / " << y << std::endl;
12 | return x / y;
13 | }
14 |
15 | float
16 | root (float x)
17 | {
18 | std::cout << "sqrt (" << x << ")" << std::endl;
19 | return sqrt (x);
20 | }
21 |
22 | float
23 | grow (float x, int y)
24 | {
25 | std::cout << "grow (" << x << ", " << y << ")" << std::endl;
26 |
27 | for (int i = 0; i < y; i++)
28 | x = x * x;
29 |
30 | return x;
31 | }
32 |
--------------------------------------------------------------------------------
/src/test/IexTest/mathFuncs.h:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: BSD-3-Clause
2 | // Copyright Contributors to the OpenEXR Project.
3 |
4 | float divide (float x, float y);
5 | float root (float x);
6 | float grow (float x, int y);
7 |
--------------------------------------------------------------------------------
/src/test/IexTest/testBaseExc.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | void testBaseExc ();
7 |
--------------------------------------------------------------------------------
/src/test/IexTest/testMathExc.h:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: BSD-3-Clause
2 | // Copyright Contributors to the OpenEXR Project.
3 |
4 | void testMathExc ();
5 |
--------------------------------------------------------------------------------
/src/test/OpenEXRCoreTest/base_units.h:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: BSD-3-Clause
2 | // Copyright Contributors to the OpenEXR Project.
3 |
4 | #ifndef OPENEXR_CORE_TEST_BASE_H
5 | #define OPENEXR_CORE_TEST_BASE_H
6 |
7 | #include
8 |
9 | void testBase (const std::string& tempdir);
10 | void testBaseErrors (const std::string& tempdir);
11 | void testBaseLimits (const std::string& tempdir);
12 | void testBaseDebug (const std::string& tempdir);
13 | void testCPUIdent (const std::string& tempdir);
14 | void testHalf (const std::string& tempdir);
15 | void testTempContext (const std::string& tempdir);
16 |
17 | #endif // OPENEXR_CORE_TEST_BASE_H
18 |
--------------------------------------------------------------------------------
/src/test/OpenEXRCoreTest/buffer.h:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: BSD-3-Clause
2 | // Copyright Contributors to the OpenEXR Project.
3 |
4 | #ifndef OPENEXR_CORE_TEST_BUFFER_H
5 | #define OPENEXR_CORE_TEST_BUFFER_H
6 |
7 | void testBufferCompression (const std::string& tempdir);
8 |
9 | #endif // OPENEXR_CORE_TEST_BUFFER_H
10 |
--------------------------------------------------------------------------------
/src/test/OpenEXRCoreTest/deep.h:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: BSD-3-Clause
2 | // Copyright Contributors to the OpenEXR Project.
3 |
4 | #ifndef OPENEXR_CORE_TEST_DEEP_H
5 | #define OPENEXR_CORE_TEST_DEEP_H
6 |
7 | #include
8 |
9 | void testOpenDeep (const std::string& tempdir);
10 |
11 | void testReadDeep (const std::string& tempdir);
12 | void testWriteDeep (const std::string& tempdir);
13 |
14 | #endif // OPENEXR_CORE_TEST_READ_H
15 |
--------------------------------------------------------------------------------
/src/test/OpenEXRCoreTest/general_attr.h:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: BSD-3-Clause
2 | // Copyright Contributors to the OpenEXR Project.
3 |
4 | #ifndef OPENEXR_CORE_TEST_GEN_ATTR_H
5 | #define OPENEXR_CORE_TEST_GEN_ATTR_H
6 |
7 | #include
8 |
9 | void testAttrSizes (const std::string& tempdir);
10 | void testAttrStrings (const std::string& tempdir);
11 | void testAttrStringVectors (const std::string& tempdir);
12 | void testAttrFloatVectors (const std::string& tempdir);
13 | void testAttrChlists (const std::string& tempdir);
14 | void testAttrPreview (const std::string& tempdir);
15 | void testAttrOpaque (const std::string& tempdir);
16 | void testAttrHandler (const std::string& tempdir);
17 |
18 | void testAttrLists (const std::string& tempdir);
19 |
20 | void testXDR (const std::string& tempdir);
21 |
22 | #endif // OPENEXR_CORE_TEST_GEN_ATTR_H
23 |
--------------------------------------------------------------------------------
/src/test/OpenEXRCoreTest/read.h:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: BSD-3-Clause
2 | // Copyright Contributors to the OpenEXR Project.
3 |
4 | #ifndef OPENEXR_CORE_TEST_READ_H
5 | #define OPENEXR_CORE_TEST_READ_H
6 |
7 | #include
8 |
9 | void testReadBadArgs (const std::string& tempdir);
10 | void testReadBadFiles (const std::string& tempdir);
11 |
12 | void testReadMeta (const std::string& tempdir);
13 |
14 | void testOpenScans (const std::string& tempdir);
15 | void testOpenTiles (const std::string& tempdir);
16 | void testOpenMultiPart (const std::string& tempdir);
17 | void testOpenDeep (const std::string& tempdir);
18 |
19 | void testReadScans (const std::string& tempdir);
20 | void testReadTiles (const std::string& tempdir);
21 | void testReadMultiPart (const std::string& tempdir);
22 |
23 | void testReadUnpack (const std::string& tempdir);
24 |
25 | #endif // OPENEXR_CORE_TEST_READ_H
26 |
--------------------------------------------------------------------------------
/src/test/OpenEXRCoreTest/write.h:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: BSD-3-Clause
2 | // Copyright Contributors to the OpenEXR Project.
3 |
4 | #ifndef OPENEXR_CORE_TEST_WRITE_H
5 | #define OPENEXR_CORE_TEST_WRITE_H
6 |
7 | #include
8 |
9 | void testWriteBadArgs (const std::string& tempdir);
10 | void testWriteBadFiles (const std::string& tempdir);
11 |
12 | void testWriteBaseHeader (const std::string& tempdir);
13 | void testWriteAttrs (const std::string& tempdir);
14 |
15 | void testStartWriteScan (const std::string& tempdir);
16 | void testStartWriteTile (const std::string& tempdir);
17 | void testStartWriteDeepScan (const std::string& tempdir);
18 | void testStartWriteDeepTile (const std::string& tempdir);
19 | void testStartWriteUTF8 (const std::string& tempdir);
20 |
21 | void testUpdateMeta (const std::string& tempdir);
22 |
23 | void testWriteScans (const std::string& tempdir);
24 | void testWriteTiles (const std::string& tempdir);
25 | void testWriteMultiPart (const std::string& tempdir);
26 |
27 | #endif // OPENEXR_CORE_TEST_WRITE_H
28 |
--------------------------------------------------------------------------------
/src/test/OpenEXRFuzzTest/fuzzFile.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef INCLUDED_FUZZ_FILE_H
7 | #define INCLUDED_FUZZ_FILE_H
8 |
9 | #include
10 |
11 | void fuzzFile (
12 | const char goodFile[],
13 | const char brokenFile[],
14 | void (*readFile) (const char[]),
15 | int nSlidingWindow,
16 | int nFixedWindow,
17 | IMATH_NAMESPACE::Rand48& random);
18 |
19 | #endif
20 |
--------------------------------------------------------------------------------
/src/test/OpenEXRFuzzTest/oss-fuzz:
--------------------------------------------------------------------------------
1 | ../oss-fuzz
--------------------------------------------------------------------------------
/src/test/OpenEXRFuzzTest/testFuzzDeepScanLines.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | void testFuzzDeepScanLines (const char* file);
7 |
--------------------------------------------------------------------------------
/src/test/OpenEXRFuzzTest/testFuzzDeepTiles.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | void testFuzzDeepTiles (const char* file);
7 |
--------------------------------------------------------------------------------
/src/test/OpenEXRFuzzTest/testFuzzScanLines.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | void testFuzzScanLines (const char* file);
7 |
--------------------------------------------------------------------------------
/src/test/OpenEXRFuzzTest/testFuzzTiles.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | void testFuzzTiles (const char* file);
7 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/bswap_32.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project. See LICENSE file for details.
4 | //
5 |
6 | #if defined(_WIN32) || defined(_WIN64)
7 | # include
8 | # define bswap_32(x) _byteswap_ulong (x)
9 | #elif defined(__APPLE__)
10 | # include
11 | # define bswap_32(x) OSSwapInt32 (x)
12 | #elif defined(__sun) || defined(sun)
13 | # include
14 | # define bswap_32(x) BSWAP_32 (x)
15 | #elif defined(__FreeBSD__)
16 | # include
17 | # define bswap_32(x) bswap32 (x)
18 | #elif defined(__OpenBSD__)
19 | # include
20 | # define bswap_32(x) swap32 (x)
21 | #elif defined(__NetBSD__)
22 | # include
23 | # include
24 | # define bswap_32(x) bswap32 (x)
25 | #else
26 | # include
27 | #endif
28 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/comp_b44.exr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/src/test/OpenEXRTest/comp_b44.exr
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/comp_b44_piz.exr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/src/test/OpenEXRTest/comp_b44_piz.exr
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/comp_bad_bounds_piz.exr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/src/test/OpenEXRTest/comp_bad_bounds_piz.exr
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/comp_bad_neg_bounds_pxr24.exr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/src/test/OpenEXRTest/comp_bad_neg_bounds_pxr24.exr
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/comp_bad_pos_bounds_piz.exr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/src/test/OpenEXRTest/comp_bad_pos_bounds_piz.exr
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/comp_bad_pos_bounds_pxr24.exr:
--------------------------------------------------------------------------------
1 | v/1 channels chlist 0000G 0000 compression compression 0000dataWindow box2i 0000 0000000000000000lineOrder lineOrder 0000 o0000 string ' 000000000000000000000000000000000000000p000000000000 0000
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/comp_dwaa_piz.exr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/src/test/OpenEXRTest/comp_dwaa_piz.exr
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/comp_dwaa_v1.exr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/src/test/OpenEXRTest/comp_dwaa_v1.exr
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/comp_dwaa_v2.exr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/src/test/OpenEXRTest/comp_dwaa_v2.exr
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/comp_dwab_piz.exr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/src/test/OpenEXRTest/comp_dwab_piz.exr
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/comp_dwab_v1.exr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/src/test/OpenEXRTest/comp_dwab_v1.exr
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/comp_dwab_v2.exr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/src/test/OpenEXRTest/comp_dwab_v2.exr
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/comp_early_eof_piz.exr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/src/test/OpenEXRTest/comp_early_eof_piz.exr
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/comp_invalid_unknown.exr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/src/test/OpenEXRTest/comp_invalid_unknown.exr
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/comp_none.exr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/src/test/OpenEXRTest/comp_none.exr
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/comp_piz.exr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/src/test/OpenEXRTest/comp_piz.exr
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/comp_rle.exr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/src/test/OpenEXRTest/comp_rle.exr
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/comp_short_decode_piz.exr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/src/test/OpenEXRTest/comp_short_decode_piz.exr
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/comp_zip.exr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/src/test/OpenEXRTest/comp_zip.exr
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/comp_zips.exr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/src/test/OpenEXRTest/comp_zips.exr
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/compareB44.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #include "ImfNamespace.h"
7 |
8 | #include
9 | #include
10 |
11 | bool withinB44ErrorBounds (const half A[4][4], const half B[4][4]);
12 |
13 | void compareB44 (
14 | int width,
15 | int height,
16 | const OPENEXR_IMF_NAMESPACE::Array2D& p1,
17 | const OPENEXR_IMF_NAMESPACE::Array2D& p2);
18 |
19 | void compareB44 (
20 | int width,
21 | int height,
22 | const OPENEXR_IMF_NAMESPACE::Array2D& p1,
23 | const OPENEXR_IMF_NAMESPACE::Array2D& p2,
24 | OPENEXR_IMF_NAMESPACE::RgbaChannels channels);
25 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/compareDwa.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) DreamWorks Animation LLC and Contributors of the OpenEXR Project
4 | //
5 |
6 | #ifndef COMPARE_DWA_H_INCLUDED
7 | #define COMPARE_DWA_H_INCLUDED
8 |
9 | #include "ImfArray.h"
10 | #include "ImfNamespace.h"
11 | #include "ImfRgba.h"
12 |
13 | void compareDwa (
14 | int width,
15 | int height,
16 | const OPENEXR_IMF_NAMESPACE::Array2D& src,
17 | const OPENEXR_IMF_NAMESPACE::Array2D& test,
18 | OPENEXR_IMF_NAMESPACE::RgbaChannels channels);
19 |
20 | #endif
21 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/compareFloat.cpp:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifdef NDEBUG
7 | # undef NDEBUG
8 | #endif
9 |
10 | #include "compareFloat.h"
11 |
12 | using namespace OPENEXR_IMF_NAMESPACE;
13 |
14 | bool
15 | equivalent (float f1, float f2, Compression comp)
16 | {
17 | //
18 | // Test if a float, f1, is "equivalent" to another float, f2,
19 | // which results from storing f1 in an image file, and reading
20 | // it back:
21 | // If the file was compressed with PXR24_COMPRESSION, then f1
22 | // and f2 must the same as f1 rounded to 24 bits (see class
23 | // ImfPxr24Compressor); otherwise f1 and f2 must be the same.
24 | //
25 |
26 | union
27 | {
28 | float f;
29 | unsigned int i;
30 | } u1, u2;
31 |
32 | u1.f = f1;
33 | u2.f = f2;
34 |
35 | if (comp == PXR24_COMPRESSION)
36 | return (u2.i >> 8) - (u1.i >> 8) < 2;
37 | else
38 | return u2.i == u1.i;
39 | }
40 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/compareFloat.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #include "ImfCompression.h"
7 | #include "ImfNamespace.h"
8 |
9 | bool equivalent (float f1, float f2, OPENEXR_IMF_NAMESPACE::Compression comp);
10 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/invalid.exr:
--------------------------------------------------------------------------------
1 | this is not a valid EXR file
2 |
3 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/invalid_shared_attrs_multipart.exr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/src/test/OpenEXRTest/invalid_shared_attrs_multipart.exr
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/lineOrder_decreasing.exr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/src/test/OpenEXRTest/lineOrder_decreasing.exr
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/lineOrder_increasing.exr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/src/test/OpenEXRTest/lineOrder_increasing.exr
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/random.cpp:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: BSD-3-Clause
2 | // Copyright (c) Contributors to the OpenEXR Project.
3 |
4 | #include "random.h"
5 | #include
6 | #include
7 |
8 | static std::default_random_engine generator;
9 |
10 | void
11 | random_reseed (int s)
12 | {
13 | generator.seed (s);
14 | }
15 |
16 | //
17 | // Return an integer in the range [0,range), so that 0 <= i < range
18 | //
19 | int
20 | random_int (int range)
21 | {
22 | std::uniform_int_distribution distribution (0, range - 1);
23 | int i = distribution (generator);
24 | assert (0 <= i && i < range);
25 | return i;
26 | }
27 |
28 | //
29 | // Return a float in the range [0, range), so that 0 <= f < range
30 | //
31 |
32 | float
33 | random_float (float range)
34 | {
35 | std::uniform_real_distribution distribution (0, range);
36 | float f = distribution (generator);
37 | assert (0 <= f && f < range);
38 | return f;
39 | }
40 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/random.h:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: BSD-3-Clause
2 | // Copyright (c) Contributors to the OpenEXR Project.
3 |
4 | #pragma once
5 |
6 | #include
7 |
8 | extern int random_int (int range = std::numeric_limits::max ());
9 | extern float random_float (float range = std::numeric_limits::max ());
10 | extern void random_reseed (int s);
11 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/scanline_with_deepscanline_type.exr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/src/test/OpenEXRTest/scanline_with_deepscanline_type.exr
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/scanline_with_deeptiled_type.exr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/src/test/OpenEXRTest/scanline_with_deeptiled_type.exr
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/scanline_with_tiledimage_type.exr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/src/test/OpenEXRTest/scanline_with_tiledimage_type.exr
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testAttributes.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #include
7 |
8 | void testAttributes (const std::string& tempDir);
9 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testBackwardCompatibility.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef TESTBACKWARDCOMPATIBILITY_H_
7 | #define TESTBACKWARDCOMPATIBILITY_H_
8 |
9 | #include
10 |
11 | void testBackwardCompatibility (const std::string& tempDir);
12 |
13 | #endif /* TESTBACKWARDCOMPATIBILITY_H_ */
14 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testBadTypeAttributes.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Weta Digital, Ltd and Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef TEST_BAD_TYPE_ATTRIBUTES
7 | #define TEST_BAD_TYPE_ATTRIBUTES
8 |
9 | #include
10 |
11 | void testBadTypeAttributes (const std::string& tempDir);
12 |
13 | #endif
14 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testCRgba.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #include
7 |
8 | void testCRgba (const std::string& tempDir);
9 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testChannels.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #include
7 |
8 | void testChannels (const std::string& tempDir);
9 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testCompositeDeepScanLine.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Weta Digital, Ltd and Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef TESTCOMPOSITEDEEPSCANLINE_H_
7 | #define TESTCOMPOSITEDEEPSCANLINE_H_
8 |
9 | #include
10 |
11 | void testCompositeDeepScanLine (const std::string& tempDir);
12 |
13 | #endif /* TESTCOMPOSITEDEEPSCANLINE_H_ */
14 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testCompression.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #include
7 |
8 | void testCompression (const std::string& tempDir);
9 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testCompressionApi.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #include
7 |
8 | void testCompressionApi (const std::string& tempDir);
9 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testConversion.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #include
7 |
8 | void testConversion (const std::string& tempDir);
9 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testCopyDeepScanLine.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef TESTCOPYDEEPSCANLINE_H_
7 | #define TESTCOPYDEEPSCANLINE_H_
8 |
9 | #include
10 |
11 | void testCopyDeepScanLine (const std::string& tempDir);
12 |
13 | #endif /* TESTCOPYDEEPSCANLINE_H_ */
14 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testCopyDeepTiled.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef TESTCOPYDEEPTILED_H_
7 | #define TESTCOPYDEEPTILED_H_
8 |
9 | #include
10 |
11 | void testCopyDeepTiled (const std::string& tempDir);
12 |
13 | #endif /* TESTCOPYDEEPTILED_H_ */
14 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testCopyMultiPartFile.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef TESTCOPYMULTIPARTFILE_H_
7 | #define TESTCOPYMULTIPARTFILE_H_
8 |
9 | #include
10 |
11 | void testCopyMultiPartFile (const std::string& tempDir);
12 |
13 | #endif /* TESTCOPYMULTIPARTFILE_H_ */
14 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testCopyPixels.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #include
7 |
8 | void testCopyPixels (const std::string& tempDir);
9 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testCpuId.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | void testCpuId (const std::string&);
7 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testCustomAttributes.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #include
7 |
8 | void testCustomAttributes (const std::string& tempDir);
9 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testDeepScanLineBasic.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef TESTDEEPSCANLINEBASIC_H_
7 | #define TESTDEEPSCANLINEBASIC_H_
8 |
9 | #include
10 |
11 | void testDeepScanLineBasic (const std::string& tempDir);
12 |
13 | #endif /* TESTDEEPSCANLINEBASIC_H_ */
14 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testDeepScanLineHuge.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef TESTDEEPSCANLINEHUGE_H_
7 | #define TESTDEEPSCANLINEHUGE_H_
8 |
9 | void testDeepScanLineHuge (const std::string& tempDir);
10 |
11 | #endif /* TESTDEEPSCANLINEHUGE_H_ */
12 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testDeepScanLineMultipleRead.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Weta Digital, Ltd and Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef TESTDEEPSCANLINEMULTIPLEREAD_H_
7 | #define TESTDEEPSCANLINEMULTIPLEREAD_H_
8 |
9 | #include
10 |
11 | void testDeepScanLineMultipleRead (const std::string& tempDir);
12 |
13 | #endif /* DEEPSCANLINEMULTIPLEREAD_H_ */
14 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testDeepTiledBasic.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef TESTDEEPTILEDBASIC_H_
7 | #define TESTDEEPTILEDBASIC_H_
8 |
9 | #include
10 |
11 | void testDeepTiledBasic (const std::string& tempDir);
12 |
13 | #endif /* TESTDEEPTILEDBASIC_H_ */
14 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testExistingStreams.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #include
7 |
8 | void testExistingStreams (const std::string& tempDir);
9 | void testExistingStreamsUTF8 (const std::string& tempDir);
10 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testFutureProofing.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Weta Digital, Ltd and Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef TESTFUTUREPROOFING_H_
7 | #define TESTFUTUREPROOFING_H_
8 |
9 | #include
10 | void testFutureProofing (const std::string& tempDir);
11 |
12 | #endif
13 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testHeader.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #include
7 |
8 | void testHeader (const std::string& tempDir);
9 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testHuf.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #include
7 |
8 | void testHuf (const std::string& tempDir);
9 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testIDManifest.h:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: BSD-3-Clause
2 | // Copyright (c) Contributors to the OpenEXR Project.
3 |
4 | #ifndef _TEST_ID_MANIFEST_
5 | #define _TEST_ID_MANIFEST_
6 |
7 | #include
8 |
9 | void testIDManifest (const std::string& tempDir);
10 |
11 | #endif
12 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testInputPart.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef TESTINPUTPART_H_
7 | #define TESTINPUTPART_H_
8 |
9 | #include
10 |
11 | void testInputPart (const std::string& tempDir);
12 |
13 | #endif /* TESTINPUTPART_H_ */
14 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testIsComplete.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #include
7 |
8 | void testIsComplete (const std::string& tempDir);
9 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testLargeDataWindowOffsets.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Weta Digital, Ltd and Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef _TEST_LARGE_DATA_WINDOW_OFFSETS_
7 | #define _TEST_LARGE_DATA_WINDOW_OFFSETS_
8 |
9 | void testLargeDataWindowOffsets (const std::string& tempDir);
10 |
11 | #endif
12 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testLineOrder.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #include
7 |
8 | void testLineOrder (const std::string& tempDir);
9 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testLut.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #include
7 |
8 | void testLut (const std::string& tempDir);
9 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testMagic.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #include
7 |
8 | void testMagic (const std::string& tempDir);
9 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testMalformedImages.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #include
7 |
8 | void testMalformedImages (const std::string& tempDir);
9 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testMultiPartApi.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef TESTMULTIPARTAPI_H_
7 | #define TESTMULTIPARTAPI_H_
8 |
9 | #include
10 |
11 | void testMultiPartApi (const std::string& tempDir);
12 |
13 | #endif /* TESTMULTIPARTAPI_H_ */
14 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testMultiPartFileMixingBasic.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef TESTMULTIPARTFILEMIXINGBASIC_H_
7 | #define TESTMULTIPARTFILEMIXINGBASIC_H_
8 |
9 | #include
10 |
11 | void testMultiPartFileMixingBasic (const std::string& tempDir);
12 |
13 | #endif /* TESTMULTIPARTFILEMIXINGBASIC_H_ */
14 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testMultiPartSharedAttributes.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef TESTMULTIPARTSHAREDATTRIBUTES_H_
7 | #define TESTMULTIPARTSHAREDATTRIBUTES_H_
8 |
9 | #include
10 |
11 | void testMultiPartSharedAttributes (const std::string& tempDir);
12 |
13 | #endif /* TESTMULTIPARTSHAREDATTRIBUTES_H_ */
14 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testMultiPartThreading.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef TESTMULTIPARTTHREADING_H_
7 | #define TESTMULTIPARTTHREADING_H_
8 |
9 | #include
10 |
11 | void testMultiPartThreading (const std::string& tempDir);
12 |
13 | #endif /* TESTMULTIPARTTHREADING_H_ */
14 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testMultiScanlinePartThreading.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef TESTMULTISCANLINEPARTTHREADING_H_
7 | #define TESTMULTISCANLINEPARTTHREADING_H_
8 |
9 | #include
10 |
11 | void testMultiScanlinePartThreading (const std::string& tempDir);
12 |
13 | #endif /* TESTMULTISCANLINEPARTTHREADING_H_ */
14 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testMultiTiledPartThreading.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef TESTMULTITILEDPARTTHREADING_H_
7 | #define TESTMULTITILEDPARTTHREADING_H_
8 |
9 | #include
10 |
11 | void testMultiTiledPartThreading (const std::string& tempDir);
12 |
13 | #endif /* TESTMULTITILEDPARTTHREADING_H_ */
14 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testMultiView.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Weta Digital, Ltd and Contributors to the OpenEXR Project.
4 | //
5 |
6 | #include
7 |
8 | void testMultiView (const std::string& tempDir);
9 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testNativeFormat.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #include
7 |
8 | void testNativeFormat (const std::string& tempDir);
9 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testOptimized.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #include
7 |
8 | void testOptimized (const std::string& tempDir);
9 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testOptimizedInterleavePatterns.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Weta Digital, Ltd and Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef _TEST_OPTIMIZED_INTERLEAVE_PATTERNS_
7 | #define _TEST_OPTIMIZED_INTERLEAVE_PATTERNS_
8 |
9 | void testOptimizedInterleavePatterns (const std::string& tempDir);
10 |
11 | #endif
12 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testPartHelper.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Weta Digital, Ltd and Contributors to the OpenEXR Project.
4 | //
5 |
6 | #ifndef TESTPARTHELPER_H_
7 | #define TESTPARTHELPER_H_
8 |
9 | #include
10 | void testPartHelper (const std::string& tempDir);
11 |
12 | #endif /* TESTPARTHELPER_H_ */
13 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testPreviewImage.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #include
7 |
8 | void testPreviewImage (const std::string& tempDir);
9 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testRgba.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #include
7 |
8 | void testRgba (const std::string& tempDir);
9 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testRgbaThreading.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #include
7 |
8 | void testRgbaThreading (const std::string& tempDir);
9 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testRle.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) DreamWorks Animation LLC and Contributors of the OpenEXR Project
4 | //
5 |
6 | #ifndef TESTRLE_H_
7 | #define TESTRLE_H_
8 |
9 | #include
10 | void testRle (const std::string&);
11 |
12 | #endif /* TESTRLE_H_ */
13 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testSampleImages.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #include
7 |
8 | void testSampleImages (const std::string& tempDir);
9 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testScanLineApi.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #include
7 |
8 | void testScanLineApi (const std::string& tempDir);
9 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testSharedFrameBuffer.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #include
7 |
8 | void testSharedFrameBuffer (const std::string& tempDir);
9 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testStandardAttributes.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #include
7 |
8 | void testStandardAttributes (const std::string& tempDir);
9 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testTiledCompression.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #include
7 |
8 | void testTiledCompression (const std::string& tempDir);
9 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testTiledCopyPixels.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #include
7 |
8 | void testTiledCopyPixels (const std::string& tempDir);
9 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testTiledLineOrder.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #include
7 |
8 | void testTiledLineOrder (const std::string& tempDir);
9 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testTiledRgba.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #include
7 |
8 | void testTiledRgba (const std::string& tempDir);
9 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testTiledYa.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #include
7 |
8 | void testTiledYa (const std::string& tempDir);
9 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testWav.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #include
7 |
8 | void testWav (const std::string& tempDir);
9 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testXdr.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #include
7 |
8 | void testXdr (const std::string& tempDir);
9 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/testYca.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #include
7 |
8 | void testYca (const std::string& tempDir);
9 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/test_native1.exr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/src/test/OpenEXRTest/test_native1.exr
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/test_native2.exr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/src/test/OpenEXRTest/test_native2.exr
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/tiled.exr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/src/test/OpenEXRTest/tiled.exr
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/tiled_with_deepscanline_type.exr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/src/test/OpenEXRTest/tiled_with_deepscanline_type.exr
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/tiled_with_deeptile_type.exr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/src/test/OpenEXRTest/tiled_with_deeptile_type.exr
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/tiled_with_scanlineimage_type.exr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/src/test/OpenEXRTest/tiled_with_scanlineimage_type.exr
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/tmpDir.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #if defined(ANDROID) || defined(__ANDROID_API__)
7 | # define IMF_TMP_DIR "/sdcard/"
8 | # define IMF_PATH_SEPARATOR "/"
9 | #elif defined(_WIN32) || defined(_WIN64)
10 | # define IMF_TMP_DIR \
11 | "" // TODO: get this from GetTempPath() or env var $TEMP or $TMP
12 | # define IMF_PATH_SEPARATOR "\\"
13 | # include // for _mkdir, _rmdir
14 | # define mkdir(name, mode) _mkdir (name)
15 | # define rmdir _rmdir
16 | #else
17 | # include // for mkdir
18 | # define IMF_TMP_DIR "/var/tmp/"
19 | # define IMF_PATH_SEPARATOR "/"
20 | #endif
21 |
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/v1.7.test.1.exr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/src/test/OpenEXRTest/v1.7.test.1.exr
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/v1.7.test.interleaved.exr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/src/test/OpenEXRTest/v1.7.test.interleaved.exr
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/v1.7.test.planar.exr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/src/test/OpenEXRTest/v1.7.test.planar.exr
--------------------------------------------------------------------------------
/src/test/OpenEXRTest/v1.7.test.tiled.exr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/src/test/OpenEXRTest/v1.7.test.tiled.exr
--------------------------------------------------------------------------------
/src/test/OpenEXRUtilTest/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: BSD-3-Clause
2 | # Copyright (c) Contributors to the OpenEXR Project.
3 |
4 | add_executable(OpenEXRUtilTest
5 | main.cpp
6 | testFlatImage.cpp
7 | testFlatImage.h
8 | testDeepImage.cpp
9 | testDeepImage.h
10 | testIO.cpp
11 | testIO.h
12 | )
13 | target_include_directories(OpenEXRUtilTest PRIVATE ../OpenEXRTest)
14 | target_link_libraries(OpenEXRUtilTest OpenEXR::OpenEXRUtil)
15 | set_target_properties(OpenEXRUtilTest PROPERTIES
16 | RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
17 | )
18 | if(WIN32 AND BUILD_SHARED_LIBS)
19 | target_compile_definitions(OpenEXRUtilTest PRIVATE OPENEXR_DLL)
20 | endif()
21 |
22 | function(DEFINE_OPENEXR_UTIL_TESTS)
23 | foreach(curtest IN LISTS ARGN)
24 | # CMAKE_CROSSCOMPILING_EMULATOR is necessary to support cross-compiling (ex: to win32 from mingw and running tests with wine)
25 | add_test(NAME OpenEXRUtil.${curtest} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $ ${curtest})
26 | endforeach()
27 | endfunction()
28 |
29 | define_openexr_util_tests(
30 | testFlatImage
31 | testDeepImage
32 | testIO
33 | )
34 |
--------------------------------------------------------------------------------
/src/test/OpenEXRUtilTest/testDeepImage.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #include
7 |
8 | void testDeepImage (const std::string& tempDir);
9 |
--------------------------------------------------------------------------------
/src/test/OpenEXRUtilTest/testFlatImage.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #include
7 |
8 | void testFlatImage (const std::string& tempDir);
9 |
--------------------------------------------------------------------------------
/src/test/OpenEXRUtilTest/testIO.h:
--------------------------------------------------------------------------------
1 | //
2 | // SPDX-License-Identifier: BSD-3-Clause
3 | // Copyright (c) Contributors to the OpenEXR Project.
4 | //
5 |
6 | #include
7 |
8 | void testIO (const std::string& tempDir);
9 |
--------------------------------------------------------------------------------
/src/test/bin/do_run.py:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: BSD-3-Clause
2 | # Copyright (c) Contributors to the OpenEXR Project.
3 |
4 | from subprocess import PIPE, run
5 | import sys
6 |
7 | def do_run(cmd, expect_error = False, data=None):
8 | cmd_string = " ".join(cmd)
9 | print(f"running {cmd_string}")
10 | if data:
11 | result = run (cmd, input=data, stdout=PIPE, stderr=PIPE)
12 | else:
13 | result = run (cmd, stdout=PIPE, stderr=PIPE, universal_newlines=True)
14 | if expect_error:
15 | if result.returncode != 0:
16 | return result
17 | print(f"error: {cmd_string} did not fail as expected")
18 | print(f"stdout:\n{result.stdout}")
19 | print(f"stderr:\n{result.stderr}")
20 | sys.exit(1)
21 |
22 | if result.returncode != 0:
23 | print(f"error: {cmd_string} failed: returncode={result.returncode}")
24 | print(f"stdout:\n{result.stdout}")
25 | print(f"stderr:\n{result.stderr}")
26 | sys.exit(1)
27 | return result
28 |
--------------------------------------------------------------------------------
/src/test/bin/test_exrcheck.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 |
3 | # SPDX-License-Identifier: BSD-3-Clause
4 | # Copyright (c) Contributors to the OpenEXR Project.
5 |
6 | import sys, os
7 | from do_run import do_run
8 |
9 | print(f"testing exrcheck: {' '.join(sys.argv)}")
10 |
11 | exrcheck = sys.argv[1]
12 | image_files = sys.argv[2:]
13 |
14 | if not os.path.isfile(exrcheck) or not os.access(exrcheck, os.X_OK):
15 | print(f"error: no such file: {exrcheck}")
16 | sys.exit(1)
17 |
18 | for exr_file in image_files:
19 |
20 | do_run([exrcheck, exr_file])
21 | do_run([exrcheck, "-m", exr_file])
22 | do_run([exrcheck, "-t", exr_file])
23 | do_run([exrcheck, "-s", exr_file])
24 | do_run([exrcheck, "-c", exr_file])
25 |
26 | print("success.")
27 | sys.exit(0)
28 |
29 |
--------------------------------------------------------------------------------
/src/test/bin/test_images/11.deep.exr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/src/test/bin/test_images/11.deep.exr
--------------------------------------------------------------------------------
/src/test/bin/test_images/11.deep.exr.txt:
--------------------------------------------------------------------------------
1 | channels : id
2 | hashScheme: MurmurHash3_32
3 | encoding : id
4 | lifetime : stable
5 | model material
6 | 523461226 circle/medium blue
7 | 683859976 circle/small blue
8 | 1552124883 blob/medium yellow
9 | 2202049807 blob/small green
10 | 2303547305 blob/small blue
11 | 2433329986 circle/big yellow
12 | 2698909330 blob/small yellow
13 | 3182339638 circle/small green
14 | 3236172513 blob/big white
15 | 3626859046 blob/big yellow
16 | 3739501011 circle/small yellow
17 |
18 |
19 | channels : particleid
20 | hashScheme: none
21 | encoding : id
22 | lifetime : shot
23 |
24 | raw text size : 332
25 | uncompressed size: 262
26 | compressed size : 233
27 |
--------------------------------------------------------------------------------
/src/test/bin/test_images/42.deep.exr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/src/test/bin/test_images/42.deep.exr
--------------------------------------------------------------------------------
/src/test/bin/test_images/42.deep.exr.txt:
--------------------------------------------------------------------------------
1 | channels : modelid
2 | hashScheme: MurmurHash3_32
3 | encoding : id
4 | lifetime : stable
5 | model
6 | 147148503 circle/medium
7 | 1252544961 blob/medium
8 | 1917926828 circle/big
9 | 3170049167 circle/small
10 | 3338960663 blob/small
11 | 3411631724 blob/big
12 |
13 |
14 | channels : materialid
15 | hashScheme: MurmurHash3_32
16 | encoding : id
17 | lifetime : stable
18 | material
19 | 489905694 green
20 | 507819813 yellow
21 | 2340321182 cyan
22 | 3683581971 white
23 | 3905155331 blue
24 | 3947898621 red
25 | 4179825792 magenta
26 |
27 |
28 | channels : particleid
29 | hashScheme: none
30 | encoding : id
31 | lifetime : shot
32 |
33 | raw text size : 283
34 | uncompressed size: 334
35 | compressed size : 261
36 |
--------------------------------------------------------------------------------
/src/test/bin/test_images/64.deep.exr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/src/test/bin/test_images/64.deep.exr
--------------------------------------------------------------------------------
/src/test/bin/test_images/64.deep.exr.txt:
--------------------------------------------------------------------------------
1 | channels : model.id0,model.id1
2 | hashScheme: MurmurHash3_64
3 | encoding : id2
4 | lifetime : stable
5 | model
6 | 97515517976221909 circle/medium
7 | 742872203054891411 circle/small
8 | 6191538508622224182 blob/medium
9 | 6650017402852611196 blob/big
10 | 9225128210671310825 circle/big
11 | 17511330964567540308 blob/small
12 |
13 |
14 | channels : material.id0,material.id1
15 | hashScheme: MurmurHash3_64
16 | encoding : id2
17 | lifetime : stable
18 | material
19 | 2470908766622966990 blue
20 | 2785030139762120788 white
21 | 7547477443120661518 yellow
22 | 14272065673169316387 red
23 | 14592330334135882751 green
24 | 16918673263070507131 magenta
25 | 18125959695279297844 cyan
26 |
27 |
28 | channels : particleid
29 | hashScheme: none
30 | encoding : id
31 | lifetime : shot
32 |
33 | raw text size : 432
34 | uncompressed size: 415
35 | compressed size : 333
36 |
--------------------------------------------------------------------------------
/src/test/bin/test_images/Flowers.exr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/src/test/bin/test_images/Flowers.exr
--------------------------------------------------------------------------------
/src/test/bin/test_images/GammaChart.exr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/src/test/bin/test_images/GammaChart.exr
--------------------------------------------------------------------------------
/src/test/bin/test_images/GrayRampsHorizontal.exr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/src/test/bin/test_images/GrayRampsHorizontal.exr
--------------------------------------------------------------------------------
/src/test/bin/test_images/WavyLinesCube.exr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/src/test/bin/test_images/WavyLinesCube.exr
--------------------------------------------------------------------------------
/src/test/bin/test_images/WavyLinesLatLong.exr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/src/test/bin/test_images/WavyLinesLatLong.exr
--------------------------------------------------------------------------------
/src/test/bin/test_images/multipart.0001.exr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/src/test/bin/test_images/multipart.0001.exr
--------------------------------------------------------------------------------
/src/test/bin/test_images/multivariate.deep.exr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/src/test/bin/test_images/multivariate.deep.exr
--------------------------------------------------------------------------------
/src/test/bin/test_images/objectid.deep.exr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/src/test/bin/test_images/objectid.deep.exr
--------------------------------------------------------------------------------
/src/test/bin/test_images/objectid.deep.exr.txt:
--------------------------------------------------------------------------------
1 | no manifest found
2 |
--------------------------------------------------------------------------------
/src/test/oss-fuzz/openexr_exrcheck_fuzzer.cc:
--------------------------------------------------------------------------------
1 |
2 | //
3 | // SPDX-License-Identifier: BSD-3-Clause
4 | // Copyright (c) Contributors to the OpenEXR Project.
5 | //
6 |
7 |
8 | #include
9 | #include
10 | #include
11 |
12 | using OPENEXR_IMF_NAMESPACE::checkOpenEXRFile;
13 | extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
14 | {
15 | checkOpenEXRFile ((const char*) data , size , true , true, false);
16 | return 0;
17 | }
18 |
19 |
--------------------------------------------------------------------------------
/src/test/oss-fuzz/openexr_exrcorecheck_fuzzer.cc:
--------------------------------------------------------------------------------
1 |
2 | //
3 | // SPDX-License-Identifier: BSD-3-Clause
4 | // Copyright (c) Contributors to the OpenEXR Project.
5 | //
6 |
7 | #include
8 | #include
9 | #include
10 |
11 | using OPENEXR_IMF_NAMESPACE::checkOpenEXRFile;
12 | extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
13 | {
14 | checkOpenEXRFile ((const char*) data , size , true , true, true);
15 | return 0;
16 | }
17 |
18 |
--------------------------------------------------------------------------------
/src/wrappers/python/tests/test.exr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/src/wrappers/python/tests/test.exr
--------------------------------------------------------------------------------
/src/wrappers/python/tests/test_import.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 |
3 | # SPDX-License-Identifier: BSD-3-Clause
4 | # Copyright (c) Contributors to the OpenEXR Project.
5 |
6 | import pytest
7 |
8 | def test_import():
9 | import OpenEXR
10 | assert OpenEXR.__name__ == "OpenEXR"
11 |
--------------------------------------------------------------------------------
/src/wrappers/python/tests/test_minimal.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 |
3 | # SPDX-License-Identifier: BSD-3-Clause
4 | # Copyright (c) Contributors to the OpenEXR Project.
5 |
6 | import pytest
7 |
8 | def test_import():
9 | import OpenEXR
10 | assert OpenEXR.__name__ == "OpenEXR"
11 |
--------------------------------------------------------------------------------
/website/_templates/layout.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {% extends '!layout.html' %}
5 |
6 | {% block footer %}
7 |
8 | 
9 |
10 | Copyright © OpenEXR a Series of LF Projects, LLC.
11 | For web site terms of use, trademark policy and other project policies
12 | please see https://lfprojects.org.
13 |
14 | {% endblock %}
15 |
--------------------------------------------------------------------------------
/website/bin/exrcheck.rst:
--------------------------------------------------------------------------------
1 | ..
2 | SPDX-License-Identifier: BSD-3-Clause
3 | Copyright Contributors to the OpenEXR Project.
4 |
5 | exrcheck
6 | ########
7 |
8 | ::
9 |
10 | exrcheck [options] imagefile [imagefile ...]
11 |
12 | Description
13 | -----------
14 | Read exr files to validate their contents and the correct behavior of the software.
15 |
16 | Options:
17 | --------
18 |
19 | .. describe:: -m
20 |
21 | avoid excessive memory allocation (some files will not be fully checked)
22 |
23 | .. describe:: -t
24 |
25 | avoid spending excessive time (some files will not be fully checked)
26 |
27 | .. describe:: -s
28 |
29 | use stream API instead of file API
30 |
31 | .. describe:: -c
32 |
33 | add core library checks
34 |
35 | .. describe:: -h, --help
36 |
37 | print this message
38 |
39 | .. describe:: --version
40 |
41 | print version information
42 |
43 |
--------------------------------------------------------------------------------
/website/bin/exrheader.rst:
--------------------------------------------------------------------------------
1 | ..
2 | SPDX-License-Identifier: BSD-3-Clause
3 | Copyright Contributors to the OpenEXR Project.
4 |
5 | exrheader
6 | #########
7 |
8 | ::
9 |
10 | exrheader imagefile [imagefile ...]
11 |
12 | Description
13 | -----------
14 |
15 | Read exr files and print the values of header attributes.
16 |
17 | Options:
18 | --------
19 |
20 | .. describe:: -h, --help
21 |
22 | print this message
23 |
24 | .. describe:: --version
25 |
26 | print version information
27 |
28 |
--------------------------------------------------------------------------------
/website/bin/exrinfo.rst:
--------------------------------------------------------------------------------
1 | ..
2 | SPDX-License-Identifier: BSD-3-Clause
3 | Copyright Contributors to the OpenEXR Project.
4 |
5 | exrinfo
6 | #######
7 |
8 | ::
9 |
10 | exrinfo [-v|--verbose] [-a|--all-metadata] [-s|--strict] [ ...]
11 |
12 | Description
13 | -----------
14 |
15 | Read exr files and print values of header attributes
16 |
17 | Options:
18 | --------
19 |
20 | .. describe:: -s, --strict
21 |
22 | strict mode
23 |
24 | .. describe:: -a, --all-metadata
25 |
26 | print all metadata
27 |
28 | .. describe:: -v, --verbose
29 |
30 | verbose mode
31 |
32 | .. describe:: -h, --help
33 |
34 | print this message
35 |
36 | .. describe:: --version
37 |
38 | print version information
39 |
40 |
--------------------------------------------------------------------------------
/website/bin/exrmanifest.rst:
--------------------------------------------------------------------------------
1 | ..
2 | SPDX-License-Identifier: BSD-3-Clause
3 | Copyright Contributors to the OpenEXR Project.
4 |
5 | exrmanifest
6 | ###########
7 |
8 | ::
9 |
10 | exrmanifest [options] imagefile [imagefile ...]
11 |
12 |
13 | Description
14 | -----------
15 |
16 | Read exr files and print the contents of the embedded manifest.
17 |
18 | Options:
19 | --------
20 |
21 | .. describe:: -v, --verbose
22 |
23 | verbose mode
24 |
25 | .. describe:: -h, --help
26 |
27 | print this message
28 |
29 | .. describe:: --version
30 |
31 | print version information
32 |
33 | Report bugs via https://github.com/AcademySoftwareFoundation/openexr/issues or email security@openexr.com
34 |
--------------------------------------------------------------------------------
/website/bin/exrmultipart.rst:
--------------------------------------------------------------------------------
1 | ..
2 | SPDX-License-Identifier: BSD-3-Clause
3 | Copyright Contributors to the OpenEXR Project.
4 |
5 | exrmultipart
6 | ############
7 |
8 | ::
9 |
10 | exrmultipart -combine -i input.exr[:partnum][::partname] [input2.exr[:partnum]][::partname] [...] -o outfile.exr [options]
11 |
12 | or: exrmultipart -separate -i infile.exr -o outfileBaseName [options]
13 |
14 | or: exrmultipart -convert -i infile.exr -o outfile.exr [options]
15 |
16 | Description
17 | -----------
18 |
19 | Combine or split multipart data
20 |
21 | Options:
22 | --------
23 |
24 | .. describe:: -override [0/1]
25 |
26 | * 0 = do not override conflicting shared attributes [default]
27 |
28 | * 1 = override conflicting shared attributes
29 |
30 | .. describe:: -view name
31 |
32 | (after specifying -i) assign following inputs to view 'name'
33 |
34 | .. describe:: -h, --help
35 |
36 | print this message
37 |
38 | .. describe:: --version
39 |
40 | print version information
41 |
42 |
--------------------------------------------------------------------------------
/website/concepts.rst:
--------------------------------------------------------------------------------
1 | ..
2 | SPDX-License-Identifier: BSD-3-Clause
3 | Copyright Contributors to the OpenEXR Project.
4 |
5 | .. _OpenEXR Concepts:
6 |
7 | OpenEXR Concepts
8 | ################
9 |
10 | .. toctree::
11 | :caption: Concepts
12 | :maxdepth: 2
13 |
14 | TechnicalIntroduction
15 | StandardAttributes
16 | MultiViewOpenEXR
17 | SceneLinear
18 | InterpretingDeepPixels
19 | TheoryDeepPixels
20 | DeepIDsSpecification
21 | OpenEXRFileLayout
22 | PortingGuide
23 | SymbolVisibility
24 |
--------------------------------------------------------------------------------
/website/downloads/sample.exr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/website/downloads/sample.exr
--------------------------------------------------------------------------------
/website/images/InterpretingDeepPixels1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/website/images/InterpretingDeepPixels1.png
--------------------------------------------------------------------------------
/website/images/InterpretingDeepPixels2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/website/images/InterpretingDeepPixels2.png
--------------------------------------------------------------------------------
/website/images/InterpretingDeepPixels3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/website/images/InterpretingDeepPixels3.png
--------------------------------------------------------------------------------
/website/images/OpenEXR_Reel_2020.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/website/images/OpenEXR_Reel_2020.png
--------------------------------------------------------------------------------
/website/images/cubeMap.big.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/website/images/cubeMap.big.png
--------------------------------------------------------------------------------
/website/images/cubeMap.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/website/images/cubeMap.png
--------------------------------------------------------------------------------
/website/images/drawing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/website/images/drawing.png
--------------------------------------------------------------------------------
/website/images/envcube.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/website/images/envcube.png
--------------------------------------------------------------------------------
/website/images/imageprocessing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/website/images/imageprocessing.png
--------------------------------------------------------------------------------
/website/images/latlong.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/website/images/latlong.png
--------------------------------------------------------------------------------
/website/images/latlongMap.big.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/website/images/latlongMap.big.png
--------------------------------------------------------------------------------
/website/images/latlongMap.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/website/images/latlongMap.png
--------------------------------------------------------------------------------
/website/images/mapped.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/website/images/mapped.jpg
--------------------------------------------------------------------------------
/website/images/news.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/website/images/news.png
--------------------------------------------------------------------------------
/website/images/openexr-fav.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/website/images/openexr-fav.ico
--------------------------------------------------------------------------------
/website/images/openexr-horizontal-color.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/website/images/openexr-horizontal-color.png
--------------------------------------------------------------------------------
/website/images/openexr-logo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/website/images/openexr-logo.jpg
--------------------------------------------------------------------------------
/website/images/openexr-stacked-color.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/website/images/openexr-stacked-color.png
--------------------------------------------------------------------------------
/website/images/raw.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/website/images/raw.jpg
--------------------------------------------------------------------------------
/website/images/screenwin.big.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/website/images/screenwin.big.png
--------------------------------------------------------------------------------
/website/images/screenwin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/website/images/screenwin.png
--------------------------------------------------------------------------------
/website/images/tiles.big.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/website/images/tiles.big.png
--------------------------------------------------------------------------------
/website/images/tiles.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/website/images/tiles.png
--------------------------------------------------------------------------------
/website/images/twosamples.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/website/images/twosamples.png
--------------------------------------------------------------------------------
/website/images/windowExample1.big.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/website/images/windowExample1.big.png
--------------------------------------------------------------------------------
/website/images/windowExample1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/website/images/windowExample1.png
--------------------------------------------------------------------------------
/website/images/windowExample1.small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/website/images/windowExample1.small.png
--------------------------------------------------------------------------------
/website/images/windowExample2.big.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/website/images/windowExample2.big.png
--------------------------------------------------------------------------------
/website/images/windowExample2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr/ef8cfd2afe67f12250507160d189215d568aeaad/website/images/windowExample2.png
--------------------------------------------------------------------------------
/website/latest_news_title.rst:
--------------------------------------------------------------------------------
1 | .. |latest-news-title| replace:: **March 23, 2025 - OpenEXR 3.3.3 Released**
--------------------------------------------------------------------------------
/website/requirements.txt:
--------------------------------------------------------------------------------
1 | sphinx == 7.1.2
2 | breathe
3 | sphinx-press-theme
4 |
--------------------------------------------------------------------------------
/website/src/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: BSD-3-Clause
2 | # Copyright (c) Contributors to the OpenEXR Project.
3 |
4 | add_executable(website_src all.cpp)
5 | target_link_libraries(website_src OpenEXR::OpenEXR)
6 | set_target_properties(website_src PROPERTIES
7 | RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
8 | )
9 |
--------------------------------------------------------------------------------
/website/src/C_IStream.cpp:
--------------------------------------------------------------------------------
1 | class C_IStream: public IStream
2 | {
3 | public:
4 | C_IStream (FILE *file, const char fileName[]):
5 | IStream (fileName), _file (file) {}
6 |
7 | virtual bool read (char c[], int n);
8 | virtual uint64_t tellg ();
9 | virtual void seekg (uint64_t pos);
10 | virtual void clear ();
11 |
12 | private:
13 |
14 | FILE * _file;
15 | };
16 |
--------------------------------------------------------------------------------
/website/src/C_IStream_clear.cpp:
--------------------------------------------------------------------------------
1 | void
2 | C_IStream::clear ()
3 | {
4 | clearerr (_file);
5 | }
6 |
--------------------------------------------------------------------------------
/website/src/C_IStream_read.cpp:
--------------------------------------------------------------------------------
1 | bool
2 | C_IStream::read (char c[], int n)
3 | {
4 | if (n != static_cast (fread (c, 1, n, _file)))
5 | {
6 | // fread() failed, but the return value does not distinguish
7 | // between I/O errors and end of file, so we call ferror() to
8 | // determine what happened.
9 |
10 | if (ferror (_file))
11 | throwErrnoExc();
12 | else
13 | throw InputExc ("Unexpected end of file.");
14 | }
15 |
16 | return !feof (_file);
17 | }
18 |
19 |
--------------------------------------------------------------------------------
/website/src/C_IStream_seekg.cpp:
--------------------------------------------------------------------------------
1 | void
2 | C_IStream::seekg (uint64_t pos)
3 | {
4 | clearerr (_file);
5 | fseek (_file, pos, SEEK_SET);
6 | }
7 |
8 |
--------------------------------------------------------------------------------
/website/src/C_IStream_tellg.cpp:
--------------------------------------------------------------------------------
1 | uint64_t
2 | C_IStream::tellg ()
3 | {
4 | return ftell (_file);
5 | }
6 |
7 |
--------------------------------------------------------------------------------
/website/src/IStream.cpp:
--------------------------------------------------------------------------------
1 | class IStream
2 | {
3 | public:
4 | virtual ~IStream ();
5 |
6 | virtual bool read (char c[], int n) = 0;
7 | virtual uint64_t tellg () = 0;
8 | virtual void seekg (uint64_t pos) = 0;
9 | virtual void clear ();
10 | const char * fileName () const;
11 | virtual bool isMemoryMapped () const;
12 | virtual char * readMemoryMapped (int n);
13 |
14 | protected:
15 | IStream (const char fileName[]);
16 | private:
17 |
18 | // ...
19 | };
20 |
21 |
--------------------------------------------------------------------------------
/website/src/MemoryMappedIStream.cpp:
--------------------------------------------------------------------------------
1 | class MemoryMappedIStream: public IStream
2 | {
3 | public:
4 | MemoryMappedIStream (const char fileName[]);
5 |
6 | virtual ~MemoryMappedIStream ();
7 |
8 | virtual bool isMemoryMapped () const;
9 | virtual char * readMemoryMapped (int n);
10 | virtual bool read (char c[], int n);
11 | virtual uint64_t tellg ();
12 |
13 | virtual void seekg (uint64_t pos);
14 |
15 | private:
16 |
17 | char * _buffer;
18 | uint64_t _fileLength;
19 | uint64_t _readPosition;
20 | };
21 |
22 |
--------------------------------------------------------------------------------
/website/src/MemoryMappedIStream_constructor.cpp:
--------------------------------------------------------------------------------
1 | MemoryMappedIStream::MemoryMappedIStream (const char fileName[])
2 | : IStream (fileName),
3 | _buffer (0),
4 | _fileLength (0),
5 | _readPosition (0)
6 | {
7 | int file = open (fileName, O_RDONLY);
8 |
9 | if (file < 0)
10 | THROW_ERRNO ("Cannot open file \"" << fileName << "\".");
11 |
12 | struct stat stat;
13 | fstat (file, &stat);
14 |
15 | _fileLength = stat.st_size;
16 |
17 | _buffer = (char *) mmap (0, _fileLength, PROT_READ, MAP_PRIVATE, file, 0);
18 |
19 | close (file);
20 |
21 | if (_buffer == MAP_FAILED)
22 | THROW_ERRNO ("Cannot memory-map file \"" << fileName << "\".");
23 | }
24 |
--------------------------------------------------------------------------------
/website/src/MemoryMappedIStream_destructor.cpp:
--------------------------------------------------------------------------------
1 | bool
2 | MemoryMappedIStream::isMemoryMapped () const
3 | {
4 | return true;
5 | }
6 |
--------------------------------------------------------------------------------
/website/src/MemoryMappedIStream_isMemoryMapped.cpp:
--------------------------------------------------------------------------------
1 | MemoryMappedIStream::~MemoryMappedIStream()
2 | {
3 | munmap (_buffer, _fileLength);
4 | }
5 |
--------------------------------------------------------------------------------
/website/src/MemoryMappedIStream_read.cpp:
--------------------------------------------------------------------------------
1 | bool
2 | MemoryMappedIStream::read (char c[], int n)
3 | {
4 | if (_readPosition >= _fileLength)
5 | throw InputExc ("Unexpected end of file.");
6 |
7 | if (_readPosition + n > _fileLength)
8 | throw InputExc ("Reading past end of file.");
9 |
10 | memcpy (c, _buffer + _readPosition, n);
11 |
12 | _readPosition += n;
13 |
14 | return _readPosition < _fileLength;
15 |
16 | }
17 |
18 | uint64_t
19 | MemoryMappedIStream::tellg ()
20 | {
21 | return _readPosition;
22 | }
23 |
24 | void
25 | MemoryMappedIStream::seekg (uint64_t pos)
26 | {
27 | _readPosition = pos;
28 | }
29 |
30 |
--------------------------------------------------------------------------------
/website/src/MemoryMappedIStream_readMemoryMapped.cpp:
--------------------------------------------------------------------------------
1 | char *
2 | MemoryMappedIStream::readMemoryMapped (int n)
3 | {
4 | if (_readPosition >= _fileLength)
5 | throw InputExc ("Unexpected end of file.");
6 |
7 | if (_readPosition + n > _fileLength)
8 | throw InputExc ("Reading past end of file.");
9 |
10 | char *data = _buffer + _readPosition;
11 |
12 | _readPosition += n;
13 |
14 | return data;
15 |
16 | }
17 |
18 |
--------------------------------------------------------------------------------
/website/src/compression.cpp:
--------------------------------------------------------------------------------
1 |
2 | int width=1; int height=1;
3 | // [begin setCompression]
4 | Header header (width, height);
5 | header.channels().insert ("G", Channel (HALF));
6 | header.channels().insert ("Z", Channel (FLOAT));
7 | header.compression() = ZIP_COMPRESSION;
8 | header.zipCompressionLevel() = 6;
9 | // [end setCompression]
10 |
11 | // [begin setCompressionDefault]
12 | setDefaultZipCompressionLevel (6);
13 | setDefaultDwaCompressionLevel (45.0f);
14 | // [end setCompressionDefault]
--------------------------------------------------------------------------------
/website/src/envmap.cpp:
--------------------------------------------------------------------------------
1 |
2 | char fileName[] = "";
3 | // [begin hasEnvmap]
4 | RgbaInputFile file (fileName);
5 |
6 | if (hasEnvmap (file.header()))
7 | {
8 | Envmap type = envmap (file.header());
9 | // ...
10 | }
11 | // [end hasEnvmap]
12 |
--------------------------------------------------------------------------------
/website/src/exrreader/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.12)
2 | project(exrreader)
3 | find_package(OpenEXR REQUIRED)
4 |
5 | add_executable(${PROJECT_NAME} exrreader.cpp)
6 | target_link_libraries(${PROJECT_NAME} OpenEXR::OpenEXR)
7 |
8 |
--------------------------------------------------------------------------------
/website/src/exrreader/build.sh:
--------------------------------------------------------------------------------
1 | $ mkdir _build
2 | $ cmake -S . -B _build -DCMAKE_PREFIX_PATH=
3 | $ cmake --build _build
4 |
--------------------------------------------------------------------------------
/website/src/exrreader/exrreader.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | #include
4 |
5 | int
6 | main()
7 | {
8 | try {
9 | Imf::RgbaInputFile file("hello.exr");
10 | Imath::Box2i dw = file.dataWindow();
11 | int width = dw.max.x - dw.min.x + 1;
12 | int height = dw.max.y - dw.min.y + 1;
13 |
14 | Imf::Array2D pixels(width, height);
15 |
16 | file.setFrameBuffer(&pixels[0][0], 1, width);
17 | file.readPixels(dw.min.y, dw.max.y);
18 |
19 | } catch (const std::exception &e) {
20 | std::cerr << "error reading image file hello.exr:" << e.what() << std::endl;
21 | return 1;
22 | }
23 |
24 | return 0;
25 | }
26 |
--------------------------------------------------------------------------------
/website/src/exrwriter/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.12)
2 | project(exrwriter)
3 | find_package(OpenEXR REQUIRED)
4 |
5 | add_executable(${PROJECT_NAME} exrwriter.cpp)
6 | target_link_libraries(${PROJECT_NAME} OpenEXR::OpenEXR)
7 |
8 |
--------------------------------------------------------------------------------
/website/src/exrwriter/build.sh:
--------------------------------------------------------------------------------
1 | $ mkdir _build
2 | $ cmake -S . -B _build -DCMAKE_PREFIX_PATH=
3 | $ cmake --build _build
4 |
--------------------------------------------------------------------------------
/website/src/exrwriter/exrwriter.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | #include
4 |
5 | int
6 | main()
7 | {
8 | int width = 10;
9 | int height = 10;
10 |
11 | Imf::Array2D pixels(width, height);
12 | for (int y=0; y& pixels, int& width, int& height)
3 | {
4 | InputFile file (fileName);
5 |
6 | Box2i dw = file.header ().dataWindow ();
7 | width = dw.max.x - dw.min.x + 1;
8 | height = dw.max.y - dw.min.y + 1;
9 |
10 | int dx = dw.min.x;
11 | int dy = dw.min.y;
12 |
13 | pixels.resizeErase (height, width);
14 |
15 | FrameBuffer frameBuffer;
16 |
17 | frameBuffer.insert (
18 | "G",
19 | Slice (
20 | HALF,
21 | (char*) &pixels[-dy][-dx].g,
22 | sizeof (pixels[0][0]) * 1,
23 | sizeof (pixels[0][0]) * width));
24 |
25 | frameBuffer.insert (
26 | "Z",
27 | Slice (
28 | FLOAT,
29 | (char*) &pixels[-dy][-dx].z,
30 | sizeof (pixels[0][0]) * 1,
31 | sizeof (pixels[0][0]) * width));
32 |
33 | file.setFrameBuffer (frameBuffer);
34 | file.readPixels (dw.min.y, dw.max.y);
35 | }
36 |
--------------------------------------------------------------------------------
/website/src/readRgba1.cpp:
--------------------------------------------------------------------------------
1 | void
2 | readRgba1 (
3 | const char fileName[], Array2D& pixels, int& width, int& height)
4 | {
5 | RgbaInputFile file (fileName);
6 | Box2i dw = file.dataWindow ();
7 |
8 | width = dw.max.x - dw.min.x + 1;
9 | height = dw.max.y - dw.min.y + 1;
10 | pixels.resizeErase (height, width);
11 |
12 | file.setFrameBuffer (&pixels[0][0] - dw.min.x - dw.min.y * width, 1, width);
13 | file.readPixels (dw.min.y, dw.max.y);
14 | }
15 |
--------------------------------------------------------------------------------
/website/src/readRgba2.cpp:
--------------------------------------------------------------------------------
1 | void
2 | readRgba2 (const char fileName[])
3 | {
4 | RgbaInputFile file (fileName);
5 | Box2i dw = file.dataWindow ();
6 |
7 | int width = dw.max.x - dw.min.x + 1;
8 | Array2D pixels (10, width);
9 |
10 | while (dw.min.y <= dw.max.y)
11 | {
12 | file.setFrameBuffer (
13 | &pixels[0][0] - dw.min.x - dw.min.y * width, 1, width);
14 |
15 | file.readPixels (dw.min.y, min (dw.min.y + 9, dw.max.y));
16 |
17 | // processPixels (pixels)
18 |
19 | dw.min.y += 10;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/website/src/readRgbaFILE.cpp:
--------------------------------------------------------------------------------
1 | void
2 | readRgbaFILE (
3 | FILE* cfile,
4 | const char fileName[],
5 | Array2D& pixels,
6 | int& width,
7 | int& height)
8 | {
9 | C_IStream istr (cfile, fileName);
10 |
11 | RgbaInputFile file (istr);
12 |
13 | Box2i dw = file.dataWindow ();
14 |
15 | width = dw.max.x - dw.min.x + 1;
16 | height = dw.max.y - dw.min.y + 1;
17 | pixels.resizeErase (height, width);
18 |
19 | file.setFrameBuffer (&pixels[0][0] - dw.min.x - dw.min.y * width, 1, width);
20 |
21 | file.readPixels (dw.min.y, dw.max.y);
22 | }
23 |
--------------------------------------------------------------------------------
/website/src/readTiledRgba1.cpp:
--------------------------------------------------------------------------------
1 | void
2 | readTiledRgba1 (
3 | const char fileName[], Array2D& pixels, int& width, int& height)
4 | {
5 | TiledRgbaInputFile in (fileName);
6 |
7 | Box2i dw = in.dataWindow ();
8 | width = dw.max.x - dw.min.x + 1;
9 | height = dw.max.y - dw.min.y + 1;
10 |
11 | int dx = dw.min.x;
12 | int dy = dw.min.y;
13 |
14 | pixels.resizeErase (height, width);
15 |
16 | in.setFrameBuffer (&pixels[-dy][-dx], 1, width);
17 | in.readTiles (0, in.numXTiles () - 1, 0, in.numYTiles () - 1);
18 | }
19 |
--------------------------------------------------------------------------------
/website/src/structDefinitions.cpp:
--------------------------------------------------------------------------------
1 | // [Rgba definition begin]
2 | struct Rgba
3 | {
4 | half r; // red
5 | half g; // green
6 | half b; // blue
7 | half a; // alpha (opacity)
8 | };
9 | // [Rgba definition end]
10 |
11 | // [GZ definition begin]
12 | struct GZ
13 | {
14 | half g;
15 | float z;
16 | };
17 | // [GZ definition end]
--------------------------------------------------------------------------------
/website/src/tileDescription.cpp:
--------------------------------------------------------------------------------
1 | // Enums defined in ImfTileDescription.h
2 | // enum LevelMode
3 | // {
4 | // ONE_LEVEL,
5 | // MIPMAP_LEVELS,
6 | // RIPMAP_LEVELS
7 | // };
8 |
9 | // enum LevelRoundingMode
10 | // {
11 | // ROUND_DOWN,
12 | // ROUND_UP
13 | // };
14 |
15 | class TileDescription
16 | {
17 | public:
18 | unsigned int xSize; // size of a tile in the x dimension
19 | unsigned int ySize; // size of a tile in the y dimension
20 | LevelMode mode;
21 | LevelRoundingMode roundingMode;
22 | // ... (methods omitted)
23 | };
--------------------------------------------------------------------------------
/website/src/validExrFile.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | // [begin validFileCheck]
3 | bool
4 | isThisAnOpenExrFile (const char fileName[])
5 | {
6 | std::ifstream f (fileName, std::ios_base::binary);
7 |
8 | char b[4];
9 | f.read (b, sizeof (b));
10 |
11 | return !!f && b[0] == 0x76 && b[1] == 0x2f && b[2] == 0x31 && b[3] == 0x01;
12 | }
13 | // [end validFileCheck]
14 | // [begin completeFileCheck]
15 | bool
16 | isComplete (const char fileName[])
17 | {
18 | InputFile in (fileName);
19 | return in.isComplete();
20 | }
21 | // [end completeFileCheck]
22 |
23 | // [begin otherValidFileChecks]
24 | bool isOpenExrFile (const char fileName[], bool &isTiled);
25 |
26 | bool isOpenExrFile (const char fileName[]);
27 |
28 | bool isTiledOpenExrFile (const char fileName[]);
29 |
30 | bool isOpenExrFile (IStream &is, bool &isTiled);
31 |
32 | bool isOpenExrFile (IStream &is);
33 |
34 | bool isTiledOpenExrFile (IStream &is);
35 | // [end otherValidFileChecks]
--------------------------------------------------------------------------------
/website/src/writeRgba1.cpp:
--------------------------------------------------------------------------------
1 | // [begin writeRgba1]
2 | void
3 | writeRgba1 (const char fileName[], const Rgba* pixels, int width, int height)
4 | {
5 | RgbaOutputFile file (fileName, width, height, WRITE_RGBA); // 1
6 | file.setFrameBuffer (pixels, 1, width); // 2
7 | file.writePixels (height); // 3
8 | }
9 | // [end writeRgba1]
10 |
11 | void
12 | tryCatchExample (const char fileName[], const Rgba* pixels, int width, int height) {
13 | // [begin tryCatchExample]
14 | try
15 | {
16 | writeRgba1 (fileName, pixels, width, height);
17 | }
18 | catch (const std::exception &exc)
19 | {
20 | std::cerr << exc.what() << std::endl;
21 | }
22 | // [end tryCatchExample]
23 | }
--------------------------------------------------------------------------------
/website/src/writeRgba2.cpp:
--------------------------------------------------------------------------------
1 | // [begin writeRgba2]
2 | void
3 | writeRgba2 (
4 | const char fileName[],
5 | const Rgba* pixels,
6 | int width,
7 | int height,
8 | const Box2i& dataWindow)
9 | {
10 | Box2i displayWindow (V2i (0, 0), V2i (width - 1, height - 1));
11 | RgbaOutputFile file (fileName, displayWindow, dataWindow, WRITE_RGBA);
12 | file.setFrameBuffer (pixels, 1, width);
13 | file.writePixels (dataWindow.max.y - dataWindow.min.y + 1);
14 | }
15 | // [end writeRgba2]
16 |
17 | void
18 | writeRgba2ResizeFrameBuffer (
19 | const char fileName[],
20 | const Rgba* pixels,
21 | int width,
22 | int height,
23 | const Box2i& dataWindow)
24 | {
25 | Box2i displayWindow (V2i (0, 0), V2i (width - 1, height - 1));
26 | RgbaOutputFile file (fileName, displayWindow, dataWindow, WRITE_RGBA);
27 | // [begin writeRgba2ResizeFrameBuffer]
28 | int dwWidth = dataWindow.max.x - dataWindow.min.x + 1;
29 | file.setFrameBuffer (pixels - dataWindow.min.x - dataWindow.min.y * dwWidth, 1, dwWidth);
30 | // [end writeRgba2ResizeFrameBuffer]
31 | }
32 |
33 |
--------------------------------------------------------------------------------
/website/src/writeRgba3.cpp:
--------------------------------------------------------------------------------
1 | void
2 | writeRgba3 (
3 | const char fileName[],
4 | const Rgba* pixels,
5 | int width,
6 | int height,
7 | const char comments[],
8 | const M44f& cameraTransform)
9 | {
10 | Header header (width, height);
11 |
12 | header.insert ("comments", StringAttribute (comments));
13 | header.insert ("cameraTransform", M44fAttribute (cameraTransform));
14 |
15 | RgbaOutputFile file (fileName, header, WRITE_RGBA);
16 | file.setFrameBuffer (pixels, 1, width);
17 | file.writePixels (height);
18 | }
19 |
--------------------------------------------------------------------------------
/website/src/writeRgbaMT.cpp:
--------------------------------------------------------------------------------
1 | void
2 | writeRgbaMT (const char fileName[], const Rgba* pixels, int width, int height)
3 | {
4 | setGlobalThreadCount (4);
5 |
6 | RgbaOutputFile file (fileName, width, height, WRITE_RGBA);
7 | file.setFrameBuffer (pixels, 1, width);
8 | file.writePixels (height);
9 | }
10 |
--------------------------------------------------------------------------------
/website/src/writeRgbaWithPreview1.cpp:
--------------------------------------------------------------------------------
1 | void
2 | writeRgbaWithPreview1 (
3 | const char fileName[], const Array2D& pixels, int width, int height)
4 | {
5 | Array2D previewPixels; // 1
6 |
7 | int previewWidth; // 2
8 | int previewHeight; // 3
9 |
10 | makePreviewImage (
11 | pixels,
12 | width,
13 | height, // 4
14 | previewPixels,
15 | previewWidth,
16 | previewHeight);
17 |
18 | Header header (width, height); // 5
19 | header.setPreviewImage (
20 | PreviewImage (previewWidth, previewHeight, &previewPixels[0][0]));
21 |
22 | RgbaOutputFile file (fileName, header, WRITE_RGBA); // 7
23 | file.setFrameBuffer (&pixels[0][0], 1, width); // 8
24 | file.writePixels (height); // 9
25 | }
26 |
--------------------------------------------------------------------------------
/website/src/writeTiledRgbaMIP1.cpp:
--------------------------------------------------------------------------------
1 | void
2 | writeTiledRgbaMIP1 (
3 | const char fileName[], int width, int height, int tileWidth, int tileHeight)
4 | {
5 | TiledRgbaOutputFile out (
6 | fileName,
7 | width,
8 | height,
9 | tileWidth,
10 | tileHeight,
11 | MIPMAP_LEVELS,
12 | ROUND_DOWN,
13 | WRITE_RGBA); // 1
14 |
15 | Array2D pixels (height, width); // 2
16 |
17 | out.setFrameBuffer (&pixels[0][0], 1, width); // 3
18 |
19 | for (int level = 0; level < out.numLevels (); ++level) // 4
20 | {
21 | generatePixels (pixels, width, height, level); // 5
22 |
23 | out.writeTiles (
24 | 0,
25 | out.numXTiles (level) - 1, // 6
26 | 0,
27 | out.numYTiles (level) - 1,
28 | level);
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/website/src/writeTiledRgbaONE1.cpp:
--------------------------------------------------------------------------------
1 | void
2 | writeTiledRgbaONE1 (
3 | const char fileName[],
4 | const Rgba* pixels,
5 | int width,
6 | int height,
7 | int tileWidth,
8 | int tileHeight)
9 | {
10 | TiledRgbaOutputFile out (
11 | fileName,
12 | width,
13 | height, // image size
14 | tileWidth,
15 | tileHeight, // tile size
16 | ONE_LEVEL, // level mode
17 | ROUND_DOWN, // rounding mode
18 | WRITE_RGBA); // channels in file // 1
19 | out.setFrameBuffer (pixels, 1, width); // 2
20 | out.writeTiles (0, out.numXTiles () - 1, 0, out.numYTiles () - 1); // 3
21 | }
22 |
--------------------------------------------------------------------------------
/website/src/writeTiledRgbaONE2.cpp:
--------------------------------------------------------------------------------
1 | void
2 | writeTiledRgbaONE2 (
3 | const char fileName[], int width, int height, int tileWidth, int tileHeight)
4 | {
5 | TiledRgbaOutputFile out (
6 | fileName,
7 | width,
8 | height, // image size
9 | tileWidth,
10 | tileHeight, // tile size
11 | ONE_LEVEL, // level mode
12 | ROUND_DOWN, // rounding mode
13 | WRITE_RGBA); // channels in file // 1
14 |
15 | Array2D pixels (tileHeight, tileWidth); // 2
16 |
17 | for (int tileY = 0; tileY < out.numYTiles (); ++tileY) // 3
18 | {
19 | for (int tileX = 0; tileX < out.numXTiles (); ++tileX) // 4
20 | {
21 | Box2i range = out.dataWindowForTile (tileX, tileY); // 5
22 |
23 | generatePixels (pixels, width, height, range); // 6
24 |
25 | out.setFrameBuffer (
26 | &pixels[-range.min.y][-range.min.x],
27 | 1, // xStride
28 | tileWidth); // yStride // 7
29 |
30 | out.writeTile (tileX, tileY); // 8
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/website/src/writeTiledRgbaRIP1.cpp:
--------------------------------------------------------------------------------
1 | void
2 | writeTiledRgbaRIP1 (
3 | const char fileName[], int width, int height, int tileWidth, int tileHeight)
4 | {
5 | TiledRgbaOutputFile out (
6 | fileName,
7 | width,
8 | height,
9 | tileWidth,
10 | tileHeight,
11 | RIPMAP_LEVELS,
12 | ROUND_DOWN,
13 | WRITE_RGBA);
14 |
15 | Array2D pixels (height, width);
16 |
17 | out.setFrameBuffer (&pixels[0][0], 1, width);
18 |
19 | for (int yLevel = 0; yLevel < out.numYLevels (); ++yLevel)
20 | {
21 | for (int xLevel = 0; xLevel < out.numXLevels (); ++xLevel)
22 | {
23 | generatePixels (pixels, width, height, xLevel, yLevel);
24 |
25 | out.writeTiles (
26 | 0,
27 | out.numXTiles (xLevel) - 1,
28 | 0,
29 | out.numYTiles (yLevel) - 1,
30 | xLevel,
31 | yLevel);
32 | }
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/website/test_images/ScanLines/Cannon.rst:
--------------------------------------------------------------------------------
1 | ..
2 | SPDX-License-Identifier: BSD-3-Clause
3 | Copyright Contributors to the OpenEXR Project.
4 |
5 | Cannon.exr
6 | ##########
7 |
8 | :download:`https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr-images/main/ScanLines/Cannon.exr`
9 |
10 | .. image:: https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr-images/main/ScanLines/Cannon.jpg
11 | :target: https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr-images/main/ScanLines/Cannon.exr
12 |
13 | .. list-table::
14 | :align: left
15 |
16 | * - screenWindowWidth
17 | - 1
18 | * - dataWindow
19 | - (0 0) - (779 565)
20 | * - owner
21 | - Copyright 2006 Industrial Light & Magic
22 | * - screenWindowCenter
23 | - (0 0)
24 | * - displayWindow
25 | - (0 0) - (779 565)
26 | * - channels
27 | - B, G, R
28 | * - lineOrder
29 | - increasing y
30 | * - pixelAspectRatio
31 | - 1
32 | * - compression
33 | - b44
34 | * - type
35 | - scanlineimage
36 |
--------------------------------------------------------------------------------
/website/test_images/ScanLines/Desk.rst:
--------------------------------------------------------------------------------
1 | ..
2 | SPDX-License-Identifier: BSD-3-Clause
3 | Copyright Contributors to the OpenEXR Project.
4 |
5 | Desk.exr
6 | ########
7 |
8 | :download:`https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr-images/main/ScanLines/Desk.exr`
9 |
10 | .. image:: https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr-images/main/ScanLines/Desk.jpg
11 | :target: https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr-images/main/ScanLines/Desk.exr
12 |
13 | .. list-table::
14 | :align: left
15 |
16 | * - screenWindowWidth
17 | - 1
18 | * - dataWindow
19 | - (0 0) - (643 873)
20 | * - screenWindowCenter
21 | - (0 0)
22 | * - displayWindow
23 | - (0 0) - (643 873)
24 | * - channels
25 | - A, B, G, R
26 | * - lineOrder
27 | - increasing y
28 | * - pixelAspectRatio
29 | - 1
30 | * - compression
31 | - piz
32 | * - type
33 | - scanlineimage
34 |
--------------------------------------------------------------------------------
/website/test_images/TestImages/GammaChart.rst:
--------------------------------------------------------------------------------
1 | ..
2 | SPDX-License-Identifier: BSD-3-Clause
3 | Copyright Contributors to the OpenEXR Project.
4 |
5 | GammaChart.exr
6 | ##############
7 |
8 | :download:`https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr-images/main/TestImages/GammaChart.exr`
9 |
10 | .. image:: https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr-images/main/TestImages/GammaChart.jpg
11 | :target: https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr-images/main/TestImages/GammaChart.exr
12 |
13 | .. list-table::
14 | :align: left
15 |
16 | * - screenWindowWidth
17 | - 1
18 | * - dataWindow
19 | - (0 0) - (799 799)
20 | * - screenWindowCenter
21 | - (0 0)
22 | * - displayWindow
23 | - (0 0) - (799 799)
24 | * - channels
25 | - B, G, R
26 | * - lineOrder
27 | - increasing y
28 | * - pixelAspectRatio
29 | - 1
30 | * - compression
31 | - pxr24
32 | * - type
33 | - scanlineimage
34 |
--------------------------------------------------------------------------------
/website/test_images/TestImages/GrayRampsDiagonal.rst:
--------------------------------------------------------------------------------
1 | ..
2 | SPDX-License-Identifier: BSD-3-Clause
3 | Copyright Contributors to the OpenEXR Project.
4 |
5 | GrayRampsDiagonal.exr
6 | #####################
7 |
8 | :download:`https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr-images/main/TestImages/GrayRampsDiagonal.exr`
9 |
10 | .. image:: https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr-images/main/TestImages/GrayRampsDiagonal.jpg
11 | :target: https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr-images/main/TestImages/GrayRampsDiagonal.exr
12 |
13 | .. list-table::
14 | :align: left
15 |
16 | * - screenWindowWidth
17 | - 1
18 | * - dataWindow
19 | - (0 0) - (799 799)
20 | * - screenWindowCenter
21 | - (0 0)
22 | * - displayWindow
23 | - (0 0) - (799 799)
24 | * - channels
25 | - Y
26 | * - lineOrder
27 | - increasing y
28 | * - pixelAspectRatio
29 | - 1
30 | * - compression
31 | - pxr24
32 | * - type
33 | - scanlineimage
34 |
--------------------------------------------------------------------------------
/website/test_images/TestImages/RgbRampsDiagonal.rst:
--------------------------------------------------------------------------------
1 | ..
2 | SPDX-License-Identifier: BSD-3-Clause
3 | Copyright Contributors to the OpenEXR Project.
4 |
5 | RgbRampsDiagonal.exr
6 | ####################
7 |
8 | :download:`https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr-images/main/TestImages/RgbRampsDiagonal.exr`
9 |
10 | .. image:: https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr-images/main/TestImages/RgbRampsDiagonal.jpg
11 | :target: https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr-images/main/TestImages/RgbRampsDiagonal.exr
12 |
13 | .. list-table::
14 | :align: left
15 |
16 | * - screenWindowWidth
17 | - 1
18 | * - dataWindow
19 | - (0 0) - (799 799)
20 | * - screenWindowCenter
21 | - (0 0)
22 | * - displayWindow
23 | - (0 0) - (799 799)
24 | * - channels
25 | - B, G, R
26 | * - lineOrder
27 | - increasing y
28 | * - pixelAspectRatio
29 | - 1
30 | * - compression
31 | - pxr24
32 | * - type
33 | - scanlineimage
34 |
--------------------------------------------------------------------------------
/website/toc_redirect.rst:
--------------------------------------------------------------------------------
1 | ..
2 | SPDX-License-Identifier: BSD-3-Clause
3 | Copyright Contributors to the OpenEXR Project.
4 |
5 | .. toctree::
6 | :hidden:
7 |
8 | concepts
9 |
10 | .. toctree::
11 | :hidden:
12 |
13 | tools
14 |
15 | .. toctree::
16 | :hidden:
17 |
18 | API
19 |
20 | .. toctree::
21 | :hidden:
22 |
23 | python
24 |
25 | .. toctree::
26 | :hidden:
27 |
28 | install
29 |
30 | .. toctree::
31 | :hidden:
32 |
33 | license
34 |
35 | .. toctree::
36 | :hidden:
37 |
38 | news
39 |
40 | .. toctree::
41 | :hidden:
42 |
43 | about
44 |
45 | .. toctree::
46 | :hidden:
47 |
48 | test_images/index
49 |
50 |
51 |
52 |
53 |
54 |
55 |
--------------------------------------------------------------------------------