Compare commits

...
Author SHA1 Message Date
fa521922c9 Create RB-2.3.2 release (#1940)
* Fix ssse3 detection typo (#1929)

Signed-off-by: Mark Reid <mindmark@gmail.com>
(cherry picked from commit 003b6a19e6)
Signed-off-by: Doug Walker <doug.walker@autodesk.com>

* fix: use system `include pystring.h` for `ConfigUtils.cpp` (#1921)

Signed-off-by: Rui Chen <rui@chenrui.dev>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
(cherry picked from commit e747e9c0bd)
Signed-off-by: Doug Walker <doug.walker@autodesk.com>

* Fix narrowing conversion error on riscv64 (#1924)

Signed-off-by: phancb <nxhsdu@qq.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
(cherry picked from commit a95febc70e)
Signed-off-by: Doug Walker <doug.walker@autodesk.com>

* Add manylinux_2_28 Python wheels (#1933)

Signed-off-by: Rémi Achard <remiachard@gmail.com>
Co-authored-by: Michael Dolan <michdolan@gmail.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
(cherry picked from commit f9250992eb)
Signed-off-by: Doug Walker <doug.walker@autodesk.com>

* Enhance ociochecklut to print the output after each step in a multi-t… (#1925)

* Enhance ociochecklut to print the output after each step in a multi-transform LUT

Signed-off-by: pylee <penne.y.lee@intel.com>

* Review feedback to enable printe of transforms list when using -s flag.

Signed-off-by: pylee <penne.y.lee@intel.com>

* Print transform description for each step instead.

Signed-off-by: pylee <penne.y.lee@intel.com>

---------

Signed-off-by: pylee <penne.y.lee@intel.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
(cherry picked from commit aadf595946)
Signed-off-by: Doug Walker <doug.walker@autodesk.com>

* Fix AVX instructions used on CPUs that don't support them (#1935)

* Fix AVX instructions used on CPUs that don't support them

It's supposed to check all bits are enabled, not just one of them.
This causes a crash using OpenColorIO on older CPUs.

Thanks to Ray Molenkamp for help tracking this down.

Signed-off-by: Brecht Van Lommel <brecht@blender.org>

* Fix another case pointed out in review

Signed-off-by: Brecht Van Lommel <brecht@blender.org>

---------

Signed-off-by: Brecht Van Lommel <brecht@blender.org>
(cherry picked from commit 0c90ded166)
Signed-off-by: Doug Walker <doug.walker@autodesk.com>

* Increment library version to 2.3.2

Signed-off-by: Doug Walker <doug.walker@autodesk.com>

---------

Signed-off-by: Mark Reid <mindmark@gmail.com>
Signed-off-by: Doug Walker <doug.walker@autodesk.com>
Signed-off-by: Rui Chen <rui@chenrui.dev>
Signed-off-by: phancb <nxhsdu@qq.com>
Signed-off-by: Rémi Achard <remiachard@gmail.com>
Signed-off-by: pylee <penne.y.lee@intel.com>
Signed-off-by: Brecht Van Lommel <brecht@blender.org>
Co-authored-by: Mark Reid <mindmark@gmail.com>
Co-authored-by: Rui Chen <rui@chenrui.dev>
Co-authored-by: phanium <91544758+phanen@users.noreply.github.com>
Co-authored-by: Rémi Achard <remiachard@gmail.com>
Co-authored-by: Michael Dolan <michdolan@gmail.com>
Co-authored-by: PenneLee <penne.y.lee@intel.com>
Co-authored-by: Brecht Van Lommel <brecht@blender.org>
2024-01-30 02:11:35 -05:00
+3 92db29b9e7 Integrate main into RB-2.3 branch and update library version (#1918)
* Fix support for X86 32-bit (#1842)

Signed-off-by: Mark Reid <mindmark@gmail.com>
(cherry picked from commit 16b3157f2e)
Signed-off-by: Doug Walker <Doug.Walker@autodesk.com>

* Add some small arm neon optimizations (#1847)

* Remove unused includes

Signed-off-by: Mark Reid <mindmark@gmail.com>

* Use neon hardware support for f16 conversions

Signed-off-by: Mark Reid <mindmark@gmail.com>

* Add some small neon optimizations
use blendv,floor and fma intrinsics were possible

Signed-off-by: Mark Reid <mindmark@gmail.com>

---------

Signed-off-by: Mark Reid <mindmark@gmail.com>
(cherry picked from commit 14f0afa2d8)
Signed-off-by: Doug Walker <Doug.Walker@autodesk.com>

* Add links to new release notes documentation (#1848)

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
(cherry picked from commit 87126fad7f)
Signed-off-by: Doug Walker <Doug.Walker@autodesk.com>

* Changing version to 2.4.0 (#1852)

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
(cherry picked from commit 381d1fc371)
Signed-off-by: Doug Walker <Doug.Walker@autodesk.com>

* Correctly recover CXX_FLAGS in CheckSupportSSE2.cmake (#1861)

Signed-off-by: Chongyun Lee <uchkks@protonmail.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
(cherry picked from commit c429400170)
Signed-off-by: Doug Walker <Doug.Walker@autodesk.com>

* Fix regression in cccid handling when no value is supplied (#1855)

In v1 of OCIO FileTransforms are able to load .cc files
without specifying a cccid. In v2 this broke causing an
exception to be raised instead of using the first cc found
in the file.

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
(cherry picked from commit c7ad35340a)
Signed-off-by: Doug Walker <Doug.Walker@autodesk.com>

* Fix missing cache id reset on look update. (#1873)

Signed-off-by: Eric Renaud-Houde <eric.renaud.houde@gmail.com>
(cherry picked from commit dddbee023d)
Signed-off-by: Doug Walker <Doug.Walker@autodesk.com>

* ocioview: Curve Inspector improvements (#1845)

* Curve inspector improvements

- Move README to root app folder
- Change curve inspector grid to always render as a square with 10 segments.
- Add transform init callback to set new transform subscriptions to the current viewer if set to passthrough.

Signed-off-by: Michael Dolan <michdolan@gmail.com>

* Improve log range calculation

Signed-off-by: Michael Dolan <michdolan@gmail.com>

* Improve channel sample comparison

Signed-off-by: Michael Dolan <michdolan@gmail.com>

* Update src/apps/ocioview/ocioview/inspect/curve_inspector.py

Signed-off-by: Michael Dolan <michdolan@gmail.com>

Co-authored-by: Doug Walker <doug.walker@autodesk.com>
Signed-off-by: Michael Dolan <michdolan@gmail.com>

---------

Signed-off-by: Michael Dolan <michdolan@gmail.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
(cherry picked from commit 8add374dad)
Signed-off-by: Doug Walker <Doug.Walker@autodesk.com>

* Fix missing Default View Transform on equal operator (#1886)

Add the missing assignment of the the default view transform when a config is copied using the equal operator

Signed-off-by: Michael De Caria <decariamichael@gmail.com>
Signed-off-by: Doug Walker <doug.walker@autodesk.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
(cherry picked from commit bc8569b2db)
Signed-off-by: Doug Walker <Doug.Walker@autodesk.com>

* Remove circular import caused by typing annotations. (#1882)

Signed-off-by: Thomas Mansencal <thomas.mansencal@gmail.com>
Signed-off-by: Doug Walker <doug.walker@autodesk.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
(cherry picked from commit 1fad4666c3)
Signed-off-by: Doug Walker <Doug.Walker@autodesk.com>

* fix(grammatical): Spelling mistakes (#1892)

Signed-off-by: AbhineshJha <abhinesh_223002@saitm.org>
Signed-off-by: Doug Walker <doug.walker@autodesk.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
(cherry picked from commit 0d00b2c538)
Signed-off-by: Doug Walker <Doug.Walker@autodesk.com>

* Improve ocioview mac support and simplify dependencies (#1853)

* PySide 6, remove imath, add imageio support

Signed-off-by: Rémi Achard <remiachard@gmail.com>

Remove Imath

Signed-off-by: Rémi Achard <remiachard@gmail.com>

Support imageio as fallback for openimageio

Signed-off-by: Rémi Achard <remiachard@gmail.com>

Further adjustments following latest updates

Signed-off-by: Rémi Achard <remiachard@gmail.com>

Fix pixel probe

Signed-off-by: Remi Achard <remiachard@gmail.com>

Add OpenColorIO to requirements

Signed-off-by: Remi Achard <remiachard@gmail.com>

* Fix rebase issue

Signed-off-by: Remi Achard <remiachard@gmail.com>

---------

Signed-off-by: Remi Achard <remiachard@gmail.com>
Signed-off-by: Thomas Mansencal <thomas.mansencal@gmail.com>
Signed-off-by: Michael Dolan <michdolan@gmail.com>
Co-authored-by: Thomas Mansencal <thomas.mansencal@gmail.com>
Co-authored-by: Michael Dolan <michdolan@gmail.com>
(cherry picked from commit 45544ce667)
Signed-off-by: Doug Walker <Doug.Walker@autodesk.com>

* Issue #1874 Cast to unsigned char for isspace. (#1888)

* Issue #1874 Cast to unsigned char for isspace.

Signed-off-by: pylee <penne.y.lee@intel.com>

* Add unit test.

Signed-off-by: pylee <penne.y.lee@intel.com>

* Add test comment as suggested in code review.

Signed-off-by: pylee <penne.y.lee@intel.com>

---------

Signed-off-by: pylee <penne.y.lee@intel.com>
Signed-off-by: Doug Walker <doug.walker@autodesk.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
(cherry picked from commit ed852073f2)
Signed-off-by: Doug Walker <Doug.Walker@autodesk.com>

* Tentative fix for the doxygen installation in the CI (Windows) (#1890)

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
(cherry picked from commit b94a184e4b)
Signed-off-by: Doug Walker <Doug.Walker@autodesk.com>

* Simplify the Findyaml-cpp module (#1891)

This fixes compatibility with yaml-cpp 0.8, which previously failed
because of a `get_property` call with the wrong target name.
I took the liberty to add a few simplifications along the way.

Signed-off-by: Tobias Mayer <tobim@fastmail.fm>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
(cherry picked from commit 1d3b69502e)
Signed-off-by: Doug Walker <Doug.Walker@autodesk.com>

* Skip processor concatenation if the display color space is also data. (#1896)

* Skip processor concatenation if the display view transform is also data.

Signed-off-by: Eric Renaud-Houde <eric.renaud.houde@gmail.com>

* Moved missing display color space exception before processor creation.

Signed-off-by: Eric Renaud-Houde <eric.renaud.houde@gmail.com>

---------

Signed-off-by: Eric Renaud-Houde <eric.renaud.houde@gmail.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
(cherry picked from commit 52b496528c)
Signed-off-by: Doug Walker <Doug.Walker@autodesk.com>

* Restore GPU workflow and minor updates to CI (#1899)

* Restore GPU workflow runs

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Enable undefined behaviour sanitizer

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Fix SIMD option for platform_latest

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Fix install_docs_env on CI workflow (not used at the moment)

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Fix OpenEXR build flag

Signed-off-by: Rémi Achard <remiachard@gmail.com>

---------

Signed-off-by: Rémi Achard <remiachard@gmail.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
(cherry picked from commit 382dcb6ce7)
Signed-off-by: Doug Walker <Doug.Walker@autodesk.com>

* Improve handling of pystring include dir (#1901)

Signed-off-by: Rémi Achard <remiachard@gmail.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
(cherry picked from commit 9078753990)
Signed-off-by: Doug Walker <Doug.Walker@autodesk.com>

* Improve compatibility with minizip-ng COMPAT mode (#1902)

Signed-off-by: Rémi Achard <remiachard@gmail.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
(cherry picked from commit ffd0f70ad5)
Signed-off-by: Doug Walker <Doug.Walker@autodesk.com>

* Fix NamedTransform context var issue (#1905)

Signed-off-by: Doug Walker <doug.walker@autodesk.com>
(cherry picked from commit 4d64b32bc7)
Signed-off-by: Doug Walker <Doug.Walker@autodesk.com>

* Fix env serialization for v1 configs (#1904)

Signed-off-by: Doug Walker <doug.walker@autodesk.com>
(cherry picked from commit 4f4f30e1d3)
Signed-off-by: Doug Walker <Doug.Walker@autodesk.com>

* Fix yaml-cpp build issues (#1907)

Signed-off-by: Rémi Achard <remiachard@gmail.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
(cherry picked from commit 41441bb2e6)
Signed-off-by: Doug Walker <Doug.Walker@autodesk.com>

* Adsk Contrib - Improve heuristics for finding known color spaces (#1913)

* Improve heuristics

Signed-off-by: Doug Walker <doug.walker@autodesk.com>

* Add some comments

Signed-off-by: Doug Walker <doug.walker@autodesk.com>

---------

Signed-off-by: Doug Walker <doug.walker@autodesk.com>
(cherry picked from commit d8852b5d6c)
Signed-off-by: Doug Walker <Doug.Walker@autodesk.com>

* Add Python 3.12 wheels (#1898)

Signed-off-by: Rémi Achard <remiachard@gmail.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
(cherry picked from commit f2cfec330e)
Signed-off-by: Doug Walker <Doug.Walker@autodesk.com>

* Increment library version to 2.3.1

Signed-off-by: Doug Walker <Doug.Walker@autodesk.com>

* Fix wrong RPATH being injected into Python bindings DSO (#1849)

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
(cherry picked from commit ba2b41e309)
Signed-off-by: Doug Walker <Doug.Walker@autodesk.com>

---------

Signed-off-by: Mark Reid <mindmark@gmail.com>
Signed-off-by: Doug Walker <Doug.Walker@autodesk.com>
Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>
Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Signed-off-by: Chongyun Lee <uchkks@protonmail.com>
Signed-off-by: Eric Renaud-Houde <eric.renaud.houde@gmail.com>
Signed-off-by: Michael Dolan <michdolan@gmail.com>
Signed-off-by: Michael De Caria <decariamichael@gmail.com>
Signed-off-by: Doug Walker <doug.walker@autodesk.com>
Signed-off-by: Thomas Mansencal <thomas.mansencal@gmail.com>
Signed-off-by: AbhineshJha <abhinesh_223002@saitm.org>
Signed-off-by: Remi Achard <remiachard@gmail.com>
Signed-off-by: pylee <penne.y.lee@intel.com>
Signed-off-by: Tobias Mayer <tobim@fastmail.fm>
Signed-off-by: Rémi Achard <remiachard@gmail.com>
Co-authored-by: Mark Reid <mindmark@gmail.com>
Co-authored-by: Kevin Wheatley <kevin.wheatley@framestore.com>
Co-authored-by: Cédrik Fuoco <105517825+cedrik-fuoco-adsk@users.noreply.github.com>
Co-authored-by: Uchiha Kakashi <45286352+licy183@users.noreply.github.com>
Co-authored-by: Éric Renaud-Houde <eric.renaud.houde@gmail.com>
Co-authored-by: Michael Dolan <michdolan@gmail.com>
Co-authored-by: Michael De Caria <decariamichael@gmail.com>
Co-authored-by: Thomas Mansencal <thomas.mansencal@gmail.com>
Co-authored-by: Abhinesh <142514166+AbhineshJha@users.noreply.github.com>
Co-authored-by: Rémi Achard <remiachard@gmail.com>
Co-authored-by: PenneLee <pennelee@gmail.com>
Co-authored-by: tobim <tobim+github@fastmail.fm>
2023-12-07 20:02:08 -05:00
Cédrik Fuoco b35fb73b86 Update release type (#1839)
Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
2023-08-31 21:38:17 -04:00
caa20dd196 Adsk contrib - Add support for neon intrinsic integration (#1828)
* Merging the previous ARM Neon branch

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Testing each SIMD variants using a small code snippet and first pass on unifying the way related cmake variables

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Removing the usage of USE_SSE in favor of the new OCIO_USE_SSE2 as they serve the same purpose

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Using try_compile instead of check_cxx_source_compiles as it was given false positive.  Stubbing cpuinfo for Apple ARM plateform. Handling Apple M1 correctly and adding support for SSE2NEON.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Comments clean up and refactor some comments and documentations

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Added something in the documentation for Rosetta and small change in cmake

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Fixing the build under Rosetta and fixing issue in the MacOS CI.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Using try_compile for CheckSupportSSEUsingSSE2NEON to standardize the code and fixed CheckSupport compiler flags.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* use emmintrin.h for only sse2 features

Signed-off-by: Mark Reid <mindmark@gmail.com>
Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Allow F16C to be completely turned off

Signed-off-by: Mark Reid <mindmark@gmail.com>
Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Seperate SIMD test code from code that adds unit tests.

This isolates the compulation units and
avoids executing illegal hardware instructions

Signed-off-by: Mark Reid <mindmark@gmail.com>
Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* remove uneeded checks

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* use software implementations of f16c intrinsics for SSE2

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Added preprocessor checks for ARM as it is needed for universal build on APPLE platform

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Adding missing checks for "not arm64"

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Ease the future maintainability a the new OCIO_USE_xyz be moving the logic into CPUInfoConfig.h.in as well as fixing issue on ARM when building with OCIO_USE_SSE2NEON=OFF.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Fixing some spacing, documentations and making some cmake conditions clearer.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Adding a build in ci_workflow for macos USE_OCIO_SSE2NEON=OFF

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* typo

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Changing back all the macOS (except one) builds to x86_64 only as it takes double the time to do the universal build.
OCIO no longuer build a universal binary by default

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Update the CMakeLists.txt logic to accomodate all scenario and fixing documentations.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Update documentation and remove ocio_use_sse2neon from the CI matrix

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

---------

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Signed-off-by: Mark Reid <mindmark@gmail.com>
Signed-off-by: Cédrik Fuoco <105517825+cedrik-fuoco-adsk@users.noreply.github.com>
Co-authored-by: Mark Reid <mindmark@gmail.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2023-08-31 21:10:29 -04:00
Doug Walker f885f8378e Update documentation for 2.3 release (#1838)
Signed-off-by: Doug Walker <doug.walker@autodesk.com>
2023-08-31 17:10:08 -04:00
Michael DolanandRémi Achard 957ccd513b Add new ocioview app (alpha) (#1816)
* Initial commit of ocioview

Signed-off-by: Michael Dolan <michdolan@gmail.com>

* Improve config version selection and reloading

Signed-off-by: Michael Dolan <michdolan@gmail.com>

* Bug fixes and improved warnings

Signed-off-by: Michael Dolan <michdolan@gmail.com>

* Improve async log and code routing

Signed-off-by: Michael Dolan <michdolan@gmail.com>

* Add settings, improve transform interface

Signed-off-by: Michael Dolan <michdolan@gmail.com>

* Fix viewer and code view update bugs

Signed-off-by: Michael Dolan <michdolan@gmail.com>

* Add README and inspector panel with curve viewer

Signed-off-by: Michael Dolan <michdolan@gmail.com>

* Curve viewer log fix

Signed-off-by: Michael Dolan <michdolan@gmail.com>

* Add curve view labels

Signed-off-by: Michael Dolan <michdolan@gmail.com>

* Update README, improve curve grid rendering

Signed-off-by: Michael Dolan <michdolan@gmail.com>

---------

Signed-off-by: Michael Dolan <michdolan@gmail.com>
Co-authored-by: Rémi Achard <remiachard@gmail.com>
2023-08-31 13:59:33 -04:00
Cédrik FuocoandDoug Walker 6fc9f1f8da Adsk Contrib - Adding CG and Studio config v2.3 (#1836)
* Adding CG and Studio config 2.3

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Changing the configs for the 2.1.0 ones.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Adding OCIO_DEPRECATED for getDefaultBuiltinConfigName

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

---------

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2023-08-30 17:37:41 -04:00
0872a69d05 Missing docs update for new texture dimensions API. (#1833)
* Missing docs update for new texture dimensions API.

Signed-off-by: Eric Renaud-Houde <eric.renaud.houde@gmail.com>

* Further docs update through using frozen docs generation.

Signed-off-by: Eric Renaud-Houde <eric.renaud.houde@gmail.com>

---------

Signed-off-by: Eric Renaud-Houde <eric.renaud.houde@gmail.com>
Co-authored-by: Michael Dolan <michdolan@gmail.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2023-08-30 01:25:24 -04:00
8854e13604 CMake: Fixes for yaml-cpp and generated config (#1823)
* Use `TARGET` for the config if-statements.

The check would always evaluate to true otherwise.

Signed-off-by: Pierre Wendling <pierre.wendling.4@gmail.com>

* Use PACKAGE_PREFIX_DIR from PACKAGE_INIT.

This avoids guessing the path to the prefix.

Signed-off-by: Pierre Wendling <pierre.wendling.4@gmail.com>

* Add compatibility with yaml-cpp 0.8.0 target.

The target was renamed to `yaml-cpp::yaml-cpp`, which breaks when using
the upstream CMake package over the Find module.

Signed-off-by: Pierre Wendling <pierre.wendling.4@gmail.com>

---------

Signed-off-by: Pierre Wendling <pierre.wendling.4@gmail.com>
Co-authored-by: Rémi Achard <remiachard@gmail.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2023-08-29 21:16:30 -04:00
Rémi Achard f9de269fc9 Fix CPUProcessor Dynamic Property API (#1832)
* Add missing hasDynamicProperty and isDynamic methods to CPUProcessor

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Fix cpu test run under address sanitizer

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Add OSL to Python GpuLanguage enum

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Fix Analysis nightly workflow not running

Signed-off-by: Rémi Achard <remiachard@gmail.com>

---------

Signed-off-by: Rémi Achard <remiachard@gmail.com>
2023-08-29 20:21:15 -04:00
Doug WalkerandMichael Dolan 96f528fdfb Fix named transform validation issue (#1829)
Signed-off-by: Doug Walker <doug.walker@autodesk.com>
Co-authored-by: Michael Dolan <michdolan@gmail.com>
2023-08-28 21:42:37 -04:00
Éric Renaud-HoudeandMichael Dolan de6d62d9fb Added GetProcessorFromConfigs variants for displays and views. (#1808)
* Added GetProcessorFromConfigs variants for displays and views.

Signed-off-by: Eric Renaud-Houde <eric.renaud.houde@gmail.com>

* Added display-view processor from two configs tests, moved direction argument last.

Signed-off-by: Eric Renaud-Houde <eric.renaud.houde@gmail.com>

---------

Signed-off-by: Eric Renaud-Houde <eric.renaud.houde@gmail.com>
Co-authored-by: Michael Dolan <michdolan@gmail.com>
2023-08-28 21:06:51 -04:00
Cédrik FuocoandDoug Walker 7ff912d748 Adsk contrib - Ignore info log from inactive colorspaces test (#1822)
* Fixing a warning in one of the python unit test
Removing expected info log in some python unit test
Removing expected info log about inactive colorspace in Cpp unit test

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Using sudio config instead of cg config where it makes sense
renaming unit test inactive_colospace to is_inactive

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

---------

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2023-08-26 18:26:43 -04:00
Rémi Achard 47d758a73b Add command line apps to Python wheel (#1802)
* Add command line apps and remove tests on Python wheel

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Fix warnings on Clang 14

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Python wheel using dynamic linking

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Fix DLL directory

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Check path exists

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Fix DLL lookup on Windows

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Fix linux / mac wheels

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Fix symlinks and make doc optional

Signed-off-by: Rémi Achard <remiachard@gmail.com>

---------

Signed-off-by: Rémi Achard <remiachard@gmail.com>
2023-08-26 16:46:28 -04:00
929d5364c4 Exposed option to allow/disallow 1D texture GPU resources for 1D LUTs. (#1762)
* Exposed option to allow/disallow 1D texture GPU resources for 1D LUTs.

Signed-off-by: Eric Renaud-Houde <eric.renaud.houde@gmail.com>

* New API to get or add 1D LUT textures with the specified dimensions.

Signed-off-by: Eric Renaud-Houde <eric.renaud.houde@gmail.com>

* Fix errors relevealed by CIS related to texture dimension API change.

Signed-off-by: Eric Renaud-Houde <eric.renaud.houde@gmail.com>

* Update gpu shader tests away from now deprecated get/add texture functions.

Signed-off-by: Eric Renaud-Houde <eric.renaud.houde@gmail.com>

* Converted deprecated get/add texture functions from pure virtual to virtual.

Signed-off-by: Eric Renaud-Houde <eric.renaud.houde@gmail.com>

* Commenting out unused parameters on deprecated functions to mitigate warnings.

Signed-off-by: Eric Renaud-Houde <eric.renaud.houde@gmail.com>

* Addressing review notes.

Signed-off-by: Eric Renaud-Houde <eric.renaud.houde@gmail.com>

* Updated python addTexture/getTextures test with latest interface.

Signed-off-by: Eric Renaud-Houde <eric.renaud.houde@gmail.com>

* Further update python and metal samples to new texture dimensions API.

Signed-off-by: Eric Renaud-Houde <eric.renaud.houde@gmail.com>

* Improvements: moved default deprecated implementations to base classes, avoided asserts, fixed typo and naming.

Signed-off-by: Eric Renaud-Houde <eric.renaud.houde@gmail.com>

* Follow spacing/formatting convention arguments.

Signed-off-by: Eric Renaud-Houde <eric.renaud.houde@gmail.com>

* Removed the original addTexture and getTexture methods.

Signed-off-by: Eric Renaud-Houde <eric.renaud.houde@gmail.com>

---------

Signed-off-by: Eric Renaud-Houde <eric.renaud.houde@gmail.com>
Co-authored-by: Rémi Achard <remiachard@gmail.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2023-08-26 00:27:14 -04:00
Cédrik FuocoandDoug Walker 9221ffadb8 Adsk Contrib - Adding support for ocio://cg-config-latest and ocio://studio-config-latest (#1773)
* Added ResolveConfigPath function

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Added support for ocio://cg-config-latest and ocio://studio-config-latest
Added unit tests that covers the new names.
CreateFromBuiltinConfig now supports the URI interface directly as well. Previously, it was supporting only the built-in config name (not a URI). The config name was parsed out of the URI before passing it to CreateFromBuiltConfig by CreateFromFile.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Documentations and typos
Tweaking unit tests
Other minor changes

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* documentations

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Using OCIO_BUILTIN_URI_PREFIX where we can in the code (not in tests)
Adding missing type in PyTypes.cpp
Change name of constexpr to follow the others in OCIO (all in capital)
Moved them to the cpp file since they can be useful in tests
Comments

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* documentation

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Fixing error : ISO C++ forbids converting a string constant to 'char*' that was brought up with Clang under Linux and macos.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Remove deprecation for getDefaultBuiltinConfigName. Will wait for 2.3 release.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Fixing issue with the rebase

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

---------

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Signed-off-by: Cédrik Fuoco <105517825+cedrik-fuoco-adsk@users.noreply.github.com>
Signed-off-by: Doug Walker <doug.walker@autodesk.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2023-08-25 15:42:25 -04:00
Mark ReidandDoug Walker 9cc2486559 Add AVX2/AVX/SSE2 SIMD accelerated 1D/3D LUTS (#1687)
* Add AVX2/AVX/SSE2 accelerated pack/unpacking function templates

Signed-off-by: Mark Reid <mindmark@gmail.com>

* Add AVX2/AVX/SSE2 accelerated Lut3D Tetrahedral implementations

Signed-off-by: Mark Reid <mindmark@gmail.com>

* Add AVX2/AVX/SSE2 accelerated linear Lut1D implementations

Signed-off-by: Mark Reid <mindmark@gmail.com>

* Fix a bunch of typos

Signed-off-by: Mark Reid <mindmark@gmail.com>

* Remove USE_SSE code that is no longer needed

Signed-off-by: Mark Reid <mindmark@gmail.com>

* Use alignas specifier

Signed-off-by: Mark Reid <mindmark@gmail.com>

* Move x86 simd checking code to seperate file

Signed-off-by: Mark Reid <mindmark@gmail.com>

* Fix cacheID test, compare lengths and everything but the cacheID hash

Signed-off-by: Mark Reid <mindmark@gmail.com>

* Remove debug gather code

Signed-off-by: Mark Reid <mindmark@gmail.com>

* fixed outBD typo

Signed-off-by: Mark Reid <mindmark@gmail.com>

---------

Signed-off-by: Mark Reid <mindmark@gmail.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2023-08-23 12:52:05 -04:00
Cédrik Fuoco 84948c773f Locking sphinx to the latest successful build (#1826)
Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
2023-08-22 15:38:15 -04:00
bdc4cd1241 Add support for minizip-ng 4 API (#1806)
Signed-off-by: Brad Smith <brad@comstyle.com>
Co-authored-by: Rémi Achard <remiachard@gmail.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2023-07-28 19:18:10 -04:00
Rémi AchardandDoug Walker f26df74417 Add VFX Platform 2023 to CI build matrix (#1813)
* Add ci-ocio:2023 to build matrix

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Fix OpenImageIO detection

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Update deprecated GHA

Signed-off-by: Rémi Achard <remiachard@gmail.com>

---------

Signed-off-by: Rémi Achard <remiachard@gmail.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2023-07-28 18:40:20 -04:00
Doug Walker 93ee2cc8a4 Add built-in transform for Display P3 and bump config version (#1814)
* Add built-in display transform for Display P3

Signed-off-by: Doug Walker <doug.walker@autodesk.com>

* Add URLs with DisplayP3 info

Signed-off-by: Doug Walker <doug.walker@autodesk.com>

---------

Signed-off-by: Doug Walker <doug.walker@autodesk.com>
2023-07-26 22:12:13 -04:00
brkglvn01andRémi Achard 6dec6b23a7 Updated documentation as 3D LUTs can now be inverted (#1812)
* Fix documentation build (#1809)

* Fix documentation build on Doxygen 1.9.7

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Remove doxygen group names

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Remove remaining doxygen group

Signed-off-by: Rémi Achard <remiachard@gmail.com>

---------

Signed-off-by: Rémi Achard <remiachard@gmail.com>
Signed-off-by: Brooke <beg9562@rit.edu>

* Updated documentation as 3D LUTs can now be inverted

Signed-off-by: Brooke <brkglvn@gmail.com>
Signed-off-by: Brooke <beg9562@rit.edu>

---------

Signed-off-by: Rémi Achard <remiachard@gmail.com>
Signed-off-by: Brooke <beg9562@rit.edu>
Signed-off-by: Brooke <brkglvn@gmail.com>
Co-authored-by: Rémi Achard <remiachard@gmail.com>
2023-07-13 20:45:22 -04:00
Rémi Achard 16b180240f Fix documentation build (#1809)
* Fix documentation build on Doxygen 1.9.7

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Remove doxygen group names

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Remove remaining doxygen group

Signed-off-by: Rémi Achard <remiachard@gmail.com>

---------

Signed-off-by: Rémi Achard <remiachard@gmail.com>
2023-06-29 19:24:46 -04:00
Cédrik FuocoandDoug Walker 8e801dc07b Adsk Contrib - Enhanced methods to find an equivalent color space between configs (#1788)
* - Implementation of identifyInterchangeSpace, identifyBuiltinColorSpace and AreProcessorsEquivalent.
- Remove some include of Processor.h where it wasn't needed.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Moving code from Config.cpp to ConfigUtils.cpp and using wrapper in Config.cpp instead.
Fixing identations issues.
Fixing styling issues.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Typo and comments tweaks
Moving the creation of the editable config into the wrapper of isColorSpaceLinear instead of doing it inside the function.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Splitting identifyInterchangeSpace into two methods, one for source config and one for builtin.
Adding back isColorSpaceLinear inside Config.cpp since we need access to getProcessorWithoutCaching.
Refactor some of config utils function to return index instead of string.
Creating editable config in the two wrappers to prevent processor caching.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Tentative change to phase out isProcessorEquivalent.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Refactor code and add tests

Signed-off-by: Doug Walker <doug.walker@autodesk.com>

* Remove unused method

Signed-off-by: Doug Walker <doug.walker@autodesk.com>

* Remove unused method, tk 2

Signed-off-by: Doug Walker <doug.walker@autodesk.com>

* Tweak comments

Signed-off-by: Doug Walker <doug.walker@autodesk.com>

* Python binding for IdentifyInterchangeSpace and IdentifyBuiltinColorSpace methods.
Adding a couple python unit tests to cover the new methods (same unit test as the C++ side, but not all of them)

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* - Implementation of identifyInterchangeSpace, identifyBuiltinColorSpace and AreProcessorsEquivalent.
- Remove some include of Processor.h where it wasn't needed.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Moving code from Config.cpp to ConfigUtils.cpp and using wrapper in Config.cpp instead.
Fixing identations issues.
Fixing styling issues.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Typo and comments tweaks
Moving the creation of the editable config into the wrapper of isColorSpaceLinear instead of doing it inside the function.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Splitting identifyInterchangeSpace into two methods, one for source config and one for builtin.
Adding back isColorSpaceLinear inside Config.cpp since we need access to getProcessorWithoutCaching.
Refactor some of config utils function to return index instead of string.
Creating editable config in the two wrappers to prevent processor caching.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Tentative change to phase out isProcessorEquivalent.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Refactor code and add tests

Signed-off-by: Doug Walker <doug.walker@autodesk.com>

* Remove unused method

Signed-off-by: Doug Walker <doug.walker@autodesk.com>

* Remove unused method, tk 2

Signed-off-by: Doug Walker <doug.walker@autodesk.com>

* Tweak comments

Signed-off-by: Doug Walker <doug.walker@autodesk.com>

* Python binding for IdentifyInterchangeSpace and IdentifyBuiltinColorSpace methods.
Adding a couple python unit tests to cover the new methods (same unit test as the C++ side, but not all of them)

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Fixing problem with the rebase

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Make sure the unit test is using the static method

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

---------

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Signed-off-by: Doug Walker <doug.walker@autodesk.com>
Signed-off-by: Cédrik Fuoco <105517825+cedrik-fuoco-adsk@users.noreply.github.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2023-06-27 17:44:19 -04:00
Carol Payne 6bf2dc0bb8 Adding Thomas and Zach to the TSC! (#1803)
Signed-off-by: Carol Payne <carolp@netflix.com>
2023-06-13 16:49:31 -04:00
Cédrik Fuoco 454b502cce Adsk contrib - Fix issue with urllib3 version and the container images for the CIs (#1797)
* Changed OCIO_PYTHON_LOAD_DLLS_FROM_PATH to opt-in instead of opt-out

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Restrict the version of urllib3 to version <2 because version above this is not compatible with the OCIO container images

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Revert unwanted change from this branch

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

---------

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
2023-05-16 14:03:04 -04:00
Cédrik FuocoandDoug Walker 219ac86ef6 Adsk contrib - Add method to check inactive color space and an extra getRoleColorSpace method (#1792)
* Implements isInactiveColorSpace and getRoleColorSpace.
Implements basic unit tests for those two methods.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Added header for the two new methods.
Added the python bindings equivalents.
Tweak C++ unit tests and added python unit tests.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Minimize usage for getRoleName

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Documentations
Moving the new unit tests
Adding extra tests for un-tested methods

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Tweaking unit tests and documentions

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Fix build failure on Linux and Mac.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Fix comment

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

---------

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2023-05-03 22:32:10 -04:00
Cédrik FuocoandDoug Walker a5a6be55c7 Changing ZLIB min version to 1.2.8 (#1793)
Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2023-05-03 21:58:01 -04:00
Cédrik FuocoandDoug Walker f0a181a00f Adsk contrib - Add method to clear processor cache (#1791)
* Adding a method to clear the processor cache.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Do not clear the cache when enabling the cache
Adding test for the cache enable/disable cycle
Adding test to test clearProcessorCache

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Unrelated: Changing zlib version to 1.2.8 (adding it to this PR to minimize PRs)

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Documentations
Tweak unit tests
FIx implementation for clearProcessorCache

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Documentations
reverting zlib version and will do it in another PR

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Documentation and python binding

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Adding python unit tests and minor fixes

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Missing change from last commit

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

---------

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2023-05-03 21:19:13 -04:00
Jamil HalabiandDoug Walker a12ce22125 - CMake's FetchContent compatibility changes (#1790)
Signed-off-by: Jamil Halabi <jay3dlinux@gmail.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2023-05-03 20:48:51 -04:00
Cédrik FuocoandDoug Walker 5d49864dca Adsk Contrib - Fix warning/errors log in unit test (#1786)
* Fixinactive colorspaces in cg-config.
Fix OpenColorIO errors that was introduced a while ago in the unit test because of requirement for config.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Reverting changes in cg-config
Other warnings are not muted anymore when we check for role warnings.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Refactoring the new function in unit test log utils.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Integrating the code into LogGuard
Changing some misuses of StartsWith

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Adding a MuteLogging class for python side
Mute log from built-in config test
Comments

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Adding new utilities function to mute inactive colorspace info log while not muting all logs (C++ side)

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* findAllAndRemove method from LogGuard now takes a regex pattern instead of just the line to find

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

---------

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2023-05-03 20:14:08 -04:00
Cédrik Fuoco 01f2175087 Adsk contrib - Fix for dependencies workflow (#1795)
* Tentative fix for macos failure

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* checking for llvm@15 instead as that version is installed by homebrew in the runner

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Trying to trigger the dependencies workflow by making a temporary changes in it.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Using same version of compiler as LLVM_ROOT when building OSL

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Adding LLVM_ROOT for macOS only and testing the usage of "llvm" only instead of llvm@15.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Changing back to llvm@15

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* last test to confirm

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* removing temporary change in dependencies_workflow

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

---------

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
2023-05-02 14:49:14 -04:00
Doug Walker 22f5ee00c1 Adsk Contrib - Fix error message in DisplayViewTransform (#1780)
* Fix error message in DisplayViewTransform

Signed-off-by: Doug Walker <doug.walker@autodesk.com>

* Update test in Config_tests.cpp

Signed-off-by: Doug Walker <doug.walker@autodesk.com>

* Improve indentation

Signed-off-by: Doug Walker <doug.walker@autodesk.com>

---------

Signed-off-by: Doug Walker <doug.walker@autodesk.com>
2023-04-13 19:47:53 -04:00
Cédrik FuocoandDoug Walker 9659603d9e Make sure that docutils is >= 0.18.1 (#1783)
Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2023-04-12 21:01:45 -04:00
Doug Walker 9d0a5a4ff3 Add 3ds Max as a supported app (#1782)
Signed-off-by: Doug Walker <doug.walker@autodesk.com>
2023-04-04 00:24:46 -04:00
Rémi AchardandDoug Walker 28a4b3a8ad Fix GradingPrimary bypass and add support Python comparison for Grading data objects (#1779)
* Fix GradingPrimary bypass, support comparison in Python

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Improve test description

Signed-off-by: Rémi Achard <remiachard@gmail.com>

---------

Signed-off-by: Rémi Achard <remiachard@gmail.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2023-03-22 23:52:03 -04:00
Rémi AchardandDoug Walker 20f13dec67 Fix python packaging (#1778)
Signed-off-by: Rémi Achard <remiachard@gmail.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2023-03-22 19:07:48 -04:00
Cédrik Fuoco e93efe3b70 Adsk contrib - Add support for minimum and recommended versions for dependencies (#1777)
* Implementation of ocio_find_package and ocio_install_package macro.
Implemention of minimum, maximum and recommended version.
Refactor the FindOpenImageIO to be inline with the rest of the custom find module (OCIO_USE_OIIO_CMAKE_CONFIG is no longer needed).
Added a new option called OCIO_VERBOSE. It allow the user to tell OCIO to display more information when searching and building the dependencies.
Splitted the find and install part into two files - Find<pkg>.cmake and Install<pkg>.cmake.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Removing a duplicate call to set_property in OpenImageIO find module.
Setting policy CMP0042 when building ZLIB since that project is using an old CMake version as the cmake_minimum_required and that version has no knowledge of the policy.
Fixing a potential issue in Installopenfx. Changing back the version to 1.4 as before.
Ignoring warning from OpenImageIO for imageioapphelpers. The same warning are ignored for ociodisplay, ocioconvert and ociolutimage.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Fixed an issue with FindOpenImageIO that was found while testing on macOS.
Renamed FindOpenShadingLanguage to FindOSL to match the project name used the OSL's CMakefile.
Cleanup the code for FindOSL and removed duplicate warning about needed C++14.

Updated the header comments for all Find and Install modules.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Fixing typo

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Renamed ocio_find_package to ocio_handle_dependency
Renamed ocio_install_package to ocio_install_dependency
The "Installing [...]" message from Install module is now under OCIO_VERBOSE variable. Added a message in ocio_install_dependency instead
Improve the colors usage in the logging

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Changed prefix for ocio_install_dependency since it was conflicting with the prefix of ocio_handle_dependency since they were the same.
Removed FindOpenEXR.cmake and FindOpenImageIO.cmake since they are not needed anymore (for differente reason).
Added PROMOTE_TARGET option for ocio_handle_dependency which promote the target to GLOBAL.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Mostly comments and documentations

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Small update of the Existing Install Hints section

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Changed RECOMMENDED_MIN_VERSION to RECOMMENDED_VERSION
Re-worded some of the comments

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Fixing issue with ocio_handle_dependency macro where it wasn't respecting OCIO_INSTALL_EXT_PACKAGES option correctly.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Adding more documentations and dropping support to look for static zlib since the user can update their cmake in order to do that.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Documentations

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Documentations

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* fixing typo

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Fix typo and fix issue when OCIO is installing ZLIB

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Tentative fix for Linux CI failure

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Ignoring specifics warnings on OpenImageIO target directly.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Removing OCIO_USE_OIIO_CMAKE_CONFIG as it is not needed anymore.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

---------

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
2023-03-22 17:12:35 -04:00
Cédrik FuocoandDoug Walker 9d572cfab7 Changing the build type check to be case-insensitive (#1765)
Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2023-03-09 01:59:12 -05:00
Cédrik FuocoandDoug Walker f651a1aed9 Adsk Contrib - Allow PyOpenColorIO module to load DLLs from Windows PATH environment variable (#1759)
* Allow PyOpenColorIO module to load DLLs from Windows PATH environment variable with an opt-out option in case the user want the default behavior of Python 3.8+.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Fixing typos in comments

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

---------

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2023-03-09 00:57:11 -05:00
Rémi Achard 3797a92481 Update CI workflows (#1770)
* Update CI workflows

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Test building OpenEXR single threaded

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Add comment on disabling parallel build

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Update python_requires

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Remove comments around CI jobs

Signed-off-by: Rémi Achard <remiachard@gmail.com>

---------

Signed-off-by: Rémi Achard <remiachard@gmail.com>
2023-03-08 22:07:11 -05:00
b848482642 Update macOS runners to 10.11, bump actions version (#1714)
Signed-off-by: Rémi Achard <remiachard@gmail.com>
Co-authored-by: Michael Dolan <michdolan@gmail.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2023-01-27 12:31:08 -05:00
Cédrik Fuoco 91761f256b Adsk Contrib - OCIO cmake improvements (#1736)
* - Refactoring how OCIO search for minizip-ng. The first step is to search for an external minizip-ng. If not found, search for minizip-ng with MZ_COMPAT=ON (libminizip). If it is not found either, download and install minizip-ng with MZ_COMPAT=OFF.
- Removing the minizip-ng part for the includes for minizip-ng headers.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Update comments

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Improved find_package in Config mode (adding it back)
Added missing scripts to install minizip-ng and zlib for the analysis workflow

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Adding +x permissions for install_minizip_ng and zlib
Fixing path to find zlib in install_minizip-ng.sh

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Changing target name to match the one used by minizip-ng library (+ using the imported target instead of creating a new one when minizip-ng is found)

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* First pass for the OpenColorIOConfig.cmake file with the required dependencies only.
A few extra fixes for OpenEXR, ZLIB and Minizip-ng.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Adding a informative message when building static ocio instead of per module.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Adding an extra step to test the consumer app with static OpenColorIO for Windows, Linux and MacOS.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Re-using the same test instead of creating a new one by removing the condition on build-shared.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Fixing spacing, typo and adding back the NOT in the condition. (it was removed for debugging purpose)

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Changing directory where we share OCIO custom find modules (now in <install dir>/share/cmake/modules).
Adding a cmake macro when installing OCIO since it is needed by some custom find modules.
The find modules are only installed when building OCIO as a static library.
The config.cmake.in files now only looks for the dependency when OCIO was built as a static library.
Tentative (ci-workflow): Adding cmake-consumer test for static builds.
Overhaul of the Findzlib module to be more inline with the FindZLIB from cmake and to be more robust.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Adding missing backward slashes and saving the build path in an existing step instead of creating a new step.
Adding a check for CMake version for a section in Findzlib.cmake.
Re-phrasing some comments.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Prevent the download of the dependencies in the scenario where static OCIO is linked to a consumer project. Since OCIO_INSTALL_EXT_PACKAGES is not defined, our find module tries to download the dependencies, but we don't want that mecanism for consumer project.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Changing path where OCIO install its own custom find module.
Removing custom Findzlib and making modifications to use CMake FindZLIB.
Created a InstallZLIB module which does the download and install part if OCIO_INSTALL_EXT_PACAKGES is ALL or MISSING.
Tweaked config.cmake.in to use CMake FindZLIB.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Adding more details in comments

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Removing an extra "shell" property in CI workflow.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Fix issues discovered with the failing CI workflow:

Cmake-consumer test now prefer the static version of the dependencies.
Fix an issue where yaml-cpp is not found by a consumer app (variable spelled incorectly in Findyaml-cpp).
Fix an issue expat library is not found by a consumer app on Windows.
Adding support for OCIO's  <pkg_name>_STATIC_LIBRARY for ZLIB while supporting ZLIB_USE_STATIC_LIBS (CMake 3.24+) from CMake's FindZLIB.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Removing pystring_STATIC_LIBRARY does not exists in CI workflow.
Detecting if the build is Debug in the find module that OCIO installs since they can't rely on variables set by OCIO CMakefiles.
Fix issue with yaml-cpp library naming in debug.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Fix issues on Windows with expat and minizip-ng library naming when building static OCIO.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Added option for macOS CI job in order to get more info on a failed job. Will be reverted once the issue is found.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Fixing a issue on macOS.
Improving ZLIB usage comments.
Bumping minizip-ng to the latest version - 3.0.7.
Bumping ZLIB to the latest version 2.1.13 to fix a vulnerability (CVE-2022-37434)

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Proposing to remove Findminizip module since external minizip-ng build need to be done with the same option as the internal build.
Otherwise, linking and symbols issues are going to happend if the other libraries are not linked in correctly.
It is going to simplify the maintainability of OCIO.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Removing findminizip.cmake from the install since it does not exist anymore.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Signed-off-by: Cédrik Fuoco <105517825+cedrik-fuoco-adsk@users.noreply.github.com>
2023-01-05 10:26:45 -05:00
Doug Walker 17f5c98f9b Update documentation for 2.2 release (#1738)
* Update documentation for 2.2 release

Signed-off-by: Doug Walker <doug.walker@autodesk.com>

* Fix typos

Signed-off-by: Doug Walker <doug.walker@autodesk.com>

* Remove V2_DOC_README.md

Signed-off-by: Doug Walker <doug.walker@autodesk.com>

* Tweaks to 2.2

Signed-off-by: Doug Walker <doug.walker@autodesk.com>

* Improve installation section

Signed-off-by: Doug Walker <doug.walker@autodesk.com>

* Add link to demo config

Signed-off-by: Doug Walker <doug.walker@autodesk.com>

* Fix typos

Signed-off-by: Doug Walker <doug.walker@autodesk.com>

* Improve file_rules section

Signed-off-by: Doug Walker <doug.walker@autodesk.com>

Signed-off-by: Doug Walker <doug.walker@autodesk.com>
2023-01-04 16:44:23 -05:00
Doug Walker 5152635a18 Fix inverse Lut1D optimization bug (#1743)
Signed-off-by: Doug Walker <doug.walker@autodesk.com>

Signed-off-by: Doug Walker <doug.walker@autodesk.com>
2023-01-04 16:00:36 -05:00
Rémi AchardandDoug Walker 051241c9f1 Fix minizip-ng CMake args passing (#1741)
Signed-off-by: Rémi Achard <remiachard@gmail.com>

Signed-off-by: Rémi Achard <remiachard@gmail.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2023-01-04 15:14:21 -05:00
Cédrik FuocoandDoug Walker 1d126b56e9 Adsk Contrib - Improve naming of ICC-based displays on Windows (#1742)
* Adding a method to get the Monitor's userFriendlyName if available

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Removing the slashes at the start of the display name

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Adding descriptions and comments.
Adding troubleshooting script that print the monitor display name and ICC profile path.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* no message

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Comments

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2023-01-03 23:40:07 -05:00
Cédrik FuocoandDoug Walker 6d7c4791f1 Adsk contrib - Fix issue with is colorspace linear (#1734)
* Throw when the colorspace is undefined for isColorSpaceLinear method. (+ unit test)

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Typo

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2022-12-22 20:48:34 -05:00
Cédrik FuocoandDoug Walker 907ed3be17 Adsk contrib - Hiding minizip-ng symbols on Mac (#1729)
* Hiding minizip-ng symbols on Mac

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Fixing a linking issue related to the code that tries to hide expat symbols and small refactor to add robustness.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2022-12-06 00:32:32 -05:00
Cédrik FuocoandDoug Walker 332462e7f5 Adsk contrib - Configure the OpenColorIO.pc file on Windows (#1720)
* Configure the OpenColorIO.pc file on Windows and fix an issue where CMAKE_INSTALL_PREFIX wasn't included in the cmake build command in ocio.bat.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Removing pkconfig folder since that PC file is not used.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Small tweak in the configuration of OpenColorIO.cmake.in to handle absolute path with CMAKE_INSTALL_LIBDIR or CMAKE_INSTALL_INCLUDEDIR.
Keeping exec_prefix for CMAKE_INSTALL_INCLUDE_DIR since it was changed for a specific issue on Mac (see PR #1120).

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Using ${prefix} for includedir

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2022-12-05 23:10:29 -05:00
Cédrik FuocoandDoug Walker 4fa775030a Adsk contrib - Processor cache does not detect changes in cccid (#1726)
* For Looks that has a FileTransform and for Colorspace with FileTransfrom, add the CCCID to the processor's cache key for that transform.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Removing the workaround in the related unit tests and fixing the issue by adding the environment variable to the context using setStringVar. The processor's cache key is using the context cache ID which has all the context variables taken into account.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Now using addStringVars and creating a new context instead of reusing the one used for the filename.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Adding cccid to the context when there are no context variable.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Adding a few unit tests to test that the processor is different when changing the FileTransform's CCCID.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Using setStringVar to set CCNUM context variable in unit test.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Adding a test in FileTransform to test CollectContextVariables directly.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Minor tweaks for the unit test

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2022-12-05 20:16:27 -05:00
Cédrik FuocoandDoug Walker 811902b37d Adsk contrib - Fix issue with minizip build (#1725)
* - Refactoring how OCIO search for minizip-ng. The first step is to search for an external minizip-ng. If not found, search for minizip-ng with MZ_COMPAT=ON (libminizip). If it is not found either, download and install minizip-ng with MZ_COMPAT=OFF.
- Removing the minizip-ng part for the includes for minizip-ng headers.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Update comments

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Improved find_package in Config mode (adding it back)
Added missing scripts to install minizip-ng and zlib for the analysis workflow

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Adding +x permissions for install_minizip_ng and zlib
Fixing path to find zlib in install_minizip-ng.sh

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Changing target name to match the one used by minizip-ng library (+ using the imported target instead of creating a new one when minizip-ng is found)

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2022-12-05 17:33:12 -05:00
FantasqueXandDoug Walker b6e40f4fca CheckSupportSSE2: Fix sse flags unexpected propagation (#1721)
Set function will affects all variables in current directory. If sse
flags are added in CheckSupportSSE2.cmake, they will remain in
Findminizip-ng.cmake which will cause liblzma cannot be detected. This
patch keep CMAKE_REQUIRED_FLAGS being changed only in current file
scope. This patch has been tested on riscv64.

Signed-off-by: Letu Ren <fantasquex@gmail.com>

Signed-off-by: Letu Ren <fantasquex@gmail.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2022-12-02 22:34:58 -05:00
bartstyczenandDoug Walker d5cedbf551 replace texture2D function with texture for GLSL 1.3 (#1723)
Signed-off-by: Bart Styczen <bart.styczen@cine.dev>

Signed-off-by: Bart Styczen <bart.styczen@cine.dev>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2022-12-02 19:56:03 -05:00
Cédrik Fuoco a00a48ff35 Increasing version to 2.3.0 (#1717)
Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
2022-12-02 14:23:01 -05:00
Cédrik FuocoandDoug Walker cac1ba5fef Adsk contrib - Update builtin config and add studio builtin config (#1713)
* - Modifying the CG builtin config and updating the code accordingly. I named the config without the RC2 in order to minimize the changes once the stable release in available.

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* - Adding Studio config

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* - Updated config to stable version
- Added some variables for string const

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* Fixing a unit test since it was using the previous CG config and the config changed.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>
Signed-off-by: Cédrik Fuoco <105517825+cedrik-fuoco-adsk@users.noreply.github.com>
Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2022-10-31 16:07:20 -04:00
Cédrik FuocoandDoug Walker 4f4e52257d Adsk contrib - Issue with latest ociocheck (#1715)
* Missing logs from config::validate.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

* Moving log guard ouput before the checks for errors level logs.

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>

Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2022-10-31 15:43:12 -04:00
amysparkandDoug Walker 1e6b01cc23 MinGW: Work around lack of strtof_l for locale independent parsing (#1697)
Signed-off-by: L. E. Segovia <amy@amyspark.me>

Signed-off-by: L. E. Segovia <amy@amyspark.me>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2022-10-31 14:41:09 -04:00
Éric Renaud-HoudeandRémi Achard e7a88bfe1e Enforce GL_NEAREST with gpu tetrahedral interpolation, fixing #1676. (#1708)
Signed-off-by: Eric Renaud-Houde <eric.renaud.houde@gmail.com>

Signed-off-by: Eric Renaud-Houde <eric.renaud.houde@gmail.com>
Co-authored-by: Rémi Achard <remiachard@gmail.com>
2022-10-30 15:52:02 -04:00
Rémi AchardandMichael Dolan 4dff29eb36 Baking crosstalk and NamedTransform support fix (#1693)
* Check for channel crosstalk on optimised processors when baking

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Use lossless optimization

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Handle NamedTransform used in Baker shaper space

Signed-off-by: Rémi Achard <remiachard@gmail.com>

Signed-off-by: Rémi Achard <remiachard@gmail.com>
Co-authored-by: Michael Dolan <michdolan@gmail.com>
2022-10-29 21:44:01 -04:00
c897bd301c Fix build and errno check on musl libc (#1678)
In the 'from_chars' function, it's first checked if errno != 0 and
immediately returns with std::errc::result_out_of_range aka ERANGE.
Please refer issue [1624] (https://github.com/AcademySoftwareFoundation/OpenColorIO/issues/1624)

The function 'strtol_l' is not available on non GLIBC systems hence on
other libc use the alternative 'strtol' function.

Signed-off-by: listout <listout@protonmail.com>

Signed-off-by: listout <listout@protonmail.com>
Co-authored-by: Rémi Achard <remiachard@gmail.com>
Co-authored-by: Michael Dolan <michdolan@gmail.com>
2022-10-29 21:02:28 -04:00
Michael Dolan 9a82ddb96d Add NamedTransform Processor constructors (#1689)
* Add NamedTransform Processor constructors

Signed-off-by: Michael Dolan <michdolan@gmail.com>

* Update frozen Python API docs

Signed-off-by: Michael Dolan <michdolan@gmail.com>

* Add NamedTransform::GetTransform static function to public API

Signed-off-by: Michael Dolan <michdolan@gmail.com>

* Move function from NamedTransformImpl to NamedTransform

Signed-off-by: Michael Dolan <michdolan@gmail.com>

* Update Python frozen rst with API changes

Signed-off-by: Michael Dolan <michdolan@gmail.com>

* Update comment and variable naming

Signed-off-by: Michael Dolan <michdolan@gmail.com>

Signed-off-by: Michael Dolan <michdolan@gmail.com>
2022-10-29 20:12:30 -04:00
Cédrik Fuoco b236bd827b Adsk contrib - Convert to or from a known external color space (#1710)
* First iteration of isColorspaceLinear.

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* - Comments.
- Added a private getProcessor method that ignore caching.
- Fix the algorithm for isColorspaceLinear. - Now testing R, G, B and neutral values.

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* - Passing in the config reference instead of using this in the capture clause of the lambda function as this was causing issue on other platforms than Windows.
- Remove unused variable in unit test.
- other minors changes

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* Removing a comment and removing the helper function as it is not needed.

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* Get in sync with changes on the public repository for isColorspaceLinear.

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* - C++ implemention for getProcessorToBuiltinColorSpace with a few utilitiy functions

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* - Changed getProcessorToBuiltinColorSpace to getProcessorToOrFromBuiltinColorspace and it not accessible through the API anymore
- Added getProcessorFromBuiltInColorspace (API)
- Added getProcessorToBuiltinColorspace (API)
- rename "bi" variables to "builtin"
- Added the swaping of colorspace when TRANSFORM_DIR_INVERSE
- Added C++ unit test

std::cout debug print will be removed in the next commit.
Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* Adding ColorSpaceUtils

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* - Comments and styling
- Refactor the code in order to use apply()
- Move everything to ColorSpaceUtils so that all the helper functions are private to ColorSpaceUtils
- Remove the std::cout

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* Now using getProcessorWithoutCaching and moved logics into Config::Impl.

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* Removing combineGroupTransform, small refactor of getRefToSRGBTransform and styling issues.

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* Python Bindings

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* Changing new helper methods to const and minor styling issues.

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* Minor styling issues

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* Changed a comment to fit on one line and styling issue.

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* Removing extra qualifiers that returns an error on Linux and Mac and fixing warnings on Linux and Mac.

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* Fixing issue with documentation

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* - Rename checkForLinearColorSpace ---> getReferenceSpaceFromLinearSpace
- Fix an issue where the wrong config object was used for getProcessorWithoutCaching.
- Added a comment about about 0.0030399346397784323.
- Using std::pow instead of pow
- Small refactor of getReferenceSpaceFromLinearSpace to avoid duplicate code.

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* Renaming checkForSRGBTextureColorSpace to getReferenceSpaceFromSRGBSpace and adding "Utility - Linear - Rec.2020" to the builtin linear spaces.

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>
Signed-off-by: Cédrik Fuoco <105517825+cedrik-fuoco-adsk@users.noreply.github.com>
2022-10-28 16:28:56 -04:00
Rémi Achard a347d807e2 Update hashing algorithm for Processor caches (#1656)
* Use xxHash for CacheID

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Using XXH3_128bits

Signed-off-by: Rémi Achard <remiachard@gmail.com>

Signed-off-by: Rémi Achard <remiachard@gmail.com>
2022-10-28 12:10:01 +01:00
Rémi Achard 82f56ab6ca Add Python 3.11 wheels (#1706)
* Add Python 3.11 wheels and cleanup old variants

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Bump cibuildwheel version

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Remove Python 3.6 from supported version, fix build warning

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Add python_requires to setup.cfg

Signed-off-by: Rémi Achard <remiachard@gmail.com>

Signed-off-by: Rémi Achard <remiachard@gmail.com>
2022-10-28 11:43:29 +01:00
Doug Walker 8a93946cb3 Fix atan2 argument order for HLSL (#1712)
Signed-off-by: Doug Walker <doug.walker@autodesk.com>

Signed-off-by: Doug Walker <doug.walker@autodesk.com>
2022-10-27 20:33:58 -04:00
Cédrik FuocoandDoug Walker 3ffcc3fb88 Adsk contrib - Add a method to query whether a color space is linear (#1703)
* First iteration of isColorspaceLinear.

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* - Comments.
- Added a private getProcessor method that ignore caching.
- Fix the algorithm for isColorspaceLinear. - Now testing R, G, B and neutral values.

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* - Passing in the config reference instead of using this in the capture clause of the lambda function as this was causing issue on other platforms than Windows.
- Remove unused variable in unit test.
- other minors changes

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* Removing a comment and removing the helper function as it is not needed.

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* - Tweaking algorithm. Returns true at the end since the color space matches the desired reference space type, is not a data space, and has no transforms, so it is equivalent to the reference space and hence linear.
- Added a color space in the test config to cover that.

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* Adding python binding for isColorSpaceLinear and python unit test.

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2022-10-27 15:58:26 -04:00
Doug Walker 5dc32f997c Adsk contrib - Add Built-in Transforms for ARRI LogC4 and Canon curves (#1704)
* Add LogC4 and Canon curves

Signed-off-by: Doug Walker <doug.walker@autodesk.com>

* Refactor Canon curves

Signed-off-by: Doug Walker <doug.walker@autodesk.com>

* Add checkVersionConsistency test

Signed-off-by: Doug Walker <doug.walker@autodesk.com>

* Update comment

Signed-off-by: Doug Walker <doug.walker@autodesk.com>

Signed-off-by: Doug Walker <doug.walker@autodesk.com>
2022-10-27 14:57:43 -04:00
Cédrik Fuoco 34284f5ba4 Merging adsk_contrib/make-interchange-roles-required-for-future-config-version into this new branch as one commit in order to clean up the commits. (#1711)
Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>
2022-10-27 10:33:28 -04:00
Cédrik FuocoandDoug Walker f767cad1ed OCIOZ archive feature (#1627) (#1696)
* OCIOZ archive feature (#1627)

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* Add OCIOZ extension if not present.

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* - Changing getLutData (return vector instead of passing by reference) in order to respect C++ idiom and letting compiler optimize with NRVO and Copy elision
- Improving how cmake find zlib (renamed getZLIB to Findzlib)
- Make sure that ZLIB is statically linked on all platform (it wasn't on windows)
- Fix issue with Python Unit test when using Python 2 (problem discovered on OSX)
- Change how OpenEXR finds ZLIB by using our custom Findzlib
- Patching Minizip-ng makefile to change cmake minimum version

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* - Remove the minizip-ng patch as it doesn't work and further discussion needs to happend.
- Responding to Remi's comments.
  Notable changes:
  - Comments typo and styles fix.
  - Unit tests fixes.
  - Removing the usage of std::ifstream in getLutData and getConfig since it is not needed at all - It was slowing down getLutData.
  - Implicitly converting python list to std::vector<uint8_t> (for getLutData)
  - When archiving a config, the file won't added (overwridden) multiple times if the file matches multiple supported format.

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* - Added implicit conversion from bytearray to std::vector<uint8_t>
- In ConfigIOProxy Python Unit test, changed getLutData to return a bytearray instead of a list. I think this makes more sense and it works with Python 2 and 3.

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* Update comments to be in line with the current implementations

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* - Changing ci workflow in order to install cmake version 3.13.3 for Linux (matrix.vfx-cy == '2019').

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* - Fixing issue with the install location of zlib library
- Removing unused CMAKE variables from ZLIB_CMAKE_ARGS

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2022-10-25 14:42:09 -04:00
Rémi Achard 521ed0835a Support for ICC Parametric curves type 1-4 (#1691)
* Support for ICC Parametric curves type 1-4

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Add warning about paraCurve characteristics, fix clamp and improve unit tests

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Windows CI fixes

Signed-off-by: Rémi Achard <remiachard@gmail.com>

Signed-off-by: Rémi Achard <remiachard@gmail.com>
2022-10-24 23:19:44 -04:00
Jochen HunzandDoug Walker cae5850771 added anchorpoint to supported applications (#1695)
Signed-off-by: Jochen Hunz <j.hunz@anchorpoint.app>

Signed-off-by: Jochen Hunz <j.hunz@anchorpoint.app>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2022-10-22 02:07:59 -04:00
660cf515fa Corrected http links to https (#1669)
Downloads links corrected to use HTTPS instead of HTTP.

Signed-off-by: Abel Serrano Juste <akronix5@gmail.com>

Signed-off-by: Abel Serrano Juste <akronix5@gmail.com>
Co-authored-by: Michael Dolan <michdolan@gmail.com>
Co-authored-by: Rémi Achard <remiachard@gmail.com>
2022-10-21 11:07:49 +01:00
Rémi AchardandMichael Dolan d797f8e6cd Log OCIO version for debugging purposes (#1694)
Signed-off-by: Rémi Achard <remiachard@gmail.com>

Signed-off-by: Rémi Achard <remiachard@gmail.com>
Co-authored-by: Michael Dolan <michdolan@gmail.com>
2022-10-21 10:41:36 +01:00
Rémi AchardandMichael Dolan 20805ae174 Fix dependency specifications for ninja build (#1692)
Signed-off-by: Rémi Achard <remiachard@gmail.com>

Signed-off-by: Rémi Achard <remiachard@gmail.com>
Co-authored-by: Michael Dolan <michdolan@gmail.com>
2022-10-21 10:09:38 +01:00
Éric Renaud-HoudeandRémi Achard 281d39f749 Fix for static const literals in HLSL. (#1684)
Signed-off-by: Eric Renaud-Houde <eric.renaud.houde@gmail.com>

Signed-off-by: Eric Renaud-Houde <eric.renaud.houde@gmail.com>
Co-authored-by: Rémi Achard <remiachard@gmail.com>
2022-10-20 08:26:34 -04:00
Rémi AchardandMichael Dolan 8e04da773a Support for OpenEXR to build additional apps (#1637)
* OpenEXR support

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Build an CI minor improvements

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Fix ocioconvert output bitdepth support

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Fix explicit version request handling

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Try to fix OSL tests

Signed-off-by: Rémi Achard <remiachard@gmail.com>

Signed-off-by: Rémi Achard <remiachard@gmail.com>
Co-authored-by: Michael Dolan <michdolan@gmail.com>
2022-09-19 16:00:42 -04:00
AkhilandRémi Achard 0620af70a5 Replaced "requireements" to "requirement" in installation.rst (#1632)
* Replaced "requireements" to "requirement" in installation.rst

Signed-off-by: Akhil <46328560+akhilsahuji@users.noreply.github.com>

* Deleted Extra Space

Signed-off-by: Akhil <46328560+akhilsahuji@users.noreply.github.com>

Signed-off-by: Akhil <46328560+akhilsahuji@users.noreply.github.com>
Co-authored-by: Rémi Achard <remiachard@gmail.com>
2022-09-06 09:11:09 -04:00
Cédrik FuocoandDoug Walker 27447f5a9c Adsk contrib - Built-in configurations (#1659)
* First version of built-in configs feature

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* Generating configs header into generated_include folder

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* Added comments, move some code, added a test for public interface, changed how CG.h get generated and other minors fixes

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* Adding support for ocio://default and a unit test for it

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* Renamed methods to get align with BuiltinConfig class name and to remove confusion with Config class.

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* Refactor the test suite for Built-in config and comments/descriptions changes

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* Adding guard for setenv, added two tests and other minor changes

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* Added readme file to help add a new config, minors fixes, changed some built-in config unit tests and created a generic guard for set/unset env.

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* Fix some coding styles and remove try catch that was not really needed.

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* Updating setenv/unset to the guard pattern in config_tests module.

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* Python bindings

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* Fixing styling issues and minor modifications in python unit tests

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* Fixing problem with test_create_builtin_config

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* Remove the check for the number of colorspaces in the python tests for now - only checking the name, removed readme and fix issue around config begin null in test by adding a OCIO_REQUIRE_ASSERT.

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* Fixing styling and comments issues and adding back the tests for the number of colorspaces using len().

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* missing spaces in comments.

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* Adding display name and getBuiltinConfigUIName.

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* Fix a few issues with the builds - Replacing get_filename_component/NAME_WLE by a regex, replacing assetRaisesRegex with a combination of assertRaises/assertEqual and fixing the link issue with Doxygen in OpenColorIO.h

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* Adding missing comment and changing "displayName" to "uiName" to remove confusion within ocio

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* Fixing build issue on Linux and Mac : config string was not null terminated

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* minor fixes

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* A more Pythonic interface

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* Adding more information into the tuple and modified corresponding tests.

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* returning reference instead of smart pointer as it is not needed.

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* Removed getNumBuiltinConfig from python binding since we have iterator and modified __contains__ magic method to not throw exception.

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* Fix wrong type in for loop. (linux and mac issue)

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2022-07-07 17:57:28 -04:00
Rémi Achard 06601f0e43 Enable found version printing for find_package(OpenColorIO CONFIG) (#1636)
Signed-off-by: Rémi Achard <remiachard@gmail.com>
2022-06-27 20:21:30 +01:00
Cédrik FuocoandDoug Walker a2e204b378 Adsk contrib - Scripts to facilitate building OCIO on Windows (#1646)
* Scripts to facilitate OCIO builds on Windows

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* Fixed an issue with spaces in python path

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* Using delayed variable expansion instead of normal expansion for variables that can changes based on arguments

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* Updating the quick start > installations documentation to mention the windows scripts and re-writing obsolete section.

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2022-06-21 22:01:12 -04:00
Cédrik FuocoandDoug Walker b80361cb75 Adsk contrib - Implement invertview for ocioconvert, ocioperf and ociowrite (#1648)
* Implement invertview for ocioconvert, ocioperf and ociowrite

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* Fix issue with operator precedence warning on Linux

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* Added comment on why ocioconvert is changing the output buffer bit-depth and changed bitwise AND operator into logicla AND operator (same result but makes more sense here)

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* Fix issue with --gpu path

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2022-06-05 14:59:43 -04:00
AkhilandDoug Walker 68b510b652 Adjusted 'family' description in OpenColorIO.h to match documentation (#1635)
Signed-off-by: Akhil <akhil9415588049@gmail.com>

Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2022-05-18 13:55:08 -04:00
Cédrik FuocoandDoug Walker 25e910cf41 Adsk contrib - Fix issues when building OCIO with MS Visual Studio 2022 (#1647)
* Fix issues when building OCIO with MS Visual Studio 2022

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* Removing GLEW_LIBRARY variable as it is not needed

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* Bumping CI to use VC 2022 as per Doug Walker request (see #1634)

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* Reverting the changes on ci_workflow.yml and adding a check for MSVC for the Glew fix.

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* Typo for the windows action in ci workflow

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

* Typo for the windows action in ci workflow

Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>

Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2022-05-18 11:54:32 -04:00
Rémi Achard 44d8b85cd3 Improve iridas_cube parsing speed (#1630)
* Improve iridas_cube parsing speed

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Fix Windows build

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Allow comments in entries section

Signed-off-by: Rémi Achard <remiachard@gmail.com>
2022-05-16 19:53:36 -04:00
Doug WalkerandPatrick Hodoul b00877959f Adsk Contrib - Fix half-domain Lut1D issue for values above HALF_MAX (#1614)
* Fix half-domain Lut1D issue for values above HALF_MAX

Signed-off-by: Doug Walker <doug.walker@autodesk.com>

* Address review comments

Signed-off-by: Doug Walker <doug.walker@autodesk.com>

Co-authored-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>
2022-04-05 14:28:13 -04:00
Doug WalkerandPatrick Hodoul a92993f339 Add preliminary support for ACES Metadata Files (#1604)
Signed-off-by: Doug Walker <doug.walker@autodesk.com>

Co-authored-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>
2022-04-05 13:31:40 -04:00
Rémi AchardandPatrick Hodoul 2269ebef02 Add support for Display/View to Baker (#1598)
* Add support for Display/View to Baker

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Add Baker display / view to python bindings

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Use in/out parameters for shaper range

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Use relative float checks for CTF

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Support look when baking display / view

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Improve documentation

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Address PR feedback

Signed-off-by: Rémi Achard <remiachard@gmail.com>

Co-authored-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>
2022-04-05 11:06:43 -04:00
Rémi Achard 4fa94918c2 Minor build and CI fixes (#1599)
* Build and CI fix

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Make OpenColorIO_SKIP_IMPORTS public

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Avoid exporting header only libs in static builds

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Fix cpu unit test linkage

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Explain the look syntax fallback

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Fix typos

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Improve OFX building documentation

Signed-off-by: Rémi Achard <remiachard@gmail.com>
2022-03-24 14:33:32 -04:00
Rémi AchardandDoug Walker 415c583709 Add python source distribution package (#1605)
* Add python source distribution package

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Fix typo

Signed-off-by: Rémi Achard <remiachard@gmail.com>

Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2022-03-18 23:56:28 -04:00
Michael DolanandPatrick Hodoul 87f60b6144 Update TSC Chair (#1596)
Signed-off-by: Michael Dolan <michdolan@gmail.com>

Co-authored-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>
2022-03-14 12:22:19 -04:00
itsmattkc 73508eb523 CMake: Fix issue that led to Unicode support still defaulting to off (#1594)
Signed-off-by: itsmattkc <34096995+itsmattkc@users.noreply.github.com>
2022-02-10 14:07:59 -05:00
Patrick Hodoul 1d26d58c31 Adsk Contrib - Improve the library install step (#1578)
* Adsk Contrib - Improve the library install step

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>

* Docs compilation on *mix plateforms only

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>

* Improve the third-party library install

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>
2022-01-24 17:08:05 -05:00
Patrick Hodoul 48bab7c643 Adsk Contrib - Remove 'expat' symbols (#1582)
* Adsk Contrib - Remove 'yaml' symbols

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>

* Improve the symbol control

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>
2022-01-24 13:24:29 -05:00
Rémi AchardandPatrick Hodoul d5bf1e1b45 Python copy support (#1575)
* Add deepcopy support for object with createEditableCopy method

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Minor fixes

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Removing python shallow copy method

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Update comment and formating

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Testing COnfig FileRules deepCopy

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Add comment for ConfigTest

Signed-off-by: Rémi Achard <remiachard@gmail.com>

Co-authored-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>
2022-01-13 08:51:31 -05:00
Patrick Hodoul 3afeb921f8 Adsk Contrib - Better manage the OIIO dependency (#1572)
Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>
2022-01-12 10:27:41 -05:00
Patrick Hodoul 65d0f2f1d9 Adsk Contrib - Improve the GPU unit test framework (#1562)
Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>
2022-01-12 09:23:23 -05:00
Patrick Hodoul a46ba26bd6 Adsk Contrib - Improve the OSL integration (#1561)
* Adsk Contrib - Improve the OSL integration

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>

* Fix a typo

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>
2022-01-11 09:56:03 -05:00
Rémi AchardandPatrick Hodoul 1d8a28c2e2 Fix support for ARM64 macOS python wheels (#1574)
* Fix support for ARM64 macOS python wheels

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Use $<SEMICOLON> generator expression to escape semicolon

Signed-off-by: Rémi Achard <remiachard@gmail.com>

Co-authored-by: Patrick Hodoul <patrickhodoul@gmail.com>
2022-01-11 07:42:59 -05:00
amyspark 7396756d7d Propagate Android CMake configuration to external projects (#1579)
Signed-off-by: L. E. Segovia <13498015+amyspark@users.noreply.github.com>
2022-01-10 18:13:06 -05:00
Brendan BollesandPatrick Hodoul 4bdbf65c95 After Effects plug-in updates (#1564)
* Handle any family separator

Signed-off-by: Brendan Bolles <brendan@fnordware.com>

* Trim superfluous UI branches

Signed-off-by: Brendan Bolles <brendan@fnordware.com>

* Remove internal Platform use

Signed-off-by: Brendan Bolles <brendan@fnordware.com>

* Update buildProgram() call

Signed-off-by: Brendan Bolles <brendan@fnordware.com>

* Update Xcode 9 projects

Signed-off-by: Brendan Bolles <brendan@fnordware.com>

* Fix lcms version in Xcode 9

Signed-off-by: Brendan Bolles <brendan@fnordware.com>

* Update Xcode 12 projects

Signed-off-by: Brendan Bolles <brendan@fnordware.com>

* Include <cctype> for std::isdigit() on Windows

Signed-off-by: Brendan Bolles <brendan@fnordware.com>

* Update Visual Studio projects

Signed-off-by: Brendan Bolles <brendan@fnordware.com>

* Bump version to 2.2.0

Signed-off-by: Brendan Bolles <brendan@fnordware.com>

* Get rid of duplicate #include <cctype>

Signed-off-by: Brendan Bolles <brendan@fnordware.com>

* Add ARM64 architecture

Signed-off-by: Brendan Bolles <brendan@fnordware.com>

Co-authored-by: Patrick Hodoul <patrickhodoul@gmail.com>
2021-12-16 09:16:22 -05:00
doug-walker 0376c02d02 Update CLF test image from CLF working group (#1563)
Signed-off-by: Doug Walker <Doug.Walker@autodesk.com>
2021-12-16 08:17:32 -05:00
00b5362442 Adds Metal Support to ociodisplay and enables running GPU tests with Metal backend (#1538)
* * Adds Metal Shading Language (MSL) Generation support

Signed-off-by: Morteza Mostajabodaveh <smostajabodaveh@apple.com>

Co-authored-by: Ingthor Hjalmarsson <ihjalmarsson@apple.com>
Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* * Fixes warnings triggered due to unused variables.

Signed-off-by: Morteza Mostajabodaveh <smostajabodaveh@apple.com>
Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* * Fixes compilation error on Mac and Windows:
- vector of const objects causing compiler errors on windows.
- Wrong string was used for Metal language python binding.

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* * Removes class wrapping interface from OpenColorIO interface and move it to implementation
* Adding more tests for metal code path
* Proper generated Metal code indentation
* Fixes a few coding style inconsistencies and unneeded include files

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* Remove the unneeded empty line to reset OpenColorIO.h to what it was before the metal change.

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* * switching from c-like getFunctionParameters function to c++-like one since it is not in the opencolorio interface anymore.

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* Missing include causing compiler errors on windows

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* * Fixes and improvements follow up to change that was trying to move metal related code in implementation, and hide them from OCIO interface.

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* - remove unused variables.

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* * Adds support for uniform parameters and proper handling of them in metal code.
* Adds two new tests for uniforms and helper functions.

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* * making declaration parsing more C++-like. Functions like sscanf are problematic when it comes to multiple platform support and may not be safe

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* * Switching from clf/lut1d_half_domain_raw_half_set.clf  to clf/lut1d_long.clf. Due to decimal number outputting difference between different platforms, some tests were failing.

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* * Moving Metal only functionalities to MetalClassWrappingInterface
* remove unnecessary functions and data types
* code clean up and quality improvement

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* * Adds support for uniforms that are array
* Removing getTextureKeyword() and getTextureDeclaration() as they are not needed.
* code clean up and quality improvement

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* Remove unnecessary changes to GpuShaderUtils_tests.cpp

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* * Removed unnecessary included files

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* Removing unnecessary include

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* * Apply style improvement suggestions

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* * changed from msl_metal to msl_2 so it matches with `GpuLanguageFromString` function.

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* Move MetalShaderClassWrappingInterface to a separate file and generalise it

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* header files inlcudes clean up

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* Still the else path is needed in case we set language from MSL2 to something else.

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* [minor] Showing the GpuShaderClassWrapper.h also in the vc15 aftereffect project.

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* Run ClassWrapper function for all backends. It only produces code in metal shading language code generation case.
operator= for GpuShaderClassWrapper

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* use factory pattern instead of updateClassWrappingInterface

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* Replace assignment operator with clone function that is more explicit.

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* use Assignment operator instead of setting members in clone member function

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* add include guards.

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* make output of MetalShaderClassWrapper::operator= non-const

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* Update default branch name (#1532)

Signed-off-by: Michael Dolan <michdolan@gmail.com>

Co-authored-by: Patrick Hodoul <patrick.hodoul@autodesk.com>
Signed-off-by: Morteza Mostajab <smostajabodaveh@apple.com>

* Adsk Contrib - Default to C++14 and remove OIIO from ocioperf (#1516)

* Adsk Contrib - Default to C++14 and remove OIIO from ocioperf

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>

* Fix cmake breaks

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>

* Fix bit-depths

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>

* Fix Linux build break

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>

* Improve the image generation

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>

* Improve the image generation

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>
Signed-off-by: Morteza Mostajab <smostajabodaveh@apple.com>

* Add metal rendering support to ociodisplay

Signed-off-by: Morteza Mostajab <smostajabodaveh@apple.com>

* Adds support for metal only input texture

Signed-off-by: Morteza Mostajab <smostajabodaveh@apple.com>

* Returning correct value for maximum texture width

Signed-off-by: Morteza Mostajab <smostajabodaveh@apple.com>

* Add GPU rendering tests for metal renderer
Fixes incorrect shader generation code for arrays in uniform buffer
Adds support for vector comparison in Metal

Signed-off-by: Morteza Mostajab <smostajabodaveh@apple.com>

* Fixes failing test_cpu_exec test
Fixes compilation error on Linux, older clang compiler
Makes the app working on x64 Macs

Signed-off-by: Morteza Mostajab <smostajabodaveh@apple.com>

* Add support for test that apply color correction multiple times with different setups
replaces asserts with exception
Disables fast math to get more accurate results

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* Matching the uniform buffer size elements for array of ints and float to fix two gpu tests

Signed-off-by: Morteza Mostajab <smostajabodaveh@apple.com>

* enables -gpuinfo to print shader

Signed-off-by: Morteza Mostajab <smostajabodaveh@apple.com>

* Revert "Matching the uniform buffer size elements for array of ints and float to fix two gpu tests"

This reverts commit c1695e20b336c54c618a541cc47311a61399457b.

Signed-off-by: Morteza Mostajab <smostajabodaveh@apple.com>

* Enables uniform data binding for metal without touching OCIO interface

Signed-off-by: Morteza Mostajab <smostajabodaveh@apple.com>

* set dummy buffers for the vectors that are empty.

Signed-off-by: Morteza Mostajab <smostajabodaveh@apple.com>

* Update metal test to reflect latest changes in metal shader generator

Signed-off-by: Morteza Mostajab <smostajabodaveh@apple.com>

* Improving coding style
Adds metal gpu unit tests to the one executing

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* Updating the test so it reflects latest code changes.

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* sets the opengl state even when no valid ocio config is loaded.

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* Handles metal resources lifecycles correctly. Fixes the crash on transform change.

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* Applying improvements to code and minor fixes

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* Disable testing NaN and Infinity on Apple Silicon that causes test failures and precision errors

Signed-off-by: Morteza Mostajab <smostajabodaveh@apple.com>

* make the condition for disabling NaN and INFs more accurate.

Signed-off-by: Morteza Mostajab <smostajabodaveh@apple.com>

* Improving code quality
Fixing possible texture mem leaks

Signed-off-by: Morteza Mostajab <smostajabodaveh@apple.com>

Co-authored-by: Ingthor Hjalmarsson <ihjalmarsson@apple.com>
Co-authored-by: Patrick Hodoul <patrick.hodoul@autodesk.com>
Co-authored-by: Michael Dolan <michdolan@gmail.com>
2021-12-13 17:18:21 -05:00
Rémi AchardandPatrick Hodoul 3c1262cf34 Fixes C++20 compilation errors and warnings (#1542)
* Remove unneeded explicit default causing warnings

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Add Python 3.10 to the list of supported version

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Allow usage of C++20 while still reporting a warning

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Fix equality operator for OpData hierarchy under C++20 reversed candidates rule

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Fix comment encoding

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Account for C++20 utf-8 character types

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Fix warning on MD5 alignment check

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Add festure macro header

Signed-off-by: Rémi Achard <remiachard@gmail.com>

Co-authored-by: Patrick Hodoul <patrickhodoul@gmail.com>
2021-12-13 13:42:45 -05:00
doug-walkerandPatrick Hodoul 0411f4101e Adsk Contrib - Fix RGB spline curve inversion when the slope is zero (#1539)
* Fix RGBCurve inverse when slope=0

Signed-off-by: Doug Walker <Doug.Walker@autodesk.com>

* Add GPU fix and test

Signed-off-by: Doug Walker <Doug.Walker@autodesk.com>

* Tweak var name

Signed-off-by: Doug Walker <Doug.Walker@autodesk.com>

Co-authored-by: Patrick Hodoul <patrick.hodoul@autodesk.com>
2021-12-09 16:10:54 -05:00
amysparkandPatrick Hodoul b2f927bcff Implement locale-agnostic number parsing (#1496)
This commit adds support for parsing numbers without being influenced by
the current system locale. We implement a from_chars
shim that forwards the call to strto*_l along with a statically
initialized locale constant.

Fixes AcademySoftwareFoundation#297
Fixes AcademySoftwareFoundation#379
Fixes AcademySoftwareFoundation#1322

Co-Authored-By: Patrick Hodoul <Patrick.Hodoul@autodesk.com>

Signed-off-by: L. E. Segovia <13498015+amyspark@users.noreply.github.com>
2021-12-08 09:22:04 -05:00
Rémi AchardandPatrick Hodoul 0b88134730 Update analysis workflow (#1515)
* Disable Wheel build on OCIO forks

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Bump yaml-cpp minimum version to 0.7.0

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Bump expat minimum version to 2.4.1

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* ExternalProject build on Windows were always debug

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Expand analysis workflow and allow for ExternalProject latest

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Add missing ci script

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Handle OCIO_INSTALL_EXT_PACKAGES set to NONE

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Enable mac OS Python 3.10 wheels

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Remove latest version override for non-ASWF dependencies

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Install OSL latest in analysis CI

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Add pugixml install script, build in release mode

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Fix test dependency install on Windows CI

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Adjust ext versions

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Update analysis workflow trigger condition

Signed-off-by: Rémi Achard <remiachard@gmail.com>

Co-authored-by: Patrick Hodoul <patrick.hodoul@autodesk.com>
2021-12-06 13:52:03 -05:00
Patrick Hodoul 03ef2107fc Adsk Contrib - Fix some weaknesses in the search path validation (#1535)
* Adsk Contrib - Fix some weaknesses in the search path validation

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>

* Fix the Windows path in the unit test validations

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>

* Fix the Windows path in the unit test validations, part II

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>
2021-12-01 15:05:32 -05:00
Patrick Hodoul 5dc9c51049 Adsk Contrib - Default to C++14 and remove OIIO from ocioperf (#1516)
* Adsk Contrib - Default to C++14 and remove OIIO from ocioperf

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>

* Fix cmake breaks

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>

* Fix bit-depths

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>

* Fix Linux build break

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>

* Improve the image generation

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>

* Improve the image generation

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>
2021-11-23 15:40:25 -05:00
Michael DolanandPatrick Hodoul 64dccadba1 Update default branch name (#1532)
Signed-off-by: Michael Dolan <michdolan@gmail.com>

Co-authored-by: Patrick Hodoul <patrick.hodoul@autodesk.com>
2021-11-08 09:57:36 -05:00
ce85939bb0 Fix add_test calls and change temporary file creation. (#1522)
* * Fix add_test in cmake files. This notation allows it to understand that the command portion is a target and to translate it to the proper executable.
* Remove starting backslash if present from temporary filename. A starting backslash mean that it is safe to create it in the current working directory.
* Implement a public TempFile class.
* Change relevant tests to use TempFile class.

Signed-off-by: Patrick Northon <northon_patrick3@yahoo.ca>

* * Revert back changes for TempFile class.
* Add comment on temporary file functions fix.

Signed-off-by: Patrick Northon <northon_patrick3@yahoo.ca>

* Add FIXME comments.

Signed-off-by: Patrick Northon <northon_patrick3@yahoo.ca>

* Add -C flag to ctest commands.

Signed-off-by: Patrick Northon <northon_patrick3@yahoo.ca>

* Add `-C Release` to ctest commands in `analysis_workflow.yml`.

Signed-off-by: Patrick Northon <northon_patrick3@yahoo.ca>

Co-authored-by: Patrick Hodoul <patrick.hodoul@autodesk.com>
Co-authored-by: Rémi Achard <remiachard@gmail.com>
2021-11-04 12:58:38 -04:00
b2e88b195c Adds Metal Shading Language (MSL) Generation support (#1520)
* * Adds Metal Shading Language (MSL) Generation support

Signed-off-by: Morteza Mostajabodaveh <smostajabodaveh@apple.com>

Co-authored-by: Ingthor Hjalmarsson <ihjalmarsson@apple.com>
Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* * Fixes warnings triggered due to unused variables.

Signed-off-by: Morteza Mostajabodaveh <smostajabodaveh@apple.com>
Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* * Fixes compilation error on Mac and Windows:
- vector of const objects causing compiler errors on windows.
- Wrong string was used for Metal language python binding.

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* * Removes class wrapping interface from OpenColorIO interface and move it to implementation
* Adding more tests for metal code path
* Proper generated Metal code indentation
* Fixes a few coding style inconsistencies and unneeded include files

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* Remove the unneeded empty line to reset OpenColorIO.h to what it was before the metal change.

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* * switching from c-like getFunctionParameters function to c++-like one since it is not in the opencolorio interface anymore.

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* Missing include causing compiler errors on windows

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* * Fixes and improvements follow up to change that was trying to move metal related code in implementation, and hide them from OCIO interface.

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* - remove unused variables.

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* * Adds support for uniform parameters and proper handling of them in metal code.
* Adds two new tests for uniforms and helper functions.

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* * making declaration parsing more C++-like. Functions like sscanf are problematic when it comes to multiple platform support and may not be safe

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* * Switching from clf/lut1d_half_domain_raw_half_set.clf  to clf/lut1d_long.clf. Due to decimal number outputting difference between different platforms, some tests were failing.

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* * Moving Metal only functionalities to MetalClassWrappingInterface
* remove unnecessary functions and data types
* code clean up and quality improvement

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* * Adds support for uniforms that are array
* Removing getTextureKeyword() and getTextureDeclaration() as they are not needed.
* code clean up and quality improvement

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* Remove unnecessary changes to GpuShaderUtils_tests.cpp

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* * Removed unnecessary included files

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* Removing unnecessary include

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* * Apply style improvement suggestions

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* * changed from msl_metal to msl_2 so it matches with `GpuLanguageFromString` function.

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* Move MetalShaderClassWrappingInterface to a separate file and generalise it

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* header files inlcudes clean up

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* Still the else path is needed in case we set language from MSL2 to something else.

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* [minor] Showing the GpuShaderClassWrapper.h also in the vc15 aftereffect project.

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* Run ClassWrapper function for all backends. It only produces code in metal shading language code generation case.
operator= for GpuShaderClassWrapper

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* use factory pattern instead of updateClassWrappingInterface

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* Replace assignment operator with clone function that is more explicit.

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* use Assignment operator instead of setting members in clone member function

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* add include guards.

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

* make output of MetalShaderClassWrapper::operator= non-const

Signed-off-by: Morteza Mostajab <smostajabodaveh@Apple.com>

Co-authored-by: Ingthor Hjalmarsson <ihjalmarsson@apple.com>
Co-authored-by: Patrick Hodoul <patrick.hodoul@autodesk.com>
2021-11-02 09:38:42 -04:00
Patrick Hodoul ae1940b700 Adsk Contrib - Fix the CDL write for CLF file format (#1526)
Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>
2021-11-01 09:07:52 -04:00
Mei ChuandPatrick Hodoul f0c1ea2491 ConfigTest - Virtual display python unit test (#1481)
* -ConfigTest: Python unit test updated with additional virtual display tests.

Signed-off-by: Mei Chu <meimchu@gmail.com>

* -ConfigTest: Addressed feedbacks.

Signed-off-by: Mei Chu <meimchu@gmail.com>

* -ConfigTest: Addressing feedbacks on typos.
Signed-off-by: Mei Chu <meimchu@gmail.com>

Co-authored-by: Patrick Hodoul <patrick.hodoul@autodesk.com>
2021-10-31 17:51:38 -04:00
itsmattkc d074757a90 Fixes Unicode paths on Windows (#1363)
* Fixes Unicode paths on Windows

Unlike most other platforms, Windows' Unicode is standardized around
UTF-16, an encoding not compatible with "char *" arrays common in
C/C++. As such, to support Unicode correctly when using Win32 APIs,
strings must be converted to and from UTF-16 and the Unicode
versions of the APIs must be used over the ANSI versions.

This commit introduces the following:

- Utility funcions for converting between UTF-8 and UTF-16LE on all
  platforms:
  - Platform::Utf8ToUtf16
  - Platform::Utf16ToUtf8

- Adds test for these conversion functions to ensure the conversion
  to and from UTF-8 and UTF-16LE is correct.

- Utility wrappers for "std::ifstream" that automatically convert
  to and from UTF-16 so that filenames requiring Unicode encoding
  function correctly:
  - Platform::CreateInputFileStream
  - Platform::OpenInputFileStream

- Moves the file default compute hash function to the Platform
  class (Platform::CreateFileContentHash) and switches to the
  Win32 UTF-16 variant on Windows.

- Adds the "UNICODE" macro before including "Windows.h" which
  ensures all functions called are the Unicode variants instead of
  the default ANSI variants.
  - Implicitly changes functions such as GetEnvironmentVariable and
    SetEnvironmentVariable to their Unicode variants.

- Changes the following environment variable related functions to
  their Win32 Unicode variants on Windows:
  - environ -> _wenviron
  - _putenv_s -> _wputenv_s

- Updates tests using SetEnvironmentVariable to use wide string
  literals since that function has been switched to the Unicode
  variant.

Signed-off-by: itsmattkc <itsmattkc@gmail.com>

* Moved UNICODE and _UNICODE definitions to CMake

Signed-off-by: itsmattkc <34096995+itsmattkc@users.noreply.github.com>

* handle empty strings and use const references

Signed-off-by: itsmattkc <34096995+itsmattkc@users.noreply.github.com>

* only use wenviron when unicode is enabled

Signed-off-by: itsmattkc <itsmattkc@gmail.com>

* add ANSI Win32 version of Getenv

Signed-off-by: itsmattkc <itsmattkc@gmail.com>

* Add CMake option for compiling with Win32 Unicode support

Signed-off-by: itsmattkc <itsmattkc@gmail.com>

* Throw exception if UTF functions are called on non-Windows platforms

Signed-off-by: itsmattkc <itsmattkc@gmail.com>

* Throw OCIO Exception

Signed-off-by: itsmattkc <itsmattkc@gmail.com>

* Don't run UTF-8/16 conversion test on non-Windows

Signed-off-by: itsmattkc <34096995+itsmattkc@users.noreply.github.com>

* Fix CMake error

Signed-off-by: itsmattkc <34096995+itsmattkc@users.noreply.github.com>

* minor CMake adjustment

Signed-off-by: itsmattkc <itsmattkc@gmail.com>

* Clarified CMake option for Win32 unicode

Signed-off-by: itsmattkc <34096995+itsmattkc@users.noreply.github.com>

* minor improvements

Signed-off-by: itsmattkc <34096995+itsmattkc@users.noreply.github.com>

* fix macro in cpu test cmake

Signed-off-by: itsmattkc <34096995+itsmattkc@users.noreply.github.com>
2021-10-29 16:55:49 -04:00
Patrick Hodoul 56ef7f50ee Adsk Contrib - Improve the OSL unit test framework (#1514)
* Adsk Contrib - Improve the OSL unit test framework

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>

* Fix a Linux build break

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>

* Fix a 'git rebase' break

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>

* Some improvements

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>

* Workaround to sucesfully link with OSL

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>

* Found the right fix

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>

* Add more tests for Grading ops

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>

* Improve OSL library find

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>

* Fix with OpenImageIO version requires C++14

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>

* Another OSL cmake improvement

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>
2021-10-26 16:52:44 -04:00
Guillaume Papin e3dfb286ea CMake: remove duplicate find_package(pybind11 ...) (#1521)
This duplicate seems to come from the PR #1371.
This PR spanned April 15 - August 24 (2021).

Meanwhile, PR #1410 (June 13 - June 21),
changed the CMake logic around `find_package(pybind11 ...)`.

It looks like former PR mishandled the merge of the latter.

Signed-off-by: Guillaume Papin <guillaume.papin@epitech.eu>
2021-10-26 14:07:33 -04:00
4a6745ac0c Add Python GPU renderer implementation example (#1493)
* Add Python GPU renderer implementation example

Signed-off-by: Michael Dolan <michdolan@gmail.com>

* Move to apps with README

Signed-off-by: Michael Dolan <michdolan@gmail.com>

Co-authored-by: Patrick Hodoul <patrick.hodoul@autodesk.com>
Co-authored-by: Rémi Achard <remiachard@gmail.com>
2021-10-18 11:11:24 -04:00
Henry Schreiner 59316cf3db chore: update to new cibuildwheel location (#1513)
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
2021-10-14 16:36:54 -04:00
Bo ZhouandPatrick Hodoul ac8290d232 Write converted image with output colorspace (#1420) (#1500)
* Write converted image with output colorspace (#1420)

Signed-off-by: Bo Zhou <Bo.Schwarzstein@gmail.com>

* Check if outputcolorspace is null and set it as oiio:ColorSpace (#1460)

Signed-off-by: Bo Zhou <Bo.Schwarzstein@gmail.com>

* Call getDisplayViewColorSpaceName to get output colorspace for view mode. #1420

Signed-off-by: Bo Zhou <Bo.Schwarzstein@gmail.com>

Co-authored-by: Patrick Hodoul <patrick.hodoul@autodesk.com>
2021-10-06 08:23:47 -04:00
Rémi AchardandPatrick Hodoul 18a9392fd8 Remove Python wheel workflow running on every pull request (#1503)
Signed-off-by: Rémi Achard <remiachard@gmail.com>

Co-authored-by: Patrick Hodoul <patrick.hodoul@autodesk.com>
2021-10-05 13:47:10 -04:00
Rémi AchardandPatrick Hodoul 93c3689c58 Fix install paths regressions (#1502)
* Fix install directory variable for python bindings

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Remove hardcoded lib prefix in RPATH handling

Signed-off-by: Rémi Achard <remiachard@gmail.com>

Co-authored-by: Patrick Hodoul <patrick.hodoul@autodesk.com>
2021-10-04 14:28:19 -04:00
Patrick Hodoul 25f0a2022d Adsk Contrib - Fix the analysis workflow (#1492)
Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>
2021-09-30 16:50:44 -04:00
Patrick Hodoul a69c24807c Adsk contrib - Various improvements (#1489)
* Adsk Contrib - Small oiiohelper improvement

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>

* Try to fix some memory issues report by valgrind

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>

* Improve ctest support and add another check for OpenImageIO

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>

* Fix Windows build failure

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>

* Fix binary names on Windows

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>

* Improve code around FixedFunction Ops

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>

* Improve ctest support

Signed-off-by: hodoulp <Patrick.Hodoul@autodesk.com>

* Fix cmake

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>
2021-09-30 14:48:39 -04:00
amyspark 83fd8335d9 Add support for OpenGL ES as a shading language (#1497)
* Add support for OpenGL ES as a shading language

This commit adds two new entries to `GpuLanguage`,
`GPU_LANGUAGE_GLSL_ES_1_0` and `GPU_LANGUAGE_GLSL_ES_3_0`.

The only meaningful differences w.r.t. stock OpenGL are:

- the 1D texture optimization isn't applied to ES, as they are not
  supported at all;

- the texture<N>D() calls are replaced in GLSL ES 3 by a call to
  texture().

Fixes #1486

Signed-off-by: L. E. Segovia <13498015+amyspark@users.noreply.github.com>

* GLSL ES: remove ABI break

Signed-off-by: L. E. Segovia <13498015+amyspark@users.noreply.github.com>

* OpenGLBuilder: use switch to check GLSL version

Signed-off-by: L. E. Segovia <13498015+amyspark@users.noreply.github.com>
2021-09-27 13:31:26 -04:00
amysparkandPatrick Hodoul c912f0173f Add support for MinGW (#1485)
In these cases the build system doesn't add a suffix to yaml-cpp.

Signed-off-by: L. E. Segovia <13498015+amyspark@users.noreply.github.com>

Co-authored-by: Patrick Hodoul <patrick.hodoul@autodesk.com>
2021-09-21 16:13:12 -04:00
amysparkandPatrick Hodoul 521d4eedb3 FindExpat: allow usage of expat 2.2.9 (#1483)
- alias expat::expat to expat::libexpat if the former is missing
- patch INTERFACE_INCLUDE_DIRECTORIES if the property is missing

Fixes #1482.

Signed-off-by: L. E. Segovia <13498015+amyspark@users.noreply.github.com>

Co-authored-by: Patrick Hodoul <patrick.hodoul@autodesk.com>
2021-09-21 10:21:45 -04:00
Michael DolanandPatrick Hodoul 7578fee749 Add Rémi Achard to GOVERNANCE.md & COMMITTERS.md (#1498)
* Add Rémi Achard to GOVERNANCE.md

Signed-off-by: Michael Dolan <michdolan@gmail.com>

* Add Rémi Achard to COMMITTERS.md

Signed-off-by: Michael Dolan <michdolan@gmail.com>

Co-authored-by: Patrick Hodoul <patrick.hodoul@autodesk.com>
2021-09-21 08:15:16 -04:00
Patrick Hodoul 9bc971179b Adsk Contrib - Remove the useless cmake target on oiiotool (#1477)
* Adsk Contrib - REmove the useless cmake target on oiiotool

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>

* Improve the OIIO Util library support

Signed-off-by: hodoulp <Patrick.Hodoul@autodesk.com>
2021-09-16 08:45:16 -04:00
Patrick Hodoul 7d704f6f0b Checnge master branch to the verison '2.2.0dev' (#1475)
Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>
2021-09-15 15:46:32 -04:00
Rémi AchardandPatrick Hodoul 641abe535f Remove OpenColorIOHeaders target and hardcoded install paths (#1471)
* Remove OpenColorIOHeaders target

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Avoid hardcoding install paths

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Update remaining hardcoded install paths

Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Replace LIB_SUFFIX by CMAKE_INSTALL_LIBDIR

Signed-off-by: Rémi Achard <remiachard@gmail.com>

Co-authored-by: Patrick Hodoul <patrick.hodoul@autodesk.com>
2021-09-09 14:47:20 -04:00
Patrick Hodoul 959b3f79f5 Adsk Contrib - Better manage Imath dependency (#1478)
* Adsk Contrib - Better manage Imath dependency

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>

* Add the OpenImageIO_Util dependency to OSL unit test framework

Signed-off-by: hodoulp <Patrick.Hodoul@autodesk.com>

* Fix oiio typo

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>
2021-09-08 07:56:34 -04:00
720 changed files with 73796 additions and 8502 deletions
+14 -117
View File
@@ -7,130 +7,27 @@
name: Analysis
on:
pull_request:
branches-ignore:
- RB-0.*
- RB-1.*
- gh-pages
tags-ignore:
- v0.*
- v1.*
paths:
- .github/workflows/analysis_workflow.yml
schedule:
# Nightly build
- cron: "0 0 * * *"
jobs:
# ---------------------------------------------------------------------------
# Latest ext packages
# ---------------------------------------------------------------------------
linux_latest:
name: 'Linux CentOS 7 VFX CY${{ matrix.vfx-cy }} latest
<${{ matrix.compiler-desc }}
cxx=${{ matrix.cxx-standard }},
docs=${{ matrix.build-docs }}>'
# Don't run on OCIO forks
if: github.repository == 'AcademySoftwareFoundation/OpenColorIO'
# GH-hosted VM. The build runs in CentOS 7 'container' defined below.
runs-on: ubuntu-latest
container:
# DockerHub: https://hub.docker.com/u/aswf
# Source: https://github.com/AcademySoftwareFoundation/aswf-docker
image: aswf/ci-base:${{ matrix.vfx-cy }}
strategy:
matrix:
build: [1, 2, 3, 4]
include:
# -------------------------------------------------------------------
# GCC
# -------------------------------------------------------------------
# VFX CY2022, C++17, docs, OpenFX
- build: 1
build-docs: 'ON'
build-openfx: 'ON'
cxx-standard: 17
cxx-compiler: g++
cc-compiler: gcc
compiler-desc: GCC 9.3.1
vfx-cy: 2022
# VFX CY2021, C++14
- build: 2
build-docs: 'OFF'
build-openfx: 'OFF'
cxx-standard: 14
cxx-compiler: g++
cc-compiler: gcc
compiler-desc: GCC 9.3.1
vfx-cy: 2021
# -------------------------------------------------------------------
# Clang
# -------------------------------------------------------------------
# VFX CY2022, C++17
- build: 3
build-docs: 'OFF'
build-openfx: 'OFF'
cxx-standard: 17
cxx-compiler: clang++
cc-compiler: clang
compiler-desc: Clang 9
vfx-cy: 2022
# VFX CY2021, C++14, docs, OpenFX
- build: 4
build-docs: 'ON'
build-openfx: 'ON'
cxx-standard: 14
cxx-compiler: clang++
cc-compiler: clang
compiler-desc: Clang 9
vfx-cy: 2021
env:
CXX: ${{ matrix.cxx-compiler }}
CC: ${{ matrix.cc-compiler }}
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install docs env
run: share/ci/scripts/linux/yum/install_docs_env.sh
if: matrix.build-docs == 'ON'
- name: Install tests env
run: share/ci/scripts/linux/yum/install_tests_env.sh
- name: Install latest ext package versions
run: |
share/ci/scripts/linux/install_expat.sh latest
share/ci/scripts/linux/install_lcms2.sh latest
share/ci/scripts/linux/install_yaml-cpp.sh latest
share/ci/scripts/linux/install_pystring.sh latest
share/ci/scripts/linux/install_pybind11.sh latest
share/ci/scripts/linux/install_openexr.sh latest
share/ci/scripts/linux/install_imath.sh latest
share/ci/scripts/linux/install_oiio.sh latest
share/ci/scripts/linux/install_openfx.sh latest
- name: Create build directories
run: |
mkdir _install
mkdir _build
- name: Configure
run: |
cmake ../. \
-DCMAKE_INSTALL_PREFIX=../_install \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_STANDARD=${{ matrix.cxx-standard }} \
-DOCIO_BUILD_DOCS=${{ matrix.build-docs }} \
-DOCIO_BUILD_OPENFX=${{ matrix.build-openfx }} \
-DOCIO_BUILD_GPU_TESTS=OFF \
-DOCIO_INSTALL_EXT_PACKAGES=NONE \
-DOCIO_WARNING_AS_ERROR=OFF \
-DPython_EXECUTABLE=$(which python)
working-directory: _build
- name: Build
run: |
cmake --build . \
--target install \
--config Release \
-- -j$(nproc)
working-directory: _build
- name: Test
run: ctest -V
working-directory: _build
# ---------------------------------------------------------------------------
# SonarCloud static analysis
# ---------------------------------------------------------------------------
linux_sonarcloud:
name: 'Linux CentOS 7 VFX CY2020 SonarCloud <GCC 6.3.1>'
name: 'Linux CentOS 7 VFX CY2022 SonarCloud <GCC 9.3.1>'
# Don't run on OCIO forks
if: github.repository == 'AcademySoftwareFoundation/OpenColorIO'
# GH-hosted VM. The build runs in CentOS 7 'container' defined below.
@@ -144,7 +41,7 @@ jobs:
CC: gcc
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v3
with:
fetch-depth: 50
- name: Install docs env
@@ -160,7 +57,7 @@ jobs:
cmake ../. \
-DCMAKE_INSTALL_PREFIX=../_install \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_STANDARD=11 \
-DCMAKE_CXX_STANDARD=14 \
-DCMAKE_CXX_FLAGS="-g -O0 -fprofile-arcs -ftest-coverage" \
-DCMAKE_CXX_OUTPUT_EXTENSION_REPLACE=ON \
-DCMAKE_EXE_LINKER_FLAGS="-lgcov" \
@@ -174,7 +71,7 @@ jobs:
run: build-wrapper-linux-x86-64 --out-dir bw_output make clean all
working-directory: _build
- name: Test
run: ctest -V
run: ctest -V -C Release
working-directory: _build
- name: Generate code coverage report
run: share/ci/scripts/linux/run_gcov.sh
+295 -222
View File
@@ -44,9 +44,14 @@ jobs:
<${{ matrix.compiler-desc }}
config=${{ matrix.build-type }},
shared=${{ matrix.build-shared }},
sse=${{ matrix.use-sse }},
simd=${{ matrix.use-simd }},
cxx=${{ matrix.cxx-standard }},
docs=${{ matrix.build-docs }}>'
docs=${{ matrix.build-docs }},
oiio=${{ matrix.use-oiio }}>'
# Avoid duplicated checks when a pull_request is opened from a local branch.
if: |
github.event_name == 'push' ||
github.event.pull_request.head.repo.full_name != github.repository
# GH-hosted VM. The build runs in CentOS 7 'container' defined below.
runs-on: ubuntu-latest
container:
@@ -58,182 +63,179 @@ jobs:
build: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
include:
# -------------------------------------------------------------------
# VFX CY2022 (Python 3.9)
# VFX CY2023 (Python 3.10)
# -------------------------------------------------------------------
# Clang, Debug, OpenFX
- build: 12
build-type: Debug
build-shared: 'ON'
build-docs: 'OFF'
build-openfx: 'ON'
use-sse: 'ON'
use-openexr-half: 'OFF'
use-simd: 'ON'
use-oiio: 'ON'
cxx-standard: 17
cxx-compiler: clang++
cc-compiler: clang
compiler-desc: Clang 9
vfx-cy: 2022
# GCC, no SSE, OpenFX
compiler-desc: Clang
vfx-cy: 2023
install-ext-packages: MISSING
- build: 11
build-type: Release
build-shared: 'ON'
build-docs: 'OFF'
build-docs: 'ON'
build-openfx: 'ON'
use-sse: 'OFF'
use-openexr-half: 'OFF'
use-simd: 'OFF'
use-oiio: 'OFF'
cxx-standard: 17
cxx-compiler: g++
cc-compiler: gcc
compiler-desc: GCC 9.3.1
vfx-cy: 2022
# GCC, static, docs
compiler-desc: GCC
vfx-cy: 2023
install-ext-packages: ALL
- build: 10
build-type: Release
build-shared: 'OFF'
build-docs: 'ON'
build-docs: 'OFF'
build-openfx: 'OFF'
use-sse: 'ON'
use-openexr-half: 'OFF'
cxx-standard: 17
use-simd: 'ON'
use-oiio: 'OFF'
cxx-standard: 11
cxx-compiler: g++
cc-compiler: gcc
compiler-desc: GCC 9.3.1
vfx-cy: 2022
compiler-desc: GCC
vfx-cy: 2023
install-ext-packages: ALL
# -------------------------------------------------------------------
# VFX CY2021 (Python 3.7)
# VFX CY2022 (Python 3.9)
# -------------------------------------------------------------------
# Clang, docs
- build: 9
build-type: Release
build-shared: 'ON'
build-docs: 'ON'
build-openfx: 'OFF'
use-sse: 'ON'
use-openexr-half: 'ON'
cxx-standard: 17
cxx-compiler: clang++
cc-compiler: clang
compiler-desc: Clang 9
vfx-cy: 2021
# Clang, static, no SSE, OpenFX
- build: 8
build-type: Release
build-shared: 'OFF'
build-docs: 'OFF'
build-openfx: 'ON'
use-sse: 'OFF'
use-openexr-half: 'ON'
cxx-standard: 17
cxx-compiler: clang++
cc-compiler: clang
compiler-desc: Clang 9
vfx-cy: 2021
# GCC, Debug
- build: 7
build-type: Debug
build-shared: 'ON'
build-docs: 'OFF'
build-openfx: 'OFF'
use-sse: 'ON'
use-openexr-half: 'ON'
build-openfx: 'ON'
use-simd: 'ON'
use-oiio: 'ON'
cxx-standard: 17
cxx-compiler: clang++
cc-compiler: clang
compiler-desc: Clang
vfx-cy: 2022
install-ext-packages: ALL
- build: 8
build-type: Release
build-shared: 'ON'
build-docs: 'ON'
build-openfx: 'ON'
use-simd: 'OFF'
use-oiio: 'OFF'
cxx-standard: 17
cxx-compiler: g++
cc-compiler: gcc
compiler-desc: GCC 9.3.1
vfx-cy: 2021
compiler-desc: GCC
vfx-cy: 2022
install-ext-packages: MISSING
- build: 7
build-type: Release
build-shared: 'OFF'
build-docs: 'OFF'
build-openfx: 'OFF'
use-simd: 'ON'
use-oiio: 'OFF'
cxx-standard: 11
cxx-compiler: g++
cc-compiler: gcc
compiler-desc: GCC
vfx-cy: 2022
install-ext-packages: ALL
# -------------------------------------------------------------------
# VFX CY2020 (Python 3.7)
# VFX CY2021 (Python 3.7)
# -------------------------------------------------------------------
# Clang, OpenFX
- build: 6
build-type: Release
build-shared: 'ON'
build-docs: 'OFF'
build-openfx: 'ON'
use-sse: 'OFF'
use-openexr-half: 'ON'
cxx-standard: 14
build-openfx: 'OFF'
use-simd: 'ON'
use-oiio: 'ON'
cxx-standard: 17
cxx-compiler: clang++
cc-compiler: clang
compiler-desc: Clang 7
vfx-cy: 2020
# GCC, static, Debug, OpenFX
compiler-desc: Clang
vfx-cy: 2021
install-ext-packages: MISSING
- build: 5
build-type: Debug
build-type: Release
build-shared: 'OFF'
build-docs: 'OFF'
build-openfx: 'ON'
use-sse: 'ON'
use-openexr-half: 'ON'
use-simd: 'OFF'
use-oiio: 'OFF'
cxx-standard: 14
cxx-compiler: g++
cc-compiler: gcc
compiler-desc: GCC 6.3.1
vfx-cy: 2020
# GCC, no SSE, docs
cxx-compiler: clang++
cc-compiler: clang
compiler-desc: Clang
vfx-cy: 2021
install-ext-packages: ALL
- build: 4
build-type: Release
build-type: Debug
build-shared: 'ON'
build-docs: 'ON'
build-docs: 'OFF'
build-openfx: 'OFF'
use-sse: 'ON'
use-openexr-half: 'ON'
cxx-standard: 14
use-simd: 'ON'
use-oiio: 'OFF'
cxx-standard: 11
cxx-compiler: g++
cc-compiler: gcc
compiler-desc: GCC 6.3.1
vfx-cy: 2020
compiler-desc: GCC
vfx-cy: 2021
install-ext-packages: ALL
# -------------------------------------------------------------------
# VFX CY2019 (Python 2.7)
# VFX CY2020 (Python 3.7)
# -------------------------------------------------------------------
# Clang, static
- build: 3
build-type: Release
build-shared: 'OFF'
# Doc build requires Python 3
build-shared: 'ON'
build-docs: 'OFF'
build-openfx: 'OFF'
use-sse: 'ON'
use-openexr-half: 'ON'
cxx-standard: 11
build-openfx: 'ON'
use-simd: 'OFF'
use-oiio: 'OFF'
cxx-standard: 14
cxx-compiler: clang++
cc-compiler: clang
compiler-desc: Clang 7
vfx-cy: 2019
# Clang, Debug, no SSE
compiler-desc: Clang
vfx-cy: 2020
install-ext-packages: MISSING
- build: 2
build-type: Debug
build-shared: 'ON'
# Doc build requires Python 3
build-shared: 'OFF'
build-docs: 'OFF'
build-openfx: 'OFF'
use-sse: 'OFF'
use-openexr-half: 'ON'
cxx-standard: 11
cxx-compiler: clang++
cc-compiler: clang
compiler-desc: Clang 7
vfx-cy: 2019
# GCC, OpenFX
build-openfx: 'ON'
use-simd: 'ON'
use-oiio: 'ON'
cxx-standard: 14
cxx-compiler: g++
cc-compiler: gcc
compiler-desc: GCC
vfx-cy: 2020
install-ext-packages: ALL
- build: 1
build-type: Release
build-shared: 'ON'
# Doc build requires Python 3
build-docs: 'OFF'
build-openfx: 'ON'
use-sse: 'ON'
use-openexr-half: 'ON'
build-openfx: 'OFF'
use-simd: 'ON'
use-oiio: 'OFF'
cxx-standard: 11
cxx-compiler: g++
cc-compiler: gcc
compiler-desc: GCC 6.3.1
vfx-cy: 2019
compiler-desc: GCC
vfx-cy: 2020
install-ext-packages: ALL
env:
CXX: ${{ matrix.cxx-compiler }}
CC: ${{ matrix.cc-compiler }}
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v3
- name: Install docs env
run: share/ci/scripts/linux/yum/install_docs_env.sh
if: matrix.build-docs == 'ON'
@@ -253,9 +255,9 @@ jobs:
-DOCIO_BUILD_DOCS=${{ matrix.build-docs }} \
-DOCIO_BUILD_OPENFX=${{ matrix.build-openfx }} \
-DOCIO_BUILD_GPU_TESTS=OFF \
-DOCIO_USE_SSE=${{ matrix.use-sse }} \
-DOCIO_USE_OPENEXR_HALF=${{ matrix.use-openexr-half }} \
-DOCIO_INSTALL_EXT_PACKAGES=ALL \
-DOCIO_USE_SIMD=${{ matrix.use-simd }} \
-DOCIO_USE_OIIO_FOR_APPS=${{ matrix.use-oiio }} \
-DOCIO_INSTALL_EXT_PACKAGES=${{ matrix.install-ext-packages }} \
-DOCIO_WARNING_AS_ERROR=ON \
-DPython_EXECUTABLE=$(which python)
working-directory: _build
@@ -265,11 +267,12 @@ jobs:
--target install \
--config ${{ matrix.build-type }} \
-- -j$(nproc)
echo "ocio_build_path=$(pwd)" >> $GITHUB_ENV
working-directory: _build
- name: Test
run: ctest -V
run: ctest -V -C ${{ matrix.build-type }}
working-directory: _build
- name: Test CMake Consumer
- name: Test CMake Consumer with shared OCIO
if: matrix.build-shared == 'ON'
run: |
cmake . \
@@ -279,93 +282,117 @@ jobs:
--config ${{ matrix.build-type }}
./consumer
working-directory: _build/tests/cmake-consumer-dist
- name: Test CMake Consumer with static OCIO
if: matrix.build-shared == 'OFF'
# The yaml-cpp_VERSION is set below because Findyaml-cpp.cmake needs it but is unable to
# extract it from the headers, like the other modules.
#
# Prefer the static version of each dependencies by using <pkg>_STATIC_LIBRARY.
# Alternatively, this can be done by setting <pkg>_LIBRARY and <pkg>_INCLUDE_DIR to
# the static version of the package.
run: |
cmake . \
-DCMAKE_PREFIX_PATH=../../../_install \
-DCMAKE_BUILD_TYPE=${{ matrix.build-type }} \
-Dexpat_ROOT=${{ env.ocio_build_path }}/ext/dist \
-Dexpat_STATIC_LIBRARY=ON \
-DImath_ROOT=${{ env.ocio_build_path }}/ext/dist \
-DImath_STATIC_LIBRARY=ON \
-Dpystring_ROOT=${{ env.ocio_build_path }}/ext/dist \
-Dyaml-cpp_ROOT=${{ env.ocio_build_path }}/ext/dist \
-Dyaml-cpp_STATIC_LIBRARY=ON \
-Dyaml-cpp_VERSION=0.7.0 \
-DZLIB_ROOT=${{ env.ocio_build_path }}/ext/dist \
-DZLIB_STATIC_LIBRARY=ON \
-Dminizip-ng_ROOT=${{ env.ocio_build_path }}/ext/dist \
-Dminizip-ng_STATIC_LIBRARY=ON
cmake --build . \
--config ${{ matrix.build-type }}
./consumer
working-directory: _build/tests/cmake-consumer-dist
# ---------------------------------------------------------------------------
# macOS
# ---------------------------------------------------------------------------
macos:
name: 'macOS 10.15
<AppleClang 11.0
name: 'macOS 11
<AppleClang
arch=${{ matrix.arch-type }},
config=${{ matrix.build-type }},
shared=${{ matrix.build-shared }},
sse=${{ matrix.use-sse }},
simd=${{ matrix.use-simd }},
cxx=${{ matrix.cxx-standard }},
python=${{ matrix.python-version }},
docs=${{ matrix.build-docs }}>'
runs-on: macos-10.15
docs=${{ matrix.build-docs }},
oiio=${{ matrix.use-oiio}}>'
# Avoid duplicated checks when a pull_request is opened from a local branch.
if: |
github.event_name == 'push' ||
github.event.pull_request.head.repo.full_name != github.repository
runs-on: macos-11
strategy:
matrix:
build: [1, 2, 3, 4, 5, 6]
build: [1, 2, 3, 4]
include:
# C++17, OpenFX
- build: 6
- build: 5
arch-type: "x86_64"
build-type: Release
build-shared: 'ON'
build-docs: 'OFF'
build-openfx: 'ON'
use-sse: 'ON'
use-openexr-half: 'OFF'
use-simd: 'ON'
use-oiio: 'ON'
cxx-standard: 17
python-version: 3.9
# C++11, Python 3.7
- build: 5
python-version: '3.11'
# Keeping one universal build
- build: 4
arch-type: "x86_64;arm64"
build-type: Release
build-shared: 'ON'
build-docs: 'OFF'
build-openfx: 'OFF'
use-simd: 'ON'
use-oiio: 'OFF'
cxx-standard: 11
python-version: '3.10'
- build: 3
arch-type: "x86_64"
build-type: Release
build-shared: 'ON'
build-docs: 'ON'
build-openfx: 'OFF'
use-sse: 'ON'
use-openexr-half: 'OFF'
use-simd: 'OFF'
use-oiio: 'OFF'
cxx-standard: 11
python-version: 3.7
# Debug, OpenFX
- build: 4
python-version: '3.10'
- build: 2
arch-type: "x86_64"
build-type: Debug
build-shared: 'ON'
build-docs: 'OFF'
build-openfx: 'ON'
use-sse: 'ON'
use-openexr-half: 'OFF'
use-simd: 'ON'
use-oiio: 'OFF'
cxx-standard: 11
python-version: 3.7
# C++14, OpenEXR, OpenFX
- build: 3
build-type: Release
build-shared: 'ON'
build-docs: 'OFF'
build-openfx: 'ON'
use-sse: 'ON'
use-openexr-half: 'ON'
cxx-standard: 14
python-version: 3.7
# Static, no SSE
- build: 2
python-version: '3.9'
- build: 1
arch-type: "x86_64"
build-type: Release
build-shared: 'OFF'
build-docs: 'OFF'
build-openfx: 'OFF'
use-sse: 'OFF'
use-openexr-half: 'OFF'
cxx-standard: 11
python-version: 3.7
# Python 2.7
- build: 1
build-type: Release
build-shared: 'ON'
# Doc build requires Python 3
build-docs: 'OFF'
build-openfx: 'OFF'
use-sse: 'ON'
use-openexr-half: 'OFF'
cxx-standard: 11
python-version: 2.7
build-openfx: 'ON'
use-simd: 'ON'
use-oiio: 'OFF'
cxx-standard: 14
python-version: '3.7'
steps:
- name: Setup Python
uses: actions/setup-python@v1
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v3
- name: Install docs env
run: share/ci/scripts/macos/install_docs_env.sh
if: matrix.build-docs == 'ON'
@@ -385,11 +412,12 @@ jobs:
-DOCIO_BUILD_DOCS=${{ matrix.build-docs }} \
-DOCIO_BUILD_OPENFX=${{ matrix.build-openfx }} \
-DOCIO_BUILD_GPU_TESTS=OFF \
-DOCIO_USE_SSE=${{ matrix.use-sse }} \
-DOCIO_USE_OPENEXR_HALF=${{ matrix.use-openexr-half }} \
-DOCIO_USE_SIMD=${{ matrix.use-simd }} \
-DOCIO_USE_OIIO_FOR_APPS=${{ matrix.use-oiio }} \
-DOCIO_INSTALL_EXT_PACKAGES=ALL \
-DOCIO_WARNING_AS_ERROR=ON \
-DPython_EXECUTABLE=$(which python)
-DPython_EXECUTABLE=$(which python) \
-DCMAKE_OSX_ARCHITECTURES="${{ matrix.arch-type }}"
working-directory: _build
- name: Build
run: |
@@ -397,11 +425,12 @@ jobs:
--target install \
--config ${{ matrix.build-type }} \
-- -j$(sysctl -n hw.ncpu)
echo "ocio_build_path=$(pwd)" >> $GITHUB_ENV
working-directory: _build
- name: Test
run: ctest -V
run: ctest -V -C ${{ matrix.build-type }}
working-directory: _build
- name: Test CMake Consumer
- name: Test CMake Consumer with shared OCIO
if: matrix.build-shared == 'ON'
run: |
cmake . \
@@ -411,6 +440,34 @@ jobs:
--config ${{ matrix.build-type }}
./consumer
working-directory: _build/tests/cmake-consumer-dist
- name: Test CMake Consumer with static OCIO
if: matrix.build-shared == 'OFF'
# The yaml-cpp_VERSION is set below because Findyaml-cpp.cmake needs it but is unable to
# extract it from the headers, like the other modules.
#
# Prefer the static version of each dependencies by using <pkg>_STATIC_LIBRARY.
# Alternatively, this can be done by setting <pkg>_LIBRARY and <pkg>_INCLUDE_DIR to
# the static version of the package.
run: |
cmake . \
-DCMAKE_PREFIX_PATH=../../../_install \
-DCMAKE_BUILD_TYPE=${{ matrix.build-type }} \
-Dexpat_ROOT=${{ env.ocio_build_path }}/ext/dist \
-Dexpat_STATIC_LIBRARY=ON \
-DImath_ROOT=${{ env.ocio_build_path }}/ext/dist \
-DImath_STATIC_LIBRARY=ON \
-Dpystring_ROOT=${{ env.ocio_build_path }}/ext/dist \
-Dyaml-cpp_ROOT=${{ env.ocio_build_path }}/ext/dist \
-Dyaml-cpp_STATIC_LIBRARY=ON \
-Dyaml-cpp_VERSION=0.7.0 \
-DZLIB_ROOT=${{ env.ocio_build_path }}/ext/dist \
-DZLIB_STATIC_LIBRARY=ON \
-Dminizip-ng_ROOT=${{ env.ocio_build_path }}/ext/dist \
-Dminizip-ng_STATIC_LIBRARY=ON
cmake --build . \
--config ${{ matrix.build-type }}
./consumer
working-directory: _build/tests/cmake-consumer-dist
# ---------------------------------------------------------------------------
# Windows
@@ -420,92 +477,77 @@ jobs:
windows:
name: 'Windows 2019
<MSVC 16.4
<MSVC
config=${{ matrix.build-type }},
shared=${{ matrix.build-shared }},
sse=${{ matrix.use-sse }},
simd=${{ matrix.use-simd }},
cxx=${{ matrix.cxx-standard }},
python=${{ matrix.python-version }},
docs=${{ matrix.build-docs }}>'
docs=${{ matrix.build-docs }},
oiio=${{ matrix.use-oiio }}>'
# Avoid duplicated checks when a pull_request is opened from a local branch.
if: |
github.event_name == 'push' ||
github.event.pull_request.head.repo.full_name != github.repository
runs-on: windows-2019
strategy:
matrix:
build: [1, 2, 3, 4, 5, 6]
build: [1, 2, 3, 4]
include:
# C++17, OpenFX
- build: 6
- build: 4
build-type: Release
build-shared: 'ON'
build-docs: 'OFF'
build-openfx: 'ON'
use-sse: 'ON'
use-openexr-half: 'OFF'
use-simd: 'OFF'
use-oiio: 'ON'
cxx-standard: 17
python-version: 3.9
# C++11, Python 3.7
- build: 5
python-version: '3.11'
- build: 3
build-type: Release
build-shared: 'ON'
build-docs: 'ON'
build-shared: 'OFF'
build-docs: 'OFF'
build-openfx: 'OFF'
use-sse: 'ON'
use-openexr-half: 'OFF'
use-simd: 'ON'
use-oiio: 'OFF'
cxx-standard: 11
python-version: 3.7
# Debug
- build: 4
python-version: '3.9'
- build: 2
build-type: Debug
build-shared: 'ON'
build-docs: 'OFF'
build-openfx: 'OFF'
use-sse: 'ON'
use-openexr-half: 'OFF'
use-simd: 'ON'
use-oiio: 'OFF'
cxx-standard: 11
python-version: 3.7
python-version: '3.8'
# C++14, OpenEXR, OpenFX
- build: 3
build-type: Release
build-shared: 'ON'
build-docs: 'OFF'
build-openfx: 'ON'
use-sse: 'ON'
use-openexr-half: 'ON'
cxx-standard: 14
python-version: 3.7
# Static, no SSE, OpenFX
- build: 2
build-type: Release
build-shared: 'OFF'
build-docs: 'OFF'
build-openfx: 'ON'
use-sse: 'OFF'
use-openexr-half: 'OFF'
cxx-standard: 11
python-version: 3.7
# Python 2.7
- build: 1
build-type: Release
build-shared: 'ON'
# Doc build requires Python 3
build-docs: 'OFF'
build-openfx: 'OFF'
use-sse: 'ON'
use-openexr-half: 'OFF'
cxx-standard: 11
python-version: 2.7
build-openfx: 'ON'
use-simd: 'ON'
use-oiio: 'OFF'
cxx-standard: 14
python-version: '3.7'
steps:
- name: Setup Python
uses: actions/setup-python@v1
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v3
- name: Install docs env
run: share/ci/scripts/windows/install_docs_env.sh
run: |
DOXYGEN_PATH=$GITHUB_WORKSPACE/doxygen
share/ci/scripts/windows/install_docs_env.sh "$DOXYGEN_PATH"
echo "$DOXYGEN_PATH" >> $GITHUB_PATH
shell: bash
if: matrix.build-docs == 'ON'
- name: Install tests env
run: share/ci/scripts/windows/install_tests_env.sh
shell: bash
- name: Create build directories
run: |
mkdir _install
@@ -522,8 +564,8 @@ jobs:
-DOCIO_BUILD_DOCS=${{ matrix.build-docs }} \
-DOCIO_BUILD_OPENFX=${{ matrix.build-openfx }} \
-DOCIO_BUILD_GPU_TESTS=OFF \
-DOCIO_USE_SSE=${{ matrix.use-sse }} \
-DOCIO_USE_OPENEXR_HALF=${{ matrix.use-openexr-half }} \
-DOCIO_USE_SIMD=${{ matrix.use-simd }} \
-DOCIO_USE_OIIO_FOR_APPS=${{ matrix.use-oiio }} \
-DOCIO_INSTALL_EXT_PACKAGES=ALL \
-DOCIO_WARNING_AS_ERROR=ON \
-DPython_EXECUTABLE=$(which python)
@@ -534,13 +576,14 @@ jobs:
cmake --build . \
--target install \
--config ${{ matrix.build-type }}
echo "ocio_build_path=$(pwd)" >> $GITHUB_ENV
shell: bash
working-directory: _build
- name: Test
run: ctest -V
run: ctest -V -C ${{ matrix.build-type }}
shell: bash
working-directory: _build
- name: Test CMake Consumer
- name: Test CMake Consumer with shared OCIO
if: matrix.build-shared == 'ON'
run: |
cmake . \
@@ -552,3 +595,33 @@ jobs:
./${{ matrix.build-type }}/consumer
shell: bash
working-directory: _build/tests/cmake-consumer-dist
- name: Test CMake Consumer with static OCIO
if: matrix.build-shared == 'OFF'
# The yaml-cpp_VERSION is set below because Findyaml-cpp.cmake needs it but is unable to
# extract it from the headers, like the other modules.
#
# Prefer the static version of each dependencies by using <pkg>_STATIC_LIBRARY.
# Alternatively, this can be done by setting <pkg>_LIBRARY and <pkg>_INCLUDE_DIR to
# the static version of the package.
run: |
cmake . \
-DCMAKE_PREFIX_PATH=../../../_install \
-DCMAKE_BUILD_TYPE=${{ matrix.build-type }} \
-Dexpat_ROOT=${{ env.ocio_build_path }}/ext/dist \
-Dexpat_STATIC_LIBRARY=ON \
-DImath_ROOT=${{ env.ocio_build_path }}/ext/dist \
-DImath_STATIC_LIBRARY=ON \
-Dpystring_ROOT=${{ env.ocio_build_path }}/ext/dist \
-Dyaml-cpp_ROOT=${{ env.ocio_build_path }}/ext/dist \
-Dyaml-cpp_STATIC_LIBRARY=ON \
-Dyaml-cpp_VERSION=0.7.0 \
-DZLIB_ROOT=${{ env.ocio_build_path }}/ext/dist \
-DZLIB_STATIC_LIBRARY=ON \
-Dminizip-ng_ROOT=${{ env.ocio_build_path }}/ext/dist \
-Dminizip-ng_STATIC_LIBRARY=ON
cmake --build . \
--config ${{ matrix.build-type }}
export PATH=../../../_install/bin:$PATH
./${{ matrix.build-type }}/consumer
shell: bash
working-directory: _build/tests/cmake-consumer-dist
+399
View File
@@ -0,0 +1,399 @@
# SPDX-License-Identifier: BSD-3-Clause
# Copyright Contributors to the OpenColorIO Project.
#
# GitHub Actions workflow file
# https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions
name: Dependencies latest
on:
pull_request:
branches-ignore:
- RB-0.*
- RB-1.*
- gh-pages
tags-ignore:
- v0.*
- v1.*
paths:
- .github/workflows/dependencies_latest.yml
schedule:
# Nightly build
- cron: "0 0 * * *"
jobs:
# ---------------------------------------------------------------------------
# Linux latest ext packages
# ---------------------------------------------------------------------------
linux_latest:
name: 'Linux CentOS 7 VFX CY${{ matrix.vfx-cy }} latest
<${{ matrix.compiler-desc }}
cxx=${{ matrix.cxx-standard }},
docs=${{ matrix.build-docs }}>'
# Don't run on OCIO forks
if: github.repository == 'AcademySoftwareFoundation/OpenColorIO'
# GH-hosted VM. The build runs in CentOS 7 'container' defined below.
runs-on: ubuntu-latest
container:
# DockerHub: https://hub.docker.com/u/aswf
# Source: https://github.com/AcademySoftwareFoundation/aswf-docker
image: aswf/ci-base:${{ matrix.vfx-cy }}
strategy:
matrix:
build: [1, 2, 3, 4]
include:
# -------------------------------------------------------------------
# GCC
# -------------------------------------------------------------------
- build: 1
build-docs: 'ON'
build-openfx: 'ON'
cxx-standard: 17
cxx-compiler: g++
cc-compiler: gcc
compiler-desc: GCC
vfx-cy: 2022
use-oiio: 'ON'
- build: 2
build-docs: 'OFF'
build-openfx: 'OFF'
cxx-standard: 14
cxx-compiler: g++
cc-compiler: gcc
compiler-desc: GCC
vfx-cy: 2021
use-oiio: 'OFF'
# -------------------------------------------------------------------
# Clang
# -------------------------------------------------------------------
- build: 3
build-docs: 'OFF'
build-openfx: 'OFF'
cxx-standard: 17
cxx-compiler: clang++
cc-compiler: clang
compiler-desc: Clang
vfx-cy: 2022
use-oiio: 'OFF'
- build: 4
build-docs: 'ON'
build-openfx: 'ON'
cxx-standard: 14
cxx-compiler: clang++
cc-compiler: clang
compiler-desc: Clang
vfx-cy: 2021
use-oiio: 'ON'
env:
CXX: ${{ matrix.cxx-compiler }}
CC: ${{ matrix.cc-compiler }}
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Install docs env
run: share/ci/scripts/linux/yum/install_docs_env.sh
if: matrix.build-docs == 'ON'
- name: Install tests env
run: share/ci/scripts/linux/yum/install_tests_env.sh
- name: Setup ext environment
run: |
EXT_PATH=/usr/local
echo "EXT_PATH=$EXT_PATH" >> $GITHUB_ENV
- name: Install indirect dependencies
run: |
share/ci/scripts/multi/install_pugixml.sh latest
- name: Install fixed ext package versions
# Minizip-ng depends on ZLIB. ZLIB must be installed first.
run: |
share/ci/scripts/multi/install_expat.sh 2.4.1 $EXT_PATH
share/ci/scripts/multi/install_lcms2.sh 2.2 $EXT_PATH
share/ci/scripts/multi/install_yaml-cpp.sh 0.7.0 $EXT_PATH
share/ci/scripts/multi/install_pystring.sh 1.1.3 $EXT_PATH
share/ci/scripts/multi/install_pybind11.sh 2.9.2 $EXT_PATH
share/ci/scripts/multi/install_zlib.sh 1.2.12 $EXT_PATH
share/ci/scripts/multi/install_minizip-ng.sh 3.0.6 $EXT_PATH
- name: Install latest ext package versions
run: |
share/ci/scripts/multi/install_imath.sh latest $EXT_PATH
share/ci/scripts/multi/install_openexr.sh latest $EXT_PATH
share/ci/scripts/multi/install_oiio.sh latest $EXT_PATH
share/ci/scripts/multi/install_osl.sh latest $EXT_PATH
share/ci/scripts/multi/install_openfx.sh latest $EXT_PATH
- name: Create build directories
run: |
mkdir _install
mkdir _build
- name: Configure
run: |
cmake ../. \
-DCMAKE_INSTALL_PREFIX=../_install \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_STANDARD=${{ matrix.cxx-standard }} \
-DOCIO_BUILD_DOCS=${{ matrix.build-docs }} \
-DOCIO_BUILD_OPENFX=${{ matrix.build-openfx }} \
-DOCIO_BUILD_GPU_TESTS=OFF \
-DOCIO_INSTALL_EXT_PACKAGES=NONE \
-DOCIO_WARNING_AS_ERROR=OFF \
-DPython_EXECUTABLE=$(which python) \
-DOCIO_USE_OIIO_FOR_APPS=${{ matrix.use-oiio }}
working-directory: _build
- name: Build
run: |
cmake --build . \
--target install \
--config Release \
-- -j$(nproc)
working-directory: _build
- name: Test
run: ctest -V -C Release
working-directory: _build
- name: Test CMake Consumer
run: |
cmake . \
-DCMAKE_PREFIX_PATH=../../../_install \
-DCMAKE_BUILD_TYPE=Release
cmake --build . \
--config Release
./consumer
working-directory: _build/tests/cmake-consumer-dist
# ---------------------------------------------------------------------------
# MacOS latest ext packages
# ---------------------------------------------------------------------------
macos-latest:
name: 'macOS latest
<AppleClang
cxx=${{ matrix.cxx-standard }},
docs=${{ matrix.build-docs }},
python=${{ matrix.python-version }}>'
# Don't run on OCIO forks
if: github.repository == 'AcademySoftwareFoundation/OpenColorIO'
runs-on: macos-latest
strategy:
matrix:
build: [1, 2]
include:
- build: 1
build-docs: 'ON'
build-openfx: 'ON'
cxx-standard: 17
python-version: '3.11'
use-oiio: 'ON'
- build: 2
build-docs: 'ON'
build-openfx: 'ON'
cxx-standard: 14
python-version: '3.9'
use-oiio: 'OFF'
steps:
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Checkout
uses: actions/checkout@v3
- name: Install docs env
run: share/ci/scripts/macos/install_docs_env.sh
if: matrix.build-docs == 'ON'
- name: Install tests env
run: share/ci/scripts/macos/install_tests_env.sh
- name: Setup ext environment
run: |
EXT_PATH=/usr/local
echo "EXT_PATH=$EXT_PATH" >> $GITHUB_ENV
- name: Install indirect dependencies
run: |
share/ci/scripts/macos/install_bison.sh latest
share/ci/scripts/macos/install_boost.sh latest
share/ci/scripts/multi/install_pugixml.sh latest $EXT_PATH
- name: Install fixed ext package versions
# Minizip-ng depends on ZLIB. ZLIB must be installed first.
run: |
share/ci/scripts/multi/install_expat.sh 2.4.1 $EXT_PATH
share/ci/scripts/multi/install_lcms2.sh 2.2 $EXT_PATH
share/ci/scripts/multi/install_yaml-cpp.sh 0.7.0 $EXT_PATH
share/ci/scripts/multi/install_pystring.sh 1.1.3 $EXT_PATH
share/ci/scripts/multi/install_pybind11.sh 2.9.2 $EXT_PATH
share/ci/scripts/multi/install_zlib.sh 1.2.12 $EXT_PATH
share/ci/scripts/multi/install_minizip-ng.sh 3.0.6 $EXT_PATH
- name: Install latest ext package versions
run: |
share/ci/scripts/multi/install_imath.sh latest $EXT_PATH
share/ci/scripts/multi/install_openexr.sh latest $EXT_PATH
share/ci/scripts/multi/install_oiio.sh latest $EXT_PATH
share/ci/scripts/multi/install_osl.sh latest $EXT_PATH
share/ci/scripts/multi/install_openfx.sh latest $EXT_PATH
- name: Create build directories
run: |
mkdir _install
mkdir _build
- name: Configure
run: |
cmake ../. \
-DCMAKE_INSTALL_PREFIX=../_install \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_STANDARD=${{ matrix.cxx-standard }} \
-DOCIO_BUILD_DOCS=${{ matrix.build-docs }} \
-DOCIO_BUILD_OPENFX=${{ matrix.build-openfx }} \
-DOCIO_BUILD_GPU_TESTS=OFF \
-DOCIO_INSTALL_EXT_PACKAGES=NONE \
-DOCIO_WARNING_AS_ERROR=OFF \
-DPython_EXECUTABLE=$(which python) \
-DOCIO_USE_OIIO_FOR_APPS=${{ matrix.use-oiio }}
working-directory: _build
- name: Build
run: |
cmake --build . \
--target install \
--config Release \
-- -j$(sysctl -n hw.ncpu)
working-directory: _build
- name: Test
run: ctest -V -C Release
working-directory: _build
- name: Test CMake Consumer
run: |
cmake . \
-DCMAKE_PREFIX_PATH=../../../_install \
-DCMAKE_BUILD_TYPE=Release
cmake --build . \
--config Release
./consumer
working-directory: _build/tests/cmake-consumer-dist
# ---------------------------------------------------------------------------
# Windows latest ext packages
# ---------------------------------------------------------------------------
windows-latest:
name: 'Windows latest
<MSVC
cxx=${{ matrix.cxx-standard }},
docs=${{ matrix.build-docs }},
python=${{ matrix.python-version }}>'
# Don't run on OCIO forks
if: github.repository == 'AcademySoftwareFoundation/OpenColorIO'
runs-on: windows-latest
strategy:
matrix:
build: [1, 2]
include:
- build: 1
build-docs: 'ON'
build-openfx: 'ON'
cxx-standard: 17
python-version: '3.11'
use-oiio: 'ON'
- build: 2
build-docs: 'ON'
build-openfx: 'ON'
cxx-standard: 14
python-version: '3.9'
use-oiio: 'OFF'
steps:
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Checkout
uses: actions/checkout@v3
- name: Install docs env
run: |
DOXYGEN_PATH=$GITHUB_WORKSPACE/doxygen
share/ci/scripts/windows/install_docs_env.sh "$DOXYGEN_PATH"
echo "$DOXYGEN_PATH" >> $GITHUB_PATH
shell: bash
if: matrix.build-docs == 'ON'
- name: Install tests env
run: share/ci/scripts/windows/install_tests_env.sh
shell: bash
- name: Setup ext environment
run: |
EXT_PATH=$GITHUB_WORKSPACE/_ext
VCPKG_ROOT=$VCPKG_INSTALLATION_ROOT/installed/x64-windows
echo "EXT_PATH=$EXT_PATH" >> $GITHUB_ENV
echo "CMAKE_PREFIX_PATH=$VCPKG_ROOT;$EXT_PATH" >> $GITHUB_ENV
echo "$VCPKG_ROOT/bin" >> $GITHUB_PATH
echo "$EXT_PATH/bin" >> $GITHUB_PATH
mkdir $EXT_PATH
shell: bash
- name: Install indirect dependencies
run: |
vcpkg install zlib:x64-windows
vcpkg install tiff:x64-windows
vcpkg install boost-asio:x64-windows
vcpkg install boost-container:x64-windows
vcpkg install boost-filesystem:x64-windows
vcpkg install boost-math:x64-windows
vcpkg install boost-stacktrace:x64-windows
vcpkg install boost-system:x64-windows
vcpkg install boost-thread:x64-windows
share/ci/scripts/multi/install_pugixml.sh latest $EXT_PATH
shell: bash
- name: Install fixed ext package versions
# Minizip-ng depends on ZLIB. ZLIB must be installed first.
run: |
share/ci/scripts/multi/install_lcms2.sh 2.2 $EXT_PATH
share/ci/scripts/multi/install_yaml-cpp.sh 0.7.0 $EXT_PATH
share/ci/scripts/multi/install_pystring.sh 1.1.3 $EXT_PATH
share/ci/scripts/multi/install_pybind11.sh 2.9.2 $EXT_PATH
share/ci/scripts/multi/install_expat.sh 2.4.1 $EXT_PATH
share/ci/scripts/multi/install_zlib.sh 1.2.12 $EXT_PATH
share/ci/scripts/multi/install_minizip-ng.sh 3.0.6 $EXT_PATH
shell: bash
# OSL not installed due to LLVM compilation time.
- name: Install latest ext package versions
run: |
share/ci/scripts/multi/install_imath.sh latest $EXT_PATH
share/ci/scripts/multi/install_openexr.sh latest $EXT_PATH
share/ci/scripts/multi/install_oiio.sh latest $EXT_PATH
share/ci/scripts/multi/install_openfx.sh latest $EXT_PATH
shell: bash
- name: Create build directories
run: |
mkdir _install
mkdir _build
shell: bash
- name: Configure
run: |
cmake ../. \
-DCMAKE_INSTALL_PREFIX=../_install \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_STANDARD=${{ matrix.cxx-standard }} \
-DCMAKE_GENERATOR_PLATFORM=x64 \
-DOCIO_BUILD_DOCS=OFF \
-DOCIO_BUILD_OPENFX=${{ matrix.build-openfx }} \
-DOCIO_BUILD_GPU_TESTS=OFF \
-DOCIO_INSTALL_EXT_PACKAGES=NONE \
-DOCIO_WARNING_AS_ERROR=OFF \
-DPython_EXECUTABLE=$(which python) \
-DOCIO_BUILD_PYTHON=OFF \
-DOCIO_USE_OIIO_FOR_APPS=${{ matrix.use-oiio }}
shell: bash
working-directory: _build
- name: Build
run: |
cmake --build . \
--target install \
--config Release \
--parallel
shell: bash
working-directory: _build
- name: Test
run: |
ctest -V -C Release
shell: bash
working-directory: _build
- name: Test CMake Consumer
run: |
cmake . \
-DCMAKE_PREFIX_PATH=../../../_install \
-DCMAKE_BUILD_TYPE=Release
cmake --build . \
--config Release
export PATH=../../../_install/bin:$PATH
./Release/consumer
shell: bash
working-directory: _build/tests/cmake-consumer-dist
+2 -2
View File
@@ -33,13 +33,13 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v1
uses: aws-actions/configure-aws-credentials@v2
with:
aws-access-key-id: ${{ secrets.CODEBUILD_ID }}
aws-secret-access-key: ${{ secrets.CODEBUILD_SECRET }}
aws-region: us-west-2
- name: Run CodeBuild
uses: aws-actions/aws-codebuild-run-project@v1.0.0
uses: aws-actions/aws-codebuild-run-build@v1
with:
project-name: OpenColorIO
buildspec-override: buildspec.yml
+396
View File
@@ -0,0 +1,396 @@
# SPDX-License-Identifier: BSD-3-Clause
# Copyright Contributors to the OpenColorIO Project.
#
# GitHub Actions workflow file
# https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions
name: Platform latest
on:
pull_request:
branches-ignore:
- RB-0.*
- RB-1.*
- gh-pages
tags-ignore:
- v0.*
- v1.*
paths:
- .github/workflows/platform_latest.yml
schedule:
# Nightly build
- cron: "0 0 * * *"
jobs:
# ---------------------------------------------------------------------------
# Linux latest ext packages
# ---------------------------------------------------------------------------
linux_latest:
name: 'Linux Ubuntu latest
<${{ matrix.compiler-desc }}
config=${{ matrix.build-type }},
shared=${{ matrix.build-shared }},
cxx=${{ matrix.cxx-standard }}>'
# Don't run on OCIO forks
if: github.repository == 'AcademySoftwareFoundation/OpenColorIO'
runs-on: ubuntu-latest
strategy:
matrix:
build: [1, 2, 3, 4]
include:
# -------------------------------------------------------------------
# GCC
# -------------------------------------------------------------------
- build: 1
build-python: ON
build-type: Release
build-shared: ON
cxx-standard: 20
cxx-compiler: g++
cc-compiler: gcc
compiler-desc: GCC
enable-sanitizer: OFF
- build: 2
build-python: OFF
build-type: Debug
build-shared: ON
cxx-standard: 20
cxx-compiler: g++
cc-compiler: gcc
compiler-desc: GCC
enable-sanitizer: ON
# -------------------------------------------------------------------
# Clang
# -------------------------------------------------------------------
- build: 3
build-python: ON
build-type: Release
build-shared: ON
cxx-standard: 20
cxx-compiler: clang++
cc-compiler: clang
compiler-desc: Clang
enable-sanitizer: OFF
- build: 4
build-python: OFF
build-type: Debug
build-shared: ON
cxx-standard: 20
cxx-compiler: clang++
cc-compiler: clang
compiler-desc: Clang
enable-sanitizer: ON
env:
CXX: ${{ matrix.cxx-compiler }}
CC: ${{ matrix.cc-compiler }}
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Install tests env
run: share/ci/scripts/linux/yum/install_tests_env.sh
- name: Create build directories
run: |
mkdir _install
mkdir _build
- name: Configure
run: |
cmake ../. \
-DCMAKE_INSTALL_PREFIX=../_install \
-DCMAKE_BUILD_TYPE=${{ matrix.build-type }} \
-DCMAKE_CXX_STANDARD=${{ matrix.cxx-standard }} \
-DBUILD_SHARED_LIBS=${{ matrix.build-shared }} \
-DOCIO_BUILD_DOCS=OFF \
-DOCIO_BUILD_OPENFX=ON \
-DOCIO_BUILD_GPU_TESTS=OFF \
-DOCIO_BUILD_PYTHON=${{ matrix.build-python}} \
-DOCIO_USE_SIMD=ON \
-DOCIO_USE_OIIO_FOR_APPS=OFF \
-DOCIO_INSTALL_EXT_PACKAGES=ALL \
-DOCIO_WARNING_AS_ERROR=ON \
-DOCIO_ENABLE_SANITIZER=${{ matrix.enable-sanitizer }} \
-DPython_EXECUTABLE=$(which python)
working-directory: _build
- name: Build
run: |
cmake --build . \
--target install \
--config ${{ matrix.build-type }} \
-v \
-- -j$(nproc)
echo "ocio_build_path=$(pwd)" >> $GITHUB_ENV
working-directory: _build
- name: Test
run: ctest -V -C ${{ matrix.build-type }}
working-directory: _build
- name: Test CMake Consumer with shared OCIO
if: matrix.build-shared == 'ON'
run: |
cmake . \
-DCMAKE_PREFIX_PATH=../../../_install \
-DCMAKE_BUILD_TYPE=${{ matrix.build-type }} \
-DOCIO_ENABLE_SANITIZER=${{ matrix.enable-sanitizer }}
cmake --build . \
--config ${{ matrix.build-type }}
./consumer
working-directory: _build/tests/cmake-consumer-dist
- name: Test CMake Consumer with static OCIO
if: matrix.build-shared == 'OFF'
# The yaml-cpp_VERSION is set below because Findyaml-cpp.cmake needs it but is unable to
# extract it from the headers, like the other modules.
#
# Prefer the static version of each dependencies by using <pkg>_STATIC_LIBRARY.
# Alternatively, this can be done by setting <pkg>_LIBRARY and <pkg>_INCLUDE_DIR to
# the static version of the package.
run: |
cmake . \
-DCMAKE_PREFIX_PATH=../../../_install \
-DCMAKE_BUILD_TYPE=${{ matrix.build-type }} \
-Dexpat_ROOT=${{ env.ocio_build_path }}/ext/dist \
-Dexpat_STATIC_LIBRARY=ON \
-DImath_ROOT=${{ env.ocio_build_path }}/ext/dist \
-DImath_STATIC_LIBRARY=ON \
-Dpystring_ROOT=${{ env.ocio_build_path }}/ext/dist \
-Dyaml-cpp_ROOT=${{ env.ocio_build_path }}/ext/dist \
-Dyaml-cpp_STATIC_LIBRARY=ON \
-Dyaml-cpp_VERSION=0.7.0 \
-DZLIB_ROOT=${{ env.ocio_build_path }}/ext/dist \
-DZLIB_STATIC_LIBRARY=ON \
-Dminizip-ng_ROOT=${{ env.ocio_build_path }}/ext/dist \
-Dminizip-ng_STATIC_LIBRARY=ON
cmake --build . \
--config ${{ matrix.build-type }}
./consumer
working-directory: _build/tests/cmake-consumer-dist
# ---------------------------------------------------------------------------
# MacOS latest ext packages
# ---------------------------------------------------------------------------
macos-latest:
name: 'macOS latest
<AppleClang
config=${{ matrix.build-type }},
shared=${{ matrix.build-shared }},
cxx=${{ matrix.cxx-standard }},
python=${{ matrix.python-version }}>'
# Don't run on OCIO forks
if: github.repository == 'AcademySoftwareFoundation/OpenColorIO'
runs-on: macos-latest
strategy:
matrix:
build: [1, 2]
include:
- build: 1
build-python: ON
build-type: Release
build-shared: ON
cxx-standard: 20
enable-sanitizer: OFF
python-version: '3.11'
- build: 2
build-python: OFF
build-type: Debug
build-shared: ON
cxx-standard: 20
enable-sanitizer: ON
python-version: '3.11'
steps:
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Checkout
uses: actions/checkout@v3
- name: Install tests env
run: share/ci/scripts/macos/install_tests_env.sh
- name: Create build directories
run: |
mkdir _install
mkdir _build
- name: Configure
run: |
cmake ../. \
-DCMAKE_INSTALL_PREFIX=../_install \
-DCMAKE_BUILD_TYPE=${{ matrix.build-type }} \
-DCMAKE_CXX_STANDARD=${{ matrix.cxx-standard }} \
-DBUILD_SHARED_LIBS=${{ matrix.build-shared }} \
-DOCIO_BUILD_DOCS=OFF \
-DOCIO_BUILD_OPENFX=ON \
-DOCIO_BUILD_GPU_TESTS=OFF \
-DOCIO_BUILD_PYTHON=${{ matrix.build-python}} \
-DOCIO_USE_SIMD=ON \
-DOCIO_USE_OIIO_FOR_APPS=OFF \
-DOCIO_INSTALL_EXT_PACKAGES=ALL \
-DOCIO_WARNING_AS_ERROR=ON \
-DOCIO_ENABLE_SANITIZER=${{ matrix.enable-sanitizer }} \
-DPython_EXECUTABLE=$(which python)
working-directory: _build
- name: Build
run: |
cmake --build . \
--target install \
--config ${{ matrix.build-type }} \
-- -j$(sysctl -n hw.ncpu)
echo "ocio_build_path=$(pwd)" >> $GITHUB_ENV
working-directory: _build
- name: Test
run: ctest -V -C ${{ matrix.build-type }}
working-directory: _build
- name: Test CMake Consumer with shared OCIO
if: matrix.build-shared == 'ON'
run: |
cmake . \
-DCMAKE_PREFIX_PATH=../../../_install \
-DCMAKE_BUILD_TYPE=${{ matrix.build-type }}
cmake --build . \
--config ${{ matrix.build-type }}
./consumer
working-directory: _build/tests/cmake-consumer-dist
- name: Test CMake Consumer with static OCIO
if: matrix.build-shared == 'OFF'
# The yaml-cpp_VERSION is set below because Findyaml-cpp.cmake needs it but is unable to
# extract it from the headers, like the other modules.
#
# Prefer the static version of each dependencies by using <pkg>_STATIC_LIBRARY.
# Alternatively, this can be done by setting <pkg>_LIBRARY and <pkg>_INCLUDE_DIR to
# the static version of the package.
run: |
cmake . \
-DCMAKE_PREFIX_PATH=../../../_install \
-DCMAKE_BUILD_TYPE=${{ matrix.build-type }} \
-Dexpat_ROOT=${{ env.ocio_build_path }}/ext/dist \
-Dexpat_STATIC_LIBRARY=ON \
-DImath_ROOT=${{ env.ocio_build_path }}/ext/dist \
-DImath_STATIC_LIBRARY=ON \
-Dpystring_ROOT=${{ env.ocio_build_path }}/ext/dist \
-Dyaml-cpp_ROOT=${{ env.ocio_build_path }}/ext/dist \
-Dyaml-cpp_STATIC_LIBRARY=ON \
-Dyaml-cpp_VERSION=0.7.0 \
-DZLIB_ROOT=${{ env.ocio_build_path }}/ext/dist \
-DZLIB_STATIC_LIBRARY=ON \
-Dminizip-ng_ROOT=${{ env.ocio_build_path }}/ext/dist \
-Dminizip-ng_STATIC_LIBRARY=ON
cmake --build . \
--config ${{ matrix.build-type }}
./consumer
working-directory: _build/tests/cmake-consumer-dist
# ---------------------------------------------------------------------------
# Windows latest ext packages
# ---------------------------------------------------------------------------
windows-latest:
name: 'Windows latest
<MSVC
config=${{ matrix.build-type }},
shared=${{ matrix.build-shared }},
cxx=${{ matrix.cxx-standard }},
python=${{ matrix.python-version }}>'
# Don't run on OCIO forks
if: github.repository == 'AcademySoftwareFoundation/OpenColorIO'
runs-on: windows-latest
strategy:
matrix:
build: [1, 2]
include:
- build: 1
build-python: ON
build-type: Release
build-shared: ON
cxx-standard: 20
python-version: '3.11'
- build: 2
build-python: ON
build-type: Debug
build-shared: ON
cxx-standard: 20
python-version: '3.11'
steps:
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Checkout
uses: actions/checkout@v3
- name: Install tests env
run: share/ci/scripts/windows/install_tests_env.sh
shell: bash
- name: Create build directories
run: |
mkdir _install
mkdir _build
shell: bash
- name: Configure
run: |
cmake ../. \
-DCMAKE_INSTALL_PREFIX=../_install \
-DCMAKE_BUILD_TYPE=${{ matrix.build-type }} \
-DCMAKE_CXX_STANDARD=${{ matrix.cxx-standard }} \
-DCMAKE_GENERATOR_PLATFORM=x64 \
-DBUILD_SHARED_LIBS=${{ matrix.build-shared }} \
-DOCIO_BUILD_DOCS=OFF \
-DOCIO_BUILD_OPENFX=ON \
-DOCIO_BUILD_GPU_TESTS=OFF \
-DOCIO_BUILD_PYTHON=${{ matrix.build-python}} \
-DOCIO_USE_SIMD=ON \
-DOCIO_USE_OIIO_FOR_APPS=OFF \
-DOCIO_INSTALL_EXT_PACKAGES=ALL \
-DOCIO_WARNING_AS_ERROR=ON \
-DPython_EXECUTABLE=$(which python)
shell: bash
working-directory: _build
- name: Build
run: |
cmake --build . \
--target install \
--config ${{ matrix.build-type }}
echo "ocio_build_path=$(pwd)" >> $GITHUB_ENV
shell: bash
working-directory: _build
- name: Test
run: ctest -V -C ${{ matrix.build-type }}
shell: bash
working-directory: _build
- name: Test CMake Consumer with shared OCIO
if: matrix.build-shared == 'ON'
run: |
cmake . \
-DCMAKE_PREFIX_PATH=../../../_install \
-DCMAKE_BUILD_TYPE=${{ matrix.build-type }}
cmake --build . \
--config ${{ matrix.build-type }}
export PATH=../../../_install/bin:$PATH
./${{ matrix.build-type }}/consumer
shell: bash
working-directory: _build/tests/cmake-consumer-dist
- name: Test CMake Consumer with static OCIO
if: matrix.build-shared == 'OFF'
# The yaml-cpp_VERSION is set below because Findyaml-cpp.cmake needs it but is unable to
# extract it from the headers, like the other modules.
#
# Prefer the static version of each dependencies by using <pkg>_STATIC_LIBRARY.
# Alternatively, this can be done by setting <pkg>_LIBRARY and <pkg>_INCLUDE_DIR to
# the static version of the package.
run: |
cmake . \
-DCMAKE_PREFIX_PATH=../../../_install \
-DCMAKE_BUILD_TYPE=${{ matrix.build-type }} \
-Dexpat_ROOT=${{ env.ocio_build_path }}/ext/dist \
-Dexpat_STATIC_LIBRARY=ON \
-DImath_ROOT=${{ env.ocio_build_path }}/ext/dist \
-DImath_STATIC_LIBRARY=ON \
-Dpystring_ROOT=${{ env.ocio_build_path }}/ext/dist \
-Dyaml-cpp_ROOT=${{ env.ocio_build_path }}/ext/dist \
-Dyaml-cpp_STATIC_LIBRARY=ON \
-Dyaml-cpp_VERSION=0.7.0 \
-DZLIB_ROOT=${{ env.ocio_build_path }}/ext/dist \
-DZLIB_STATIC_LIBRARY=ON \
-Dminizip-ng_ROOT=${{ env.ocio_build_path }}/ext/dist \
-Dminizip-ng_STATIC_LIBRARY=ON
cmake --build . \
--config ${{ matrix.build-type }}
export PATH=../../../_install/bin:$PATH
./${{ matrix.build-type }}/consumer
shell: bash
working-directory: _build/tests/cmake-consumer-dist
+180 -97
View File
@@ -6,15 +6,11 @@ name: Wheel
on:
push:
# Versioned branches and tags are ignored for OCIO <= 1.x.x
branches-ignore:
- RB-0.*
- RB-1.*
- gh-pages
tags-ignore:
- v0.*
- v1.*
# Workflow run on tags for v2 only.
tags:
- v2.*
pull_request:
# Workflow run on pull_request only when related files change.
branches-ignore:
- RB-0.*
- RB-1.*
@@ -22,6 +18,15 @@ on:
tags-ignore:
- v0.*
- v1.*
paths:
- .github/workflows/wheel_workflow.yml
- MANIFEST.in
- pyproject.toml
- setup.cfg
- setup.py
schedule:
# Nightly build
- cron: "0 0 * * *"
jobs:
# Linux jobs run in Docker containers (manylinux), so the latest OS version
@@ -29,100 +34,173 @@ jobs:
# environment versions to mitigate issues from OS updates, and will require
# maintenance as OS versions are retired.
#
# Notes:
#
# Documentation fails to build on manylinux2010, maybe too old
# doxygen ? First fail in PyColorSpaceSet for documentation
# referencing PyOpenColorIO (eg. __sub__). Consequence is we don't
# support python 2.7, alternatively build without docstrings, or
# fix the doxygen issue.
#
# When installing doc environment, Python package are not used as the wheel
# is built in it's own isolated environment, hence package are listed again
# in pyproject.toml.
#
# Due to documentation build failing on manylinux2010 (maybe too old doxygen
# version), we build on manylinux2014 image, this requires pip >= 19.3.
# ---------------------------------------------------------------------------
# Linux
# Source Distribution
# ---------------------------------------------------------------------------
sdist:
name: Build SDist
runs-on: ubuntu-latest
# Don't run on OCIO forks
if: |
github.event_name != 'schedule' ||
github.repository == 'AcademySoftwareFoundation/OpenColorIO'
steps:
- uses: actions/checkout@v3
- name: Build SDist
run: pipx run build --sdist
- name: Check metadata
run: pipx run twine check dist/*
- uses: actions/upload-artifact@v3
with:
path: dist/*.tar.gz
# ---------------------------------------------------------------------------
# Linux Wheels
# ---------------------------------------------------------------------------
linux:
name: Build wheels on Linux
runs-on: ubuntu-latest
# Don't run on OCIO forks
if: |
github.event_name != 'schedule' ||
github.repository == 'AcademySoftwareFoundation/OpenColorIO'
strategy:
matrix:
include:
# -------------------------------------------------------------------
# CPython 32 bits
# CPython 64 bits manylinux_2_28
# -------------------------------------------------------------------
- build: CPython 3.6 32 bits
python: cp36-*
arch: i686
- build: CPython 3.7 32 bits
python: cp37-*
arch: i686
- build: CPython 3.8 32 bits
python: cp38-*
arch: i686
- build: CPython 3.9 32 bits
python: cp39-*
arch: i686
- build: CPython 3.7 64 bits manylinux_2_28
manylinux: manylinux_2_28
python: cp37-manylinux*
arch: x86_64
- build: CPython 3.8 64 bits manylinux_2_28
manylinux: manylinux_2_28
python: cp38-manylinux*
arch: x86_64
- build: CPython 3.9 64 bits manylinux_2_28
manylinux: manylinux_2_28
python: cp39-manylinux*
arch: x86_64
- build: CPython 3.10 64 bits manylinux_2_28
manylinux: manylinux_2_28
python: cp310-manylinux*
arch: x86_64
- build: CPython 3.11 64 bits manylinux_2_28
manylinux: manylinux_2_28
python: cp311-manylinux*
arch: x86_64
- build: CPython 3.12 64 bits manylinux_2_28
manylinux: manylinux_2_28
python: cp312-manylinux*
arch: x86_64
# -------------------------------------------------------------------
# CPython 64 bits
# CPython 64 bits manylinux2014
# -------------------------------------------------------------------
- build: CPython 3.6 64 bits
python: cp36-*
- build: CPython 3.7 64 bits manylinux2014
manylinux: manylinux2014
python: cp37-manylinux*
arch: x86_64
- build: CPython 3.7 64 bits
python: cp37-*
- build: CPython 3.8 64 bits manylinux2014
manylinux: manylinux2014
python: cp38-manylinux*
arch: x86_64
- build: CPython 3.8 64 bits
python: cp38-*
- build: CPython 3.9 64 bits manylinux2014
manylinux: manylinux2014
python: cp39-manylinux*
arch: x86_64
- build: CPython 3.9 64 bits
python: cp39-*
- build: CPython 3.10 64 bits manylinux2014
manylinux: manylinux2014
python: cp310-manylinux*
arch: x86_64
- build: CPython 3.11 64 bits manylinux2014
manylinux: manylinux2014
python: cp311-manylinux*
arch: x86_64
- build: CPython 3.12 64 bits manylinux2014
manylinux: manylinux2014
python: cp312-manylinux*
arch: x86_64
# -------------------------------------------------------------------
# CPython ARM 64 bits manylinux2014
# -------------------------------------------------------------------
- build: CPython 3.7 ARM 64 bits manylinux2014
manylinux: manylinux2014
python: cp37-manylinux*
arch: aarch64
- build: CPython 3.8 ARM 64 bits manylinux2014
manylinux: manylinux2014
python: cp38-manylinux*
arch: aarch64
- build: CPython 3.9 ARM 64 bits manylinux2014
manylinux: manylinux2014
python: cp39-manylinux*
arch: aarch64
- build: CPython 3.10 ARM 64 bits manylinux2014
manylinux: manylinux2014
python: cp310-manylinux*
arch: aarch64
- build: CPython 3.11 ARM 64 bits manylinux2014
manylinux: manylinux2014
python: cp311-manylinux*
arch: aarch64
- build: CPython 3.12 ARM 64 bits manylinux2014
manylinux: manylinux2014
python: cp312-manylinux*
arch: aarch64
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- uses: actions/setup-python@v2
- uses: actions/setup-python@v4
name: Install Python
with:
python-version: '3.8'
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
with:
platforms: all
- name: Build wheels
uses: joerick/cibuildwheel@v1.12.0
uses: pypa/cibuildwheel@v2.16.2
env:
CIBW_MANYLINUX_X86_64_IMAGE: manylinux2014
CIBW_MANYLINUX_I686_IMAGE: manylinux2014
CIBW_BUILD_VERBOSITY: 1
CIBW_BUILD: ${{ matrix.python }}
CIBW_ARCHS: ${{ matrix.arch }}
CIBW_BEFORE_BUILD: share/ci/scripts/linux/yum/install_docs_env.sh
CIBW_TEST_REQUIRES: numpy
CIBW_TEST_COMMAND: python -m PyOpenColorIOTests.OpenColorIOTestSuite
CIBW_MANYLINUX_X86_64_IMAGE: ${{ matrix.manylinux }}
CIBW_MANYLINUX_AARCH64_IMAGE: ${{ matrix.manylinux }}
- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v3
with:
path: ./wheelhouse/*.whl
# ---------------------------------------------------------------------------
# macOS
# macOS Wheels
# ---------------------------------------------------------------------------
macos:
name: Build wheels on macOS
runs-on: macos-10.15
runs-on: macos-12
# Don't run on OCIO forks
if: |
github.event_name != 'schedule' ||
github.repository == 'AcademySoftwareFoundation/OpenColorIO'
strategy:
matrix:
include:
# -------------------------------------------------------------------
# CPython 64 bits
# -------------------------------------------------------------------
- build: CPython 3.6 64 bits
python: cp36-*
arch: x86_64
- build: CPython 3.7 64 bits
python: cp37-*
arch: x86_64
@@ -132,6 +210,15 @@ jobs:
- build: CPython 3.9 64 bits
python: cp39-*
arch: x86_64
- build: CPython 3.10 64 bits
python: cp310-*
arch: x86_64
- build: CPython 3.11 64 bits
python: cp311-*
arch: x86_64
- build: CPython 3.12 64 bits
python: cp312-*
arch: x86_64
# -------------------------------------------------------------------
# CPython ARM 64 bits
# -------------------------------------------------------------------
@@ -141,60 +228,51 @@ jobs:
- build: CPython 3.9 ARM 64 bits
python: cp39-*
arch: arm64
- build: CPython 3.10 ARM 64 bits
python: cp310-*
arch: arm64
- build: CPython 3.11 ARM 64 bits
python: cp311-*
arch: arm64
- build: CPython 3.12 ARM 64 bits
python: cp312-*
arch: arm64
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- uses: actions/setup-python@v2
- uses: actions/setup-python@v4
name: Install Python
with:
python-version: '3.8'
- name: Build wheels
uses: joerick/cibuildwheel@v1.12.0
uses: pypa/cibuildwheel@v2.16.2
env:
CIBW_BUILD_VERBOSITY: 1
CIBW_BUILD: ${{ matrix.python }}
CIBW_ARCHS: ${{ matrix.arch }}
CIBW_BEFORE_BUILD: share/ci/scripts/macos/install_docs_env.sh
CIBW_TEST_REQUIRES: numpy
CIBW_TEST_COMMAND: python -m PyOpenColorIOTests.OpenColorIOTestSuite
- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v3
with:
path: ./wheelhouse/*.whl
# ---------------------------------------------------------------------------
# Windows
# Windows Wheels
# ---------------------------------------------------------------------------
windows:
name: Build wheels on Windows
runs-on: windows-2019
runs-on: windows-2022
# Don't run on OCIO forks
if: |
github.event_name != 'schedule' ||
github.repository == 'AcademySoftwareFoundation/OpenColorIO'
strategy:
matrix:
include:
# -------------------------------------------------------------------
# CPython 32 bits
# -------------------------------------------------------------------
- build: CPython 3.6 32 bits
python: cp36-*
arch: x86
- build: CPython 3.7 32 bits
python: cp37-*
arch: x86
- build: CPython 3.8 32 bits
python: cp38-*
arch: x86
- build: CPython 3.9 32 bits
python: cp39-*
arch: x86
# -------------------------------------------------------------------
# CPython 64 bits
# -------------------------------------------------------------------
- build: CPython 3.6 64 bits
python: cp36-*
arch: AMD64
- build: CPython 3.7 64 bits
python: cp37-*
arch: AMD64
@@ -204,38 +282,43 @@ jobs:
- build: CPython 3.9 64 bits
python: cp39-*
arch: AMD64
- build: CPython 3.10 64 bits
python: cp310-*
arch: AMD64
- build: CPython 3.11 64 bits
python: cp311-*
arch: AMD64
- build: CPython 3.12 64 bits
python: cp312-*
arch: AMD64
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- uses: actions/setup-python@v2
- uses: actions/setup-python@v4
name: Install Python
with:
python-version: '3.8'
- name: Build wheels
uses: joerick/cibuildwheel@v1.12.0
uses: pypa/cibuildwheel@v2.16.2
env:
CIBW_BUILD_VERBOSITY: 1
CIBW_BUILD: ${{ matrix.python }}
CIBW_ARCHS: ${{ matrix.arch }}
CIBW_BEFORE_BUILD: bash -c share/ci/scripts/windows/install_docs_env.sh
CIBW_TEST_REQUIRES: numpy
CIBW_TEST_COMMAND: python -m PyOpenColorIOTests.OpenColorIOTestSuite
- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v3
with:
path: ./wheelhouse/*.whl
upload_pypi:
needs: [linux, macos, windows]
needs: [sdist, linux, macos, windows]
runs-on: ubuntu-latest
if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/v')
steps:
- uses: actions/setup-python@v2
- uses: actions/setup-python@v4
- uses: actions/download-artifact@v2
- uses: actions/download-artifact@v3
with:
name: artifact
path: dist
+1 -1
View File
@@ -52,7 +52,7 @@ This charter (the &quot;Charter&quot;) sets forth the responsibilities and proce
7. Intellectual Property Policy
* **a.** Participants acknowledge that the copyright in all new contributions shall be retained by the copyright holder as independent works of authorship and that no contributor or copyright holder will be required to assign copyrights to the Project.
* **b.** Except as described in Section 7.c., all code contributions to the Project are subject to the following:
* **i.** All new inbound code contributions to the Project must be made using the **BSD 3-Clause License (available here: [https://github.com/AcademySoftwareFoundation/OpenColorIO/blob/master/LICENSE](https://github.com/AcademySoftwareFoundation/OpenColorIO/blob/master/LICENSE))** (the &quot;Project License&quot;).
* **i.** All new inbound code contributions to the Project must be made using the **BSD 3-Clause License (available here: [https://github.com/AcademySoftwareFoundation/OpenColorIO/blob/main/LICENSE](https://github.com/AcademySoftwareFoundation/OpenColorIO/blob/main/LICENSE))** (the &quot;Project License&quot;).
* **ii.** All new inbound code contributions must:
1. be made pursuant to a duly executed Project Contribution License Agreement (the &quot;CLA&quot;), available on the Project&#39;s web site; and
2. be accompanied by a Developer Certificate of Origin ([http://developercertificate.org](http://developercertificate.org)) sign-off in the source code system that is submitted through a TSC-approved contribution process which will bind the authorized contributor and, if not self-employed, their employer to the applicable license;
+1 -1
View File
@@ -36,7 +36,7 @@ Attendees:
* Infrastructure
* GitHub repo needs migrating to the ASWF organisation
* **TODO** - John Mertic to coordinate with Steve Winslow at the LF to complete.
* https://github.com/AcademySoftwareFoundation/tac/blob/master/process/contributing.md
* https://github.com/AcademySoftwareFoundation/tac/blob/main/process/contributing.md
* Require that any existing copyright notices are reviewed and amended by the current stated owners if their respective legal agrees.
* Once migrated will enable DCO sign off checking and CLA checks.
* Sub-discussion on the option of separate sign off for committer vs developer sign off.
+2 -2
View File
@@ -44,9 +44,9 @@ Attendees:
* Do a patch against 1.1 that fixes a few minor things?
* Consensus is that we should make 1.1.1 with some important non-breaking patches and release that fix right away.
* **TODO**: Patrick will send Slack the list of candidate commits for a 1.1.1.
* Do we make an intermediate release from master before v2.0? People want a "developer preview" to be able to use the new GPU path.
* Do we make an intermediate release from main before v2.0? People want a "developer preview" to be able to use the new GPU path.
* Patrick reluctant to make a full release.
* Proposal: just make a "developer preview" tag in master to designate a point we think is stable and has some helpful new features, but we don't promise any support or compatibility with the eventual v2.
* Proposal: just make a "developer preview" tag in main to designate a point we think is stable and has some helpful new features, but we don't promise any support or compatibility with the eventual v2.
* Down side: people will use it and expect us to support it.
* No consensus that this is a good idea. Mark especially doesn't like unsupported dev preview tag.
* But v2 will NOT be ready by SIGGRAPH 2019. In light of this, Mark thinks maybe we should have a real intermediate release.
+2 -2
View File
@@ -26,7 +26,7 @@ Attendees:
- Doug: As established in the initial 2.0 proposal, this is not feasible.
- The plan remains to release a complete feature set when the full v2 roadmap is completed.
- Community concern is that the v2 release schedule is unknown, and time between OCIO releases is long.
- This can make planning for software vendors challenging, but preliminary implementation of the v2 interface is possible now from master for testing.
- This can make planning for software vendors challenging, but preliminary implementation of the v2 interface is possible now from main for testing.
- Autodesk discussing an official roadmap and insight on a potential release window. Stay tuned.
- Long PR review cycles contribute to development slowdowns:
- Most PRs are merged with the 2 week single reviewer clause.
@@ -37,7 +37,7 @@ Attendees:
- PRs are becoming smaller, more focused, which should help with review accessability
- **TODO**: Doug/Patrick to review and report back on what project management changes could help them
- Larry: Should we have a known commit for testing a given feature (i.e. GPU renderer) for internal testing purposes.
- Doug: Testing off of master at any given time is stable, and ideal.
- Doug: Testing off of main at any given time is stable, and ideal.
* ASWF/LF CI update from TAC meeting
- Thanh presented comparison of Circle CI and current Jenkins infrastructure:
+1 -1
View File
@@ -43,7 +43,7 @@ Attendees:
- Any recommendations from LF regarding what to add to CI?
- Thanh: Some options are Nexus IQ, WhiteSource for security, Sonar Qube for static.
- Thanh is doing some investigation for TAC, we will follow closely for recommendations.
- John provide the following link: https://github.com/coreinfrastructure/best-practices-badge/blob/master/doc/security.md
- John provide the following link: https://github.com/coreinfrastructure/best-practices-badge/blob/main/doc/security.md
- Chair asked John if we were moving too slowly, John: no.
* 1.1.1 Release
+1 -1
View File
@@ -29,7 +29,7 @@ Apologies:
- Waiting approval
* Azure CI Build:
- Larry G.: Needs to build OCIO with some dependency master branch to trap coming issues?
- Larry G.: Needs to build OCIO with some dependency main branch to trap coming issues?
- Larry G. Only some libraries:
As OpenEXR is an indirect dependency, perhaps not needed.
But OIIO could be a good candidate.
+1 -1
View File
@@ -38,7 +38,7 @@ Apologies:
Meatballs” images with Sony.
- Kevin: We also need to update the LICENSE on the OCIO website
- Michael: That is pulled from GitHub, but currently from the RB-1.1
branch. Since the license cleanup work is being done in master, is it Ok
branch. Since the license cleanup work is being done in main, is it Ok
to wait for a 2.0 release next year to update the site?
- John: That should be Ok.
- Kevin: Let’s make a note to not forget it.
+2 -2
View File
@@ -30,8 +30,8 @@ Attendees:
* RB-1.1
- Michael: Following the approval for another minor release (*TSC meeting 2019-08-12*),
Travis & AppVeyor (i.e. the former CI build) are back for the RB-1.1 branch only.
- AppVeyor uses RB-1.1 & master branch
- **TODO**: Sean will help to disable master.
- AppVeyor uses RB-1.1 & main branch
- **TODO**: Sean will help to disable main.
- Travis triggers new warnings/errors.
Check [PR 798](https://github.com/imageworks/OpenColorIO/pull/798) for details.
- Agreed to fix them.
+1 -1
View File
@@ -28,7 +28,7 @@ Apologies:
- Doug raised that pull request #831 removes macros specific to these versions of GCC.
- Patrick raised that as we add more C+11 features the more we will be restricted.
- Kevin thinks we should definitely drop support for GCC 3.
- Patrick thought dropping GCC 3 would be fine and should be done in the master branch.
- Patrick thought dropping GCC 3 would be fine and should be done in the main branch.
* Azure CI build
- Patrick raised that the communication between Azure and Github is broken.
+1 -1
View File
@@ -26,7 +26,7 @@ Attendees:
- To document the policy concerning repository rights vs. roles.
* Branch protected
- Agreement to only protect `master`, `RB-**` and `gh-pages`.
- Agreement to only protect `main`, `RB-**` and `gh-pages`.
* Stalled pull requests
- Agreement to not have any automatic removal of stalled pull requests.
+2 -2
View File
@@ -32,7 +32,7 @@ Attendees:
* ASWF GSoC discussion
- Polled Slack for project ideas for ASWF's application to Google Summer of
Code, and submitted PR to:
`https://github.com/AcademySoftwareFoundation/tac/blob/master/gsoc/README.md`_
`https://github.com/AcademySoftwareFoundation/tac/blob/main/gsoc/README.md`_
- In summary, four projects initially proposed:
- Add Metal, Vulkan, or CUDA language support to GPU renderer
- Restore Java bindings
@@ -52,7 +52,7 @@ Attendees:
* Python bindings
- Michael: Resumed work on pybind11 bindings. Got everything up to date with
master.
main.
- Mei Chu (Imageworks) is interested in helping with this work, potentially
designing unit tests to start.
- Mei: Looking forward to getting more involved in OCIO
+1 -1
View File
@@ -61,7 +61,7 @@ Apologies: Michael Dolan
in what types of EXR images may be read (e.g. looking for a specific channel layout,
no multi-part support).
- Kevin: A quick scan of the EXR codec shows it only really outputs 16 bit RGB, RGBA, YCbCr.

https://github.com/FFmpeg/FFmpeg/blob/master/libavcodec/exr.c#L1691


https://github.com/FFmpeg/FFmpeg/blob/main/libavcodec/exr.c#L1691

- Mark: Is that integer 16 bit?

- Kevin: Yes, integers.
- Mark: One approach would be to make video filters for OCIO ColorSpaceTransform and
+1 -1
View File
@@ -70,7 +70,7 @@ Apologies:
- Carol: A lot of it can hopefully be to work with DCC vendors to help them
update their docs as well, and to understand coming changes. Then we can
point our docs to theirs.
- Michael: The [Compatible Software](https://github.com/AcademySoftwareFoundation/OpenColorIO/blob/master/docs/CompatibleSoftware.rst)
- Michael: The [Compatible Software](https://github.com/AcademySoftwareFoundation/OpenColorIO/blob/main/docs/CompatibleSoftware.rst)
page of the OCIO website was updated recently and contains many
up-to-date documentation links.
- Doug: Also may want to add OCIO developers to the list of consumers, to
+1 -1
View File
@@ -87,7 +87,7 @@ Apologies:
- Sean: Docstring header PR is in. Need another PR for pybind11 docstring
header, and another for reorganization of doc structure. The RTD page
points to official OCIO repo, so we're live now, but API docs and new
style is missing. Any changes to master are getting pushed to RTD now.
style is missing. Any changes to main are getting pushed to RTD now.
Not as much holding back docs as it seems.
- Simran: An event hook in GH communicates to RTD when to update the site.
- Michael: Can we open GH issues for logical chunks of work?
+4 -4
View File
@@ -100,10 +100,10 @@ Apologies:
begin that?
- Kevin: If we create them together we are saying they are the same. If
separated, might be different.
- Patrick: Where do we put the tag? In master or in RB-2.0?
- Mark: Have it in both, and cherry pick master changes into RB-2.0.
- Patrick: Only consequence is master will be tagged as RC.
- All agree to create tag in master and branch RB-2.0 from that.
- Patrick: Where do we put the tag? In main or in RB-2.0?
- Mark: Have it in both, and cherry pick main changes into RB-2.0.
- Patrick: Only consequence is main will be tagged as RC.
- All agree to create tag in main and branch RB-2.0 from that.
* General discussion:
- Kevin: If we are concerned with ABI compatibility, should we put
@@ -69,7 +69,7 @@ Attendees:
- Alexa: Better to link to DCC vendors own guides.
- Michael: There is some of that on the site now in the Compatible Software
page, which was updated recently:
[Compatible Software](https://github.com/AcademySoftwareFoundation/OpenColorIO/blob/master/docs/CompatibleSoftware.rst)
[Compatible Software](https://github.com/AcademySoftwareFoundation/OpenColorIO/blob/main/docs/CompatibleSoftware.rst)
- Carol: Tricky to know which vendors to include tutorials for.
- Alexa: Could be better to explain the config, and what each part means.
It's difficult to find everything right now.
@@ -30,7 +30,7 @@ Recording on Zoom cloud:
- Mark: Is ociocheck crashing for anyone?
- Doug: We will look into it.
- *UPDATE:* We tested this and it is working. We found a case where illegal
(too long) spi1d LUTs caused a crash in master. These LUTs were not flagged as
(too long) spi1d LUTs caused a crash in main. These LUTs were not flagged as
being illegal in OCIO v1 and would have had incorrect results.
**STRING UTILS**
@@ -218,7 +218,7 @@ discussion about the questions raised.
**GENERAL DISCUSSION**
- Mark: I was testing master and found that role names are now
- Mark: I was testing main and found that role names are now
case-sensitive. This is a change from OCIO v1.
- Doug: Are we agreed we want case-insensitive behavior? Same for color
spaces too? Group agreed.
+5
View File
@@ -3,8 +3,13 @@
This file documents releases up to 1.1.1. For a description of version 2.0 and later
please refer to the Releases page on GitHub:
https://github.com/AcademySoftwareFoundation/OpenColorIO/releases
and for more details please see the release notes in latest documentation pages:
https://opencolorio.readthedocs.io/en/latest/releases/_index.html#releases
**Version 1.1.1 (April 2 2019):**
* Added optional compatibility for building apps with OpenImageIO 1.9+
* Added USE_SSE checks to fix Linux build failure
+243 -25
View File
@@ -5,13 +5,14 @@
###############################################################################
# CMake definition.
cmake_minimum_required(VERSION 3.12)
cmake_minimum_required(VERSION 3.13)
set(CMAKE_MODULE_PATH
${CMAKE_MODULE_PATH}
${CMAKE_SOURCE_DIR}/share/cmake/utils
${CMAKE_SOURCE_DIR}/share/cmake/macros
${CMAKE_SOURCE_DIR}/share/cmake/modules
${CMAKE_CURRENT_SOURCE_DIR}/share/cmake/utils
${CMAKE_CURRENT_SOURCE_DIR}/share/cmake/macros
${CMAKE_CURRENT_SOURCE_DIR}/share/cmake/modules
${CMAKE_CURRENT_SOURCE_DIR}/share/cmake/modules/install
)
set(CMAKE_WARN_DEPRECATED ON)
@@ -28,7 +29,7 @@ endif()
# Project definition.
project(OpenColorIO
VERSION 2.1.0
VERSION 2.3.2
DESCRIPTION "OpenColorIO (OCIO) is a complete color management solution"
HOMEPAGE_URL https://github.com/AcademySoftwareFoundation/OpenColorIO
LANGUAGES CXX C)
@@ -36,13 +37,26 @@ project(OpenColorIO
# "dev", "beta1", rc1", etc or "" for an official release.
set(OpenColorIO_VERSION_RELEASE_TYPE "")
###############################################################################
# ctest
# To correctly generate the DartConfiguration.tcl, include the CTest CMake file.
# By doing so 'ctest -F memcheck' works.
include (CTest)
enable_testing()
###############################################################################
# Provides install directory variables as defined by the GNU Coding Standards.
include(GNUInstallDirs)
###############################################################################
# Forbid in-source build.
if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR})
if(${PROJECT_SOURCE_DIR} STREQUAL ${PROJECT_BINARY_DIR})
message(FATAL_ERROR
"In-source build not allowed. Please make a new sub-directory and run cmake from there.")
endif()
@@ -81,11 +95,26 @@ set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeR
# Is that a valid build type?
if(NOT "${CMAKE_BUILD_TYPE}" IN_LIST CMAKE_CONFIGURATION_TYPES)
set(_build_type_valid_ false)
foreach (_build_type_ ${CMAKE_CONFIGURATION_TYPES})
string(TOLOWER ${_build_type_} _lowercase_build_type_)
string(TOLOWER ${CMAKE_BUILD_TYPE} _lowercase_cmake_build_type_)
if (_lowercase_cmake_build_type_ STREQUAL _lowercase_build_type_)
# Build type is supported.
set(_build_type_valid_ true)
break()
endif()
endforeach()
unset(_lowercase_build_type_)
unset(_lowercase_cmake_build_type_)
if (NOT _build_type_valid_)
string(REPLACE ";" ", " _CMAKE_CONFIGURATION_TYPES_STR "${CMAKE_CONFIGURATION_TYPES}")
message(FATAL_ERROR
"CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} is unsupported. Supported values are: ${_CMAKE_CONFIGURATION_TYPES_STR}.")
endif()
unset(_build_type_valid_)
# Is that in debug mode?
@@ -124,28 +153,196 @@ set (OCIO_PYTHON_VERSION "" CACHE STRING
option(OCIO_BUILD_JAVA "Specify whether to build java bindings" OFF)
if (WIN32)
option(OCIO_USE_WINDOWS_UNICODE "Compile with Windows Unicode support" ON)
endif()
###############################################################################
# Other preferences
option(OCIO_VERBOSE "Display more information when searching or installing dependencies" OFF)
option(OCIO_USE_SOVERSION "Enable versioning in OCIO shared library name" ON)
###############################################################################
# Warnings / debugging settings
option(OCIO_WARNING_AS_ERROR "Set build error level for CI testing" OFF)
if (NOT WIN32)
option(OCIO_ENABLE_SANITIZER "Specify whether to enable compiler sanitizers (address)" OFF)
endif()
###############################################################################
# Optimization / internal linking preferences
option(OCIO_USE_SIMD "Specify whether to enable SIMD CPU performance optimizations" ON)
option(OCIO_USE_OIIO_FOR_APPS "Request OIIO to build apps (ociolutimage, ocioconvert and ociodisplay), the default uses OpenEXR." OFF)
option(OCIO_USE_SSE "Specify whether to enable SSE CPU performance optimizations" ON)
option(OCIO_USE_OPENEXR_HALF "Specify whether to use an OpenEXR/IlmBase install of the Half library (<=v2.5) instead of the newer Imath library (>=v3.0)" OFF)
if (NOT APPLE)
if ("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "(AMD64|IA64|EM64T|x86_64|X86|i386|i686)")
# Intel-based architecture (not APPLE)
if ("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "(X86|i386|i686)")
set(OCIO_ARCH_X86_32 1)
endif()
set(OCIO_ARCH_X86 1)
set(OCIO_BUILD_ENABLE_OPTIMIZATIONS_SSE ON)
set(OCIO_BUILD_ENABLE_OPTIMIZATIONS_AVX ON)
set(OCIO_BUILD_ENABLE_OPTIMIZATIONS_F16C ON)
else()
set(OCIO_ARCH_X86 0)
set(OCIO_BUILD_ENABLE_OPTIMIZATIONS_SSE OFF)
set(OCIO_BUILD_ENABLE_OPTIMIZATIONS_AVX OFF)
set(OCIO_BUILD_ENABLE_OPTIMIZATIONS_F16C OFF)
endif()
elseif (APPLE)
# Multiple possible scenarios:
# A. Building on an Apple arm64 architecture for the native architecture (arm64).
# B. Building on an Apple arm64 architecture for x86_64.
# C. Building on an Apple arm64 architecture for universal binaries (x86_64 + arm64).
#
# D. Building on an Apple Intel architecture for the native architecture (x86_64).
# E. Building on an Apple Intel architecture for arm64.
# F. Building on an Apple Intel architecture for universal binaries (x86_64 + arm64).
# Check if we are NOT cross-compiling to another Apple architecture.
if (NOT DEFINED CMAKE_OSX_ARCHITECTURES OR CMAKE_OSX_ARCHITECTURES STREQUAL "")
# Building for the native architectures.
if ("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "x86_64")
# Apple Intel-based computer or Rosetta. (covers case D)
set(OCIO_ARCH_X86 1)
set(OCIO_BUILD_ENABLE_OPTIMIZATIONS_SSE ON)
# The AVX and F16C will be compiled, but it won't used at runtime by Rosetta.
set(OCIO_BUILD_ENABLE_OPTIMIZATIONS_AVX ON)
set(OCIO_BUILD_ENABLE_OPTIMIZATIONS_F16C ON)
elseif ("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "arm64")
# Apple arm64. (covers case A)
set(OCIO_ARCH_X86 0)
# OCIO translates the SSE instructions into ARM Neon with the library SSE2NEON.
set(OCIO_BUILD_ENABLE_OPTIMIZATIONS_SSE ON)
# OCIO does not translate AVX to ARM Neon.
set(OCIO_BUILD_ENABLE_OPTIMIZATIONS_AVX OFF)
# Turn F16C off since they are x86_64 instructions.
set(OCIO_BUILD_ENABLE_OPTIMIZATIONS_F16C OFF)
endif()
else()
# Cross-compiling to another Apple architecture (x86_64, arm64, or both (universal))
if ("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "x86_64")
# Compiling for x86_64 regardless of native architecture.
# Covers case B assuming CMAKE_SYSTEM_PROCESSOR is arm64.
# Covers case D if CMAKE_OSX_ARCHITECTURES is set to x86_64 on x86_64 architecture.
set(OCIO_ARCH_X86 1)
set(OCIO_BUILD_ENABLE_OPTIMIZATIONS_SSE ON)
# The AVX and F16C will be compiled, but they won't used at runtime by Rosetta.
set(OCIO_BUILD_ENABLE_OPTIMIZATIONS_AVX ON)
set(OCIO_BUILD_ENABLE_OPTIMIZATIONS_F16C ON)
elseif ("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "arm64")
# Compiling for arm64 regardless of native architecture.
# Covers case E assuming CMAKE_SYSTEM_PROCESSOR is x86_64.
# Covers case A if CMAKE_OSX_ARCHITECTURES is set arm64 on arm64 architecture.
set(OCIO_ARCH_X86 0)
set(OCIO_BUILD_ENABLE_OPTIMIZATIONS_SSE ON)
set(OCIO_BUILD_ENABLE_OPTIMIZATIONS_AVX OFF)
set(OCIO_BUILD_ENABLE_OPTIMIZATIONS_F16C OFF)
elseif ("${CMAKE_OSX_ARCHITECTURES}" MATCHES "(arm64;x86_64|x86_64;arm64)")
# Universal build (covers case C and F).
set(OCIO_ARCH_X86 1)
set(OCIO_BUILD_ENABLE_OPTIMIZATIONS_SSE ON)
# The AVX and F16C will be compiled, but they won't used at runtime by Rosetta.
set(OCIO_BUILD_ENABLE_OPTIMIZATIONS_AVX ON)
set(OCIO_BUILD_ENABLE_OPTIMIZATIONS_F16C ON)
endif()
endif()
endif()
option(OCIO_USE_SSE2 "Specify whether to enable SSE2 CPU performance optimizations" ${OCIO_BUILD_ENABLE_OPTIMIZATIONS_SSE})
option(OCIO_USE_SSE3 "Specify whether to enable SSE3 CPU performance optimizations" ${OCIO_BUILD_ENABLE_OPTIMIZATIONS_SSE})
option(OCIO_USE_SSSE3 "Specify whether to enable SSSE3 CPU performance optimizations" ${OCIO_BUILD_ENABLE_OPTIMIZATIONS_SSE})
option(OCIO_USE_SSE4 "Specify whether to enable SSE4 CPU performance optimizations" ${OCIO_BUILD_ENABLE_OPTIMIZATIONS_SSE})
option(OCIO_USE_SSE42 "Specify whether to enable SSE4.2 CPU performance optimizations" ${OCIO_BUILD_ENABLE_OPTIMIZATIONS_SSE})
option(OCIO_USE_AVX "Specify whether to enable AVX CPU performance optimizations" ${OCIO_BUILD_ENABLE_OPTIMIZATIONS_AVX})
option(OCIO_USE_AVX2 "Specify whether to enable AVX2 CPU performance optimizations" ${OCIO_BUILD_ENABLE_OPTIMIZATIONS_AVX})
option(OCIO_USE_AVX512 "Specify whether to enable AVX512 CPU performance optimizations" ${OCIO_BUILD_ENABLE_OPTIMIZATIONS_AVX})
option(OCIO_USE_F16C "Specify whether to enable F16C CPU performance optimizations" ${OCIO_BUILD_ENABLE_OPTIMIZATIONS_F16C})
if (APPLE)
# TODO: Revisit whether that option is necessary.
option(OCIO_USE_SSE2NEON "Specify whether to enable SSE CPU performance optimizations using SSE2NEON for Apple ARM architecture" ON)
mark_as_advanced(OCIO_USE_SSE2NEON)
endif()
###############################################################################
# GPU configuration
message(STATUS "")
message(STATUS "Checking for GPU configuration...")
include(CheckSupportGL)
###############################################################################
# Check for ARM neon here because we need to know if ARM NEON is supported
# quickly. Once we know that ARM NEON is supported, we can add sse2neon library
# to the build.
if(OCIO_USE_SIMD)
include(CheckSupportARMNeon)
if (NOT COMPILER_SUPPORTS_ARM_NEON)
# Force it to OFF since ARM Neon is not supported.
set(OCIO_USE_SSE2NEON OFF)
endif()
endif()
###############################################################################
# Add sse2neon to the build if ARM NEON intrinsics are supported.
if(OCIO_USE_SIMD AND OCIO_USE_SSE2NEON AND COMPILER_SUPPORTS_ARM_NEON)
# Install sse2neon. Please note that sse2neon is downloaded during the configure step as it is
# needed for CompilerFlags.cmake and CheckSupportSSEUsingSSE2NEON.cmake.
# Sse2neon is not treated like an imported target. The logic to find sse2neon is here because
# a find module is not suitable for sse2neon's use case.
find_path(sse2neon_INCLUDE_DIR
NAMES
sse2neon.h
HINTS
${sse2neon_ROOT}
PATH_SUFFIXES
sse2neon
include
sse2neon/include
)
# As per instructions on sse2neon's GitHub page, the following compiler flags should be used:
# "-march=armv8-a+fp+simd+crypto+crc". These flags are required for some ARM platforms that do
# not enable floating point calculations or SIMD instructions by default. However, for ARM64
# (Apple ARM platform) and x86_64 platforms, these features are already enabled by default.
# Therefore, no additional compiler flags are needed.
if (NOT sse2neon_INCLUDE_DIR)
include(Installsse2neon)
else()
# Any changes to the following lines must be replicated in Installsse2neon.cmake as well.
# Create a target for sse2neon (non-imported)
add_library(sse2neon INTERFACE)
# Add the include directories to the target.
target_include_directories(sse2neon INTERFACE "${sse2neon_INCLUDE_DIR}")
# Ignore the warnings coming from sse2neon.h as they are false positives.
target_compile_options(sse2neon INTERFACE -Wno-unused-parameter)
endif()
endif()
###############################################################################
# Define compilation and link flags
include(CompilerFlags)
###############################################################################
# External linking options
@@ -189,12 +386,12 @@ endif()
if(NOT DEFINED OCIO_NAMESPACE)
set(OCIO_NAMESPACE "OpenColorIO_v${OpenColorIO_VERSION_MAJOR}_${OpenColorIO_VERSION_MINOR}${OpenColorIO_VERSION_RELEASE_TYPE}" CACHE STRING
"Specify the master OCIO C++ namespace: Options include OpenColorIO OpenColorIO_<YOURFACILITY> etc.")
"Specify the main OCIO C++ namespace: Options include OpenColorIO OpenColorIO_<YOURFACILITY> etc.")
elseif(OCIO_NAMESPACE STREQUAL "")
message(FATAL_ERROR "A namespace cannot be empty.")
else()
set(OCIO_NAMESPACE "OpenColorIO_${OCIO_NAMESPACE}_v${OpenColorIO_VERSION_MAJOR}_${OpenColorIO_VERSION_MINOR}${OpenColorIO_VERSION_RELEASE_TYPE}" CACHE STRING
"Specify the master OCIO C++ namespace: Options include OpenColorIO OpenColorIO_<YOURFACILITY> etc.")
"Specify the main OCIO C++ namespace: Options include OpenColorIO OpenColorIO_<YOURFACILITY> etc.")
message(STATUS "Setting namespace to '${OCIO_NAMESPACE}' as none was specified.")
endif()
@@ -233,6 +430,15 @@ if(OCIO_BUILD_STATIC)
endif()
endif()
if (NOT BUILD_SHARED_LIBS AND NOT OCIO_INSTALL_EXT_PACKAGES STREQUAL NONE)
message(STATUS "Note that building the static version of OpenColorIO does not embed the dependencies\
into the library file. The needed dependencies must be linked to the consumer
application or shared library that uses static OpenColorIO.
The following mandatory dependencies MUST be linked to the consumer application or shared library:
expat, yaml-cpp, Imath, pystring, minizip-ng and ZLIB")
endif()
###############################################################################
# Find or install external dependencies
@@ -246,20 +452,12 @@ include(FindExtPackages)
###############################################################################
# Progress to other sources
# The presence of OpenImageIO allows additional ocio apps and the OSL translation unit tests
# to be built.
# OpenImageIO
# https://github.com/OpenImageIO/oiio
find_package(OpenImageIO 2.1.9)
add_subdirectory(vendor)
if(OCIO_BUILD_DOCS)
add_subdirectory(docs)
endif()
add_subdirectory(tests)
add_subdirectory(src)
add_subdirectory(include)
add_subdirectory(ext)
@@ -272,10 +470,10 @@ else()
set(OCIO_SETUP_NAME setup_ocio.sh)
endif()
configure_file(${CMAKE_SOURCE_DIR}/share/ocio/${OCIO_SETUP_NAME}.in
configure_file(${PROJECT_SOURCE_DIR}/share/ocio/${OCIO_SETUP_NAME}.in
${CMAKE_CURRENT_BINARY_DIR}/share/ocio/${OCIO_SETUP_NAME} @ONLY)
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/share/ocio/${OCIO_SETUP_NAME} DESTINATION share/ocio/)
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/share/ocio/${OCIO_SETUP_NAME} DESTINATION ${CMAKE_INSTALL_DATADIR}/ocio/)
###############################################################################
@@ -286,9 +484,11 @@ INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/share/ocio/${OCIO_SETUP_NAME} DESTINAT
include(CMakePackageConfigHelpers)
set(OCIO_TARGETS_EXPORT_NAME "${PROJECT_NAME}Targets.cmake")
set(OCIO_VERSION_CONFIG "${CMAKE_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake")
set(OCIO_PROJECT_CONFIG "${CMAKE_BINARY_DIR}/${PROJECT_NAME}Config.cmake")
set(OCIO_VERSION_CONFIG "${PROJECT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake")
set(OCIO_PROJECT_CONFIG "${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake")
set(OCIO_CONFIG_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}")
set(OCIO_CUSTOM_FIND_MODULE_DIR "${CMAKE_INSTALL_PREFIX}/share/OpenColorIO/cmake/modules")
set(OCIO_CUSTOM_MACROS_MODULE_DIR "${CMAKE_INSTALL_PREFIX}/share/OpenColorIO/cmake/macros")
# Version fetched from the top level project()
write_basic_package_version_file(
@@ -311,6 +511,24 @@ install(
FILE ${OCIO_TARGETS_EXPORT_NAME}
)
if (NOT BUILD_SHARED_LIBS)
# Install custom macros used in the find modules.
install(FILES
${CMAKE_CURRENT_LIST_DIR}/share/cmake/macros/VersionUtils.cmake
DESTINATION ${OCIO_CUSTOM_MACROS_MODULE_DIR}
)
# Install custom Find modules.
install(FILES
${CMAKE_CURRENT_LIST_DIR}/share/cmake/modules/Findexpat.cmake
${CMAKE_CURRENT_LIST_DIR}/share/cmake/modules/FindImath.cmake
${CMAKE_CURRENT_LIST_DIR}/share/cmake/modules/Findpystring.cmake
${CMAKE_CURRENT_LIST_DIR}/share/cmake/modules/Findminizip-ng.cmake
${CMAKE_CURRENT_LIST_DIR}/share/cmake/modules/Findyaml-cpp.cmake
DESTINATION ${OCIO_CUSTOM_FIND_MODULE_DIR}
)
endif()
install(
FILES "${OCIO_PROJECT_CONFIG}" "${OCIO_VERSION_CONFIG}"
DESTINATION "${OCIO_CONFIG_INSTALL_DIR}"
+2
View File
@@ -19,3 +19,5 @@ The current OpenColorIO Committers are:
| Cottalango Leon | @loorthu
| Doug Walker | @doug-walker |
| Kevin Wheatley | @KevinJW |
| Rémi Achard | @remia |
| Cédrik Fuoco | @cedrik-fuoco-adsk |
+21 -38
View File
@@ -19,7 +19,7 @@ explains our contribution process and procedures, so please review it first:
For a description of the roles and responsibilities of the various
members of the OpenColorIO community, see [GOVERNANCE](GOVERNANCE.md), and
for further details, see the project's
[Technical Charter](docs/aswf/Charter.md). Briefly, Contributors are anyone
[Technical Charter](ASWF/Charter.md). Briefly, Contributors are anyone
who submits content to the project, Committers review and approve such
submissions, and the Technical Steering Committee provides general project
oversight.
@@ -91,7 +91,7 @@ can be merged.
[Corporate Contributor Licence Agreement](https://docs.linuxfoundation.org/lfx/easycla/contributors/corporate-contributor).
The OCIO CLA's are the standard forms used by Linux Foundation projects and
[recommended by the ASWF TAC](https://github.com/AcademySoftwareFoundation/tac/blob/master/process/contributing.md#contributor-license-agreement-cla).
[recommended by the ASWF TAC](https://github.com/AcademySoftwareFoundation/tac/blob/main/process/contributing.md#contributor-license-agreement-cla).
### Commit Sign-Off
@@ -113,7 +113,7 @@ can be merged. Otherwise the EasyCLA system will provide instructions on
signing a CLA, or request inclusion in an existing corporate CLA approved list.
See the
[ASWF TAC CONTRIBUTING.md](https://github.com/AcademySoftwareFoundation/tac/blob/master/process/contributing.md#contribution-sign-off)
[ASWF TAC CONTRIBUTING.md](https://github.com/AcademySoftwareFoundation/tac/blob/main/process/contributing.md#contribution-sign-off)
file for more information on this requirement.
### Copyright Notices
@@ -161,15 +161,15 @@ You are now ready to contribute.
The OpenColorIO repository has a relatively straight-forward structure, and a
simple branching and merging strategy.
All development work is done directly on the master branch. This represents the
All development work is done directly on the main branch. This represents the
bleeding-edge of the project and any contributions should be done on top of it.
After sufficient work is done on the master branch and OCIO leadership
After sufficient work is done on the main branch and OCIO leadership
determines that a release is due, we will bump the relevant internal versioning
and tag a commit with the corresponding version number, e.g. v2.0.1. Each Minor
version also has its own “Release Branch”, e.g. RB-1.1. This marks a branch of
code dedicated to that Major.Minor version, which allows upstream bug fixes to
be cherry-picked to a given version while still allowing the master branch to
be cherry-picked to a given version while still allowing the main branch to
continue forward onto higher versions. This basic repository structure keeps
maintenance low, while remaining simple to understand.
@@ -183,7 +183,7 @@ Please review [PROCESS.md](PROCESS.md) for important procedures related to
making changes to OpenColorIO. Small bug fixes and documentation changes can be
more informal, but modifications to core OpenColorIO functionality MUST follow
the
[Core Library Changes](https://github.com/AcademySoftwareFoundation/OpenColorIO/blob/master/PROCESS.md#Core-Library-Changes) process.
[Core Library Changes](https://github.com/AcademySoftwareFoundation/OpenColorIO/blob/main/PROCESS.md#Core-Library-Changes) process.
The development cycle for a code change should follow this protocol:
@@ -210,22 +210,24 @@ who may discuss, offer constructive feedback, request changes, or approve
the work.
7. Upon receiving the required number of Committer approvals (as outlined in
[Required Approvals](https://github.com/AcademySoftwareFoundation/OpenColorIO/blob/master/PROCESS.md#Required-Approvals)),
[Required Approvals](https://github.com/AcademySoftwareFoundation/OpenColorIO/blob/main/PROCESS.md#Required-Approvals)),
a Committer other than the PR contributor may squash and merge changes into the
master branch.
main branch.
See also (from the OCIO Developer Guide):
* [Getting started](http://opencolorio.org/developers/getting_started.html)
* [Submitting Changes](http://opencolorio.org/developers/submitting_changes.html)
For a more detailed description of the contribution process, please see the
Contributing Guide in the main OCIO documentation:
* [Getting Started](https://opencolorio.readthedocs.io/en/latest/guides/contributing/contributing.html#getting-started)
* [Submitting Changes](https://opencolorio.readthedocs.io/en/latest/guides/contributing/contributing.html#submitting-changes)
## Coding Standards
Please see the OpenColorIO
[Coding guidelines](http://opencolorio.org/developers/coding_guidelines.html)
[Coding guidelines](https://opencolorio.readthedocs.io/en/latest/guides/contributing/contributing.html#coding-style-guide)
for a reference on project code style and best practices.
For standards on contributing to documentation, see the
[Documentation guidelines](http://opencolorio.org/developers/documentation_guidelines.html).
[Documentation guidelines](https://opencolorio.readthedocs.io/en/latest/guides/contributing/contributing.html#documentation-guidelines).
## Test Policy
@@ -241,31 +243,12 @@ expected to validate the behavior of every part of OCIO:
* Any change to existing functionality should have tests added if they
don't already exist.
The test should should be run, via ``ctest``, before submitting a pull request.
The test should be run, via ``ctest``, before submitting a pull request.
## Versioning Policy
OpenColorIO uses [semantic versioning](https://semver.org), which labels each
version with three numbers: Major.Minor.Patch, where:
OpenColorIO labels each version with three numbers: Major.Minor.Patch, where:
* **MAJOR** indicates incompatible API changes
* **MINOR** indicates functionality added in a backwards-compatible manner
* **PATCH** indicates backwards-compatible bug fixes
## Creating a Release
To create a new release from the master branch:
1. Update the release notes in ``CHANGELOG.md`` with a high-level summary of
the features and improvements. Also include the summary in the Release
comments.
2. Create a new release on the GitHub Releases page.
3. Tag the release with name beginning with '``v``', e.g. '``v2.1.0``'.
4. Download and sign the release tarball, as described
[here](https://wiki.debian.org/Creating%20signed%20GitHub%20releases),
5. Attach the detached ``.asc`` signature file to the GitHub release as a
binary file.
* **MAJOR** indicates major architectural changes
* **MINOR** indicates an introduction of significant new features
* **PATCH** indicates ABI-compatible bug fixes and minor enhancements
+4 -1
View File
@@ -107,17 +107,20 @@ project at all ASWF TAC meetings.
### TSC Leaders
* Chair: Michael Dolan
* Chair: Carol Payne
* Chief Architect: Doug Walker
* ACES TAC Rep: Sean Cooper
### TSC Members
* Rémi Achard - DNEG
* Mark Boorer - Industrial Light & Magic
* Mei Chu - Sony Pictures Imageworks
* Sean Cooper - ARRI
* Michael Dolan - Epic Games
* Patrick Hodoul - Autodesk
* Zach Lewis - Method Studios
* Thomas Mansencal - WetaFX
* Carol Payne - Netflix
* Carl Rand - Weta Digital
* Mark Titchener - Foundry
+11 -2
View File
@@ -1,2 +1,11 @@
graft tests/data
exclude tests/data/CMakeLists.txt
include LICENSE
graft docs
graft ext
graft include
graft share
graft src
graft tests
global-include CMakeLists.txt *.cmake *.md
global-exclude */__pycache__/*
global-exclude *.pyc
global-exclude .DS_Store
+1 -1
View File
@@ -28,7 +28,7 @@ across the project so are treated as core changes.
[ocio-dev](https://lists.aswf.io/g/ocio-dev), but are ultimately brought to a
TSC meeting where consensus can be reached around the proposal's relevance
and approach. TSC meetings are public and meeting notes are posted to the
[OCIO repo](https://github.com/AcademySoftwareFoundation/OpenColorIO/tree/master/ASWF/meetings/tsc)
[OCIO repo](https://github.com/AcademySoftwareFoundation/OpenColorIO/tree/main/ASWF/meetings/tsc)
within days of a meeting for a permanent record of decisions.
2. Following acceptance of the proposal by the TSC, an issue is created in
GitHub to present a design proposal. A period of further community
+10 -4
View File
@@ -38,7 +38,7 @@ Houdini, Silhouette FX, and
[others](https://opencolorio.org/#supported_apps).
OpenColorIO is free and open source software ([LICENSE](LICENSE)), and
one of several projects actvively sponsored by the ASWF
one of several projects actively sponsored by the ASWF
([Academy Software Foundation](https://www.aswf.io/)).
OpenColorIO Project Mission
@@ -50,12 +50,12 @@ content creation applications and pipelines.
OpenColorIO aims to:
* be stable, secure, and thouroughly tested on Linux, macOS, and Windows
* be stable, secure, and thoroughly tested on Linux, macOS, and Windows
* be performant on modern CPUs and GPUs
* be simple, scalable, and well documented
* be compatible with critical color and imaging standards
* provide lossless color processing wherever possible
* maintain config backwards compatability across major versions
* maintain config backwards compatibility across major versions
* have every new feature carefully reviewed by leaders from the motion picture,
VFX, animation, and video game industries
* have a healthy and active community
@@ -65,13 +65,14 @@ OpenColorIO Project Governance
------------------------------
OpenColorIO is governed by the Academy Software Foundation (ASWF). See
[GOVERNANCE.md](GOVERNANCE.md) for detailed infomation about how the project
[GOVERNANCE.md](GOVERNANCE.md) for detailed information about how the project
operates.
Web Resources
-------------
* Website: <http://opencolorio.org>
* Documentation: <https://opencolorio.readthedocs.io/en/latest/>
* Mailing lists:
* Developer: <ocio-dev@lists.aswf.io>
* User: <ocio-user@lists.aswf.io>
@@ -99,6 +100,11 @@ The following reference implementations are provided:
* Other
* nuke-default
Sources for the newer builtin ACES configuration files can be found in the releases section of the
[OpenColorIO-Config-ACES](https://github.com/AcademySoftwareFoundation/OpenColorIO-Config-ACES)
repository.
Acknowledgements
----------------
+29 -26
View File
@@ -9,32 +9,6 @@ In no particular order:
---------------------------------------------------------------------
MD5, courtesy of L. Peter Deutsch, Aladdin Enterprises.
http://sourceforge.net/projects/libmd5-rfc/files/
Copyright (C) 1999, 2002 Aladdin Enterprises. All rights reserved.
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
L. Peter Deutsch
ghost@aladdin.com
---------------------------------------------------------------------
argparse, courtesy of OpenImageIO and Larry Gritz
http://openimageio.org
@@ -229,4 +203,33 @@ England
---------------------------------------------------------------------
xxHash Library
Copyright (c) 2012-2021 Yann Collet
All rights reserved.
BSD 2-Clause License (https://www.opensource.org/licenses/bsd-license.php)
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this
list of conditions and the following disclaimer in the documentation and/or
other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
---------------------------------------------------------------------
If we have left anything out, it is unintentional. Please let us know.
-1
View File
@@ -41,7 +41,6 @@ phases:
cmake ../. \
-DCMAKE_INSTALL_PREFIX=../_install \
-DOCIO_USE_HEADLESS=ON \
-DOCIO_USE_OPENEXR_HALF=ON \
-DOCIO_BUILD_APPS=ON \
-DOCIO_BUILD_DOCS=OFF \
-DOCIO_BUILD_TESTS=ON \
+20 -20
View File
@@ -61,11 +61,11 @@ if(${Python_VERSION_MAJOR} GREATER_EQUAL 3)
# configuration, but omits *.in to work in RTD builds.
message(STATUS "Substitute documentation variables")
file(GLOB_RECURSE DOC_IN_FILES
"${CMAKE_SOURCE_DIR}/docs/**.in"
"${CMAKE_SOURCE_DIR}/docs/conf.py"
"${PROJECT_SOURCE_DIR}/docs/**.in"
"${PROJECT_SOURCE_DIR}/docs/conf.py"
)
foreach(in_file ${DOC_IN_FILES})
string(REPLACE "${CMAKE_SOURCE_DIR}/" "${CMAKE_BINARY_DIR}/"
string(REPLACE "${PROJECT_SOURCE_DIR}/" "${PROJECT_BINARY_DIR}/"
out_file ${in_file})
string(REPLACE ".in" ""
out_file ${out_file})
@@ -73,15 +73,15 @@ if(${Python_VERSION_MAJOR} GREATER_EQUAL 3)
endforeach()
# Copy documentation source to build location
file(GLOB_RECURSE DOC_SOURCES "${CMAKE_SOURCE_DIR}/docs/*")
file(GLOB_RECURSE DOC_SOURCES "${PROJECT_SOURCE_DIR}/docs/*")
list(APPEND DOC_SOURCES
${CMAKE_SOURCE_DIR}/README.md
${CMAKE_SOURCE_DIR}/INSTALL.md
${CMAKE_SOURCE_DIR}/CHANGELOG.md
${CMAKE_SOURCE_DIR}/LICENSE
${PROJECT_SOURCE_DIR}/README.md
${PROJECT_SOURCE_DIR}/INSTALL.md
${PROJECT_SOURCE_DIR}/CHANGELOG.md
${PROJECT_SOURCE_DIR}/LICENSE
)
if(OCIO_BUILD_NUKE)
list(APPEND DOC_SOURCES ${CMAKE_SOURCE_DIR}/share/nuke/ocionuke/viewer.py)
list(APPEND DOC_SOURCES ${PROJECT_SOURCE_DIR}/share/nuke/ocionuke/viewer.py)
endif()
# Don't copy configured files. In particular this prevents overwriting conf.py,
@@ -93,15 +93,15 @@ if(${Python_VERSION_MAJOR} GREATER_EQUAL 3)
)
foreach(f ${DOC_SOURCES})
string(REGEX REPLACE "^${CMAKE_SOURCE_DIR}/" "" relpath ${f})
string(REGEX REPLACE "^${PROJECT_SOURCE_DIR}/" "" relpath ${f})
string(REGEX REPLACE "[/. ]" "_" tgtname ${relpath})
string(REGEX MATCH "^docs" IN_DOCS ${relpath})
set(SRC_PATH ${CMAKE_SOURCE_DIR}/${relpath})
set(DST_PATH ${CMAKE_BINARY_DIR}/${relpath})
set(SRC_PATH ${PROJECT_SOURCE_DIR}/${relpath})
set(DST_PATH ${PROJECT_BINARY_DIR}/${relpath})
if(NOT IN_DOCS)
get_filename_component(F_NAME ${relpath} NAME)
set(DST_PATH "${CMAKE_BINARY_DIR}/docs/${F_NAME}")
set(DST_PATH "${PROJECT_BINARY_DIR}/docs/${F_NAME}")
endif()
add_custom_command(OUTPUT ${DST_PATH}
@@ -118,16 +118,16 @@ if(${Python_VERSION_MAJOR} GREATER_EQUAL 3)
get_target_property(DOXYGEN_EXECUTABLE Doxygen::doxygen IMPORTED_LOCATION)
file(GLOB_RECURSE DOXYGEN_SOURCES
"${CMAKE_SOURCE_DIR}/include/*.h"
"${CMAKE_BINARY_DIR}/include/*.h"
"${PROJECT_SOURCE_DIR}/include/*.h"
"${PROJECT_BINARY_DIR}/include/*.h"
)
set(DOXYGEN_INDEX_XML "${CMAKE_BINARY_DIR}/docs/_doxygen/xml/index.xml")
set(DOXYGEN_INDEX_XML "${PROJECT_BINARY_DIR}/docs/_doxygen/xml/index.xml")
# Run doxygen if index.xml is behind OCIO headers or doxygen config
add_custom_command(OUTPUT ${DOXYGEN_INDEX_XML}
COMMAND "${DOXYGEN_EXECUTABLE}" "${CMAKE_BINARY_DIR}/docs/Doxyfile"
COMMAND "${DOXYGEN_EXECUTABLE}" "${PROJECT_BINARY_DIR}/docs/Doxyfile"
DEPENDS
${CMAKE_BINARY_DIR}/docs/Doxyfile
${PROJECT_BINARY_DIR}/docs/Doxyfile
${DOXYGEN_SOURCES}
COMMENT "Extracting XML files from C++ headers"
)
@@ -140,7 +140,7 @@ if(${Python_VERSION_MAJOR} GREATER_EQUAL 3)
### HTML doc target ###
file(GLOB_RECURSE SPHINX_EXTENSIONS
"${CMAKE_SOURCE_DIR}/share/docs/*.py"
"${PROJECT_SOURCE_DIR}/share/docs/*.py"
)
# Run Sphinx
@@ -148,7 +148,7 @@ if(${Python_VERSION_MAJOR} GREATER_EQUAL 3)
COMMAND
${Python_PRE_CMD} "${Sphinx_EXECUTABLE}" -b html . "${CMAKE_CURRENT_BINARY_DIR}/build-html"
DEPENDS
${CMAKE_BINARY_DIR}/docs/conf.py
${PROJECT_BINARY_DIR}/docs/conf.py
${SPHINX_EXTENSIONS}
${DOXYGEN_INDEX_XML}
COMMENT "Building html docs"
+3 -3
View File
@@ -792,7 +792,7 @@ WARN_LOGFILE =
# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
# Note: If this tag is empty the current directory is searched.
INPUT = "@CMAKE_SOURCE_DIR@/include/@CMAKE_PROJECT_NAME@"
INPUT = "@PROJECT_SOURCE_DIR@/include/@CMAKE_PROJECT_NAME@"
# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
@@ -1301,7 +1301,7 @@ CHM_FILE =
HHC_LOCATION =
# The GENERATE_CHI flag controls if a separate .chi index file is generated
# (YES) or that it should be included in the master .chm file (NO).
# (YES) or that it should be included in the main .chm file (NO).
# The default value is: NO.
# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
@@ -2040,7 +2040,7 @@ SEARCH_INCLUDES = YES
# preprocessor.
# This tag requires that the tag SEARCH_INCLUDES is set to YES.
INCLUDE_PATH = "@CMAKE_BINARY_DIR@/include/@CMAKE_PROJECT_NAME@"
INCLUDE_PATH = "@PROJECT_BINARY_DIR@/include/@CMAKE_PROJECT_NAME@"
# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
# patterns (like *.h and *.hpp) to filter out the header-files in the
-106
View File
@@ -1,106 +0,0 @@
# OCIO v2 Documentation Effort
Since the API autodoc effort is happening simultaneously it will be easier for
a lot of contributors to do a light-weight build of the Sphinx docs, which
doesn't require building OCIO in its entirety.
## How to Build HTML Docs
In addition to the general OCIO v2 dependencies, install Doxygen, Sphinx, and
the Python packages listed in the `docs/requirements.txt` file.
Doxygen can be installed with a package manager, or by downloading a binary
distribution from [Doxygen's website](https://www.doxygen.nl/download.html).
Use one of the following commands to install Doxygen with a platform-specific
package manager:
Linux (Debian, etc.):
```
apt-get install doxygen
```
Linux (Fedora, etc.):
```
yum install doxygen
```
macOS ([Homebrew](https://brew.sh/)):
```
brew install doxygen
```
Windows ([Chocolatey](https://chocolatey.org/)):
```
choco install doxygen.install
```
Sphinx and the other Python dependencies can be installed with a single `pip`
command on all platforms:
```
pip install -r docs/requirements.txt
```
To build only the RST docs (excluding API) locally:
```
cd docs
mkdir _build
sphinx-build -b html . _build
<your web browser name> _build/index.html
```
To build all HTML docs (including API) locally:
```
mkdir _build
cd _build
cmake ../. -DOCIO_BUILD_DOCS=ON -DCMAKE_INSTALL_PREFIX=../_install
make -j<your thread count> docs
<your web browser name> docs/build-html/index.html
```
Python 3 is required to build the documentation. If you have multiple Python
installs you'll need to make sure pip and CMake find the correct version. You
can manually inform cmake of which to use by adding this option to the above
`cmake` command, which configures the documentation build:
```
-DPython_ROOT=<Path to Python 3 root directory>
```
To ease the documentation build and test on macOS one could also add these
three lines in the ~/.zshrc file:
```
alias python=/usr/local/bin/python3
alias pip=/usr/local/bin/pip3
alias <your web browser name>=open -a "<your web browser application name>"
```
## Quirks
The vuepress theme that we've migrated to has some quirks to its design. For
example it only allows two nested table of contents (TOC). So things have to be
organized in a slightly different way than other sphinx projects.
The root-level `toc_redirect.rst` points to where to find the different section
TOCs. The name and contents of each sections TOC is defined in that
sub-directory's `_index.rst` file.
In this TOC the `:caption:` directive determines what the name of the section
will be in the side-bar, and in the header of the website. The *H1* header
determines the name of the page in the right/left arrows navigation bar. In a
lot of cases this ends up doubling up the name on the page, but this seems
unavoidable at the present time. If additional explanatory text is put in the
`_index.rst` files then it shouldn't be as problematic.
The site will show all *H1* headers in the side panel by default, these then
expand when selected to show all *H2* headers.
Due to the limited TOC and side-bar depth, we shouldn't be afraid of looong
pages with many *H2* headings to break down the page into logical quadrants.
@@ -31,3 +31,7 @@
:module: PyOpenColorIO
:value: <Allocation.ALLOCATION_UNKNOWN: 0>
.. py:property:: Allocation.value
:module: PyOpenColorIO
+17 -3
View File
@@ -61,6 +61,10 @@
:module: PyOpenColorIO
.. py:method:: Baker.getDisplay(self: PyOpenColorIO.Baker) -> str
:module: PyOpenColorIO
.. py:method:: Baker.getFormat(self: PyOpenColorIO.Baker) -> str
:module: PyOpenColorIO
@@ -94,6 +98,10 @@
:module: PyOpenColorIO
.. py:method:: Baker.getView(self: PyOpenColorIO.Baker) -> str
:module: PyOpenColorIO
.. py:method:: Baker.setConfig(self: PyOpenColorIO.Baker, config: PyOpenColorIO.Config) -> None
:module: PyOpenColorIO
@@ -103,7 +111,13 @@
.. py:method:: Baker.setCubeSize(self: PyOpenColorIO.Baker, cubeSize: int) -> None
:module: PyOpenColorIO
Override the default cube sample size. default: <format specific>
Override the main LUT (3d or 1d) sample size. Default value is -1, which allows each format to use its own most appropriate size.
.. py:method:: Baker.setDisplayView(self: PyOpenColorIO.Baker, display: str, view: str) -> None
:module: PyOpenColorIO
Set the display and view to apply during the baking. Must not be used if setTargetSpace is used.
.. py:method:: Baker.setFormat(self: PyOpenColorIO.Baker, formatName: str) -> None
@@ -133,13 +147,13 @@
.. py:method:: Baker.setShaperSpace(self: PyOpenColorIO.Baker, shaperSpace: str) -> None
:module: PyOpenColorIO
Set an *optional* :ref:`ColorSpace` to be used to shape / transfer the input colorspace. This is mostly used to allocate an HDR luminance range into an LDR one. If a shaper space is not explicitly specified, and the file format supports one, the :ref:`ColorSpace` Allocation will be used (not implemented for all formats).
Set an *optional* :ref:`ColorSpace` to shape the incoming values of the LUT. When baking 3DLUT, this will correspond to the 1D shaper used to normalise incoming values to the unit range. When baking 1D LUT, this will be used to determine the input range of the LUT.
.. py:method:: Baker.setTargetSpace(self: PyOpenColorIO.Baker, targetSpace: str) -> None
:module: PyOpenColorIO
Set the target device colorspace for the LUT.
Set the target (i.e., output) color space for the LUT. Must not be used if setDisplayView is used.
.. py:class:: FormatIterator
@@ -22,7 +22,7 @@
BIT_DEPTH_UINT16 :
BIT_DEPTH_UINT32 :
BIT_DEPTH_UINT32 : Here for historical reason but that's not supported.
BIT_DEPTH_F16 :
@@ -75,3 +75,7 @@
:module: PyOpenColorIO
:value: <BitDepth.BIT_DEPTH_UNKNOWN: 0>
.. py:property:: BitDepth.value
:module: PyOpenColorIO
@@ -31,3 +31,7 @@
:module: PyOpenColorIO
:value: <CDLStyle.CDL_NO_CLAMP: 1>
.. py:property:: CDLStyle.value
:module: PyOpenColorIO
@@ -47,3 +47,7 @@
:module: PyOpenColorIO
:value: <ChannelOrdering.CHANNEL_ORDERING_RGBA: 0>
.. py:property:: ChannelOrdering.value
:module: PyOpenColorIO
@@ -10,8 +10,6 @@
While a complete discussion of color spaces is beyond the scope of header documentation, traditional uses would be to have *ColorSpaces* corresponding to: physical capture devices (known cameras, scanners), and internal 'convenience' spaces (such as scene linear, logarithmic).
*ColorSpaces* are specific to a particular image precision (float32, uint8, etc.), and the set of ColorSpaces that provide equivalent mappings (at different precisions) are referred to as a 'family'.
.. py:method:: ColorSpace.__init__(*args, **kwargs)
:module: PyOpenColorIO
@@ -97,7 +95,7 @@
.. py:method:: ColorSpace.getEqualityGroup(self: PyOpenColorIO.ColorSpace) -> str
:module: PyOpenColorIO
Get the :ref:`ColorSpace` group name (used for equality comparisons) This allows no-op transforms between different colorspaces. If an equalityGroup is not defined (an empty string), it will be considered unique (i.e., it will not compare as equal to other ColorSpaces with an empty equality group). This is often, though not always, set to the same value as 'family'.
Get the :ref:`ColorSpace` group name (used for equality comparisons) This allows no-op transforms between different colorspaces. If an equalityGroup is not defined (an empty string), it will be considered unique (i.e., it will not compare as equal to other ColorSpaces with an empty equality group).
.. py:method:: ColorSpace.getFamily(self: PyOpenColorIO.ColorSpace) -> str
@@ -24,3 +24,7 @@
:module: PyOpenColorIO
:value: <ColorSpaceDirection.COLORSPACE_DIR_TO_REFERENCE: 0>
.. py:property:: ColorSpaceDirection.value
:module: PyOpenColorIO
@@ -31,3 +31,7 @@
:module: PyOpenColorIO
:value: <ColorSpaceVisibility.COLORSPACE_INACTIVE: 1>
.. py:property:: ColorSpaceVisibility.value
:module: PyOpenColorIO
+236 -11
View File
@@ -24,13 +24,47 @@
See developers-usageexamples
.. py:method:: Config.CreateFromBuiltinConfig(arg0: str) -> PyOpenColorIO.Config
:module: PyOpenColorIO
:staticmethod:
Create a configuration using an OCIO built-in config.
:param configName: Built-in config name.
The available configNames are: "cg-config-v0.1.0_aces-v1.3_ocio-v2.1.1"-- ACES CG config, basic color spaces for computer graphics apps. More information about these configs is available at: https://github.com/AcademySoftwareFoundation/OpenColorIO-Config-ACES
Information about the available configs is available from the :ref:`BuiltinConfigRegistry`.
:exception :ref:`Exception`: If the configName is not recognized.
:return: One of the configs built into the OCIO library.
.. py:method:: Config.CreateFromConfigIOProxy(arg0: OpenColorIO_v2_2dev::ConfigIOProxy) -> PyOpenColorIO.Config
:module: PyOpenColorIO
:staticmethod:
Create a config from the supplied :ref:`ConfigIOProxy` object. This allows the calling program to directly provide the config and associated LUTs rather than reading them from the standard file system.
See the :ref:`ConfigIOProxy` class documentation for more info.
:param ciop: :ref:`ConfigIOProxy` object providing access to the config's files.
:exception :ref:`Exception`: If the config may not be read from the proxy, or does not parse.
:return: The :ref:`Config` object.
.. py:method:: Config.CreateFromEnv() -> PyOpenColorIO.Config
:module: PyOpenColorIO
:staticmethod:
Create a configuration using the OCIO environment variable.
If the variable is missing or empty, returns the same result as :ref:`Config::CreateRaw` .
Also supports the OCIO URI format for Built-in configs and supports archived configs. See :ref:`Config::CreateFromFile`.
If the variable is missing or empty, returns the same result as :ref:`Config::CreateRaw`. :return: The :ref:`Config` object.
.. py:method:: Config.CreateFromFile(fileName: str) -> PyOpenColorIO.Config
@@ -39,6 +73,14 @@
Create a configuration using a specific config file.
Also supports the following OCIO URI format for Built-in configs: "ocio://default" - Default Built-in config. "ocio://<CONFIG NAME>" - A specific Built-in config. For the list of available <CONFIG NAME> strings, see :ref:`Config::CreateFromBuiltinConfig`.
Also supports archived configs (.ocioz files).
:exception :ref:`Exception`: If the file may not be read or does not parse.
:return: The :ref:`Config` object.
.. py:method:: Config.CreateFromStream(str: str) -> PyOpenColorIO.Config
:module: PyOpenColorIO
@@ -46,6 +88,16 @@
Create a configuration using a stream.
Note that CreateFromStream does not set the working directory so the caller would need to set that separately in order to resolve FileTransforms. This function is typically only used for self-contained configs (no LUTs).
Configs created from CreateFromStream can not be archived unless the working directory is set and contains any necessary LUT files.
:param istream: Stream to the config.
:exception :ref:`Exception`: If the stream does not parse.
:return: The :ref:`Config` object.
.. py:method:: Config.CreateRaw() -> PyOpenColorIO.Config
:module: PyOpenColorIO
@@ -53,7 +105,15 @@
Create a fall-back config.
This may be useful to allow client apps to launch in cases when the supplied config path is not loadable.
This may be useful to allow client apps to launch in cases when the supplied config path is not loadable. :return: The :ref:`Config` object.
.. py:class:: Config.DisplayAllIterator
:module: PyOpenColorIO
.. py:method:: Config.DisplayAllIterator.__init__(*args, **kwargs)
:module: PyOpenColorIO
.. py:method:: Config.GetProcessorFromConfigs(*args, **kwargs)
@@ -77,12 +137,28 @@
4. GetProcessorFromConfigs(srcContext: PyOpenColorIO.Context, srcConfig: PyOpenColorIO.Config, srcColorSpaceName: str, srcInterchangeName: str, dstContext: PyOpenColorIO.Context, dstConfig: PyOpenColorIO.Config, dstColorSpaceName: str, dstInterchangeName: str) -> PyOpenColorIO.Processor
.. py:class:: Config.ViewForViewTypeIterator
:module: PyOpenColorIO
.. py:method:: Config.ViewForViewTypeIterator.__init__(*args, **kwargs)
:module: PyOpenColorIO
.. py:class:: Config.VirtualViewIterator
:module: PyOpenColorIO
.. py:method:: Config.VirtualViewIterator.__init__(*args, **kwargs)
:module: PyOpenColorIO
.. py:method:: Config.__init__(self: PyOpenColorIO.Config) -> None
:module: PyOpenColorIO
Create an empty config of the current version.
Note that an empty config will not pass validation since required elements will be missing.
Note that an empty config will not pass validation since required elements will be missing. :return: The :ref:`Config` object.
.. py:method:: Config.__str__(self: PyOpenColorIO.Config) -> str
@@ -167,6 +243,30 @@
:module: PyOpenColorIO
.. py:method:: Config.addVirtualDisplaySharedView(self: PyOpenColorIO.Config, sharedView: str) -> None
:module: PyOpenColorIO
.. py:method:: Config.addVirtualDisplayView(self: PyOpenColorIO.Config, view: str, viewTransformName: str, colorSpaceName: str, looks: str = '', ruleName: str = '', description: str = '') -> None
:module: PyOpenColorIO
.. py:method:: Config.archive(self: PyOpenColorIO.Config, arg0: str) -> None
:module: PyOpenColorIO
Archive the config and its LUTs into the specified output stream.
The config is archived by serializing the :ref:`Config` object into a file named "config.ocio" and then walking through the current working directory and any sub-directories. Any files that have an extension matching a supported LUT file format are added to the archive. Any files that do not have an extension (or have some unsupported LUT extension, including .ocio), will not be added to the archive. To reiterate, it is the in-memory :ref:`Config` object that is archived, and not any .ocio file in the current working directory. The directory structure relative to the working directory is preserved. No files outside the working directory are archived so that if it is later expanded, no files will be created outside the working dir.
The reason the archive is created using all supported LUT file extensions rather than by trying to resolve all the FileTransforms in the :ref:`Config` to specific files is because of the goal to allow context variables to continue to work.
If a :ref:`Config` is created with CreateFromStream, CreateFromFile with an OCIOZ archive, or CreateFromConfigIOProxy, it cannot be archived unless the working directory is manually set to a directory that contains any necessary LUT files.
The provided output stream must be closed by the caller, if necessary (e.g., an ofstream).
:param ostream: The output stream to write to.
.. py:method:: Config.clearColorSpaces(self: PyOpenColorIO.Config) -> None
:module: PyOpenColorIO
@@ -202,6 +302,12 @@
:module: PyOpenColorIO
.. py:method:: Config.clearVirtualDisplay(self: PyOpenColorIO.Config) -> None
:module: PyOpenColorIO
Clear the virtual display.
.. py:method:: Config.filepathOnlyMatchesDefaultRule(self: PyOpenColorIO.Config, filePath: str) -> bool
:module: PyOpenColorIO
@@ -256,7 +362,7 @@
.. py:method:: Config.getColorSpaceFromFilepath(self: PyOpenColorIO.Config, filePath: str) -> tuple
:module: PyOpenColorIO
Get the color space of the first rule that matched filePath.
Get the color space of the first rule that matched filePath. (For v1 configs, this is equivalent to calling parseColorSpaceFromString with strictparsing set to false.)
.. py:method:: Config.getColorSpaceNames(*args, **kwargs)
@@ -303,7 +409,7 @@
Get the default coefficients for computing luma.
.. note::
There is no "1 size fits all" set of luma coefficients. (The values are typically different for each colorspace, and the application of them may be nonsensical depending on the intensity coding anyways). Thus, the 'right' answer is to make these functions on the :ref:`Config` class. However, it's often useful to have a config-wide default so here it is. We will add the colorspace specific luma call if/when another client is interesting in using it.
There is no "1 size fits all" set of luma coefficients. (The values are typically different for each colorspace, and the application of them may be nonsensical depending on the intensity coding anyways). Thus, the 'right' answer is to make these functions on the :ref:`ColorSpace` class. However, it's often useful to have a config-wide default so here it is. We will add the colorspace specific luma call if/when another client is interesting in using it.
.. py:method:: Config.getDefaultSceneToDisplayViewTransform(self: PyOpenColorIO.Config) -> PyOpenColorIO.ViewTransform
@@ -312,9 +418,15 @@
This view transform is the one that will be used by default if a :ref:`ColorSpaceTransform` is needed between a scene-referred and display-referred color space. The config author may specify a transform to use via the default_view_transform entry in the config. If that is not present, or does not return a valid view transform from the scene-referred connection space, the fall-back is to use the first valid view transform in the config. Returns a null ConstTransformRcPtr if there isn't one.
.. py:method:: Config.getDefaultView(self: PyOpenColorIO.Config, display: str) -> str
.. py:method:: Config.getDefaultView(*args, **kwargs)
:module: PyOpenColorIO
Overloaded function.
1. getDefaultView(self: PyOpenColorIO.Config, display: str) -> str
2. getDefaultView(self: PyOpenColorIO.Config, display: str, colorSpacename: str) -> str
.. py:method:: Config.getDefaultViewTransformName(self: PyOpenColorIO.Config) -> str
:module: PyOpenColorIO
@@ -362,6 +474,10 @@
:module: PyOpenColorIO
.. py:method:: Config.getDisplaysAll(self: PyOpenColorIO.Config) -> PyOpenColorIO.Config.DisplayAllIterator
:module: PyOpenColorIO
.. py:method:: Config.getEnvironmentMode(self: PyOpenColorIO.Config) -> PyOpenColorIO.EnvironmentMode
:module: PyOpenColorIO
@@ -472,15 +588,25 @@
6. getProcessor(self: PyOpenColorIO.Config, context: PyOpenColorIO.Context, srcColorSpaceName: str, display: str, view: str, direction: PyOpenColorIO.TransformDirection) -> PyOpenColorIO.Processor
7. getProcessor(self: PyOpenColorIO.Config, transform: PyOpenColorIO.Transform) -> PyOpenColorIO.Processor
7. getProcessor(self: PyOpenColorIO.Config, namedTransform: PyOpenColorIO.NamedTransform, direction: PyOpenColorIO.TransformDirection) -> PyOpenColorIO.Processor
Get the processor to apply a :ref:`NamedTransform` in the specified direction.
8. getProcessor(self: PyOpenColorIO.Config, context: PyOpenColorIO.Context, namedTransform: PyOpenColorIO.NamedTransform, direction: PyOpenColorIO.TransformDirection) -> PyOpenColorIO.Processor
9. getProcessor(self: PyOpenColorIO.Config, namedTransformName: str, direction: PyOpenColorIO.TransformDirection) -> PyOpenColorIO.Processor
10. getProcessor(self: PyOpenColorIO.Config, context: PyOpenColorIO.Context, namedTransformName: str, direction: PyOpenColorIO.TransformDirection) -> PyOpenColorIO.Processor
11. getProcessor(self: PyOpenColorIO.Config, transform: PyOpenColorIO.Transform) -> PyOpenColorIO.Processor
Get the processor for the specified transform.
Not often needed, but will allow for the re-use of atomic OCIO functionality (such as to apply an individual LUT file).
8. getProcessor(self: PyOpenColorIO.Config, transform: PyOpenColorIO.Transform, direction: PyOpenColorIO.TransformDirection) -> PyOpenColorIO.Processor
12. getProcessor(self: PyOpenColorIO.Config, transform: PyOpenColorIO.Transform, direction: PyOpenColorIO.TransformDirection) -> PyOpenColorIO.Processor
9. getProcessor(self: PyOpenColorIO.Config, context: PyOpenColorIO.Context, transform: PyOpenColorIO.Transform, direction: PyOpenColorIO.TransformDirection) -> PyOpenColorIO.Processor
13. getProcessor(self: PyOpenColorIO.Config, context: PyOpenColorIO.Context, transform: PyOpenColorIO.Transform, direction: PyOpenColorIO.TransformDirection) -> PyOpenColorIO.Processor
.. py:method:: Config.getRoleNames(self: PyOpenColorIO.Config) -> PyOpenColorIO.Config.RoleNameIterator
@@ -528,7 +654,33 @@
1. getViews(self: PyOpenColorIO.Config, display: str) -> PyOpenColorIO.Config.ViewIterator
2. getViews(self: PyOpenColorIO.Config, display: str, colorSpaceName: str) -> PyOpenColorIO.Config.ViewForColorSpaceIterator
2. getViews(self: PyOpenColorIO.Config, type: PyOpenColorIO.ViewType, display: str) -> PyOpenColorIO.Config.ViewForViewTypeIterator
3. getViews(self: PyOpenColorIO.Config, display: str, colorSpaceName: str) -> PyOpenColorIO.Config.ViewForColorSpaceIterator
.. py:method:: Config.getVirtualDisplayViewColorSpaceName(self: PyOpenColorIO.Config, view: str) -> str
:module: PyOpenColorIO
.. py:method:: Config.getVirtualDisplayViewDescription(self: PyOpenColorIO.Config, view: str) -> str
:module: PyOpenColorIO
.. py:method:: Config.getVirtualDisplayViewLooks(self: PyOpenColorIO.Config, view: str) -> str
:module: PyOpenColorIO
.. py:method:: Config.getVirtualDisplayViewRule(self: PyOpenColorIO.Config, view: str) -> str
:module: PyOpenColorIO
.. py:method:: Config.getVirtualDisplayViewTransformName(self: PyOpenColorIO.Config, view: str) -> str
:module: PyOpenColorIO
.. py:method:: Config.getVirtualDisplayViews(self: PyOpenColorIO.Config, display: PyOpenColorIO.ViewType) -> PyOpenColorIO.Config.VirtualViewIterator
:module: PyOpenColorIO
.. py:method:: Config.getWorkingDir(self: PyOpenColorIO.Config) -> str
@@ -541,6 +693,69 @@
Return true if the role has been defined.
.. py:method:: Config.instantiateDisplayFromICCProfile(self: PyOpenColorIO.Config, ICCProfileFilepath: str) -> int
:module: PyOpenColorIO
Instantiate a new display from a virtual display, using an ICC profile.
On platforms such as Linux, where the :ref:`SystemMonitors` class is not able to obtain a list of ICC profiles from the OS, this method may be used to manually specify a path to an ICC profile.
Will throw if the virtual display definition is missing from the config.
Returns the index of the display.
.. py:method:: Config.instantiateDisplayFromMonitorName(self: PyOpenColorIO.Config, monitorName: str) -> int
:module: PyOpenColorIO
Instantiate a new display from a virtual display, using the monitor name.
This method uses the virtual display to create an actual display for the given monitorName. The new display will receive the views from the virtual display.
After the ICC profile is read, a display name will be created by combining the description text from the profile with the monitorName obtained from the OS. Use the :ref:`SystemMonitors` class to obtain the list of monitorName strings for the displays connected to the computer.
A new display color space will also be created using the display name. It will have a from_display_reference transform that is a :ref:`FileTransform` pointing to the ICC profile.
Any instantiated display color spaces for a virtual display are intended to be temporary (i.e. last as long as the current session). By default, they are not saved when writing a config file. If there is a need to make it a permanent color space, it may be desirable to copy the ICC profile somewhere under the config search_path.
Will throw if the config does not have a virtual display or if the monitorName does not exist.
If there is already a display or a display color space with the name monitorName, it will be replaced/updated.
Returns the index of the display.
.. py:method:: Config.isArchivable(self: PyOpenColorIO.Config) -> bool
:module: PyOpenColorIO
Verify if the config is archivable.
A config is not archivable if any of the following are true: -- The working directory is not set -- It contains FileTransforms with a src outside the working directory -- The search path contains paths outside the working directory -- The search path contains paths that start with a context variable
:ref:`Context` variables are allowed but the intent is that they may only resolve to paths that are within or below the working directory. This is because the archiving function will only archive files that are within the working directory in order to ensure that if it is later expanded, that it will not create any files outside this directory.
For example, a context variable on the search path intended to contain the name of a sub-directory under the working directory must have the form "./$DIR_NAME" rather than just "$DIR_NAME" to be considered archivable. This is imperfect since there is no way to prevent the context variable from creating a path outside the working dir, but it should at least draw attention to the fact that the archive would fail if used with context vars that try to abuse the intended functionality.
:return: bool Archivable if true.
.. py:method:: Config.isColorSpaceLinear(self: PyOpenColorIO.Config, colorSpace: str, referenceSpaceType: PyOpenColorIO.ReferenceSpaceType) -> bool
:module: PyOpenColorIO
Return true if the specified color space is linear.
The determination of linearity is made with respect to one of the two reference spaces (i.e., either the scene-referred one or the display-referred one). If the reference space type of the color space is the opposite of the requested reference space type, false is returned immediately rather than trying to invoke the default view transform to convert between the reference spaces.
Note: This function relies on heuristics that may sometimes give an incorrect result. For example, if the encoding attribute is not set appropriately or the sampled values fail to detect non-linearity.
The algorithm proceeds as follows: -- If the color space isdata attribute is true, return false. -- If the reference space type of the color space differs from the requested reference space type, return false. -- If the color space's encoding attribute is present, return true if it matches the expected reference space type (i.e., "scene-linear" for REFERENCE_SPACE_SCENE or "display-linear" for REFERENCE_SPACE_DISPLAY) and false otherwise. -- If the color space has no to_reference or from_reference transform, return true. -- Evaluate several points through the color space's transform and check if the output only differs by a scale factor (which may be different per channel, e.g. allowing an arbitrary matrix transform, with no offset).
Note that the encoding test happens before the sampled value test to give config authors ultimate control over the linearity determination. For example, they could set the encoding attribute to indicate linearity if they want to ignore some areas of non-linearity (e.g., at extreme values). Or they could set it to indicate that a color space should not be considered linear, even if it is, in a mathematical sense.
:param colorSpace: Color space to evaluate.
:param referenceSpaceType: Evaluate linearity with respect to the specified reference space (either scene-referred or display-referred).
.. py:method:: Config.isColorSpaceUsed(self: PyOpenColorIO.Config, name: str) -> bool
:module: PyOpenColorIO
@@ -550,6 +765,10 @@
Name must be the canonical name.
.. py:method:: Config.isDisplayTemporary(self: PyOpenColorIO.Config, display: str) -> bool
:module: PyOpenColorIO
.. py:method:: Config.isStrictParsingEnabled(self: PyOpenColorIO.Config) -> bool
:module: PyOpenColorIO
@@ -561,7 +780,7 @@
.. py:method:: Config.parseColorSpaceFromString(self: PyOpenColorIO.Config, str: str) -> str
:module: PyOpenColorIO
Given the specified string, get the longest, right-most, colorspace substring that appears. This is now deprecated, please use getColorSpaceFromFilepath.
Given the specified string, get the longest, right-most, colorspace substring that appears.
- If strict parsing is enabled, and no color space is found, return an empty string.
- If strict parsing is disabled, return ROLE_DEFAULT (if defined).
@@ -596,6 +815,12 @@
Remove a shared view. Will throw if the view does not exist.
.. py:method:: Config.removeVirtualDisplayView(self: PyOpenColorIO.Config, view: str) -> None
:module: PyOpenColorIO
Remove the view from the virtual display.
.. py:method:: Config.serialize(*args, **kwargs)
:module: PyOpenColorIO
@@ -10,8 +10,6 @@
.. py:method:: CPUProcessor.__init__(*args, **kwargs)
:module: PyOpenColorIO
Initialize self. See help(type(self)) for accurate signature.
.. py:method:: CPUProcessor.apply(*args, **kwargs)
:module: PyOpenColorIO
@@ -51,8 +51,6 @@
.. py:method:: DynamicProperty.__init__(*args, **kwargs)
:module: PyOpenColorIO
Initialize self. See help(type(self)) for accurate signature.
.. py:method:: DynamicProperty.getDouble(self: PyOpenColorIO.DynamicProperty) -> float
:module: PyOpenColorIO
@@ -54,3 +54,7 @@
:module: PyOpenColorIO
:value: <DynamicPropertyType.DYNAMIC_PROPERTY_GRADING_TONE: 5>
.. py:property:: DynamicPropertyType.value
:module: PyOpenColorIO
@@ -31,3 +31,7 @@
:module: PyOpenColorIO
:value: <EnvironmentMode.ENV_ENVIRONMENT_UNKNOWN: 0>
.. py:property:: EnvironmentMode.value
:module: PyOpenColorIO
@@ -33,3 +33,7 @@
:module: PyOpenColorIO
:value: <ExposureContrastStyle.EXPOSURE_CONTRAST_VIDEO: 1>
.. py:property:: ExposureContrastStyle.value
:module: PyOpenColorIO
@@ -30,6 +30,8 @@
Getters and setters are using the rule position, they will throw if the position is not valid. If the rule at the specified position does not implement the requested property getter will return NULL and setter will throw.
When loading a v1 config, a set of :ref:`FileRules` are created with ColorSpaceNamePathSearch followed by the Default rule pointing to the default role. This allows getColorSpaceFromFilepath to emulate OCIO v1 code that used parseColorSpaceFromString with strictparsing set to false.
.. py:method:: FileRules.__init__(self: PyOpenColorIO.FileRules) -> None
:module: PyOpenColorIO
@@ -34,7 +34,7 @@
FIXED_FUNCTION_ACES_GAMUTMAP_07 : ACES 0.7 Gamut clamping algorithm -- NOT IMPLEMENTED YET.
FIXED_FUNCTION_ACES_GAMUTMAP_13 : ACES 1.3 Gamut mapping algorithm.
FIXED_FUNCTION_ACES_GAMUT_COMP_13 : ACES 1.3 Parametric Gamut Compression (expects ACEScg values)
.. py:method:: name() -> str
:property:
@@ -54,9 +54,9 @@
:value: <FixedFunctionStyle.FIXED_FUNCTION_ACES_GAMUTMAP_07: 11>
.. py:attribute:: FixedFunctionStyle.FIXED_FUNCTION_ACES_GAMUTMAP_13
.. py:attribute:: FixedFunctionStyle.FIXED_FUNCTION_ACES_GAMUT_COMP_13
:module: PyOpenColorIO
:value: <FixedFunctionStyle.FIXED_FUNCTION_ACES_GAMUTMAP_13: 12>
:value: <FixedFunctionStyle.FIXED_FUNCTION_ACES_GAMUT_COMP_13: 12>
.. py:attribute:: FixedFunctionStyle.FIXED_FUNCTION_ACES_GLOW_03
@@ -103,3 +103,7 @@
:module: PyOpenColorIO
:value: <FixedFunctionStyle.FIXED_FUNCTION_XYZ_TO_xyY: 7>
.. py:property:: FixedFunctionStyle.value
:module: PyOpenColorIO
@@ -28,8 +28,6 @@
.. py:method:: FormatMetadata.__init__(*args, **kwargs)
:module: PyOpenColorIO
Initialize self. See help(type(self)) for accurate signature.
.. py:method:: FormatMetadata.__iter__(self: PyOpenColorIO.FormatMetadata) -> PyOpenColorIO.FormatMetadata.AttributeNameIterator
:module: PyOpenColorIO
@@ -18,8 +18,14 @@
GPU_LANGUAGE_GLSL_4_0 : OpenGL Shading Language.
GPU_LANGUAGE_GLSL_ES_1_0 : OpenGL ES Shading Language.
GPU_LANGUAGE_GLSL_ES_3_0 : OpenGL ES Shading Language.
GPU_LANGUAGE_HLSL_DX11 : DirectX Shading Language.
GPU_LANGUAGE_MSL_2_0 : Metal Shading Language.
.. py:method:: name() -> str
:property:
@@ -43,7 +49,26 @@
:value: <GpuLanguage.GPU_LANGUAGE_GLSL_4_0: 3>
.. py:attribute:: GpuLanguage.GPU_LANGUAGE_GLSL_ES_1_0
:module: PyOpenColorIO
:value: <GpuLanguage.GPU_LANGUAGE_GLSL_ES_1_0: 6>
.. py:attribute:: GpuLanguage.GPU_LANGUAGE_GLSL_ES_3_0
:module: PyOpenColorIO
:value: <GpuLanguage.GPU_LANGUAGE_GLSL_ES_3_0: 7>
.. py:attribute:: GpuLanguage.GPU_LANGUAGE_HLSL_DX11
:module: PyOpenColorIO
:value: <GpuLanguage.GPU_LANGUAGE_HLSL_DX11: 4>
.. py:attribute:: GpuLanguage.GPU_LANGUAGE_MSL_2_0
:module: PyOpenColorIO
:value: <GpuLanguage.GPU_LANGUAGE_MSL_2_0: 8>
.. py:property:: GpuLanguage.value
:module: PyOpenColorIO
@@ -10,8 +10,6 @@
.. py:method:: GPUProcessor.__init__(*args, **kwargs)
:module: PyOpenColorIO
Initialize self. See help(type(self)) for accurate signature.
.. py:method:: GPUProcessor.extractGpuShaderInfo(self: PyOpenColorIO.GPUProcessor, shaderDesc: PyOpenColorIO.GpuShaderDesc) -> None
:module: PyOpenColorIO
@@ -8,9 +8,10 @@
Inherit from the class to fully customize the implementation of a GPU shader program from a color transformation.
When no customizations are needed then the :ref:`GpuShaderDesc` is a better choice.
When no customizations are needed and the intermediate in-memory step is acceptable then the :ref:`GpuShaderDesc` is a better choice.
To better decouple the DynamicProperties from their GPU implementation, the code provides several addUniform() methods i.e. one per access function types. For example, an :ref:`ExposureContrastTransform` instance owns three DynamicProperties and they are all implemented by a double. When creating the GPU fragment shader program, the addUniform() with :ref:`GpuShaderCreator::DoubleGetter` is called when property is dynamic, up to three times.
.. note::
To better decouple the DynamicProperties from their GPU implementation, the code provides several addUniform() methods i.e. one per access function types. For example, an :ref:`ExposureContrastTransform` instance owns three DynamicProperties and they are all implemented by a double. When creating the GPU fragment shader program, the addUniform() with :ref:`GpuShaderCreator::DoubleGetter` is called when property is dynamic, up to three times.
**An OCIO shader program could contain:**
@@ -49,6 +50,47 @@
} //
.. py:attribute:: GpuShaderCreator.TEXTURE_1D
:module: PyOpenColorIO
:value: <TextureDimensions.TEXTURE_1D: 1>
.. py:attribute:: GpuShaderCreator.TEXTURE_2D
:module: PyOpenColorIO
:value: <TextureDimensions.TEXTURE_2D: 2>
.. py:class:: GpuShaderCreator.TextureDimensions
:module: PyOpenColorIO
:canonical: PyOpenColorIO.GpuShaderCreator.TextureDimensions
Dimension enum used to differentiate between 1D and 2D object/resource types.
Members:
TEXTURE_1D
TEXTURE_2D
.. py:attribute:: GpuShaderCreator.TextureDimensions.TEXTURE_1D
:module: PyOpenColorIO
:value: <TextureDimensions.TEXTURE_1D: 1>
.. py:attribute:: GpuShaderCreator.TextureDimensions.TEXTURE_2D
:module: PyOpenColorIO
:value: <TextureDimensions.TEXTURE_2D: 2>
.. py:property:: GpuShaderCreator.TextureDimensions.name
:module: PyOpenColorIO
.. py:property:: GpuShaderCreator.TextureDimensions.value
:module: PyOpenColorIO
.. py:method:: GpuShaderCreator.addToDeclareShaderCode(self: PyOpenColorIO.GpuShaderCreator, shaderCode: str) -> None
:module: PyOpenColorIO
@@ -98,6 +140,10 @@
:module: PyOpenColorIO
.. py:method:: GpuShaderCreator.getAllowTexture1D(self: PyOpenColorIO.GpuShaderCreator) -> bool
:module: PyOpenColorIO
.. py:method:: GpuShaderCreator.getCacheID(self: PyOpenColorIO.GpuShaderCreator) -> str
:module: PyOpenColorIO
@@ -121,7 +167,7 @@
.. py:method:: GpuShaderCreator.getNextResourceIndex(self: PyOpenColorIO.GpuShaderCreator) -> int
:module: PyOpenColorIO
To avoid texture/unform name clashes always append an increasing number to the resource name.
To avoid global texture sampler and uniform name clashes always append an increasing index to the resource name.
.. py:method:: GpuShaderCreator.getPixelName(self: PyOpenColorIO.GpuShaderCreator) -> str
@@ -147,6 +193,12 @@
:module: PyOpenColorIO
.. py:method:: GpuShaderCreator.setAllowTexture1D(self: PyOpenColorIO.GpuShaderCreator, allowed: bool) -> None
:module: PyOpenColorIO
Allow 1D GPU resource type, otherwise always using 2D resources for 1D LUTs.
.. py:method:: GpuShaderCreator.setFunctionName(self: PyOpenColorIO.GpuShaderCreator, name: str) -> None
:module: PyOpenColorIO
@@ -201,6 +253,10 @@
:value: <TextureType.TEXTURE_RGB_CHANNEL: 1>
.. py:property:: TextureType.value
:module: PyOpenColorIO.GpuShaderCreator
.. py:class:: DynamicPropertyIterator
:module: PyOpenColorIO.GpuShaderCreator
@@ -87,18 +87,9 @@
// Step 1: Create a GPU shader description
//
// The three potential scenarios are:
// The two potential scenarios are:
//
// 1. Instantiate the legacy shader description. The color processor
// is baked down to contain at most one 3D LUT and no 1D LUTs.
//
// This is the v1 behavior and will remain part of OCIO v2
// for backward compatibility.
//
OCIO::GpuShaderDescRcPtr shaderDesc
= OCIO::GpuShaderDesc::CreateLegacyShaderDesc(LUT3D_EDGE_SIZE);
//
// 2. Instantiate the generic shader description. The color processor
// 1. Instantiate the generic shader description. The color processor
// is used as-is (i.e. without any baking step) and could contain
// any number of 1D & 3D luts.
//
@@ -107,7 +98,7 @@
//
OCIO::GpuShaderDescRcPtr shaderDesc = OCIO::GpuShaderDesc::Create();
//
// 3. Instantiate a custom shader description.
// 2. Instantiate a custom shader description.
//
// Writing a custom shader description is a way to tailor the shaders
// to the needs of a given client program. This involves writing a
@@ -155,19 +146,72 @@
Create the default shader description.
.. py:attribute:: GpuShaderDesc.TEXTURE_1D
:module: PyOpenColorIO
:value: <TextureDimensions.TEXTURE_1D: 1>
.. py:attribute:: GpuShaderDesc.TEXTURE_2D
:module: PyOpenColorIO
:value: <TextureDimensions.TEXTURE_2D: 2>
.. py:class:: GpuShaderDesc.TextureDimensions
:module: PyOpenColorIO
:canonical: PyOpenColorIO.GpuShaderCreator.TextureDimensions
Dimension enum used to differentiate between 1D and 2D object/resource types.
Members:
TEXTURE_1D
TEXTURE_2D
.. py:attribute:: GpuShaderDesc.TextureDimensions.TEXTURE_1D
:module: PyOpenColorIO
:value: <TextureDimensions.TEXTURE_1D: 1>
.. py:attribute:: GpuShaderDesc.TextureDimensions.TEXTURE_2D
:module: PyOpenColorIO
:value: <TextureDimensions.TEXTURE_2D: 2>
.. py:method:: GpuShaderDesc.TextureDimensions.__init__(self: PyOpenColorIO.GpuShaderCreator.TextureDimensions, value: int) -> None
:module: PyOpenColorIO
.. py:property:: GpuShaderDesc.TextureDimensions.name
:module: PyOpenColorIO
.. py:property:: GpuShaderDesc.TextureDimensions.value
:module: PyOpenColorIO
.. py:method:: GpuShaderDesc.__init__(*args, **kwargs)
:module: PyOpenColorIO
Initialize self. See help(type(self)) for accurate signature.
.. py:method:: GpuShaderDesc.add3DTexture(self: PyOpenColorIO.GpuShaderDesc, textureName: str, samplerName: str, edgeLen: int, interpolation: PyOpenColorIO.Interpolation, values: buffer) -> None
:module: PyOpenColorIO
Add a 3D texture with RGB channel type.
.. py:method:: GpuShaderDesc.addTexture(self: PyOpenColorIO.GpuShaderDesc, textureName: str, samplerName: str, width: int, height: int, channel: PyOpenColorIO.GpuShaderCreator.TextureType, interpolation: PyOpenColorIO.Interpolation, values: buffer) -> None
.. note::
The 'values' parameter contains the 3D LUT data which must be used as-is as the dimension and origin are hard-coded in the fragment shader program. So, it means one GPU 3D texture per entry.
.. py:method:: GpuShaderDesc.addTexture(self: PyOpenColorIO.GpuShaderDesc, textureName: str, samplerName: str, width: int, height: int, channel: PyOpenColorIO.GpuShaderCreator.TextureType, dimensions: PyOpenColorIO.GpuShaderCreator.TextureDimensions, interpolation: PyOpenColorIO.Interpolation, values: buffer) -> None
:module: PyOpenColorIO
Add a 1D or 2D texture
.. note::
The 'values' parameter contains the LUT data which must be used as-is as the dimensions and origin are hard-coded in the fragment shader program. So, it means one GPU texture per entry.
.. py:method:: GpuShaderDesc.addToDeclareShaderCode(self: PyOpenColorIO.GpuShaderCreator, shaderCode: str) -> None
:module: PyOpenColorIO
@@ -222,6 +266,10 @@
:module: PyOpenColorIO
.. py:method:: GpuShaderDesc.getAllowTexture1D(self: PyOpenColorIO.GpuShaderCreator) -> bool
:module: PyOpenColorIO
.. py:method:: GpuShaderDesc.getCacheID(self: PyOpenColorIO.GpuShaderCreator) -> str
:module: PyOpenColorIO
@@ -245,7 +293,7 @@
.. py:method:: GpuShaderDesc.getNextResourceIndex(self: PyOpenColorIO.GpuShaderCreator) -> int
:module: PyOpenColorIO
To avoid texture/unform name clashes always append an increasing number to the resource name.
To avoid global texture sampler and uniform name clashes always append an increasing index to the resource name.
.. py:method:: GpuShaderDesc.getPixelName(self: PyOpenColorIO.GpuShaderCreator) -> str
@@ -285,6 +333,12 @@
:module: PyOpenColorIO
.. py:method:: GpuShaderDesc.setAllowTexture1D(self: PyOpenColorIO.GpuShaderCreator, allowed: bool) -> None
:module: PyOpenColorIO
Allow 1D GPU resource type, otherwise always using 2D resources for 1D LUTs.
.. py:method:: GpuShaderDesc.setFunctionName(self: PyOpenColorIO.GpuShaderCreator, name: str) -> None
:module: PyOpenColorIO
@@ -319,6 +373,7 @@
.. py:class:: TextureType
:module: PyOpenColorIO.GpuShaderDesc
:canonical: PyOpenColorIO.GpuShaderCreator.TextureType
Members:
@@ -339,6 +394,10 @@
:value: <TextureType.TEXTURE_RGB_CHANNEL: 1>
.. py:property:: TextureType.value
:module: PyOpenColorIO.GpuShaderDesc
.. py:class:: UniformData
:module: PyOpenColorIO.GpuShaderDesc
@@ -363,75 +422,68 @@
:module: PyOpenColorIO.GpuShaderDesc
.. py:method:: UniformData.type
.. py:property:: UniformData.type
:module: PyOpenColorIO.GpuShaderDesc
:property:
.. py:class:: Texture
:module: PyOpenColorIO.GpuShaderDesc
.. py:method:: Texture.channel
.. py:property:: Texture.channel
:module: PyOpenColorIO.GpuShaderDesc
.. py:property:: Texture.dimensions
:module: PyOpenColorIO.GpuShaderDesc
:property:
.. py:method:: Texture.getValues(self: PyOpenColorIO.GpuShaderDesc.Texture) -> numpy.ndarray
:module: PyOpenColorIO.GpuShaderDesc
.. py:method:: Texture.height
.. py:property:: Texture.height
:module: PyOpenColorIO.GpuShaderDesc
:property:
.. py:method:: Texture.interpolation
.. py:property:: Texture.interpolation
:module: PyOpenColorIO.GpuShaderDesc
:property:
.. py:method:: Texture.samplerName
.. py:property:: Texture.samplerName
:module: PyOpenColorIO.GpuShaderDesc
:property:
.. py:method:: Texture.textureName
.. py:property:: Texture.textureName
:module: PyOpenColorIO.GpuShaderDesc
:property:
.. py:method:: Texture.width
.. py:property:: Texture.width
:module: PyOpenColorIO.GpuShaderDesc
:property:
.. py:class:: Texture3D
:module: PyOpenColorIO.GpuShaderDesc
.. py:method:: Texture3D.edgeLen
.. py:property:: Texture3D.edgeLen
:module: PyOpenColorIO.GpuShaderDesc
:property:
.. py:method:: Texture3D.getValues(self: PyOpenColorIO.GpuShaderDesc.Texture3D) -> numpy.ndarray
:module: PyOpenColorIO.GpuShaderDesc
.. py:method:: Texture3D.interpolation
.. py:property:: Texture3D.interpolation
:module: PyOpenColorIO.GpuShaderDesc
:property:
.. py:method:: Texture3D.samplerName
.. py:property:: Texture3D.samplerName
:module: PyOpenColorIO.GpuShaderDesc
:property:
.. py:method:: Texture3D.textureName
.. py:property:: Texture3D.textureName
:module: PyOpenColorIO.GpuShaderDesc
:property:
.. py:class:: UniformIterator
@@ -496,6 +548,7 @@
.. py:class:: DynamicPropertyIterator
:module: PyOpenColorIO.GpuShaderDesc
:canonical: PyOpenColorIO.GpuShaderCreator.DynamicPropertyIterator
.. py:method:: DynamicPropertyIterator.__getitem__(self: PyOpenColorIO.GpuShaderCreator.DynamicPropertyIterator, arg0: int) -> PyOpenColorIO.DynamicProperty
@@ -19,12 +19,10 @@
2. __init__(self: PyOpenColorIO.GradingControlPoint, x: float = 0.0, y: float = 0.0) -> None
.. py:method:: GradingControlPoint.x
.. py:property:: GradingControlPoint.x
:module: PyOpenColorIO
:property:
.. py:method:: GradingControlPoint.y
.. py:property:: GradingControlPoint.y
:module: PyOpenColorIO
:property:
@@ -23,69 +23,56 @@
:module: PyOpenColorIO
.. py:method:: GradingPrimary.brightness
.. py:property:: GradingPrimary.brightness
:module: PyOpenColorIO
:property:
.. py:method:: GradingPrimary.clampBlack
.. py:property:: GradingPrimary.clampBlack
:module: PyOpenColorIO
:property:
.. py:method:: GradingPrimary.clampWhite
.. py:property:: GradingPrimary.clampWhite
:module: PyOpenColorIO
:property:
.. py:method:: GradingPrimary.contrast
.. py:property:: GradingPrimary.contrast
:module: PyOpenColorIO
:property:
.. py:method:: GradingPrimary.exposure
.. py:property:: GradingPrimary.exposure
:module: PyOpenColorIO
:property:
.. py:method:: GradingPrimary.gain
.. py:property:: GradingPrimary.gain
:module: PyOpenColorIO
:property:
.. py:method:: GradingPrimary.gamma
.. py:property:: GradingPrimary.gamma
:module: PyOpenColorIO
:property:
.. py:method:: GradingPrimary.lift
.. py:property:: GradingPrimary.lift
:module: PyOpenColorIO
:property:
.. py:method:: GradingPrimary.offset
.. py:property:: GradingPrimary.offset
:module: PyOpenColorIO
:property:
.. py:method:: GradingPrimary.pivot
.. py:property:: GradingPrimary.pivot
:module: PyOpenColorIO
:property:
.. py:method:: GradingPrimary.pivotBlack
.. py:property:: GradingPrimary.pivotBlack
:module: PyOpenColorIO
:property:
.. py:method:: GradingPrimary.pivotWhite
.. py:property:: GradingPrimary.pivotWhite
:module: PyOpenColorIO
:property:
.. py:method:: GradingPrimary.saturation
.. py:property:: GradingPrimary.saturation
:module: PyOpenColorIO
:property:
.. py:method:: GradingPrimary.validate(self: PyOpenColorIO.GradingPrimary, arg0: PyOpenColorIO.GradingStyle) -> None
@@ -21,22 +21,18 @@
2. __init__(self: PyOpenColorIO.GradingRGBCurve, red: PyOpenColorIO.GradingBSplineCurve = <control_points=[<x=0, y=0><x=0.5, y=0.5><x=1, y=1>]>, green: PyOpenColorIO.GradingBSplineCurve = <control_points=[<x=0, y=0><x=0.5, y=0.5><x=1, y=1>]>, blue: PyOpenColorIO.GradingBSplineCurve = <control_points=[<x=0, y=0><x=0.5, y=0.5><x=1, y=1>]>, master: PyOpenColorIO.GradingBSplineCurve = <control_points=[<x=0, y=0><x=0.5, y=0.5><x=1, y=1>]>) -> None
.. py:method:: GradingRGBCurve.blue
.. py:property:: GradingRGBCurve.blue
:module: PyOpenColorIO
:property:
.. py:method:: GradingRGBCurve.green
.. py:property:: GradingRGBCurve.green
:module: PyOpenColorIO
:property:
.. py:method:: GradingRGBCurve.master
.. py:property:: GradingRGBCurve.master
:module: PyOpenColorIO
:property:
.. py:method:: GradingRGBCurve.red
.. py:property:: GradingRGBCurve.red
:module: PyOpenColorIO
:property:
@@ -19,22 +19,18 @@
2. __init__(self: PyOpenColorIO.GradingRGBM, red: float, green: float, blue: float, master: float) -> None
.. py:method:: GradingRGBM.blue
.. py:property:: GradingRGBM.blue
:module: PyOpenColorIO
:property:
.. py:method:: GradingRGBM.green
.. py:property:: GradingRGBM.green
:module: PyOpenColorIO
:property:
.. py:method:: GradingRGBM.master
.. py:property:: GradingRGBM.master
:module: PyOpenColorIO
:property:
.. py:method:: GradingRGBM.red
.. py:property:: GradingRGBM.red
:module: PyOpenColorIO
:property:
@@ -21,32 +21,26 @@
3. __init__(self: PyOpenColorIO.GradingRGBMSW, start: float, width: float) -> None
.. py:method:: GradingRGBMSW.blue
.. py:property:: GradingRGBMSW.blue
:module: PyOpenColorIO
:property:
.. py:method:: GradingRGBMSW.green
.. py:property:: GradingRGBMSW.green
:module: PyOpenColorIO
:property:
.. py:method:: GradingRGBMSW.master
.. py:property:: GradingRGBMSW.master
:module: PyOpenColorIO
:property:
.. py:method:: GradingRGBMSW.red
.. py:property:: GradingRGBMSW.red
:module: PyOpenColorIO
:property:
.. py:method:: GradingRGBMSW.start
.. py:property:: GradingRGBMSW.start
:module: PyOpenColorIO
:property:
.. py:method:: GradingRGBMSW.width
.. py:property:: GradingRGBMSW.width
:module: PyOpenColorIO
:property:
@@ -33,3 +33,7 @@
:module: PyOpenColorIO
:value: <GradingStyle.GRADING_VIDEO: 2>
.. py:property:: GradingStyle.value
:module: PyOpenColorIO
@@ -13,29 +13,24 @@
:module: PyOpenColorIO
.. py:method:: GradingTone.blacks
.. py:property:: GradingTone.blacks
:module: PyOpenColorIO
:property:
.. py:method:: GradingTone.highlights
.. py:property:: GradingTone.highlights
:module: PyOpenColorIO
:property:
.. py:method:: GradingTone.midtones
.. py:property:: GradingTone.midtones
:module: PyOpenColorIO
:property:
.. py:method:: GradingTone.scontrast
.. py:property:: GradingTone.scontrast
:module: PyOpenColorIO
:property:
.. py:method:: GradingTone.shadows
.. py:property:: GradingTone.shadows
:module: PyOpenColorIO
:property:
.. py:method:: GradingTone.validate(self: PyOpenColorIO.GradingTone) -> None
@@ -44,7 +39,6 @@
The valid range for each parameter varies. The client is expected to enforce these bounds in the UI.
.. py:method:: GradingTone.whites
.. py:property:: GradingTone.whites
:module: PyOpenColorIO
:property:
@@ -71,3 +71,7 @@
:module: PyOpenColorIO
:value: <Interpolation.INTERP_UNKNOWN: 0>
.. py:property:: Interpolation.value
:module: PyOpenColorIO
@@ -45,3 +45,7 @@
:module: PyOpenColorIO
:value: <LoggingLevel.LOGGING_LEVEL_WARNING: 1>
.. py:property:: LoggingLevel.value
:module: PyOpenColorIO
@@ -33,3 +33,7 @@
:module: PyOpenColorIO
:value: <Lut1DHueAdjust.HUE_WYPN: 2>
.. py:property:: Lut1DHueAdjust.value
:module: PyOpenColorIO
@@ -20,8 +20,6 @@
.. py:method:: MixingSlider.__init__(*args, **kwargs)
:module: PyOpenColorIO
Initialize self. See help(type(self)) for accurate signature.
.. py:method:: MixingSlider.getSliderMaxEdge(self: PyOpenColorIO.MixingSlider) -> float
:module: PyOpenColorIO
@@ -12,6 +12,13 @@
curve" transform where there is no need to convert to or from a reference space.
.. py:method:: NamedTransform.GetTransform(transform: PyOpenColorIO.NamedTransform, direction: PyOpenColorIO.TransformDirection) -> PyOpenColorIO.Transform
:module: PyOpenColorIO
:staticmethod:
Get the requested transform, creating the transform from the inverse direction if the transform for the requested direction is missing.
.. py:class:: NamedTransform.NamedTransformAliasIterator
:module: PyOpenColorIO
@@ -19,8 +26,6 @@
.. py:method:: NamedTransform.NamedTransformAliasIterator.__init__(*args, **kwargs)
:module: PyOpenColorIO
Initialize self. See help(type(self)) for accurate signature.
.. py:method:: NamedTransform.__init__(*args, **kwargs)
:module: PyOpenColorIO
@@ -113,7 +118,7 @@
:module: PyOpenColorIO
.. py:method:: NamedTransform.setEncoding(self: PyOpenColorIO.NamedTransform, encodig: str) -> None
.. py:method:: NamedTransform.setEncoding(self: PyOpenColorIO.NamedTransform, encoding: str) -> None
:module: PyOpenColorIO
@@ -31,3 +31,7 @@
:module: PyOpenColorIO
:value: <NamedTransformVisibility.NAMEDTRANSFORM_INACTIVE: 1>
.. py:property:: NamedTransformVisibility.value
:module: PyOpenColorIO
@@ -40,3 +40,7 @@
:module: PyOpenColorIO
:value: <NegativeStyle.NEGATIVE_PASS_THRU: 2>
.. py:property:: NegativeStyle.value
:module: PyOpenColorIO
@@ -208,3 +208,7 @@
:module: PyOpenColorIO
:value: <OptimizationFlags.OPTIMIZATION_VERY_GOOD: 263995331>
.. py:property:: OptimizationFlags.value
:module: PyOpenColorIO
@@ -12,8 +12,6 @@
.. py:method:: Processor.__init__(*args, **kwargs)
:module: PyOpenColorIO
Initialize self. See help(type(self)) for accurate signature.
.. py:method:: Processor.createGroupTransform(self: PyOpenColorIO.Processor) -> PyOpenColorIO.GroupTransform
:module: PyOpenColorIO
@@ -31,7 +29,7 @@
Get an optimized :ref:`CPUProcessor` instance.
.. note::
This may provide higher fidelity than anticipated due to internal optimizations. For example, if the inputColorSpace and the outputColorSpace are members of the same family, no conversion will be applied, even though strictly speaking quantization should be added.
This may provide higher fidelity than anticipated due to internal optimizations. For example, if the inputColorSpace and the outputColorSpace are members of the same equalitygroup, no conversion will be applied, even though strictly speaking quantization should be added.
.. note::
The typical use case to apply color processing to an image is:
@@ -40,3 +40,7 @@
:module: PyOpenColorIO
:value: <ProcessorCacheFlags.PROCESSOR_CACHE_SHARE_DYN_PROPERTIES: 2>
.. py:property:: ProcessorCacheFlags.value
:module: PyOpenColorIO
@@ -26,3 +26,7 @@
:module: PyOpenColorIO
:value: <RangeStyle.RANGE_NO_CLAMP: 0>
.. py:property:: RangeStyle.value
:module: PyOpenColorIO
@@ -26,3 +26,7 @@
:module: PyOpenColorIO
:value: <ReferenceSpaceType.REFERENCE_SPACE_SCENE: 0>
.. py:property:: ReferenceSpaceType.value
:module: PyOpenColorIO
@@ -47,3 +47,7 @@
:module: PyOpenColorIO
:value: <RGBCurveType.RGB_RED: 0>
.. py:property:: RGBCurveType.value
:module: PyOpenColorIO
@@ -31,3 +31,7 @@
:module: PyOpenColorIO
:value: <SearchReferenceSpaceType.SEARCH_REFERENCE_SPACE_SCENE: 0>
.. py:property:: SearchReferenceSpaceType.value
:module: PyOpenColorIO
@@ -8,5 +8,7 @@
Set the Compute Hash Function to use; otherwise, use the default.
This is not used when using CreateFromFile with an OCIOZ archive or CreateFromConfigIOProxy.
:param ComputeHashFunction:
@@ -12,8 +12,6 @@
.. py:method:: Transform.__init__(*args, **kwargs)
:module: PyOpenColorIO
Initialize self. See help(type(self)) for accurate signature.
.. py:method:: Transform.getDirection(self: PyOpenColorIO.Transform) -> PyOpenColorIO.TransformDirection
:module: PyOpenColorIO
@@ -24,3 +24,7 @@
:module: PyOpenColorIO
:value: <TransformDirection.TRANSFORM_DIR_INVERSE: 1>
.. py:property:: TransformDirection.value
:module: PyOpenColorIO
@@ -164,3 +164,7 @@
:module: PyOpenColorIO
:value: <TransformType.TRANSFORM_TYPE_RANGE: 21>
.. py:property:: TransformType.value
:module: PyOpenColorIO
@@ -54,3 +54,7 @@
:module: PyOpenColorIO
:value: <UniformDataType.UNIFORM_VECTOR_INT: 4>
.. py:property:: UniformDataType.value
:module: PyOpenColorIO
@@ -24,3 +24,7 @@
:module: PyOpenColorIO
:value: <ViewTransformDirection.VIEWTRANSFORM_DIR_TO_REFERENCE: 0>
.. py:property:: ViewTransformDirection.value
:module: PyOpenColorIO
@@ -24,3 +24,7 @@
:module: PyOpenColorIO
:value: <ViewType.VIEW_SHARED: 0>
.. py:property:: ViewType.value
:module: PyOpenColorIO
+2 -2
View File
@@ -8,7 +8,7 @@ Charter
=======
See `Charter.md
<https://github.com/AcademySoftwareFoundation/OpenColorIO/blob/master/ASWF/Charter.md>`__
<https://github.com/AcademySoftwareFoundation/OpenColorIO/blob/main/ASWF/Charter.md>`__
on GitHub.
Technical Charter (the “Charter”) for OpenColorIO a Series of LF Projects, LLC
@@ -193,7 +193,7 @@ Project must comply with the terms of this Charter.
- **i.** All new inbound code contributions to the Project must be
made using the **BSD 3-Clause License (available
here: **\ https://github.com/AcademySoftwareFoundation/OpenColorIO/blob/master/LICENSE\ **)**
here: **\ https://github.com/AcademySoftwareFoundation/OpenColorIO/blob/main/LICENSE\ **)**
(the “Project License”).
- **ii.** All new inbound code contributions must:
+4 -4
View File
@@ -12,7 +12,7 @@ follows the open source software best practice policies of the ASWF TAC with
the guidance from the Linux Foundation.
See `CONTRIBUTING.md
<https://github.com/AcademySoftwareFoundation/OpenColorIO/blob/master/CONTRIBUTING.md>`__
<https://github.com/AcademySoftwareFoundation/OpenColorIO/blob/main/CONTRIBUTING.md>`__
for more information.
CLA
@@ -35,7 +35,7 @@ then you should use the :ref:`Corporate Contributor Licence Agreement <ccla>`.
The OCIO CLA's are the standard forms used by Linux Foundation projects and
`recommended by the ASWF TAC
<https://github.com/AcademySoftwareFoundation/tac/blob/master/process/contributing.md#contributor-license-agreement-cla>`__.
<https://github.com/AcademySoftwareFoundation/tac/blob/main/process/contributing.md#contributor-license-agreement-cla>`__.
.. _ccla:
@@ -43,7 +43,7 @@ CLA-corporate
+++++++++++++
See `CLA-corporate.md
<https://github.com/AcademySoftwareFoundation/OpenColorIO/blob/master/ASWF/CLA-corporate.md>`__
<https://github.com/AcademySoftwareFoundation/OpenColorIO/blob/main/ASWF/CLA-corporate.md>`__
on GitHub.
----
@@ -108,7 +108,7 @@ CLA-individual
++++++++++++++
See `CLA-individual.md
<https://github.com/AcademySoftwareFoundation/OpenColorIO/blob/master/ASWF/CLA-individual.md>`__
<https://github.com/AcademySoftwareFoundation/OpenColorIO/blob/main/ASWF/CLA-individual.md>`__
on GitHub.
----
+1 -1
View File
@@ -12,7 +12,7 @@ library should abide by that license unless otherwised approved by the OCIO
TSC and ASWF Governing Board.
See `LICENSE
<https://github.com/AcademySoftwareFoundation/OpenColorIO/blob/master/LICENSE>`__
<https://github.com/AcademySoftwareFoundation/OpenColorIO/blob/main/LICENSE>`__
on GitHub.
----
@@ -222,7 +222,7 @@ are loaded, etc.
CPU CODE PATH
+++++++++++++
The master list of ops is then optimized, and stored internally in the processor.
The main list of ops is then optimized, and stored internally in the processor.
.. code-block:: cpp
@@ -260,7 +260,7 @@ After all ops have been applied, the results are copied back to the source
GPU CODE PATH
+++++++++++++
#. The master list of ops is partitioned into 3 ordered lists:
#. The main list of ops is partitioned into 3 ordered lists:
- As many ops as possible from the BEGINNING of the op-list that can be done
analytically in shader text. (called gpu-preops)
@@ -276,7 +276,7 @@ analyze the op-stream metadata and determine the appropriate allocation to use.
interserting a forward allocation to the end of the pre-ops, and the inverse
allocation to the start of the lattice ops.
See https://github.com/AcademySoftwareFoundation/OpenColorIO/blob/master/src/core/NoOps.cpp#L183
See https://github.com/AcademySoftwareFoundation/OpenColorIO/blob/main/src/core/NoOps.cpp#L183
#. The 3 lists of ops are then optimized individually, and stored on the processor.
The Lut3d is computed by applying the gpu-lattice ops, on the CPU, to a lut3d
+24 -5
View File
@@ -4,11 +4,30 @@
.. _publications:
Publications
============
Presentations & Publications
============================
DigiPro 2020 **paper** `"The ASWF takes OpenColorIO to the Next Level" <https://drive.google.com/file/d/1y_0ZEftivHH0zoKwvKZx3gH_u_cDm1bD/view?usp=sharing>`_
* ASWF Open Source Days 2023 `video <https://www.youtube.com/watch?v=y-oq693Wl8g>`_
DigiPro 2020 **video** `"The ASWF takes OpenColorIO to the Next Level" <https://vimeo.com/458011669>`_
* OCIO wins the Pipeline Tool award at DigiPro 2022! `video <https://vimeo.com/742052701>`_
`Cinematic Color <http://cinematiccolor.org/>`_
* ASWF Open Source Days 2022 `video <https://www.youtube.com/watch?v=WzFlz1HeNdI>`_
* HPA Tech Retreat 2022 "Color Processing with OCIO v2 and the Academy/ASC Common LUT Format"
`Slides & Tutorial <https://drive.google.com/drive/folders/1ZRTIYE6kFb-7sTUtYIYFNJndhY6tmJee?usp=share_link>`_
* OCIO v2 wins an Engineering Excellence award from the Hollywood Post Alliance!
`article <https://www.hollywoodreporter.com/movies/movie-news/hpa-engineering-excellence-award-recipients-announced-1234995410/>`_
* SIGGRAPH 2021 course "Color management with OpenColorIO V2"
`video <https://vimeo.com/689093714>`__ `PDF <https://drive.google.com/file/d/1v37Bz7s1wbJNg-ULsBqnGPA9h7pWNfhU/view?usp=share_link>`__ `ACM <https://dl.acm.org/doi/10.1145/3450508.3464600>`_
* ASWF Open Source Days 2021 `video <https://youtu.be/FSzLwSTJjWo>`_
* DigiPro 2020 "The ASWF takes OpenColorIO to the Next Level" `video <https://vimeo.com/458011669>`__ `PDF <https://drive.google.com/file/d/1y_0ZEftivHH0zoKwvKZx3gH_u_cDm1bD/view?usp=sharing>`__ `ACM <https://dl.acm.org/doi/abs/10.1145/3403736.3403942>`_
* ASWF Open Source Days 2020 `video <https://www.youtube.com/watch?v=7e0SSka8Ar8>`_
* ASWF Open Source Days 2019 `video <https://youtu.be/L5dpFtgZuhQ>`_
* `Cinematic Color <http://cinematiccolor.org/>`_
+2 -2
View File
@@ -61,8 +61,8 @@ else:
description = "@CMAKE_PROJECT_DESCRIPTION@"
version = "@CMAKE_PROJECT_VERSION@"
version_major = "@OpenColorIO_VERSION_MAJOR@"
version_minor = "@OpenColorIO_VERSION_MAJOR@"
version_patch = "@OpenColorIO_VERSION_MAJOR@"
version_minor = "@OpenColorIO_VERSION_MINOR@"
version_patch = "@OpenColorIO_VERSION_PATCH@"
ocio_namespace = "@OCIO_NAMESPACE@"
author = "Contributors to the {} Project".format(project)
+4 -2
View File
@@ -10,8 +10,10 @@ Configurations
.. toctree::
:caption: Configurations
aces_studio
aces_cg
ocio_v2_demo
aces_1.0.3
nuke_default
spi_anim
spi_vfx
ocio_v2_demo
nuke_default
+7 -3
View File
@@ -2,17 +2,21 @@
SPDX-License-Identifier: CC-BY-4.0
Copyright Contributors to the OpenColorIO Project.
.. _aces_1.0.3:
aces_1.0.3
==========
This section describes the ACES 1.0.3 OpenColorIO configuration.
.. note::
There is a more recent version of the ACES config for ACES 1.2 available here:
There is a more recent version of the ACES 1.0.3 config for ACES 1.2 available here:
- https://github.com/colour-science/OpenColorIO-Configs/tree/feature/aces-1.2-config
An ACES config that takes advantage of the new OCIO v2 features is under development.
.. note::
Please note that both of these configurations have been supplanted by the new
:ref:`aces_studio` for OCIO v2.
Information about ACES
@@ -311,7 +315,7 @@ Features exposed for customization by the user include:
- Selection of shaper function: Log2 or Dolby PQ
**CTL Source**
The configuration depends on the **ACES 1.0.3** release. The release contains a number of file renames and the new ACEScct color space and a number of minor bug fixes and small additions, but is otherwise very similar as the master **ACES 1.0.2** release.
The configuration depends on the **ACES 1.0.3** release. The release contains a number of file renames and the new ACEScct color space and a number of minor bug fixes and small additions, but is otherwise very similar as the main **ACES 1.0.2** release.
The CTL is available here:
+59
View File
@@ -0,0 +1,59 @@
..
SPDX-License-Identifier: CC-BY-4.0
Copyright Contributors to the OpenColorIO Project.
.. _aces_cg:
OCIO CG Config for ACES
=======================
The OCIO Computer Graphics (CG) config for ACES is a simple, lightweight config intended for use
in typical digital content creation (DCC) apps that need robust choices for texture and
rendering spaces and a basic selection of display and view transforms.
Users who need a more extensive set of color spaces, including digital cinema camera
color spaces and a wider set of displays and view should look at the :ref:`aces_studio`.
Please note that some of the color spaces (e.g. for texturing) are not officially part of the
ACES specifications but are included because they are widely used in VFX, animation, and games.
The latest version of this config may be downloaded from the Releases page of its GitHub
`repo. <https://github.com/AcademySoftwareFoundation/OpenColorIO-Config-ACES/releases>`_
The CG Config leverages the high quality ACES implementation built into OCIO itself
and so requires no external LUT files. In fact, even the config file is built into OCIO
and users may access it from any application that uses OCIO 2.2 or higher by using one of the
following strings in place of the config path:
``ocio://studio-config-v2.1.0_aces-v1.3_ocio-v2.3`` (for OCIO 2.3 or higher)
``ocio://studio-config-v1.0.0_aces-v1.3_ocio-v2.1`` (for OCIO 2.2 or higher)
These new configs adopt an advanced naming convention so that they can be uniquely identified:
``studio-config-v1.0.0_aces-v1.3_ocio-v2.1.ocio``
``|-----|-------------|---------|---------|---|``
``|Type | Colorspaces | ACES | Profile | |``
Where:
* Type: The type of the config, e.g., CG or Studio
* Colorspaces: The version for the color spaces and other config features
* ACES: The aces-dev version being used
* Profile: Minimum required OCIO version
The OCIO Configs Working Group collected input from the community and simplified the
naming scheme relative to the earlier OCIO v1 ACES configs. However, aliases have been
added so that the original color space names continue to work (if there is an equivalent
space in the new config).
Please note that with OCIO v2 we are trying to be more rigorous about what constitutes a
"color space". For this reason, the new configs do not bake view transforms or looks into
the display color spaces. Therefore, it is necessary to use a DisplayViewTransform rather
than a ColorSpaceTransform if you want to bake in an ACES Output Transform. This is not
only more rigorous from a color management point of view, it also helps clarify to end-users
the important role of a view transform in the process. Baking in a view transform is a
fundamentally different process than just converting between color space encodings, and it
should be perceived as such by users.
+59
View File
@@ -0,0 +1,59 @@
..
SPDX-License-Identifier: CC-BY-4.0
Copyright Contributors to the OpenColorIO Project.
.. _aces_studio:
OCIO Studio Config for ACES
===========================
The OCIO Studio Config for ACES is the successor to the widely used :ref:`ACES config <aces_1.0.3>`
for OCIO v1.
It contains the complete set of ACES color spaces, displays, and views. In addition, it
contains some extra color spaces that are not officially part of ACES but that are widely
used in the VFX, animation, games, and post-production industries.
Users who need a simpler config that contains just the basics needed to use ACES color
management in common DCC tools are encouraged to check out the :ref:`aces_cg`.
The latest version of this config may be downloaded from the Releases page of its GitHub
`repo. <https://github.com/AcademySoftwareFoundation/OpenColorIO-Config-ACES/releases>`_
The Studio Config leverages the high quality ACES implementation built into OCIO itself
and so requires no external LUT files. In fact, even the config file is built into OCIO
and users may access it from any application that uses OCIO 2.2 or higher by using one of the
following strings in place of the config path:
``ocio://studio-config-v2.1.0_aces-v1.3_ocio-v2.3`` (for OCIO 2.3 or higher)
``ocio://studio-config-v1.0.0_aces-v1.3_ocio-v2.1`` (for OCIO 2.2 or higher)
These new configs adopt an advanced naming convention so that they can be uniquely identified:
``studio-config-v1.0.0_aces-v1.3_ocio-v2.1.ocio``
``|-----|-------------|---------|---------|---|``
``|Type | Colorspaces | ACES | Profile | |``
Where:
* Type: The type of the config, e.g., CG or Studio
* Colorspaces: The version for the color spaces and other config features
* ACES: The aces-dev version being used
* Profile: Minimum required OCIO version
The OCIO Configs Working Group collected input from the community and simplified the
naming scheme relative to the earlier OCIO v1 ACES configs. However, aliases have been
added so that the original color space names continue to work (if there is an equivalent
space in the new config).
Please note that with OCIO v2 we are trying to be more rigorous about what constitutes a
"color space". For this reason, the new configs do not bake view transforms or looks into
the display color spaces. Therefore, it is necessary to use a DisplayViewTransform rather
than a ColorSpaceTransform if you want to bake in an ACES Output Transform. This is not
only more rigorous from a color management point of view, it also helps clarify to end-users
the important role of a view transform in the process. Baking in a view transform is a
fundamentally different process than just converting between color space encodings, and it
should be perceived as such by users.
+4
View File
@@ -10,6 +10,10 @@ ocio-v2_demo
Note: this is not intended to be a complete production-ready config, its purpose
is to introduce many of the new features in OCIO v2.
Due to the limitations of the web template, it may be easier for you to read this
config in a text editor. The config file is located
`here. <https://github.com/AcademySoftwareFoundation/OpenColorIO/tree/main/docs/configurations/ocio-v2_demo.ocio>`_
.. literalinclude:: ocio-v2_demo.ocio
:language: yaml
+10 -8
View File
@@ -15,19 +15,19 @@ Colorspaces
Required.
This section is a list of all the colorspaces known to OCIO. A
colorspace can be referred to elsewhere within the config (including
This section is a list of the scene-referred colorspaces in the config.
A colorspace may be referred to elsewhere within the config (including
other colorspace definitions), and are used within OCIO-supporting
applications.
A color space may use the following keys:
A colorspace may use the following keys:
``to_scene_reference`` and ``from_scene_reference``
---------------------------------------------------
These keys specify the transforms that define the relationship between
the color space and the scene-referred reference space.
the colorspace and the scene-referred reference space.
Note: In OCIO v1, the keys ``to_reference`` and ``from_reference`` were
used (since there was only one reference space). These are still supported
@@ -404,10 +404,10 @@ compatibility.
Optional.
These two options are used when OCIO transforms are applied on the
GPU.
These two options were used in OCIO v1 when transforms were applied on the
GPU. However, the new GPU renderer in OCIO v2 does not need these.
It is also used to automatically generate a "shaper LUT" when
However, they may still be used to automatically generate a "shaper LUT" when
:ref:`baking LUT's <userguide-bakelut>` unless one is explicitly
specified (not all output formats utilise this)
@@ -469,6 +469,8 @@ It's common to use literal ``|`` block syntax to preserve all newlines:
This is the second.
.. _config-display-colorspaces:
Display Colorspaces
*******************
@@ -477,7 +479,7 @@ Display Colorspaces
Optional.
This section is a list of all the display colorspaces known to OCIO.
This section is a list of all the display-referred colorspaces in the config.
A display colorspace is very similar to a colorspace except its transforms
go from or to the display-referred reference space rather than the
scene-referred reference space.
+1 -1
View File
@@ -142,7 +142,7 @@ Example:
Note that if the per-shot lut is not found, you can control whether a
fallback LUT succeeds based on if it's in the master location. You can
fallback LUT succeeds based on if it's in the main location. You can
also use this for multiple levels (show, shot, etc).
Advanced option: If some shots use .cc files, and some use 3d-luts
+15 -4
View File
@@ -18,6 +18,12 @@ This page alone will not help you to write a useful config file! See
the :ref:`configurations` section for examples of complete, practical
configs, and discussion of how they fit within a facilities workflow.
Please note that you should use the OCIO Python or C++ API to generate
the config.ocio file rather than writing the YAML by hand in a text editor.
However, if you do ever modify YAML by hand rather than via the API, you
should run :ref:`overview-ociocheck` on it to ensure that the syntax is
correct.
YAML basics
***********
@@ -29,7 +35,7 @@ has a good overview.
OCIO configs typically use a small subset of YAML, so looking at
existing configs is probably the quickest way to familiarise yourself
(just remember the indentation is important!)
(just remember the indentation is important!).
Checking for errors
*******************
@@ -59,8 +65,12 @@ An OCIO config has the following sections:
* :ref:`config-displays-views` -- This section defines how color spaces should be viewed.
* :ref:`config-looks` -- Looks are transforms used to adjust colors, such as to apply a
creative effect.
* :ref:`config-colorspaces` -- This section defines the universe of color space encodings
* :ref:`config-colorspaces` -- This section defines the scene-referred color space encodings
available within the config.
* :ref:`config-display-colorspaces` -- This section defines the display-referred color space
encodings available within the config.
* :ref:`config-named-transforms` -- Named Transforms are a way to provide transforms that
do not have a fixed relationship to a specific reference space, such as a utility curve.
A collection of :ref:`config-transforms` is provided for use in the various sections
of the config file.
@@ -99,11 +109,12 @@ Optional. A brief description of the configuration.
``name``
^^^^^^^^
Optional. A unique name for the config.
Optional. A unique name for the config. Future versions of OCIO might use this as a
sort of "namespace" for the color spaces defined in the rest of the config.
.. code-block:: yaml
name: foo_2021-02-01
name: studio-config-v1.0.0_aces-v1.3_ocio-v2.1
``search_path``

Some files were not shown because too many files have changed in this diff Show More