Compare commits

...
375 Commits
Author SHA1 Message Date
zialandDoug Walker 5a808fb57a Fix ocioconvert invalid bidepth handling (#2323)
Signed-off-by: zial <zhenlai1013@gmail.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2026-07-09 21:05:14 -04:00
Doug Walker c2bd98f7d3 Adsk Contrib - Fix various Actions problems (#2324)
* Update RTD build OS

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

* Attempt to fix dependencies-latest fail

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

* Attempt to fix dependencies-latest fail - take 2

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

* Allow Linux 2023 to use the latest container

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

* Reorder link libraries

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

* Fetch matching prebuilt OpenColorIO for OIIO app builds in CI

The aswf/ci-ocio container images intentionally omit OpenColorIO since
the whole point of the image is to build it from source. But the
container's prebuilt OpenImageIO is dynamically linked against a
specific OpenColorIO release that isn't present, causing link
failures for ociolutimage/ocioconvert/ociodisplay whenever
OCIO_USE_OIIO_FOR_APPS=ON. Fetch that matching release from the ASWF
Conan remote and stage it on the linker path before configuring, so
apps link against both the from-source build (used directly) and the
container's expected release (used transitively via OpenImageIO).

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

* Revert "Reorder link libraries"

This reverts commit fa79c589e0fbb5bb380a5f5406612e48849d9f6a.

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

* Fail configure when OCIO_USE_OIIO_FOR_APPS is ON but OIIO is missing

Previously, requesting OCIO_USE_OIIO_FOR_APPS=ON while OpenImageIO
could not be found silently fell back to OpenEXR (or skipped building
ociolutimage/ocioconvert/ociodisplay entirely), with only a WARNING.
This let CI silently stop exercising the OIIO code path in those apps
without failing, masking the fact that OIIO wasn't actually being
tested. Turn this into a hard configure-time error instead, so a
missing OpenImageIO is caught immediately when it was explicitly
requested.

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

* Fix OIIO build on macOS

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

* Try to identify source of crash in OpOptimizers test

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

* Print SKIPPED rather than PASSED for new CPU test

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

* Ensure the new test runs even if the existing test crashes

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

* Turn off AVX512 support for EPYC 9V45

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

---------

Signed-off-by: Doug Walker <doug.walker@autodesk.com>
2026-07-08 19:38:58 -04:00
f660cee612 ociocheck to check OpenColorIO library version first (#2310)
* Add to PathUtils

Signed-off-by: Mei Chu <meimchu@gmail.com>

* Python test switch to ExceptionMissingFile

Signed-off-by: Mei Chu <meimchu@gmail.com>

* Updated tests to use ExceptionMissingFile instead

Signed-off-by: Mei Chu <meimchu@gmail.com>

* Revert PathUtil related changes.

Signed-off-by: Mei Chu <meimchu@gmail.com>

* Remove PathUtils changes

Signed-off-by: Mei Chu <meimchu@gmail.com>

* Switch exception raised for filepath not provided in CreateFromFile.

Signed-off-by: Mei Chu <meimchu@gmail.com>

* Remove TODO

Signed-off-by: Mei Chu <meimchu@gmail.com>

* Add CVE to security (#2311)

Signed-off-by: Doug Walker <doug.walker@autodesk.com>
Signed-off-by: Mei Chu <meimchu@gmail.com>

* Adsk Contrib - Fix 2023.3 Linux container break (#2315)

* Fix 2023.3 Linux container break

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

* Adjust to keep the name constant to use the existing GitHub branch rules

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

---------

Signed-off-by: Doug Walker <doug.walker@autodesk.com>
Signed-off-by: Mei Chu <meimchu@gmail.com>

* Add DirectX 12 GPU backend for automated unit testing on Windows (#2271)

* Add DirectX 12 GPU backend for automated unit testing on Windows

Introduce a DirectX 12 / HLSL rendering backend alongside the existing OpenGL / GLSL and Metal / MSL backends, enabling the GPU unit test suite to run natively on Windows without requiring an OpenGL context.

Key changes:

  GraphicalApp abstract interface (graphicalapp.h/cpp)

    Backend-agnostic base class extracted from OglApp.  OglApp and MetalApp now inherit from it.

  DxApp (dxapp.h/cpp) -- DirectX 12 backend

    Off-screen RGBA32F render target, full-screen triangle via SV_VertexID, staging readback, SM 6.0 DXC shader compilation.

  HLSLBuilder (hlsl.h/cpp) -- HLSL shader generation

    Translates GpuShaderDesc into HLSL pixel shaders with 1D and 3D LUT texture uploads in RGBA32F format.

  CMake integration

    OCIO_DIRECTX_ENABLED option, FetchContent for DirectX-Headers, auto-copy of DXC runtime DLLs to the test output directory.

  Test tolerance adjustments

    Minor epsilon increases for 4 tests due to DX12/SM6.0 FMA and pow() precision differences.

  All 263 GPU tests pass on the DirectX 12 backend.

Build and run:

  # Configure (OCIO_DIRECTX_ENABLED defaults to ON on Windows)

  cmake -S . -B build -DCMAKE_BUILD_TYPE=Release

  # Build the GPU test binary

  cmake --build build --target test_gpu_exec --config Release

  # Run GPU tests with the DX12 backend

  ctest --test-dir build -C Release -R test_dx

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

* Fix post-rebase issues found in code review

  - HeadlessOglApp::printGraphicsInfo() was calling pure virtual base (crash on headless EGL)
  - graphicalapp.cpp included oglapp.h unconditionally; guard under OCIO_GL_ENABLED
  - tests/gpu/CMakeLists.txt early-return guard excluded Vulkan-only builds
  - Add missing test_vulkan ctest entry

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

* Minor additional comments, formatting and fixes.

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

* Speed up DX12 GPU test backend (~19%)

  The DX12 test suite was noticeably slower than the OpenGL and Vulkan backends. Profiling the run showed the gap was almost entirely in DXC shader
  compilation, not in Present, fence waits, or DxcCreateInstance as initially suspected.

  Three low-risk changes:

  - Cache IDxcUtils and IDxcCompiler3 as DxApp members instead of recreating them on every setShader() call. The COM instances are thread-safe and
  perfectly reusable; recreating them per test added no value.
  - Compile the full-screen-triangle vertex shader exactly once and reuse the bytecode across all tests. The VSMain HLSL is a hard-coded
  SV_VertexID-driven triangle with no test-specific state — the bytecode is identical every time. Extracted into a new ensureVertexShaderCompiled()
  helper. This alone eliminated the biggest redundancy (263 duplicate VS compiles).
  - Present(1, 0) → Present(0, 0). VSync is meaningless for an off-screen test harness that reads back from a float render target. Locally the win shows
  up mostly in waitForPreviousFrame, which was being throttled by the swap-chain pipeline even on an invisible window.

  All 263/263 tests still pass; no tolerance changes, no DXIL codegen changes (except for a UTF8 fix), no precision risk.

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

* Several small fixes tidying up the recently-added GPU test infrastructure.

  - Fix unused-variable warnings (fatal on macOS with warnings-as-errors): guard useDxRenderer and useVulkanRenderer declarations with the same ifdefs as their usage sites. useMetalRenderer
   stays unconditional because it's referenced on all platforms.
  - Propagate the MSVC+shared-libs PATH workaround to test_vulkan so it can find OpenColorIO_*.dll at runtime, matching what's already done for test_dx.
  - Upgrade the dxcompiler.dll detection message from STATUS to WARNING and rewrite it to name OCIO_DIRECTX_ENABLED and offer concrete recovery paths. The previous STATUS message was easy
  to miss, leaving users with a silent degradation until test_dx failed at runtime.
  - Rename the OpenGL ctest from test_gpu to test_opengl now that sibling backend-specific tests (test_dx, test_vulkan, test_metal) exist. The test_gpu_exec binary keeps its name since it's
   backend-agnostic and selects via CLI flags.
  - Declare OCIO_VULKAN_ENABLED as a first-class CMake option with mark_as_advanced, matching the existing OCIO_DIRECTX_ENABLED. It was previously used in conditionals without ever being
  declared, so it never appeared as a toggle in ccmake/cmake-gui.
  - Document both OCIO_DIRECTX_ENABLED and OCIO_VULKAN_ENABLED in docs/quick_start/installation.rst, noting that Vulkan requires an external SDK.

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

* Integrate DirectX-Headers with OCIO's external-package pattern

  Previously InstallDirectXHeaders.cmake was included unconditionally from oglapphelpers/CMakeLists.txt, so DirectX-Headers was always fetched from GitHub regardless of whether the user had
   a local copy installed. There was no way to use a system install, a vendored copy, or an air-gapped build, and the dep didn't respect OCIO_INSTALL_EXT_PACKAGES. DirectX-Headers is now a
  first-class OCIO dependency, handled the same way as Imath, ZLIB, yaml-cpp, etc.: try find_package first, fall back to FetchContent only if not found and OCIO_INSTALL_EXT_PACKAGES allows
  it.

  Changes:
  - New share/cmake/modules/FindDirectX-Headers.cmake, modeled on FindImath.cmake.
  - InstallDirectXHeaders.cmake → InstallDirectX-Headers.cmake (the hyphen matches OCIO's Install convention).
  - oglapphelpers/CMakeLists.txt now calls ocio_handle_dependency(DirectX-Headers ...) with MIN_VERSION 1.606.0 (Windows SDK 22H2 era — old enough to cover most installed copies) and
  RECOMMENDED_VERSION 1.619.1 (the version OCIO pins and validates).

  For users: a local DirectX-Headers install can now be supplied via any of the standard CMake mechanisms — -DDirectX-Headers_DIR, -DDirectX-Headers_ROOT, -DDirectX-Headers_INCLUDE_DIR, or
  globally with -DOCIO_INSTALL_EXT_PACKAGES=NONE to forbid any network fetch.

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

* Improve dxcompiler.dll diagnostics and allow overriding its path

  Addresses test crashes seen on stuck Windows 10 hosts caused by an old dxcompiler.dll shipped in that host's Windows SDK Redist.

  - Print the version of the found dxcompiler.dll at configure time so crash reports identify the exact DXC build without follow-up diagnostics.
  - Emit a standing hint pointing at the DirectX Shader Compiler releases page, which is the documented workaround.
  - New -DOCIO_DXCOMPILER_DLL=<path> overrides the Windows SDK Redist search, letting users supply a newer DLL pre-build instead of copying it by hand after.
  - Extracted the DXC-runtime logic into share/cmake/utils/LocateDXCompilerRuntime.cmake so tests/gpu/CMakeLists.txt stays focused on the test target.

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

* Minor comment tweaks in LocateDXCompilerRuntime.cmake.

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

* Use OCIO_DirectX-Headers_RECOMMENDED_VERSION in InstallDirectX-Headers.cmake

  ocio_install_dependency already propagates the RECOMMENDED_VERSION from the
  ocio_handle_dependency call site. Consume it instead of hardcoding the
  version a second time. Matches the pattern in Installyaml-cpp.cmake and
  Installpystring.cmake.

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

* Address local cleanup notes from PR #2271 Claude review.

* Name CbvSrvHeapSize and throw in setShader if a shader needs more SRV slots than the heap holds.
* Guard ~DxApp() so the GPU wait/CloseHandle are skipped when sync objects were never created (constructor partial-init).
* Comment the 16-byte float4 stride used when packing UNIFORM_VECTOR_FLOAT/INT arrays into the HLSL constant buffer.
* Only record m_windowClassName when RegisterClassExA actually succeeds, so cleanup won't unregister a class owned by another DxApp.
* Drop the redundant trailing else in GPUUnitTest.cpp's shadingLanguage selector (initializer already covers it).

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>
Signed-off-by: Mei Chu <meimchu@gmail.com>

---------

Signed-off-by: Mei Chu <meimchu@gmail.com>
Signed-off-by: Doug Walker <doug.walker@autodesk.com>
Signed-off-by: Eric Renaud-Houde <eric.renaud.houde@gmail.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
Co-authored-by: Éric Renaud-Houde <eric.renaud.houde@gmail.com>
2026-06-10 13:29:05 -04:00
Doug Walker 7063751feb Adsk Contrib - Avoid possible cycles in transforms (#2318)
* Fix potential cycle crash

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

* Clarify purpose of the various guards

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

---------

Signed-off-by: Doug Walker <doug.walker@autodesk.com>
2026-06-08 21:04:01 -04:00
Éric Renaud-HoudeandDoug Walker 57a94a8003 Add DirectX 12 GPU backend for automated unit testing on Windows (#2271)
* Add DirectX 12 GPU backend for automated unit testing on Windows

Introduce a DirectX 12 / HLSL rendering backend alongside the existing OpenGL / GLSL and Metal / MSL backends, enabling the GPU unit test suite to run natively on Windows without requiring an OpenGL context.

Key changes:

  GraphicalApp abstract interface (graphicalapp.h/cpp)

    Backend-agnostic base class extracted from OglApp.  OglApp and MetalApp now inherit from it.

  DxApp (dxapp.h/cpp) -- DirectX 12 backend

    Off-screen RGBA32F render target, full-screen triangle via SV_VertexID, staging readback, SM 6.0 DXC shader compilation.

  HLSLBuilder (hlsl.h/cpp) -- HLSL shader generation

    Translates GpuShaderDesc into HLSL pixel shaders with 1D and 3D LUT texture uploads in RGBA32F format.

  CMake integration

    OCIO_DIRECTX_ENABLED option, FetchContent for DirectX-Headers, auto-copy of DXC runtime DLLs to the test output directory.

  Test tolerance adjustments

    Minor epsilon increases for 4 tests due to DX12/SM6.0 FMA and pow() precision differences.

  All 263 GPU tests pass on the DirectX 12 backend.

Build and run:

  # Configure (OCIO_DIRECTX_ENABLED defaults to ON on Windows)

  cmake -S . -B build -DCMAKE_BUILD_TYPE=Release

  # Build the GPU test binary

  cmake --build build --target test_gpu_exec --config Release

  # Run GPU tests with the DX12 backend

  ctest --test-dir build -C Release -R test_dx

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

* Fix post-rebase issues found in code review

  - HeadlessOglApp::printGraphicsInfo() was calling pure virtual base (crash on headless EGL)
  - graphicalapp.cpp included oglapp.h unconditionally; guard under OCIO_GL_ENABLED
  - tests/gpu/CMakeLists.txt early-return guard excluded Vulkan-only builds
  - Add missing test_vulkan ctest entry

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

* Minor additional comments, formatting and fixes.

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

* Speed up DX12 GPU test backend (~19%)

  The DX12 test suite was noticeably slower than the OpenGL and Vulkan backends. Profiling the run showed the gap was almost entirely in DXC shader
  compilation, not in Present, fence waits, or DxcCreateInstance as initially suspected.

  Three low-risk changes:

  - Cache IDxcUtils and IDxcCompiler3 as DxApp members instead of recreating them on every setShader() call. The COM instances are thread-safe and
  perfectly reusable; recreating them per test added no value.
  - Compile the full-screen-triangle vertex shader exactly once and reuse the bytecode across all tests. The VSMain HLSL is a hard-coded
  SV_VertexID-driven triangle with no test-specific state — the bytecode is identical every time. Extracted into a new ensureVertexShaderCompiled()
  helper. This alone eliminated the biggest redundancy (263 duplicate VS compiles).
  - Present(1, 0) → Present(0, 0). VSync is meaningless for an off-screen test harness that reads back from a float render target. Locally the win shows
  up mostly in waitForPreviousFrame, which was being throttled by the swap-chain pipeline even on an invisible window.

  All 263/263 tests still pass; no tolerance changes, no DXIL codegen changes (except for a UTF8 fix), no precision risk.

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

* Several small fixes tidying up the recently-added GPU test infrastructure.

  - Fix unused-variable warnings (fatal on macOS with warnings-as-errors): guard useDxRenderer and useVulkanRenderer declarations with the same ifdefs as their usage sites. useMetalRenderer
   stays unconditional because it's referenced on all platforms.
  - Propagate the MSVC+shared-libs PATH workaround to test_vulkan so it can find OpenColorIO_*.dll at runtime, matching what's already done for test_dx.
  - Upgrade the dxcompiler.dll detection message from STATUS to WARNING and rewrite it to name OCIO_DIRECTX_ENABLED and offer concrete recovery paths. The previous STATUS message was easy
  to miss, leaving users with a silent degradation until test_dx failed at runtime.
  - Rename the OpenGL ctest from test_gpu to test_opengl now that sibling backend-specific tests (test_dx, test_vulkan, test_metal) exist. The test_gpu_exec binary keeps its name since it's
   backend-agnostic and selects via CLI flags.
  - Declare OCIO_VULKAN_ENABLED as a first-class CMake option with mark_as_advanced, matching the existing OCIO_DIRECTX_ENABLED. It was previously used in conditionals without ever being
  declared, so it never appeared as a toggle in ccmake/cmake-gui.
  - Document both OCIO_DIRECTX_ENABLED and OCIO_VULKAN_ENABLED in docs/quick_start/installation.rst, noting that Vulkan requires an external SDK.

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

* Integrate DirectX-Headers with OCIO's external-package pattern

  Previously InstallDirectXHeaders.cmake was included unconditionally from oglapphelpers/CMakeLists.txt, so DirectX-Headers was always fetched from GitHub regardless of whether the user had
   a local copy installed. There was no way to use a system install, a vendored copy, or an air-gapped build, and the dep didn't respect OCIO_INSTALL_EXT_PACKAGES. DirectX-Headers is now a
  first-class OCIO dependency, handled the same way as Imath, ZLIB, yaml-cpp, etc.: try find_package first, fall back to FetchContent only if not found and OCIO_INSTALL_EXT_PACKAGES allows
  it.

  Changes:
  - New share/cmake/modules/FindDirectX-Headers.cmake, modeled on FindImath.cmake.
  - InstallDirectXHeaders.cmake → InstallDirectX-Headers.cmake (the hyphen matches OCIO's Install convention).
  - oglapphelpers/CMakeLists.txt now calls ocio_handle_dependency(DirectX-Headers ...) with MIN_VERSION 1.606.0 (Windows SDK 22H2 era — old enough to cover most installed copies) and
  RECOMMENDED_VERSION 1.619.1 (the version OCIO pins and validates).

  For users: a local DirectX-Headers install can now be supplied via any of the standard CMake mechanisms — -DDirectX-Headers_DIR, -DDirectX-Headers_ROOT, -DDirectX-Headers_INCLUDE_DIR, or
  globally with -DOCIO_INSTALL_EXT_PACKAGES=NONE to forbid any network fetch.

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

* Improve dxcompiler.dll diagnostics and allow overriding its path

  Addresses test crashes seen on stuck Windows 10 hosts caused by an old dxcompiler.dll shipped in that host's Windows SDK Redist.

  - Print the version of the found dxcompiler.dll at configure time so crash reports identify the exact DXC build without follow-up diagnostics.
  - Emit a standing hint pointing at the DirectX Shader Compiler releases page, which is the documented workaround.
  - New -DOCIO_DXCOMPILER_DLL=<path> overrides the Windows SDK Redist search, letting users supply a newer DLL pre-build instead of copying it by hand after.
  - Extracted the DXC-runtime logic into share/cmake/utils/LocateDXCompilerRuntime.cmake so tests/gpu/CMakeLists.txt stays focused on the test target.

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

* Minor comment tweaks in LocateDXCompilerRuntime.cmake.

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

* Use OCIO_DirectX-Headers_RECOMMENDED_VERSION in InstallDirectX-Headers.cmake

  ocio_install_dependency already propagates the RECOMMENDED_VERSION from the
  ocio_handle_dependency call site. Consume it instead of hardcoding the
  version a second time. Matches the pattern in Installyaml-cpp.cmake and
  Installpystring.cmake.

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

* Address local cleanup notes from PR #2271 Claude review.

* Name CbvSrvHeapSize and throw in setShader if a shader needs more SRV slots than the heap holds.
* Guard ~DxApp() so the GPU wait/CloseHandle are skipped when sync objects were never created (constructor partial-init).
* Comment the 16-byte float4 stride used when packing UNIFORM_VECTOR_FLOAT/INT arrays into the HLSL constant buffer.
* Only record m_windowClassName when RegisterClassExA actually succeeds, so cleanup won't unregister a class owned by another DxApp.
* Drop the redundant trailing else in GPUUnitTest.cpp's shadingLanguage selector (initializer already covers it).

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>
2026-05-22 19:48:31 -04:00
Doug Walker 907a643afe Adsk Contrib - Fix 2023.3 Linux container break (#2315)
* Fix 2023.3 Linux container break

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

* Adjust to keep the name constant to use the existing GitHub branch rules

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

---------

Signed-off-by: Doug Walker <doug.walker@autodesk.com>
2026-05-22 19:16:59 -04:00
Doug Walker f705d2e6f0 Add CVE to security (#2311)
Signed-off-by: Doug Walker <doug.walker@autodesk.com>
2026-05-13 17:48:51 -04:00
Doug Walker c173846ced Adsk Contrib - Miscellaneous improvements suggested by Claude (#2308)
* Various fixes suggested by Claude

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

* Address review comments

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

* Update security guidelines

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

* Address review comments

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

* Further max Lut3D size cleanup

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

* Improve cast to avoid possible warning

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

---------

Signed-off-by: Doug Walker <doug.walker@autodesk.com>
2026-05-06 17:59:46 -04:00
Doug Walker 222ca509c9 Fix observed behavior (#2307)
Signed-off-by: Doug Walker <doug.walker@autodesk.com>
2026-05-06 17:23:36 -04:00
Rémi AchardandDoug Walker 4a119df181 Fix OpenGL ES type issues in ACES2 FixedFunction Ops (#2281)
* Fix OpenGL ES type issues in ACES2 FixedFunction Ops

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

* Update src/OpenColorIO/ops/fixedfunction/FixedFunctionOpGPU.cpp

Co-authored-by: Doug Walker <doug.walker@autodesk.com>
Signed-off-by: Rémi Achard <remiachard@gmail.com>

* Add 2D texture path tests for ACES2 cusp and reach table sampling

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>
2026-05-06 15:22:05 -04:00
Rémi Achard 9abd326bde Add /bigobj for pybind11 target on Windows (#2304)
Signed-off-by: Rémi Achard <remiachard@gmail.com>
2026-05-06 14:57:12 -04:00
Doug Walker 39e775bd84 Improve CMake and Actions settings (#2302)
* Improve cmake and actions settings

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

* Bump sonarqube action

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

* Fix Windows documentation fail

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

* Fix Windows documentation fail, take 2

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

---------

Signed-off-by: Doug Walker <doug.walker@autodesk.com>
2026-05-05 15:16:53 -04:00
Cuneyt OzdasandDoug Walker e24ce5c05d Adsk Contrib - Setup Debugger Env Paths (#2262)
* - Adding a CMake utility function to setup debugger environments so that the debugger can locate the run-time dependencies. This makes it possible to compile and launch the projects directly within visual studio for example.
- Calling the above function in projects that need it.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* - white space fix

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* - group the source files in IDE to replicate the source tree structure

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* - Grouping the cpu test project sources to replicate the source tree structure. OCIO library files and the test files are separately grouped for better clarity.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* - Make the gpu test CTest paths modification more robust

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

---------

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2026-04-24 00:22:44 -04:00
Doug Walker 45ff624270 Adsk Contrib - Update Python documentation requirements (#2285)
* Implement dependabot requests

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

* Revert Sphinx

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

* Update latest dependabot

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

* Add sphinx-press install

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

* Remove outdated comment

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

---------

Signed-off-by: Doug Walker <doug.walker@autodesk.com>
2026-04-22 23:34:20 -04:00
Doug Walker 812f3a462b Adsk Contrib - Update CI to VFX 2026 (#2282)
* Update Linux CI to VFX 2026

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

* Implement TSC requests

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

* Add pypa action and improve Sonar stuff

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

* Update deploy site actions

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

* Remove more python 3.9

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

* Update latest dependabot

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

---------

Signed-off-by: Doug Walker <doug.walker@autodesk.com>
2026-04-22 19:21:40 -04:00
Doug Walker 044f66bac1 Adsk Contrib - Hue curve python binding was not copying all parameters (#2276)
* Fix bug in hue curve python binding

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

* Pointer check improvement

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

* Dangling reference fix

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

---------

Signed-off-by: Doug Walker <doug.walker@autodesk.com>
2026-04-03 15:49:29 -04:00
Dmitry Kazakov 75bb9d0a04 Fix linking to self-built deps on Windows + Clang (#2273)
1) Expat: 'MD' suffix is added on MSVC only, 'd' suffix is added on WIN32
2) ZLib: 'd' suffix is added only on MSVC

Signed-off-by: Dmitry Kazakov <dimula73@gmail.com>
2026-04-01 19:12:57 -04:00
Pavan MadduriandDoug Walker c7612d102a gpu: Add Vulkan unit test framework (#2243)
* Add release signing workflow using Sigstore (#2229)

This adds a GitHub Actions workflow that signs release artifacts
using Sigstore, following the OpenSSF Best Practices Badge
recommendations. The workflow is triggered on release publication
and:

1. Creates a .tar.gz archive of the source tree
2. Signs the archive using sigstore/gh-action-sigstore-python
3. Uploads both the tarball and .sigstore.json credential bundle

Based on the OpenEXR release-sign.yml workflow template.

Closes #2034

Signed-off-by: pmady <pavan4devops@gmail.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
Signed-off-by: pmady <pavan4devops@gmail.com>

* gpu: Add Vulkan unit test framework

Add initial Vulkan support for GPU unit testing in OpenColorIO.

This commit introduces:
- vulkanapp.h/cpp: Headless Vulkan rendering framework for GPU tests
- CMakeLists.txt updates: Conditional Vulkan build support with OCIO_VULKAN_ENABLED
- GPUUnitTest.cpp: --vulkan flag to run tests with Vulkan renderer

The Vulkan implementation uses compute shaders for color processing,
similar to the existing OpenGL and Metal implementations. It supports
headless rendering suitable for CI environments.

Note: GLSL to SPIR-V compilation requires linking against glslang or
shaderc library (marked as TODO in the implementation).

Issue Number: close #2209

Signed-off-by: pmady <pavan4devops@gmail.com>

* gpu: Implement GLSL to SPIR-V compilation using glslang

Add glslang library dependency for runtime GLSL to SPIR-V compilation
in the Vulkan unit test framework. This enables the Vulkan GPU tests
to actually run by compiling OCIO-generated GLSL shaders to SPIR-V.

Changes:
- CMakeLists.txt: Add find_package(glslang) and link glslang libraries
- vulkanapp.cpp: Implement compileGLSLToSPIRV() using glslang API

The implementation:
- Initializes glslang process (thread-safe, one-time init)
- Configures Vulkan 1.2 / SPIR-V 1.5 target environment
- Parses GLSL compute shader source
- Links shader program
- Generates optimized SPIR-V bytecode

Signed-off-by: pmady <pavan4devops@gmail.com>

* docs: Add comprehensive Vulkan testing guides for PR #2243

Add detailed testing documentation to help reviewers and contributors
test the Vulkan unit test framework locally.

Files added:
- VULKAN_TESTING_GUIDE.md: Comprehensive guide with installation
  instructions for macOS, Linux, and Windows, build configuration,
  troubleshooting, and platform-specific notes
- QUICK_TEST_STEPS.md: Quick reference guide with fast-track
  installation and testing steps for each platform

These guides address the request from @doug-walker to provide
instructions for installing Vulkan SDK and glslang dependencies
needed to test the Vulkan branch locally.

Signed-off-by: pmady <pavan4devops@gmail.com>

* Remove testing guide files - will provide as PR comment instead

Signed-off-by: pmady <pavan4devops@gmail.com>

* fix: Change Vulkan CMake definitions from PRIVATE to PUBLIC

Address feedback from @doug-walker regarding build issues:
- Change target_include_directories from PRIVATE to PUBLIC
- Change target_link_libraries from PRIVATE to PUBLIC
- Change target_compile_definitions from PRIVATE to PUBLIC

This allows dependent targets (like test_gpu_exec) to properly
access the OCIO_VULKAN_ENABLED definition and Vulkan libraries.

Signed-off-by: pmady <pavan4devops@gmail.com>

* fix: Add MoltenVK portability extension for macOS

Add VK_KHR_PORTABILITY_ENUMERATION extension and flag for macOS
to enable Vulkan instance creation with MoltenVK.

Signed-off-by: pmady <pavan4devops@gmail.com>

* feat: Integrate Vulkan test framework into GPU unit tests

Complete Vulkan test integration for OpenColorIO GPU unit tests:

- Add Vulkan-specific helper functions in GPUUnitTest.cpp:
  - AllocateImageTexture for VulkanApp
  - UpdateImageTexture for VulkanApp
  - UpdateOCIOVulkanState for VulkanApp
  - ValidateImageTexture for VulkanApp

- Wire VulkanApp into test execution loop with proper branching

- Fix VulkanApp initialization:
  - Add MoltenVK portability extension for macOS
  - Add bounds checking in compute shader
  - Fix cleanup order to destroy VulkanBuilder before device

- Fix CMake: Change PRIVATE to PUBLIC for Vulkan definitions

Test Results (macOS with MoltenVK):
- 155 tests PASSED (all non-LUT operations)
- 108 tests FAILED (LUT1D/LUT3D - require texture sampler support)

The LUT tests fail because 3D texture sampler support is not yet
implemented in VulkanBuilder. This is a known limitation that
requires additional work to implement texture allocation and
descriptor set updates for LUT textures.

Signed-off-by: pmady <pavan4devops@gmail.com>

* Add Vulkan uniform buffer and LUT texture support

- Implement VulkanBuilder uniform buffer creation and update for dynamic parameters
- Add 3D LUT texture allocation with RGBA format (RGB32F not supported on MoltenVK)
- Add 1D/2D LUT texture allocation with proper format handling
- Fix shader generation to use correct descriptor bindings for textures and uniforms
- Add std140 layout qualifier to OCIO uniform blocks
- Update descriptor set layout and pool sizes to include uniforms and textures
- Call updateUniforms() before each dispatch for dynamic parameter updates

Test results: 216/263 tests pass (82%)
Remaining failures are complex uniform blocks with vec3 types that need
additional std140 alignment handling.

Signed-off-by: pmady <pavan4devops@gmail.com>

* Fix Vulkan uniform buffer layout and 1D texture handling

- Use OCIO's getUniformBufferSize() and m_bufferOffset for correct std140 layout
- Write array data with 16-byte stride per element (std140 requirement)
- Add std140 layout qualifier to uniform blocks in shader generation
- Disable 1D textures for Vulkan (use 2D instead) for MoltenVK compatibility
- Add better exception handling in GPU unit tests for debugging

This fixes 108 additional Vulkan GPU tests, bringing the pass rate from
155/263 (59%) to 260/263 (98.9%). The 3 remaining failures are ACES2
precision-sensitive edge cases that may need Vulkan-specific tolerance
adjustments.

Signed-off-by: pmady <pavan4devops@gmail.com>

* Use OCIO's getTextureShaderBindingIndex API for Vulkan texture bindings

- Remove manual sampler declarations in buildShader(), use OCIO-generated ones
- Configure shader descriptor with setDescriptorSetIndex(0, 2) for Vulkan
  to start texture bindings at 2 (after input/output storage buffers)
- Use get3DTextureShaderBindingIndex() and getTextureShaderBindingIndex()
  for correct texture binding indices
- Add GPU diagnostic output to verify MoltenVK uses actual GPU hardware

This addresses review feedback from PR #2243 to use the new texture binding
API added in OCIO 2.5.1 (PR #2226) instead of manually declaring samplers.

Test results: 260/263 tests pass (98.9%)
Remaining 3 failures are ACES2 precision-sensitive edge cases.
GPU confirmed: Apple M2 Pro (Integrated GPU), not CPU emulation.

Signed-off-by: pmady <pavan4devops@gmail.com>

* Address PR review comments for Vulkan unit test framework

- Fix switch warning by explicitly handling VK_PHYSICAL_DEVICE_TYPE_OTHER
  and VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM cases
- Fix unused format parameter warning in transitionImageLayout
- Move input/output buffers to high bindings (100, 101) to avoid conflicts
  with OCIO's uniform binding at 0, eliminating need to edit shader text
- Refactor GPUUnitTest.cpp to share code between GL and Vulkan:
  - Extract PrepareInputValues helper for UpdateImageTexture
  - Extract ValidateResults and ValidateImageTextureImpl template for
    ValidateImageTexture
- Preserve Mac ARM ifdef for NaN/Infinity test disabling in Vulkan path
- Update texture binding start to 1 (was 2) since binding 0 is now used
  for OCIO uniforms

Signed-off-by: pmady <pavan4devops@gmail.com>

* Address PR review: use consecutive bindings and increase tolerances

- Change input/output buffer bindings from 100/101 to 1/2
- Update setDescriptorSetIndex(0, 3) so textures start at binding 3
- Increase test tolerances as requested:
  - Test 39 (line 306): 3e-6f -> 3e-5f
  - Test 49 (line 659): 0.018f -> 0.019f
  - Test 51 (line 696): 0.03f -> 0.032f
- Update comments to reflect the new binding strategy

Signed-off-by: pmady <pavan4devops@gmail.com>

---------

Signed-off-by: pmady <pavan4devops@gmail.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2026-03-25 20:04:35 -04:00
d9eb50cca5 Alpha channel should be 1 by default, rather than 0 (#2197)
* For CPU processor, when source has no alpha make it default to 1.

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

* Fix alpha channel for integer types.

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

* Fix max alpha value to be from input bitdepth not output.

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

* Forgot to update ImagePacking.h

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

* Remove the unused inputBitDepth name causing compiler error.

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

* Update src/OpenColorIO/ImagePacking.cpp

Co-authored-by: Cuneyt Ozdas <github@cuneytozdas.com>
Signed-off-by: PenneLee <pennelee@gmail.com>

---------

Signed-off-by: pylee <penne.y.lee@intel.com>
Signed-off-by: PenneLee <pennelee@gmail.com>
Co-authored-by: Cuneyt Ozdas <github@cuneytozdas.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2026-03-04 22:27:17 -05:00
Doug Walker 0773c267f1 Increment lib version to 2.6.0 dev (#2266)
Signed-off-by: Doug Walker <doug.walker@autodesk.com>
2026-03-04 21:46:47 -05:00
Éric Renaud-Houde e9c48718e8 Fix vector comparison expression for HLSL. (#2270)
Signed-off-by: Eric Renaud-Houde <eric.renaud.houde@gmail.com>
2026-03-04 20:27:24 -05:00
Cuneyt OzdasandDoug Walker eaa028171a Adsk Contrib - Add Support for SMPTE ST 2036-1 compliant CLF files (#2265)
* Adding reading and writing support for SMPTE ST 2036-1 compliant CLF files.

- Added "Id" element support per the spec.

- Extended the CTFVersion class to handle non-numeric formats per the spec (which uses xmlns as the version)

- CLF xml parser now strips the namespaces from the elements by default. This makes it possible to parse files with simple name spaces but complex name-spaced clf files may still fail. There is an internal switch to turn on/off the name space stripping. This way elements which need to retain the name spaces (such as the Info element) can still get the un-stripped names.

- Extended the Input and Output Descriptor collection to hold multiple entries (similar to Description field)

- CLF writer now writes the SMPTE xmlns version as well as the CompCLFVersion attribute. The resulting files can be read both by the Academy CLF parsers and SMPTE CLF parsers.

- Generated cache hash IDs are now in the 8-4-4-4-12 UUID format to help complying with SMPTE id requirements

- ociomakeclf tool now takes "--generateid" switch to for inserting newly added "Id element" into the target clf file.

TODO:

- Description and Descriptor elements need to collect the language attribute.

- non-default namespace attributes (e.g. xmlns:foo) needs to be collected as root level attributes.

- Those two TODO items need some re-factoring in the data collection code.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* - Per the code review, exposing the newly added constant METADATA_ID_ELEMENT in python too.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* - re-worked some part of the CLF parser and the CTFReaderTransform class to be able to collect richer metadata.
- Now collecting the language attribute of the Description, input and output descriptor elements.
- Also collecting the non-default xmlns attributes at the root level.
- Updated the tests accordingly.
- Replaced clf/pre-smpte_only/matrix_example.clf with clf/matrix_example_utf8.clf in some for some Reference tests.
- Added format information to the ociomakeclf tool's help text.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* - nmake the compilers happy.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* - make the compilers happy pt2

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* - make the compilers happy pt3
(we need to make Windows compiler settings as picky as other platforms)

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

---------

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2026-02-18 03:31:03 -05:00
Kevin WheatleyandDoug Walker a1ab61ec63 Remove redundant unit_test_failures declaration (#2261)
Removed the declaration of 'unit_test_failures' from UnitTest.h.

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2026-02-12 00:02:36 -05:00
Doug Walker f390b9d204 Add more info to the documentation overview page (#2264)
Signed-off-by: Doug Walker <doug.walker@autodesk.com>
2026-02-11 00:05:48 -05:00
Thomas Mansencal 9bb14559e7 Implement support for Astral's uv. (#2097)
Signed-off-by: Thomas Mansencal <thomas.mansencal@gmail.com>
2026-02-03 09:44:48 +13:00
KATO ELVIS 205d53b6c3 add LF trademark disclaimer to site footer (#2253)
Signed-off-by: ELVIS-KATO <katoelvis23@gmail.com>
2026-02-02 14:57:59 -05:00
Doug Walker 2a8b59e8a5 Update 2.5 documentation (#2252)
Signed-off-by: Doug Walker <doug.walker@autodesk.com>
2026-01-23 16:51:12 -05:00
Pavan MadduriandDoug Walker 181303ef32 Add release signing workflow using Sigstore (#2229)
This adds a GitHub Actions workflow that signs release artifacts
using Sigstore, following the OpenSSF Best Practices Badge
recommendations. The workflow is triggered on release publication
and:

1. Creates a .tar.gz archive of the source tree
2. Signs the archive using sigstore/gh-action-sigstore-python
3. Uploads both the tarball and .sigstore.json credential bundle

Based on the OpenEXR release-sign.yml workflow template.

Closes #2034

Signed-off-by: pmady <pavan4devops@gmail.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2026-01-12 20:26:55 -05:00
Pavan MadduriandDoug Walker 61c4e08c9a Add Dependabot configuration for automated dependency updates (#2230)
Add dependabot.yml to enable automated dependency updates for:
- GitHub Actions workflows (weekly)
- Python pip packages (weekly)

This follows OpenSSF Best Practices Badge recommendations and
is part of the Step Security hardening measures.

Part of #2035

Signed-off-by: pmady <pavan4devops@gmail.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2026-01-11 23:22:22 -05:00
Doug Walker 6a1dff6ee2 Adsk Contrib - Fix interop ID issue in ociocheck (#2204)
* Fix ociocheck

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

* Minor improvements

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

---------

Signed-off-by: Doug Walker <doug.walker@autodesk.com>
2026-01-11 19:46:07 -05:00
Kevin WheatleyandDoug Walker 449d1f2bee Bug/2220 array subscript out of range exception can be thrown under a floating point rounding edge case (#2227)
* Add test to reproduce bug 2220

Code incorrectly deals with edge cases where atan2() returns end of range [-pi, pi]

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Extend tables to have an additonal entry to allow for boundary condition to not over flow table bounds during lookup

All tables are now 1 entry larger and should have valid data wrapped into the extra entries

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Clarify ACES OT 2.0 edge-case test comments around hue-angle table access bug

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

---------

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2026-01-11 19:02:10 -05:00
Doug Walker 9fea546de9 Fix Vulkan texture binding index issue (#2226)
* Fix texture binding index issue

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

* Add texture binding index getters

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

* Adjust addTexture return and fix Python binding

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

* Fix unit tests

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

---------

Signed-off-by: Doug Walker <doug.walker@autodesk.com>
2026-01-11 18:26:02 -05:00
Cuneyt OzdasandDoug Walker d7917d4398 Addressing Issue #2228 - Heap-use-after-free in OpenColorIO::ThrowInvalidRegex (#2231)
This turned out to be not a UAF issue but an out-of-bounds-access issue where the throw was accessing the incorrect (and potentially shorter) string with an index derived from another (and potentially longer) string.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2026-01-11 17:05:25 -05:00
Cuneyt OzdasandDoug Walker 5d2409bbdb Remove [0,1] clamping from ICC transforms (#2224)
* Addressing issue #1915, remove [0, 1] clamping from ICC profiles.

Currently the clamping is removed ONLY when the the type 0 (simple gamma) TRC is used. In this case the the mirroring around origin is used for the negative values.

Other parametric curves are currently implemented as 1DLuts thus will not handle out of bound values properly. In a later wave we can either convert LUTs to half-domain ones or try to implement them with more complex ops (such as exponent with linear).

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* - Fixing the op tests in the inverse direction
- More detailed explanation for the clamp removal in pure-gamma TRC cases.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

---------

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2026-01-11 16:24:26 -05:00
Cuneyt Ozdas 2bc8759dc2 Fix Windows Doxygen install script (#2234)
* - Fix Windows Doxygen install script as Doxygen v1.16.0 changed the released zip name.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* double escape maybe?

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

---------

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>
2026-01-11 15:06:13 -05:00
Carol PayneandDoug Walker 1d77ecda70 Updating news for OCIO 2.5 and Slack link (#2217)
Signed-off-by: Carol Payne <carol.alynn.payne@gmail.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2025-12-10 23:06:22 -05:00
Rémi Achard b59cd64368 Add Python 3.14 wheels and minor fixes (#2218)
* Enable Python 3.14 wheels

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

* Replace macos-13 by macos-15-intel

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

* Allow find_package CONFIG mode with Package_ROOT

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

---------

Signed-off-by: Rémi Achard <remiachard@gmail.com>
2025-11-24 18:23:10 -05:00
AsheikhmandDoug Walker 125af7d2d3 Issue 2075 : Apply RGB on transpose matrices. (#2206)
* adding unit test for applyRGB buffer, check in the applyRGB if the buffer is C order or not, for now throw error

Signed-off-by: Afsaneh Sheikhmiri <afsaneh.sheikhmiri@autodesk.com>

* Adsk Contrib - Detect C/F order, if not C order : RuntimeError shown, test is still not passing

Signed-off-by: Afsaneh Sheikhmiri <afsaneh.sheikhmiri@autodesk.com>

* remove 1d arrays from the test, since even after Transpose, 1d arrays are still contiguous

Signed-off-by: Afsaneh Sheikhmiri <afsaneh.sheikhmiri@autodesk.com>

---------

Signed-off-by: Afsaneh Sheikhmiri <afsaneh.sheikhmiri@autodesk.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2025-10-28 17:24:48 -04:00
Doug Walker a9ca7e583f Update documentation for 2.5 release (#2202)
* Update documentation for 2.5 release

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

* Fix typos

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

* Address review comments

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

* Fix markdown

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

* Minor updates

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

---------

Signed-off-by: Doug Walker <doug.walker@autodesk.com>
2025-10-01 01:47:34 -04:00
Cuneyt OzdasandDoug Walker f5ca104001 Adsk Contrib - Adding built-in ACES 2.0 configs (#2193)
* - Adding the latest WIP built-in configs (https://github.com/AcademySoftwareFoundation/OpenColorIO-Config-ACES/actions/runs/17850187967)

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* - Removing the getDefaultBuiltinConfigName() function which was marked as deprecated in v2.3. Similar functionality is now offered by ResolveConfigPath("ocio://default").
- Updated the python binding and the tests accordingly.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* - New configs fresh from the oven.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* - Updating the built-in configs from the PR's latest CI run, #420 ( https://github.com/AcademySoftwareFoundation/OpenColorIO-Config-ACES/actions/runs/18078552508 )

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* - Fix a copy-paste typo in the comments

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

---------

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2025-10-01 01:07:44 -04:00
Doug Walker 23d0179a7a Adsk Contrib - Merge configs feature (#2179)
* Config merge rewrite, part 1

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

* Add API for config and colorspace merge

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

* Prototype of merge avoid duplicates feature

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

* Unit test fix

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

* Improve duplicates detection

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

* Fix unit test

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

* Various merge fixes

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

* Add more tests and clean-up

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

* Improve comments

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

* Remove CreateFromFile support

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

* Add Python binding

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

* Improve view transform comparison

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

* Address Remi's comments

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

* Fix build breaks

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

---------

Signed-off-by: Doug Walker <doug.walker@autodesk.com>
2025-09-30 23:54:08 -04:00
9ebb7706c9 Adsk Contrib - Add hue curve transform (#2177)
* Hue Curve Transform GPU

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

* Review Fixes P1

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

* Review Fixes P2

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

* Review Fixes P3

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

* Review Fixes P4

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

* GradingHueCurveOpData_tests

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

* Review Fix, ChannelCrosstalk

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

* Review Fix, missing fixed function enums in switch cases

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

* Review Fix, Missing comment on unused test parameters

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

* CI Fix, removing multi-line comment

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

* Fixes for Test 2: test_cpu

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

* Fix Windows CI

Towards clean

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

* Fix for missing slopes on periodic curves

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

* Remove leftover #include from debuging

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

* Enable to draw the curve eval only for a specific hue curve. (#11)

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

* RGB to HSY fixed functions using CPU (#17)

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

* Fix identity hue curve draw only (#20)

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

* <<Operator upgrade for list of floats (#23)

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

* Fix unit tests

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

* Fix hue curve unit tests

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

* Comment out OSL tests

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

* Finish the implementation

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

* Improve interface, add tests

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

* Minor clean-up

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

* Op<< should contain slopes

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

* Fix python doc line

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

* Improve validation of control points

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

* Update API calls based on Vulkan PR

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

* Saturation robustness

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

* HSY transform setter adjustment

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

---------

Signed-off-by: Doug Walker <doug.walker@autodesk.com>
Co-authored-by: Jonathan Laroche <jonathan.laroche@autodesk.com>
Co-authored-by: larochj <143038478+larochj@users.noreply.github.com>
2025-09-30 23:12:06 -04:00
Doug Walker f30f2c85df Adsk Contrib - Include color spaces with no categories in menuHelper results by default (#2189)
* Jasmin - Treat No Category As Any

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

* Fix python tests

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

* Add treat no category as any

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

* Add ability to run a single Python test suite

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

* Clean up minor issues

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

* Respond to review

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

* Fix GPU Action

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

---------

Signed-off-by: Doug Walker <doug.walker@autodesk.com>
2025-09-30 18:57:02 -04:00
97c37385e1 Bump C++, dependencies and update CI workflows (#2192)
* Bump dependencies and update CI workflows

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

* - converting [==] operator to [=] to make them POSIX complaint.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* Code cleanup (PR feedback)

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

* Remove ASWF container minor tag

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

* Debug dependencies latest Linux

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

* Attempt fixing dependencies latest

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

* Try OpenEXR 3.4.0

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

* Adjust CMake imported target for OpenEXR 3.4

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

* Force internal OpenJPH when building OpenEXR

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

* Attempt to fix OpenJPH library name

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

* Adjust comment on OpenJPH version

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

* Disable Python 3.14 wheels until the official release

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

* Cleanup obsolete workarounds for OCIO_PYTHON_LOAD_DLLS_FROM_PATH

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

---------

Signed-off-by: Rémi Achard <remiachard@gmail.com>
Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>
Co-authored-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2025-09-29 20:03:23 -04:00
Michael De CariaandDoug Walker 1da6645efa Add setStringVar to Context Object Python Bindings (#2198)
* Expose setStringVar to Python Bindings Context Object

Signed-off-by: Michael De Caria <decariamichael@gmail.com>

* Add setStringVar to Python Context Test

Signed-off-by: Michael De Caria <decariamichael@gmail.com>

---------

Signed-off-by: Michael De Caria <decariamichael@gmail.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2025-09-29 00:03:13 -04:00
337f7c761c Adsk Contrib - Vulkan support (#2176)
* Support for Vulkan GLSL (not yet active).

Signed-off-by: Michael Horsch <michael.horsch@autodesk.com>

* Activated Vulkan shader generation, fixed bool handling.

Signed-off-by: Michael Horsch <michael.horsch@autodesk.com>

* Replaced tabs with spaces.

Signed-off-by: Michael Horsch <michael.horsch@autodesk.com>

* Documentation added for new methods, return values and member variables.

Signed-off-by: Michael Horsch <michael.horsch@autodesk.com>

* Padding and alignment for uniform buffers optimized, smaller fixes.

Signed-off-by: Michael Horsch <michael.horsch@autodesk.com>

* Restored ociodisplay and removed code for testing.

Signed-off-by: Michael Horsch <michael.horsch@autodesk.com>

* Added functions to set/get descriptor set index and texture binding start index.

Signed-off-by: Michael Horsch <michael.horsch@autodesk.com>

* Added exception for invalid texture binding index, smaller fixes.

Signed-off-by: Michael Horsch <michael.horsch@autodesk.com>

* Suggested documentation update

Co-authored-by: Aleksi Sapon <aleksi.sapon@autodesk.com>
Signed-off-by: Michael Horsch <michael.horsch@autodesk.com>

* Merge conflicts fixed.

Signed-off-by: Michael Horsch <michael.horsch@autodesk.com>

* Fixed missing space for non-Vulkan GLSL uniforms.

Signed-off-by: Michael Horsch <michael.horsch@autodesk.com>

* Fixed descriptorSetIndex for textures.

Signed-off-by: Michael Horsch <michael.horsch@autodesk.com>

* Fixed uniform buffer array stride and size.

Signed-off-by: Michael Horsch <michael.horsch@autodesk.com>

* Fixes documentation, formatting. Adds test and py functions.

Signed-off-by: Michael Horsch <michael.horsch@autodesk.com>

* Added missing python bindings.

Signed-off-by: Michael Horsch <michael.horsch@autodesk.com>

* Fixed Metal unit tests.

Signed-off-by: Michael Horsch <michael.horsch@autodesk.com>

* Fixes for MyOSLShaderCreator.

Signed-off-by: Michael Horsch <michael.horsch@autodesk.com>

* Fixed spaces at beginning of uniform declarations.

Signed-off-by: Michael Horsch <michael.horsch@autodesk.com>

* Fixed Vulkan unit test.

Signed-off-by: Michael Horsch <michael.horsch@autodesk.com>

---------

Signed-off-by: Michael Horsch <michael.horsch@autodesk.com>
Co-authored-by: Aleksi Sapon <aleksi.sapon@autodesk.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2025-09-26 14:16:59 -04:00
Cuneyt Ozdas 7e7f2de28c Adsk Contrib - Adding interchange attributes to ViewTransforms and Looks (#2194)
* Adding interchange attributes to ViewTransforms and Looks
- Currently only the amf_transform_ids key is supported. That key is needed for ACES 2 built-in configs.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* Fixing the build by propagating the last minute wording change.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* - Fixing a bug in ViewTransform python tests
- Removing the ColorSpace amf_transform_ids_serialization test as almost all of the cases are now exercised in the Config interchange_attributes test.
- minor cleanup

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

---------

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>
2025-09-22 17:58:46 -04:00
Doug Walker 92ab718b83 Adsk Contrib - Enhance active display/view list API (#2186)
* Enhance active display/view list API

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

* Update ocioview to use new API

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

* Fix python arg name

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

---------

Signed-off-by: Doug Walker <doug.walker@autodesk.com>
2025-09-18 20:46:02 -04:00
Cuneyt OzdasandDoug Walker 1cec2abed4 Adsk Contrib - Adding color space attribs: interop_id, amf_transform & icc_profile_name (#2165)
* Adding 3 new attributes to the color space: interop_id, amf_transform_ids and icc_profile_name

- Addressing the issues #1975, #2152 and #2153
- Bumped the config version to 2.5
- newly added attributes require v2.5 config both for serialization and de-serialization and will throw if they appear in older configs.
- Hardened multiple existing functions against null parameters. Previously those functions were crashing if null is passed, as assigning null to std::string is undefined behavior.
- Expanded tests to some affected functions' unit tests to include null passing. Setters will take null as empty string. compare functions will throw.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* As discussed in the TSC meeting, adding a namespace field separator logic to the interop_id field.
- only zero or one ":" is allowed in the interop_id name
- ":" can not be the last character
- added cpp and python unit tests.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* Adding interop_id verification in ociocheck.

Non-namespaced IDs are checked against the known CIF values and warning is issued if not found.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* minor touches.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* fix the failing test.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* Disallow non-ASCII characters (outside of [0..127] range) in the interopID field.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* Fixing the tests which were failing due to exception wording change.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* - replacing getAMFTransformIDs and getICCProfileName with more generic getInterchangeAttribute function. Same with the setters
- getInterchangeAttribute() and setInterchangeAttribute() functions currently knows and accepts "amf_transform_ids" and "icc_profile_name" keys. other keys will throw.
- ColorSpace serializer will list all of the key/value pairs.
- InteropID and interchangeAttributes are now allowed in earlier config versions down to 2.0 too. Config::checkVersionConsistency() will throw only for version smaller than 2.0.
- YAML loader and saver now supports the "interchange" section. Any unknown keys under that section will be ignored upon load and will generate a warning but won't throw.
- Generic str key/value loader/saver is extended for re usability (and fixed incorrect throw message).
- since the amf keywords are separated by newline characters, the newline sanitizer that was used for the description is also generalized and applied to all of the current and possible future interchange fields.
- ColorSpace_test.cpp file updated to test the current state and behavior of the API.
- ComputeValues function in the CPUProcessor_tests.cpp was taking the linenumber as as template parameter. This was a very bad idea as that means each invocation of the function would create a separate copy of the function which was causing all sorts of issues in the debugger and failing to compile when the line numbers are not constants (happens in JIT debug sessions). Fixed by making the line number a normal parameter.
- Python ColorSpace object no longer takes the amf of icc parameters in the constructor. User needs to set them explicitely later on.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* - ocioconvert now writes the ColorIntropID attribute of of the output color space.
- ociocheck now does extended validity check on the interopID string.
- preliminary implementation of getColorSpaceFromInteropID().

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* - Another cleanup pass. After some deliberation, we decided to remove getColorSpaceFromInteropID() which will be done in a later pass.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* - Config::getColorSpaceFromInteropID() function is removed.
- another round of cleanup.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* minor comment fix

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* minor fixes to unknown interchange key warning and its unit test.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* - Adding the missing interop_id validation check along with couple of unit-tests.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* - typo fix and minor cleanup

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* - Looks like Doxygen doesn't like URLs in the doxygen comment section. Removing the url to see if this fixes the CI issue.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* - minor typo fix

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* - deduplicating the newline sanitize code in OCIOYaml.cpp
- exposing the interchange attributes as a standard python dictionary through the "interchangeAttributes" read-only property.
- adding python tests on the new interchangeAttributes property.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* - per code-review, converting the interchangeAttributes propery on python colorspace object to getInterchangeAttributes() function to stick with the existing conventions.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

---------

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2025-09-17 19:10:19 -04:00
Doug Walker 764f14a9e3 Fixes for the Wheel workflow (#2190)
* Turn off failing stuff

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

* Turn off ociolutimage

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

* Uninstall the runner EXR

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

* Bump EXR min version to 3.1.6

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

* Bump EXR recommended version to 3.1.6

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

* Minor clean up

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

---------

Signed-off-by: Doug Walker <doug.walker@autodesk.com>
2025-09-16 19:56:12 -04:00
Doug Walker 1dfa6aa746 Add setDisplayTemporary method (#2181)
(cherry picked from commit f25cb6af18c5c1966316ff0aa221de32b160f00b)

Signed-off-by: Doug Walker <doug.walker@autodesk.com>
2025-09-12 23:03:43 -04:00
Doug Walker b3252c7cd1 Add mirrored displays (#2183)
Signed-off-by: Doug Walker <doug.walker@autodesk.com>
2025-09-12 14:16:45 -04:00
Doug Walker e151865471 Attempt to fix CI fail involving halfs (#2188)
Signed-off-by: Doug Walker <doug.walker@autodesk.com>
2025-09-12 13:46:06 -04:00
Beat ReichenbachandDoug Walker 273cdfa4c2 Add Python GPUProcessor example (#2166)
Signed-off-by: Beat Reichenbach <44111292+beatreichenbach@users.noreply.github.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2025-09-03 20:52:03 -04:00
Doug Walker cc9dcffda2 CI fixes (#2184)
* Try to roll back to earlier docker image

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

* Use pip3 rather than pip

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

* Roll back container version again

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

---------

Signed-off-by: Doug Walker <doug.walker@autodesk.com>
2025-09-03 20:19:01 -04:00
Michael Dolan fcdbf56c04 Refactor RTD Python API doc generation (#2171)
* Remove frozen docs

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

* Make opencolorio RTD requirement

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

* Only install from PyPi on RTD_BUILD

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

* Trigger PR RTD build

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

* Restructure pip command

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

* Fallback to latest PyPi version

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

* Increase sphinx verbosity for debugging

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

* Update sphinx verbosity

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

* Try another verbosity adjustment

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

* Fix sphinx build command

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

* Adjusting relative path

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

* Trying alt build structure

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

* Another alt build structure

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

* Try pre-install of OCIO

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

* Testing platform build

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

* Revert conf.py __doc__ test

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

* Update CI to use windows-2022, and linux builds to use apt

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

* Handle dnf/yum/apt for different workflows

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

* Fix wheel builds on Linux

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

* Skip epel install

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

* Add manual doxygen install option

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

* Make dnf scripts executable

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

* special doxygen case for centos

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

* Trying doxygen 1.9.0 on centos-7

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

* Try latest yum install of doxygen

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

* Turn off docs on CentOS-7 builds

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

* Add Windows CI with docs

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

* Use apt for linux wheel builds

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

* Testing linux distro on wheel builds

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

* Update yum repos on CentOS-7

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

* remove sudo

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

* Adjust CentOS-7 vault repo URLs

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

* Add altarch doxygen handling

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

* Inspect Windows docs env

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

* Remove status checks

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

* Re-enable linux-old docs builds

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

---------

Signed-off-by: Michael Dolan <michdolan@gmail.com>
2025-09-02 18:14:38 -04:00
Cuneyt OzdasandDoug Walker c5d6c1a6d3 Adsk Contrib - Renaming the view helper functions to follow the OCIO conventions. (#2167)
* Renaming the newly added view helper functions to follow the OCIO conventions.

- The wording order {object(s)}{Is|Are|Has|Have}{State} for the newly added function names are different than the more typical convention of {is|are|have|has}{Object(s)}{State}.

- Config class already has functions in the second form, such as Config::isColorSpaceUsed() or Config::isColorSpaceLinear(). We also have functions named in yet another form like Config::isInactiveColorSpace(). So not to introduce a 3rd variant, I'm renaming these newly added ones.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* capitalizing two function names per request.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

---------

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2025-06-20 00:32:32 -04:00
Anthony RobertsandDoug Walker db68839483 Fix build issue when using clang (#2137) (#2140)
* Fix build issue when using clang (#2137)

Signed-off-by: Anthony Roberts <anthony.roberts@linaro.org>

* Change define check, and update comment

Signed-off-by: Anthony Roberts <anthony.roberts@linaro.org>

---------

Signed-off-by: Anthony Roberts <anthony.roberts@linaro.org>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2025-06-19 22:37:54 -04:00
Rémi Achard b6d33f7018 Update Python frozen docs (#2168)
* Remove excluded member

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

* Fix import errors

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

* Remove duplicated members

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

* Remove unused file

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

* Avoid package name duplication in Python documentation type hints

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

* Build frozen docs

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

---------

Signed-off-by: Rémi Achard <remiachard@gmail.com>
2025-06-17 18:45:17 -04:00
annieandDoug Walker 6c15d45e38 Add view helper functions to Config class (#2083)
* Add view helper functions to Config class

Signed-off-by: annie <annieyhlin09@gmail.com>

* add view helper functions to Config class and unit tests

Signed-off-by: annie <annieyhlin09@gmail.com>

* add view helper functions as python bindings

Signed-off-by: annie <annieyhlin09@gmail.com>

* add unit tests for view helper py bindings

Signed-off-by: annie <annieyhlin09@gmail.com>

* update with style changes and comments

Signed-off-by: annie <annieyhlin09@gmail.com>

* comprehensive unit tests for ViewsAreEqual and displayHasView

Signed-off-by: annie <annieyhlin09@gmail.com>

* improved in-line comments for unit tests

Signed-off-by: annie <annieyhlin09@gmail.com>

* test suite for comparing virtual displays, fix to getVirtualDisplayViewTransformName when shared

Signed-off-by: annie <annieyhlin09@gmail.com>

* update briefs for ViewsAreEqual + VirtualViewsAreEqual, remove redunant lines in tests, add virtualViewIsShared checks to getVirtualView-related functions

Signed-off-by: annie <annieyhlin09@gmail.com>

* move virtual_display_exceptions test from tests/cpu/Config_tests.cpp to tests/cpu/Display_tests.cpp

Signed-off-by: annie <annieyhlin09@gmail.com>

* move display_view_order test from tests/cpu/Config_tests.cpp to tests/cpu/Display_tests.cpp

Signed-off-by: annie <annieyhlin09@gmail.com>

* add usage of viewIsShared to compare_displays test

Signed-off-by: annie <annieyhlin09@gmail.com>

* add test of clearSharedViews to basic test module in tests/cpu/Display_tests.cpp

Signed-off-by: annie <annieyhlin09@gmail.com>

* change configs for compare_virtual_displays in tests/cpu/Config_tests.cpp to use looks, rules, and description

Signed-off-by: annie <annieyhlin09@gmail.com>

* improve test cases for python config tests

Signed-off-by: annie <annieyhlin09@gmail.com>

* restore old tests to Config_tests.cpp and move new tests compare_displays, compare_virtual_displays to Display_tests.cpp

Signed-off-by: annie <annieyhlin09@gmail.com>

* add null/empty view name handling to viewIsShared and virtualViewIsShared

Signed-off-by: annie <annieyhlin09@gmail.com>

---------

Signed-off-by: annie <annieyhlin09@gmail.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2025-05-26 14:12:05 -04:00
Doug Walker ac94d7b0ba Adsk Contrb - Fix pass-thru exponent composition issue (#2154)
* Fix gamma composition issue

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

* Adjust docs build settings to fix CI

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

* Adjust docs build settings to fix CI

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

* Revert CI change

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

* Minor comment tweak

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

---------

Signed-off-by: Doug Walker <doug.walker@autodesk.com>
2025-05-18 01:36:49 -04:00
Manoj Kumar M 36b7595f14 Feature/update landing feature image (#2161)
* Replace landing page feature image with insideout 2

Signed-off-by: immanu10 <manojmanu8971117@gmail.com>

* update website contribution process

Signed-off-by: immanu10 <manojmanu8971117@gmail.com>

* remove generated public files

Signed-off-by: immanu10 <manojmanu8971117@gmail.com>

* update readme and delete spiderverse jpg

Signed-off-by: immanu10 <manojmanu8971117@gmail.com>

---------

Signed-off-by: immanu10 <manojmanu8971117@gmail.com>
2025-05-17 14:10:03 -04:00
zachlewis fc162a8e40 fix: adjust requirements.txt for documentation-building ci step (#2158)
Make sure we're not getting a version of setuptools that's so new it breaks stuff for us.

Should fix CI failures like this one:
https://github.com/AcademySoftwareFoundation/OpenColorIO/actions/runs/14816012234/job/41596531770#step:4:311

Signed-off-by: Zach Lewis <zachcanbereached@gmail.com>
2025-05-13 14:20:17 -04:00
Sean Long 898345165b Add AJA ColorBox as a supported application (#2138)
Signed-off-by: Sean Long <seanl@aja.com>
2025-04-21 18:21:34 -07:00
Doug Walker e6622965f3 Add apps to website (#2147)
Signed-off-by: Doug Walker <doug.walker@autodesk.com>
2025-04-17 14:32:54 -04:00
zachlewisandDoug Walker ddb9b12062 ci: Use ARM-native runners for linux ARM Python wheels (#2115)
* ci: Use ARM-native runners for linux ARM Python wheels

Signed-off-by: Zach Lewis <zachcanbereached@gmail.com>

* fix: Make build system compatible with CMake-4.0

Set CMAKE_POLICY_VERSION_MINIMUM=3.5 for our ZLIB and pybind11 build scripts and modules.
Update the cmake_minimum_required syntax in the top-level CMakeLists.txt

Signed-off-by: Zach Lewis <zachcanbereached@gmail.com>

---------

Signed-off-by: Zach Lewis <zachcanbereached@gmail.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2025-04-03 21:47:44 -04:00
zachlewisandDoug Walker aaa4a79f22 ci: New deploy_site workflow (#2113)
Signed-off-by: Zach Lewis <zachcanbereached@gmail.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2025-04-03 15:32:51 -04:00
Doug Walker 05466120f3 Propose NaN fix for the ACES2 inverse output transforms (#2132)
* Propose Aab_to_RGB NaN fix

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

* Fix for test on ARM

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

* Fix for tests on Linux/Windows

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

* Fix for GPU test on Linux

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

* NaN fix for gamma and double log fixed functions

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

* Remove commented-out code

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

---------

Signed-off-by: Doug Walker <doug.walker@autodesk.com>
2025-03-18 22:40:27 -04:00
193154244b ACES 2.0 Output Transform performance optimisation (#2127)
* ACES 2.0 Output Transform performance optimisation (#2119)

* Extend ocioperf to take config file parameter on CLI

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Extend ocioconvert to take config on command line

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Extract tonescale_fwd function

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Extract inverse tonescale function

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Combine c and Z variables in J calculation exponent
replace 100.0 entries when referring to the scale of J
Extract calculation of nonlinear compression into functions

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Split RGB<->JMh function into two parts to expose opponent intermediate values

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Use function to compute matrix multiply for LMS calculations

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Remove unused member variable from JMhParams structure

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Combine chromatic adaptation weights into LMS matrix (and inverse) - CHANGES PIXEL OUTPUT

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Use matrix form for transforming cone responses to Aab

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Normalise the F_L parameter

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Remove ra and ba related variables to avoid them being out of sync with opponent calculation

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Make A<->J conversion function generic

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Deduplicate Y<->J conversions

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Factor JMh scaling parameters into Aab matrices

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* factor our references to PI, 360 and 180 constants
Avoid looking up cusp twice during inverse
Whilst searching for the cusp we have already constrained the search so we do not need to clamp

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Add functions to explain some of the calculations

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Further clarify when 100 means reference luminance
Migrate rescaling into tonescale s_2 parameter
Rename model_gamma to reflect it is actually the inverse

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* migrate init steps performed within other init functions to the top level to avoid repeat init of precomputed values.

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* extract some of the fixed values that only depend on the hue to reduce recomputation during inverse gamut mapping

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Avoid double lookup for reachMaxM value by resolving once the hue is known.

also reduces size of object on stack by not passing the whole table.

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Push wrapping of hues to the boundary,
mark up  conversion points from external inputs etc

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Store gamma values as reciprocals
move more magic constants into const variables
factor some of the complex expressions into function (temporarily makes things slower)

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Add some missing includes to headers

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* minor cleanup to use std::array instead of plain array for test samples

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Inline reach boundary finding
restructure find_gamut_boundary_intersection to highlight common patterns.

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Extract gamut mapper compression function
rework get_focus_gain to directly computer the slope_gain
Share calculation of analytical thereshold

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Rework gamut mapper to compress absolute M then only recalculate calculate J

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Precalculate maximum search range for cusp lookup

next steps would be to factor hue into separate table to improve cache hits followed by redistribution to more uniform hues which should narrow search range

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Experiment with reusing slope calculations in gamut mapper
presmooth cusp values

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Add a collection of TODO's

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Restore function mapping table index to hue

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Minor tweaks to tonescale inverse clamp

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Remove duplicate table whilst calculating upper hull gamma

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Add some additional sample points for the upper hull gamma finder

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Slight tidy up of gamma fitting code

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Experiment with alternate smin implementation

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Remove unused function and tidy up comments

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Extract hue search into separate function

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Extract hues into separate table, merge gamma values into their place (gamma values now sampled on cusp hue intervals). Removes extra texture from GPU path.

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Simplify upper hull gamma hue lookup to avoid unneeded lerping as we are sampling the table entries directly

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Split out tonescale function, minor tweaks to Aab->JMh

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Build tables more uniformly, needs some clean up and lots of testing

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Speed up reach corner finding by switching to testing against the Achromatic rather than J limit

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Speed up hull gamma finding by computing values which depend only on the test points and not the gamma values themselves

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Adjust GPU hue lookup to take advantage of more uniform distribution

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Fix GLSL compatibility with hue lookup
Remove compiler warnings for unused parameters

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Attempt to simplify table generation code

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Explicilty allow GCC to perform additional optimisations - Needs some discussion

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Add extra entries to reach table to avoid needing to clamp to range during pixel processing

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* GPU move reach Max M sampling to avoid looking it up multiple times per pixel

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Remove smoothing from GPU path, it is baked into the csup

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Fix bug with reach lookup

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Try only wrap hues on input to the shaders

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* rework GPU camut compressor to follow the same algorithm as CPU. Not 100% the same GPU still recalculates some values

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Rework solve_J_intersect to have fewer div instructions

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Adjust GPU code to better align with CPU code's structure, some additional precomputation is now applied during shader generation

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Precompute more scaling factors into matrices and nonlinear functions

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Experiment with unsigned integers for array access

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Bypass one J-> A conversion by saving the Aab computed earlier

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Test intrinsics for compression Norm calculation

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Attempt to calculate sin/cos only once per pixel.
Some minor micro optimisations.
Further alignment of GPU with CPU code,
Tests values need evaluating
Some GPU results are different - TBD

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Remove unused parameters

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Try tree vectoriser for gcc

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Add Vectorise option for MSVC

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Remove unused function

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Constexpr std::max is only available in C++ 14 for now avoid the call to it

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Try to fir intrinsic based errors on osome build configurations

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Another C++ 14 usage fix

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Remove check for CLANG left over from testing

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

---------

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>

* Update ACES2 CPU non-SIMD path (#2122)

* - Commenting out the ACES2 SIMD implementation for now to focus on validity of the scalar math. For SIMD we need to do implement run-time switching logic too.
- Slight improvements to the unit tests so that we print out the computed error metric as well as the actual and expected values. Helps to see the magnitude of the error.
- FixedFunctionOpCPU and BuiltinTransform tests now produce error lines with the same structure & syntax, including the computed error.
- Updated the expected values for ACES2 tests with the values the new optimized code produces, this makes all of the of CPU tests pass now.
- For ACES2 ops and builtin transforms, the error threshold is increased to 1e-4
- added few, temporary code snippets that dumps the currently produced results, making it easier to update the golden values if needed again.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* - Fixing Linux build

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* Making Linux build happy is never easy.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

---------

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* Address GPU unit test failures (#2123)

* - Weights for cos(3h) and sin(h) in chroma_compress_norm() looks wrong. Fixing the weights makes the GPU tests pass now (except of the inverse output transform which seems to have a separate issue).
- If the new weights are correct, I'll need to update the CPU test target values too.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* - Updating the expected values in the CPU tests

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* - The remaining GPU test failures were caused by a simple typo where we were passing h instead of J to ocio_tonescale_inv() function. With the fix all the unit tests are happy now.

- Since we decided not to include any SIMD implementation in this version, I removed the conditional code paths and left the current SSE & AVX implementations as commented out for future guidence.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

---------

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* Remove unused code for old gamut table calculations (#2124)

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>
Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* Minor code cleanup

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* Adding negative A trap on Aab_to_JMh_Shader() per code review

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* Adding copysign to tonescale to make it aligned with the CPU implementation.

It's possible that on GPU we may never receive negative J due to prior guarding, but for now aligning with the CPU to be on the safer side.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* Add built-in transform round-trip test

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

* Loosen tolerance for other machines

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

* Add GPU round-trip tests

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

* Loosen tolerances for other GPUs

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

---------

Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com>
Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>
Signed-off-by: Doug Walker <doug.walker@autodesk.com>
Co-authored-by: Kevin Wheatley <kevin.wheatley@framestore.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2025-03-14 18:29:28 -04:00
Rémi AchardandDoug Walker 30db20428b Add missing setConfigIOProxy call to the Python API (#2128)
* Add missing setConfigIOProxy call to the Python API

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

* Restore a clean cache for other unit tests

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>
2025-03-12 00:09:08 -04:00
JGamache-autodeskandDoug Walker fed973f463 Integrating matrix multiplication fix from OSL (#2121)
See https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/pull/1513 for more details.

Signed-off-by: Jerry Gamache <jerry.gamache@autodesk.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2025-03-10 14:53:27 -04:00
Mark TitchenerandDoug Walker 7237eaadd4 Change recommended Imath version to 3.1.12. This should fix Issue #1764. (#2120)
Signed-off-by: Mark Titchener <mark.titchener@foundry.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2025-03-10 02:57:28 -04:00
Cuneyt OzdasandDoug Walker af69f39dfb Adsk Contrib - Issue #2111 Absolute paths not working through proxy (#2112)
* Ticket #2111
- Do not use config proxy for absolute paths while computing file hash or loading LUT data.
- Added the unit test provided in the ticket.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* - Changing the logic so that for abs paths we first try the configProxy and if that fails fall back to file system. For relative paths, we don't fall back to file system though, proxy is expected to handle those.
- Removed the unnecessary closeLutStream() function. We're using unique pointers, that means RAII is in place. The whole idea behind RAII is we don't need to worry about the cleanup or the type of the object wrapped by the RAII handler (unique_ptr in this case).
- Cleaned up some unnecessary conversions, type shuffling and copies around the code I touched.
- Cleaned up some unsafe type casts which are prone to dereferencing null pointers.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* - Ah! make_unique is a c++14 feature and we support C++11. I wonder why windows build is configured to use c++14+ while other platforms use C++11. Replacing make_unique with the new syntax to make the other platforms happy too.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* - Minor cleanup
- Added a test for absolute path to inexistent file.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

---------

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2025-03-03 22:37:04 -05:00
Morteza Mostajab d807b380d2 Issue #2116 : Fixes Metal backend's generated shaders with float/int constant Array Performance (#2117)
* Issue #2116 : Improves Metal Backend Perf. moves the constant float/int declaration to constant space so it doesnt get initialized per thread. This improved color correction performance on M4 Max 3-4 times better.

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

* Tiny refactoring to improve code maintainability

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

---------

Signed-off-by: Morteza <smostajabodaveh@apple.com>
2025-02-10 00:37:58 -05:00
Taegyun Ha c5c85b009c Fix issue with ocio_depts handling spaces in file paths (#2109)
Signed-off-by: Taegyun Ha <taegyun.ha@disguise.one>
2025-01-06 16:06:04 -05:00
Anthony RobertsandDoug Walker c09951e456 Add support for Windows ARM64 (#2089)
* Add support for Windows ARM64

Signed-off-by: Anthony Roberts <anthony.roberts@linaro.org>

* Fix improper compiler flag check

Signed-off-by: Anthony Roberts <anthony.roberts@linaro.org>

* Fix sse2neon issues on Windows ARM64

Signed-off-by: Anthony Roberts <anthony.roberts@linaro.org>

* Fix cross-compilation on Windows for X64 -> ARM64

Signed-off-by: Anthony Roberts <anthony.roberts@linaro.org>

* Fix comment to match with corresponding if directive

Signed-off-by: Anthony Roberts <anthony.roberts@linaro.org>

* Check for MSVC before setting MSVC-style flag

Signed-off-by: Anthony Roberts <anthony.roberts@linaro.org>

* Fix comment to resolve ambiguity

Signed-off-by: Anthony Roberts <anthony.roberts@linaro.org>

---------

Signed-off-by: Anthony Roberts <anthony.roberts@linaro.org>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2024-12-18 20:33:22 -05:00
Rémi AchardandDoug Walker 6fa40a4f6c Fix Python wheel macOS workflow and make OCIO_PYTHON_LOAD_DLLS_FROM_PATH opt-in (#2106)
Signed-off-by: Rémi Achard <remiachard@gmail.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2024-12-10 16:53:28 -05:00
Doug Walker 1890b7d0ae Adsk Contrib - Optimizer should detect pair inverses before combining multiple op pairs (#2104)
* Fix opt combine issue

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

* Improve gamma test

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

* Add check for DisplayP3-HDR built-in

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

---------

Signed-off-by: Doug Walker <doug.walker@autodesk.com>
2024-12-10 12:42:59 -05:00
Éric Renaud-HoudeandDoug Walker 31325793f0 Replaced DX11 HLSL shading language with the more accurate shading model 5.0 (SM_5_0). (#2078)
Signed-off-by: Eric Renaud-Houde <eric.renaud.houde@gmail.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2024-12-09 21:25:25 -05:00
Doug Walker 4b87e85c1f Revert github action to deploy website (#2105)
Signed-off-by: Doug Walker <doug.walker@autodesk.com>
2024-12-09 20:22:34 -05:00
Seif AshrafandDoug Walker 0f06f044bf Fixed range function error in nuke colorlookup examples (#2096)
* Error found: ocio_to_colorlookup_all.py

Signed-off-by: Seif Ashraf <seifibrahim32@GMail.com>

* Update colorlookup_to_spi1d.py

Signed-off-by: Seif Ashraf <seifibrahim32@GMail.com>

* Update ocio_to_colorlookup_rgb.py

Signed-off-by: Seif Ashraf <seifibrahim32@GMail.com>

---------

Signed-off-by: Seif Ashraf <seifibrahim32@GMail.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2024-12-07 19:17:46 -05:00
Doug Walker dafefe63e1 Fix bit-depth attr for inv luts for CTF writing (#2090)
Signed-off-by: Doug Walker <doug.walker@autodesk.com>
2024-12-07 16:23:30 -05:00
hannahmkrasnickandDoug Walker 5c2fa576ca [2057] - Fix views/display submenus in OCIODisplay app (#2068)
* fix views/display submenus

Signed-off-by: Hannah <hannah.mk23@gmail.com>

* fix global variable name

Signed-off-by: Hannah <hannah.mk23@gmail.com>

---------

Signed-off-by: Hannah <hannah.mk23@gmail.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2024-12-07 15:21:35 -05:00
f2dc1475e7 Text format (e.g. IridasCube) parsing optimizations (#2074)
* Iridas .cube and other text format parsing optimizations

Primarily driven by a wish to increase performance of parsing .cube
files. But the functions that are added or changed are used across
parsing of all/most of text based formats.

With these changes, parsing "Khronos PBR Neutral" .cube file (5.4MB)
on Ryzen 5950X / VS2022 Release build: 167ms -> 123ms.

- Add locale independent IsSpace(char). Somewhat similar to 3aab90d,
  whitespace trimming perhaps should not be locale dependent.
- Add IsEmptyOrWhiteSpace() and use that inside ParseUtils::nextline,
  instead of doing Trim(line).empty().
- Add StringUtils::StartsWith(char) and use that in various parsers
  that were constructing whole std::string object just to check for a
  single character.
- When building for C++17 or later, NumberUtils can use standard
  <charconv> from_chars functions (except on Apple platforms, where
  those are not implemented for floating point types as of Xcode 15).
  This has advantage of not having to deal with errno or locales. Saves
  some thread local storage accesses and function calls (e.g. on Windows
  errno is actually a function call).
- There's a CMake setup change that adds /Zc:__cplusplus flag for MSVC;
  for backwards compat reasons it does not report proper C++ version
  detection defines otherwise.

Signed-off-by: Aras Pranckevicius <aras@nesnausk.org>

* Fix test failures (char can be signed, doh)

Signed-off-by: Aras Pranckevicius <aras@nesnausk.org>

* Tests: add unit test coverage for NumberUtils::from_chars directly

Currently it was only tested indirectly via XMLReaderUtils_tests and
file format tests

Signed-off-by: Aras Pranckevicius <aras@nesnausk.org>

* Fix from_chars in C++17 code path to understand hex prefix (0x) and skip optional whitespace

To match the pre-C++17 behavior that was there before

Signed-off-by: Aras Pranckevicius <aras@nesnausk.org>

* Fix detection of <charconv> float from_chars availability

Signed-off-by: Aras Pranckevicius <aras@nesnausk.org>

* Tests: Fix missing <limits> include for gcc

Signed-off-by: Aras Pranckevicius <aras@nesnausk.org>

* Tests: fix uninitialized variable warning-as-error on gcc

Signed-off-by: Aras Pranckevicius <aras@nesnausk.org>

---------

Signed-off-by: Aras Pranckevicius <aras@nesnausk.org>
Co-authored-by: Rémi Achard <remiachard@gmail.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2024-12-06 23:05:40 -05:00
Doug Walker c7ad2a9f65 Fix broken Linux and Mac CI workflow (#2102)
* Fix broken Linux and Mac CI workflow

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

* Update job name

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

---------

Signed-off-by: Doug Walker <doug.walker@autodesk.com>
2024-12-06 16:39:49 -05:00
zachlewis 203c458516 Add GHA workflow to rebuild and republish site on changes to docs/site (#2098)
* fix: modernize Hugo setup

* Replace use of deprecated `.Site.IsMultiLingual` with preferred `hugo.isMultilingual`

* Adjust pagination settings in config.toml

Signed-off-by: Zach Lewis <zachcanbereached@gmail.com>

* ci: Add GHA workflow for triggering site rebuilds

Whenever a change to a file under "docs/site" is pushed to the `main` branch, rebuild docs/site/homepage with Hugo and publish to `gh-pages` branch, taking care to preserve the contents of the "old" directory.

Signed-off-by: Zach Lewis <zachcanbereached@gmail.com>

---------

Signed-off-by: Zach Lewis <zachcanbereached@gmail.com>
2024-11-25 12:37:14 -05:00
Thomas Mansencal f37ca55409 Add DISPLAY - CIE-XYZ-D65_to_DisplayP3-HDR builtin transform. (#2095) 2024-11-19 11:07:24 +13:00
Chris Nashandzachlewis 9bc5b8eb1c add Disguise to list of supported applications (#2088)
Signed-off-by: Chris Nash <chris.nash@disguise.one>
Co-authored-by: zachlewis <zachlewis@users.noreply.github.com>
2024-11-04 23:32:53 -05:00
Craig Zerouni 800efd8f3a Update doc building instructions (#2085)
* Update doc building instructions

Signed-off-by: Craig Zerouni <czerouni@gmail.com>

* Remove stray comment line

Signed-off-by: Craig Zerouni <czerouni@gmail.com>

---------

Signed-off-by: Craig Zerouni <czerouni@gmail.com>
2024-11-04 07:00:38 -05:00
Dave Sawyer 81c07fd855 Photoshop now supports OCIO (#2084)
* ocio gm in photoshop

Signed-off-by: Dave Sawyer <kingsawyer@gmail.com>

* Update supported_apps.yml

Signed-off-by: Dave Sawyer <kingsawyer@gmail.com>

* ps and fnordware text

Signed-off-by: Dave Sawyer <kingsawyer@gmail.com>

---------

Signed-off-by: Dave Sawyer <kingsawyer@gmail.com>
2024-10-18 18:49:29 -04:00
Ananth b3900df754 Move GPU LUT files into the tests dir (#2069)
Instead of creating temporary LUT files for GPU tests,
read them from the testdata directory instead.
This removes the need to clean them up after each run.

Signed-off-by: Ananth Bhaskararaman <ananth.b@qubecinema.com>
2024-10-17 22:39:16 -04:00
Aras PranckevičiusandDoug Walker 707734d100 Build: enable parallel source file compilation on MSVC (#2072)
By default Visual Studio projects do not compile source files in
parallel. Add "/MP" flag to enable that.

From scratch OCIO build on Ryzen 5950X, VS2022: 580sec -> 208sec.
Most of remaining single-threaded time is cloning external libraries
or building external libraries (most of them don't do parallel
compilation either). But within building OCIO itself, CPU usage
goes close to 100% instead of 5%.

Signed-off-by: Aras Pranckevicius <aras@nesnausk.org>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2024-10-16 11:06:09 +01:00
Éric Renaud-Houde 59d6a864f0 Match ACES 2.0 shader resource suffix format to regular luts. (#2077)
Signed-off-by: Eric Renaud-Houde <eric.renaud.houde@gmail.com>
2024-10-11 14:23:04 -04:00
Doug Walker 6998d6d3d7 Increment library version (#2065)
Signed-off-by: Doug Walker <doug.walker@autodesk.com>
2024-09-30 20:57:24 -04:00
Doug Walker 4dd0273cfa Adsk Contrib - Update documentation for 2.4 release (#2060)
* Update documentation for 2.4 release

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

* Add link to prototype ACES 2 configs

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

* Update video links

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

---------

Signed-off-by: Doug Walker <doug.walker@autodesk.com>
2024-09-29 23:16:27 -04:00
shaneantrim feb4ada09c Update usage_examples.rst (#2062)
* Update usage_examples.rst

Changed Displaying an image, using the GPU (Full Viewport Pipeline) to CPU, added Python section and added Displaying an image, using the GPU with C++ example.

Signed-off-by: shaneantrim <shaneantrim@gmail.com>

* removed main() call

Signed-off-by: shaneantrim <shaneantrim@gmail.com>

* Removed Legacy C++ section

Signed-off-by: shaneantrim <shaneantrim@gmail.com>

---------

Signed-off-by: shaneantrim <shaneantrim@gmail.com>
2024-09-29 21:18:47 -04:00
Annie Lin 7fc59f80e6 Add hasAlias method to ColorSpace and NamedTransform classes (#2059)
* Add hasAlias method to ColorSpace and NamedTransform classes

Signed-off-by: annie <annieyhlin09@gmail.com>

* minor style changes

Signed-off-by: annie <annieyhlin09@gmail.com>

* Update Python binding to include hasAlias method with unit tests

Signed-off-by: annie <annieyhlin09@gmail.com>

---------

Signed-off-by: annie <annieyhlin09@gmail.com>
2024-09-26 21:22:53 -04:00
2f5ae2c568 Fix platform latest (#2058)
* Fix platform latest

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

* Fix Windows Python 3.7 CI

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

---------

Signed-off-by: Rémi Achard <remiachard@gmail.com>
Co-authored-by: zachlewis <zachlewis@users.noreply.github.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2024-09-26 16:28:16 -04:00
Cuneyt OzdasandDoug Walker db6f675bce Adsk Contrib - Adding the new cg and studio configs (issue #1999) (#2039)
* For issue #1999 adding the new cg and studio configs.
- Added new configs cg-config-v2.2.0_aces-v1.3_ocio-v2.4.ocio and studio-config-v2.2.0_aces-v1.3_ocio-v2.4.ocio
- Made default config cg-config-v2.2.0_aces-v1.3_ocio-v2.4
- Updated the tests accordingly.

TODO: Some documents such as aces_cg.rst and aces_studio.srt need to be updated.
Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* - minor white-space fixes.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* renaming P3 display scene referred aliases:

-- lin_displayp3_scene --> lin_p3d65_scene
-- srgb_displayp3_scene --> srgb_p3d65_scene

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* Make CIE-XYZ Scene-referred inactive

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

---------

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>
Signed-off-by: Doug Walker <doug.walker@autodesk.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2024-09-26 15:55:35 -04:00
Cuneyt OzdasandDoug Walker 79e7b7bff7 Adsk Contrib - Issues #1968 (mirrored) and #1992 (LUT-free builtins) (#2029)
* Adsk Contrib - Issues #1968 (mirrored builtins) and #1992 (LUT-free builtins Pt.1)

For issue #1992 - "Make LUT-free implementations of certain built-in transforms"
- Adding fixed-functions PQ_TO_LINEAR and LINEAR_TO_PQ. These will be used to handle following built-in transforms if the LUT support is turned off:
-- CURVE - ST-2084_to_LINEAR
-- CURVE - LINEAR_to_ST-2084
-- DISPLAY - CIE-XYZ-D65_to_REC.2100-PQ
-- DISPLAY - CIE-XYZ-D65_to_ST2084-P3-D65
- Implemented CPU renderers for scalar, SSE2 (with fastPower) and SSE2 (with Intel SVML) intrinsics targets for the new fixed-function.
- Implemented GPU shader generator for the new fixed-function
- Remaining fixed-functions will be implemented in an upcoming PR.

For issue #1968 - "Make display EOTFs in built-in transforms mirrored and unclamped to preserve sub-black and super-white"
- Existing LUT-based HLG curve is now unclamped at both ends and mirrored around origin.
- Both the existing LUT-based and the new LUT-free implementations of the PQ curve are now unclamped at both ends and mirrored around origin.

Aux Changes
- GetFixedFunctionCPURenderer() now takes a new bool parameter fastLogExpPow.
- Added a stand-in OCIO_LUT_SUPPORT preprocessor macro in preparation for ocio-lite where the lut support can be turned off.
- Added util functions to Config_tests.cpp to help creating configs with arbitrary version.
- Added ability to test fixed-function cpu renderers with and without fastLogExpPow.
- Added capability to specify custom extended ranges in the GPU unit tests. Default value is [-1.0,2.0] same as the previously hard-coded range.
- Fixed a bug in the GPU unit tests where the computed domain values would overshoot.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* - Renderer_PQ_TO_LINEAR_SSE high precision implementation is now limited to MSVC 2019+ compiler as it has the built-in intel _mm_pow_ps() SVML implementation.
- LUT-based PQ to Linear implementation now uses half-domain LUT to handle extended range. Linear to PQ direction was alredy using half-domain lut (probably due to normal input range being 0 to 100.
- BT_2100 namespace is renamed to HLG
- In BuiltinTransform_tests it's now possible (and necessary) to specify the error threshold for each built-in transform. This was needed as the hard-coded 1e-6 threshold was too tight for the PQ curve which uses nested power functions and thus numerical stability was depending on the implantation flavor.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* - Reversing the forward direction of the PQ curve, now the forward direction is linear -> PQ . Changed the enum names accordinly, updated the tests etc.
- Adding a new Hybrid Log Gamma fixed function. Similar to the PQ curve, the forward direction is linear -> HLG. SIMD implementation is currently missing, can be done in the future.
- minor fixes in the PQ cpu op
- some adjustments to the CPU test values and thresholds.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* - Ah! gcc and clang being more picky about the unused variable bit me again.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* - Completed outstanding to-do items.
- Code beautification.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* - Adding few missing pieces I noticed for PQ and HLG fixed functions
- Since we changed the default direction of the PQ and HLG fixed functions, I moved the order of the functions in the source files so that forward becomes before inverse.
- Adding the first cut of the FIXED_FUNCTION_LINEAR_TO_DOUBLE_LOG_AFFINE fixed function. This is still in WIP, needs some optimizations and tests implemented. Also to be able to handle the Apple Camera curve, it needs to be extended a bit. But currently it can handle the Canon CLog2 and CLog3 curves with all tests passing.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* - unbreak gcc and clang compilers

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* - Adding GpuShaderText::floatXGreaterThanEqual() functions which are needed for precise break-point handling in non-continuous piecewise functions.
- changes for double log gamma fixed function
-- Fixed couple of bugs
-- Added basic parameter validation
-- implemented fwd and inv gpu shaders
-- Fixed CLog2 and CLog3 double log gamma constants.
-- implemented cpu and gpu shaders

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* - HLG fixed-function is now parametrized and the previously hard-coded Rec.2100 HLG curve parameters are now passed to the fixed-function by the built-in transforms and by some of the test suites.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* - Adding a new parameter to the HLG fixed-function to control the point mirroring is applied. Below the mirror point the input values will be mirrored around that point and the output sign will be flipped. Although this does not guarantee by itself a monotonously increasing (thus invertible) and a continuous function, when the parameters are proper these properties will be achieved.
- Both the Rec.2100 HLG curve and Apple camera curve are now implemented by the HLG fixed-function when the LUT-support is turned off.

for now checking-in with LUT_SUPPORT turned off to run the CI tests on the implementation. I'll turn it on later.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* - Unlike msvc, gcc and clang could not auto-determine the template parameter for the base class. I'm making it explicit, hope that it'll unbreak the builds.
- minor comment fix :)

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* - gcc and clang are still failing. Removing the template for the HLG, hope this will un-confuse the compilers.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* - handling the unused variable warning/error when the LUT-support is turned off.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* - Fighting with more unused variable warning turned into error. At this stage I'm not sure that turning this warning on the compilers is a good idea or not. Almost all cases are simple unused variabled due to different cmake switches and will be happily optimized out by the compiler without any side-effect. I'm curious to see if that compiler flag helped anyone to catch a bug early on at all.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* silencing more unused vars.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* - now that all the compiler are happy when the lut-support is turned off, turning it back on.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* - minor fixes, mostly formatting.

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>

* Refine enums

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

* Add opdata test

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

* Add hlg oetf builtin

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

* Update CTF version

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

* Add builtin version tests

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

* Fix typo

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

---------

Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>
Signed-off-by: Doug Walker <doug.walker@autodesk.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2024-09-26 13:40:38 -04:00
Doug Walker 5c80c0beaa Adsk Contrib - Add DCDM displays and improve HLG OOTF implementation (#2051)
* Add DCDM displays, improve Rec.2100 surround

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

* Fix Linux test

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

* Remove 48 nit scaling

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

* Remove D60 DCDM built-ins

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

* Add version check

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

---------

Signed-off-by: Doug Walker <doug.walker@autodesk.com>
2024-09-26 00:42:05 -04:00
Rémi Achard e0666e2022 ACES2 Output Transforms (#1983)
* ACES2 BuiltinTransforms

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

* Fix NaNs and add bound checking on CPU gamut table sampling

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

* Use powf instead of pow for consistency

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

* Remove f suffix for floating-point literals in shaders

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

* Address PR feedback around unit tests

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

---------

Signed-off-by: Rémi Achard <remiachard@gmail.com>
2024-09-25 20:08:43 +01:00
Rémi Achard 77e92a9177 Python 3.13 wheels (#2052)
* Python 3.13 wheels

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

* Build mac ARM wheels on Apple Silicon runners to enable testing

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

* Fix upload_pypi job dependencies

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

---------

Signed-off-by: Rémi Achard <remiachard@gmail.com>
2024-09-24 14:40:00 +01:00
Rémi AchardandDoug Walker 145bce2b11 Add VFX 2024 to CI (#2053)
* Add VFX 2024 ASWF iamges to CI

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

* Bump CMake to 3.14 minimum to fix warning in FetchContent

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

* Fix error message formating

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

* Reduce warnings

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>
2024-09-23 20:34:18 -04:00
Rémi AchardandDoug Walker aa7fac0bdb Add --bitdepth flag to ocioconvert (#2038)
Signed-off-by: Rémi Achard <remiachard@gmail.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2024-09-22 22:48:08 -04:00
Alina Gotovtsevaandzachlewis a1c4367b75 Add TouchDesigner to supported apps (#2037)
Signed-off-by: Alina Gotovtseva <alinakago@gmail.com>
Co-authored-by: zachlewis <zachlewis@users.noreply.github.com>
2024-09-22 22:17:35 -04:00
Cuneyt OzdasandDoug Walker 62d355721e - Instead of assuming a hard-coded visual studio installation path, we're now using the vswhere.exe tool that the visual studio installs in every system. This removes the necessity to specify the msvc path in the command line if visual studio was not installed into the default path. Option to override is still possible as before. (#1980)
Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2024-09-11 23:46:19 -04:00
Doug Walker 9864d7537b Modify half-domain LUT1D GPU shader to improve zero handling (#1981)
Signed-off-by: Doug Walker <doug.walker@autodesk.com>
2024-09-04 22:51:35 -04:00
Doug Walker d2c9617036 Adsk Contrib - Add config file to fix ReadTheDocs builds (#2028)
* Add config file to fix ReadTheDocs integration

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

* Miscellaneous minor fixes

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

---------

Signed-off-by: Doug Walker <doug.walker@autodesk.com>
2024-09-04 21:48:40 -04:00
Joseph GoldstoneandDoug Walker 46bce12937 Fix typo where apostrophe was used in forming possessive of 'it' (#2024)
Signed-off-by: Joseph Goldstone <joseph.goldstone@mac.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2024-09-02 21:54:56 -04:00
Dave SawyerandDoug Walker 16b8c9ee52 Remove fnordware plugins (#2025)
* Remove fnordware plugins

Signed-off-by: Dave Sawyer <kingsawyer@gmail.com>

* Delete vendor/aftereffects directory

Signed-off-by: Dave Sawyer <kingsawyer@gmail.com>

---------

Signed-off-by: Dave Sawyer <kingsawyer@gmail.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2024-09-02 21:20:06 -04:00
Mahesh MadhavandDoug Walker ae79fdf1b7 Update OpenColorIO.h (#2020)
Fix for building with gcc-15

Signed-off-by: Mahesh Madhav <67384846+heshpdx@users.noreply.github.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2024-08-23 22:49:36 -04:00
Dave Sawyer f2da47e421 Update supported_apps.yml for AE and PS (#2026)
* Update supported_apps.yml for AE and PS

Signed-off-by: Dave Sawyer <kingsawyer@gmail.com>

* Update supported_apps.yml

Signed-off-by: Dave Sawyer <kingsawyer@gmail.com>

---------

Signed-off-by: Dave Sawyer <kingsawyer@gmail.com>
2024-08-23 22:19:11 -04:00
Dave Sawyer 4944d6eefb Update compatible_software.rst (#2022)
Signed-off-by: Dave Sawyer <kingsawyer@gmail.com>
2024-08-15 14:27:02 -04:00
Michael DolanandThomas Mansencal 5d3e0b323c ocioview: app mode, tests, color space menus, bug fixes (#2006)
* black code formatting

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

* Handle empty image in chromaticities inspector

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

* Allow unsetting shared view rule

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

* Qt6 compatibility fixes

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

* Bug fixes, unit test framework setup

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

* Add initial unit tests

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

* Add application mode

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

* Add new color space combo

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

* Use color space menu helper

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

* Move mode select to top of window

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

* Fix mode viewer context switching

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

* Recombine viewers

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

---------

Signed-off-by: Michael Dolan <michdolan@gmail.com>
Co-authored-by: Thomas Mansencal <thomas.mansencal@gmail.com>
2024-08-10 18:03:34 +12:00
Sumana SreeandDoug Walker 757e24b9af Updated documentation Specifying types for GradingPrimary attributes #1640 (#1989)
* Update documentation: Specify types for GradingPrimary attributes

Signed-off-by: sumana sree <sumanasree2705@gmail.com>

* added pivotWhite and pivotBlack types to documentation

Signed-off-by: sumana sree <sumanasree2705@gmail.com>

---------

Signed-off-by: sumana sree <sumanasree2705@gmail.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2024-08-09 19:46:49 -04:00
PenneLeeandDoug Walker 77133f59dd Add NamedTransform option to ocioconvert tool. (#1988)
Signed-off-by: pylee <penne.y.lee@intel.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2024-08-09 19:08:42 -04:00
Doug Walker 87ccf32a8d Allow read and write of file rules without cs validation (#1976)
Signed-off-by: Doug Walker <doug.walker@autodesk.com>
2024-08-09 18:29:22 -04:00
Doug Walker 4b918337cf Harden unit test folder handling (#2019)
Signed-off-by: Doug Walker <doug.walker@autodesk.com>
2024-08-09 17:51:09 -04:00
AmysparkandDoug Walker 21f656ff36 Darwin: use the correct include for locale functions (#1987)
Fixes #1973

Signed-off-by: L. E. Segovia <amy@amyspark.me>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2024-07-21 20:25:16 -04:00
SlawekNowyandDoug Walker 1e17c9abb0 Update Installminizip-ng.cmake (#1986)
Fix an occasional race condition caused by zlib building before minizip-ng.

Signed-off-by: Sławomir Śpiewak <sosw.slawomir.spiewak@gmail.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2024-07-21 20:05:08 -04:00
Doug Walker 360e66d7ff Fix for GitHub Actions node.js glibc issue (#1990)
* Fix for node.js glibc issue

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

* Temporarily turn off Linux docs builds

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

* Temporarily turn off Linux docs builds, 2nd try

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

* Update macOS runner from 11 to 12

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

* Attempt docs install fix

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

* Another docs fix attempt, and add 2024 container

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

* Remove 2024 container test

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

* Turn fail-fast off

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

* Add better comment for install script

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

---------

Signed-off-by: Doug Walker <doug.walker@autodesk.com>
2024-07-11 20:39:28 -04:00
Thomas Mansencal dc13f2933c Update color_space_to_rgb_colourspace member usage. (#1985)
Signed-off-by: Thomas Mansencal <thomas.mansencal@gmail.com>
2024-06-24 15:30:30 -04:00
Thomas Mansencal 55cfe59247 PR: ocioview - Chromaticities Inspector (#1914)
* Add initial `pyproject.toml` file to setup *ocioview* development environment.

Signed-off-by: Thomas Mansencal <thomas.mansencal@gmail.com>

* Implement initial chromaticity inspector.

Signed-off-by: Thomas Mansencal <thomas.mansencal@gmail.com>

* Rename `ocioview.ocioview.utils.color_space_to_RGB_Colourspace` definition to `color_space_to_rgb_colourspace`.

Signed-off-by: Thomas Mansencal <thomas.mansencal@gmail.com>

* Removed unneeded string formatting in `ocioview.ocioview.utils.py` module.

Signed-off-by: Thomas Mansencal <thomas.mansencal@gmail.com>

* Add `wgpu` to direct dependencies.

Signed-off-by: Thomas Mansencal <thomas.mansencal@gmail.com>

---------

Signed-off-by: Thomas Mansencal <thomas.mansencal@gmail.com>
2024-06-09 11:00:23 +12:00
Carol Payne 6dc7fb40ae TSC Updates - Mark and Cuneyt additions, creation of emeritus section, updates to TSC responsibilities.Committers Updates - Adding Mark and Cuneyt, along with other already existing committers or emeritus status not reflected in this file. (#1977)
Signed-off-by: Carol Payne <carol.alynn.payne@gmail.com>
2024-05-17 18:01:12 -04:00
Michael Dolan 7e91b0e9a6 ocioview updates & fixes (#1966)
* Improve ocioview exit, view, and icon UX

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

* Fix message router property routing

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

* Add processor context

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

* Revise item type data descriptions

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

* Split item name from item label

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

* Update processor context direction handling

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

---------

Signed-off-by: Michael Dolan <michdolan@gmail.com>
2024-05-06 22:03:36 +12:00
Michael DolanandThomas Mansencal 813785eca6 ocioview image and PySide6 updates (#1912)
* Updates for PySide6 compatibility

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

* Remove QT3D_RENDERER override

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

* Message router name update

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

---------

Signed-off-by: Michael Dolan <michdolan@gmail.com>
Co-authored-by: Thomas Mansencal <thomas.mansencal@gmail.com>
2024-04-17 13:12:00 -04:00
Mei ChuandDoug Walker 67a26e4a38 Add a helper function to check if an extension is supported by file transform (#1962)
* Add FileTransform::IsFormatExtensionSupported()

Signed-off-by: Mei Chu <meimchu@gmail.com>

* IsFormatExtensionSupported ignores dot at start.

Signed-off-by: Mei Chu <meimchu@gmail.com>

* Add C++ tests for new function.

Signed-off-by: Mei Chu <meimchu@gmail.com>

* Fix a small bug in the new C++ tests.

Signed-off-by: Mei Chu <meimchu@gmail.com>

* Add python binding, python tests and address feedbacks.

Signed-off-by: Mei Chu <meimchu@gmail.com>

* Change extension accepted to IsFormatExtensionSupported() to case-insensitive.

Signed-off-by: Mei Chu <meimchu@gmail.com>

* Bugfix to account for single dot input.

Signed-off-by: Mei Chu <meimchu@gmail.com>

* Cleanup isFormatExtensionSupported() structure a bit to look nicer.

Signed-off-by: Mei Chu <meimchu@gmail.com>

* Reset whitespace cleanup. Also add a guard against invalid pointer.

Signed-off-by: Mei Chu <meimchu@gmail.com>

---------

Signed-off-by: Mei Chu <meimchu@gmail.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2024-04-03 18:57:09 -04:00
AlexSchwankandDoug Walker b87d80d155 Replaced deprecated Carbon framework with ColorSync and CoreGraphics. (#1961)
* Replaced deprecated Carbon framework with ColorSync and CoreGraphics.

Signed-off-by: Alexander Schwank <alschwank@gmail.com>

* Added CoreFoundation linkage

Signed-off-by: Alexander Schwank <alschwank@gmail.com>

---------

Signed-off-by: Alexander Schwank <alschwank@gmail.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2024-04-03 16:28:58 -04:00
Mark Reid 865e261769 Add ociocpuinfo utility (#1960)
* CPUInfo cleanup

Remove unneeded duplicate code h
Handle unknown processors

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

* Add ociocpuinfo utility

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

* Add ociocpuinfo to python console_scripts

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

---------

Signed-off-by: Mark Reid <mindmark@gmail.com>
2024-04-01 22:14:33 -04:00
Mark Reid 91e8826a8b Add AVX512 accelerated 1D/3D LUTS (#1932)
* Initial AVX512 support

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

* Lut1DOp add AVX512 implementation

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

* Lut3DOp add AVX512 implementation

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

* Don't use SIMD if only 1 pixel is requested

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

* Remove #if, f16c is always available with AVX512

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

* Cast pointers to __m512 instead of __m256

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

* Use size method from vector being tested

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

* Add to help message that f16c is only used with AVX/AVX2

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

* Clarify test case by using uint8 maxValue

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

---------

Signed-off-by: Mark Reid <mindmark@gmail.com>
2024-03-21 01:11:20 -04:00
Mark Reid 50e7d5863d Fix CPU unit test failures on recent macOS ARM platforms (#1950)
* Fix CPUProcessor/optimizations on arm64 Arm64 has fma instructions that can lead to different results Break the manual computaion into multiple steps

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

* Compare strings by float value

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

* Enable macarm runners by default

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

* Move mac arm runner to main workflow

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

* fix rosetta typo

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

* move StringFloatVecClose to testutils

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

---------

Signed-off-by: Mark Reid <mindmark@gmail.com>
2024-03-20 00:52:15 -04:00
Rémi Achard 9fe81cb02e CI Workflows various fixes (#1945)
* Fix OSL 1.13 unit tests

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

* Update GHA deprecated actions

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

* Update sonnar-scanner version

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

* Upgrade platform latest to C++23 and fix Pybind11 asserts

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

---------

Signed-off-by: Rémi Achard <remiachard@gmail.com>
2024-03-12 16:34:37 +13:00
Joseph Goldstone 184566eef0 Built-In Transform support for Apple Log (#1941)
* Built-In Transform support for Apple Log

Signed-off-by: Joseph Goldstone <jgoldstone@arri.com>

* Add Apple Log to Linear curve

Signed-off-by: Joseph Goldstone <jgoldstone@arri.com>

* Don't allow use of Apple Log in pre-2.4 configs; create half LUT to avoid clipping input

Signed-off-by: Joseph Goldstone <jgoldstone@arri.com>

* Insert std:: in front of that square root

Signed-off-by: Joseph Goldstone <jgoldstone@arri.com>

* Bump minor version number to 4 in testing config (stored as string literal); bump LastSupportedMinorVersion to 4

Signed-off-by: Joseph Goldstone <jgoldstone@arri.com>

* Adjust string literal against which maximum minor version is tested to be 4, not 3

Signed-off-by: Joseph Goldstone <jgoldstone@arri.com>

---------

Signed-off-by: Joseph Goldstone <jgoldstone@arri.com>
2024-02-06 23:37:55 -05:00
Brecht Van Lommel 0c90ded166 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>
2024-01-26 14:53:29 -05:00
PenneLeeandDoug Walker aadf595946 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>
2024-01-23 00:50:54 -05:00
f9250992eb 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>
2024-01-22 23:33:27 -05:00
Chandy Navaratan 969bc68e58 Issue# 1922 - adding CI workflow to build for MAC ARM (#1928)
* Create ci-macarm.yml

Signed-off-by: Chandy Navaratan <chandy@raje.sh>

* Update ci_workflow.yml

Remove macos arm builds from regular CI pipeline

Signed-off-by: Chandy Navaratan <chandy@raje.sh>

* Updates based on review comments

1. Update trigger to run at 8:00AM on the 27th of every month.
2. Switch runner to macos-13-xlarge to trigger builds on ARM-based machines.

Signed-off-by: Chandy Navaratan <chandy@raje.sh>

* Revert "Update ci_workflow.yml"

This reverts commit d8cadc2583be0c6f04850bee49f068c54f2fb8fb.

Signed-off-by: Chandy Navaratan <chandy@raje.sh>

* Additional fixes based on PR feedback

Signed-off-by: Chandy Navaratan <chandy@raje.sh>

* Allow workflow to run against base branch for PRs

Signed-off-by: Chandy Navaratan <chandy@raje.sh>

* Switch to Python 3.11 and add arm64 as arch type

Signed-off-by: Chandy Navaratan <chandy@raje.sh>

* Update on trigger from pull_request_target to pull_request

Signed-off-by: Chandy Navaratan <chandy@raje.sh>

* Enable GPU acceleration

Enable GPU acceleration to run metal unit tests per input from Remi and Doug.

Signed-off-by: Chandy Navaratan <chandy@raje.sh>

---------

Signed-off-by: Chandy Navaratan <chandy@raje.sh>
2024-01-22 20:21:21 -05:00
phaniumandDoug Walker a95febc70e Fix narrowing conversion error on riscv64 (#1924)
Signed-off-by: phancb <nxhsdu@qq.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2024-01-22 00:04:43 -05:00
Rui ChenandDoug Walker e747e9c0bd 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>
2024-01-21 23:32:13 -05:00
Mark Reid 003b6a19e6 Fix ssse3 detection typo (#1929)
Signed-off-by: Mark Reid <mindmark@gmail.com>
2024-01-21 22:47:35 -05:00
Kevin WheatleyandDoug Walker ba2b41e309 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>
2023-12-07 17:56:48 -05:00
Rémi AchardandDoug Walker f2cfec330e Add Python 3.12 wheels (#1898)
Signed-off-by: Rémi Achard <remiachard@gmail.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2023-12-05 18:27:06 -05:00
Doug Walker d8852b5d6c 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>
2023-12-05 01:20:36 -05:00
Rémi AchardandDoug Walker 41441bb2e6 Fix yaml-cpp build issues (#1907)
Signed-off-by: Rémi Achard <remiachard@gmail.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
2023-11-22 20:29:04 +00:00
Doug Walker 4f4f30e1d3 Fix env serialization for v1 configs (#1904)
Signed-off-by: Doug Walker <doug.walker@autodesk.com>
2023-11-17 01:52:51 -05:00
Doug Walker 4d64b32bc7 Fix NamedTransform context var issue (#1905)
Signed-off-by: Doug Walker <doug.walker@autodesk.com>
2023-11-16 21:27:01 -05:00
Rémi AchardandDoug Walker ffd0f70ad5 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>
2023-11-15 21:28:29 +00:00
Rémi AchardandDoug Walker 9078753990 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>
2023-11-14 02:11:53 -05:00
Rémi AchardandDoug Walker 382dcb6ce7 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>
2023-11-14 01:26:05 -05:00
Éric Renaud-HoudeandDoug Walker 52b496528c 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>
2023-11-13 20:47:11 -05:00
tobimandDoug Walker 1d3b69502e 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>
2023-11-11 20:37:47 -05:00
Cédrik FuocoandDoug Walker b94a184e4b 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>
2023-11-05 12:57:09 -05:00
PenneLeeandDoug Walker ed852073f2 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>
2023-11-05 11:52:22 -05:00
45544ce667 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>
2023-10-30 10:33:08 -04:00
AbhineshandDoug Walker 0d00b2c538 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>
2023-10-29 19:45:38 -04:00
Thomas MansencalandDoug Walker 1fad4666c3 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>
2023-10-29 17:25:44 -04:00
Michael De CariaandDoug Walker bc8569b2db 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>
2023-10-27 15:57:02 -04:00
Michael DolanandDoug Walker 8add374dad 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>
2023-10-24 22:55:20 -04:00
Éric Renaud-Houde dddbee023d Fix missing cache id reset on look update. (#1873)
Signed-off-by: Eric Renaud-Houde <eric.renaud.houde@gmail.com>
2023-10-10 20:43:27 -04:00
Kevin WheatleyandDoug Walker c7ad35340a 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>
2023-09-26 21:58:32 -04:00
Uchiha KakashiandDoug Walker c429400170 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>
2023-09-26 14:11:58 -04:00
Cédrik FuocoandDoug Walker 381d1fc371 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>
2023-09-26 13:27:03 -04:00
Kevin WheatleyandDoug Walker 87126fad7f 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>
2023-09-13 22:55:59 -04:00
Mark Reid 14f0afa2d8 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>
2023-09-13 21:53:37 -04:00
Mark Reid 16b3157f2e Fix support for X86 32-bit (#1842)
Signed-off-by: Mark Reid <mindmark@gmail.com>
2023-09-04 17:13:26 -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
Patrick Hodoul ffddc3341f Adsk Contrib - Change the library version (#1474)
* Adsk Contrib - Change the library version

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

* Update the CHANGELOG file

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>
2021-08-31 06:54:04 -04:00
Patrick Hodoul 9bad176fb1 Adsk Contrib - Update the CTF & config version support (#1472)
Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>
2021-08-30 19:35:56 -04:00
Patrick Hodoul c84e164e0c Adsk Contrib - Add preliminary OSL support (#1462)
* Adsk Contrib - Add preliminary OSL support

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

* Improve the code following the PR comments

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

* Improve the OSL unit test framework

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

* Improve OSL detection & unit test coverage

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>
2021-08-30 18:22:03 -04:00
Patrick Hodoul cd73226770 Adsk Contrib - Fix template double instantiation (#1469)
Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>
2021-08-27 07:26:26 -04:00
Patrick Hodoul e2bf4fd709 Adsk Contrib - Fix the processor creation using a DisplayViewTransform with a no-op look (#1460)
* Adsk Contrib - Fix the processor creation using a DisplayViewTransform with a no-op look

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

* Remove a wrong comment

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>
2021-08-25 21:09:57 -04:00
Rémi AchardandPatrick Hodoul 72f5c082f8 Add Python wheel generation (#1401)
* Initial Python wheel build workflow

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

* Add unit test suite to PyOpenColorIO package

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

* Misc improvements

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

* Remove test files duplication, ship full set

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

* Prepare GH script for release

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

* Fix rebase master

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

* Add support for Apple Silicon

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

* Update release version number from Readme

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

* Dynamic version number for python package

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

Co-authored-by: Patrick Hodoul <patrick.hodoul@autodesk.com>
2021-08-25 14:35:57 -04:00
Michael Dolan 7f7418763b Add virtual display python bindings (#1464)
* Add virtual display python bindings

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

* Add virtual display test, missing methods

Signed-off-by: Michael Dolan <michdolan@gmail.com>
2021-08-24 20:18:56 -04:00
Michael DolanandPatrick Hodoul dd52688a5a Add OpenFX OCIO plugin framework and examples (#1371)
* Add OpenFX OCIO plugin framework and example

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

* Fix typo

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

* Update OpenFX Support Library to support C++11-17

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

* Add missing override qualifier

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

* Add OCIODisplay and update OCIOColorSpace UX

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

* Fix warnings, add overridde specifiers

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

* Fix C/C++ conflict

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

* Rename default to default_value

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

* Disable unused-parameter warning

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

* Add context variable override parameters

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

* Update param tooltips

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

* Add color space swap button, revert context impl

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

* Add context variable persistence

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

* Make context store param secret

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

* Fix sign compare warning

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

* Implement PR feedback

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

* Add missing color space, display, and view support

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

* Add notes and missing break

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

* Add OpenFX license to THIRD-PARTY.md

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

* Fix OCIOProcessor initialization

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

Co-authored-by: Patrick Hodoul <patrick.hodoul@autodesk.com>
2021-08-24 07:29:24 -04:00
Michael DolanandPatrick Hodoul ea4300aeb9 Add Imath 3 support for Half dependency (#1432)
* Add Imath 3 Half support

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

* Update CI jobs

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

* Test analysis workflow

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

* Update analysis_workflow.yml

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

* Make install_imath.sh executable

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

* Get latest from release branch

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

* Latest OIIO requires C++14

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

* Revert CI test changes

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

* Bump to Imath 3.0.5, use IlmBase for GPU CI

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

* Document Imath and IlmBase half options

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

* Use half-float conversion algorithm

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

* Refactor half include

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

* Bump Imath version to 3.1.2

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

* Force integer for Half.h macro

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

Co-authored-by: Patrick Hodoul <patrick.hodoul@autodesk.com>
2021-08-23 23:10:15 -04:00
Patrick Hodoul 5ee3aa0b89 Adsk Contrib - Fix static library name on Windows (#1450)
Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>
2021-08-21 23:37:54 -04:00
autoantwortandPatrick Hodoul 3c2c8ba335 FindPystring: Also find a static pystring lib (#1449)
Signed-off-by: Leander Schulten <Leander.Schulten@rwth-aachen.de>

Co-authored-by: Patrick Hodoul <patrick.hodoul@autodesk.com>
2021-08-18 09:22:02 -04:00
Patrick Hodoul 478f0bb9f3 Adsk Contrib - Fix a bit depth optimization bug (#1446)
* Adsk Contrib - Fix a bit-depth optimization bug

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

* Add some explanations

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>
2021-08-17 14:27:33 -04:00
Brecht Van Lommel 48d3438906 Fix errors in mutex debugging (#1235) (#1407)
* Store the lock owner thread rather than `m_locked`, so that multiple threads
  accessing the same mutex do not give false positives, but recursive locks on
  the same thread are still caught.

* Match the std::mutex API: return bool from `try_lock()` and remove `locked()`.
  No code is using this, but any new code that did would only build in either
  release or debug configuration.

Signed-off-by: Brecht Van Lommel <brecht@blender.org>
2021-08-09 14:11:43 -04:00
Derek 6fbf1e710e Bugfix/docs installation (#1438)
* 'Existing Install Hints' fix

Errors in some CMake variable names resulting in:
- being ignored: 'DExpat_...' instead of 'Dexpat_...'
- error: 'pybind11_ROOT' instead of 'Dpybind11_ROOT'

Signed-off-by: Derek Severin <severinderek@gmail.com>

* 'PYTHON_PATH' instead of 'PYTHONPATH'

Use of wrong variable 'PYTHONPATH' instead of 'PYTHON_PATH'.
'PYTHONPATH' might not be defined and can contain more than a single path, resulting in invalid values for the 3 variables 'DPython_LIBRARY', 'DPython_INCLUDE_DIR', 'DPython_EXECUTABLE' provided to cmake.

Signed-off-by: Derek Severin <severinderek@gmail.com>
2021-08-04 17:31:08 -04:00
doug-walkerandPatrick Hodoul 788907f8d7 Update CLF test files, add CLF python scripts (#1436)
* Update CLF test files, add CLF python scripts

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

* Fix issue with large Lut1D neg values

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

* Add two more parse tests

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

* Fix non-SSE test tolerance

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

Co-authored-by: Patrick Hodoul <patrick.hodoul@autodesk.com>
2021-08-03 09:16:05 -04:00
Rémi AchardandPatrick Hodoul 8cc6a8ffae Protect against empty look result color space (#1437)
Signed-off-by: Rémi Achard <remiachard@gmail.com>

Co-authored-by: Patrick Hodoul <patrick.hodoul@autodesk.com>
2021-08-02 09:31:33 -04:00
ceec84d5c1 Test CMake Config script (#1421)
* Require C++11 compiler for consumer projects

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

* Test CMake config export consuming

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

* Fix CMake build type

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

* Explicitly silence MSVC warning 4275

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

Co-authored-by: Patrick Hodoul <patrick.hodoul@autodesk.com>
Co-authored-by: Michael Dolan <michdolan@gmail.com>
2021-07-25 23:20:54 -04:00
993cd46788 Allow choice of specific python release (#1410) (#1424)
* Allow choice of specific python release

If you're building on a system with multiple versions of Python available,
it can be very hard to make OCIO build against a specific version. In
particular, https://cmake.org/cmake/help/latest/module/FindPython.html
explains that FindPython looks preferably for version 3 of Python.

Signed-off-by: Larry Gritz <lg@larrygritz.com>

* Amendments based on review comments:

* Rename OCIO_PREFERRED_PYTHON_VERSION -> OCIO_PYTHON_VERSION.
* Move the cached variable to the top level CMakeLists.txt instead of in
  FindExtPackages.cmake.
* Warning if OCIO_PYTHON_VERSION is set but OCIO_BUILD_PYTHON is off.

Signed-off-by: Larry Gritz <lg@larrygritz.com>

Co-authored-by: Patrick Hodoul <patrick.hodoul@autodesk.com>

Co-authored-by: Larry Gritz <lg@larrygritz.com>
Co-authored-by: doug-walker <43830961+doug-walker@users.noreply.github.com>
2021-07-12 16:51:51 -04:00
Rémi AchardandPatrick Hodoul 8bf3773f9e Add Gamut Compress implementation (#1404)
* Initial Gamut Compress implementation

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

* Add NaN checks back and refactor GPU shader

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

* Precompute y intersect for CPU Op

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

* Refactor parameter bound check

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

* Fix ocioperf GPU shader creation issue

Raising "Dynamic property already here" exception

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

* Code cleanup, address reviews

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

* Rename BuiltIn and FixedFunction transforms

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

* Refactor CPU renderer

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

* Improve tests

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

* Add link to testing dataset generation code

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

* Remove wrong comment

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

* Remove 1 / power precompute and use std::powf

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

* Adjust comment and formating

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

* Refactor GPU op

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

* Fix std::pow usage

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

* Add clamp to limit parameter and remove code duplication in GPU Op

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

* Extend parameters limits and move clamp to validate

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

Co-authored-by: Patrick Hodoul <patrick.hodoul@autodesk.com>
2021-07-12 15:29:38 -04:00
Patrick Hodoulanddoug-walker c835f31924 Adsk Contrib - Enhance default view access (#1422)
Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>

Co-authored-by: doug-walker <43830961+doug-walker@users.noreply.github.com>
2021-07-06 01:04:10 -04:00
Patrick Hodoul e63ce1ccd4 Adsk Contrib - Fix a bug with the Vc++ compilation flags. (#1419)
Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>
2021-07-06 00:06:13 -04:00
Patrick Hodoul 02a687110f Adsk Contrib - Fix FixedFunctionTransform::CreateEditableCopy() (#1418)
Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>
2021-07-05 23:25:45 -04:00
76ddf44fb2 Adsk Contrib - Improve File Rules support for v1 configs (#1417)
* Adsk Contrib - Improve file rules for v1 configs

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

* Adsk Contrib - Emergency GPU build fix (#1391)

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

* Adsk Contrib - Fix some bugs found by Maya and SonarCloud (#1403)

* Adsk Contrib - Fix some bugs found by Maya and SonarCloud

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

* Fix a Windows warning

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

* After Effects and Photoshop plug-in updates (#1373)

* Set Mac OS deployment target to 10.10

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

* More 10.10 targets

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

* Ditch ADD_EXTRA_BUILTINS

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

* Getting strange callback when AE effect is pasted

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

* Use NDEBUG in AE project

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

* Disable radio buttons with no config

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

* Update version

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

* Move to AE 2021 SDK, set PF_OutFlag2_MUTABLE_RENDER_SEQUENCE_DATA_SLOWER

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

* Define OCIO_DEPRECATED in After Effects builds

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

* Verify change from color space menu

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

* Handle situation where color space has a '/' in it

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

* Windows family separator fix

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

* Invert everything

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

* Invert everything Windows

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

* Disable more controls

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

* Incorporate invert into LUT export

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

* Get rid of fullPaths stuff

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

* Fix changed config settings retention

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

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

* Add OpenColorIOConfig.cmake generation (#1397)

* Initial OpenColorIO Config CMake implementation

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

* Remove macro, improve documentation

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

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

* Use CMake visibility flags (#1411)

* Update install doc minimal version numbers

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

* Use CMake visibility presets variables

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

* Fix python package case

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

* Allow advanced user to override symbol visibility

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

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

* Fix Windows build

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

* Update include/OpenColorIO/OpenColorIO.h

Co-authored-by: Michael Dolan <michdolan@gmail.com>
Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>

* Update src/OpenColorIO/FileRules.cpp

Co-authored-by: Michael Dolan <michdolan@gmail.com>
Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>

* Hide dependency symbol visibility (#1409) (#1416)

When creating libOpenColorIO.so, we lacked the linker commands that
hide symbol visibility from the dependent libraries, which is
necessary to prevent OCIO from exporting the symbols from Expat and
the other dependencies that OCIO needs to use internally but is not
trying intentionally to expose via its API.

Failing to do this can result in symbol clashes and all sorts of
subtle errors if OCIO is used in an app that also uses and is linked
against a potentially different version of Expat (or any of the other
deps).

Signed-off-by: Larry Gritz <lg@larrygritz.com>

Co-authored-by: Larry Gritz <lg@larrygritz.com>
Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>

* Adsk Contrib - Improve DX11 & Cg fragment shader language support (#1406)

* Adsk Contrib - Improve DX11 support

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

* Improve Cg support

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

* Improve GPU comments

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

* Fix unit test failures

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

Co-authored-by: Brendan Bolles <brendan@fnordware.com>
Co-authored-by: Rémi Achard <remiachard@gmail.com>
Co-authored-by: Michael Dolan <michdolan@gmail.com>
Co-authored-by: Larry Gritz <lg@larrygritz.com>
Co-authored-by: doug-walker <43830961+doug-walker@users.noreply.github.com>
2021-07-05 20:58:34 -04:00
Patrick Hodoul a36a5bea82 Adsk Contrib - Various code & doc cleanups (#1414)
* Adsk Contrib - Various code & doc cleanups

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

* Fix more Python examples

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>
2021-07-05 19:59:01 -04:00
Patrick Hodoul 856f604f2d Adsk Contrib - Improve DX11 & Cg fragment shader language support (#1406)
* Adsk Contrib - Improve DX11 support

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

* Improve Cg support

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

* Improve GPU comments

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>
2021-06-28 10:04:06 -04:00
Patrick HodoulandLarry Gritz 5445d37bf9 Hide dependency symbol visibility (#1409) (#1416)
When creating libOpenColorIO.so, we lacked the linker commands that
hide symbol visibility from the dependent libraries, which is
necessary to prevent OCIO from exporting the symbols from Expat and
the other dependencies that OCIO needs to use internally but is not
trying intentionally to expose via its API.

Failing to do this can result in symbol clashes and all sorts of
subtle errors if OCIO is used in an app that also uses and is linked
against a potentially different version of Expat (or any of the other
deps).

Signed-off-by: Larry Gritz <lg@larrygritz.com>

Co-authored-by: Larry Gritz <lg@larrygritz.com>
2021-06-27 18:15:05 -04:00
Rémi AchardandPatrick Hodoul 85a22e2732 Use CMake visibility flags (#1411)
* Update install doc minimal version numbers

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

* Use CMake visibility presets variables

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

* Fix python package case

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

* Allow advanced user to override symbol visibility

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

Co-authored-by: Patrick Hodoul <patrick.hodoul@autodesk.com>
2021-06-15 08:23:59 -04:00
Rémi AchardandPatrick Hodoul ce70bbd730 Add OpenColorIOConfig.cmake generation (#1397)
* Initial OpenColorIO Config CMake implementation

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

* Remove macro, improve documentation

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

Co-authored-by: Patrick Hodoul <patrick.hodoul@autodesk.com>
2021-06-15 00:19:53 -04:00
Brendan BollesandPatrick Hodoul 2e1a57780a After Effects and Photoshop plug-in updates (#1373)
* Set Mac OS deployment target to 10.10

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

* More 10.10 targets

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

* Ditch ADD_EXTRA_BUILTINS

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

* Getting strange callback when AE effect is pasted

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

* Use NDEBUG in AE project

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

* Disable radio buttons with no config

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

* Update version

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

* Move to AE 2021 SDK, set PF_OutFlag2_MUTABLE_RENDER_SEQUENCE_DATA_SLOWER

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

* Define OCIO_DEPRECATED in After Effects builds

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

* Verify change from color space menu

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

* Handle situation where color space has a '/' in it

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

* Windows family separator fix

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

* Invert everything

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

* Invert everything Windows

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

* Disable more controls

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

* Incorporate invert into LUT export

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

* Get rid of fullPaths stuff

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

* Fix changed config settings retention

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

Co-authored-by: Patrick Hodoul <patrick.hodoul@autodesk.com>
2021-06-02 11:21:10 -04:00
Patrick Hodoul 3abbe5b205 Adsk Contrib - Fix some bugs found by Maya and SonarCloud (#1403)
* Adsk Contrib - Fix some bugs found by Maya and SonarCloud

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

* Fix a Windows warning

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>
2021-05-28 11:06:45 -04:00
Patrick Hodoul dd59baf555 Adsk Contrib - Emergency GPU build fix (#1391)
Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>
2021-05-11 14:04:52 -04:00
Patrick Hodoul 40effe20e9 Adsk Contrib - Improve the context variable validation (#1387)
Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>
2021-05-03 15:24:17 -04:00
Patrick Hodoul 8ba05b3989 Adsk Contrib - Add 'deprecated' C++ mechanism & cleanup code (#1372)
* Adsk Contrib - Flag deprecated methods

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

* Adjust the documentation

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>
2021-05-01 08:07:31 -04:00
Patrick Hodoul dd03ea037c Adsk Contrib - Fix CDL issue (#1370)
Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>
2021-04-27 08:09:09 -04:00
Patrick Hodoul 9b3ac193d5 Adsk Contrib - More code cleanup (#1365)
* Adsk Contrib - More code cleanup

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

* Fix build breaks

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>
2021-04-22 07:10:30 -04:00
df1bf14060 [README.md] Fix link (#1355)
Signed-off-by: Samuel Marks <807580+SamuelMarks@users.noreply.github.com>

Co-authored-by: Patrick Hodoul <patrick.hodoul@autodesk.com>
Co-authored-by: Michael Dolan <michdolan@gmail.com>
2021-04-14 20:40:35 -04:00
kanakgautamandPatrick Hodoul e84d9a9d1f Fix: broken doc links (#1326)
* Fix: broken doc links

Signed-off-by: kanak gautam <kanakgautam5@gmail.com>

* replace export -> include

Signed-off-by: kanak gautam <kanakgautam5@gmail.com>

Co-authored-by: Patrick Hodoul <patrick.hodoul@autodesk.com>
2021-04-14 17:01:14 -04:00
Patrick Hodoul 996aa1aae1 Adsk Contrib - Fix the legacy GPU path (#1352)
* Adsk Contrib - Fix the legacy GPU path

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

* Re-enable legacy GPUShaderDesc

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

* Fix Documentation generation failure

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

* Improve the deprecated comment

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

* Add version removal

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>
2021-04-09 11:06:55 -04:00
Patrick Hodoul c1e8e26f3c Adsk Contrib - Chnage the version of the master branch (#1354)
Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>
2021-04-09 10:10:23 -04:00
Patrick Hodoul 1f622e9986 Adsk Contrib - Add negative stride support for CPU processing (#1353)
* Adsk Contrib - Add negative x & y stride support for CPU processing

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

* Fix Windows build warnings

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

* Fix Windows build warnings

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>
2021-04-09 08:26:28 -04:00
Patrick Hodoulanddoug-walker 2d4701e5ab Adsk Contrib - Improve the C++ version detection (#1351)
* Adsk Contrib - Set C++17 as the default C++ version

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

* Follow the TSC recommendation

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

* Minor improvement

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

* Isolate the C++ version detection from warnings related to custom CXX flags

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

* MacOs - Fix sanitization errors i.e. '-fsanitize=address'

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

Co-authored-by: doug-walker <43830961+doug-walker@users.noreply.github.com>
2021-04-08 23:20:30 -04:00
Patrick Hodoul 87d3109de9 Adsk Contrib - Fix 'setup_ocio' script support (#1350)
* Adsk Contrib - Fix 'setup_ocio' script support

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

* As agreed, remove the Nuke env. variables

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>
2021-04-06 13:02:02 -04:00
Patrick Hodoul 4e27f9672a Adsk Contrib - Propagate the MacOs min. version (#1340)
Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>
2021-03-31 16:26:37 -04:00
Patrick Hodoul 3bf78a6acd Adsk Contrib - Fix env. variable name (#1339)
Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>
2021-03-30 14:51:53 -04:00
Patrick Hodoul 743a7977db Adsk Contrib - Add the RPATH support (#1338)
* Adsk Contrib - Add the RPATH support

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

* Fix the rpath for the Python Binding dynamic library

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

* Fix a typo for the Linux rpath

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>
2021-03-30 10:36:03 -04:00
Patrick Hodoul 8a21b63b29 Adsk Contrib - Fix some issues reported by SonarCloud (#1337)
Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>
2021-03-30 08:37:10 -04:00
Patrick Hodoul 7208399ad1 Adsk Contrib - Misc. improvements (#1336)
* Adsk Contrib - Misc fixes

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

* Few improvements

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>
2021-03-29 18:10:04 -04:00
zachlewisandPatrick Hodoul d9a2a5fa80 Convert public headers to doxygen style (#1315)
* // WIP convert header docs to doxygen style

Signed-off-by: Zach Lewis <zachcanbereached@gmail.com>

* Adjust reference syntax

From ":cpp:func:`Foo::bar`" to "\ref Foo::bar". This seems to pacify some build warnings and clean up the C++ docs a little, but it doesn't seem to improve issue #1265

Signed-off-by: Zach Lewis <zachcanbereached@gmail.com>

* Expose documentation for FileRules, Config, MatrixTransform::setOffset

Signed-off-by: Zach Lewis <zachcanbereached@gmail.com>

* Expose more documentation: Looks, Context Variables

Minor cleanup and adjustments

Signed-off-by: Zach Lewis <zachcanbereached@gmail.com>

* Expose GpuShaderCreator usage example

Promote usage example up to the class-wide documentation
Change numbered list to simple bullets -- there seems to be a problem with orderedlists...?

Signed-off-by: Zach Lewis <zachcanbereached@gmail.com>

* Missed a change

Signed-off-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>
Signed-off-by: Zach Lewis <zachcanbereached@gmail.com>

* Expose `GpuShaderDesc` fragment shader example code

Not sure why the topmost "border" forward slashes are not rendering...

Signed-off-by: Zach Lewis <zachcanbereached@gmail.com>

* Tidy up conversion to doxygen style

Specify language for code demonstrations

Improve readability of header comments

Clean up "TODO" comments re: moving to rst

Convert remaining comments to RST syntax

Signed-off-by: Zach Lewis <zachcanbereached@gmail.com>

* Rebuild frozen docs

Signed-off-by: Zach Lewis <zachcanbereached@gmail.com>

* Adjust line wrapping in one particularly egregious instance

Signed-off-by: Zach Lewis <zachcanbereached@gmail.com>

Co-authored-by: Patrick Hodoul <Patrick.Hodoul@autodesk.com>
2021-03-27 08:38:30 -04:00
Henry WilkinsonandPatrick Hodoul c687558efd Website build process minor readme updates (#1331)
* Adds minification to website build process

Signed-off-by: Henry Wilkinson <henry@wilkinson.graphics>

* Updates YouTube reel with new link

Matches website update

Signed-off-by: Henry Wilkinson <henry@wilkinson.graphics>

Co-authored-by: Patrick Hodoul <patrick.hodoul@autodesk.com>
2021-03-26 18:18:43 -04:00
Brendan BollesandPatrick Hodoul 0021372b4d Update After Effects and Photoshop plug-ins (#1303)
* Update AE plug-in

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

* Update AE Xcode projects

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

* Update Photoshop plug-in

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

* Update Photoshop Xcode project

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

* Update Visual Studio projects

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

* Update OpenColorABI.h

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

* Fail if glew not downloaded

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

* Renamed functions

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

* Update Xcode project

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

* Function name changes

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

* Update Visual Studio project

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

* Sort config menu

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

* Sort Photoshop config menu

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

* Toss old include

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

* Grow menus

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

* Extra semicolon

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

* Categories on Mac

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

* Encodings menu on Mac

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

* Update OpenGL calls

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

* Categories on Mac

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

* Encodings menu on Mac

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

* Add separator better

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

* ADD_EXTRA_BUILTINS in Xcode

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

* Device, Transform -> Display, View

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

* ADD_EXTRA_BUILTINS in VC

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

* Categories and Encodings on Win

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

* Photoshop plug-in bugs

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

* Get rid of Class retrieval

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

* Family Separator assert

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

* Stop using OPTIMIZATION_LOSSLESS in Photoshop plug-in

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

* Switch to AE 2020 SDK in Xcode

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

* Improve sequence data calls for multi-frame rendering

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

* Xcode 12 projects

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

* Xcode 12 Photoshop changes

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

* Fox Globals allocation

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

* Update to latest SDKs on Win

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

* Rejigger sequence data and external dependency handling

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

* Exception safety

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

* Need a mutex for GPU rendering

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

* Forgot to return

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

* Whoops, wasn't setting default ArbData

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

* Reserve some seq_data bytes for alignment

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

Co-authored-by: Patrick Hodoul <patrick.hodoul@autodesk.com>
2021-03-22 19:10:26 -04:00
Neil Wilson 7b0adabf9d added cineSync to supported applications (#1349)
* added cinesync to supported applications

Signed-off-by: Neil Wilson <neilw@cinesync.com>

* Changed cinSyncs position so the list is still alphabetical

Signed-off-by: Neil Wilson <neilw@cinesync.com>
2021-03-22 17:32:08 -04:00
Mei ChuandPatrick Hodoul c4a4b2bcd6 Update Lut1DTransformTest and Lut3DTransformTest (#1328)
* Update Lut1DTransformTest and Lut3DTransformTest
- Conform those tests with TransformsBaseTest.

Signed-off-by: Mei Chu <meimchu@gmail.com>

* -Lut3DTransformTest python bug fix.

Signed-off-by: Mei Chu <meimchu@gmail.com>

* - Adding Bernard Lefebvre to the COMMITTERS page!

Signed-off-by: Mei Chu <meimchu@gmail.com>

* - Fixed due to misunderstanding.

Signed-off-by: Mei Chu <meimchu@gmail.com>

Co-authored-by: Patrick Hodoul <patrick.hodoul@autodesk.com>
2021-03-18 10:11:36 -04:00
Brendan Bolles 9fc12b178d Mention Photoshop plug-in and fix links (#1335)
Signed-off-by: Brendan Bolles <brendan@fnordware.com>
2021-03-15 22:44:11 -04:00
9b23e96237 Topics seperated into paragraphs (#1329)
Signed-off-by: kanak gautam <kanakgautam5@gmail.com>

Co-authored-by: Michael Dolan <michdolan@gmail.com>
Co-authored-by: doug-walker <43830961+doug-walker@users.noreply.github.com>
2021-03-02 22:11:10 -05:00
Patrick Hodoulanddoug-walker 0d04b512f6 Adsk Contrib - Fix some GLSL version mismatches. (#1306)
* Adsk Contrib - Fix GLSL version on MacOS

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

* Missed a change

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

Co-authored-by: doug-walker <43830961+doug-walker@users.noreply.github.com>
2021-03-02 21:37:40 -05:00
Henry WilkinsonandMichael Dolan 94ca1fc2f0 Update OCIO Website documentation Readme.md (#1300)
* Update OCIO Website documentation Readme.md

Adds commands in nice boxes with syntax highlighting, better Markdown formatting, and clearer steps for building the OCIO homepage.

Updates based on @carolalynn22 suggestions

Implements above suggestions!  Good ideas :)

Signed-off-by: Henry Wilkinson <henry@wilkinson.graphics>

* Fixes typo

Oops!

Signed-off-by: Henry Wilkinson <henry@wilkinson.graphics>

Co-authored-by: Michael Dolan <michdolan@gmail.com>
2021-03-02 20:31:35 -05:00
Patrick HodoulandMichael Dolan 543bec7a15 Adsk Contrib - Various build fixes (#1324)
* Adsk Contrib - tests/cpu/CMakeLists.txt Fix

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

Quick fix to include a missing unit test.

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

* Update OpenColorAppHelpers.h

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

Co-authored-by: Michael Dolan <michdolan@gmail.com>
2021-02-25 18:42:39 -05:00
Henry WilkinsonandPatrick Hodoul 8714f81a96 Fixes website overflow on mobile (#1299)
- Fixes overflow of hero logo
- Fixes overflow of video

Both of these caused a scroll bar to appear that went beyond the page content and now they do not!

Signed-off-by: Henry Wilkinson <henry@wilkinson.graphics>

Co-authored-by: Patrick Hodoul <patrick.hodoul@autodesk.com>
2021-02-25 13:34:22 -05:00
kanakgautam 803d71ac76 Minor Typo Fix (#1320)
Signed-off-by: kanak gautam <kanakgautam5@gmail.com>
2021-02-22 23:15:25 -05:00
Carol Payne a10ce91d0a GSoC 2021 Project Ideas (#1316)
* TSC Notes for 021521

Signed-off-by: Carol Payne <carolp@netflix.com>

* TSC Notes 021521 update

Signed-off-by: Carol Payne <carolp@netflix.com>

* GSoC 2021 Project Ideas

Signed-off-by: Carol Payne <carolp@netflix.com>

* GSoC 2021 Project Ideas - fix

Signed-off-by: Carol Payne <carolp@netflix.com>

* GSoC 2021 - adressing comments

Signed-off-by: Carol Payne <carolp@netflix.com>

* GSoC 2021 - blank line

Signed-off-by: Carol Payne <carolp@netflix.com>
2021-02-19 00:07:33 -05:00
Mei ChuandPatrick Hodoul 99c5f40af4 Created a TransformsBaseTest module. (#1288)
* Created a TransformsBaseTest module.
Moving some unit testing of Transforms module to a base class.

Signed-off-by: Mei Chu <meimchu@gmail.com>

* Updated four transforms tests to use TransformsBaseTest.
- AllocationTransformTest
- BuiltinTranformTest
- CDLTransformTest
- ColorSpaceTransformTest
Updated to add a space at the end of TransformBaseTest per feedback.

Signed-off-by: Mei Chu <meimchu@gmail.com>

* Updated four transforms tests to use TransformsBaseTest.
- DisplayViewTransformTest
- ExponentTransformTest
- ExponentWithLinearTransformTest
- ExposureContrastTransformTest
- FileTransformTest
- FixedFunctionTransformTest
- LogTransformTest
- LookTransformTest

Signed-off-by: Mei Chu <meimchu@gmail.com>

* Address feedback https://github.com/AcademySoftwareFoundation/OpenColorIO/pull/1288#discussion_r565265034

Signed-off-by: Mei Chu <meimchu@gmail.com>

* Updated a few transforms unit tests with TransformsBaseTest.

Signed-off-by: Mei Chu <meimchu@gmail.com>

* Updated to prioritize setUp methods first in individual python unit tests.

Signed-off-by: Mei Chu <meimchu@gmail.com>

Co-authored-by: Patrick Hodoul <patrick.hodoul@autodesk.com>
2021-02-17 14:50:47 -05:00
Bernard LefebvreandPatrick Hodoul 9503777690 More LUT python tests (#1293)
Signed-off-by: Bernard Lefebvre <bernard.lefebvre@autodesk.com>

Co-authored-by: Patrick Hodoul <patrick.hodoul@autodesk.com>
2021-02-17 13:22:16 -05:00
Michael Dolan d5de710128 Add TSC meeting notes for 02-08-2021 (#1305)
Signed-off-by: Michael Dolan <michdolan@gmail.com>
2021-02-15 18:05:40 -05:00
doug-walkerandPatrick Hodoul 775f611bbe Adjust docs for v2 release (#1295)
* Adjust docs for v2 release

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

* Remove alias wording, reverse frozen docs

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

* Describe more new features

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

* Add demo config

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

Co-authored-by: Patrick Hodoul <patrick.hodoul@autodesk.com>
2021-02-04 16:05:00 -05:00
Michael Dolan 6ce333f443 Add config wg meeting notes for 01-19-2021 (#1273)
* Add config wg meeting notes for 01-19-2021

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

* Corrections from review

Signed-off-by: Michael Dolan <michdolan@gmail.com>
2021-01-31 16:23:31 -05:00
Michael DolanandPatrick Hodoul 0d4dba07b8 Add TSC meeting notes for 01-18-2021 (#1269)
* Add TSC meeting notes for 01-18-2021

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

* Update Sean Cooper's company

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

Co-authored-by: Patrick Hodoul <patrick.hodoul@autodesk.com>
2021-01-31 13:28:15 -05:00
Bernard Lefebvre bc88857f48 Fix applyRGB (#1291)
Copy config name

Signed-off-by: Bernard Lefebvre <bernard.lefebvre@autodesk.com>
2021-01-26 17:58:22 -05:00
Bernard Lefebvre 87f09ecad5 Test forgot to declare logger and fails if numpy is missing (#1290)
Signed-off-by: Bernard Lefebvre <bernard.lefebvre@autodesk.com>
2021-01-26 17:11:43 -05:00
Bernard Lefebvreanddoug-walker 6d46d8468a Release v2 (#1279)
Signed-off-by: Bernard Lefebvre <bernard.lefebvre@autodesk.com>

Co-authored-by: doug-walker <43830961+doug-walker@users.noreply.github.com>
2021-01-25 11:07:14 -05:00
doug-walker 83392109b6 Adsk Contrib - Add new ACES builtin transforms (#1281)
* Add new builtin transforms

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

* Add more transforms

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

* Adjust builtin naming

Signed-off-by: Doug Walker <Doug.Walker@autodesk.com>
2021-01-25 11:03:01 -05:00
Michael Dolan 73be29a4ba Add UNIFORM_FLOAT3, setStrictParsingEnabled to PyOpenColorIO (#1280)
Signed-off-by: Michael Dolan <michdolan@gmail.com>
2021-01-24 13:45:06 -05:00
Michael Dolan 081b8de4d2 Restructure PyOpenColorIO, complete PyGpuShaderDesc (#1275)
* Restructure Python bindings, Complete PyGpuShaderDesc

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

* Update frozen docs

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

* Hide PySystemMonitors symbols

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

* Fix Python 2 CI failure

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

* Remove extra sys import

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

* Fix issue 1278, GroupTransform docs

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

* Update GroupTransform frozen docs

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

* Clean up PyGroupTransform class

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

* Update PyGroupTransform.write, PyConfig.__repr__

Signed-off-by: Michael Dolan <michdolan@gmail.com>
2021-01-22 15:20:49 -05:00
Bernard Lefebvreanddoug-walker 574ccd856e Adsk Contrib - More python tests and bindings fixes (#1274)
* More python tests and fixes:
- re-add commented tests.
- add new tests for FileRules.
- Fix issues outlined by tests.

Signed-off-by: Bernard Lefebvre <bernard.lefebvre@autodesk.com>

* Adjust baker test to account for small differences

Signed-off-by: Bernard Lefebvre <bernard.lefebvre@autodesk.com>

* Forgot to remove the complete string test

Signed-off-by: Bernard Lefebvre <bernard.lefebvre@autodesk.com>

* GroupTranform::write(), new enums, Lut1DTransform python tests

Signed-off-by: Bernard Lefebvre <bernard.lefebvre@autodesk.com>

* Forgot files

Signed-off-by: Bernard Lefebvre <bernard.lefebvre@autodesk.com>

Co-authored-by: doug-walker <43830961+doug-walker@users.noreply.github.com>
2021-01-22 12:10:17 -05:00
Bernard Lefebvreanddoug-walker 50e5d8b37d Adsk Contrib - Avoid NaN values in certain Lut1D arrays (#1272)
* Avoid NaN values in certain Lut1D arrays

Signed-off-by: Bernard Lefebvre <bernard.lefebvre@autodesk.com>

* Make sure isnan is defined

Signed-off-by: Bernard Lefebvre <bernard.lefebvre@autodesk.com>

Co-authored-by: doug-walker <43830961+doug-walker@users.noreply.github.com>
2021-01-22 11:17:31 -05:00
Frankie Eder c324ba5438 Transform Python Binding Fix (#1277)
* Fixed Python bindings Transforms polymorphism issue.

Signed-off-by: Frankie Eder <frankaeder@gmail.com>

* Added tests to catch future Transform polymorphism issues in Python bindings.

Signed-off-by: Frankie Eder <frankaeder@gmail.com>

* Updated tests to include default args.

Signed-off-by: Frankie Eder <frankaeder@gmail.com>
2021-01-21 21:45:24 -05:00
Michael DolanandPatrick Hodoul 8774ebf739 Use OIIO-provided CMake find module (#1266)
Signed-off-by: Michael Dolan <michdolan@gmail.com>

Co-authored-by: Patrick Hodoul <patrick.hodoul@autodesk.com>
2021-01-21 08:34:46 -05:00
Bernard LefebvreandPatrick Hodoul d51962acf0 Fix issue #1262 (#1271)
Signed-off-by: Bernard Lefebvre <bernard.lefebvre@autodesk.com>

Co-authored-by: Patrick Hodoul <patrick.hodoul@autodesk.com>
2021-01-21 07:24:05 -05:00
Bernard LefebvreandPatrick Hodoul c033d11ee3 Adsk Contrib - Python repr and LogCameraTransform fixes (#1270)
* Fix issues 1255 & 1256

Signed-off-by: Bernard Lefebvre <bernard.lefebvre@autodesk.com>

* Revert unwanted rst changes

Signed-off-by: Bernard Lefebvre <bernard.lefebvre@autodesk.com>

Co-authored-by: Patrick Hodoul <patrick.hodoul@autodesk.com>
2021-01-20 22:07:54 -05:00
Bernard LefebvreandPatrick Hodoul 8cf0211c3f Add roles to API and fixes (#1267)
Signed-off-by: Bernard Lefebvre <bernard.lefebvre@autodesk.com>

Co-authored-by: Patrick Hodoul <patrick.hodoul@autodesk.com>
2021-01-20 20:23:20 -05:00
Bernard Lefebvre 7110425732 Adsk Contrib - Shader textures now available via Python (#1268)
* Issue 1263

Signed-off-by: Bernard Lefebvre <bernard.lefebvre@autodesk.com>

* Update python frozen rst file.

Signed-off-by: Bernard Lefebvre <bernard.lefebvre@autodesk.com>

* Fix python test

Signed-off-by: Bernard Lefebvre <bernard.lefebvre@autodesk.com>

* Adjust python test

Signed-off-by: Bernard Lefebvre <bernard.lefebvre@autodesk.com>
2021-01-20 12:26:00 -05:00
1487 changed files with 534939 additions and 118314 deletions
+20
View File
@@ -0,0 +1,20 @@
# SPDX-License-Identifier: BSD-3-Clause
# Copyright Contributors to the OpenColorIO Project.
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "monthly"
# Only do security updates rather than all version updates.
open-pull-requests-limit: 0
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "monthly"
# Only do security updates rather than all version updates.
open-pull-requests-limit: 0
+21 -139
View File
@@ -7,167 +7,49 @@
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, 5, 6]
include:
# -------------------------------------------------------------------
# GCC, VFX CY2020
# -------------------------------------------------------------------
# C++11, Python 3.7
- build: 1
build-docs: 'ON'
cxx-standard: 11
cxx-compiler: g++
cc-compiler: gcc
compiler-desc: GCC 6.3.1
vfx-cy: 2020
# C++14
- build: 2
build-docs: 'OFF'
cxx-standard: 14
cxx-compiler: g++
cc-compiler: gcc
compiler-desc: GCC 6.3.1
vfx-cy: 2020
# -------------------------------------------------------------------
# GCC, VFX CY2019
# -------------------------------------------------------------------
# Python 2.7
- build: 3
# Doc build requires Python 3
build-docs: 'OFF'
cxx-standard: 11
cxx-compiler: g++
cc-compiler: gcc
compiler-desc: GCC 6.3.1
vfx-cy: 2019
# -------------------------------------------------------------------
# Clang, VFX CY2020
# -------------------------------------------------------------------
# C++11, Python 3.7
- build: 4
build-docs: 'OFF'
cxx-standard: 11
cxx-compiler: clang++
cc-compiler: clang
compiler-desc: Clang 7
vfx-cy: 2020
# C++14
- build: 5
build-docs: 'OFF'
cxx-standard: 14
cxx-compiler: clang++
cc-compiler: clang
compiler-desc: Clang 7
vfx-cy: 2020
# -------------------------------------------------------------------
# Clang, VFX CY2019
# -------------------------------------------------------------------
# Python 2.7
- build: 6
# Doc build requires Python 3
build-docs: 'OFF'
cxx-standard: 11
cxx-compiler: clang++
cc-compiler: clang
compiler-desc: Clang 7
vfx-cy: 2019
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_oiio.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_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 VFX CY2023 SonarCloud'
# Don't run on OCIO forks
if: github.repository == 'AcademySoftwareFoundation/OpenColorIO'
# GH-hosted VM. The build runs in CentOS 7 'container' defined below.
# GH-hosted VM. The build runs in ASWF '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-ocio:2020
image: aswf/ci-ocio:2023
env:
CXX: g++
CC: gcc
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
fetch-depth: 50
- name: Install build-wrapper
uses: SonarSource/sonarqube-scan-action/install-build-wrapper@59db25f34e16620e48ab4bb9e4a5dce155cb5432 # v8.0.0
- name: Install docs env
run: share/ci/scripts/linux/yum/install_docs_env.sh
run: share/ci/scripts/linux/dnf/install_docs_env.sh
- name: Install tests env
run: share/ci/scripts/linux/yum/install_tests_env.sh
run: share/ci/scripts/linux/dnf/install_tests_env.sh
- name: Create build directories
run: |
mkdir _install
@@ -177,7 +59,7 @@ jobs:
cmake ../. \
-DCMAKE_INSTALL_PREFIX=../_install \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_STANDARD=11 \
-DCMAKE_CXX_STANDARD=17 \
-DCMAKE_CXX_FLAGS="-g -O0 -fprofile-arcs -ftest-coverage" \
-DCMAKE_CXX_OUTPUT_EXTENSION_REPLACE=ON \
-DCMAKE_EXE_LINKER_FLAGS="-lgcov" \
@@ -191,12 +73,12 @@ 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
- name: Run sonar-scanner
uses: SonarSource/sonarqube-scan-action@59db25f34e16620e48ab4bb9e4a5dce155cb5432 # v8.0.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
run: sonar-scanner -X -Dsonar.login=$SONAR_TOKEN
+493 -267
View File
@@ -40,205 +40,219 @@ jobs:
# ---------------------------------------------------------------------------
linux:
name: 'Linux CentOS 7 VFX CY${{ matrix.vfx-cy }}
name: 'Linux VFX CY${{ matrix.vfx-cy }}
<${{ 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 }}>'
# GH-hosted VM. The build runs in CentOS 7 'container' defined below.
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 ASWF '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-ocio:${{ matrix.vfx-cy }}
image: aswf/ci-ocio:${{ matrix.container-tag || matrix.vfx-cy }}
strategy:
fail-fast: false
matrix:
build: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
include:
# -------------------------------------------------------------------
# VFX CY2021
# VFX CY2026 (Python 3.13)
# -------------------------------------------------------------------
- build: 12
build-type: Debug
build-shared: 'ON'
build-docs: 'OFF'
build-gpu: 'OFF'
use-headless: 'OFF'
use-sse: 'OFF'
cxx-standard: 17
build-openfx: 'ON'
use-simd: 'ON'
use-oiio: 'ON'
aswf-ocio-version: 2.5.2
cxx-standard: 20
cxx-compiler: clang++
cc-compiler: clang
compiler-desc: Clang 9
vfx-cy: 2021
compiler-desc: Clang
vfx-cy: 2026
install-ext-packages: MISSING
- build: 11
build-type: Release
build-shared: 'ON'
build-docs: 'OFF'
build-gpu: 'OFF'
use-headless: 'OFF'
use-sse: '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
# -------------------------------------------------------------------
# GCC, VFX CY2020
# -------------------------------------------------------------------
# C++11, Python 3.7
compiler-desc: GCC
vfx-cy: 2026
install-ext-packages: ALL
- build: 10
build-type: Release
build-shared: 'ON'
build-docs: 'ON'
build-gpu: 'OFF'
use-headless: 'OFF'
use-sse: 'ON'
cxx-standard: 11
build-shared: 'OFF'
build-docs: 'OFF'
build-openfx: 'OFF'
use-simd: 'ON'
use-oiio: 'OFF'
cxx-standard: 17
cxx-compiler: g++
cc-compiler: gcc
compiler-desc: GCC 6.3.1
vfx-cy: 2020
# Debug
compiler-desc: GCC
vfx-cy: 2026
install-ext-packages: ALL
# -------------------------------------------------------------------
# VFX CY2025 (Python 3.11)
# -------------------------------------------------------------------
- build: 9
build-type: Debug
build-shared: 'ON'
build-docs: 'OFF'
build-gpu: 'OFF'
use-headless: 'OFF'
use-sse: 'ON'
cxx-standard: 11
cxx-compiler: g++
cc-compiler: gcc
compiler-desc: GCC 6.3.1
vfx-cy: 2020
# C++14
build-openfx: 'ON'
use-simd: 'ON'
use-oiio: 'ON'
aswf-ocio-version: 2.4.2
cxx-standard: 20
cxx-compiler: clang++
cc-compiler: clang
compiler-desc: Clang
vfx-cy: 2025
install-ext-packages: MISSING
- build: 8
build-type: Release
build-shared: 'ON'
build-docs: 'OFF'
build-gpu: 'OFF'
use-headless: 'OFF'
use-sse: 'ON'
cxx-standard: 14
build-docs: 'ON'
build-openfx: 'ON'
use-simd: 'OFF'
use-oiio: 'OFF'
cxx-standard: 17
cxx-compiler: g++
cc-compiler: gcc
compiler-desc: GCC 6.3.1
vfx-cy: 2020
# Static, no SSE
compiler-desc: GCC
vfx-cy: 2025
install-ext-packages: ALL
- build: 7
build-type: Release
build-shared: 'OFF'
build-docs: 'OFF'
build-gpu: 'OFF'
use-headless: 'OFF'
use-sse: 'OFF'
cxx-standard: 11
build-openfx: 'OFF'
use-simd: 'ON'
use-oiio: 'OFF'
cxx-standard: 17
cxx-compiler: g++
cc-compiler: gcc
compiler-desc: GCC 6.3.1
vfx-cy: 2020
compiler-desc: GCC
vfx-cy: 2025
install-ext-packages: ALL
# -------------------------------------------------------------------
# GCC, VFX CY2019
# VFX CY2024 (Python 3.11)
# -------------------------------------------------------------------
# Python 2.7
- build: 6
build-type: Release
build-type: Debug
build-shared: 'ON'
# Doc build requires Python 3
build-docs: 'OFF'
build-gpu: 'OFF'
use-headless: 'OFF'
use-sse: 'ON'
cxx-standard: 11
cxx-compiler: g++
cc-compiler: gcc
compiler-desc: GCC 6.3.1
vfx-cy: 2019
# -------------------------------------------------------------------
# Clang, VFX CY2020
# -------------------------------------------------------------------
# C++11, Python 3.7
build-openfx: 'ON'
use-simd: 'ON'
use-oiio: 'ON'
aswf-ocio-version: 2.3.2
cxx-standard: 20
cxx-compiler: clang++
cc-compiler: clang
compiler-desc: Clang
vfx-cy: 2024
install-ext-packages: MISSING
- build: 5
build-type: Release
build-shared: 'ON'
build-docs: 'ON'
build-gpu: 'OFF'
use-headless: 'OFF'
use-sse: 'ON'
cxx-standard: 11
cxx-compiler: clang++
cc-compiler: clang
compiler-desc: Clang 7
vfx-cy: 2020
# Debug
build-openfx: 'ON'
use-simd: 'OFF'
use-oiio: 'OFF'
cxx-standard: 17
cxx-compiler: g++
cc-compiler: gcc
compiler-desc: GCC
vfx-cy: 2024
install-ext-packages: ALL
- build: 4
build-type: Debug
build-shared: 'ON'
build-docs: 'OFF'
build-gpu: 'OFF'
build-headless: 'OFF'
use-sse: 'ON'
cxx-standard: 11
cxx-compiler: clang++
cc-compiler: clang
compiler-desc: Clang 7
vfx-cy: 2020
# C++14
- build: 3
build-type: Release
build-shared: 'ON'
build-docs: 'OFF'
build-gpu: 'OFF'
use-headless: 'OFF'
use-sse: 'ON'
cxx-standard: 14
cxx-compiler: clang++
cc-compiler: clang
compiler-desc: Clang 7
vfx-cy: 2020
# Static, no SSE
- build: 2
build-type: Release
build-shared: 'OFF'
build-docs: 'OFF'
build-gpu: 'OFF'
use-headless: 'OFF'
use-sse: 'OFF'
cxx-standard: 11
build-openfx: 'OFF'
use-simd: 'ON'
use-oiio: 'OFF'
cxx-standard: 17
cxx-compiler: g++
cc-compiler: gcc
compiler-desc: GCC
vfx-cy: 2024
install-ext-packages: ALL
# -------------------------------------------------------------------
# VFX CY2023 (Python 3.10)
# -------------------------------------------------------------------
- build: 3
build-type: Debug
build-shared: 'ON'
build-docs: 'OFF'
build-openfx: 'ON'
use-simd: 'ON'
use-oiio: 'ON'
aswf-ocio-version: 2.2.1
cxx-standard: 20
cxx-compiler: clang++
cc-compiler: clang
compiler-desc: Clang 7
vfx-cy: 2020
# -------------------------------------------------------------------
# Clang, VFX CY2019
# -------------------------------------------------------------------
# Python 2.7
- build: 1
compiler-desc: Clang
vfx-cy: 2023
install-ext-packages: MISSING
- build: 2
build-type: Release
build-shared: 'ON'
# Doc build requires Python 3
build-docs: 'ON'
build-openfx: 'ON'
use-simd: 'OFF'
use-oiio: 'OFF'
cxx-standard: 17
cxx-compiler: g++
cc-compiler: gcc
compiler-desc: GCC
vfx-cy: 2023
install-ext-packages: ALL
- build: 1
build-type: Release
build-shared: 'OFF'
build-docs: 'OFF'
build-gpu: 'OFF'
use-headless: 'OFF'
use-sse: 'ON'
cxx-standard: 11
cxx-compiler: clang++
cc-compiler: clang
compiler-desc: Clang 7
vfx-cy: 2019
build-openfx: 'OFF'
use-simd: 'ON'
use-oiio: 'OFF'
cxx-standard: 17
cxx-compiler: g++
cc-compiler: gcc
compiler-desc: GCC
vfx-cy: 2023
install-ext-packages: ALL
env:
CXX: ${{ matrix.cxx-compiler }}
CC: ${{ matrix.cc-compiler }}
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Install docs env
run: share/ci/scripts/linux/yum/install_docs_env.sh
run: share/ci/scripts/linux/dnf/install_docs_env.sh
if: matrix.build-docs == 'ON'
- name: Install tests env
run: share/ci/scripts/linux/yum/install_tests_env.sh
run: share/ci/scripts/linux/dnf/install_tests_env.sh
- name: Install ASWF OpenColorIO for OpenImageIO
# The container's prebuilt OpenImageIO is linked against a specific
# OpenColorIO release that the container does not ship (it's built
# from source here instead). Fetch that release from the ASWF Conan
# remote so OpenImageIO's dependency resolves at link/run time.
if: matrix.use-oiio == 'ON'
run: share/ci/scripts/linux/dnf/install_aswf_opencolorio.sh ${{ matrix.aswf-ocio-version }} ${{ matrix.vfx-cy }}
- name: Create build directories
run: |
mkdir _install
@@ -251,10 +265,11 @@ jobs:
-DCMAKE_CXX_STANDARD=${{ matrix.cxx-standard }} \
-DBUILD_SHARED_LIBS=${{ matrix.build-shared }} \
-DOCIO_BUILD_DOCS=${{ matrix.build-docs }} \
-DOCIO_BUILD_GPU_TESTS=${{ matrix.build-gpu }} \
-DOCIO_USE_HEADLESS=${{ matrix.use-headless }} \
-DOCIO_USE_SSE=${{ matrix.use-sse }} \
-DOCIO_INSTALL_EXT_PACKAGES=ALL \
-DOCIO_BUILD_OPENFX=${{ matrix.build-openfx }} \
-DOCIO_BUILD_GPU_TESTS=OFF \
-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
@@ -264,98 +279,101 @@ 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 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.8.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 Intel
# ---------------------------------------------------------------------------
macos:
name: 'macOS 10.15
<AppleClang 11.0
name: 'macOS 15 intel
<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-15-intel
strategy:
matrix:
build: [1, 2, 3, 4, 5, 6]
build: [3, 4]
include:
# C++17
- build: 6
build-type: Release
build-shared: 'ON'
build-docs: 'OFF'
build-gpu: 'OFF'
use-headless: 'OFF'
use-sse: 'ON'
cxx-standard: 17
python-version: 3.7
# Static, no SSE
# C++11, Python 3.7
- build: 5
build-type: Release
build-shared: 'ON'
build-docs: 'ON'
build-gpu: 'OFF'
use-headless: 'OFF'
use-sse: 'ON'
cxx-standard: 11
python-version: 3.7
# Debug
- build: 4
build-type: Debug
arch-type: "x86_64;arm64"
build-type: Release
build-shared: 'ON'
build-docs: 'OFF'
build-gpu: 'OFF'
use-headless: 'OFF'
use-sse: 'ON'
cxx-standard: 11
python-version: 3.7
# C++14
build-openfx: 'OFF'
use-simd: 'ON'
use-oiio: 'OFF'
cxx-standard: 20
python-version: '3.12'
- build: 3
build-type: Release
build-shared: 'ON'
build-docs: 'OFF'
build-gpu: 'OFF'
use-headless: 'OFF'
use-sse: 'ON'
cxx-standard: 14
python-version: 3.7
# Static, no SSE
- build: 2
build-type: Release
arch-type: "x86_64"
build-type: Debug
build-shared: 'OFF'
build-docs: 'OFF'
build-gpu: 'OFF'
use-headless: 'OFF'
use-sse: '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-gpu: 'OFF'
use-headless: 'OFF'
use-sse: 'ON'
cxx-standard: 11
python-version: 2.7
build-openfx: 'ON'
use-simd: 'OFF'
use-oiio: 'OFF'
cxx-standard: 17
python-version: '3.10'
steps:
- name: Setup Python
uses: actions/setup-python@v1
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: ${{ matrix.python-version }}
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Install docs env
run: share/ci/scripts/macos/install_docs_env.sh
if: matrix.build-docs == 'ON'
@@ -373,12 +391,14 @@ jobs:
-DCMAKE_CXX_STANDARD=${{ matrix.cxx-standard }} \
-DBUILD_SHARED_LIBS=${{ matrix.build-shared }} \
-DOCIO_BUILD_DOCS=${{ matrix.build-docs }} \
-DOCIO_BUILD_GPU_TESTS=${{ matrix.build-gpu }} \
-DOCIO_USE_HEADLESS=${{ matrix.use-headless }} \
-DOCIO_USE_SSE=${{ matrix.use-sse }} \
-DOCIO_BUILD_OPENFX=${{ matrix.build-openfx }} \
-DOCIO_BUILD_GPU_TESTS=OFF \
-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: |
@@ -386,105 +406,267 @@ 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 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.8.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 Arm
# ---------------------------------------------------------------------------
macos-arm:
name: 'macOS 14 arm
<AppleClang
arch=${{ matrix.arch-type }},
config=${{ matrix.build-type }},
shared=${{ matrix.build-shared }},
simd=${{ matrix.use-simd }},
cxx=${{ matrix.cxx-standard }},
python=${{ matrix.python-version }},
docs=${{ matrix.build-docs }},
oiio=${{ matrix.use-oiio}}>'
runs-on: macos-14
strategy:
matrix:
build: [1, 2]
include:
- build: 1
arch-type: "arm64"
test-rosetta: "OFF"
build-type: Release
build-shared: 'ON'
build-docs: 'ON'
build-openfx: 'OFF'
use-simd: 'ON'
use-oiio: 'ON'
cxx-standard: 20
python-version: '3.13'
- build: 2
arch-type: "x86_64;arm64"
test-rosetta: "ON"
build-type: Release
build-shared: 'ON'
build-docs: 'OFF'
build-openfx: 'OFF'
use-simd: 'ON'
use-oiio: 'OFF'
cxx-standard: 17
python-version: '3.12'
steps:
- name: Setup Python
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: ${{ matrix.python-version }}
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- 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: Install OIIO
if: matrix.use-oiio == 'ON'
run: time share/ci/scripts/macos/install_oiio.sh
- name: Create build directories
run: |
mkdir _install
mkdir _build
- name: Configure
run: |
OIIO_CMAKE_ARGS=()
if [ "${{ matrix.use-oiio }}" = "ON" ]; then
OIIO_CMAKE_ARGS+=(-DOpenImageIO_ROOT=$(brew --prefix openimageio))
fi
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=${{ matrix.build-docs }} \
-DOCIO_BUILD_OPENFX=${{ matrix.build-openfx }} \
-DOCIO_BUILD_GPU_TESTS=OFF \
-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) \
-DCMAKE_OSX_ARCHITECTURES="${{ matrix.arch-type }}" \
"${OIIO_CMAKE_ARGS[@]}"
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 Rosetta
if: matrix.test-rosetta == 'ON'
run: |
/usr/bin/arch -x86_64 /bin/zsh -c "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.8.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
# ---------------------------------------------------------------------------
# TODO: Install pythonXX_d.lib (or work around it being needed) to support
# Debug build testing with Python bindings and docs enabled.
windows:
name: 'Windows 2019
<MSVC 16.4
name: 'Windows 2022
<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 }}>'
runs-on: windows-2019
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-2022
strategy:
matrix:
build: [1, 2, 3, 4, 5, 6]
build: [1, 2, 3, 4]
include:
# C++17
- build: 6
- build: 4
build-type: Release
build-shared: 'ON'
build-docs: 'OFF'
build-gpu: 'OFF'
use-headless: 'OFF'
use-sse: 'ON'
cxx-standard: 17
python-version: 3.7
# C++11, Python 3.7
- build: 5
build-openfx: 'ON'
use-simd: 'OFF'
# NB: OIIO is not currently set up for Windows CI builds
use-oiio: 'OFF'
cxx-standard: 20
python-version: '3.13'
- build: 3
build-type: Release
build-shared: 'ON'
build-shared: 'OFF'
build-docs: 'ON'
build-gpu: 'OFF'
use-headless: 'OFF'
use-sse: 'ON'
cxx-standard: 11
python-version: 3.7
# Debug
- build: 4
build-openfx: 'OFF'
use-simd: 'ON'
use-oiio: 'OFF'
cxx-standard: 17
python-version: '3.12'
- build: 2
build-type: Debug
build-shared: 'ON'
build-docs: 'OFF'
build-gpu: 'OFF'
use-headless: 'OFF'
use-sse: 'ON'
cxx-standard: 11
python-version: 3.7
# C++14
- build: 3
build-type: Release
build-shared: 'ON'
build-docs: 'OFF'
build-gpu: 'OFF'
use-headless: 'OFF'
use-sse: 'ON'
cxx-standard: 14
python-version: 3.7
# Static, no SSE
- build: 2
build-type: Release
build-shared: 'OFF'
build-docs: 'OFF'
build-gpu: 'OFF'
use-headless: 'OFF'
use-sse: 'OFF'
cxx-standard: 11
python-version: 3.7
# Python 2.7
build-openfx: 'OFF'
use-simd: 'ON'
use-oiio: 'OFF'
cxx-standard: 17
python-version: '3.11'
# C++14, OpenEXR, OpenFX
- build: 1
build-type: Release
build-shared: 'ON'
# Doc build requires Python 3
build-docs: 'OFF'
build-gpu: 'OFF'
use-headless: 'OFF'
use-sse: 'ON'
cxx-standard: 11
python-version: 2.7
build-openfx: 'ON'
use-simd: 'ON'
use-oiio: 'OFF'
cxx-standard: 17
python-version: '3.10'
steps:
- name: Setup Python
uses: actions/setup-python@v1
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: ${{ matrix.python-version }}
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- 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
@@ -499,9 +681,10 @@ jobs:
-DCMAKE_GENERATOR_PLATFORM=x64 \
-DBUILD_SHARED_LIBS=${{ matrix.build-shared }} \
-DOCIO_BUILD_DOCS=${{ matrix.build-docs }} \
-DOCIO_BUILD_GPU_TESTS=${{ matrix.build-gpu }} \
-DOCIO_USE_HEADLESS=${{ matrix.use-headless }} \
-DOCIO_USE_SSE=${{ matrix.use-sse }} \
-DOCIO_BUILD_OPENFX=${{ matrix.build-openfx }} \
-DOCIO_BUILD_GPU_TESTS=OFF \
-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)
@@ -512,9 +695,52 @@ 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 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.8.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
+375
View File
@@ -0,0 +1,375 @@
# 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 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 ASWF '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:
fail-fast: false
matrix:
build: [1, 2, 3, 4]
include:
# -------------------------------------------------------------------
# GCC
# -------------------------------------------------------------------
- build: 1
build-docs: 'ON'
build-openfx: 'ON'
cxx-standard: 20
cxx-compiler: g++
cc-compiler: gcc
compiler-desc: GCC
vfx-cy: 2025
- build: 2
build-docs: 'OFF'
build-openfx: 'OFF'
cxx-standard: 17
cxx-compiler: g++
cc-compiler: gcc
compiler-desc: GCC
vfx-cy: 2024
# -------------------------------------------------------------------
# Clang
# -------------------------------------------------------------------
- build: 3
build-docs: 'OFF'
build-openfx: 'OFF'
cxx-standard: 20
cxx-compiler: clang++
cc-compiler: clang
compiler-desc: Clang
vfx-cy: 2025
- build: 4
build-docs: 'ON'
build-openfx: 'ON'
cxx-standard: 17
cxx-compiler: clang++
cc-compiler: clang
compiler-desc: Clang
vfx-cy: 2024
env:
CXX: ${{ matrix.cxx-compiler }}
CC: ${{ matrix.cc-compiler }}
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Install docs env
run: share/ci/scripts/linux/dnf/install_docs_env.sh
if: matrix.build-docs == 'ON'
- name: Install tests env
run: share/ci/scripts/linux/dnf/install_tests_env.sh
- name: Setup ext environment
run: |
EXT_PATH=/usr/local
echo "EXT_PATH=$EXT_PATH" >> $GITHUB_ENV
- 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.7.2 $EXT_PATH
share/ci/scripts/multi/install_lcms2.sh 2.17 $EXT_PATH
share/ci/scripts/multi/install_yaml-cpp.sh 0.8.0 $EXT_PATH
share/ci/scripts/multi/install_pystring.sh 1.1.4 $EXT_PATH
share/ci/scripts/multi/install_pybind11.sh 3.0.1 $EXT_PATH
share/ci/scripts/multi/install_zlib.sh 1.3.1 $EXT_PATH
share/ci/scripts/multi/install_minizip-ng.sh 4.0.10 $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_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)
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
# ASWF ci-base 2025.2 is missing lib64 (2025.1 have it)
export LD_LIBRARY_PATH=/usr/local/lib64:$LD_LIBRARY_PATH
./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: 20
python-version: '3.14'
- build: 2
build-docs: 'ON'
build-openfx: 'ON'
cxx-standard: 17
python-version: '3.10'
steps:
- name: Setup Python
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: ${{ matrix.python-version }}
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- 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=$GITHUB_WORKSPACE/_ext
echo "EXT_PATH=$EXT_PATH" >> $GITHUB_ENV
echo "CMAKE_PREFIX_PATH=$EXT_PATH" >> $GITHUB_ENV
- 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.7.2 $EXT_PATH
share/ci/scripts/multi/install_lcms2.sh 2.17 $EXT_PATH
share/ci/scripts/multi/install_yaml-cpp.sh 0.8.0 $EXT_PATH
share/ci/scripts/multi/install_pystring.sh 1.1.4 $EXT_PATH
share/ci/scripts/multi/install_pybind11.sh 3.0.1 $EXT_PATH
share/ci/scripts/multi/install_zlib.sh 1.3.1 $EXT_PATH
share/ci/scripts/multi/install_minizip-ng.sh 4.0.10 $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_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)
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
export DYLD_LIBRARY_PATH=$EXT_PATH/lib:$DYLD_LIBRARY_PATH
./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: 20
python-version: '3.14'
use-oiio: 'ON'
- build: 2
build-docs: 'ON'
build-openfx: 'ON'
cxx-standard: 17
python-version: '3.10'
use-oiio: 'OFF'
steps:
- name: Setup Python
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: ${{ matrix.python-version }}
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- 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 directx-headers:x64-windows
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.17 $EXT_PATH
share/ci/scripts/multi/install_yaml-cpp.sh 0.8.0 $EXT_PATH
share/ci/scripts/multi/install_pystring.sh 1.1.4 $EXT_PATH
share/ci/scripts/multi/install_pybind11.sh 3.0.1 $EXT_PATH
share/ci/scripts/multi/install_expat.sh 2.7.2 $EXT_PATH
share/ci/scripts/multi/install_zlib.sh 1.3.1 $EXT_PATH
share/ci/scripts/multi/install_minizip-ng.sh 4.0.10 $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_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
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
+85
View File
@@ -0,0 +1,85 @@
# 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: Deploy OCIO Homepage
on:
# Runs on pushes targeting the default branch
push:
branches:
- main
paths:
- 'docs/site/**'
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: "pages"
cancel-in-progress: false
# Default to bash
defaults:
run:
shell: bash
jobs:
# Build job
build:
if: github.repository == 'AcademySoftwareFoundation/OpenColorIO'
runs-on: ubuntu-latest
env:
HUGO_VERSION: 0.128.0
steps:
- name: Install Hugo CLI
run: |
wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb \
&& sudo dpkg -i ${{ runner.temp }}/hugo.deb
- name: Install Dart Sass
run: sudo snap install dart-sass
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
submodules: recursive
- name: Setup Pages
id: pages
uses: actions/configure-pages@45bfe0192ca1faeb007ade9deae92b16b8254a0d # 6.0.0
- name: Install Node.js dependencies
run: "[[ -f package-lock.json || -f npm-shrinkwrap.json ]] && npm ci || true"
- name: Build with Hugo
env:
HUGO_CACHEDIR: ${{ runner.temp }}/hugo_cache
HUGO_ENVIRONMENT: production
run: |
cd docs/site/homepage
hugo -D \
--minify \
--baseURL "${{ steps.pages.outputs.base_url }}/" \
--themesDir ../..
- name: Upload artifact
uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9 # 5.0.0
with:
path: docs/site/homepage/public
# Deployment job
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@cd2ce8fcbc39b97be8ca5fce6e763baed58fa128 # 5.0.0
+3 -2
View File
@@ -33,13 +33,14 @@ 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
image-override: aswf/ci-ocio:2025
+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: 23
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: 23
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: 23
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: 23
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@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Install tests env
run: share/ci/scripts/linux/dnf/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=OFF \
-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.8.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: 23
enable-sanitizer: OFF
python-version: '3.14'
- build: 2
build-python: OFF
build-type: Debug
build-shared: ON
cxx-standard: 23
enable-sanitizer: ON
python-version: '3.10'
steps:
- name: Setup Python
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: ${{ matrix.python-version }}
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- 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=OFF \
-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.8.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.14'
- build: 2
build-python: ON
build-type: Debug
build-shared: ON
cxx-standard: 20
python-version: '3.10'
steps:
- name: Setup Python
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: ${{ matrix.python-version }}
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- 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=OFF \
-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.8.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
+67
View File
@@ -0,0 +1,67 @@
# SPDX-License-Identifier: BSD-3-Clause
# Copyright Contributors to the OpenColorIO Project.
#
# Releases are signed via https://github.com/sigstore/sigstore-python.
# See https://docs.sigstore.dev for information about sigstore.
#
# This action creates a .tar.gz of the complete OpenColorIO source tree at
# the given release tag, signs it via sigstore, and uploads the
# .tar.gz and the associated .tar.gz.sigstore credential bundle.
#
# To verify a downloaded release at a given tag:
#
# % pip install sigstore
# % sigstore verify github --cert-identity https://github.com/AcademySoftwareFoundation/OpenColorIO/.github/workflows/release-sign.yml@refs/tags/<tag> OpenColorIO-<tag>.tar.gz
#
name: Sign Release
on:
release:
types: [published]
permissions:
contents: read
jobs:
release:
name: Sign & upload release artifacts
runs-on: ubuntu-latest
env:
TAG: ${{ github.ref_name }}
permissions:
contents: write
id-token: write
repository-projects: write
steps:
- name: Set Prefix
# The tag name begins with a 'v', e.g. "v2.4.0", but the prefix
# should omit the 'v', so the tarball "OpenColorIO-2.4.0.tar.gz"
# extracts files into "OpenColorIO-2.4.0/...". This matches
# the GitHub release page autogenerated artifact conventions.
run: |
echo OCIO_PREFIX=OpenColorIO-${TAG//v}/ >> $GITHUB_ENV
echo OCIO_TARBALL=OpenColorIO-${TAG//v}.tar.gz >> $GITHUB_ENV
shell: bash
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Create archive
run: git archive --format=tar.gz -o ${OCIO_TARBALL} --prefix ${OCIO_PREFIX} ${TAG}
- name: Sign archive with Sigstore
uses: sigstore/gh-action-sigstore-python@04cffa1d795717b140764e8b640de88853c92acc # v3.3.0
with:
inputs: ${{ env.OCIO_TARBALL }}
upload-signing-artifacts: false
release-signing-artifacts: false
- name: Upload release archive
env:
GH_TOKEN: ${{ github.token }}
run: gh release upload ${TAG} ${OCIO_TARBALL} ${OCIO_TARBALL}.sigstore.json
+390
View File
@@ -0,0 +1,390 @@
# SPDX-License-Identifier: BSD-3-Clause
# Copyright Contributors to the OpenColorIO Project.
#
name: Wheel
on:
push:
# 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.*
- gh-pages
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
# is OK. macOS and Windows jobs need to be locked to specific virtual
# environment versions to mitigate issues from OS updates, and will require
# maintenance as OS versions are retired.
#
# Due to documentation build failing on manylinux2010 (maybe too old doxygen
# version), we build on manylinux2014 image, this requires pip >= 19.3.
# ---------------------------------------------------------------------------
# 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@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Build SDist
run: pipx run build --sdist
- name: Check metadata
run: pipx run twine check dist/*
- uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with:
name: cibw-sdist
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 64 bits manylinux_2_28
# -------------------------------------------------------------------
- build: CPython 3.10 64 bits manylinux_2_28
manylinux: manylinux_2_28
python: cp310-manylinux_x86_64
arch: x86_64
- build: CPython 3.11 64 bits manylinux_2_28
manylinux: manylinux_2_28
python: cp311-manylinux_x86_64
arch: x86_64
- build: CPython 3.12 64 bits manylinux_2_28
manylinux: manylinux_2_28
python: cp312-manylinux_x86_64
arch: x86_64
- build: CPython 3.13 64 bits manylinux_2_28
manylinux: manylinux_2_28
python: cp313-manylinux_x86_64
arch: x86_64
- build: CPython 3.14 64 bits manylinux_2_28
manylinux: manylinux_2_28
python: cp314-manylinux_x86_64
arch: x86_64
# -------------------------------------------------------------------
# CPython 64 bits manylinux2014
# -------------------------------------------------------------------
- build: CPython 3.10 64 bits manylinux2014
manylinux: manylinux2014
python: cp310-manylinux_x86_64
arch: x86_64
- build: CPython 3.11 64 bits manylinux2014
manylinux: manylinux2014
python: cp311-manylinux_x86_64
arch: x86_64
- build: CPython 3.12 64 bits manylinux2014
manylinux: manylinux2014
python: cp312-manylinux_x86_64
arch: x86_64
- build: CPython 3.13 64 bits manylinux2014
manylinux: manylinux2014
python: cp313-manylinux_x86_64
arch: x86_64
- build: CPython 3.14 64 bits manylinux2014
manylinux: manylinux2014
python: cp314-manylinux_x86_64
arch: x86_64
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
name: Install Python
with:
python-version: '3.11'
- name: Build wheels
uses: pypa/cibuildwheel@ee02a1537ce3071a004a6b08c41e72f0fdc42d9a # v3.4.0
env:
CIBW_BUILD: ${{ matrix.python }}
CIBW_ARCHS: ${{ matrix.arch }}
CIBW_MANYLINUX_X86_64_IMAGE: ${{ matrix.manylinux }}
CIBW_BEFORE_BUILD: "pip install sphinx-press-theme"
- uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with:
name: cibw-wheels-${{ matrix.python }}-${{ matrix.manylinux }}
path: ./wheelhouse/*.whl
# ---------------------------------------------------------------------------
# Linux ARM Wheels
# ---------------------------------------------------------------------------
linux-arm:
name: Build wheels on Linux ARM
runs-on: ubuntu-24.04-arm
# Don't run on OCIO forks
if: |
github.event_name != 'schedule' ||
github.repository == 'AcademySoftwareFoundation/OpenColorIO'
strategy:
matrix:
include:
# -------------------------------------------------------------------
# CPython ARM 64 bits manylinux2014
# -------------------------------------------------------------------
- build: CPython 3.10 ARM 64 bits manylinux2014
manylinux: manylinux2014
python: cp310-manylinux_aarch64
arch: aarch64
- build: CPython 3.11 ARM 64 bits manylinux2014
manylinux: manylinux2014
python: cp311-manylinux_aarch64
arch: aarch64
- build: CPython 3.12 ARM 64 bits manylinux2014
manylinux: manylinux2014
python: cp312-manylinux_aarch64
arch: aarch64
- build: CPython 3.13 ARM 64 bits manylinux2014
manylinux: manylinux2014
python: cp313-manylinux_aarch64
arch: aarch64
- build: CPython 3.14 ARM 64 bits manylinux2014
manylinux: manylinux2014
python: cp314-manylinux_aarch64
arch: aarch64
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
name: Install Python
with:
python-version: '3.11'
- name: Build wheels
uses: pypa/cibuildwheel@ee02a1537ce3071a004a6b08c41e72f0fdc42d9a # v3.4.0
env:
CIBW_BUILD: ${{ matrix.python }}
CIBW_ARCHS: ${{ matrix.arch }}
CIBW_MANYLINUX_AARCH64_IMAGE: ${{ matrix.manylinux }}
CIBW_BEFORE_BUILD: "pip install sphinx-press-theme"
- uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with:
name: cibw-wheels-${{ matrix.python }}-${{ matrix.manylinux }}
path: ./wheelhouse/*.whl
# ---------------------------------------------------------------------------
# macOS Wheels
# ---------------------------------------------------------------------------
macos:
name: Build wheels on macOS
runs-on: macos-15-intel
# Don't run on OCIO forks
if: |
github.event_name != 'schedule' ||
github.repository == 'AcademySoftwareFoundation/OpenColorIO'
strategy:
matrix:
include:
# -------------------------------------------------------------------
# CPython 64 bits
# -------------------------------------------------------------------
- build: CPython 3.10 64 bits
python: cp310-macosx_x86_64
arch: x86_64
- build: CPython 3.11 64 bits
python: cp311-macosx_x86_64
arch: x86_64
- build: CPython 3.12 64 bits
python: cp312-macosx_x86_64
arch: x86_64
- build: CPython 3.13 64 bits
python: cp313-macosx_x86_64
arch: x86_64
- build: CPython 3.14 64 bits
python: cp314-macosx_x86_64
arch: x86_64
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
name: Install Python
with:
python-version: '3.11'
- name: Remove brew OpenEXR/Imath
run: |
brew uninstall --ignore-dependencies openexr imath || true
- name: Build wheels
uses: pypa/cibuildwheel@ee02a1537ce3071a004a6b08c41e72f0fdc42d9a # v3.4.0
env:
CIBW_BUILD: ${{ matrix.python }}
CIBW_ARCHS: ${{ matrix.arch }}
CIBW_BEFORE_BUILD: "pip install sphinx-press-theme"
- uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with:
name: cibw-wheels-${{ matrix.python }}
path: ./wheelhouse/*.whl
# ---------------------------------------------------------------------------
# macOS ARM Wheels
# ---------------------------------------------------------------------------
macos-arm:
name: Build wheels on macOS ARM
runs-on: macos-14
# Don't run on OCIO forks
if: |
github.event_name != 'schedule' ||
github.repository == 'AcademySoftwareFoundation/OpenColorIO'
strategy:
matrix:
include:
# -------------------------------------------------------------------
# CPython ARM 64 bits
# -------------------------------------------------------------------
- build: CPython 3.10 ARM 64 bits
python: cp310-macosx_arm64
arch: arm64
- build: CPython 3.11 ARM 64 bits
python: cp311-macosx_arm64
arch: arm64
- build: CPython 3.12 ARM 64 bits
python: cp312-macosx_arm64
arch: arm64
- build: CPython 3.13 ARM 64 bits
python: cp313-macosx_arm64
arch: arm64
- build: CPython 3.14 ARM 64 bits
python: cp314-macosx_arm64
arch: arm64
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
name: Install Python
with:
python-version: '3.11'
- name: Build wheels
uses: pypa/cibuildwheel@ee02a1537ce3071a004a6b08c41e72f0fdc42d9a # v3.4.0
env:
CIBW_BUILD: ${{ matrix.python }}
CIBW_ARCHS: ${{ matrix.arch }}
CIBW_BEFORE_BUILD: "pip install sphinx-press-theme"
- uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with:
name: cibw-wheels-${{ matrix.python }}
path: ./wheelhouse/*.whl
# ---------------------------------------------------------------------------
# Windows Wheels
# ---------------------------------------------------------------------------
windows:
name: Build wheels on Windows
runs-on: windows-2022
# Don't run on OCIO forks
if: |
github.event_name != 'schedule' ||
github.repository == 'AcademySoftwareFoundation/OpenColorIO'
strategy:
matrix:
include:
# -------------------------------------------------------------------
# CPython 64 bits
# -------------------------------------------------------------------
- build: CPython 3.10 64 bits
python: cp310-win_amd64
arch: AMD64
- build: CPython 3.11 64 bits
python: cp311-win_amd64
arch: AMD64
- build: CPython 3.12 64 bits
python: cp312-win_amd64
arch: AMD64
- build: CPython 3.13 64 bits
python: cp313-win_amd64
arch: AMD64
- build: CPython 3.14 64 bits
python: cp314-win_amd64
arch: AMD64
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
name: Install Python
with:
python-version: '3.11'
- name: Build wheels
uses: pypa/cibuildwheel@ee02a1537ce3071a004a6b08c41e72f0fdc42d9a # v3.4.0
env:
CIBW_BUILD: ${{ matrix.python }}
CIBW_ARCHS: ${{ matrix.arch }}
CIBW_BEFORE_BUILD: "pip install sphinx-press-theme"
- uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with:
name: cibw-wheels-${{ matrix.python }}
path: ./wheelhouse/*.whl
# ---------------------------------------------------------------------------
# Upload
# ---------------------------------------------------------------------------
upload_pypi:
needs: [sdist, linux, linux-arm, macos, macos-arm, windows]
runs-on: ubuntu-latest
if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/v')
steps:
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
- uses: actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # v8.0.0
with:
pattern: cibw-*
path: dist
merge-multiple: true
- uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # v1.13.0
with:
user: __token__
password: ${{ secrets.PYPI_API_TOKEN }}
+5 -1
View File
@@ -10,4 +10,8 @@ dist*
mastercopy
*.pyc
!*.yml
.vscode
.idea/
.venv/
.vscode/
src/apps/ocioview/uv.lock
+23
View File
@@ -0,0 +1,23 @@
# SPDX-License-Identifier: BSD-3-Clause
# Copyright Contributors to the OpenColorIO Project.
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
version: 2
build:
os: ubuntu-lts-latest
tools:
python: "3.14"
sphinx:
configuration: docs/conf.py
formats:
- pdf
- htmlzip
python:
install:
- requirements: docs/requirements.txt
+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;
+124
View File
@@ -0,0 +1,124 @@
<!-- SPDX-License-Identifier: CC-BY-4.0 -->
<!-- Copyright Contributors to the OpenColorIO Project. -->
# OpenColorIO Google Summer of Code 2021
OpenColorIO (OCIO) is a complete color management solution geared towards
motion picture production with an emphasis on visual effects and computer
animation. OCIO provides a straightforward and consistent user experience
across all supporting applications while allowing for sophisticated back-end
configuration options suitable for high-end production usage. OCIO is compatible
with the Academy Color Encoding Specification (ACES) and is LUT-format agnostic,
supporting many popular formats.
OpenColorIO version 1.0 was released in 2011, having been in development since
2003. OCIO v1 represented the culmination of years of production experience
earned on such films as SpiderMan 2 (2004), Surf’s Up (2007), Cloudy with a
Chance of Meatballs (2009), Alice in Wonderland (2010), and many more.
OpenColorIO v2 has been in development since 2017 and was feature complete as of
SIGGRAPH 2020. After a stabilization and bug-fixing period, an official 2.0.0
release was made in January 2021!
While OCIO is a color management library (written in C++ with a Python API),
its only knowledge of color science comes from its execution of the transforms
defined in the OCIO configuration file, written in YAML. These transforms are
either defined by the end user in a custom OCIO config or inherited from the
publicly available configs. By specifying your desired config file in the local
environment all OCIO compatible applications and software libraries will be able
to see your defined color transform “universe”. You can then direct the
transformation of image data from one defined OCIO Color Space to another, in
addition to the other transforms documented elsewhere - the options are endless!
## About the Academy Software Foundation
The Academy Software Foundation (ASWF) is collaboration between the Linux
Foundation and the Academy of Motion Picture Arts and Sciences, serving as
an umbrella organization that is the home to several key open source
software projects used by the film industry (primarily visual effects and
animation production). The projects we manage are some of the most
high-profile and widely used open source projects originating and used in
film production studios. It's a great opportunity for students to get
involved with projects that will be used professionally on films!
The mission of the ASWF is to increase the quality and quantity of
contributions to the content creation industry's open source software base;
to provide a neutral forum to coordinate cross-project efforts; to provide a
common build and test infrastructure; and to provide individuals and
organizations a clear path to participation in advancing our open source
ecosystem.
In 2020, the ASWF projects OpenEXR, OpenTimelineIO, and OpenCue mentored
GSoC students. This year, OpenColorIO is the ASWF project that looks forward
to welcoming and mentoring GSoC students.
## Application Instructions for Students
Please review the CONTRIBUTING guidelines thoroughly before applying. OCIO
maintains a contributor license agreement (CLA) which must be signed to
accept contributions.
**Successfully submitting a Pull Request to the OCIO project is a strict**
**requirement prior to submitting an application.**
This is not negotiable. We will not even read applications from students who
have not submitted an acceptable PR to the project. It can be a truly minimal
change -- for example, fixing a typo in an error message. You will find issues
tagged "good first issue" on our GitHub repo, which are ideal candidates for
your small trial PR to qualify for application.
## Application template
Please use this application template. Feel free to expand or tell us any other
relevant details, but this is a good place to start. The applications will be
judged by representatives of the OCIO technical steering comittee.
* Student name:
* School / year / area of study:
* Relevant courses, materials studied, jobs, programming projects, skills, other
open source projects you've contributed to. Go ahead and tell us anything about
your background that you think we will find interesting for our projects.
* Project proposal - please explain in detail and give specifics on acceptance
criteria -- how we can measure your success, how we can test your code. Provide
a weekly timeline for expected progress.
* Please tell us which test PR you had merged into the OCIO repo:
## Project information and suggested ideas list
Home page: https://opencolorio.org/ <br>
GitHub: https://github.com/AcademySoftwareFoundation/OpenColorIO <br>
Skills/knowledge relevant to the project: C++11, CMake, color science
Mentor suggestions: Patrick Hodoul, Doug Walker, Michael Dolan
## Project Ideas:
**Add OCIO support to FFmpeg or another FOSS project**
An important effort for OCIO is expanding the libraries and applications where
OCIO is implemented. Users have specifically called out FFmpeg as a library and
command-line tool where they would like to see OCIO support, but any other FOSS
project leveraged by digital artists or production pipelines could be considered.
This could also include upgrading an existing implementation to support the OCIO
v2 API and leverage new functionality.
Special skills: Familiarity with prospective host library or tool, and knowledge
of working with image buffers and authoring plugins.
**OpenFX Plugin Development**
OCIO currently has a number of plug-ins in the GitHub repo for proprietary
application interfaces. (And in several cases, these have become out of sync
with the actual plug-ins shipped by vendors.) It would be great to have OpenFX
plug-ins in the repo. These would have the benefit of bringing OCIO support to
a wider range of applications. Furthermore, the existing plug-ins are all based
on OCIO v1, the new OpenFX plug-ins would be the perfect place to showcase the
new OCIO v2 features.
Special skills: Access to a host application that supports OpenFX plug-ins and
ability to build the basic demo plug-ins in the OpenFX SDK.
**Add support for more ICC profile structures**
OCIO currently supports basic ICC monitor profiles. These are the type that
are most often set as monitor profiles on Mac and Windows. But it would be nice
for OCIO to be able to read and convert some of the more advanced ICC profile
structures such as the A2B* and B2A* tags. There are some monitor profiles that
use these tags to implement gamut mapping. OCIO already has operators to support
the most common usage of these tags, so the project is simply about importing a
profile into existing OCIO operators. It would not be a goal of this project to
import structures that don’t already have an OCIO equivalent, such as
4-dimensional tables.
+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
+159
View File
@@ -0,0 +1,159 @@
<!-- SPDX-License-Identifier: CC-BY-4.0 -->
<!-- Copyright Contributors to the OpenColorIO Project. -->
January 18, 2021
Host: Michael Dolan
Attendees:
* [X] Mark Boorer (_TSC_) - Industrial Light & Magic
* [ ] Mei Chu (_TSC_) - Sony Pictures Imageworks
* [X] Sean Cooper (_TSC ACES TAC Rep_) - ARRI
* [X] Michael Dolan (_TSC Chair_) - Epic Games
* [X] Patrick Hodoul (_TSC_) - Autodesk
* [ ] John Mertic - Academy Software Foundation / Linux Foundation
* [X] Carol Payne (_TSC_) - Netflix
* [X] Mark Titchener (_TSC_) - Foundry
* [X] Carl Rand (_TSC_) - Weta Digital
* [X] Doug Walker (_TSC Chief Architect_) - Autodesk
* [X] Kevin Wheatley (_TSC_) - Framestore
* [X] Bernard Lefebvre - Autodesk
Apologies:
* Mei Chu
# **OCIO TSC Meeting Notes**
* Doug to summarize in-progress work:
- Doug: Number of PRs landing this week. Bug fixes in Python bindings, etc.
No new features. Small but appreciate quick turn around.
* Any volunteers to help get the OpenFX plug-ins compiling (PR #1232)?
- Doug: Contributor needs help with compilation and loading in OFX
compliant app. Doesn't need help writing plugins, just initial step of
getting it built.
- Michael: Currently is swapping code into a Resolve plugin example I
believe.
- Carol: Is there more we can do to help people get up and running with
OCIO? Many new developers are struggling to get up and running. Not sure
what the issue is.
- Doug: Valid point. Heard similar feedback from ACES community too. Not
all those trying to build OCIO are necessarily developers.
- Sean: Might be lack of familiarity with C++ build env.
- Carol: Could link to some CMake help for getting started, etc.
- Sean: After release, when we get into other package envs, those
complaints will go away.
- Michael: I brought this up in the last CI working group. Pushed for
making one of the goals this year to work on standardized package manager
support across ASWF projects.
- Mark T: He had example plugins building. I talked to him about some of
that. Is able to build examples now, but not able to build his plugin.
- Michael: We can do zoom to help support if needed.
* VFX Reference Platform 2.0.x -> 2.x:
- Michael: I reached out to the platform working group and the TAC about
the change and got good feedback. OpenVDB has always had a variable minor
version, but has to be handled carefully. Stance from VFX ref platform is
that a CY version range must be ABI compatible.
- Doug: Challenge is we may want to do 2.x release that breaks ABI
compatibility. Lots of things could break it.
- Michael: Can do minor version ranges in platform, if we could commit to
certain minor versions being ABI compatible.
- Doug: Anyone rememberer when tetrahedral interpolation was added to
OCIO v1? Did that break ABI compatibility?
- Kevin: It didn't quite. Was able to put binary from Nuke into Mari and
it worked.
- Patrick: Can add enum, but add at end.
- Doug: Risk is committing to all 2.x not breaking ABI.
- Patrick: Need to say that for next 9 months, no change will break ABI
compatibility. Since v2 is first being used, challenge to say that.
- Carol: Have not done enough testing to be confident.
- Michael: Semver doesn't explicitly say ABI compatibility, but sort of
implies it in minor version changes being backwards compatible. That
would impact the decision too.
- Patrick: We will have to change API.
- Carol: Might be 6 months before we see v2 release with Nuke.
- Mark T: Yes, taking longer than we hoped. also delay getting into
production once it's in DCCs.
- Michael: Suggest we back out changes if we're not confident in adhering
to the rule.
- Doug: Will need to be 2.0.1 as bug fix, and then eventually 2.1.
- Carol: Can push bigger changes to CY2022.
- Mark B: Don't forsee needing to use these new features at facility scale
in 2021. Not a huge deal if VFX ref misses some of those minor features.
- Michael: We're currently missing builtin transforms needed for the ACES
config. Would we need to resort to LUTs to get that out?
- Doug: Can do like was pasted in Slack a while back, building the output
transforms in the config.
- Michael: Any performance cost? Or since builtin transform just builds ops
directly, is it about the same?
- Doug: Shouldn't be. Have not tested yet.
- Michael: Complicates config build script a bit. ACES 1.3 can wait, but we
will need output transforms.
- Kevin: How many releases could we have this year? How many versions on
active support? Committing to support VFX ref platform. Minor versions
could be more to support. Tradeoff of not locking ref platform down.
- Mark B: Could add broken endpoints for features we're planning to add.
Then API won't change.
- Michael: Good idea. I have seen other libraries do that. Let's continue
this discussion in the config wg meeting tomorrow. I will followup with
platform working group after that.
* Release plan discussion for 2.0.0:
- Doug: Would like to do 2.0.0 release next week, Monday or Tuesday. Minor
PRs in this week to merge quickly.
* Issues, Built-in Transform, Documentation, or other “must haves” for 2.0.0:
- Doug: If there are things people feel are must haves, want to get them on
table. Bernard working on issues. Not currently working on reported
OpenEXR 2.5 CMake issue.
- **TODO**: Michael will roll back OIIO find module to resolve that
issue for now.
* Ociocheck behavior for missing roles:
- Doug: ociocheck looks for known set of roles. If they are missing it
prints error message. Added new roles to OCIO v2, so was going to add
them to OCIO check, but they aren't mandatory. some of the roles it is
currently complaining about don't seem mandatory. Propose changing
message to warning instead of error.
- Kevin: Difference in behavior with new roles. They are required in
certain circumstances. Without matte_paint role config will work. Would
like a strict check that validates as an error. Agree on some other roles
being warnings though.
- Sean: Core roles could be hard coded in DCCs and know that those exist.
More for DCC/API compatibility. With newer v2.0 features, can question
whether they are necessary.
* Should inactive color spaces be included by parseColorSpaceFromString?
- Doug: Inactive spaces won't be in menus. Should we parse inactive color
spaces from strings?
- Kevin: I think so. Useful for loading historical color spaces. Like to be
able to load file on disk.
- Mark, Sean: Agree. Good to load them still if it's defined.
* Scope of image IO support for app refactor (to remove OpenImageIO dependency):
- Michael: I've been building simple image interface to load EXRs for apps.
OpenEXR is a broad interface though, with many types of files. Should we
support them all? Or limit it since the apps only operate on RGBA?
- Mark B: Think we can keep the OIIO dependency. If needed can change how
they are built, with apps in another repo, or a separate CMake build.
- Kevin: Package managers would prefer library and tools separate.
- Mark B: That's what debian and brew do.
- Patrick: Agree not a huge problem, but falls in problem category. Two
types of commandline tools. Helpers and apps like ociodisplay, which are
useful for development. Moving tools for external users outside could be
good. But ocioperf less convinced. ocioperf would be ok only having
OpenEXR format. Tool we really need OIIO for is ociodisplay.
- Group agrees to continue discussion next week and in GH issue. Leaning
toward keeping OIIO dependency and implementing one of Mark's
suggestions.
* ASWF 2020 CCLA 2.1 transition:
- Sean: What would the timeline by for this change? 6 months?
- Michael: I talked to John and it sounds like we can get the new CCLA
signed before we switch and then switch it over once we know there will
be no disruption to contributions. Will follow up more on this next week.
* Items for next TSC meeting agenda:
- Removing apps from repo or main build.
- ASWF 2020 CCLA 2.1 transition plan.
+87
View File
@@ -0,0 +1,87 @@
<!-- SPDX-License-Identifier: CC-BY-4.0 -->
<!-- Copyright Contributors to the OpenColorIO Project. -->
February 8, 2021
Host: Michael Dolan
Attendees:
* [X] Mark Boorer (_TSC_) - Industrial Light & Magic
* [X] Mei Chu (_TSC_) - Sony Pictures Imageworks
* [ ] Sean Cooper (_TSC ACES TAC Rep_) - ARRI
* [X] Michael Dolan (_TSC Chair_) - Epic Games
* [X] Patrick Hodoul (_TSC_) - Autodesk
* [ ] John Mertic - Academy Software Foundation / Linux Foundation
* [X] Carol Payne (_TSC_) - Netflix
* [X] Mark Titchener (_TSC_) - Foundry
* [ ] Carl Rand (_TSC_) - Weta Digital
* [X] Doug Walker (_TSC Chief Architect_) - Autodesk
* [X] Kevin Wheatley (_TSC_) - Framestore
* [X] Rémi Achard - DNEG
* [X] Thomas Mansencal - Weta Digital
* [X] Matthias Scharfenberg - Industrial Light & Magic
* [X] J Schulte - Industrial Light & Magic
# **OCIO TSC Meeting Notes**
* Several pending pull requests: some are Python reviews, but most of them are
meeting minute reviews.
- Patrick: Few PRs awaiting review. Not C++ changes - meeting minutes,
Python, etc.
- Carol: There's a website PR ready for review too. I will take a look at
that.
- Michael: Noting some issues reported related to v2, which means it's
being used and tested. I've been testing it and love the new config
features. Being able to build configs without external files is great.
- Patrick: Doug and I are investigating the issues. Big thanks to Doug for
the config improvements. *clap*
- Kevin: Using pre-release of v2 and encountered a bug while baking to
Resolve cube with ociobakelut. Known issue? Asking to bake 3D cube, but
resulted in 1d cube. I will investigate further.
* GSoC/D&I internships:
- Carol: Put doc in TSC channel. Two projects - ffmpeg support, and OFX
plugins:
https://docs.google.com/document/d/1sa68Cjq0TzSYFg2xhf2w2FFAQ1In7G391iINWKXfDo8/edit?usp=sharing
- Carol: Going to ask community for more ideas, and for more mentor
volunteers this week. End of this week needs to go to Larry. Think we're
the only ones submitting to GSoC this year.
- Michael: Quick mention that there's a new ASWF working group forming
around topic of Rust bindings for VFX OSS libs. Sounds like a group of
developers interested in working on this for several projects. First need
to make C bindings.
- Mark B: Talked about OCIO C bindings a while ago. Complex due to use
of shared pointers everywhere.
- Patrick: Earlier we discussed the idea of going back and making OCIO a C
lib with header only C++ bindings. Too late now, but interesting topic.
* Static builds - cmake export:
- Mark B: Problems with static builds when deploying on Windows. Looking at
fixing a number of CMake issues and improving 3rd party lib builds.
Improving debug and release builds too. PR will have a lot of changes,
but only to CMake. Hoping to open PR this week. Also noting some issues
with the way unit tests are linked which could be improved later. Tests
don't use same targets as lib, so must rebuild code.
- Patrick: Unit tests need private part of some files, so needed in some
places. Even if CMake is platform agnostic, have to deal with Windows
specific stuff. Often seems slightly broken on Windows platform.
- Mark: Big one for me was debug. CMake build type variable doesn't work on
all platforms. Default setup on Windows uses VS solutions, which support
multiple targets. Since on Windows release and debug libs can't be mixed,
current setup can be problematic.
* Locale issue:
- Patrick: Working on OCIO v2 integration in Maya. Facing locale issue -
numeric separator handling. We discussed this earlier, but will need to
resume conversation.
- Mark B: Parsing LUT files with locale wrong can cause read issues.
Probably want correct locale when reading yaml files, but one consistent
locale when reading LUTs.
- Patrick: Previous Turkish locale bug was related to upper to lower case
conversion (PR #984). I agree that numeric parsing should be locked to
decimal points.
- Doug: Lib is quite dependent on lowercase conversions. Could argue not
needed, but for backward compatibility might have to keep it.
* Items for next TSC meeting agenda:
- Absent next week: Patrick, Michael. Doug will be present and host.
+2 -4
View File
@@ -5,12 +5,12 @@ DATE
Host: NAME (Michael Dolan?)
Rotating Secretary: NAME
Secretary: NAME
Attendees:
* [ ] Mark Boorer (_TSC_) - Industrial Light & Magic
* [ ] Mei Chu (_TSC_) - Sony Pictures Imageworks
* [ ] Sean Cooper (_TSC ACES TAC Rep_) - DNEG
* [ ] Sean Cooper (_TSC ACES TAC Rep_) - ARRI
* [ ] Michael Dolan (_TSC Chair_) - Epic Games
* [ ] Patrick Hodoul (_TSC_) - Autodesk
* [ ] John Mertic - Academy Software Foundation / Linux Foundation
@@ -36,5 +36,3 @@ Apologies:
* Items for next TSC meeting agenda:
- xxx
@@ -0,0 +1,107 @@
<!-- SPDX-License-Identifier: CC-BY-4.0 -->
<!-- Copyright Contributors to the OpenColorIO Project. -->
January 19, 2021
Host: Michael Dolan
Attendees:
* [X] Mark Boorer (_TSC_) - Industrial Light & Magic
* [X] Michael Dolan (_TSC Chair_) - Epic Games
* [X] Carol Payne (_TSC_) - Netflix
* [X] Doug Walker (_TSC Chief Architect_) - Autodesk
* [X] Dennis Adams - Sony
* [X] Christophe Brejon
* [X] Zach Lewis - Method
* [X] Scott Dyer - A.M.P.A.S.
* [X] Sean Cooper (_TSC_) - ARRI
* [X] Kevin Wheatley (_TSC_) - Framestore
Apologies:
* Thomas Mansencal
# **OCIO Configs Working Group Meeting Notes**
* Include skeleton API for missing building transforms in v2.0.0? Need to make
call on CY2021 ABI compatibility for VFX ref platform. If not may need to
expose transform internals in config:
- Michael: Following up from TSC meeting discussion. Options put on the
table: Add stubs for missing transforms? Switch to a minor version range
in CY2021?
- Decision: Back out of requested VFX ref platform change. Stick with 2.0.x
for CY2021 and move forward with any needed minor version updates
throughout the year. ACES 1.3 support won't arrive until CY2022, and the
ACES config will use verbose color space definitions instead of Builtin
transforms in some places, but in performance and functionality will be
equivalent. We will attempt to maintain ABI compatibility for initial
minor version releases for users who want to drop newer versions into
CY2021 DCCs. There are some algorithms (e.g. PQ) that need to be added to
core lib to support LUT-free ACES config. AD will submit PR with these
additions this week for the v2.0.0 release next week.
- Other proposed plans would have worked, but the group determined it
would be better to strictly follow semver and not make a rash
decision based solely on getting the changes into VFX ref platform.
As Sean put it: "Feels like the cart driving the horse". The agreed
upon resolution permits completion of the ACES reference
(and studio) configs and gives us a year to polish the v2 features
for CY2022. DCCs likely won't have v2 support until near mid year
anyway, and studios will likely delay further beyond that.
* Make decision on config generation code direction:
- Michael: Propose we stick with current code in repo. Refinements can be
contributed via PR if needed.
- Mark and group: Go for it.
- Sean: Will there be artifacts via CI? Biggest buffer to people not caring
about code.
- Mark: Discussed artifacts and versioning earlier. Still plan to provide
artifacts.
- Michael: Yes, Thomas add CI setup which can be extended to support that.
* Spreadsheet questions ACES feedback:
- Michael: Open questions are related to inclusion of ACESproxy and the
DCDM output transforms. Scott suggested they not be included by email,
but we can discuss here to confirm a decision.
- Carol: Get rid of them if ACES doesn't want them.
- Scott: Better way to do DCDM than the transforms. Leave them out.
- Michael: Same about ACESproxy?
- Doug: Clipped integer version of ACEScc. Not sure why needed in OCIO.
- Scott: Not sure of many using ACESproxy at all.
- Group agrees to exclude these. Set to "excluded" in spreadsheet.
- Carol: In first version, get people to speak up if they miss it.
- Michael: Anything else?
- Sean: Why only Sony Venice included?
- Doug: Other Sony transforms in CSC section further up.
- Carol: There isn't CSC of new Sony Venice IDTs yet.
* Un-tonemapped view naming:
- Doug: Discussion about needing another view (un-tone-mapped) in config.
Trying to come up with name: Source colors, scene referred colors,
textures, colorimetry, colorimetric view, un-ton-mapped, no tone-map,
identity tone-map, identity view, 1:1, flat...
- Decision: Group agrees on "un-tone-mapped" since it is explicit and
clear. It may be confusing to users not familiar with color science, but
it is better to have something clear to config authors, and a good
learning opportunity for others. Also the term used by ACES.
* Review of ACES Output Transform prototype:
- Doug demos how to implement output transform with current OCIO v2 state.
Breaking down transforms needed to create ODT, which in the future will
be defined in a builtin transform via C++.
- Doug: Clamps around ACES primary change prevent negative values from
becoming large positives due to matrix. In testing that, noticed that
some ACES output transforms generate black in unexpected places. Tested
synthetic chart with camera log space. Values going through power
function to infinity. Builtin functions for CSC log transforms will send
large input values (outside 0-1) to infinity on output. Is that ok? Or
should we clamp to large positive value? Often implemented with LUTs
where infinity won't occur. Implemented here with LogCameraTransform, so
exact math. Value greater than one could give infinity.
- Mark: Think infinity fine in that context. Doing the right thing.
- Doug: Downside is for synthetic chart image, with RGB inf,inf,inf one
channel will become negative and get mapped to NaN (Inf - Inf) when going
through a matrix. Since NaN typically maps to zero, it's possible that
extremely bright values map to black on display.
- Mark: Don't think would be problem. The formula should do what it does.
We understand floating point limitations and are used to hitting them,
so not crazy to expect same behavior here. Would be weird to do something
different.
@@ -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.
+8 -2
View File
@@ -1,8 +1,14 @@
<!-- SPDX-License-Identifier: CC-BY-4.0 -->
<!-- Copyright Contributors to the OpenColorIO Project. -->
**Version 2.0.0 (unreleased):**
* Renamed sanityCheck() method to validate()
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+
+326 -28
View File
@@ -5,13 +5,14 @@
###############################################################################
# CMake definition.
cmake_minimum_required(VERSION 3.12)
cmake_minimum_required(VERSION 3.14...4.0)
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)
@@ -20,7 +21,7 @@ set(CMAKE_WARN_DEPRECATED ON)
if(APPLE AND NOT DEFINED CMAKE_OSX_DEPLOYMENT_TARGET)
# The value of this variable should be set prior to the first project() command invocation
# because it may influence configuration of the toolchain and flags.
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.13" CACHE STRING "Minimum OS X deployment version")
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.15" CACHE STRING "Minimum OS X deployment version")
endif()
@@ -28,21 +29,34 @@ endif()
# Project definition.
project(OpenColorIO
VERSION 2.0.0
VERSION 2.6.0
DESCRIPTION "OpenColorIO (OCIO) is a complete color management solution"
HOMEPAGE_URL https://github.com/AcademySoftwareFoundation/OpenColorIO
LANGUAGES CXX C)
# "dev", "beta1", rc1", etc or "" for an official release.
set(OpenColorIO_VERSION_RELEASE_TYPE "rc1")
set(OpenColorIO_VERSION_RELEASE_TYPE "dev")
###############################################################################
# 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?
@@ -109,45 +138,234 @@ include(CppVersion)
option(BUILD_SHARED_LIBS "Set to OFF to build static libraries" ON)
option(OCIO_BUILD_APPS "Set to OFF to disable command-line apps" ON)
option(OCIO_BUILD_OPENFX "Specify whether to build OpenFX plugins" OFF)
option(OCIO_BUILD_NUKE "Specify whether to build nuke plugins" OFF)
option(OCIO_BUILD_TESTS "Specify whether to build unittests" ON)
option(OCIO_BUILD_GPU_TESTS "Specify whether to build gpu unittests" ON)
option(OCIO_USE_HEADLESS "Specify whether the GPU rendering is headless" OFF)
option(OCIO_BUILD_FROZEN_DOCS "Specify whether to build frozen documentation, necessary when modifying the OCIO public API" OFF)
option(OCIO_BUILD_DOCS "Specify whether to build documentation" ${OCIO_BUILD_FROZEN_DOCS})
option(OCIO_BUILD_DOCS "Specify whether to build documentation" OFF)
option(OCIO_BUILD_PYTHON "Specify whether to build python bindings" ON)
set (OCIO_PYTHON_VERSION "" CACHE STRING
"Preferred Python version (if any) in case multiple are available")
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_SSE "Specify whether to enable SSE CPU performance optimizations" ON)
option(OCIO_INLINES_HIDDEN "Specify whether to build with -fvisibility-inlines-hidden" ${UNIX})
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)
###############################################################################
# Supplemental builtins
if (NOT APPLE)
if("${CMAKE_GENERATOR_PLATFORM}" MATCHES "(ARM64|arm64)" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "ARM64")
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_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).
# Add supplemental built-in transformations such as camera related one.
option(OCIO_ADD_EXTRA_BUILTINS "Specify whether to add supplemental built-in transforms" ON)
# 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 OR WIN32)
# 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)
# DirectX 12 is only available on Windows.
if(WIN32)
option(OCIO_DIRECTX_ENABLED "Enable DirectX 12 GPU rendering support" ON)
else()
set(OCIO_DIRECTX_ENABLED OFF CACHE BOOL "Enable DirectX 12 GPU rendering support" FORCE)
endif()
mark_as_advanced(OCIO_DIRECTX_ENABLED)
# Vulkan is cross-platform but requires an external SDK, so it is off by
# default; enable explicitly with -DOCIO_VULKAN_ENABLED=ON.
option(OCIO_VULKAN_ENABLED "Enable Vulkan GPU rendering support" OFF)
mark_as_advanced(OCIO_VULKAN_ENABLED)
###############################################################################
# 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}")
if(NOT MSVC)
# Ignore the warnings coming from sse2neon.h as they are false positives.
target_compile_options(sse2neon INTERFACE -Wno-unused-parameter)
endif()
endif()
endif()
###############################################################################
# Define compilation and link flags
include(CompilerFlags)
###############################################################################
# Include utility functions for setting debugging environments
include(DebuggerEnvironment)
###############################################################################
# External linking options
@@ -192,13 +410,11 @@ 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.")
message(STATUS "Setting namespace to '${OCIO_NAMESPACE}' as none was specified.")
message(STATUS "Setting namespace to '${OCIO_NAMESPACE}'.")
endif()
@@ -236,6 +452,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
@@ -249,11 +474,84 @@ include(FindExtPackages)
###############################################################################
# Progress to other sources
add_subdirectory(ext)
add_subdirectory(include)
add_subdirectory(src)
add_subdirectory(tests)
add_subdirectory(vendor)
if(OCIO_BUILD_DOCS)
add_subdirectory(docs)
endif()
add_subdirectory(vendor)
add_subdirectory(tests)
add_subdirectory(src)
add_subdirectory(ext)
###############################################################################
# Configure env script
if(WIN32)
set(OCIO_SETUP_NAME setup_ocio.bat)
else()
set(OCIO_SETUP_NAME setup_ocio.sh)
endif()
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 ${CMAKE_INSTALL_DATADIR}/ocio/)
###############################################################################
# Generate OpenColorIO-config.cmake
# Targets exported to ${PROJECT_NAME}_EXPORTED_TARGETS will be available for
# import using find_package(OpenColorIO).
include(CMakePackageConfigHelpers)
set(OCIO_TARGETS_EXPORT_NAME "${PROJECT_NAME}Targets.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(
${OCIO_VERSION_CONFIG}
# Version range supported only if generated by CMake 3.19.2 or newer.
COMPATIBILITY SameMajorVersion
)
configure_package_config_file(
${CMAKE_CURRENT_LIST_DIR}/src/cmake/Config.cmake.in ${OCIO_PROJECT_CONFIG}
INSTALL_DESTINATION ${OCIO_CONFIG_INSTALL_DIR}
NO_SET_AND_CHECK_MACRO
NO_CHECK_REQUIRED_COMPONENTS_MACRO
)
install(
EXPORT ${PROJECT_NAME}_EXPORTED_TARGETS
DESTINATION ${OCIO_CONFIG_INSTALL_DIR}
NAMESPACE ${PROJECT_NAME}::
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}"
)
+22 -9
View File
@@ -3,19 +3,32 @@
# OpenColorIO Committers
The current OpenColorIO Committers are:
### Current OpenColorIO Committers
| Name | GitHub ID |
| -------------- | -----------------
| -------------- | ----------------- |
| Michael Dolan | @michdolan |
| Mark Boorer | @Shootfast |
| Sean Cooper | @scoopxyz |
| Doug Walker | @doug-walker |
| Kevin Wheatley | @KevinJW |
| Rémi Achard | @remia |
| Carol Payne | @carolalynn |
| Thomas Mansencal | @KelSolaar |
| Mark Reid | @markreidvfx |
| Cuneyt Ozdas | @cozdas |
### Emeritus OpenColorIO Committers
| Name | GitHub ID |
| -------------- | ----------------- |
| Malcolm Humphreys | @malcolmhumphreys |
| Jeremy Selan | @jeremyselan |
| Steve Lavietes | @stevelavietes |
| Robert Molholm | @rmolholm |
| Michael Dolan | @michdolan |
| Mark Boorer | @Shootfast |
| Matthias Scharfenberg | @Tristimulus |
| Sean Cooper | @scoopxyz
| Patrick Hodoul | @hodoulp
| Cottalango Leon | @loorthu
| Doug Walker | @doug-walker |
| Kevin Wheatley | @KevinJW |
| Patrick Hodoul | @hodoulp |
| Cottalango Leon | @loorthu |
| Cédrik Fuoco | @cedrik-fuoco-adsk |
| Larry Gritz | @lgritz |
| Michael Parsons | @mlfp |
+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
+25 -15
View File
@@ -69,7 +69,14 @@ A subset of the Committers forms the Technical Steering Committee (TSC), which
has final authority over this project. As defined in the project charter, TSC
responsibilities include, but are not limited to:
* Coordinating technical direction of the Project
* Coordinating technical direction of the Project, including but not limited to:
* Participating in roadmapping and feature priority each year
* Participating in Working Groups as appropriate
* Actively tracking development & giving feedback promptly
* Participating in maintenance of technical documentation
* Actively discussing issues & reviewing pull requests
* Actively monitoring and assisting contributors on GitHub
* Actively monitoring and assisting folks on the OCIO slack instance
* Project governance and process (including this policy)
* Contribution policy
* GitHub repository hosting
@@ -81,7 +88,7 @@ communities
matters relating to the code base that affect multiple projects
* Coordinating any marketing, events, or communications regarding the project
Within the TSC are three elected leadership roles to be held by its members and
Within the TSC are two elected leadership roles to be held by its members and
voted on annually. Any TSC member can express interest in serving in a role, or
nominate another member to serve. There are no term limits, and one person may
hold multiple roles simultaneously. Should a TSC member resign from a leadership
@@ -96,10 +103,6 @@ providing oversight to project administration.
technical decisions, and is responsible for avoiding "design by committee"
pitfalls.
* ACES TAC Rep: This position maintains oversight of the critical relationship
between OCIO and ACES, representing OCIO on the ACES TAC and facilitating
coordination of shared initiatives between both project's leadership.
At the time of election, the TSC will also agree upon which of these two leaders
will serve as the OpenColorIO ASWF (Academy Software Foundation) TAC (Technical
Advisory Council) representative for the term. This member represents the
@@ -107,23 +110,30 @@ 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 - DNEG
* Sean Cooper - ARRI
* Michael Dolan - Epic Games
* Patrick Hodoul - Autodesk
* Carol Payne - Netflix
* Carl Rand - Weta Digital
* Zach Lewis - Method Studios
* Thomas Mansencal - Wētā FX
* Cuneyt Ozdas - Autodesk
* Carol Payne - Independent Consultant
* Mark Titchener - Foundry
* Mark Reid - Animal Logic
* Doug Walker - Autodesk
* Kevin Wheatley - Framestore
### TSC Emeritus
* Patrick Hodoul - Autodesk
* Carl Rand - Wētā FX
### TSC Meetings
Any meetings of the TSC are intended to be open to the public, except where
@@ -143,7 +153,7 @@ happen continuously on GitHub and be handled by the larger group of Committers.
Any community member or Contributor can ask that something be reviewed by the
TSC by logging a GitHub issue. Any Committer, TSC member, or the meeting chair
can bring the issue to the TSC's attention by applying the `tsc-review` label.
can bring the issue to the TSC's attention by applying the `Needs Discussion` label.
Prior to each TSC meeting, the meeting chair will share the agenda with members
of the TSC. TSC members can also add items to the agenda at the beginning of
@@ -152,11 +162,11 @@ each meeting. The meeting chair and the TSC cannot veto or remove items.
The TSC may invite additional persons to participate in a non-voting capacity.
The meeting chair is responsible for ensuring that minutes are taken and that
notes are submitted after the meeting to the public mailing list.
notes are submitted after the meeting to the public wiki.
Due to the challenges of scheduling a global meeting with participants in
several time zones, the TSC will seek to resolve as many agenda items as
possible outside of meetings on the public mailing list.
possible outside of meetings via discussion on Slack or other methods.
### TSC Nomination
+11
View File
@@ -0,0 +1,11 @@
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
+13 -6
View File
@@ -10,6 +10,7 @@ OpenColorIO
[![Analysis Status](https://github.com/AcademySoftwareFoundation/OpenColorIO/workflows/Analysis/badge.svg)](https://github.com/AcademySoftwareFoundation/OpenColorIO/actions?query=workflow%3AAnalysis)
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=AcademySoftwareFoundation_OpenColorIO&metric=alert_status)](https://sonarcloud.io/dashboard?id=AcademySoftwareFoundation_OpenColorIO)
[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/2612/badge)](https://bestpractices.coreinfrastructure.org/projects/2612)
[![Wheels](https://github.com/AcademySoftwareFoundation/OpenColorIO/workflows/Wheel/badge.svg)](https://github.com/AcademySoftwareFoundation/OpenColorIO/actions?query=workflow%3AWheel)
Introduction
------------
@@ -28,16 +29,16 @@ configuration options suitable for high-end production usage. OCIO is
compatible with the Academy Color Encoding Specification (ACES) and is
LUT-format agnostic, supporting many popular formats.
OpenColorIO is released as version 1.0 and has been in development since 2003.
OpenColorIO is released as version 2.0 and has been in development since 2003.
OCIO represents the culmination of years of production experience earned on
such films as SpiderMan 2 (2004), Surf's Up (2007), Cloudy with a Chance of
Meatballs (2009), Alice in Wonderland (2010), and many more. OpenColorIO is
natively supported in commercial applications like Katana, Mari, Nuke, Maya,
Houdini, Silhouette FX, and
[others](https://opencolorio.org/CompatibleSoftware.html).
[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
@@ -49,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
@@ -64,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>
@@ -98,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
----------------
+7 -14
View File
@@ -14,23 +14,15 @@ would be naive to say our code is immune to every exploit.
## Reporting Vulnerabilities
Quickly resolving security related issues is a priority. If you think
you've found a potential vulnerability in OpenColorIO, please report it by
emailing security@opencolorio.org. Only TSC members and ASWF project
management have access to these messages.
Quickly resolving security related issues is a priority. The best way to report a
vulnerability is to file a GitHub security advisory. If that is not possible, it
is also fine to email your report to security@opencolorio.org. Only the project
administrators have access to these reports.
Include detailed steps to reproduce the issue, and any other information that
could aid an investigation. Someone will assess the report and make every
effort to respond within 14 days.
## Outstanding Security Issues
None
## Addressed Security Issues
None
## File Format Expectations
Attempting to read an OCIO config (YAML) file will:
@@ -65,5 +57,6 @@ It is a bug if calling a function with well-formed arguments causes the
library to crash. It is a security issue if calling a function with
well-formed arguments causes arbitrary code execution.
We do not consider this as severe as file format issues because in most
deployments the parameter space is not exposed to potential attackers.
## History of CVE Fixes
CVE-2026-42450 -- Stack buffer overflow in sscanf. (Fixed in OCIO 2.5.2)
+66 -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
@@ -192,4 +166,70 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
---------------------------------------------------------------------
OpenFX Support Library, courtesy of The Open Effects Association Ltd.
http://openeffects.org/
Software License :
Copyright (c) 2004-2007, The Open Effects Association Ltd. All rights reserved.
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.
* Neither the name The Open Effects Association Ltd, nor the names of its
contributors may be used to endorse or promote products derived from this
software without specific prior written permission.
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 OWNER 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.
The Open Effects Association Ltd
1 Wardour St
London W1D 6PA
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.
+21 -21
View File
@@ -45,7 +45,7 @@ if(${Python_VERSION_MAJOR} GREATER_EQUAL 3)
# Breathe
# https://pypi.org/project/breathe/
find_python_package(breathe REQUIRED)
###########################################################################
### Setup PYTHONPATH ###
@@ -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.
+40 -4
View File
@@ -12,7 +12,22 @@ ColorSpaceMenuHelpers
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_colorspacehelpers.rst
.. autofunction:: PyOpenColorIO.ColorSpaceHelpers.AddColorSpace
.. autoclass:: PyOpenColorIO.ColorSpaceMenuParameters
:members:
:undoc-members:
:special-members: __init__, __str__
:exclude-members: AddedColorSpaceIterator
.. autoclass:: PyOpenColorIO.ColorSpaceMenuHelper
:members:
:undoc-members:
:special-members: __init__, __str__
:exclude-members: ColorSpaceLevelIterator
.. autoclass:: PyOpenColorIO.ColorSpaceMenuHelper.ColorSpaceLevelIterator
:special-members: __getitem__, __iter__, __len__, __next__
.. group-tab:: C++
@@ -38,7 +53,10 @@ DisplayViewHelpers
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_displayviewhelpers.rst
.. autofunction:: PyOpenColorIO.DisplayViewHelpers.GetProcessor
.. autofunction:: PyOpenColorIO.DisplayViewHelpers.GetIdentityProcessor
.. autofunction:: PyOpenColorIO.DisplayViewHelpers.AddDisplayView
.. autofunction:: PyOpenColorIO.DisplayViewHelpers.RemoveDisplayView
.. group-tab:: C++
@@ -53,7 +71,10 @@ LegacyViewingPipeline
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_legacyviewingpipeline.rst
.. autoclass:: PyOpenColorIO.LegacyViewingPipeline
:members:
:undoc-members:
:special-members: __init__, __str__
.. group-tab:: C++
@@ -73,7 +94,22 @@ MixingHelpers
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_mixinghelpers.rst
.. autoclass:: PyOpenColorIO.MixingSlider
:members:
:undoc-members:
:special-members: __init__, __str__
.. autoclass:: PyOpenColorIO.MixingColorSpaceManager
:members:
:undoc-members:
:special-members: __init__, __str__
:exclude-members: MixingSpaceIterator, MixingEncodingIterator
.. autoclass:: PyOpenColorIO.MixingColorSpaceManager.MixingSpaceIterator
:special-members: __getitem__, __iter__, __len__, __next__
.. autoclass:: PyOpenColorIO.MixingColorSpaceManager.MixingEncodingIterator
:special-members: __getitem__, __iter__, __len__, __next__
.. group-tab:: C++
+8 -1
View File
@@ -9,7 +9,14 @@ Baker
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_baker.rst
.. autoclass:: PyOpenColorIO.Baker
:members:
:undoc-members:
:special-members: __init__
:exclude-members: FormatIterator
.. autoclass:: PyOpenColorIO.Baker.FormatIterator
:special-members: __getitem__, __iter__, __len__, __next__
.. group-tab:: C++
+22 -2
View File
@@ -9,7 +9,17 @@ ColorSpace
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_colorspace.rst
.. autoclass:: PyOpenColorIO.ColorSpace
:members:
:undoc-members:
:special-members: __init__, __str__
:exclude-members: ColorSpaceCategoryIterator, ColorSpaceAliasIterator
.. autoclass:: PyOpenColorIO.ColorSpace.ColorSpaceCategoryIterator
:special-members: __getitem__, __iter__, __len__, __next__
.. autoclass:: PyOpenColorIO.ColorSpace.ColorSpaceAliasIterator
:special-members: __getitem__, __iter__, __len__, __next__
.. group-tab:: C++
@@ -29,7 +39,17 @@ ColorSpaceSet
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_colorspaceset.rst
.. autoclass:: PyOpenColorIO.ColorSpaceSet
:members:
:undoc-members:
:special-members: __init__, __eq__, __ne__, __sub__, __or__, __and__
:exclude-members: ColorSpaceNameIterator, ColorSpaceIterator
.. autoclass:: PyOpenColorIO.ColorSpaceSet.ColorSpaceNameIterator
:special-members: __getitem__, __iter__, __len__, __next__
.. autoclass:: PyOpenColorIO.ColorSpaceSet.ColorSpaceIterator
:special-members: __getitem__, __iter__, __len__, __next__
.. group-tab:: C++
+84 -1
View File
@@ -9,7 +9,90 @@ Config
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_config.rst
.. autoclass:: PyOpenColorIO.Config
:members:
:undoc-members:
:special-members: __init__, __str__
:exclude-members: EnvironmentVarNameIterator,
SearchPathIterator,
ColorSpaceNameIterator,
ColorSpaceIterator,
ActiveColorSpaceNameIterator,
ActiveColorSpaceIterator,
RoleNameIterator,
RoleColorSpaceIterator,
DisplayIterator,
SharedViewIterator,
ViewIterator,
ViewForColorSpaceIterator,
LookNameIterator,
LookIterator,
ViewTransformNameIterator,
ViewTransformIterator,
NamedTransformNameIterator,
NamedTransformIterator,
ActiveNamedTransformNameIterator,
ActiveNamedTransformIterator
.. autoclass:: PyOpenColorIO.Config.EnvironmentVarNameIterator
:special-members: __getitem__, __iter__, __len__, __next__
.. autoclass:: PyOpenColorIO.Config.SearchPathIterator
:special-members: __getitem__, __iter__, __len__, __next__
.. autoclass:: PyOpenColorIO.Config.ColorSpaceNameIterator
:special-members: __getitem__, __iter__, __len__, __next__
.. autoclass:: PyOpenColorIO.Config.ColorSpaceIterator
:special-members: __getitem__, __iter__, __len__, __next__
.. autoclass:: PyOpenColorIO.Config.ActiveColorSpaceNameIterator
:special-members: __getitem__, __iter__, __len__, __next__
.. autoclass:: PyOpenColorIO.Config.ActiveColorSpaceIterator
:special-members: __getitem__, __iter__, __len__, __next__
.. autoclass:: PyOpenColorIO.Config.RoleNameIterator
:special-members: __getitem__, __iter__, __len__, __next__
.. autoclass:: PyOpenColorIO.Config.RoleColorSpaceIterator
:special-members: __getitem__, __iter__, __len__, __next__
.. autoclass:: PyOpenColorIO.Config.DisplayIterator
:special-members: __getitem__, __iter__, __len__, __next__
.. autoclass:: PyOpenColorIO.Config.SharedViewIterator
:special-members: __getitem__, __iter__, __len__, __next__
.. autoclass:: PyOpenColorIO.Config.ViewIterator
:special-members: __getitem__, __iter__, __len__, __next__
.. autoclass:: PyOpenColorIO.Config.ViewForColorSpaceIterator
:special-members: __getitem__, __iter__, __len__, __next__
.. autoclass:: PyOpenColorIO.Config.LookNameIterator
:special-members: __getitem__, __iter__, __len__, __next__
.. autoclass:: PyOpenColorIO.Config.LookIterator
:special-members: __getitem__, __iter__, __len__, __next__
.. autoclass:: PyOpenColorIO.Config.ViewTransformNameIterator
:special-members: __getitem__, __iter__, __len__, __next__
.. autoclass:: PyOpenColorIO.Config.ViewTransformIterator
:special-members: __getitem__, __iter__, __len__, __next__
.. autoclass:: PyOpenColorIO.Config.NamedTransformNameIterator
:special-members: __getitem__, __iter__, __len__, __next__
.. autoclass:: PyOpenColorIO.Config.NamedTransformIterator
:special-members: __getitem__, __iter__, __len__, __next__
.. autoclass:: PyOpenColorIO.Config.ActiveNamedTransformNameIterator
:special-members: __getitem__, __iter__, __len__, __next__
.. autoclass:: PyOpenColorIO.Config.ActiveNamedTransformIterator
:special-members: __getitem__, __iter__, __len__, __next__
.. group-tab:: C++
+21
View File
@@ -121,6 +121,27 @@ External Plugins (currently known)::
this is a 1D HDR to LDR allocation. It is normally combined with
another display transform in the host app for preview.
.. data:: PyOpenColorIO.ROLE_RENDERING
The rendering role may be used to identify a specific color space to be
used by CGI renderers. This is typically a scene-linear space but the
primaries also matter since they influence the resulting color, especially
in areas of indirect illumination.
.. data:: PyOpenColorIO.ROLE_INTERCHANGE_SCENE
The aces_interchange role is used to specify which color space in the
config implements the standard ACES2065-1 color space (SMPTE ST2065-1).
This may be used when converting scene-referred colors from one config
to another.
.. data:: PyOpenColorIO.ROLE_INTERCHANGE_DISPLAY
The cie_xyz_d65_interchange role is used to specify which color space in
the config implements CIE XYZ colorimetry with the neutral axis at D65.
This may be used when converting display-referred colors from one config
to another.
.. group-tab:: C++
.. doxygengroup:: VarsRoles
+16 -1
View File
@@ -9,7 +9,22 @@ Context
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_context.rst
.. autoclass:: PyOpenColorIO.Context
:members:
:undoc-members:
:special-members: __init__, __str__
:exclude-members: StringVarNameIterator,
StringVarIterator,
SearchPathIterator
.. autoclass:: PyOpenColorIO.Context.StringVarNameIterator
:special-members: __getitem__, __iter__, __len__, __next__
.. autoclass:: PyOpenColorIO.Context.StringVarIterator
:special-members: __getitem__, __iter__, __len__, __next__
.. autoclass:: PyOpenColorIO.Context.SearchPathIterator
:special-members: __getitem__, __iter__, __len__, __next__
.. group-tab:: C++
+4 -1
View File
@@ -9,7 +9,10 @@ DynamicProperty
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_dynamicproperty.rst
.. autoclass:: PyOpenColorIO.DynamicProperty
:members:
:undoc-members:
:special-members: __init__
.. group-tab:: C++
+112 -28
View File
@@ -12,7 +12,10 @@ LoggingLevel
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_logginglevel.rst
.. autoclass:: PyOpenColorIO.LoggingLevel
:members:
:undoc-members:
:exclude-members: name
.. group-tab:: C++
@@ -27,7 +30,10 @@ ReferenceSpaceType
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_referencespacetype.rst
.. autoclass:: PyOpenColorIO.ReferenceSpaceType
:members:
:undoc-members:
:exclude-members: name
.. group-tab:: C++
@@ -40,7 +46,10 @@ SearchReferenceSpaceType
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_searchreferencespacetype.rst
.. autoclass:: PyOpenColorIO.SearchReferenceSpaceType
:members:
:undoc-members:
:exclude-members: name
.. group-tab:: C++
@@ -53,7 +62,10 @@ NamedTransformVisibility
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_namedtransformvisibility.rst
.. autoclass:: PyOpenColorIO.NamedTransformVisibility
:members:
:undoc-members:
:exclude-members: name
.. group-tab:: C++
@@ -66,7 +78,10 @@ ColorSpaceVisibility
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_colorspacevisibility.rst
.. autoclass:: PyOpenColorIO.ColorSpaceVisibility
:members:
:undoc-members:
:exclude-members: name
.. group-tab:: C++
@@ -79,7 +94,10 @@ ViewType
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_viewtype.rst
.. autoclass:: PyOpenColorIO.ViewType
:members:
:undoc-members:
:exclude-members: name
.. group-tab:: C++
@@ -92,7 +110,10 @@ ColorSpaceDirection
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_colorspacedirection.rst
.. autoclass:: PyOpenColorIO.ColorSpaceDirection
:members:
:undoc-members:
:exclude-members: name
.. group-tab:: C++
@@ -107,7 +128,10 @@ ViewTransformDirection
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_viewtransformdirection.rst
.. autoclass:: PyOpenColorIO.ViewTransformDirection
:members:
:undoc-members:
:exclude-members: name
.. group-tab:: C++
@@ -122,7 +146,10 @@ TransformDirection
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_transformdirection.rst
.. autoclass:: PyOpenColorIO.TransformDirection
:members:
:undoc-members:
:exclude-members: name
.. group-tab:: C++
@@ -137,7 +164,10 @@ TransformType
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_transformtype.rst
.. autoclass:: PyOpenColorIO.TransformType
:members:
:undoc-members:
:exclude-members: name
.. group-tab:: C++
@@ -150,7 +180,10 @@ Interpolation
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_interpolation.rst
.. autoclass:: PyOpenColorIO.Interpolation
:members:
:undoc-members:
:exclude-members: name
.. group-tab:: C++
@@ -165,7 +198,10 @@ BitDepth
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_bitdepth.rst
.. autoclass:: PyOpenColorIO.BitDepth
:members:
:undoc-members:
:exclude-members: name
.. group-tab:: C++
@@ -180,7 +216,10 @@ Lut1DHueAdjust
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_lut1dhueadjust.rst
.. autoclass:: PyOpenColorIO.Lut1DHueAdjust
:members:
:undoc-members:
:exclude-members: name
.. group-tab:: C++
@@ -193,7 +232,10 @@ ChannelOrdering
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_channelordering.rst
.. autoclass:: PyOpenColorIO.ChannelOrdering
:members:
:undoc-members:
:exclude-members: name
.. group-tab:: C++
@@ -206,7 +248,10 @@ Allocation
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_allocation.rst
.. autoclass:: PyOpenColorIO.Allocation
:members:
:undoc-members:
:exclude-members: name
.. group-tab:: C++
@@ -221,7 +266,10 @@ GpuLanguage
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_gpulanguage.rst
.. autoclass:: PyOpenColorIO.GpuLanguage
:members:
:undoc-members:
:exclude-members: name
.. group-tab:: C++
@@ -236,7 +284,10 @@ EnvironmentMode
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_environmentmode.rst
.. autoclass:: PyOpenColorIO.EnvironmentMode
:members:
:undoc-members:
:exclude-members: name
.. group-tab:: C++
@@ -251,7 +302,10 @@ RangeStyle
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_rangestyle.rst
.. autoclass:: PyOpenColorIO.RangeStyle
:members:
:undoc-members:
:exclude-members: name
.. group-tab:: C++
@@ -266,7 +320,10 @@ FixedFunctionStyle
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_fixedfunctionstyle.rst
.. autoclass:: PyOpenColorIO.FixedFunctionStyle
:members:
:undoc-members:
:exclude-members: name
.. group-tab:: C++
@@ -281,7 +338,10 @@ ExposureContrastStyle
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_exposurecontraststyle.rst
.. autoclass:: PyOpenColorIO.ExposureContrastStyle
:members:
:undoc-members:
:exclude-members: name
.. group-tab:: C++
@@ -296,7 +356,10 @@ CDLStyle
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_cdlstyle.rst
.. autoclass:: PyOpenColorIO.CDLStyle
:members:
:undoc-members:
:exclude-members: name
.. group-tab:: C++
@@ -311,7 +374,10 @@ NegativeStyle
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_negativestyle.rst
.. autoclass:: PyOpenColorIO.NegativeStyle
:members:
:undoc-members:
:exclude-members: name
.. group-tab:: C++
@@ -326,7 +392,10 @@ GradingStyle
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_gradingstyle.rst
.. autoclass:: PyOpenColorIO.GradingStyle
:members:
:undoc-members:
:exclude-members: name
.. group-tab:: C++
@@ -341,7 +410,10 @@ DynamicPropertyType
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_dynamicpropertytype.rst
.. autoclass:: PyOpenColorIO.DynamicPropertyType
:members:
:undoc-members:
:exclude-members: name
.. group-tab:: C++
@@ -354,7 +426,10 @@ RGBCurveType
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_rgbcurvetype.rst
.. autoclass:: PyOpenColorIO.RGBCurveType
:members:
:undoc-members:
:exclude-members: name
.. group-tab:: C++
@@ -367,7 +442,10 @@ UniformDataType
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_uniformdatatype.rst
.. autoclass:: PyOpenColorIO.UniformDataType
:members:
:undoc-members:
:exclude-members: name
.. group-tab:: C++
@@ -380,7 +458,10 @@ OptimizationFlags
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_optimizationflags.rst
.. autoclass:: PyOpenColorIO.OptimizationFlags
:members:
:undoc-members:
:exclude-members: name
.. group-tab:: C++
@@ -393,7 +474,10 @@ ProcessorCacheFlags
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_processorcacheflags.rst
.. autoclass:: PyOpenColorIO.ProcessorCacheFlags
:members:
:undoc-members:
:exclude-members: name
.. group-tab:: C++
+2 -2
View File
@@ -9,9 +9,9 @@ Exceptions
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_exception.rst
.. autoexception:: PyOpenColorIO.Exception
.. include:: python/${PYDIR}/pyopencolorio_exceptionmissingfile.rst
.. autoexception:: PyOpenColorIO.ExceptionMissingFile
.. group-tab:: C++
+25 -1
View File
@@ -9,7 +9,31 @@ FormatMetadata
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_formatmetadata.rst
.. autoclass:: PyOpenColorIO.FormatMetadata
:members:
:undoc-members:
:special-members: __init__,
__iter__,
__len__,
__getitem__,
__setitem__,
__contains__
:exclude-members: AttributeNameIterator,
AttributeIterator,
ConstChildElementIterator,
ChildElementIterator
.. autoclass:: PyOpenColorIO.FormatMetadata.AttributeNameIterator
:special-members: __getitem__, __iter__, __len__, __next__
.. autoclass:: PyOpenColorIO.FormatMetadata.AttributeIterator
:special-members: __getitem__, __iter__, __len__, __next__
.. autoclass:: PyOpenColorIO.FormatMetadata.ConstChildElementIterator
:special-members: __getitem__, __iter__, __len__, __next__
.. autoclass:: PyOpenColorIO.FormatMetadata.ChildElementIterator
:special-members: __getitem__, __iter__, __len__, __next__
.. group-tab:: C++
+46 -46
View File
@@ -12,7 +12,7 @@ Caching
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_clearallcaches.rst
.. autofunction:: PyOpenColorIO.ClearAllCaches
.. group-tab:: C++
@@ -27,9 +27,9 @@ Version
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_getversion.rst
.. autofunction:: PyOpenColorIO.GetVersion
.. include:: python/${PYDIR}/pyopencolorio_getversionhex.rst
.. autofunction:: PyOpenColorIO.GetVersionHex
.. group-tab:: C++
@@ -44,9 +44,9 @@ Logging
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_getlogginglevel.rst
.. autofunction:: PyOpenColorIO.GetLoggingLevel
.. include:: python/${PYDIR}/pyopencolorio_setlogginglevel.rst
.. autofunction:: PyOpenColorIO.SetLoggingLevel
.. group-tab:: C++
@@ -61,11 +61,11 @@ Logging Function
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_setloggingfunction.rst
.. autofunction:: PyOpenColorIO.SetLoggingFunction
.. include:: python/${PYDIR}/pyopencolorio_resettodefaultloggingfunction.rst
.. autofunction:: PyOpenColorIO.ResetToDefaultLoggingFunction
.. include:: python/${PYDIR}/pyopencolorio_logmessage.rst
.. autofunction:: PyOpenColorIO.LogMessage
.. group-tab:: C++
@@ -84,9 +84,9 @@ Compute Hash Function
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_setcomputehashfunction.rst
.. autofunction:: PyOpenColorIO.SetComputeHashFunction
.. include:: python/${PYDIR}/pyopencolorio_resetcomputehashfunction.rst
.. autofunction:: PyOpenColorIO.ResetComputeHashFunction
.. group-tab:: C++
@@ -103,13 +103,13 @@ Environment Variables
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_getenvvariable.rst
.. autofunction:: PyOpenColorIO.GetEnvVariable
.. include:: python/${PYDIR}/pyopencolorio_setenvvariable.rst
.. autofunction:: PyOpenColorIO.SetEnvVariable
.. include:: python/${PYDIR}/pyopencolorio_unsetenvvariable.rst
.. autofunction:: PyOpenColorIO.UnsetEnvVariable
.. include:: python/${PYDIR}/pyopencolorio_isenvvariablepresent.rst
.. autofunction:: PyOpenColorIO.IsEnvVariablePresent
.. group-tab:: C++
@@ -142,9 +142,9 @@ Bool
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_booltostring.rst
.. autofunction:: PyOpenColorIO.BoolToString
.. include:: python/${PYDIR}/pyopencolorio_boolfromstring.rst
.. autofunction:: PyOpenColorIO.BoolFromString
.. group-tab:: C++
@@ -161,9 +161,9 @@ LoggingLevel
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_loggingleveltostring.rst
.. autofunction:: PyOpenColorIO.LoggingLevelToString
.. include:: python/${PYDIR}/pyopencolorio_logginglevelfromstring.rst
.. autofunction:: PyOpenColorIO.LoggingLevelFromString
.. group-tab:: C++
@@ -180,13 +180,13 @@ TransformDirection
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_transformdirectiontostring.rst
.. autofunction:: PyOpenColorIO.TransformDirectionToString
.. include:: python/${PYDIR}/pyopencolorio_transformdirectionfromstring.rst
.. autofunction:: PyOpenColorIO.TransformDirectionFromString
.. include:: python/${PYDIR}/pyopencolorio_getinversetransformdirection.rst
.. autofunction:: PyOpenColorIO.GetInverseTransformDirection
.. include:: python/${PYDIR}/pyopencolorio_combinetransformdirections.rst
.. autofunction:: PyOpenColorIO.CombineTransformDirections
.. group-tab:: C++
@@ -207,13 +207,13 @@ BitDepth
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_bitdepthtostring.rst
.. autofunction:: PyOpenColorIO.BitDepthToString
.. include:: python/${PYDIR}/pyopencolorio_bitdepthfromstring.rst
.. autofunction:: PyOpenColorIO.BitDepthFromString
.. include:: python/${PYDIR}/pyopencolorio_bitdepthisfloat.rst
.. autofunction:: PyOpenColorIO.BitDepthIsFloat
.. include:: python/${PYDIR}/pyopencolorio_bitdepthtoint.rst
.. autofunction:: PyOpenColorIO.BitDepthToInt
.. group-tab:: C++
@@ -234,9 +234,9 @@ Allocation
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_allocationtostring.rst
.. autofunction:: PyOpenColorIO.AllocationToString
.. include:: python/${PYDIR}/pyopencolorio_allocationfromstring.rst
.. autofunction:: PyOpenColorIO.AllocationFromString
.. group-tab:: C++
@@ -253,9 +253,9 @@ Interpolation
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_interpolationtostring.rst
.. autofunction:: PyOpenColorIO.InterpolationToString
.. include:: python/${PYDIR}/pyopencolorio_interpolationfromstring.rst
.. autofunction:: PyOpenColorIO.InterpolationFromString
.. group-tab:: C++
@@ -272,9 +272,9 @@ GpuLanguage
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_gpulanguagetostring.rst
.. autofunction:: PyOpenColorIO.GpuLanguageToString
.. include:: python/${PYDIR}/pyopencolorio_gpulanguagefromstring.rst
.. autofunction:: PyOpenColorIO.GpuLanguageFromString
.. group-tab:: C++
@@ -291,9 +291,9 @@ EnvironmentMode
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_environmentmodetostring.rst
.. autofunction:: PyOpenColorIO.EnvironmentModeToString
.. include:: python/${PYDIR}/pyopencolorio_environmentmodefromstring.rst
.. autofunction:: PyOpenColorIO.EnvironmentModeFromString
.. group-tab:: C++
@@ -310,9 +310,9 @@ CDLStyle
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_cdlstyletostring.rst
.. autofunction:: PyOpenColorIO.CDLStyleToString
.. include:: python/${PYDIR}/pyopencolorio_cdlstylefromstring.rst
.. autofunction:: PyOpenColorIO.CDLStyleFromString
.. group-tab:: C++
@@ -329,9 +329,9 @@ RangeStyle
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_rangestyletostring.rst
.. autofunction:: PyOpenColorIO.RangeStyleToString
.. include:: python/${PYDIR}/pyopencolorio_rangestylefromstring.rst
.. autofunction:: PyOpenColorIO.RangeStyleFromString
.. group-tab:: C++
@@ -348,9 +348,9 @@ FixedFunctionStyle
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_fixedfunctionstyletostring.rst
.. autofunction:: PyOpenColorIO.FixedFunctionStyleToString
.. include:: python/${PYDIR}/pyopencolorio_fixedfunctionstylefromstring.rst
.. autofunction:: PyOpenColorIO.FixedFunctionStyleFromString
.. group-tab:: C++
@@ -367,9 +367,9 @@ GradingStyle
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_gradingstyletostring.rst
.. autofunction:: PyOpenColorIO.GradingStyleToString
.. include:: python/${PYDIR}/pyopencolorio_gradingstylefromstring.rst
.. autofunction:: PyOpenColorIO.GradingStyleFromString
.. group-tab:: C++
@@ -386,9 +386,9 @@ ExposureContrastStyle
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_exposurecontraststyletostring.rst
.. autofunction:: PyOpenColorIO.ExposureContrastStyleToString
.. include:: python/${PYDIR}/pyopencolorio_exposurecontraststylefromstring.rst
.. autofunction:: PyOpenColorIO.ExposureContrastStyleFromString
.. group-tab:: C++
@@ -405,9 +405,9 @@ NegativeStyle
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_negativestyletostring.rst
.. autofunction:: PyOpenColorIO.NegativeStyleToString
.. include:: python/${PYDIR}/pyopencolorio_negativestylefromstring.rst
.. autofunction:: PyOpenColorIO.NegativeStyleFromString
.. group-tab:: C++
+94 -10
View File
@@ -14,7 +14,11 @@ GradingPrimaryTransform
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_gradingprimarytransform.rst
.. autoclass:: PyOpenColorIO.GradingPrimaryTransform
:members:
:undoc-members:
:special-members: __init__, __str__
:inherited-members:
.. group-tab:: C++
@@ -34,7 +38,10 @@ GradingPrimary
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_gradingprimary.rst
.. autoclass:: PyOpenColorIO.GradingPrimary
:members:
:undoc-members:
:special-members: __init__, __str__
.. group-tab:: C++
@@ -51,7 +58,10 @@ GradingRGBM
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_gradingrgbm.rst
.. autoclass:: PyOpenColorIO.GradingRGBM
:members:
:undoc-members:
:special-members: __init__, __str__
.. group-tab:: C++
@@ -68,7 +78,11 @@ GradingRGBCurveTransform
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_gradingrgbcurvetransform.rst
.. autoclass:: PyOpenColorIO.GradingRGBCurveTransform
:members:
:undoc-members:
:special-members: __init__, __str__
:inherited-members:
.. group-tab:: C++
@@ -88,7 +102,10 @@ GradingRGBCurve
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_gradingrgbcurve.rst
.. autoclass:: PyOpenColorIO.GradingRGBCurve
:members:
:undoc-members:
:special-members: __init__, __str__
.. group-tab:: C++
@@ -101,6 +118,53 @@ GradingRGBCurve
.. doxygentypedef:: ${OCIO_NAMESPACE}::ConstGradingRGBCurveRcPtr
.. doxygentypedef:: ${OCIO_NAMESPACE}::GradingRGBCurveRcPtr
GradingHueCurveTransform
************************
.. tabs::
.. group-tab:: Python
.. autoclass:: PyOpenColorIO.GradingHueCurveTransform
:members:
:undoc-members:
:special-members: __init__, __str__
:inherited-members:
.. group-tab:: C++
.. doxygenclass:: ${OCIO_NAMESPACE}::GradingHueCurveTransform
:members:
:undoc-members:
.. doxygenfunction:: ${OCIO_NAMESPACE}::operator<<(std::ostream&, const GradingHueCurveTransform&) noexcept
.. doxygentypedef:: ${OCIO_NAMESPACE}::ConstGradingHueCurveTransformRcPtr
.. doxygentypedef:: ${OCIO_NAMESPACE}::GradingHueCurveTransformRcPtr
GradingHueCurve
^^^^^^^^^^^^^^^
.. tabs::
.. group-tab:: Python
.. autoclass:: PyOpenColorIO.GradingHueCurve
:members:
:undoc-members:
:special-members: __init__, __str__
.. group-tab:: C++
.. doxygenclass:: ${OCIO_NAMESPACE}::GradingHueCurve
:members:
:undoc-members:
.. doxygenfunction:: ${OCIO_NAMESPACE}::operator<<(std::ostream&, const GradingHueCurve&)
.. doxygentypedef:: ${OCIO_NAMESPACE}::ConstGradingHueCurveRcPtr
.. doxygentypedef:: ${OCIO_NAMESPACE}::GradingHueCurveRcPtr
GradingControlPoint
^^^^^^^^^^^^^^^^^^^
@@ -108,7 +172,10 @@ GradingControlPoint
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_gradingcontrolpoint.rst
.. autoclass:: PyOpenColorIO.GradingControlPoint
:members:
:undoc-members:
:special-members: __init__, __str__
.. group-tab:: C++
@@ -125,7 +192,14 @@ GradingBSplineCurve
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_gradingbsplinecurve.rst
.. autoclass:: PyOpenColorIO.GradingBSplineCurve
:members:
:undoc-members:
:special-members: __init__, __str__
:exclude-members: GradingControlPointIterator
.. autoclass:: PyOpenColorIO.GradingBSplineCurve.GradingControlPointIterator
:special-members: __getitem__, __setitem__, __iter__, __len__, __next__
.. group-tab:: C++
@@ -145,7 +219,11 @@ GradingToneTransform
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_gradingtonetransform.rst
.. autoclass:: PyOpenColorIO.GradingToneTransform
:members:
:undoc-members:
:special-members: __init__, __str__
:inherited-members:
.. group-tab:: C++
@@ -165,7 +243,10 @@ GradingTone
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_gradingtone.rst
.. autoclass:: PyOpenColorIO.GradingTone
:members:
:undoc-members:
:special-members: __init__, __str__
.. group-tab:: C++
@@ -182,7 +263,10 @@ GradingRGBMSW
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_gradingrgbmsw.rst
.. autoclass:: PyOpenColorIO.GradingRGBMSW
:members:
:undoc-members:
:special-members: __init__, __str__
.. group-tab:: C++
+14 -3
View File
@@ -9,7 +9,10 @@ ImageDesc
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_imagedesc.rst
.. autoclass:: PyOpenColorIO.ImageDesc
:members:
:undoc-members:
:special-members: __init__
.. py:data:: AutoStride
:module: PyOpenColorIO
@@ -35,7 +38,11 @@ PackedImageDesc
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_packedimagedesc.rst
.. autoclass:: PyOpenColorIO.PackedImageDesc
:members:
:undoc-members:
:special-members: __init__
:inherited-members:
.. group-tab:: C++
@@ -50,7 +57,11 @@ PlanarImageDesc
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_planarimagedesc.rst
.. autoclass:: PyOpenColorIO.PlanarImageDesc
:members:
:undoc-members:
:special-members: __init__
:inherited-members:
.. group-tab:: C++
+4 -1
View File
@@ -9,7 +9,10 @@ Look
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_look.rst
.. autoclass:: PyOpenColorIO.Look
:members:
:undoc-members:
:special-members: __init__, __str__
.. group-tab:: C++
+8 -1
View File
@@ -9,7 +9,14 @@ Named Transform
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_namedtransform.rst
.. autoclass:: PyOpenColorIO.NamedTransform
:members:
:undoc-members:
:special-members: __init__, __str__
:exclude-members: NamedTransformCategoryIterator
.. autoclass:: PyOpenColorIO.NamedTransform.NamedTransformCategoryIterator
:special-members: __getitem__, __iter__, __len__, __next__
.. group-tab:: C++
+27 -4
View File
@@ -12,7 +12,14 @@ Processor
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_processor.rst
.. autoclass:: PyOpenColorIO.Processor
:members:
:undoc-members:
:special-members: __init__
:exclude-members: TransformFormatMetadataIterator, WriteFormatIterator
.. autoclass:: PyOpenColorIO.Processor.TransformFormatMetadataIterator
:special-members: __getitem__, __iter__, __len__, __next__
.. group-tab:: C++
@@ -30,7 +37,10 @@ CPUProcessor
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_cpuprocessor.rst
.. autoclass:: PyOpenColorIO.CPUProcessor
:members:
:undoc-members:
:special-members: __init__
.. group-tab:: C++
@@ -48,7 +58,10 @@ GPUProcessor
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_gpuprocessor.rst
.. autoclass:: PyOpenColorIO.GPUProcessor
:members:
:undoc-members:
:special-members: __init__
.. group-tab:: C++
@@ -66,7 +79,17 @@ ProcessorMetadata
.. group-tab:: Python
.. include:: python/${PYDIR}/pyopencolorio_processormetadata.rst
.. autoclass:: PyOpenColorIO.ProcessorMetadata
:members:
:undoc-members:
:special-members: __init__
:exclude-members: FileIterator, LookIterator
.. autoclass:: PyOpenColorIO.ProcessorMetadata.FileIterator
:special-members: __getitem__, __iter__, __len__, __next__
.. autoclass:: PyOpenColorIO.ProcessorMetadata.LookIterator
:special-members: __getitem__, __iter__, __len__, __next__
.. group-tab:: C++
@@ -1,33 +0,0 @@
..
SPDX-License-Identifier: CC-BY-4.0
Copyright Contributors to the OpenColorIO Project.
Do not edit! This file was automatically generated by share/docs/frozendoc.py.
.. py:class:: Allocation
:module: PyOpenColorIO
Members:
ALLOCATION_UNKNOWN :
ALLOCATION_UNIFORM :
ALLOCATION_LG2 :
.. py:method:: name() -> str
:property:
.. py:attribute:: Allocation.ALLOCATION_LG2
:module: PyOpenColorIO
:value: <Allocation.ALLOCATION_LG2: 2>
.. py:attribute:: Allocation.ALLOCATION_UNIFORM
:module: PyOpenColorIO
:value: <Allocation.ALLOCATION_UNIFORM: 1>
.. py:attribute:: Allocation.ALLOCATION_UNKNOWN
:module: PyOpenColorIO
:value: <Allocation.ALLOCATION_UNKNOWN: 0>
@@ -1,8 +0,0 @@
..
SPDX-License-Identifier: CC-BY-4.0
Copyright Contributors to the OpenColorIO Project.
Do not edit! This file was automatically generated by share/docs/frozendoc.py.
.. py:function:: AllocationFromString(str: str) -> PyOpenColorIO.Allocation
:module: PyOpenColorIO
@@ -1,8 +0,0 @@
..
SPDX-License-Identifier: CC-BY-4.0
Copyright Contributors to the OpenColorIO Project.
Do not edit! This file was automatically generated by share/docs/frozendoc.py.
.. py:function:: AllocationToString(allocation: PyOpenColorIO.Allocation) -> str
:module: PyOpenColorIO
@@ -1,60 +0,0 @@
..
SPDX-License-Identifier: CC-BY-4.0
Copyright Contributors to the OpenColorIO Project.
Do not edit! This file was automatically generated by share/docs/frozendoc.py.
.. py:class:: AllocationTransform
:module: PyOpenColorIO
Forward direction wraps the 'expanded' range into the specified, often compressed, range.
.. py:method:: AllocationTransform.__init__(*args, **kwargs)
:module: PyOpenColorIO
Overloaded function.
1. __init__(self: PyOpenColorIO.AllocationTransform) -> None
2. __init__(self: PyOpenColorIO.AllocationTransform, allocation: PyOpenColorIO.Allocation = <Allocation.ALLOCATION_UNIFORM: 1>, vars: List[float] = [], direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
.. py:method:: AllocationTransform.__str__(self: PyOpenColorIO.AllocationTransform) -> str
:module: PyOpenColorIO
.. py:method:: AllocationTransform.getAllocation(self: PyOpenColorIO.AllocationTransform) -> PyOpenColorIO.Allocation
:module: PyOpenColorIO
.. py:method:: AllocationTransform.getDirection(self: PyOpenColorIO.Transform) -> PyOpenColorIO.TransformDirection
:module: PyOpenColorIO
.. py:method:: AllocationTransform.getTransformType(self: PyOpenColorIO.Transform) -> PyOpenColorIO.TransformType
:module: PyOpenColorIO
.. py:method:: AllocationTransform.getVars(self: PyOpenColorIO.AllocationTransform) -> List[float]
:module: PyOpenColorIO
.. py:method:: AllocationTransform.setAllocation(self: PyOpenColorIO.AllocationTransform, allocation: PyOpenColorIO.Allocation) -> None
:module: PyOpenColorIO
.. py:method:: AllocationTransform.setDirection(self: PyOpenColorIO.Transform, direction: PyOpenColorIO.TransformDirection) -> None
:module: PyOpenColorIO
Note that this only affects the evaluation and not the values stored in the object.
.. py:method:: AllocationTransform.setVars(self: PyOpenColorIO.AllocationTransform, vars: List[float]) -> None
:module: PyOpenColorIO
.. py:method:: AllocationTransform.validate(self: PyOpenColorIO.Transform) -> None
:module: PyOpenColorIO
Will throw if data is not valid.
@@ -1,163 +0,0 @@
..
SPDX-License-Identifier: CC-BY-4.0
Copyright Contributors to the OpenColorIO Project.
Do not edit! This file was automatically generated by share/docs/frozendoc.py.
.. py:class:: Baker
:module: PyOpenColorIO
In certain situations it is necessary to serialize transforms into a variety of application specific LUT formats. Note that not all file formats that may be read also support baking.
**Usage Example:** *Bake a CSP sRGB viewer LUT*
.. code-block:: cpp
OCIO::ConstConfigRcPtr config = OCIO::Config::CreateFromEnv();
OCIO::BakerRcPtr baker = OCIO::Baker::Create();
baker->setConfig(config);
baker->setFormat("csp");
baker->setInputSpace("lnf");
baker->setShaperSpace("log");
baker->setTargetSpace("sRGB");
auto & metadata = baker->getFormatMetadata();
metadata.addChildElement(:ref:`OCIO::METADATA_DESCRIPTION`, "A first comment");
metadata.addChildElement(:ref:`OCIO::METADATA_DESCRIPTION`, "A second comment");
std::ostringstream out;
baker->bake(out); // fresh bread anyone!
std::cout << out.str();
.. py:method:: Baker.__init__(*args, **kwargs)
:module: PyOpenColorIO
Overloaded function.
1. __init__(self: PyOpenColorIO.Baker) -> None
Create a new :ref:`Baker`.
2. __init__(self: PyOpenColorIO.Baker, config: PyOpenColorIO.Config, format: str, inputSpace: str, targetSpace: str, looks: str = '', cubeSize: int = -1, shaperSpace: str = '', shaperSize: int = -1) -> None
Create a new :ref:`Baker`.
.. py:method:: Baker.bake(*args, **kwargs)
:module: PyOpenColorIO
Overloaded function.
1. bake(self: PyOpenColorIO.Baker, fileName: str) -> None
2. bake(self: PyOpenColorIO.Baker) -> str
Bake the LUT into the output stream.
.. py:method:: Baker.getConfig(self: PyOpenColorIO.Baker) -> PyOpenColorIO.Config
:module: PyOpenColorIO
.. py:method:: Baker.getCubeSize(self: PyOpenColorIO.Baker) -> int
:module: PyOpenColorIO
.. py:method:: Baker.getFormat(self: PyOpenColorIO.Baker) -> str
:module: PyOpenColorIO
.. py:method:: Baker.getFormatMetadata(self: PyOpenColorIO.Baker) -> PyOpenColorIO.FormatMetadata
:module: PyOpenColorIO
.. py:method:: Baker.getFormats() -> PyOpenColorIO.Baker.FormatIterator
:module: PyOpenColorIO
:staticmethod:
.. py:method:: Baker.getInputSpace(self: PyOpenColorIO.Baker) -> str
:module: PyOpenColorIO
.. py:method:: Baker.getLooks(self: PyOpenColorIO.Baker) -> str
:module: PyOpenColorIO
.. py:method:: Baker.getShaperSize(self: PyOpenColorIO.Baker) -> int
:module: PyOpenColorIO
.. py:method:: Baker.getShaperSpace(self: PyOpenColorIO.Baker) -> str
:module: PyOpenColorIO
.. py:method:: Baker.getTargetSpace(self: PyOpenColorIO.Baker) -> str
:module: PyOpenColorIO
.. py:method:: Baker.setConfig(self: PyOpenColorIO.Baker, config: PyOpenColorIO.Config) -> None
:module: PyOpenColorIO
Set the config to use.
.. py:method:: Baker.setCubeSize(self: PyOpenColorIO.Baker, cubeSize: int) -> None
:module: PyOpenColorIO
Override the default cube sample size. default: <format specific>="">
.. py:method:: Baker.setFormat(self: PyOpenColorIO.Baker, formatName: str) -> None
:module: PyOpenColorIO
Set the LUT output format.
.. py:method:: Baker.setInputSpace(self: PyOpenColorIO.Baker, inputSpace: str) -> None
:module: PyOpenColorIO
Set the input :ref:`ColorSpace` that the LUT will be applied to.
.. py:method:: Baker.setLooks(self: PyOpenColorIO.Baker, looks: str) -> None
:module: PyOpenColorIO
Set the looks to be applied during baking. Looks is a potentially comma (or colon) delimited list of lookNames, where +/- prefixes are optionally allowed to denote forward/inverse look specification. (And forward is assumed in the absence of either).
.. py:method:: Baker.setShaperSize(self: PyOpenColorIO.Baker, shaperSize: int) -> None
:module: PyOpenColorIO
Override the default shaper LUT size. Default value is -1, which allows each format to use its own most appropriate size. For the CLF format, the default uses a half-domain LUT1D (which is ideal for scene-linear inputs).
.. 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).
.. py:method:: Baker.setTargetSpace(self: PyOpenColorIO.Baker, targetSpace: str) -> None
:module: PyOpenColorIO
Set the target device colorspace for the LUT.
.. py:class:: FormatIterator
:module: PyOpenColorIO.Baker
.. py:method:: FormatIterator.__getitem__(self: PyOpenColorIO.Baker.FormatIterator, arg0: int) -> tuple
:module: PyOpenColorIO.Baker
.. py:method:: FormatIterator.__iter__(self: PyOpenColorIO.Baker.FormatIterator) -> PyOpenColorIO.Baker.FormatIterator
:module: PyOpenColorIO.Baker
.. py:method:: FormatIterator.__len__(self: PyOpenColorIO.Baker.FormatIterator) -> int
:module: PyOpenColorIO.Baker
.. py:method:: FormatIterator.__next__(self: PyOpenColorIO.Baker.FormatIterator) -> tuple
:module: PyOpenColorIO.Baker
@@ -1,77 +0,0 @@
..
SPDX-License-Identifier: CC-BY-4.0
Copyright Contributors to the OpenColorIO Project.
Do not edit! This file was automatically generated by share/docs/frozendoc.py.
.. py:class:: BitDepth
:module: PyOpenColorIO
Used in a configuration file to indicate the bit-depth of a color space, and by the :ref:`Processor` to specify the input and output bit-depths of images to process. Note that :ref:`Processor` only supports: UINT8, UINT10, UINT12, UINT16, F16 and F32.
Members:
BIT_DEPTH_UNKNOWN :
BIT_DEPTH_UINT8 :
BIT_DEPTH_UINT10 :
BIT_DEPTH_UINT12 :
BIT_DEPTH_UINT14 :
BIT_DEPTH_UINT16 :
BIT_DEPTH_UINT32 :
BIT_DEPTH_F16 :
BIT_DEPTH_F32 :
.. py:method:: name() -> str
:property:
.. py:attribute:: BitDepth.BIT_DEPTH_F16
:module: PyOpenColorIO
:value: <BitDepth.BIT_DEPTH_F16: 7>
.. py:attribute:: BitDepth.BIT_DEPTH_F32
:module: PyOpenColorIO
:value: <BitDepth.BIT_DEPTH_F32: 8>
.. py:attribute:: BitDepth.BIT_DEPTH_UINT10
:module: PyOpenColorIO
:value: <BitDepth.BIT_DEPTH_UINT10: 2>
.. py:attribute:: BitDepth.BIT_DEPTH_UINT12
:module: PyOpenColorIO
:value: <BitDepth.BIT_DEPTH_UINT12: 3>
.. py:attribute:: BitDepth.BIT_DEPTH_UINT14
:module: PyOpenColorIO
:value: <BitDepth.BIT_DEPTH_UINT14: 4>
.. py:attribute:: BitDepth.BIT_DEPTH_UINT16
:module: PyOpenColorIO
:value: <BitDepth.BIT_DEPTH_UINT16: 5>
.. py:attribute:: BitDepth.BIT_DEPTH_UINT32
:module: PyOpenColorIO
:value: <BitDepth.BIT_DEPTH_UINT32: 6>
.. py:attribute:: BitDepth.BIT_DEPTH_UINT8
:module: PyOpenColorIO
:value: <BitDepth.BIT_DEPTH_UINT8: 1>
.. py:attribute:: BitDepth.BIT_DEPTH_UNKNOWN
:module: PyOpenColorIO
:value: <BitDepth.BIT_DEPTH_UNKNOWN: 0>
@@ -1,8 +0,0 @@
..
SPDX-License-Identifier: CC-BY-4.0
Copyright Contributors to the OpenColorIO Project.
Do not edit! This file was automatically generated by share/docs/frozendoc.py.
.. py:function:: BitDepthFromString(str: str) -> PyOpenColorIO.BitDepth
:module: PyOpenColorIO
@@ -1,8 +0,0 @@
..
SPDX-License-Identifier: CC-BY-4.0
Copyright Contributors to the OpenColorIO Project.
Do not edit! This file was automatically generated by share/docs/frozendoc.py.
.. py:function:: BitDepthIsFloat(bitDepth: PyOpenColorIO.BitDepth) -> bool
:module: PyOpenColorIO
@@ -1,8 +0,0 @@
..
SPDX-License-Identifier: CC-BY-4.0
Copyright Contributors to the OpenColorIO Project.
Do not edit! This file was automatically generated by share/docs/frozendoc.py.
.. py:function:: BitDepthToInt(bitDepth: PyOpenColorIO.BitDepth) -> int
:module: PyOpenColorIO
@@ -1,8 +0,0 @@
..
SPDX-License-Identifier: CC-BY-4.0
Copyright Contributors to the OpenColorIO Project.
Do not edit! This file was automatically generated by share/docs/frozendoc.py.
.. py:function:: BitDepthToString(bitDepth: PyOpenColorIO.BitDepth) -> str
:module: PyOpenColorIO
@@ -1,8 +0,0 @@
..
SPDX-License-Identifier: CC-BY-4.0
Copyright Contributors to the OpenColorIO Project.
Do not edit! This file was automatically generated by share/docs/frozendoc.py.
.. py:function:: BoolFromString(str: str) -> bool
:module: PyOpenColorIO
@@ -1,8 +0,0 @@
..
SPDX-License-Identifier: CC-BY-4.0
Copyright Contributors to the OpenColorIO Project.
Do not edit! This file was automatically generated by share/docs/frozendoc.py.
.. py:function:: BoolToString(value: bool) -> str
:module: PyOpenColorIO
@@ -1,58 +0,0 @@
..
SPDX-License-Identifier: CC-BY-4.0
Copyright Contributors to the OpenColorIO Project.
Do not edit! This file was automatically generated by share/docs/frozendoc.py.
.. py:class:: BuiltinTransform
:module: PyOpenColorIO
A built-in transform is similar to a :ref:`FileTransform`, but without the file. OCIO knows how to build a set of commonly used transforms on-demand, thus avoiding the need for external files and simplifying config authoring.
.. py:method:: BuiltinTransform.__init__(*args, **kwargs)
:module: PyOpenColorIO
Overloaded function.
1. __init__(self: PyOpenColorIO.BuiltinTransform) -> None
2. __init__(self: PyOpenColorIO.BuiltinTransform, style: str = 'IDENTITY', direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
.. py:method:: BuiltinTransform.__str__(self: PyOpenColorIO.BuiltinTransform) -> str
:module: PyOpenColorIO
.. py:method:: BuiltinTransform.getDescription(self: PyOpenColorIO.BuiltinTransform) -> str
:module: PyOpenColorIO
.. py:method:: BuiltinTransform.getDirection(self: PyOpenColorIO.Transform) -> PyOpenColorIO.TransformDirection
:module: PyOpenColorIO
.. py:method:: BuiltinTransform.getStyle(self: PyOpenColorIO.BuiltinTransform) -> str
:module: PyOpenColorIO
.. py:method:: BuiltinTransform.getTransformType(self: PyOpenColorIO.Transform) -> PyOpenColorIO.TransformType
:module: PyOpenColorIO
.. py:method:: BuiltinTransform.setDirection(self: PyOpenColorIO.Transform, direction: PyOpenColorIO.TransformDirection) -> None
:module: PyOpenColorIO
Note that this only affects the evaluation and not the values stored in the object.
.. py:method:: BuiltinTransform.setStyle(self: PyOpenColorIO.BuiltinTransform, style: str) -> None
:module: PyOpenColorIO
Select an existing built-in transform style from the list accessible through :cpp:class:`:ref:`BuiltinTransformRegistry``. The style is the ID string that identifies which transform to apply.
.. py:method:: BuiltinTransform.validate(self: PyOpenColorIO.Transform) -> None
:module: PyOpenColorIO
Will throw if data is not valid.
@@ -1,60 +0,0 @@
..
SPDX-License-Identifier: CC-BY-4.0
Copyright Contributors to the OpenColorIO Project.
Do not edit! This file was automatically generated by share/docs/frozendoc.py.
.. py:class:: BuiltinTransformRegistry
:module: PyOpenColorIO
The built-in transform registry contains all the existing built-in transforms which can be used by a configuration (version 2 or higher only).
.. py:method:: BuiltinTransformRegistry.__init__(self: PyOpenColorIO.BuiltinTransformRegistry) -> None
:module: PyOpenColorIO
Get the current built-in transform registry.
.. py:method:: BuiltinTransformRegistry.getBuiltins(self: PyOpenColorIO.BuiltinTransformRegistry) -> PyOpenColorIO.BuiltinTransformRegistry.BuiltinIterator
:module: PyOpenColorIO
.. py:class:: BuiltinStyleIterator
:module: PyOpenColorIO.BuiltinTransformRegistry
.. py:method:: BuiltinStyleIterator.__getitem__(self: PyOpenColorIO.BuiltinTransformRegistry.BuiltinStyleIterator, arg0: int) -> str
:module: PyOpenColorIO.BuiltinTransformRegistry
.. py:method:: BuiltinStyleIterator.__iter__(self: PyOpenColorIO.BuiltinTransformRegistry.BuiltinStyleIterator) -> PyOpenColorIO.BuiltinTransformRegistry.BuiltinStyleIterator
:module: PyOpenColorIO.BuiltinTransformRegistry
.. py:method:: BuiltinStyleIterator.__len__(self: PyOpenColorIO.BuiltinTransformRegistry.BuiltinStyleIterator) -> int
:module: PyOpenColorIO.BuiltinTransformRegistry
.. py:method:: BuiltinStyleIterator.__next__(self: PyOpenColorIO.BuiltinTransformRegistry.BuiltinStyleIterator) -> str
:module: PyOpenColorIO.BuiltinTransformRegistry
.. py:class:: BuiltinIterator
:module: PyOpenColorIO.BuiltinTransformRegistry
.. py:method:: BuiltinIterator.__getitem__(self: PyOpenColorIO.BuiltinTransformRegistry.BuiltinIterator, arg0: int) -> tuple
:module: PyOpenColorIO.BuiltinTransformRegistry
.. py:method:: BuiltinIterator.__iter__(self: PyOpenColorIO.BuiltinTransformRegistry.BuiltinIterator) -> PyOpenColorIO.BuiltinTransformRegistry.BuiltinIterator
:module: PyOpenColorIO.BuiltinTransformRegistry
.. py:method:: BuiltinIterator.__len__(self: PyOpenColorIO.BuiltinTransformRegistry.BuiltinIterator) -> int
:module: PyOpenColorIO.BuiltinTransformRegistry
.. py:method:: BuiltinIterator.__next__(self: PyOpenColorIO.BuiltinTransformRegistry.BuiltinIterator) -> tuple
:module: PyOpenColorIO.BuiltinTransformRegistry
@@ -1,33 +0,0 @@
..
SPDX-License-Identifier: CC-BY-4.0
Copyright Contributors to the OpenColorIO Project.
Do not edit! This file was automatically generated by share/docs/frozendoc.py.
.. py:class:: CDLStyle
:module: PyOpenColorIO
Members:
CDL_ASC : ASC CDL specification v1.2.
CDL_NO_CLAMP : CDL that does not clamp.
CDL_TRANSFORM_DEFAULT :
.. py:method:: name() -> str
:property:
.. py:attribute:: CDLStyle.CDL_ASC
:module: PyOpenColorIO
:value: <CDLStyle.CDL_ASC: 0>
.. py:attribute:: CDLStyle.CDL_NO_CLAMP
:module: PyOpenColorIO
:value: <CDLStyle.CDL_NO_CLAMP: 1>
.. py:attribute:: CDLStyle.CDL_TRANSFORM_DEFAULT
:module: PyOpenColorIO
:value: <CDLStyle.CDL_NO_CLAMP: 1>
@@ -1,8 +0,0 @@
..
SPDX-License-Identifier: CC-BY-4.0
Copyright Contributors to the OpenColorIO Project.
Do not edit! This file was automatically generated by share/docs/frozendoc.py.
.. py:function:: CDLStyleFromString(str: str) -> PyOpenColorIO.CDLStyle
:module: PyOpenColorIO
@@ -1,8 +0,0 @@
..
SPDX-License-Identifier: CC-BY-4.0
Copyright Contributors to the OpenColorIO Project.
Do not edit! This file was automatically generated by share/docs/frozendoc.py.
.. py:function:: CDLStyleToString(style: PyOpenColorIO.CDLStyle) -> str
:module: PyOpenColorIO
@@ -1,151 +0,0 @@
..
SPDX-License-Identifier: CC-BY-4.0
Copyright Contributors to the OpenColorIO Project.
Do not edit! This file was automatically generated by share/docs/frozendoc.py.
.. py:class:: CDLTransform
:module: PyOpenColorIO
An implementation of the ASC Color Decision List (CDL), based on the ASC v1.2 specification.
.. note::
​ If the config version is 1, negative values are clamped if the power is not 1.0. For config version 2 and higher, the negative handling is controlled by the CDL style.
.. py:method:: CDLTransform.CreateFromFile(src: str, id: str) -> PyOpenColorIO.CDLTransform
:module: PyOpenColorIO
:staticmethod:
Load the CDL from the src .cdl, .cc, or .ccc file.
.. note::
The cccid can be the ID of a CDL or the index of the CDL (as string). If cccid is NULL or empty the first CDL is returned. The cccid is case-sensitive. The src must be an absolute path reference, no relative directory or envvar resolution is performed. Throws if file does not contain any CDL or if the specified cccid is not found.
.. py:method:: CDLTransform.CreateGroupFromFile(src: str) -> OpenColorIO_v2_0rc1::GroupTransform
:module: PyOpenColorIO
:staticmethod:
Load all of the CDLs in a .cdl or .ccc file into a single :ref:`GroupTransform`.
.. note::
This may be useful as a quicker way for applications to check the contents of each of the CDLs. The src must be an absolute path reference, no relative directory or envvar resolution is performed.
.. py:method:: CDLTransform.__init__(*args, **kwargs)
:module: PyOpenColorIO
Overloaded function.
1. __init__(self: PyOpenColorIO.CDLTransform) -> None
2. __init__(self: PyOpenColorIO.CDLTransform, direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
3. __init__(self: PyOpenColorIO.CDLTransform, slope: List[float[3]] = [1.0, 1.0, 1.0], offset: List[float[3]] = [0.0, 0.0, 0.0], power: List[float[3]] = [1.0, 1.0, 1.0], sat: float = 1.0, id: str = '', description: str = '', direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
.. py:method:: CDLTransform.__str__(self: PyOpenColorIO.CDLTransform) -> str
:module: PyOpenColorIO
.. py:method:: CDLTransform.equals(self: PyOpenColorIO.CDLTransform, other: PyOpenColorIO.CDLTransform) -> bool
:module: PyOpenColorIO
.. py:method:: CDLTransform.getDirection(self: PyOpenColorIO.Transform) -> PyOpenColorIO.TransformDirection
:module: PyOpenColorIO
.. py:method:: CDLTransform.getFirstSOPDescription(self: PyOpenColorIO.CDLTransform) -> str
:module: PyOpenColorIO
.. py:method:: CDLTransform.getFormatMetadata(self: PyOpenColorIO.CDLTransform) -> PyOpenColorIO.FormatMetadata
:module: PyOpenColorIO
.. py:method:: CDLTransform.getID(self: PyOpenColorIO.CDLTransform) -> str
:module: PyOpenColorIO
The get/setID methods are now deprecated. The preferred way of interacting with the ID is now via the transform's formatMetadata.
.. py:method:: CDLTransform.getOffset(self: PyOpenColorIO.CDLTransform) -> List[float[3]]
:module: PyOpenColorIO
.. py:method:: CDLTransform.getPower(self: PyOpenColorIO.CDLTransform) -> List[float[3]]
:module: PyOpenColorIO
.. py:method:: CDLTransform.getSOP(self: PyOpenColorIO.CDLTransform) -> List[float[9]]
:module: PyOpenColorIO
.. py:method:: CDLTransform.getSat(self: PyOpenColorIO.CDLTransform) -> float
:module: PyOpenColorIO
.. py:method:: CDLTransform.getSatLumaCoefs(self: PyOpenColorIO.CDLTransform) -> List[float[3]]
:module: PyOpenColorIO
These are hard-coded, by spec, to r709.
.. py:method:: CDLTransform.getSlope(self: PyOpenColorIO.CDLTransform) -> List[float[3]]
:module: PyOpenColorIO
.. py:method:: CDLTransform.getStyle(self: PyOpenColorIO.CDLTransform) -> PyOpenColorIO.CDLStyle
:module: PyOpenColorIO
.. py:method:: CDLTransform.getTransformType(self: PyOpenColorIO.Transform) -> PyOpenColorIO.TransformType
:module: PyOpenColorIO
.. py:method:: CDLTransform.setDirection(self: PyOpenColorIO.Transform, direction: PyOpenColorIO.TransformDirection) -> None
:module: PyOpenColorIO
Note that this only affects the evaluation and not the values stored in the object.
.. py:method:: CDLTransform.setFirstSOPDescription(self: PyOpenColorIO.CDLTransform, description: str) -> None
:module: PyOpenColorIO
.. py:method:: CDLTransform.setID(self: PyOpenColorIO.CDLTransform, id: str) -> None
:module: PyOpenColorIO
.. py:method:: CDLTransform.setOffset(self: PyOpenColorIO.CDLTransform, rgb: List[float[3]]) -> None
:module: PyOpenColorIO
.. py:method:: CDLTransform.setPower(self: PyOpenColorIO.CDLTransform, rgb: List[float[3]]) -> None
:module: PyOpenColorIO
.. py:method:: CDLTransform.setSOP(self: PyOpenColorIO.CDLTransform, vec9: List[float[9]]) -> None
:module: PyOpenColorIO
.. py:method:: CDLTransform.setSat(self: PyOpenColorIO.CDLTransform, sat: float) -> None
:module: PyOpenColorIO
.. py:method:: CDLTransform.setSlope(self: PyOpenColorIO.CDLTransform, rgb: List[float[3]]) -> None
:module: PyOpenColorIO
.. py:method:: CDLTransform.setStyle(self: PyOpenColorIO.CDLTransform, style: PyOpenColorIO.CDLStyle) -> None
:module: PyOpenColorIO
Use CDL_ASC to clamp values to [0,1] per the ASC spec. Use NO_CLAMP to never clamp values (regardless of whether power is 1.0). The NO_CLAMP option passes negatives through unchanged (like the NEGATIVE_PASS_THRU style of :ref:`ExponentTransform`). The default style is CDL_NO_CLAMP.
.. py:method:: CDLTransform.validate(self: PyOpenColorIO.Transform) -> None
:module: PyOpenColorIO
Will throw if data is not valid.
@@ -1,49 +0,0 @@
..
SPDX-License-Identifier: CC-BY-4.0
Copyright Contributors to the OpenColorIO Project.
Do not edit! This file was automatically generated by share/docs/frozendoc.py.
.. py:class:: ChannelOrdering
:module: PyOpenColorIO
Used by :ref:`PackedImageDesc` to indicate the channel ordering of the image to process.
Members:
CHANNEL_ORDERING_RGBA :
CHANNEL_ORDERING_BGRA :
CHANNEL_ORDERING_ABGR :
CHANNEL_ORDERING_RGB :
CHANNEL_ORDERING_BGR :
.. py:method:: name() -> str
:property:
.. py:attribute:: ChannelOrdering.CHANNEL_ORDERING_ABGR
:module: PyOpenColorIO
:value: <ChannelOrdering.CHANNEL_ORDERING_ABGR: 2>
.. py:attribute:: ChannelOrdering.CHANNEL_ORDERING_BGR
:module: PyOpenColorIO
:value: <ChannelOrdering.CHANNEL_ORDERING_BGR: 4>
.. py:attribute:: ChannelOrdering.CHANNEL_ORDERING_BGRA
:module: PyOpenColorIO
:value: <ChannelOrdering.CHANNEL_ORDERING_BGRA: 1>
.. py:attribute:: ChannelOrdering.CHANNEL_ORDERING_RGB
:module: PyOpenColorIO
:value: <ChannelOrdering.CHANNEL_ORDERING_RGB: 3>
.. py:attribute:: ChannelOrdering.CHANNEL_ORDERING_RGBA
:module: PyOpenColorIO
:value: <ChannelOrdering.CHANNEL_ORDERING_RGBA: 0>
@@ -1,15 +0,0 @@
..
SPDX-License-Identifier: CC-BY-4.0
Copyright Contributors to the OpenColorIO Project.
Do not edit! This file was automatically generated by share/docs/frozendoc.py.
.. py:function:: ClearAllCaches() -> None
:module: PyOpenColorIO
During normal usage, OpenColorIO tends to cache certain global information (such as the contents of LUTs on disk, intermediate results, etc.). Calling this function will flush all such information. The global information are related to LUT file identifications, loaded LUT file content and CDL transforms from loaded CDL files.
Under normal usage, this is not necessary, but it can be helpful in particular instances, such as designing OCIO profiles, and wanting to re-read luts without restarting.
.. note::
The method does not apply to instance specific caches such as the processor cache in a config instance or the GPU and CPU processor caches in a processor instance. Here deleting the instance flushes the cache.
@@ -1,206 +0,0 @@
..
SPDX-License-Identifier: CC-BY-4.0
Copyright Contributors to the OpenColorIO Project.
Do not edit! This file was automatically generated by share/docs/frozendoc.py.
.. py:class:: ColorSpace
:module: PyOpenColorIO
.. py:class:: ColorSpace.ColorSpaceAliasIterator
:module: PyOpenColorIO
.. py:method:: ColorSpace.ColorSpaceAliasIterator.__init__(*args, **kwargs)
:module: PyOpenColorIO
Initialize self. See help(type(self)) for accurate signature.
.. py:method:: ColorSpace.__init__(*args, **kwargs)
:module: PyOpenColorIO
Overloaded function.
1. __init__(self: PyOpenColorIO.ColorSpace) -> None
2. __init__(self: PyOpenColorIO.ColorSpace, referenceSpace: PyOpenColorIO.ReferenceSpaceType) -> None
3. __init__(self: PyOpenColorIO.ColorSpace, referenceSpace: PyOpenColorIO.ReferenceSpaceType = <ReferenceSpaceType.REFERENCE_SPACE_SCENE: 0>, name: str = '', aliases: List[str] = [], family: str = '', encoding: str = '', equalityGroup: str = '', description: str = '', bitDepth: PyOpenColorIO.BitDepth = <BitDepth.BIT_DEPTH_UNKNOWN: 0>, isData: bool = False, allocation: PyOpenColorIO.Allocation = <Allocation.ALLOCATION_UNIFORM: 1>, allocationVars: List[float] = [], toReference: PyOpenColorIO.Transform = None, fromReference: PyOpenColorIO.Transform = None, categories: List[str] = []) -> None
.. py:method:: ColorSpace.__str__(self: PyOpenColorIO.ColorSpace) -> str
:module: PyOpenColorIO
.. py:method:: ColorSpace.addAlias(self: PyOpenColorIO.ColorSpace, alias: str) -> None
:module: PyOpenColorIO
Add an alias for the color space name (the aliases may be used as a synonym for the name). Nothing will be added if the alias is already the color space name, one of its aliases, or the argument is null. The aliases must not conflict with existing roles, color space names, named transform names, or other aliases. This is verified when adding the color space to the config.
.. py:method:: ColorSpace.addCategory(self: PyOpenColorIO.ColorSpace, category: str) -> None
:module: PyOpenColorIO
Add a single category.
.. note::
Will do nothing if the category already exists.
.. py:method:: ColorSpace.clearAliases(self: PyOpenColorIO.ColorSpace) -> None
:module: PyOpenColorIO
.. py:method:: ColorSpace.clearCategories(self: PyOpenColorIO.ColorSpace) -> None
:module: PyOpenColorIO
Clear all the categories.
.. py:method:: ColorSpace.getAliases(self: PyOpenColorIO.ColorSpace) -> PyOpenColorIO.ColorSpace.ColorSpaceAliasIterator
:module: PyOpenColorIO
.. py:method:: ColorSpace.getAllocation(self: PyOpenColorIO.ColorSpace) -> PyOpenColorIO.Allocation
:module: PyOpenColorIO
.. py:method:: ColorSpace.getAllocationVars(self: PyOpenColorIO.ColorSpace) -> List[float]
:module: PyOpenColorIO
.. py:method:: ColorSpace.getBitDepth(self: PyOpenColorIO.ColorSpace) -> PyOpenColorIO.BitDepth
:module: PyOpenColorIO
.. py:method:: ColorSpace.getCategories(self: PyOpenColorIO.ColorSpace) -> PyOpenColorIO.ColorSpace.ColorSpaceCategoryIterator
:module: PyOpenColorIO
.. py:method:: ColorSpace.getDescription(self: PyOpenColorIO.ColorSpace) -> str
:module: PyOpenColorIO
.. py:method:: ColorSpace.getEncoding(self: PyOpenColorIO.ColorSpace) -> str
:module: PyOpenColorIO
.. 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'.
.. py:method:: ColorSpace.getFamily(self: PyOpenColorIO.ColorSpace) -> str
:module: PyOpenColorIO
Get the family, for use in user interfaces (optional) The family string could use a '/' separator to indicate levels to be used by hierarchical menus.
.. py:method:: ColorSpace.getName(self: PyOpenColorIO.ColorSpace) -> str
:module: PyOpenColorIO
.. py:method:: ColorSpace.getReferenceSpaceType(self: PyOpenColorIO.ColorSpace) -> PyOpenColorIO.ReferenceSpaceType
:module: PyOpenColorIO
A display color space will use the display-referred reference space.
.. py:method:: ColorSpace.getTransform(self: PyOpenColorIO.ColorSpace, direction: PyOpenColorIO.ColorSpaceDirection) -> PyOpenColorIO.Transform
:module: PyOpenColorIO
If a transform in the specified direction has been specified, return it. Otherwise return a null ConstTransformRcPtr
.. py:method:: ColorSpace.hasCategory(self: PyOpenColorIO.ColorSpace, category: str) -> bool
:module: PyOpenColorIO
Return true if the category is present.
.. py:method:: ColorSpace.isData(self: PyOpenColorIO.ColorSpace) -> bool
:module: PyOpenColorIO
.. py:method:: ColorSpace.removeAlias(self: PyOpenColorIO.ColorSpace, alias: str) -> None
:module: PyOpenColorIO
Does nothing if alias is not present.
.. py:method:: ColorSpace.removeCategory(self: PyOpenColorIO.ColorSpace, category: str) -> None
:module: PyOpenColorIO
Remove a category.
.. note::
Will do nothing if the category is missing.
.. py:method:: ColorSpace.setAllocation(self: PyOpenColorIO.ColorSpace, allocation: PyOpenColorIO.Allocation) -> None
:module: PyOpenColorIO
.. py:method:: ColorSpace.setAllocationVars(self: PyOpenColorIO.ColorSpace, vars: List[float]) -> None
:module: PyOpenColorIO
.. py:method:: ColorSpace.setBitDepth(self: PyOpenColorIO.ColorSpace, bitDepth: PyOpenColorIO.BitDepth) -> None
:module: PyOpenColorIO
.. py:method:: ColorSpace.setDescription(self: PyOpenColorIO.ColorSpace, description: str) -> None
:module: PyOpenColorIO
.. py:method:: ColorSpace.setEncoding(self: PyOpenColorIO.ColorSpace, encoding: str) -> None
:module: PyOpenColorIO
.. py:method:: ColorSpace.setEqualityGroup(self: PyOpenColorIO.ColorSpace, equalityGroup: str) -> None
:module: PyOpenColorIO
.. py:method:: ColorSpace.setFamily(self: PyOpenColorIO.ColorSpace, family: str) -> None
:module: PyOpenColorIO
Set the family, for use in user interfaces (optional)
.. py:method:: ColorSpace.setIsData(self: PyOpenColorIO.ColorSpace, isData: bool) -> None
:module: PyOpenColorIO
.. py:method:: ColorSpace.setName(self: PyOpenColorIO.ColorSpace, name: str) -> None
:module: PyOpenColorIO
If the name is already an alias, that alias is removed.
.. py:method:: ColorSpace.setTransform(self: PyOpenColorIO.ColorSpace, transform: PyOpenColorIO.Transform, direction: PyOpenColorIO.ColorSpaceDirection) -> None
:module: PyOpenColorIO
Specify the transform for the appropriate direction. Setting the transform to null will clear it.
.. py:class:: ColorSpaceCategoryIterator
:module: PyOpenColorIO.ColorSpace
.. py:method:: ColorSpaceCategoryIterator.__getitem__(self: PyOpenColorIO.ColorSpace.ColorSpaceCategoryIterator, arg0: int) -> str
:module: PyOpenColorIO.ColorSpace
.. py:method:: ColorSpaceCategoryIterator.__iter__(self: PyOpenColorIO.ColorSpace.ColorSpaceCategoryIterator) -> PyOpenColorIO.ColorSpace.ColorSpaceCategoryIterator
:module: PyOpenColorIO.ColorSpace
.. py:method:: ColorSpaceCategoryIterator.__len__(self: PyOpenColorIO.ColorSpace.ColorSpaceCategoryIterator) -> int
:module: PyOpenColorIO.ColorSpace
.. py:method:: ColorSpaceCategoryIterator.__next__(self: PyOpenColorIO.ColorSpace.ColorSpaceCategoryIterator) -> str
:module: PyOpenColorIO.ColorSpace
@@ -1,26 +0,0 @@
..
SPDX-License-Identifier: CC-BY-4.0
Copyright Contributors to the OpenColorIO Project.
Do not edit! This file was automatically generated by share/docs/frozendoc.py.
.. py:class:: ColorSpaceDirection
:module: PyOpenColorIO
Members:
COLORSPACE_DIR_TO_REFERENCE :
COLORSPACE_DIR_FROM_REFERENCE :
.. py:method:: name() -> str
:property:
.. py:attribute:: ColorSpaceDirection.COLORSPACE_DIR_FROM_REFERENCE
:module: PyOpenColorIO
:value: <ColorSpaceDirection.COLORSPACE_DIR_FROM_REFERENCE: 1>
.. py:attribute:: ColorSpaceDirection.COLORSPACE_DIR_TO_REFERENCE
:module: PyOpenColorIO
:value: <ColorSpaceDirection.COLORSPACE_DIR_TO_REFERENCE: 0>
@@ -1,12 +0,0 @@
..
SPDX-License-Identifier: CC-BY-4.0
Copyright Contributors to the OpenColorIO Project.
Do not edit! This file was automatically generated by share/docs/frozendoc.py.
.. py:function:: AddColorSpace(config: PyOpenColorIO.Config, name: str, transformFilePath: str, categories: str = '', connectionColorSpaceName: str) -> None
:module: PyOpenColorIO.ColorSpaceHelpers
Add a new color space to the config instance. The output of the userTransform must be in the specified connectionColorSpace.
Note: If the config does not already use categories, we do not add them since that would make a big change to how existing color spaces show up in menus.
@@ -1,96 +0,0 @@
..
SPDX-License-Identifier: CC-BY-4.0
Copyright Contributors to the OpenColorIO Project.
Do not edit! This file was automatically generated by share/docs/frozendoc.py.
.. py:class:: ColorSpaceMenuHelper
:module: PyOpenColorIO
Helper class to create menus for the content of a config.
Menu can list color spaces, roles, named transforms. Each entry has a name, a UI name, a description, and a family. Family can also be accessed as hierarchy levels; levels are created by splitting the family using the 'family separator'. Hierarchy levels are meant to be used as sub-menus.
The UI name is what is intended to be put in application menus seen by the end-user. However, please note that the UI name is not guaranteed to remain stable between releases and so if applications need to save something it should be the 'name' rather than the 'UI name'. Currently, the only difference between the 'name' and 'UI name' is for roles.
The overall ordering of items is: color spaces, named transforms, roles, and additional color spaces. The display color spaces will either come before or after the other color spaces based on where that block of spaces appears in the config. The order of items returned by the menu helper preserves the order of items in the config itself for each type of elements, thus preserving the intent of the config author. For example, if you call getName at idx and idx+1, the name returned at idx+1 will be from farther down in the config than the one at idx as long as both are of the same type. (An application may ask for only the items in one of those blocks if it wants to handle them separately.) If the application makes use of hierarchical menus, that will obviously impose a different order on what the user sees in the menu. Though even with hierarchical menus, applications should try to preserve config ordering (which is equivalent to index ordering) for items within the same sub-menu.
.. py:method:: ColorSpaceMenuHelper.__init__(self: PyOpenColorIO.ColorSpaceMenuHelper, parameters: PyOpenColorIO.ColorSpaceMenuParameters) -> None
:module: PyOpenColorIO
.. py:method:: ColorSpaceMenuHelper.__str__(self: PyOpenColorIO.ColorSpaceMenuHelper) -> str
:module: PyOpenColorIO
.. py:method:: ColorSpaceMenuHelper.getDescription(self: PyOpenColorIO.ColorSpaceMenuHelper, index: int) -> str
:module: PyOpenColorIO
.. py:method:: ColorSpaceMenuHelper.getFamily(self: PyOpenColorIO.ColorSpaceMenuHelper, index: int) -> str
:module: PyOpenColorIO
.. py:method:: ColorSpaceMenuHelper.getHierarchyLevels(self: PyOpenColorIO.ColorSpaceMenuHelper, index: int) -> OpenColorIO_v2_0rc1::PyIterator<std::shared_ptr<OpenColorIO_v2_0rc1::ColorSpaceMenuHelper>,0,unsigned __int64>
:module: PyOpenColorIO
.. py:method:: ColorSpaceMenuHelper.getIndexFromName(self: PyOpenColorIO.ColorSpaceMenuHelper, name: str) -> int
:module: PyOpenColorIO
Get the index of the element of a given name. Return (size_t)-1 name if NULL or empty, or if no element with that name is found.
.. py:method:: ColorSpaceMenuHelper.getIndexFromUIName(self: PyOpenColorIO.ColorSpaceMenuHelper, name: str) -> int
:module: PyOpenColorIO
.. py:method:: ColorSpaceMenuHelper.getName(self: PyOpenColorIO.ColorSpaceMenuHelper, index: int) -> str
:module: PyOpenColorIO
Get the color space (or role) name used in the config for this menu item. Will be empty if the index is out of range.
.. py:method:: ColorSpaceMenuHelper.getNameFromUIName(self: PyOpenColorIO.ColorSpaceMenuHelper, name: str) -> str
:module: PyOpenColorIO
Get the color space name from the UI name.
.. py:method:: ColorSpaceMenuHelper.getNumColorSpaces(self: PyOpenColorIO.ColorSpaceMenuHelper) -> int
:module: PyOpenColorIO
Access to the color spaces (or roles).
.. py:method:: ColorSpaceMenuHelper.getUIName(self: PyOpenColorIO.ColorSpaceMenuHelper, index: int) -> str
:module: PyOpenColorIO
Get the name to use in the menu UI. This might be different from the config name, for example in the case of roles. Will be empty if the index is out of range.
.. py:method:: ColorSpaceMenuHelper.getUINameFromName(self: PyOpenColorIO.ColorSpaceMenuHelper, name: str) -> str
:module: PyOpenColorIO
Get the color space UI name from the name.
.. py:class:: ColorSpaceLevelIterator
:module: PyOpenColorIO.ColorSpaceMenuHelper
.. py:method:: ColorSpaceLevelIterator.__getitem__(self: PyOpenColorIO.ColorSpaceMenuHelper.ColorSpaceLevelIterator, arg0: int) -> str
:module: PyOpenColorIO.ColorSpaceMenuHelper
.. py:method:: ColorSpaceLevelIterator.__iter__(self: PyOpenColorIO.ColorSpaceMenuHelper.ColorSpaceLevelIterator) -> PyOpenColorIO.ColorSpaceMenuHelper.ColorSpaceLevelIterator
:module: PyOpenColorIO.ColorSpaceMenuHelper
.. py:method:: ColorSpaceLevelIterator.__len__(self: PyOpenColorIO.ColorSpaceMenuHelper.ColorSpaceLevelIterator) -> int
:module: PyOpenColorIO.ColorSpaceMenuHelper
.. py:method:: ColorSpaceLevelIterator.__next__(self: PyOpenColorIO.ColorSpaceMenuHelper.ColorSpaceLevelIterator) -> str
:module: PyOpenColorIO.ColorSpaceMenuHelper
@@ -1,180 +0,0 @@
..
SPDX-License-Identifier: CC-BY-4.0
Copyright Contributors to the OpenColorIO Project.
Do not edit! This file was automatically generated by share/docs/frozendoc.py.
.. py:class:: ColorSpaceMenuParameters
:module: PyOpenColorIO
Parameters controlling which color spaces appear in menus.
The :ref:`ColorSpaceMenuHelper` class is intended to be used by applications to get the list of items to show in color space menus.
The :ref:`ColorSpaceMenuParameters` class is used to configure the behavior as needed for any given menu. Here is the algorithm used to produce a list of "items" (or strings) that will appear in a menu:
1) Use setRole to identify a role that controls a given menu. If the config has this role, then only that color space is returned. The name is set to the color space name, the UIName is presented as "<role name> (<color space name>)". It may be useful for the application to then grey-out the menu or otherwise indicate to the user that the value for this menu is not user selectable since it was pre-determined by the config. If the config does not have that role, the algorithm continues to the remaining steps.
2) The IncludeColorSpaces, SearchReferenceSpaceType, and IncludeNamedTransforms parameters are used to identify a set of items from the config that are potential candidates for use in the menu, as follows:
- IncludeColorSpaces: Set to true to include color spaces in the menu.
- SearchReferenceSpaceType: Use this to control whether the menu should include all color spaces, only display color spaces, or only non-display color spaces.
- IncludeNamedTransforms: Set to true to include named transforms in the menu.
3) The set of items from step 2 is then filtered in step 3 using the following parameters:
- AppCategories: A list of strings specified by the application based on the purpose of the menu. For example, if the menu is used to select a color space for importing an image, the application might specify the 'file-io' category, whereas if it is to select a working color space, it might specify the 'working-space' category. Application developers should document what strings they are using for each menu so that config authors know what categories to use in their configs. Alternatively, an application could let advanced users customize the string to use for a given menu in the application.
- Encodings: A list of strings used to further refine the items selected from the AppCategories. For example, an application might specify 'working-space' as the category and then specify 'scene-linear' as the encoding to only use items that have both of those properties (e.g., only select scene-linear working color spaces).
- UserCategories: A list of strings specified by the end-user of the application. OCIO will check for these strings in an environment variable, or they may be passed in from the application.
Basically the intent is for the filtering to return the intersection of the app categories, encoding, and user categories. However, some fall-backs are in place to ensure that the filtering does not remove all menu items. Here is the detailed description:
3a) The items from step 2 are filtered to generate a list of appItems containing only the ones that contain at least one of the AppCategories strings in their "categories" property and one of the encodings in their "encoding" property. If this list is empty, an attempt is made to generate a non-empty appItems list by only filtering by AppCategories. If that is empty, an attempt is made to only filter by Encodings.
3b) The items from step 2 are filtered to generate a list of userItems containing only the ones that have at least one of the UserCategories strings in their "categories" property.
3c) If both appItems and userItems are non-empty, a list of resultItems will be generated as the intersection of those two lists.
3d) If the resultItems list is empty, the appList will be expanded by only filtering by AppCategories and not encodings. The resultItems will be formed again as the intersection of the appItems and userItems.
3e) If the resultItems is still empty, it will be set to just the appItems from step 3a.
3f) If the resultItems is still empty, it will be set to just the userItems.
3g) If the resultItems is still empty, the items are not filtered and all items from step 2 are returned. The rationale is that if step 2 has produced any items, it is not acceptable for step 3 to remove all of them. An application usually expects to have a non-zero number of items to display in the menu. However, if step 2 produces no items (e.g. the application requests only named transforms and the config has no named transform), then no items will be returned.
4) If IncludeRoles is true, the items from step 3 are extended by including an item for each role. The name is set to the role name, the UIName is presented as "<role name> (<color
space name>)", and the family is set to "Roles".
5) If AddColorSpace has been used to add any additional items, these are appended to the final list.
.. py:class:: ColorSpaceMenuParameters.AddedColorSpaceIterator
:module: PyOpenColorIO
.. py:method:: ColorSpaceMenuParameters.AddedColorSpaceIterator.__init__(*args, **kwargs)
:module: PyOpenColorIO
Initialize self. See help(type(self)) for accurate signature.
.. py:method:: ColorSpaceMenuParameters.__init__(*args, **kwargs)
:module: PyOpenColorIO
Overloaded function.
1. __init__(self: PyOpenColorIO.ColorSpaceMenuParameters, config: PyOpenColorIO.Config) -> None
2. __init__(self: PyOpenColorIO.ColorSpaceMenuParameters, config: PyOpenColorIO.Config, role: str = '', includeColorSpaces: bool = True, searchReferenceSpaceType: PyOpenColorIO.SearchReferenceSpaceType = <SearchReferenceSpaceType.SEARCH_REFERENCE_SPACE_ALL: 2>, includeNamedTransforms: bool = False, appCategories: str = '', encodings: str = '', userCategories: str = '', includeRoles: bool = False) -> None
.. py:method:: ColorSpaceMenuParameters.__str__(self: PyOpenColorIO.ColorSpaceMenuParameters) -> str
:module: PyOpenColorIO
.. py:method:: ColorSpaceMenuParameters.addColorSpace(self: PyOpenColorIO.ColorSpaceMenuParameters, colorSpace: str) -> None
:module: PyOpenColorIO
Add an additional color space (or named transform) to the menu.
Note that an additional color space could be:
- an inactive color space,
- an active color space not having at least one of the selected categories,
- a newly created color space. Will throw when creating the menu if color space is not part of the config. Nothing is done if it is already part of the menu. It's ok to call this multiple times with the same color space, it will only be added to the menu once. If a role name is passed in, the name in the menu will be the color space name the role points to.
.. py:method:: ColorSpaceMenuParameters.clearAddedColorSpaces(self: PyOpenColorIO.ColorSpaceMenuParameters) -> None
:module: PyOpenColorIO
.. py:method:: ColorSpaceMenuParameters.getAddedColorSpaces(self: PyOpenColorIO.ColorSpaceMenuParameters) -> OpenColorIO_v2_0rc1::PyIterator<std::shared_ptr<OpenColorIO_v2_0rc1::ColorSpaceMenuParameters>,0>
:module: PyOpenColorIO
.. py:method:: ColorSpaceMenuParameters.getAppCategories(self: PyOpenColorIO.ColorSpaceMenuParameters) -> str
:module: PyOpenColorIO
.. py:method:: ColorSpaceMenuParameters.getConfig(self: PyOpenColorIO.ColorSpaceMenuParameters) -> PyOpenColorIO.Config
:module: PyOpenColorIO
.. py:method:: ColorSpaceMenuParameters.getEncodings(self: PyOpenColorIO.ColorSpaceMenuParameters) -> str
:module: PyOpenColorIO
.. py:method:: ColorSpaceMenuParameters.getIncludeColorSpaces(self: PyOpenColorIO.ColorSpaceMenuParameters) -> bool
:module: PyOpenColorIO
.. py:method:: ColorSpaceMenuParameters.getIncludeNamedTransforms(self: PyOpenColorIO.ColorSpaceMenuParameters) -> bool
:module: PyOpenColorIO
.. py:method:: ColorSpaceMenuParameters.getIncludeRoles(self: PyOpenColorIO.ColorSpaceMenuParameters) -> bool
:module: PyOpenColorIO
.. py:method:: ColorSpaceMenuParameters.getRole(self: PyOpenColorIO.ColorSpaceMenuParameters) -> str
:module: PyOpenColorIO
.. py:method:: ColorSpaceMenuParameters.getSearchReferenceSpaceType(self: PyOpenColorIO.ColorSpaceMenuParameters) -> PyOpenColorIO.SearchReferenceSpaceType
:module: PyOpenColorIO
Can be used to restrict the search using the ReferenceSpaceType of the color spaces. It has no effect on roles and named transforms.
.. py:method:: ColorSpaceMenuParameters.getUserCategories(self: PyOpenColorIO.ColorSpaceMenuParameters) -> str
:module: PyOpenColorIO
.. py:method:: ColorSpaceMenuParameters.setAppCategories(self: PyOpenColorIO.ColorSpaceMenuParameters, appCategories: str) -> None
:module: PyOpenColorIO
App categories is a comma separated list of categories. If appCategories is not NULL and not empty, all color spaces that have one of the categories will be part of the menu.
.. py:method:: ColorSpaceMenuParameters.setConfig(self: PyOpenColorIO.ColorSpaceMenuParameters, config: PyOpenColorIO.Config) -> None
:module: PyOpenColorIO
:ref:`Config` is required to be able to create a :ref:`ColorSpaceMenuHelper`.
.. py:method:: ColorSpaceMenuParameters.setEncodings(self: PyOpenColorIO.ColorSpaceMenuParameters, encodings: str) -> None
:module: PyOpenColorIO
Encodings is a comma separated list of encodings. When not empty, is retricting the search to color spaces that are using one of the encodings.
.. py:method:: ColorSpaceMenuParameters.setIncludeColorSpaces(self: PyOpenColorIO.ColorSpaceMenuParameters, includeColorSpaces: bool = True) -> None
:module: PyOpenColorIO
Include all color spaces (or not) to :ref:`ColorSpaceMenuHelper`. Default is to include color spaces.
.. py:method:: ColorSpaceMenuParameters.setIncludeNamedTransforms(self: PyOpenColorIO.ColorSpaceMenuParameters, includeNamedTransforms: bool = True) -> None
:module: PyOpenColorIO
Include all named transforms (or not) to :ref:`ColorSpaceMenuHelper`. Default is not to include named transforms.
.. py:method:: ColorSpaceMenuParameters.setIncludeRoles(self: PyOpenColorIO.ColorSpaceMenuParameters, includeRoles: bool = True) -> None
:module: PyOpenColorIO
Include all roles (or not) to :ref:`ColorSpaceMenuHelper`. Default is not to include roles. Roles are added after color spaces with an single hierarchy level named "Roles".
.. py:method:: ColorSpaceMenuParameters.setRole(self: PyOpenColorIO.ColorSpaceMenuParameters, role: str) -> None
:module: PyOpenColorIO
If role is a valid role, other parameters are ignored and menu will contain only that role.
.. py:method:: ColorSpaceMenuParameters.setSearchReferenceSpaceType(self: PyOpenColorIO.ColorSpaceMenuParameters, searchReferenceSpaceType: PyOpenColorIO.SearchReferenceSpaceType) -> None
:module: PyOpenColorIO
.. py:method:: ColorSpaceMenuParameters.setUserCategories(self: PyOpenColorIO.ColorSpaceMenuParameters, categories: str) -> None
:module: PyOpenColorIO
User categories is a comma separated list of categories. If OCIO_USER_CATEGORIES_ENVVAR env. variable is defined and not empty, this parameter is ignored and the value of the env. variable is used for user categories.
@@ -1,165 +0,0 @@
..
SPDX-License-Identifier: CC-BY-4.0
Copyright Contributors to the OpenColorIO Project.
Do not edit! This file was automatically generated by share/docs/frozendoc.py.
.. py:class:: ColorSpaceSet
:module: PyOpenColorIO
The *:ref:`ColorSpaceSet`* is a set of color spaces (i.e. no color space duplication) which could be the result of :cpp:func:`:ref:`Config::getColorSpaces`` or built from scratch.
.. note::
The color spaces are decoupled from the config ones, i.e., any changes to the set itself or to its color spaces do not affect the original color spaces from the configuration. If needed, use :cpp:func:`:ref:`Config::addColorSpace`` to update the configuration.
.. py:method:: ColorSpaceSet.__and__(self: PyOpenColorIO.ColorSpaceSet, arg0: PyOpenColorIO.ColorSpaceSet) -> PyOpenColorIO.ColorSpaceSet
:module: PyOpenColorIO
Perform the intersection of two sets.
.. note::
This function provides operations on two color space sets where the result contains copied color spaces and no duplicates.
:param lcss:
:param rcss:
.. py:method:: ColorSpaceSet.__eq__(self: PyOpenColorIO.ColorSpaceSet, arg0: PyOpenColorIO.ColorSpaceSet) -> bool
:module: PyOpenColorIO
Return true if the two sets are equal.
.. note::
The comparison is done on the color space names (not a deep comparison).
.. py:method:: ColorSpaceSet.__init__(self: PyOpenColorIO.ColorSpaceSet) -> None
:module: PyOpenColorIO
Create an empty set of color spaces.
.. py:method:: ColorSpaceSet.__ne__(self: PyOpenColorIO.ColorSpaceSet, arg0: PyOpenColorIO.ColorSpaceSet) -> bool
:module: PyOpenColorIO
Return true if the two sets are different.
.. py:method:: ColorSpaceSet.__or__(self: PyOpenColorIO.ColorSpaceSet, arg0: PyOpenColorIO.ColorSpaceSet) -> PyOpenColorIO.ColorSpaceSet
:module: PyOpenColorIO
Perform the union of two sets.
.. note::
This function provides operations on two color space sets where the result contains copied color spaces and no duplicates.
:param lcss:
:param rcss:
.. py:method:: ColorSpaceSet.__sub__(self: PyOpenColorIO.ColorSpaceSet, arg0: PyOpenColorIO.ColorSpaceSet) -> PyOpenColorIO.ColorSpaceSet
:module: PyOpenColorIO
Perform the difference of two sets.
.. note::
This function provides operations on two color space sets where the result contains copied color spaces and no duplicates.
:param lcss:
:param rcss:
.. py:method:: ColorSpaceSet.addColorSpace(self: PyOpenColorIO.ColorSpaceSet, colorSpace: PyOpenColorIO.ColorSpace) -> None
:module: PyOpenColorIO
Add color space(s).
.. note::
If another color space is already registered with the same name, this will overwrite it. This stores a copy of the specified color space(s). Throws if one of the aliases is already assigned as a name or alias to an existing color space.
.. py:method:: ColorSpaceSet.addColorSpaces(self: PyOpenColorIO.ColorSpaceSet, colorSpaces: PyOpenColorIO.ColorSpaceSet) -> None
:module: PyOpenColorIO
.. py:method:: ColorSpaceSet.clearColorSpaces(self: PyOpenColorIO.ColorSpaceSet) -> None
:module: PyOpenColorIO
Clear all color spaces.
.. py:method:: ColorSpaceSet.getColorSpace(self: PyOpenColorIO.ColorSpaceSet, name: str) -> PyOpenColorIO.ColorSpace
:module: PyOpenColorIO
.. note::
Only accepts color space names (i.e. no role name).
Will return null if the name is not found.
.. py:method:: ColorSpaceSet.getColorSpaceNames(self: PyOpenColorIO.ColorSpaceSet) -> PyOpenColorIO.ColorSpaceSet.ColorSpaceNameIterator
:module: PyOpenColorIO
.. py:method:: ColorSpaceSet.getColorSpaces(self: PyOpenColorIO.ColorSpaceSet) -> PyOpenColorIO.ColorSpaceSet.ColorSpaceIterator
:module: PyOpenColorIO
.. py:method:: ColorSpaceSet.removeColorSpace(self: PyOpenColorIO.ColorSpaceSet, colorSpace: str) -> None
:module: PyOpenColorIO
Remove color space(s) using color space names (i.e. no role name).
.. note::
The removal of a missing color space does nothing.
.. py:method:: ColorSpaceSet.removeColorSpaces(self: PyOpenColorIO.ColorSpaceSet, colorSpaces: PyOpenColorIO.ColorSpaceSet) -> None
:module: PyOpenColorIO
.. py:class:: ColorSpaceNameIterator
:module: PyOpenColorIO.ColorSpaceSet
.. py:method:: ColorSpaceNameIterator.__getitem__(self: PyOpenColorIO.ColorSpaceSet.ColorSpaceNameIterator, arg0: int) -> str
:module: PyOpenColorIO.ColorSpaceSet
.. py:method:: ColorSpaceNameIterator.__iter__(self: PyOpenColorIO.ColorSpaceSet.ColorSpaceNameIterator) -> PyOpenColorIO.ColorSpaceSet.ColorSpaceNameIterator
:module: PyOpenColorIO.ColorSpaceSet
.. py:method:: ColorSpaceNameIterator.__len__(self: PyOpenColorIO.ColorSpaceSet.ColorSpaceNameIterator) -> int
:module: PyOpenColorIO.ColorSpaceSet
.. py:method:: ColorSpaceNameIterator.__next__(self: PyOpenColorIO.ColorSpaceSet.ColorSpaceNameIterator) -> str
:module: PyOpenColorIO.ColorSpaceSet
.. py:class:: ColorSpaceIterator
:module: PyOpenColorIO.ColorSpaceSet
.. py:method:: ColorSpaceIterator.__getitem__(self: PyOpenColorIO.ColorSpaceSet.ColorSpaceIterator, arg0: int) -> PyOpenColorIO.ColorSpace
:module: PyOpenColorIO.ColorSpaceSet
.. py:method:: ColorSpaceIterator.__iter__(self: PyOpenColorIO.ColorSpaceSet.ColorSpaceIterator) -> PyOpenColorIO.ColorSpaceSet.ColorSpaceIterator
:module: PyOpenColorIO.ColorSpaceSet
.. py:method:: ColorSpaceIterator.__len__(self: PyOpenColorIO.ColorSpaceSet.ColorSpaceIterator) -> int
:module: PyOpenColorIO.ColorSpaceSet
.. py:method:: ColorSpaceIterator.__next__(self: PyOpenColorIO.ColorSpaceSet.ColorSpaceIterator) -> PyOpenColorIO.ColorSpace
:module: PyOpenColorIO.ColorSpaceSet
@@ -1,68 +0,0 @@
..
SPDX-License-Identifier: CC-BY-4.0
Copyright Contributors to the OpenColorIO Project.
Do not edit! This file was automatically generated by share/docs/frozendoc.py.
.. py:class:: ColorSpaceTransform
:module: PyOpenColorIO
.. py:method:: ColorSpaceTransform.__init__(*args, **kwargs)
:module: PyOpenColorIO
Overloaded function.
1. __init__(self: PyOpenColorIO.ColorSpaceTransform) -> None
2. __init__(self: PyOpenColorIO.ColorSpaceTransform, src: str = '', dst: str = '', direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>, dataBypass: bool = True) -> None
.. py:method:: ColorSpaceTransform.__str__(self: PyOpenColorIO.ColorSpaceTransform) -> str
:module: PyOpenColorIO
.. py:method:: ColorSpaceTransform.getDataBypass(self: PyOpenColorIO.ColorSpaceTransform) -> bool
:module: PyOpenColorIO
Data color spaces do not get processed when true (which is the default).
.. py:method:: ColorSpaceTransform.getDirection(self: PyOpenColorIO.Transform) -> PyOpenColorIO.TransformDirection
:module: PyOpenColorIO
.. py:method:: ColorSpaceTransform.getDst(self: PyOpenColorIO.ColorSpaceTransform) -> str
:module: PyOpenColorIO
.. py:method:: ColorSpaceTransform.getSrc(self: PyOpenColorIO.ColorSpaceTransform) -> str
:module: PyOpenColorIO
.. py:method:: ColorSpaceTransform.getTransformType(self: PyOpenColorIO.Transform) -> PyOpenColorIO.TransformType
:module: PyOpenColorIO
.. py:method:: ColorSpaceTransform.setDataBypass(self: PyOpenColorIO.ColorSpaceTransform, dataBypass: bool) -> None
:module: PyOpenColorIO
.. py:method:: ColorSpaceTransform.setDirection(self: PyOpenColorIO.Transform, direction: PyOpenColorIO.TransformDirection) -> None
:module: PyOpenColorIO
Note that this only affects the evaluation and not the values stored in the object.
.. py:method:: ColorSpaceTransform.setDst(self: PyOpenColorIO.ColorSpaceTransform, dst: str) -> None
:module: PyOpenColorIO
.. py:method:: ColorSpaceTransform.setSrc(self: PyOpenColorIO.ColorSpaceTransform, src: str) -> None
:module: PyOpenColorIO
.. py:method:: ColorSpaceTransform.validate(self: PyOpenColorIO.Transform) -> None
:module: PyOpenColorIO
Will throw if data is not valid.
@@ -1,33 +0,0 @@
..
SPDX-License-Identifier: CC-BY-4.0
Copyright Contributors to the OpenColorIO Project.
Do not edit! This file was automatically generated by share/docs/frozendoc.py.
.. py:class:: ColorSpaceVisibility
:module: PyOpenColorIO
Members:
COLORSPACE_ACTIVE :
COLORSPACE_INACTIVE :
COLORSPACE_ALL :
.. py:method:: name() -> str
:property:
.. py:attribute:: ColorSpaceVisibility.COLORSPACE_ACTIVE
:module: PyOpenColorIO
:value: <ColorSpaceVisibility.COLORSPACE_ACTIVE: 0>
.. py:attribute:: ColorSpaceVisibility.COLORSPACE_ALL
:module: PyOpenColorIO
:value: <ColorSpaceVisibility.COLORSPACE_ALL: 2>
.. py:attribute:: ColorSpaceVisibility.COLORSPACE_INACTIVE
:module: PyOpenColorIO
:value: <ColorSpaceVisibility.COLORSPACE_INACTIVE: 1>
@@ -1,8 +0,0 @@
..
SPDX-License-Identifier: CC-BY-4.0
Copyright Contributors to the OpenColorIO Project.
Do not edit! This file was automatically generated by share/docs/frozendoc.py.
.. py:function:: CombineTransformDirections(direction1: PyOpenColorIO.TransformDirection, direction2: PyOpenColorIO.TransformDirection) -> PyOpenColorIO.TransformDirection
:module: PyOpenColorIO
File diff suppressed because it is too large Load Diff
@@ -1,174 +0,0 @@
..
SPDX-License-Identifier: CC-BY-4.0
Copyright Contributors to the OpenColorIO Project.
Do not edit! This file was automatically generated by share/docs/frozendoc.py.
.. py:class:: Context
:module: PyOpenColorIO
.. py:method:: Context.__init__(*args, **kwargs)
:module: PyOpenColorIO
Overloaded function.
1. __init__(self: PyOpenColorIO.Context) -> None
2. __init__(self: PyOpenColorIO.Context, workingDir: str = '', searchPaths: List[str] = [], stringVars: Dict[str, str] = {}, environmentMode: PyOpenColorIO.EnvironmentMode = <EnvironmentMode.ENV_ENVIRONMENT_LOAD_PREDEFINED: 1>) -> None
.. py:method:: Context.__str__(self: PyOpenColorIO.Context) -> str
:module: PyOpenColorIO
.. py:method:: Context.addSearchPath(self: PyOpenColorIO.Context, path: str) -> None
:module: PyOpenColorIO
.. py:method:: Context.clearSearchPaths(self: PyOpenColorIO.Context) -> None
:module: PyOpenColorIO
.. py:method:: Context.clearStringVars(self: PyOpenColorIO.Context) -> None
:module: PyOpenColorIO
.. py:method:: Context.getCacheID(self: PyOpenColorIO.Context) -> str
:module: PyOpenColorIO
.. py:method:: Context.getEnvironmentMode(self: PyOpenColorIO.Context) -> PyOpenColorIO.EnvironmentMode
:module: PyOpenColorIO
cpp:function::
.. py:method:: Context.getSearchPath(self: PyOpenColorIO.Context) -> str
:module: PyOpenColorIO
.. py:method:: Context.getSearchPaths(self: PyOpenColorIO.Context) -> PyOpenColorIO.Context.SearchPathIterator
:module: PyOpenColorIO
.. py:method:: Context.getStringVars(self: PyOpenColorIO.Context) -> PyOpenColorIO.Context.StringVarIterator
:module: PyOpenColorIO
.. py:method:: Context.getWorkingDir(self: PyOpenColorIO.Context) -> str
:module: PyOpenColorIO
.. py:method:: Context.loadEnvironment(self: PyOpenColorIO.Context) -> None
:module: PyOpenColorIO
Seed all string vars with the current environment.
.. py:method:: Context.resolveFileLocation(*args, **kwargs)
:module: PyOpenColorIO
Overloaded function.
1. resolveFileLocation(self: PyOpenColorIO.Context, filename: str) -> str
Build the resolved and expanded filepath using the search_path when needed, and check if the filepath exists. If it cannot be resolved or found, an exception will be thrown. The method argument is directly from the config file so it can be an absolute or relative file path or a file name.
.. note::
The filepath existence check could add a performance hit.
.. note::
The context variable resolution is performed using :cpp:func:`resolveStringVar`.
2. resolveFileLocation(self: PyOpenColorIO.Context, filename: str, usedContextVars: PyOpenColorIO.Context) -> str
Build the resolved and expanded filepath and return all the context variables used to resolve the filename (empty if no context variables were used).
.. py:method:: Context.resolveStringVar(*args, **kwargs)
:module: PyOpenColorIO
Overloaded function.
1. resolveStringVar(self: PyOpenColorIO.Context, string: str) -> str
cpp:function:: Resolve all the context variables from the string. It could be color space
2. resolveStringVar(self: PyOpenColorIO.Context, string: str, usedContextVars: PyOpenColorIO.Context) -> str
cpp:function:: Resolve all the context variables from the string and return all the context
.. py:method:: Context.setEnvironmentMode(self: PyOpenColorIO.Context, mode: PyOpenColorIO.EnvironmentMode) -> None
:module: PyOpenColorIO
cpp:function::
.. py:method:: Context.setSearchPath(self: PyOpenColorIO.Context, path: str) -> None
:module: PyOpenColorIO
.. py:method:: Context.setWorkingDir(self: PyOpenColorIO.Context, dirName: str) -> None
:module: PyOpenColorIO
.. py:class:: StringVarNameIterator
:module: PyOpenColorIO.Context
.. py:method:: StringVarNameIterator.__getitem__(self: PyOpenColorIO.Context.StringVarNameIterator, arg0: int) -> str
:module: PyOpenColorIO.Context
.. py:method:: StringVarNameIterator.__iter__(self: PyOpenColorIO.Context.StringVarNameIterator) -> PyOpenColorIO.Context.StringVarNameIterator
:module: PyOpenColorIO.Context
.. py:method:: StringVarNameIterator.__len__(self: PyOpenColorIO.Context.StringVarNameIterator) -> int
:module: PyOpenColorIO.Context
.. py:method:: StringVarNameIterator.__next__(self: PyOpenColorIO.Context.StringVarNameIterator) -> str
:module: PyOpenColorIO.Context
.. py:class:: StringVarIterator
:module: PyOpenColorIO.Context
.. py:method:: StringVarIterator.__getitem__(self: PyOpenColorIO.Context.StringVarIterator, arg0: int) -> tuple
:module: PyOpenColorIO.Context
.. py:method:: StringVarIterator.__iter__(self: PyOpenColorIO.Context.StringVarIterator) -> PyOpenColorIO.Context.StringVarIterator
:module: PyOpenColorIO.Context
.. py:method:: StringVarIterator.__len__(self: PyOpenColorIO.Context.StringVarIterator) -> int
:module: PyOpenColorIO.Context
.. py:method:: StringVarIterator.__next__(self: PyOpenColorIO.Context.StringVarIterator) -> tuple
:module: PyOpenColorIO.Context
.. py:class:: SearchPathIterator
:module: PyOpenColorIO.Context
.. py:method:: SearchPathIterator.__getitem__(self: PyOpenColorIO.Context.SearchPathIterator, arg0: int) -> str
:module: PyOpenColorIO.Context
.. py:method:: SearchPathIterator.__iter__(self: PyOpenColorIO.Context.SearchPathIterator) -> PyOpenColorIO.Context.SearchPathIterator
:module: PyOpenColorIO.Context
.. py:method:: SearchPathIterator.__len__(self: PyOpenColorIO.Context.SearchPathIterator) -> int
:module: PyOpenColorIO.Context
.. py:method:: SearchPathIterator.__next__(self: PyOpenColorIO.Context.SearchPathIterator) -> str
:module: PyOpenColorIO.Context
@@ -1,179 +0,0 @@
..
SPDX-License-Identifier: CC-BY-4.0
Copyright Contributors to the OpenColorIO Project.
Do not edit! This file was automatically generated by share/docs/frozendoc.py.
.. py:class:: CPUProcessor
:module: PyOpenColorIO
.. 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
Overloaded function.
1. apply(self: PyOpenColorIO.CPUProcessor, imgDesc: OpenColorIO_v2_0rc1::PyImageDesc) -> None
Apply to an image with any kind of channel ordering while respecting
the input and output bit-depths. Image values are modified in place.
.. note::
The GIL is released during processing, freeing up Python to execute
other threads concurrently.
.. note::
For large images, ``applyRGB`` or ``applyRGBA`` are preferred for
processing a NumPy array. The Python ``ImageDesc`` implementation
requires copying all values (once) in order to own the underlying
pointer. The dedicated packed ``apply*`` methods utilize
``ImageDesc`` on the C++ side so avoid the copy.
2. apply(self: PyOpenColorIO.CPUProcessor, srcImgDesc: OpenColorIO_v2_0rc1::PyImageDesc, dstImgDesc: OpenColorIO_v2_0rc1::PyImageDesc) -> None
Apply to an image with any kind of channel ordering while respecting
the input and output bit-depths. Modified srcImgDesc image values are
written to the dstImgDesc image, leaving srcImgDesc unchanged.
.. note::
The GIL is released during processing, freeing up Python to execute
other threads concurrently.
.. note::
For large images, ``applyRGB`` or ``applyRGBA`` are preferred for
processing a NumPy array. The Python ``ImageDesc`` implementation
requires copying all values (once) in order to own the underlying
pointer. The dedicated packed ``apply*`` methods utilize
``ImageDesc`` on the C++ side so avoid the copy.
.. py:method:: CPUProcessor.applyRGB(*args, **kwargs)
:module: PyOpenColorIO
Overloaded function.
1. applyRGB(self: PyOpenColorIO.CPUProcessor, data: buffer) -> None
Apply to a packed RGB array adhering to the Python buffer protocol.
This will typically be a NumPy array. Input and output bit-depths are
respected but must match. Any array size or shape is supported as long
as the flattened array size is divisible by 3. Array values are
modified in place.
.. note::
This differs from the C++ implementation which only applies to a
single pixel. This method uses a ``PackedImageDesc`` under the
hood to apply to an entire image at once. The GIL is released
during processing, freeing up Python to execute other threads
concurrently.
2. applyRGB(self: PyOpenColorIO.CPUProcessor, data: List[float]) -> List[float]
Apply to a packed RGB list of float values. Any size is supported as
long as the list length is divisible by 3. A new list with processed
float values is returned, leaving the input list unchanged.
.. note::
This differs from the C++ implementation which only applies to a
single pixel. This method uses a ``PackedImageDesc`` under the
hood to apply to an entire image at once. The GIL is released
during processing, freeing up Python to execute other threads
concurrently.
.. note::
For large images, a NumPy array should be preferred over a list.
List values are copied on input and output, where an array is
modified in place.
.. py:method:: CPUProcessor.applyRGBA(*args, **kwargs)
:module: PyOpenColorIO
Overloaded function.
1. applyRGBA(self: PyOpenColorIO.CPUProcessor, data: buffer) -> None
Apply to a packed RGBA array adhering to the Python buffer protocol.
This will typically be a NumPy array. Input and output bit-depths are
respected but must match. Any array size or shape is supported as long
as the flattened array size is divisible by 4. Array values are
modified in place.
.. note::
This differs from the C++ implementation which only applies to a
single pixel. This method uses a ``PackedImageDesc`` under the
hood to apply to an entire image at once. The GIL is released
during processing, freeing up Python to execute other threads
concurrently.
2. applyRGBA(self: PyOpenColorIO.CPUProcessor, data: List[float]) -> List[float]
Apply to a packed RGBA list of float values. Any size is supported as
long as the list length is divisible by 4. A new list with processed
float values is returned, leaving the input list unchanged.
.. note::
This differs from the C++ implementation which only applies to a
single pixel. This method uses a ``PackedImageDesc`` under the
hood to apply to an entire image at once. The GIL is released
during processing, freeing up Python to execute other threads
concurrently.
.. note::
For large images, a NumPy array should be preferred over a list.
List values are copied on input and output, where an array is
modified in place.
.. py:method:: CPUProcessor.getCacheID(self: PyOpenColorIO.CPUProcessor) -> str
:module: PyOpenColorIO
.. py:method:: CPUProcessor.getDynamicProperty(self: PyOpenColorIO.CPUProcessor, type: PyOpenColorIO.DynamicPropertyType) -> PyOpenColorIO.DynamicProperty
:module: PyOpenColorIO
.. py:method:: CPUProcessor.getInputBitDepth(self: PyOpenColorIO.CPUProcessor) -> PyOpenColorIO.BitDepth
:module: PyOpenColorIO
Bit-depth of the input pixel buffer.
.. py:method:: CPUProcessor.getOutputBitDepth(self: PyOpenColorIO.CPUProcessor) -> PyOpenColorIO.BitDepth
:module: PyOpenColorIO
Bit-depth of the output pixel buffer.
.. py:method:: CPUProcessor.hasChannelCrosstalk(self: PyOpenColorIO.CPUProcessor) -> bool
:module: PyOpenColorIO
.. py:method:: CPUProcessor.isIdentity(self: PyOpenColorIO.CPUProcessor) -> bool
:module: PyOpenColorIO
Equivalent to isNoOp from the underlying :ref:`Processor`, i.e., it ignores in/out bit-depth differences.
.. py:method:: CPUProcessor.isNoOp(self: PyOpenColorIO.CPUProcessor) -> bool
:module: PyOpenColorIO
The in and out bit-depths must be equal for isNoOp to be true.
@@ -1,28 +0,0 @@
..
SPDX-License-Identifier: CC-BY-4.0
Copyright Contributors to the OpenColorIO Project.
Do not edit! This file was automatically generated by share/docs/frozendoc.py.
.. py:function:: GetProcessor(config: PyOpenColorIO.Config, context: PyOpenColorIO.Context = None, workingSpaceName: str, displayName: str, viewName: str, channelView: PyOpenColorIO.MatrixTransform = None, direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> PyOpenColorIO.Processor
:module: PyOpenColorIO.DisplayViewHelpers
Get the processor from the working color space to (display, view) pair (forward) or (display, view) pair to working (inverse). The working color space name could be a role name or a color space name. ChannelView can be empty. If not already present, each of these functions adds ExposureContrastTransforms to enable changing exposure, contrast, and gamma after the processor has been created using dynamic properties.
.. py:function:: GetIdentityProcessor(config: PyOpenColorIO.Config) -> PyOpenColorIO.Processor
:module: PyOpenColorIO.DisplayViewHelpers
Get an identity processor containing only the ExposureContrastTransforms.
.. py:function:: AddDisplayView(config: PyOpenColorIO.Config, displayName: str, viewName: str, lookName: str = '', colorSpaceName: str = '', colorSpaceFamily: str = '', colorSpaceDescription: str = '', colorSpaceCategories: str = '', transformFilePath: str, connectionColorSpaceName: str) -> None
:module: PyOpenColorIO.DisplayViewHelpers
Add a new (display, view) pair and the new color space to a configuration instance. The input to the userTransform must be in the specified connectionColorSpace.
.. py:function:: RemoveDisplayView(config: PyOpenColorIO.Config, displayName: str, viewName: str) -> None
:module: PyOpenColorIO.DisplayViewHelpers
Remove a (display, view) pair including the associated color space (only if not used). Note that the view is always removed but the display is only removed if empty.
@@ -1,92 +0,0 @@
..
SPDX-License-Identifier: CC-BY-4.0
Copyright Contributors to the OpenColorIO Project.
Do not edit! This file was automatically generated by share/docs/frozendoc.py.
.. py:class:: DisplayViewTransform
:module: PyOpenColorIO
.. py:method:: DisplayViewTransform.__init__(*args, **kwargs)
:module: PyOpenColorIO
Overloaded function.
1. __init__(self: PyOpenColorIO.DisplayViewTransform) -> None
2. __init__(self: PyOpenColorIO.DisplayViewTransform, src: str = '', display: str = '', view: str = '', looksBypass: bool = False, dataBypass: bool = True, direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
.. py:method:: DisplayViewTransform.__str__(self: PyOpenColorIO.DisplayViewTransform) -> str
:module: PyOpenColorIO
.. py:method:: DisplayViewTransform.getDataBypass(self: PyOpenColorIO.DisplayViewTransform) -> bool
:module: PyOpenColorIO
.. py:method:: DisplayViewTransform.getDirection(self: PyOpenColorIO.Transform) -> PyOpenColorIO.TransformDirection
:module: PyOpenColorIO
.. py:method:: DisplayViewTransform.getDisplay(self: PyOpenColorIO.DisplayViewTransform) -> str
:module: PyOpenColorIO
.. py:method:: DisplayViewTransform.getLooksBypass(self: PyOpenColorIO.DisplayViewTransform) -> bool
:module: PyOpenColorIO
.. py:method:: DisplayViewTransform.getSrc(self: PyOpenColorIO.DisplayViewTransform) -> str
:module: PyOpenColorIO
.. py:method:: DisplayViewTransform.getTransformType(self: PyOpenColorIO.Transform) -> PyOpenColorIO.TransformType
:module: PyOpenColorIO
.. py:method:: DisplayViewTransform.getView(self: PyOpenColorIO.DisplayViewTransform) -> str
:module: PyOpenColorIO
.. py:method:: DisplayViewTransform.setDataBypass(self: PyOpenColorIO.DisplayViewTransform, dataBypass: bool) -> None
:module: PyOpenColorIO
Data color spaces do not get processed when true (which is the default).
.. py:method:: DisplayViewTransform.setDirection(self: PyOpenColorIO.Transform, direction: PyOpenColorIO.TransformDirection) -> None
:module: PyOpenColorIO
Note that this only affects the evaluation and not the values stored in the object.
.. py:method:: DisplayViewTransform.setDisplay(self: PyOpenColorIO.DisplayViewTransform, display: str) -> None
:module: PyOpenColorIO
Specify which display to use.
.. py:method:: DisplayViewTransform.setLooksBypass(self: PyOpenColorIO.DisplayViewTransform, looksBypass: bool) -> None
:module: PyOpenColorIO
Looks will be bypassed when true (the default is false).
.. py:method:: DisplayViewTransform.setSrc(self: PyOpenColorIO.DisplayViewTransform, src: str) -> None
:module: PyOpenColorIO
Specify the incoming color space.
.. py:method:: DisplayViewTransform.setView(self: PyOpenColorIO.DisplayViewTransform, view: str) -> None
:module: PyOpenColorIO
Specify which view transform to use.
.. py:method:: DisplayViewTransform.validate(self: PyOpenColorIO.Transform) -> None
:module: PyOpenColorIO
Will throw if data is not valid.
@@ -1,74 +0,0 @@
..
SPDX-License-Identifier: CC-BY-4.0
Copyright Contributors to the OpenColorIO Project.
Do not edit! This file was automatically generated by share/docs/frozendoc.py.
.. py:class:: DynamicProperty
:module: PyOpenColorIO
Allows transform parameter values to be set on-the-fly (after finalization). For example, to modify the exposure in a viewport. Dynamic properties can be accessed from the :cpp:class:`:ref:`CPUProcessor`` or :cpp:class:`:ref:`GpuShaderCreator`` to change values between processing.
.. code-block:: cpp
OCIO::ConstConfigRcPtr config = OCIO::GetCurrentConfig(); OCIO::ConstProcessorRcPtr processor = config->getProcessor(colorSpace1, colorSpace2); OCIO::ConstCPUProcessorRcPtr cpuProcessor = processor->getDefaultCPUProcessor();
if (cpuProcessor->hasDynamicProperty(OCIO::DYNAMIC_PROPERTY_EXPOSURE)) { // Get the in-memory implementation of the dynamic property. OCIO::DynamicPropertyRcPtr dynProp = cpuProcessor->getDynamicProperty(OCIO::DYNAMIC_PROPERTY_EXPOSURE); // Get the interface used to change the double value. OCIO::DynamicPropertyDoubleRcPtr exposure = OCIO::DynamicPropertyValue::AsDouble(dynProp); // Update of the dynamic property instance with the new value. exposure->setValue(1.1f); } if (cpuProcessor->hasDynamicProperty(OCIO::DYNAMIC_PROPERTY_GRADING_PRIMARY)) { OCIO::DynamicPropertyRcPtr dynProp = cpuProcessor->getDynamicProperty(OCIO::DYNAMIC_PROPERTY_GRADING_PRIMARY); OCIO::DynamicPropertyGradingPrimaryRcPtr primaryProp = OCIO::DynamicPropertyValue::AsGradingPrimary(dynProp); OCIO::GradingPrimary primary = primaryProp->getValue(); primary.m_saturation += 0.1f; rgbCurveProp->setValue(primary); } if (cpuProcessor->hasDynamicProperty(OCIO::DYNAMIC_PROPERTY_GRADING_RGBCURVE)) { OCIO::DynamicPropertyRcPtr dynProp = cpuProcessor->getDynamicProperty(OCIO::DYNAMIC_PROPERTY_GRADING_RGBCURVE); OCIO::DynamicPropertyGradingRGBCurveRcPtr rgbCurveProp = OCIO::DynamicPropertyValue::AsGradingRGBCurve(dynProp); OCIO::ConstGradingRGBCurveRcPtr rgbCurve = rgbCurveProp->getValue()->createEditableCopy(); OCIO::GradingBSplineCurveRcPtr rCurve = rgbCurve->getCurve(OCIO::RGB_RED); rCurve->getControlPoint(1).m_y += 0.1f; rgbCurveProp->setValue(rgbCurve); }
.. 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
Get the property as DynamicPropertyDoubleRcPtr to access the double value. Will throw if property type is not a type that holds a double such as DYNAMIC_PROPERTY_EXPOSURE.
.. py:method:: DynamicProperty.getGradingPrimary(self: PyOpenColorIO.DynamicProperty) -> OpenColorIO_v2_0rc1::GradingPrimary
:module: PyOpenColorIO
Get the property as DynamicPropertyGradingPrimaryRcPtr to access the :ref:`GradingPrimary` value. Will throw if property type is not DYNAMIC_PROPERTY_GRADING_PRIMARY.
.. py:method:: DynamicProperty.getGradingRGBCurve(self: PyOpenColorIO.DynamicProperty) -> OpenColorIO_v2_0rc1::GradingRGBCurve
:module: PyOpenColorIO
Get the property as DynamicPropertyGradingRGBCurveRcPtr to access the GradingRGBCurveRcPtr value. Will throw if property type is not DYNAMIC_PROPERTY_GRADING_RGBCURVE.
.. py:method:: DynamicProperty.getGradingTone(self: PyOpenColorIO.DynamicProperty) -> OpenColorIO_v2_0rc1::GradingTone
:module: PyOpenColorIO
Get the property as DynamicPropertyGradingToneRcPtr to access the :ref:`GradingTone` value. Will throw if property type is not DYNAMIC_PROPERTY_GRADING_TONE.
.. py:method:: DynamicProperty.getType(self: PyOpenColorIO.DynamicProperty) -> PyOpenColorIO.DynamicPropertyType
:module: PyOpenColorIO
.. py:method:: DynamicProperty.setDouble(self: PyOpenColorIO.DynamicProperty, val: float) -> None
:module: PyOpenColorIO
Get the property as DynamicPropertyDoubleRcPtr to access the double value. Will throw if property type is not a type that holds a double such as DYNAMIC_PROPERTY_EXPOSURE.
.. py:method:: DynamicProperty.setGradingPrimary(self: PyOpenColorIO.DynamicProperty, val: OpenColorIO_v2_0rc1::GradingPrimary) -> None
:module: PyOpenColorIO
Get the property as DynamicPropertyGradingPrimaryRcPtr to access the :ref:`GradingPrimary` value. Will throw if property type is not DYNAMIC_PROPERTY_GRADING_PRIMARY.
.. py:method:: DynamicProperty.setGradingRGBCurve(self: PyOpenColorIO.DynamicProperty, val: OpenColorIO_v2_0rc1::GradingRGBCurve) -> None
:module: PyOpenColorIO
Get the property as DynamicPropertyGradingRGBCurveRcPtr to access the GradingRGBCurveRcPtr value. Will throw if property type is not DYNAMIC_PROPERTY_GRADING_RGBCURVE.
.. py:method:: DynamicProperty.setGradingTone(self: PyOpenColorIO.DynamicProperty, val: OpenColorIO_v2_0rc1::GradingTone) -> None
:module: PyOpenColorIO
Get the property as DynamicPropertyGradingToneRcPtr to access the :ref:`GradingTone` value. Will throw if property type is not DYNAMIC_PROPERTY_GRADING_TONE.
@@ -1,56 +0,0 @@
..
SPDX-License-Identifier: CC-BY-4.0
Copyright Contributors to the OpenColorIO Project.
Do not edit! This file was automatically generated by share/docs/frozendoc.py.
.. py:class:: DynamicPropertyType
:module: PyOpenColorIO
Types for dynamic properties.
Members:
DYNAMIC_PROPERTY_EXPOSURE : Image exposure value (double floating point value)
DYNAMIC_PROPERTY_CONTRAST : Image contrast value (double floating point value)
DYNAMIC_PROPERTY_GAMMA : Image gamma value (double floating point value)
DYNAMIC_PROPERTY_GRADING_PRIMARY : Used by :ref:`GradingPrimaryTransform`.
DYNAMIC_PROPERTY_GRADING_RGBCURVE : Used by :ref:`GradingRGBCurveTransform`.
DYNAMIC_PROPERTY_GRADING_TONE : Used by :ref:`GradingToneTransform`.
.. py:method:: name() -> str
:property:
.. py:attribute:: DynamicPropertyType.DYNAMIC_PROPERTY_CONTRAST
:module: PyOpenColorIO
:value: <DynamicPropertyType.DYNAMIC_PROPERTY_CONTRAST: 1>
.. py:attribute:: DynamicPropertyType.DYNAMIC_PROPERTY_EXPOSURE
:module: PyOpenColorIO
:value: <DynamicPropertyType.DYNAMIC_PROPERTY_EXPOSURE: 0>
.. py:attribute:: DynamicPropertyType.DYNAMIC_PROPERTY_GAMMA
:module: PyOpenColorIO
:value: <DynamicPropertyType.DYNAMIC_PROPERTY_GAMMA: 2>
.. py:attribute:: DynamicPropertyType.DYNAMIC_PROPERTY_GRADING_PRIMARY
:module: PyOpenColorIO
:value: <DynamicPropertyType.DYNAMIC_PROPERTY_GRADING_PRIMARY: 3>
.. py:attribute:: DynamicPropertyType.DYNAMIC_PROPERTY_GRADING_RGBCURVE
:module: PyOpenColorIO
:value: <DynamicPropertyType.DYNAMIC_PROPERTY_GRADING_RGBCURVE: 4>
.. py:attribute:: DynamicPropertyType.DYNAMIC_PROPERTY_GRADING_TONE
:module: PyOpenColorIO
:value: <DynamicPropertyType.DYNAMIC_PROPERTY_GRADING_TONE: 5>
@@ -1,33 +0,0 @@
..
SPDX-License-Identifier: CC-BY-4.0
Copyright Contributors to the OpenColorIO Project.
Do not edit! This file was automatically generated by share/docs/frozendoc.py.
.. py:class:: EnvironmentMode
:module: PyOpenColorIO
Members:
ENV_ENVIRONMENT_UNKNOWN :
ENV_ENVIRONMENT_LOAD_PREDEFINED :
ENV_ENVIRONMENT_LOAD_ALL :
.. py:method:: name() -> str
:property:
.. py:attribute:: EnvironmentMode.ENV_ENVIRONMENT_LOAD_ALL
:module: PyOpenColorIO
:value: <EnvironmentMode.ENV_ENVIRONMENT_LOAD_ALL: 2>
.. py:attribute:: EnvironmentMode.ENV_ENVIRONMENT_LOAD_PREDEFINED
:module: PyOpenColorIO
:value: <EnvironmentMode.ENV_ENVIRONMENT_LOAD_PREDEFINED: 1>
.. py:attribute:: EnvironmentMode.ENV_ENVIRONMENT_UNKNOWN
:module: PyOpenColorIO
:value: <EnvironmentMode.ENV_ENVIRONMENT_UNKNOWN: 0>

Some files were not shown because too many files have changed in this diff Show More