Compare commits
29
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
43477bf3e0 | ||
|
|
3f2bcfb3c4 | ||
|
|
05f5beed59 | ||
|
|
86a2aac56f | ||
|
|
ffba80b34c | ||
|
|
0c2aacb6c9 | ||
|
|
6c8cf83375 | ||
|
|
7a76cceb57 | ||
|
|
b37089aefb | ||
|
|
177a927ff5 | ||
|
|
a64e4d5d48 | ||
|
|
198c888ee9 | ||
|
|
b252372b7c | ||
|
|
17e52e38c6 | ||
|
|
7360206858 | ||
|
|
934b80829b | ||
|
|
36845c3f32 | ||
|
|
2d318af010 | ||
|
|
445c45b016 | ||
|
|
d950ab4bf7 | ||
|
|
d331992d93 | ||
|
|
9c5a324184 | ||
|
|
2716337500 | ||
|
|
30ac2904e3 | ||
|
|
ce3042cd10 | ||
|
|
15ffc9a414 | ||
|
|
7ec43b7d93 | ||
|
|
83d3412ff2 | ||
|
|
156d4ffda0 |
@@ -1,20 +0,0 @@
|
||||
# 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
|
||||
@@ -7,49 +7,96 @@
|
||||
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:
|
||||
# ---------------------------------------------------------------------------
|
||||
# SonarCloud static analysis
|
||||
# Latest ext packages
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
linux_sonarcloud:
|
||||
name: 'Linux VFX CY2023 SonarCloud'
|
||||
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 ASWF 'container' defined below.
|
||||
# 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-ocio:2023
|
||||
image: aswf/ci-base:${{ matrix.vfx-cy }}
|
||||
strategy:
|
||||
matrix:
|
||||
build: [1, 2, 3, 4]
|
||||
include:
|
||||
# -------------------------------------------------------------------
|
||||
# GCC
|
||||
# -------------------------------------------------------------------
|
||||
# VFX CY2022, C++17, docs, OpenFX
|
||||
- build: 1
|
||||
build-docs: 'ON'
|
||||
build-openfx: 'ON'
|
||||
cxx-standard: 17
|
||||
cxx-compiler: g++
|
||||
cc-compiler: gcc
|
||||
compiler-desc: GCC 9.3.1
|
||||
vfx-cy: 2022
|
||||
# VFX CY2021, C++14
|
||||
- build: 2
|
||||
build-docs: 'OFF'
|
||||
build-openfx: 'OFF'
|
||||
cxx-standard: 14
|
||||
cxx-compiler: g++
|
||||
cc-compiler: gcc
|
||||
compiler-desc: GCC 9.3.1
|
||||
vfx-cy: 2021
|
||||
# -------------------------------------------------------------------
|
||||
# Clang
|
||||
# -------------------------------------------------------------------
|
||||
# VFX CY2022, C++17
|
||||
- build: 3
|
||||
build-docs: 'OFF'
|
||||
build-openfx: 'OFF'
|
||||
cxx-standard: 17
|
||||
cxx-compiler: clang++
|
||||
cc-compiler: clang
|
||||
compiler-desc: Clang 9
|
||||
vfx-cy: 2022
|
||||
# VFX CY2021, C++14, docs, OpenFX
|
||||
- build: 4
|
||||
build-docs: 'ON'
|
||||
build-openfx: 'ON'
|
||||
cxx-standard: 14
|
||||
cxx-compiler: clang++
|
||||
cc-compiler: clang
|
||||
compiler-desc: Clang 9
|
||||
vfx-cy: 2021
|
||||
env:
|
||||
CXX: g++
|
||||
CC: gcc
|
||||
CXX: ${{ matrix.cxx-compiler }}
|
||||
CC: ${{ matrix.cc-compiler }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
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
|
||||
uses: actions/checkout@v2
|
||||
- name: Install docs env
|
||||
run: share/ci/scripts/linux/dnf/install_docs_env.sh
|
||||
run: share/ci/scripts/linux/yum/install_docs_env.sh
|
||||
if: matrix.build-docs == 'ON'
|
||||
- name: Install tests env
|
||||
run: share/ci/scripts/linux/dnf/install_tests_env.sh
|
||||
run: share/ci/scripts/linux/yum/install_tests_env.sh
|
||||
- name: Install latest ext package versions
|
||||
run: |
|
||||
share/ci/scripts/linux/install_expat.sh latest
|
||||
share/ci/scripts/linux/install_lcms2.sh latest
|
||||
share/ci/scripts/linux/install_yaml-cpp.sh latest
|
||||
share/ci/scripts/linux/install_pystring.sh latest
|
||||
share/ci/scripts/linux/install_pybind11.sh latest
|
||||
share/ci/scripts/linux/install_openexr.sh latest
|
||||
share/ci/scripts/linux/install_imath.sh latest
|
||||
share/ci/scripts/linux/install_oiio.sh latest
|
||||
share/ci/scripts/linux/install_openfx.sh latest
|
||||
- name: Create build directories
|
||||
run: |
|
||||
mkdir _install
|
||||
@@ -59,7 +106,61 @@ jobs:
|
||||
cmake ../. \
|
||||
-DCMAKE_INSTALL_PREFIX=../_install \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_CXX_STANDARD=17 \
|
||||
-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
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# SonarCloud static analysis
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
linux_sonarcloud:
|
||||
name: 'Linux CentOS 7 VFX CY2022 SonarCloud <GCC 9.3.1>'
|
||||
# Don't run on OCIO forks
|
||||
if: github.repository == 'AcademySoftwareFoundation/OpenColorIO'
|
||||
# GH-hosted VM. The build runs in CentOS 7 'container' defined below.
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
# DockerHub: https://hub.docker.com/u/aswf
|
||||
# Source: https://github.com/AcademySoftwareFoundation/aswf-docker
|
||||
image: aswf/ci-ocio:2022
|
||||
env:
|
||||
CXX: g++
|
||||
CC: gcc
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 50
|
||||
- name: Install docs env
|
||||
run: share/ci/scripts/linux/yum/install_docs_env.sh
|
||||
- name: Install tests env
|
||||
run: share/ci/scripts/linux/yum/install_tests_env.sh
|
||||
- name: Create build directories
|
||||
run: |
|
||||
mkdir _install
|
||||
mkdir _build
|
||||
- name: Configure
|
||||
run: |
|
||||
cmake ../. \
|
||||
-DCMAKE_INSTALL_PREFIX=../_install \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_CXX_STANDARD=14 \
|
||||
-DCMAKE_CXX_FLAGS="-g -O0 -fprofile-arcs -ftest-coverage" \
|
||||
-DCMAKE_CXX_OUTPUT_EXTENSION_REPLACE=ON \
|
||||
-DCMAKE_EXE_LINKER_FLAGS="-lgcov" \
|
||||
@@ -78,7 +179,7 @@ jobs:
|
||||
- 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
|
||||
|
||||
+269
-435
@@ -40,219 +40,222 @@ jobs:
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
linux:
|
||||
name: 'Linux VFX CY${{ matrix.vfx-cy }}
|
||||
name: 'Linux CentOS 7 VFX CY${{ matrix.vfx-cy }}
|
||||
<${{ matrix.compiler-desc }}
|
||||
config=${{ matrix.build-type }},
|
||||
shared=${{ matrix.build-shared }},
|
||||
simd=${{ matrix.use-simd }},
|
||||
sse=${{ matrix.use-sse }},
|
||||
cxx=${{ matrix.cxx-standard }},
|
||||
docs=${{ matrix.build-docs }},
|
||||
oiio=${{ matrix.use-oiio }}>'
|
||||
docs=${{ matrix.build-docs }}>'
|
||||
# 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.
|
||||
# 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-ocio:${{ matrix.container-tag || matrix.vfx-cy }}
|
||||
image: aswf/ci-ocio:${{ matrix.vfx-cy }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
build: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
|
||||
build: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
|
||||
include:
|
||||
# -------------------------------------------------------------------
|
||||
# VFX CY2026 (Python 3.13)
|
||||
# VFX CY2022 (Python 3.9)
|
||||
# -------------------------------------------------------------------
|
||||
- build: 12
|
||||
# Clang, Debug, OpenFX
|
||||
- build: 13
|
||||
build-type: Debug
|
||||
build-shared: 'ON'
|
||||
build-docs: 'OFF'
|
||||
build-openfx: 'ON'
|
||||
use-simd: 'ON'
|
||||
use-oiio: 'ON'
|
||||
aswf-ocio-version: 2.5.2
|
||||
cxx-standard: 20
|
||||
use-sse: 'ON'
|
||||
use-openexr-half: 'OFF'
|
||||
cxx-standard: 17
|
||||
cxx-compiler: clang++
|
||||
cc-compiler: clang
|
||||
compiler-desc: Clang
|
||||
vfx-cy: 2026
|
||||
install-ext-packages: MISSING
|
||||
- build: 11
|
||||
compiler-desc: Clang 9
|
||||
vfx-cy: 2022
|
||||
# GCC, no SSE, OpenFX
|
||||
- build: 12
|
||||
build-type: Release
|
||||
build-shared: 'ON'
|
||||
build-docs: 'ON'
|
||||
build-docs: 'OFF'
|
||||
build-openfx: 'ON'
|
||||
use-simd: 'OFF'
|
||||
use-oiio: 'OFF'
|
||||
use-sse: 'OFF'
|
||||
use-openexr-half: 'OFF'
|
||||
cxx-standard: 17
|
||||
cxx-compiler: g++
|
||||
cc-compiler: gcc
|
||||
compiler-desc: GCC
|
||||
vfx-cy: 2026
|
||||
install-ext-packages: ALL
|
||||
compiler-desc: GCC 9.3.1
|
||||
vfx-cy: 2022
|
||||
# C++14, GCC, static, docs
|
||||
- build: 11
|
||||
build-type: Release
|
||||
build-shared: 'OFF'
|
||||
build-docs: 'ON'
|
||||
build-openfx: 'OFF'
|
||||
use-sse: 'ON'
|
||||
use-openexr-half: 'OFF'
|
||||
cxx-standard: 14
|
||||
cxx-compiler: g++
|
||||
cc-compiler: gcc
|
||||
compiler-desc: GCC 9.3.1
|
||||
vfx-cy: 2022
|
||||
# C++11, GCC, static
|
||||
- build: 10
|
||||
build-type: Release
|
||||
build-shared: 'OFF'
|
||||
build-docs: 'OFF'
|
||||
build-openfx: 'OFF'
|
||||
use-simd: 'ON'
|
||||
use-oiio: 'OFF'
|
||||
cxx-standard: 17
|
||||
use-sse: 'ON'
|
||||
use-openexr-half: 'OFF'
|
||||
cxx-standard: 11
|
||||
cxx-compiler: g++
|
||||
cc-compiler: gcc
|
||||
compiler-desc: GCC
|
||||
vfx-cy: 2026
|
||||
install-ext-packages: ALL
|
||||
compiler-desc: GCC 9.3.1
|
||||
vfx-cy: 2022
|
||||
# -------------------------------------------------------------------
|
||||
# VFX CY2025 (Python 3.11)
|
||||
# VFX CY2021 (Python 3.7)
|
||||
# -------------------------------------------------------------------
|
||||
# Clang, docs
|
||||
- build: 9
|
||||
build-type: Debug
|
||||
build-type: Release
|
||||
build-shared: 'ON'
|
||||
build-docs: 'OFF'
|
||||
build-openfx: 'ON'
|
||||
use-simd: 'ON'
|
||||
use-oiio: 'ON'
|
||||
aswf-ocio-version: 2.4.2
|
||||
cxx-standard: 20
|
||||
build-docs: 'ON'
|
||||
build-openfx: 'OFF'
|
||||
use-sse: 'ON'
|
||||
use-openexr-half: 'ON'
|
||||
cxx-standard: 17
|
||||
cxx-compiler: clang++
|
||||
cc-compiler: clang
|
||||
compiler-desc: Clang
|
||||
vfx-cy: 2025
|
||||
install-ext-packages: MISSING
|
||||
compiler-desc: Clang 9
|
||||
vfx-cy: 2021
|
||||
# C++14, Clang, static, no SSE, OpenFX
|
||||
- build: 8
|
||||
build-type: Release
|
||||
build-shared: 'ON'
|
||||
build-docs: 'ON'
|
||||
build-openfx: 'ON'
|
||||
use-simd: 'OFF'
|
||||
use-oiio: 'OFF'
|
||||
cxx-standard: 17
|
||||
cxx-compiler: g++
|
||||
cc-compiler: gcc
|
||||
compiler-desc: GCC
|
||||
vfx-cy: 2025
|
||||
install-ext-packages: ALL
|
||||
- build: 7
|
||||
build-type: Release
|
||||
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
|
||||
vfx-cy: 2025
|
||||
install-ext-packages: ALL
|
||||
# -------------------------------------------------------------------
|
||||
# VFX CY2024 (Python 3.11)
|
||||
# -------------------------------------------------------------------
|
||||
- build: 6
|
||||
build-openfx: 'ON'
|
||||
use-sse: 'OFF'
|
||||
use-openexr-half: 'ON'
|
||||
cxx-standard: 14
|
||||
cxx-compiler: clang++
|
||||
cc-compiler: clang
|
||||
compiler-desc: Clang 9
|
||||
vfx-cy: 2021
|
||||
# C++11, GCC, Debug
|
||||
- build: 7
|
||||
build-type: Debug
|
||||
build-shared: 'ON'
|
||||
build-docs: 'OFF'
|
||||
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-openfx: 'ON'
|
||||
use-simd: 'OFF'
|
||||
use-oiio: 'OFF'
|
||||
cxx-standard: 17
|
||||
build-openfx: 'OFF'
|
||||
use-sse: 'ON'
|
||||
use-openexr-half: 'ON'
|
||||
cxx-standard: 11
|
||||
cxx-compiler: g++
|
||||
cc-compiler: gcc
|
||||
compiler-desc: GCC
|
||||
vfx-cy: 2024
|
||||
install-ext-packages: ALL
|
||||
compiler-desc: GCC 9.3.1
|
||||
vfx-cy: 2021
|
||||
# -------------------------------------------------------------------
|
||||
# VFX CY2020 (Python 3.7)
|
||||
# -------------------------------------------------------------------
|
||||
# C++14, Clang, OpenFX
|
||||
- build: 6
|
||||
build-type: Release
|
||||
build-shared: 'ON'
|
||||
build-docs: 'OFF'
|
||||
build-openfx: 'ON'
|
||||
use-sse: 'OFF'
|
||||
use-openexr-half: 'ON'
|
||||
cxx-standard: 14
|
||||
cxx-compiler: clang++
|
||||
cc-compiler: clang
|
||||
compiler-desc: Clang 7
|
||||
vfx-cy: 2020
|
||||
# C++14, GCC, static, Debug, OpenFX
|
||||
- build: 5
|
||||
build-type: Debug
|
||||
build-shared: 'OFF'
|
||||
build-docs: 'OFF'
|
||||
build-openfx: 'ON'
|
||||
use-sse: 'ON'
|
||||
use-openexr-half: 'ON'
|
||||
cxx-standard: 14
|
||||
cxx-compiler: g++
|
||||
cc-compiler: gcc
|
||||
compiler-desc: GCC 6.3.1
|
||||
vfx-cy: 2020
|
||||
# C++11, GCC, no SSE, docs
|
||||
- build: 4
|
||||
build-type: Release
|
||||
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
|
||||
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
|
||||
vfx-cy: 2023
|
||||
install-ext-packages: MISSING
|
||||
- build: 2
|
||||
build-type: Release
|
||||
build-shared: 'ON'
|
||||
build-docs: 'ON'
|
||||
build-openfx: 'ON'
|
||||
use-simd: 'OFF'
|
||||
use-oiio: 'OFF'
|
||||
cxx-standard: 17
|
||||
build-openfx: 'OFF'
|
||||
use-sse: 'ON'
|
||||
use-openexr-half: 'ON'
|
||||
cxx-standard: 11
|
||||
cxx-compiler: g++
|
||||
cc-compiler: gcc
|
||||
compiler-desc: GCC
|
||||
vfx-cy: 2023
|
||||
install-ext-packages: ALL
|
||||
- build: 1
|
||||
compiler-desc: GCC 6.3.1
|
||||
vfx-cy: 2020
|
||||
# -------------------------------------------------------------------
|
||||
# VFX CY2019 (Python 2.7)
|
||||
# -------------------------------------------------------------------
|
||||
# C++11, Clang, static
|
||||
- build: 3
|
||||
build-type: Release
|
||||
build-shared: 'OFF'
|
||||
# Doc build requires Python 3
|
||||
build-docs: 'OFF'
|
||||
build-openfx: 'OFF'
|
||||
use-simd: 'ON'
|
||||
use-oiio: 'OFF'
|
||||
cxx-standard: 17
|
||||
use-sse: 'ON'
|
||||
use-openexr-half: 'ON'
|
||||
cxx-standard: 11
|
||||
cxx-compiler: clang++
|
||||
cc-compiler: clang
|
||||
compiler-desc: Clang 7
|
||||
vfx-cy: 2019
|
||||
# C++11, Clang, Debug, no SSE
|
||||
- build: 2
|
||||
build-type: Debug
|
||||
build-shared: 'ON'
|
||||
# Doc build requires Python 3
|
||||
build-docs: 'OFF'
|
||||
build-openfx: 'OFF'
|
||||
use-sse: 'OFF'
|
||||
use-openexr-half: 'ON'
|
||||
cxx-standard: 11
|
||||
cxx-compiler: clang++
|
||||
cc-compiler: clang
|
||||
compiler-desc: Clang 7
|
||||
vfx-cy: 2019
|
||||
# C++11, GCC, OpenFX
|
||||
- build: 1
|
||||
build-type: Release
|
||||
build-shared: 'ON'
|
||||
# Doc build requires Python 3
|
||||
build-docs: 'OFF'
|
||||
build-openfx: 'ON'
|
||||
use-sse: 'ON'
|
||||
use-openexr-half: 'ON'
|
||||
cxx-standard: 11
|
||||
cxx-compiler: g++
|
||||
cc-compiler: gcc
|
||||
compiler-desc: GCC
|
||||
vfx-cy: 2023
|
||||
install-ext-packages: ALL
|
||||
compiler-desc: GCC 6.3.1
|
||||
vfx-cy: 2019
|
||||
env:
|
||||
CXX: ${{ matrix.cxx-compiler }}
|
||||
CC: ${{ matrix.cc-compiler }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@v2
|
||||
- name: Install docs env
|
||||
run: share/ci/scripts/linux/dnf/install_docs_env.sh
|
||||
run: share/ci/scripts/linux/yum/install_docs_env.sh
|
||||
if: matrix.build-docs == 'ON'
|
||||
- name: Install tests env
|
||||
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 }}
|
||||
run: share/ci/scripts/linux/yum/install_tests_env.sh
|
||||
- name: Create build directories
|
||||
run: |
|
||||
mkdir _install
|
||||
@@ -267,9 +270,9 @@ jobs:
|
||||
-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=${{ matrix.install-ext-packages }} \
|
||||
-DOCIO_USE_SSE=${{ matrix.use-sse }} \
|
||||
-DOCIO_USE_OPENEXR_HALF=${{ matrix.use-openexr-half }} \
|
||||
-DOCIO_INSTALL_EXT_PACKAGES=ALL \
|
||||
-DOCIO_WARNING_AS_ERROR=ON \
|
||||
-DPython_EXECUTABLE=$(which python)
|
||||
working-directory: _build
|
||||
@@ -279,12 +282,11 @@ jobs:
|
||||
--target install \
|
||||
--config ${{ matrix.build-type }} \
|
||||
-- -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
|
||||
- name: Test CMake Consumer
|
||||
if: matrix.build-shared == 'ON'
|
||||
run: |
|
||||
cmake . \
|
||||
@@ -294,230 +296,108 @@ jobs:
|
||||
--config ${{ matrix.build-type }}
|
||||
./consumer
|
||||
working-directory: _build/tests/cmake-consumer-dist
|
||||
- name: Test CMake Consumer with static OCIO
|
||||
if: matrix.build-shared == 'OFF'
|
||||
# The yaml-cpp_VERSION is set below because Findyaml-cpp.cmake needs it but is unable to
|
||||
# extract it from the headers, like the other modules.
|
||||
#
|
||||
# Prefer the static version of each dependencies by using <pkg>_STATIC_LIBRARY.
|
||||
# Alternatively, this can be done by setting <pkg>_LIBRARY and <pkg>_INCLUDE_DIR to
|
||||
# the static version of the package.
|
||||
run: |
|
||||
cmake . \
|
||||
-DCMAKE_PREFIX_PATH=../../../_install \
|
||||
-DCMAKE_BUILD_TYPE=${{ matrix.build-type }} \
|
||||
-Dexpat_ROOT=${{ env.ocio_build_path }}/ext/dist \
|
||||
-Dexpat_STATIC_LIBRARY=ON \
|
||||
-DImath_ROOT=${{ env.ocio_build_path }}/ext/dist \
|
||||
-DImath_STATIC_LIBRARY=ON \
|
||||
-Dpystring_ROOT=${{ env.ocio_build_path }}/ext/dist \
|
||||
-Dyaml-cpp_ROOT=${{ env.ocio_build_path }}/ext/dist \
|
||||
-Dyaml-cpp_STATIC_LIBRARY=ON \
|
||||
-Dyaml-cpp_VERSION=0.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 Intel
|
||||
# macOS
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
macos:
|
||||
name: 'macOS 15 intel
|
||||
<AppleClang
|
||||
arch=${{ matrix.arch-type }},
|
||||
name: 'macOS 10.15
|
||||
<AppleClang 11.0
|
||||
config=${{ matrix.build-type }},
|
||||
shared=${{ matrix.build-shared }},
|
||||
simd=${{ matrix.use-simd }},
|
||||
sse=${{ matrix.use-sse }},
|
||||
cxx=${{ matrix.cxx-standard }},
|
||||
python=${{ matrix.python-version }},
|
||||
docs=${{ matrix.build-docs }},
|
||||
oiio=${{ matrix.use-oiio}}>'
|
||||
docs=${{ matrix.build-docs }}>'
|
||||
# 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
|
||||
runs-on: macos-10.15
|
||||
strategy:
|
||||
matrix:
|
||||
build: [3, 4]
|
||||
build: [1, 2, 3, 4, 5, 6]
|
||||
include:
|
||||
- build: 4
|
||||
arch-type: "x86_64;arm64"
|
||||
# C++17, OpenFX
|
||||
- build: 6
|
||||
build-type: Release
|
||||
build-shared: 'ON'
|
||||
build-docs: 'OFF'
|
||||
build-openfx: 'OFF'
|
||||
use-simd: 'ON'
|
||||
use-oiio: 'OFF'
|
||||
cxx-standard: 20
|
||||
python-version: '3.12'
|
||||
- build: 3
|
||||
arch-type: "x86_64"
|
||||
build-type: Debug
|
||||
build-shared: 'OFF'
|
||||
build-docs: 'OFF'
|
||||
build-openfx: 'ON'
|
||||
use-simd: 'OFF'
|
||||
use-oiio: 'OFF'
|
||||
use-sse: 'ON'
|
||||
use-openexr-half: 'OFF'
|
||||
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: 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=${{ 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 }}"
|
||||
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
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# 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"
|
||||
python-version: 3.9
|
||||
# C++11, Python 3.7
|
||||
- build: 5
|
||||
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"
|
||||
use-sse: 'ON'
|
||||
use-openexr-half: 'OFF'
|
||||
cxx-standard: 11
|
||||
python-version: 3.7
|
||||
# Debug, OpenFX
|
||||
- build: 4
|
||||
build-type: Debug
|
||||
build-shared: 'ON'
|
||||
build-docs: 'OFF'
|
||||
build-openfx: 'ON'
|
||||
use-sse: 'ON'
|
||||
use-openexr-half: 'OFF'
|
||||
cxx-standard: 11
|
||||
python-version: 3.7
|
||||
# C++14, OpenEXR, OpenFX
|
||||
- build: 3
|
||||
build-type: Release
|
||||
build-shared: 'ON'
|
||||
build-docs: 'OFF'
|
||||
build-openfx: 'ON'
|
||||
use-sse: 'ON'
|
||||
use-openexr-half: 'ON'
|
||||
cxx-standard: 14
|
||||
python-version: 3.7
|
||||
# Static, no SSE
|
||||
- build: 2
|
||||
build-type: Release
|
||||
build-shared: 'OFF'
|
||||
build-docs: 'OFF'
|
||||
build-openfx: 'OFF'
|
||||
use-simd: 'ON'
|
||||
use-oiio: 'OFF'
|
||||
cxx-standard: 17
|
||||
python-version: '3.12'
|
||||
use-sse: 'OFF'
|
||||
use-openexr-half: 'OFF'
|
||||
cxx-standard: 11
|
||||
python-version: 3.7
|
||||
# Python 2.7
|
||||
- build: 1
|
||||
build-type: Release
|
||||
build-shared: 'ON'
|
||||
# Doc build requires Python 3
|
||||
build-docs: 'OFF'
|
||||
build-openfx: 'OFF'
|
||||
use-sse: 'ON'
|
||||
use-openexr-half: 'OFF'
|
||||
cxx-standard: 11
|
||||
python-version: 2.7
|
||||
steps:
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
|
||||
uses: actions/setup-python@v1
|
||||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
- name: Checkout
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@v2
|
||||
- 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 }} \
|
||||
@@ -526,13 +406,11 @@ jobs:
|
||||
-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_USE_SSE=${{ matrix.use-sse }} \
|
||||
-DOCIO_USE_OPENEXR_HALF=${{ matrix.use-openexr-half }} \
|
||||
-DOCIO_INSTALL_EXT_PACKAGES=ALL \
|
||||
-DOCIO_WARNING_AS_ERROR=ON \
|
||||
-DPython_EXECUTABLE=$(which python) \
|
||||
-DCMAKE_OSX_ARCHITECTURES="${{ matrix.arch-type }}" \
|
||||
"${OIIO_CMAKE_ARGS[@]}"
|
||||
-DPython_EXECUTABLE=$(which python)
|
||||
working-directory: _build
|
||||
- name: Build
|
||||
run: |
|
||||
@@ -540,17 +418,11 @@ 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 -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
|
||||
- name: Test CMake Consumer
|
||||
if: matrix.build-shared == 'ON'
|
||||
run: |
|
||||
cmake . \
|
||||
@@ -560,108 +432,101 @@ jobs:
|
||||
--config ${{ matrix.build-type }}
|
||||
./consumer
|
||||
working-directory: _build/tests/cmake-consumer-dist
|
||||
- name: Test CMake Consumer with static OCIO
|
||||
if: matrix.build-shared == 'OFF'
|
||||
# The yaml-cpp_VERSION is set below because Findyaml-cpp.cmake needs it but is unable to
|
||||
# extract it from the headers, like the other modules.
|
||||
#
|
||||
# Prefer the static version of each dependencies by using <pkg>_STATIC_LIBRARY.
|
||||
# Alternatively, this can be done by setting <pkg>_LIBRARY and <pkg>_INCLUDE_DIR to
|
||||
# the static version of the package.
|
||||
run: |
|
||||
cmake . \
|
||||
-DCMAKE_PREFIX_PATH=../../../_install \
|
||||
-DCMAKE_BUILD_TYPE=${{ matrix.build-type }} \
|
||||
-Dexpat_ROOT=${{ env.ocio_build_path }}/ext/dist \
|
||||
-Dexpat_STATIC_LIBRARY=ON \
|
||||
-DImath_ROOT=${{ env.ocio_build_path }}/ext/dist \
|
||||
-DImath_STATIC_LIBRARY=ON \
|
||||
-Dpystring_ROOT=${{ env.ocio_build_path }}/ext/dist \
|
||||
-Dyaml-cpp_ROOT=${{ env.ocio_build_path }}/ext/dist \
|
||||
-Dyaml-cpp_STATIC_LIBRARY=ON \
|
||||
-Dyaml-cpp_VERSION=0.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 2022
|
||||
<MSVC
|
||||
name: 'Windows 2019
|
||||
<MSVC 16.4
|
||||
config=${{ matrix.build-type }},
|
||||
shared=${{ matrix.build-shared }},
|
||||
simd=${{ matrix.use-simd }},
|
||||
sse=${{ matrix.use-sse }},
|
||||
cxx=${{ matrix.cxx-standard }},
|
||||
python=${{ matrix.python-version }},
|
||||
docs=${{ matrix.build-docs }},
|
||||
oiio=${{ matrix.use-oiio }}>'
|
||||
docs=${{ matrix.build-docs }}>'
|
||||
# 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
|
||||
runs-on: windows-2019
|
||||
strategy:
|
||||
matrix:
|
||||
build: [1, 2, 3, 4]
|
||||
build: [1, 2, 3, 4, 5, 6]
|
||||
include:
|
||||
- build: 4
|
||||
# C++17, OpenFX
|
||||
- build: 6
|
||||
build-type: Release
|
||||
build-shared: 'ON'
|
||||
build-docs: 'OFF'
|
||||
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
|
||||
use-sse: 'ON'
|
||||
use-openexr-half: 'OFF'
|
||||
cxx-standard: 17
|
||||
python-version: 3.9
|
||||
# C++11, Python 3.7
|
||||
- build: 5
|
||||
build-type: Release
|
||||
build-shared: 'OFF'
|
||||
build-shared: 'ON'
|
||||
build-docs: 'ON'
|
||||
build-openfx: 'OFF'
|
||||
use-simd: 'ON'
|
||||
use-oiio: 'OFF'
|
||||
cxx-standard: 17
|
||||
python-version: '3.12'
|
||||
- build: 2
|
||||
use-sse: 'ON'
|
||||
use-openexr-half: 'OFF'
|
||||
cxx-standard: 11
|
||||
python-version: 3.7
|
||||
# Debug
|
||||
- build: 4
|
||||
build-type: Debug
|
||||
build-shared: 'ON'
|
||||
build-docs: 'OFF'
|
||||
build-openfx: 'OFF'
|
||||
use-simd: 'ON'
|
||||
use-oiio: 'OFF'
|
||||
cxx-standard: 17
|
||||
python-version: '3.11'
|
||||
use-sse: 'ON'
|
||||
use-openexr-half: 'OFF'
|
||||
cxx-standard: 11
|
||||
python-version: 3.7
|
||||
# C++14, OpenEXR, OpenFX
|
||||
- build: 1
|
||||
- build: 3
|
||||
build-type: Release
|
||||
build-shared: 'ON'
|
||||
build-docs: 'OFF'
|
||||
build-openfx: 'ON'
|
||||
use-simd: 'ON'
|
||||
use-oiio: 'OFF'
|
||||
cxx-standard: 17
|
||||
python-version: '3.10'
|
||||
use-sse: 'ON'
|
||||
use-openexr-half: 'ON'
|
||||
cxx-standard: 14
|
||||
python-version: 3.7
|
||||
# Static, no SSE, OpenFX
|
||||
- build: 2
|
||||
build-type: Release
|
||||
build-shared: 'OFF'
|
||||
build-docs: 'OFF'
|
||||
build-openfx: 'ON'
|
||||
use-sse: 'OFF'
|
||||
use-openexr-half: 'OFF'
|
||||
cxx-standard: 11
|
||||
python-version: 3.7
|
||||
# Python 2.7
|
||||
- build: 1
|
||||
build-type: Release
|
||||
build-shared: 'ON'
|
||||
# Doc build requires Python 3
|
||||
build-docs: 'OFF'
|
||||
build-openfx: 'OFF'
|
||||
use-sse: 'ON'
|
||||
use-openexr-half: 'OFF'
|
||||
cxx-standard: 11
|
||||
python-version: 2.7
|
||||
steps:
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
|
||||
uses: actions/setup-python@v1
|
||||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
- name: Checkout
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@v2
|
||||
- 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
|
||||
run: share/ci/scripts/windows/install_docs_env.sh
|
||||
shell: bash
|
||||
if: matrix.build-docs == 'ON'
|
||||
- name: Install tests env
|
||||
@@ -683,8 +548,8 @@ jobs:
|
||||
-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_USE_SSE=${{ matrix.use-sse }} \
|
||||
-DOCIO_USE_OPENEXR_HALF=${{ matrix.use-openexr-half }} \
|
||||
-DOCIO_INSTALL_EXT_PACKAGES=ALL \
|
||||
-DOCIO_WARNING_AS_ERROR=ON \
|
||||
-DPython_EXECUTABLE=$(which python)
|
||||
@@ -695,14 +560,13 @@ 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 -C ${{ matrix.build-type }}
|
||||
shell: bash
|
||||
working-directory: _build
|
||||
- name: Test CMake Consumer with shared OCIO
|
||||
- name: Test CMake Consumer
|
||||
if: matrix.build-shared == 'ON'
|
||||
run: |
|
||||
cmake . \
|
||||
@@ -714,33 +578,3 @@ jobs:
|
||||
./${{ matrix.build-type }}/consumer
|
||||
shell: bash
|
||||
working-directory: _build/tests/cmake-consumer-dist
|
||||
- name: Test CMake Consumer with static OCIO
|
||||
if: matrix.build-shared == 'OFF'
|
||||
# The yaml-cpp_VERSION is set below because Findyaml-cpp.cmake needs it but is unable to
|
||||
# extract it from the headers, like the other modules.
|
||||
#
|
||||
# Prefer the static version of each dependencies by using <pkg>_STATIC_LIBRARY.
|
||||
# Alternatively, this can be done by setting <pkg>_LIBRARY and <pkg>_INCLUDE_DIR to
|
||||
# the static version of the package.
|
||||
run: |
|
||||
cmake . \
|
||||
-DCMAKE_PREFIX_PATH=../../../_install \
|
||||
-DCMAKE_BUILD_TYPE=${{ matrix.build-type }} \
|
||||
-Dexpat_ROOT=${{ env.ocio_build_path }}/ext/dist \
|
||||
-Dexpat_STATIC_LIBRARY=ON \
|
||||
-DImath_ROOT=${{ env.ocio_build_path }}/ext/dist \
|
||||
-DImath_STATIC_LIBRARY=ON \
|
||||
-Dpystring_ROOT=${{ env.ocio_build_path }}/ext/dist \
|
||||
-Dyaml-cpp_ROOT=${{ env.ocio_build_path }}/ext/dist \
|
||||
-Dyaml-cpp_STATIC_LIBRARY=ON \
|
||||
-Dyaml-cpp_VERSION=0.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
|
||||
|
||||
@@ -1,375 +0,0 @@
|
||||
# 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
|
||||
@@ -1,85 +0,0 @@
|
||||
# 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
|
||||
@@ -33,14 +33,13 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Configure AWS Credentials
|
||||
uses: aws-actions/configure-aws-credentials@v2
|
||||
uses: aws-actions/configure-aws-credentials@v1
|
||||
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-build@v1
|
||||
uses: aws-actions/aws-codebuild-run-project@v1.0.0
|
||||
with:
|
||||
project-name: OpenColorIO
|
||||
buildspec-override: buildspec.yml
|
||||
image-override: aswf/ci-ocio:2025
|
||||
|
||||
@@ -1,396 +0,0 @@
|
||||
# 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
|
||||
@@ -1,67 +0,0 @@
|
||||
# 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
|
||||
@@ -20,10 +20,7 @@ on:
|
||||
- v1.*
|
||||
paths:
|
||||
- .github/workflows/wheel_workflow.yml
|
||||
- MANIFEST.in
|
||||
- pyproject.toml
|
||||
- setup.cfg
|
||||
- setup.py
|
||||
schedule:
|
||||
# Nightly build
|
||||
- cron: "0 0 * * *"
|
||||
@@ -38,33 +35,7 @@ jobs:
|
||||
# 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
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
linux:
|
||||
@@ -78,139 +49,90 @@ jobs:
|
||||
matrix:
|
||||
include:
|
||||
# -------------------------------------------------------------------
|
||||
# CPython 64 bits manylinux_2_28
|
||||
# CPython 32 bits
|
||||
# -------------------------------------------------------------------
|
||||
- build: CPython 3.10 64 bits manylinux_2_28
|
||||
manylinux: manylinux_2_28
|
||||
python: cp310-manylinux_x86_64
|
||||
- build: CPython 3.6 32 bits
|
||||
python: cp36-*
|
||||
arch: i686
|
||||
- build: CPython 3.7 32 bits
|
||||
python: cp37-*
|
||||
arch: i686
|
||||
- build: CPython 3.8 32 bits
|
||||
python: cp38-*
|
||||
arch: i686
|
||||
- build: CPython 3.9 32 bits
|
||||
python: cp39-*
|
||||
arch: i686
|
||||
- build: CPython 3.10 32 bits
|
||||
python: cp310-*
|
||||
arch: i686
|
||||
# -------------------------------------------------------------------
|
||||
# CPython 64 bits
|
||||
# -------------------------------------------------------------------
|
||||
- build: CPython 3.6 64 bits
|
||||
python: cp36-*
|
||||
arch: x86_64
|
||||
- build: CPython 3.11 64 bits manylinux_2_28
|
||||
manylinux: manylinux_2_28
|
||||
python: cp311-manylinux_x86_64
|
||||
- build: CPython 3.7 64 bits
|
||||
python: cp37-*
|
||||
arch: x86_64
|
||||
- build: CPython 3.12 64 bits manylinux_2_28
|
||||
manylinux: manylinux_2_28
|
||||
python: cp312-manylinux_x86_64
|
||||
- build: CPython 3.8 64 bits
|
||||
python: cp38-*
|
||||
arch: x86_64
|
||||
- build: CPython 3.13 64 bits manylinux_2_28
|
||||
manylinux: manylinux_2_28
|
||||
python: cp313-manylinux_x86_64
|
||||
- build: CPython 3.9 64 bits
|
||||
python: cp39-*
|
||||
arch: x86_64
|
||||
- build: CPython 3.14 64 bits manylinux_2_28
|
||||
manylinux: manylinux_2_28
|
||||
python: cp314-manylinux_x86_64
|
||||
- build: CPython 3.10 64 bits
|
||||
python: cp310-*
|
||||
arch: x86_64
|
||||
# -------------------------------------------------------------------
|
||||
# CPython 64 bits manylinux2014
|
||||
# CPython ARM 64 bits
|
||||
# -------------------------------------------------------------------
|
||||
- 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
|
||||
- build: CPython 3.6 ARM 64 bits
|
||||
python: cp36-*
|
||||
arch: aarch64
|
||||
- build: CPython 3.11 ARM 64 bits manylinux2014
|
||||
manylinux: manylinux2014
|
||||
python: cp311-manylinux_aarch64
|
||||
- build: CPython 3.7 ARM 64 bits
|
||||
python: cp37-*
|
||||
arch: aarch64
|
||||
- build: CPython 3.12 ARM 64 bits manylinux2014
|
||||
manylinux: manylinux2014
|
||||
python: cp312-manylinux_aarch64
|
||||
- build: CPython 3.8 ARM 64 bits
|
||||
python: cp38-*
|
||||
arch: aarch64
|
||||
- build: CPython 3.13 ARM 64 bits manylinux2014
|
||||
manylinux: manylinux2014
|
||||
python: cp313-manylinux_aarch64
|
||||
- build: CPython 3.9 ARM 64 bits
|
||||
python: cp39-*
|
||||
arch: aarch64
|
||||
- build: CPython 3.14 ARM 64 bits manylinux2014
|
||||
manylinux: manylinux2014
|
||||
python: cp314-manylinux_aarch64
|
||||
- build: CPython 3.10 ARM 64 bits
|
||||
python: cp310-*
|
||||
arch: aarch64
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
|
||||
- uses: actions/setup-python@v2
|
||||
name: Install Python
|
||||
with:
|
||||
python-version: '3.11'
|
||||
python-version: '3.8'
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v1
|
||||
with:
|
||||
platforms: all
|
||||
|
||||
- name: Build wheels
|
||||
uses: pypa/cibuildwheel@ee02a1537ce3071a004a6b08c41e72f0fdc42d9a # v3.4.0
|
||||
uses: pypa/cibuildwheel@v2.1.2
|
||||
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
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: cibw-wheels-${{ matrix.python }}-${{ matrix.manylinux }}
|
||||
path: ./wheelhouse/*.whl
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# macOS Wheels
|
||||
# macOS
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
macos:
|
||||
name: Build wheels on macOS
|
||||
runs-on: macos-15-intel
|
||||
runs-on: macos-10.15
|
||||
# Don't run on OCIO forks
|
||||
if: |
|
||||
github.event_name != 'schedule' ||
|
||||
@@ -221,106 +143,59 @@ jobs:
|
||||
# -------------------------------------------------------------------
|
||||
# CPython 64 bits
|
||||
# -------------------------------------------------------------------
|
||||
- build: CPython 3.6 64 bits
|
||||
python: cp36-*
|
||||
arch: x86_64
|
||||
- build: CPython 3.7 64 bits
|
||||
python: cp37-*
|
||||
arch: x86_64
|
||||
- build: CPython 3.8 64 bits
|
||||
python: cp38-*
|
||||
arch: x86_64
|
||||
- build: CPython 3.9 64 bits
|
||||
python: cp39-*
|
||||
arch: x86_64
|
||||
- build: CPython 3.10 64 bits
|
||||
python: cp310-macosx_x86_64
|
||||
python: cp310-*
|
||||
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.8 ARM 64 bits
|
||||
python: cp38-*
|
||||
arch: arm64
|
||||
- build: CPython 3.9 ARM 64 bits
|
||||
python: cp39-*
|
||||
arch: arm64
|
||||
- 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
|
||||
python: cp310-*
|
||||
arch: arm64
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
|
||||
- uses: actions/setup-python@v2
|
||||
name: Install Python
|
||||
with:
|
||||
python-version: '3.11'
|
||||
python-version: '3.8'
|
||||
|
||||
- name: Build wheels
|
||||
uses: pypa/cibuildwheel@ee02a1537ce3071a004a6b08c41e72f0fdc42d9a # v3.4.0
|
||||
uses: pypa/cibuildwheel@v2.1.2
|
||||
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
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: cibw-wheels-${{ matrix.python }}
|
||||
path: ./wheelhouse/*.whl
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Windows Wheels
|
||||
# Windows
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
windows:
|
||||
name: Build wheels on Windows
|
||||
runs-on: windows-2022
|
||||
runs-on: windows-2019
|
||||
# Don't run on OCIO forks
|
||||
if: |
|
||||
github.event_name != 'schedule' ||
|
||||
@@ -329,62 +204,74 @@ jobs:
|
||||
matrix:
|
||||
include:
|
||||
# -------------------------------------------------------------------
|
||||
# CPython 32 bits
|
||||
# -------------------------------------------------------------------
|
||||
- build: CPython 3.6 32 bits
|
||||
python: cp36-*
|
||||
arch: x86
|
||||
- build: CPython 3.7 32 bits
|
||||
python: cp37-*
|
||||
arch: x86
|
||||
- build: CPython 3.8 32 bits
|
||||
python: cp38-*
|
||||
arch: x86
|
||||
- build: CPython 3.9 32 bits
|
||||
python: cp39-*
|
||||
arch: x86
|
||||
- build: CPython 3.10 32 bits
|
||||
python: cp310-*
|
||||
arch: x86
|
||||
# -------------------------------------------------------------------
|
||||
# CPython 64 bits
|
||||
# -------------------------------------------------------------------
|
||||
- build: CPython 3.6 64 bits
|
||||
python: cp36-*
|
||||
arch: AMD64
|
||||
- build: CPython 3.7 64 bits
|
||||
python: cp37-*
|
||||
arch: AMD64
|
||||
- build: CPython 3.8 64 bits
|
||||
python: cp38-*
|
||||
arch: AMD64
|
||||
- build: CPython 3.9 64 bits
|
||||
python: cp39-*
|
||||
arch: AMD64
|
||||
- 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
|
||||
python: cp310-*
|
||||
arch: AMD64
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
|
||||
- uses: actions/setup-python@v2
|
||||
name: Install Python
|
||||
with:
|
||||
python-version: '3.11'
|
||||
python-version: '3.8'
|
||||
|
||||
- name: Build wheels
|
||||
uses: pypa/cibuildwheel@ee02a1537ce3071a004a6b08c41e72f0fdc42d9a # v3.4.0
|
||||
uses: pypa/cibuildwheel@v2.1.2
|
||||
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
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: cibw-wheels-${{ matrix.python }}
|
||||
path: ./wheelhouse/*.whl
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Upload
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
upload_pypi:
|
||||
needs: [sdist, linux, linux-arm, macos, macos-arm, windows]
|
||||
needs: [linux, macos, 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/setup-python@v2
|
||||
|
||||
- uses: actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # v8.0.0
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
pattern: cibw-*
|
||||
name: artifact
|
||||
path: dist
|
||||
merge-multiple: true
|
||||
|
||||
- uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # v1.13.0
|
||||
- uses: pypa/gh-action-pypi-publish@release/v1
|
||||
with:
|
||||
user: __token__
|
||||
password: ${{ secrets.PYPI_API_TOKEN }}
|
||||
|
||||
+1
-5
@@ -10,8 +10,4 @@ dist*
|
||||
mastercopy
|
||||
*.pyc
|
||||
!*.yml
|
||||
.idea/
|
||||
.venv/
|
||||
.vscode/
|
||||
|
||||
src/apps/ocioview/uv.lock
|
||||
.vscode
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
# 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
@@ -52,7 +52,7 @@ This charter (the "Charter") 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/main/LICENSE](https://github.com/AcademySoftwareFoundation/OpenColorIO/blob/main/LICENSE))** (the "Project License").
|
||||
* **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 "Project License").
|
||||
* **ii.** All new inbound code contributions must:
|
||||
1. be made pursuant to a duly executed Project Contribution License Agreement (the "CLA"), available on the Project'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;
|
||||
|
||||
@@ -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/main/process/contributing.md
|
||||
* https://github.com/AcademySoftwareFoundation/tac/blob/master/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.
|
||||
|
||||
@@ -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 main before v2.0? People want a "developer preview" to be able to use the new GPU path.
|
||||
* 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.
|
||||
* Patrick reluctant to make a full release.
|
||||
* 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.
|
||||
* 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.
|
||||
* 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.
|
||||
|
||||
@@ -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 main for testing.
|
||||
- This can make planning for software vendors challenging, but preliminary implementation of the v2 interface is possible now from master 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 main at any given time is stable, and ideal.
|
||||
- Doug: Testing off of master 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:
|
||||
|
||||
@@ -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/main/doc/security.md
|
||||
- John provide the following link: https://github.com/coreinfrastructure/best-practices-badge/blob/master/doc/security.md
|
||||
- Chair asked John if we were moving too slowly, John: no.
|
||||
|
||||
* 1.1.1 Release
|
||||
|
||||
@@ -29,7 +29,7 @@ Apologies:
|
||||
- Waiting approval
|
||||
|
||||
* Azure CI Build:
|
||||
- Larry G.: Needs to build OCIO with some dependency main branch to trap coming issues?
|
||||
- Larry G.: Needs to build OCIO with some dependency master 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.
|
||||
|
||||
@@ -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 main, is it Ok
|
||||
branch. Since the license cleanup work is being done in master, 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.
|
||||
|
||||
@@ -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 & main branch
|
||||
- **TODO**: Sean will help to disable main.
|
||||
- AppVeyor uses RB-1.1 & master branch
|
||||
- **TODO**: Sean will help to disable master.
|
||||
- Travis triggers new warnings/errors.
|
||||
Check [PR 798](https://github.com/imageworks/OpenColorIO/pull/798) for details.
|
||||
- Agreed to fix them.
|
||||
|
||||
@@ -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 main branch.
|
||||
- Patrick thought dropping GCC 3 would be fine and should be done in the master branch.
|
||||
|
||||
* Azure CI build
|
||||
- Patrick raised that the communication between Azure and Github is broken.
|
||||
|
||||
@@ -26,7 +26,7 @@ Attendees:
|
||||
- To document the policy concerning repository rights vs. roles.
|
||||
|
||||
* Branch protected
|
||||
- Agreement to only protect `main`, `RB-**` and `gh-pages`.
|
||||
- Agreement to only protect `master`, `RB-**` and `gh-pages`.
|
||||
|
||||
* Stalled pull requests
|
||||
- Agreement to not have any automatic removal of stalled pull requests.
|
||||
|
||||
@@ -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/main/gsoc/README.md`_
|
||||
`https://github.com/AcademySoftwareFoundation/tac/blob/master/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
|
||||
main.
|
||||
master.
|
||||
- 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
|
||||
|
||||
@@ -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/main/libavcodec/exr.c#L1691
|
||||
https://github.com/FFmpeg/FFmpeg/blob/master/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
|
||||
|
||||
@@ -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/main/docs/CompatibleSoftware.rst)
|
||||
- Michael: The [Compatible Software](https://github.com/AcademySoftwareFoundation/OpenColorIO/blob/master/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
|
||||
|
||||
@@ -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 main are getting pushed to RTD now.
|
||||
style is missing. Any changes to master 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?
|
||||
|
||||
@@ -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 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.
|
||||
- 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.
|
||||
|
||||
* General discussion:
|
||||
- Kevin: If we are concerned with ABI compatibility, should we put
|
||||
|
||||
@@ -69,7 +69,7 @@ Attendees:
|
||||
- Alexa: Better to link to DCC vendors own guides.
|
||||
- Michael: There is some of that on the site now in the Compatible Software
|
||||
page, which was updated recently:
|
||||
[Compatible Software](https://github.com/AcademySoftwareFoundation/OpenColorIO/blob/main/docs/CompatibleSoftware.rst)
|
||||
[Compatible Software](https://github.com/AcademySoftwareFoundation/OpenColorIO/blob/master/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 main. These LUTs were not flagged as
|
||||
(too long) spi1d LUTs caused a crash in master. 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 main and found that role names are now
|
||||
- Mark: I was testing master 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.
|
||||
|
||||
@@ -3,13 +3,8 @@
|
||||
|
||||
This file documents releases up to 1.1.1. For a description of version 2.0 and later
|
||||
please refer to the Releases page on GitHub:
|
||||
|
||||
https://github.com/AcademySoftwareFoundation/OpenColorIO/releases
|
||||
|
||||
and for more details please see the release notes in latest documentation pages:
|
||||
|
||||
https://opencolorio.readthedocs.io/en/latest/releases/_index.html#releases
|
||||
|
||||
**Version 1.1.1 (April 2 2019):**
|
||||
* Added optional compatibility for building apps with OpenImageIO 1.9+
|
||||
* Added USE_SSE checks to fix Linux build failure
|
||||
|
||||
+31
-256
@@ -5,14 +5,13 @@
|
||||
###############################################################################
|
||||
# CMake definition.
|
||||
|
||||
cmake_minimum_required(VERSION 3.14...4.0)
|
||||
cmake_minimum_required(VERSION 3.12)
|
||||
|
||||
set(CMAKE_MODULE_PATH
|
||||
${CMAKE_MODULE_PATH}
|
||||
${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
|
||||
${CMAKE_SOURCE_DIR}/share/cmake/utils
|
||||
${CMAKE_SOURCE_DIR}/share/cmake/macros
|
||||
${CMAKE_SOURCE_DIR}/share/cmake/modules
|
||||
)
|
||||
|
||||
set(CMAKE_WARN_DEPRECATED ON)
|
||||
@@ -21,7 +20,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.15" CACHE STRING "Minimum OS X deployment version")
|
||||
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.13" CACHE STRING "Minimum OS X deployment version")
|
||||
endif()
|
||||
|
||||
|
||||
@@ -29,13 +28,13 @@ endif()
|
||||
# Project definition.
|
||||
|
||||
project(OpenColorIO
|
||||
VERSION 2.6.0
|
||||
VERSION 2.1.1
|
||||
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 "dev")
|
||||
set(OpenColorIO_VERSION_RELEASE_TYPE "")
|
||||
|
||||
|
||||
###############################################################################
|
||||
@@ -56,7 +55,7 @@ include(GNUInstallDirs)
|
||||
###############################################################################
|
||||
# Forbid in-source build.
|
||||
|
||||
if(${PROJECT_SOURCE_DIR} STREQUAL ${PROJECT_BINARY_DIR})
|
||||
if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR})
|
||||
message(FATAL_ERROR
|
||||
"In-source build not allowed. Please make a new sub-directory and run cmake from there.")
|
||||
endif()
|
||||
@@ -95,26 +94,11 @@ set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeR
|
||||
|
||||
# Is that a valid build type?
|
||||
|
||||
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_)
|
||||
if(NOT "${CMAKE_BUILD_TYPE}" IN_LIST CMAKE_CONFIGURATION_TYPES)
|
||||
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?
|
||||
|
||||
@@ -144,7 +128,8 @@ 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_DOCS "Specify whether to build documentation" 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_PYTHON "Specify whether to build python bindings" ON)
|
||||
set (OCIO_PYTHON_VERSION "" CACHE STRING
|
||||
@@ -152,220 +137,29 @@ set (OCIO_PYTHON_VERSION "" CACHE STRING
|
||||
|
||||
option(OCIO_BUILD_JAVA "Specify whether to build java bindings" OFF)
|
||||
|
||||
if (WIN32)
|
||||
option(OCIO_USE_WINDOWS_UNICODE "Compile with Windows Unicode support" ON)
|
||||
endif()
|
||||
|
||||
###############################################################################
|
||||
# Other preferences
|
||||
|
||||
option(OCIO_VERBOSE "Display more information when searching or installing dependencies" OFF)
|
||||
option(OCIO_USE_SOVERSION "Enable versioning in OCIO shared library name" ON)
|
||||
|
||||
###############################################################################
|
||||
# Warnings / debugging settings
|
||||
|
||||
option(OCIO_WARNING_AS_ERROR "Set build error level for CI testing" OFF)
|
||||
|
||||
if (NOT WIN32)
|
||||
option(OCIO_ENABLE_SANITIZER "Specify whether to enable compiler sanitizers (address)" OFF)
|
||||
endif()
|
||||
option(OCIO_USE_WINDOWS_UNICODE "On Windows only, compile with Unicode support" WIN32)
|
||||
|
||||
|
||||
###############################################################################
|
||||
# Optimization / internal linking preferences
|
||||
option(OCIO_USE_SIMD "Specify whether to enable SIMD CPU performance optimizations" ON)
|
||||
option(OCIO_USE_OIIO_FOR_APPS "Request OIIO to build apps (ociolutimage, ocioconvert and ociodisplay), the default uses OpenEXR." OFF)
|
||||
|
||||
|
||||
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).
|
||||
|
||||
# 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()
|
||||
option(OCIO_USE_SSE "Specify whether to enable SSE CPU performance optimizations" ON)
|
||||
option(OCIO_USE_OPENEXR_HALF "Specify whether to use an OpenEXR/IlmBase install of the Half library (<=v2.5) instead of the newer Imath library (>=v3.0)" OFF)
|
||||
|
||||
|
||||
###############################################################################
|
||||
# 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
|
||||
@@ -410,11 +204,13 @@ 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 main OCIO C++ namespace: Options include OpenColorIO OpenColorIO_<YOURFACILITY> etc.")
|
||||
"Specify the master OCIO C++ namespace: Options include OpenColorIO OpenColorIO_<YOURFACILITY> etc.")
|
||||
elseif(OCIO_NAMESPACE STREQUAL "")
|
||||
message(FATAL_ERROR "A namespace cannot be empty.")
|
||||
else()
|
||||
message(STATUS "Setting namespace to '${OCIO_NAMESPACE}'.")
|
||||
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.")
|
||||
endif()
|
||||
|
||||
|
||||
@@ -452,15 +248,6 @@ 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
|
||||
@@ -474,6 +261,13 @@ include(FindExtPackages)
|
||||
###############################################################################
|
||||
# Progress to other sources
|
||||
|
||||
# The presence of OpenImageIO allows additional ocio apps and the OSL translation unit tests
|
||||
# to be built.
|
||||
|
||||
# OpenImageIO
|
||||
# https://github.com/OpenImageIO/oiio
|
||||
find_package(OpenImageIO 2.1.9)
|
||||
|
||||
add_subdirectory(vendor)
|
||||
if(OCIO_BUILD_DOCS)
|
||||
add_subdirectory(docs)
|
||||
@@ -492,10 +286,10 @@ else()
|
||||
set(OCIO_SETUP_NAME setup_ocio.sh)
|
||||
endif()
|
||||
|
||||
configure_file(${PROJECT_SOURCE_DIR}/share/ocio/${OCIO_SETUP_NAME}.in
|
||||
configure_file(${CMAKE_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/)
|
||||
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/share/ocio/${OCIO_SETUP_NAME} DESTINATION share/ocio/)
|
||||
|
||||
|
||||
###############################################################################
|
||||
@@ -506,11 +300,9 @@ INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/share/ocio/${OCIO_SETUP_NAME} DESTINAT
|
||||
include(CMakePackageConfigHelpers)
|
||||
|
||||
set(OCIO_TARGETS_EXPORT_NAME "${PROJECT_NAME}Targets.cmake")
|
||||
set(OCIO_VERSION_CONFIG "${PROJECT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake")
|
||||
set(OCIO_PROJECT_CONFIG "${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake")
|
||||
set(OCIO_VERSION_CONFIG "${CMAKE_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake")
|
||||
set(OCIO_PROJECT_CONFIG "${CMAKE_BINARY_DIR}/${PROJECT_NAME}Config.cmake")
|
||||
set(OCIO_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(
|
||||
@@ -533,25 +325,8 @@ install(
|
||||
FILE ${OCIO_TARGETS_EXPORT_NAME}
|
||||
)
|
||||
|
||||
if (NOT BUILD_SHARED_LIBS)
|
||||
# Install custom macros used in the find modules.
|
||||
install(FILES
|
||||
${CMAKE_CURRENT_LIST_DIR}/share/cmake/macros/VersionUtils.cmake
|
||||
DESTINATION ${OCIO_CUSTOM_MACROS_MODULE_DIR}
|
||||
)
|
||||
|
||||
# Install custom Find modules.
|
||||
install(FILES
|
||||
${CMAKE_CURRENT_LIST_DIR}/share/cmake/modules/Findexpat.cmake
|
||||
${CMAKE_CURRENT_LIST_DIR}/share/cmake/modules/FindImath.cmake
|
||||
${CMAKE_CURRENT_LIST_DIR}/share/cmake/modules/Findpystring.cmake
|
||||
${CMAKE_CURRENT_LIST_DIR}/share/cmake/modules/Findminizip-ng.cmake
|
||||
${CMAKE_CURRENT_LIST_DIR}/share/cmake/modules/Findyaml-cpp.cmake
|
||||
DESTINATION ${OCIO_CUSTOM_FIND_MODULE_DIR}
|
||||
)
|
||||
endif()
|
||||
|
||||
install(
|
||||
FILES "${OCIO_PROJECT_CONFIG}" "${OCIO_VERSION_CONFIG}"
|
||||
DESTINATION "${OCIO_CONFIG_INSTALL_DIR}"
|
||||
)
|
||||
|
||||
|
||||
+9
-22
@@ -3,32 +3,19 @@
|
||||
|
||||
# OpenColorIO Committers
|
||||
|
||||
### Current OpenColorIO Committers
|
||||
The current OpenColorIO Committers are:
|
||||
|
||||
| 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 |
|
||||
| Patrick Hodoul | @hodoulp |
|
||||
| Cottalango Leon | @loorthu |
|
||||
| Cédrik Fuoco | @cedrik-fuoco-adsk |
|
||||
| Larry Gritz | @lgritz |
|
||||
| Michael Parsons | @mlfp |
|
||||
| Sean Cooper | @scoopxyz
|
||||
| Patrick Hodoul | @hodoulp
|
||||
| Cottalango Leon | @loorthu
|
||||
| Doug Walker | @doug-walker |
|
||||
| Kevin Wheatley | @KevinJW |
|
||||
|
||||
+38
-21
@@ -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](ASWF/Charter.md). Briefly, Contributors are anyone
|
||||
[Technical Charter](docs/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/main/process/contributing.md#contributor-license-agreement-cla).
|
||||
[recommended by the ASWF TAC](https://github.com/AcademySoftwareFoundation/tac/blob/master/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/main/process/contributing.md#contribution-sign-off)
|
||||
[ASWF TAC CONTRIBUTING.md](https://github.com/AcademySoftwareFoundation/tac/blob/master/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 main branch. This represents the
|
||||
All development work is done directly on the master 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 main branch and OCIO leadership
|
||||
After sufficient work is done on the master 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 main branch to
|
||||
be cherry-picked to a given version while still allowing the master 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/main/PROCESS.md#Core-Library-Changes) process.
|
||||
[Core Library Changes](https://github.com/AcademySoftwareFoundation/OpenColorIO/blob/master/PROCESS.md#Core-Library-Changes) process.
|
||||
|
||||
The development cycle for a code change should follow this protocol:
|
||||
|
||||
@@ -210,24 +210,22 @@ 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/main/PROCESS.md#Required-Approvals)),
|
||||
[Required Approvals](https://github.com/AcademySoftwareFoundation/OpenColorIO/blob/master/PROCESS.md#Required-Approvals)),
|
||||
a Committer other than the PR contributor may squash and merge changes into the
|
||||
main branch.
|
||||
master branch.
|
||||
|
||||
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)
|
||||
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)
|
||||
|
||||
## Coding Standards
|
||||
|
||||
Please see the OpenColorIO
|
||||
[Coding guidelines](https://opencolorio.readthedocs.io/en/latest/guides/contributing/contributing.html#coding-style-guide)
|
||||
[Coding guidelines](http://opencolorio.org/developers/coding_guidelines.html)
|
||||
for a reference on project code style and best practices.
|
||||
|
||||
For standards on contributing to documentation, see the
|
||||
[Documentation guidelines](https://opencolorio.readthedocs.io/en/latest/guides/contributing/contributing.html#documentation-guidelines).
|
||||
[Documentation guidelines](http://opencolorio.org/developers/documentation_guidelines.html).
|
||||
|
||||
## Test Policy
|
||||
|
||||
@@ -243,12 +241,31 @@ 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 be run, via ``ctest``, before submitting a pull request.
|
||||
The test should should be run, via ``ctest``, before submitting a pull request.
|
||||
|
||||
## Versioning Policy
|
||||
|
||||
OpenColorIO labels each version with three numbers: Major.Minor.Patch, where:
|
||||
OpenColorIO uses [semantic versioning](https://semver.org), which labels each
|
||||
version with three numbers: Major.Minor.Patch, where:
|
||||
|
||||
* **MAJOR** indicates major architectural changes
|
||||
* **MINOR** indicates an introduction of significant new features
|
||||
* **PATCH** indicates ABI-compatible bug fixes and minor enhancements
|
||||
* **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.
|
||||
|
||||
+14
-24
@@ -69,14 +69,7 @@ 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, 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
|
||||
* Coordinating technical direction of the Project
|
||||
* Project governance and process (including this policy)
|
||||
* Contribution policy
|
||||
* GitHub repository hosting
|
||||
@@ -88,7 +81,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 two elected leadership roles to be held by its members and
|
||||
Within the TSC are three 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
|
||||
@@ -103,6 +96,10 @@ 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
|
||||
@@ -110,30 +107,23 @@ project at all ASWF TAC meetings.
|
||||
|
||||
### TSC Leaders
|
||||
|
||||
* Chair: Carol Payne
|
||||
* Chair: Michael Dolan
|
||||
* Chief Architect: Doug Walker
|
||||
* ACES TAC Rep: Sean Cooper
|
||||
|
||||
### TSC Members
|
||||
|
||||
* Rémi Achard - DNEG
|
||||
* Mark Boorer - Industrial Light & Magic
|
||||
* Mei Chu - Sony Pictures Imageworks
|
||||
* Sean Cooper - ARRI
|
||||
* Michael Dolan - Epic Games
|
||||
* Zach Lewis - Method Studios
|
||||
* Thomas Mansencal - Wētā FX
|
||||
* Cuneyt Ozdas - Autodesk
|
||||
* Carol Payne - Independent Consultant
|
||||
* Patrick Hodoul - Autodesk
|
||||
* Carol Payne - Netflix
|
||||
* Carl Rand - Weta Digital
|
||||
* 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
|
||||
@@ -153,7 +143,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 `Needs Discussion` label.
|
||||
can bring the issue to the TSC's attention by applying the `tsc-review` 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
|
||||
@@ -162,11 +152,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 wiki.
|
||||
notes are submitted after the meeting to the public mailing list.
|
||||
|
||||
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 via discussion on Slack or other methods.
|
||||
possible outside of meetings on the public mailing list.
|
||||
|
||||
### TSC Nomination
|
||||
|
||||
|
||||
+2
-11
@@ -1,11 +1,2 @@
|
||||
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
|
||||
graft tests/data
|
||||
exclude tests/data/CMakeLists.txt
|
||||
|
||||
+1
-1
@@ -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/main/ASWF/meetings/tsc)
|
||||
[OCIO repo](https://github.com/AcademySoftwareFoundation/OpenColorIO/tree/master/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
|
||||
|
||||
@@ -38,7 +38,7 @@ Houdini, Silhouette FX, and
|
||||
[others](https://opencolorio.org/#supported_apps).
|
||||
|
||||
OpenColorIO is free and open source software ([LICENSE](LICENSE)), and
|
||||
one of several projects actively sponsored by the ASWF
|
||||
one of several projects actvively sponsored by the ASWF
|
||||
([Academy Software Foundation](https://www.aswf.io/)).
|
||||
|
||||
OpenColorIO Project Mission
|
||||
@@ -50,12 +50,12 @@ content creation applications and pipelines.
|
||||
|
||||
OpenColorIO aims to:
|
||||
|
||||
* be stable, secure, and thoroughly tested on Linux, macOS, and Windows
|
||||
* be stable, secure, and thouroughly 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 compatibility across major versions
|
||||
* maintain config backwards compatability across major versions
|
||||
* have every new feature carefully reviewed by leaders from the motion picture,
|
||||
VFX, animation, and video game industries
|
||||
* have a healthy and active community
|
||||
@@ -65,14 +65,13 @@ OpenColorIO Project Governance
|
||||
------------------------------
|
||||
|
||||
OpenColorIO is governed by the Academy Software Foundation (ASWF). See
|
||||
[GOVERNANCE.md](GOVERNANCE.md) for detailed information about how the project
|
||||
[GOVERNANCE.md](GOVERNANCE.md) for detailed infomation 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>
|
||||
@@ -100,11 +99,6 @@ 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
|
||||
----------------
|
||||
|
||||
|
||||
+14
-7
@@ -14,15 +14,23 @@ would be naive to say our code is immune to every exploit.
|
||||
|
||||
## Reporting Vulnerabilities
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
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:
|
||||
@@ -57,6 +65,5 @@ 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.
|
||||
|
||||
## History of CVE Fixes
|
||||
|
||||
CVE-2026-42450 -- Stack buffer overflow in sscanf. (Fixed in OCIO 2.5.2)
|
||||
We do not consider this as severe as file format issues because in most
|
||||
deployments the parameter space is not exposed to potential attackers.
|
||||
|
||||
+26
-29
@@ -9,6 +9,32 @@ 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
|
||||
|
||||
@@ -203,33 +229,4 @@ 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.
|
||||
|
||||
@@ -41,6 +41,7 @@ phases:
|
||||
cmake ../. \
|
||||
-DCMAKE_INSTALL_PREFIX=../_install \
|
||||
-DOCIO_USE_HEADLESS=ON \
|
||||
-DOCIO_USE_OPENEXR_HALF=ON \
|
||||
-DOCIO_BUILD_APPS=ON \
|
||||
-DOCIO_BUILD_DOCS=OFF \
|
||||
-DOCIO_BUILD_TESTS=ON \
|
||||
|
||||
+21
-21
@@ -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
|
||||
"${PROJECT_SOURCE_DIR}/docs/**.in"
|
||||
"${PROJECT_SOURCE_DIR}/docs/conf.py"
|
||||
"${CMAKE_SOURCE_DIR}/docs/**.in"
|
||||
"${CMAKE_SOURCE_DIR}/docs/conf.py"
|
||||
)
|
||||
foreach(in_file ${DOC_IN_FILES})
|
||||
string(REPLACE "${PROJECT_SOURCE_DIR}/" "${PROJECT_BINARY_DIR}/"
|
||||
string(REPLACE "${CMAKE_SOURCE_DIR}/" "${CMAKE_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 "${PROJECT_SOURCE_DIR}/docs/*")
|
||||
file(GLOB_RECURSE DOC_SOURCES "${CMAKE_SOURCE_DIR}/docs/*")
|
||||
list(APPEND DOC_SOURCES
|
||||
${PROJECT_SOURCE_DIR}/README.md
|
||||
${PROJECT_SOURCE_DIR}/INSTALL.md
|
||||
${PROJECT_SOURCE_DIR}/CHANGELOG.md
|
||||
${PROJECT_SOURCE_DIR}/LICENSE
|
||||
${CMAKE_SOURCE_DIR}/README.md
|
||||
${CMAKE_SOURCE_DIR}/INSTALL.md
|
||||
${CMAKE_SOURCE_DIR}/CHANGELOG.md
|
||||
${CMAKE_SOURCE_DIR}/LICENSE
|
||||
)
|
||||
if(OCIO_BUILD_NUKE)
|
||||
list(APPEND DOC_SOURCES ${PROJECT_SOURCE_DIR}/share/nuke/ocionuke/viewer.py)
|
||||
list(APPEND DOC_SOURCES ${CMAKE_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 "^${PROJECT_SOURCE_DIR}/" "" relpath ${f})
|
||||
string(REGEX REPLACE "^${CMAKE_SOURCE_DIR}/" "" relpath ${f})
|
||||
string(REGEX REPLACE "[/. ]" "_" tgtname ${relpath})
|
||||
string(REGEX MATCH "^docs" IN_DOCS ${relpath})
|
||||
|
||||
set(SRC_PATH ${PROJECT_SOURCE_DIR}/${relpath})
|
||||
set(DST_PATH ${PROJECT_BINARY_DIR}/${relpath})
|
||||
set(SRC_PATH ${CMAKE_SOURCE_DIR}/${relpath})
|
||||
set(DST_PATH ${CMAKE_BINARY_DIR}/${relpath})
|
||||
if(NOT IN_DOCS)
|
||||
get_filename_component(F_NAME ${relpath} NAME)
|
||||
set(DST_PATH "${PROJECT_BINARY_DIR}/docs/${F_NAME}")
|
||||
set(DST_PATH "${CMAKE_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
|
||||
"${PROJECT_SOURCE_DIR}/include/*.h"
|
||||
"${PROJECT_BINARY_DIR}/include/*.h"
|
||||
"${CMAKE_SOURCE_DIR}/include/*.h"
|
||||
"${CMAKE_BINARY_DIR}/include/*.h"
|
||||
)
|
||||
set(DOXYGEN_INDEX_XML "${PROJECT_BINARY_DIR}/docs/_doxygen/xml/index.xml")
|
||||
set(DOXYGEN_INDEX_XML "${CMAKE_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}" "${PROJECT_BINARY_DIR}/docs/Doxyfile"
|
||||
COMMAND "${DOXYGEN_EXECUTABLE}" "${CMAKE_BINARY_DIR}/docs/Doxyfile"
|
||||
DEPENDS
|
||||
${PROJECT_BINARY_DIR}/docs/Doxyfile
|
||||
${CMAKE_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
|
||||
"${PROJECT_SOURCE_DIR}/share/docs/*.py"
|
||||
"${CMAKE_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
|
||||
${PROJECT_BINARY_DIR}/docs/conf.py
|
||||
${CMAKE_BINARY_DIR}/docs/conf.py
|
||||
${SPHINX_EXTENSIONS}
|
||||
${DOXYGEN_INDEX_XML}
|
||||
COMMENT "Building html docs"
|
||||
|
||||
+3
-3
@@ -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 = "@PROJECT_SOURCE_DIR@/include/@CMAKE_PROJECT_NAME@"
|
||||
INPUT = "@CMAKE_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 main .chm file (NO).
|
||||
# (YES) or that it should be included in the master .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 = "@PROJECT_BINARY_DIR@/include/@CMAKE_PROJECT_NAME@"
|
||||
INCLUDE_PATH = "@CMAKE_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
|
||||
|
||||
@@ -0,0 +1,106 @@
|
||||
# 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.
|
||||
+4
-40
@@ -12,22 +12,7 @@ ColorSpaceMenuHelpers
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. 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__
|
||||
.. include:: python/${PYDIR}/pyopencolorio_colorspacehelpers.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -53,10 +38,7 @@ DisplayViewHelpers
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autofunction:: PyOpenColorIO.DisplayViewHelpers.GetProcessor
|
||||
.. autofunction:: PyOpenColorIO.DisplayViewHelpers.GetIdentityProcessor
|
||||
.. autofunction:: PyOpenColorIO.DisplayViewHelpers.AddDisplayView
|
||||
.. autofunction:: PyOpenColorIO.DisplayViewHelpers.RemoveDisplayView
|
||||
.. include:: python/${PYDIR}/pyopencolorio_displayviewhelpers.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -71,10 +53,7 @@ LegacyViewingPipeline
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autoclass:: PyOpenColorIO.LegacyViewingPipeline
|
||||
:members:
|
||||
:undoc-members:
|
||||
:special-members: __init__, __str__
|
||||
.. include:: python/${PYDIR}/pyopencolorio_legacyviewingpipeline.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -94,22 +73,7 @@ MixingHelpers
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. 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__
|
||||
.. include:: python/${PYDIR}/pyopencolorio_mixinghelpers.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
|
||||
+1
-8
@@ -9,14 +9,7 @@ Baker
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autoclass:: PyOpenColorIO.Baker
|
||||
:members:
|
||||
:undoc-members:
|
||||
:special-members: __init__
|
||||
:exclude-members: FormatIterator
|
||||
|
||||
.. autoclass:: PyOpenColorIO.Baker.FormatIterator
|
||||
:special-members: __getitem__, __iter__, __len__, __next__
|
||||
.. include:: python/${PYDIR}/pyopencolorio_baker.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
|
||||
+2
-22
@@ -9,17 +9,7 @@ ColorSpace
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. 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__
|
||||
.. include:: python/${PYDIR}/pyopencolorio_colorspace.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -39,17 +29,7 @@ ColorSpaceSet
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. 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__
|
||||
.. include:: python/${PYDIR}/pyopencolorio_colorspaceset.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
|
||||
+1
-84
@@ -9,90 +9,7 @@ Config
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. 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__
|
||||
.. include:: python/${PYDIR}/pyopencolorio_config.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
|
||||
+1
-16
@@ -9,22 +9,7 @@ Context
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. 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__
|
||||
.. include:: python/${PYDIR}/pyopencolorio_context.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
|
||||
@@ -9,10 +9,7 @@ DynamicProperty
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autoclass:: PyOpenColorIO.DynamicProperty
|
||||
:members:
|
||||
:undoc-members:
|
||||
:special-members: __init__
|
||||
.. include:: python/${PYDIR}/pyopencolorio_dynamicproperty.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
|
||||
+28
-112
@@ -12,10 +12,7 @@ LoggingLevel
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autoclass:: PyOpenColorIO.LoggingLevel
|
||||
:members:
|
||||
:undoc-members:
|
||||
:exclude-members: name
|
||||
.. include:: python/${PYDIR}/pyopencolorio_logginglevel.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -30,10 +27,7 @@ ReferenceSpaceType
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autoclass:: PyOpenColorIO.ReferenceSpaceType
|
||||
:members:
|
||||
:undoc-members:
|
||||
:exclude-members: name
|
||||
.. include:: python/${PYDIR}/pyopencolorio_referencespacetype.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -46,10 +40,7 @@ SearchReferenceSpaceType
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autoclass:: PyOpenColorIO.SearchReferenceSpaceType
|
||||
:members:
|
||||
:undoc-members:
|
||||
:exclude-members: name
|
||||
.. include:: python/${PYDIR}/pyopencolorio_searchreferencespacetype.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -62,10 +53,7 @@ NamedTransformVisibility
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autoclass:: PyOpenColorIO.NamedTransformVisibility
|
||||
:members:
|
||||
:undoc-members:
|
||||
:exclude-members: name
|
||||
.. include:: python/${PYDIR}/pyopencolorio_namedtransformvisibility.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -78,10 +66,7 @@ ColorSpaceVisibility
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autoclass:: PyOpenColorIO.ColorSpaceVisibility
|
||||
:members:
|
||||
:undoc-members:
|
||||
:exclude-members: name
|
||||
.. include:: python/${PYDIR}/pyopencolorio_colorspacevisibility.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -94,10 +79,7 @@ ViewType
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autoclass:: PyOpenColorIO.ViewType
|
||||
:members:
|
||||
:undoc-members:
|
||||
:exclude-members: name
|
||||
.. include:: python/${PYDIR}/pyopencolorio_viewtype.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -110,10 +92,7 @@ ColorSpaceDirection
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autoclass:: PyOpenColorIO.ColorSpaceDirection
|
||||
:members:
|
||||
:undoc-members:
|
||||
:exclude-members: name
|
||||
.. include:: python/${PYDIR}/pyopencolorio_colorspacedirection.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -128,10 +107,7 @@ ViewTransformDirection
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autoclass:: PyOpenColorIO.ViewTransformDirection
|
||||
:members:
|
||||
:undoc-members:
|
||||
:exclude-members: name
|
||||
.. include:: python/${PYDIR}/pyopencolorio_viewtransformdirection.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -146,10 +122,7 @@ TransformDirection
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autoclass:: PyOpenColorIO.TransformDirection
|
||||
:members:
|
||||
:undoc-members:
|
||||
:exclude-members: name
|
||||
.. include:: python/${PYDIR}/pyopencolorio_transformdirection.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -164,10 +137,7 @@ TransformType
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autoclass:: PyOpenColorIO.TransformType
|
||||
:members:
|
||||
:undoc-members:
|
||||
:exclude-members: name
|
||||
.. include:: python/${PYDIR}/pyopencolorio_transformtype.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -180,10 +150,7 @@ Interpolation
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autoclass:: PyOpenColorIO.Interpolation
|
||||
:members:
|
||||
:undoc-members:
|
||||
:exclude-members: name
|
||||
.. include:: python/${PYDIR}/pyopencolorio_interpolation.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -198,10 +165,7 @@ BitDepth
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autoclass:: PyOpenColorIO.BitDepth
|
||||
:members:
|
||||
:undoc-members:
|
||||
:exclude-members: name
|
||||
.. include:: python/${PYDIR}/pyopencolorio_bitdepth.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -216,10 +180,7 @@ Lut1DHueAdjust
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autoclass:: PyOpenColorIO.Lut1DHueAdjust
|
||||
:members:
|
||||
:undoc-members:
|
||||
:exclude-members: name
|
||||
.. include:: python/${PYDIR}/pyopencolorio_lut1dhueadjust.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -232,10 +193,7 @@ ChannelOrdering
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autoclass:: PyOpenColorIO.ChannelOrdering
|
||||
:members:
|
||||
:undoc-members:
|
||||
:exclude-members: name
|
||||
.. include:: python/${PYDIR}/pyopencolorio_channelordering.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -248,10 +206,7 @@ Allocation
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autoclass:: PyOpenColorIO.Allocation
|
||||
:members:
|
||||
:undoc-members:
|
||||
:exclude-members: name
|
||||
.. include:: python/${PYDIR}/pyopencolorio_allocation.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -266,10 +221,7 @@ GpuLanguage
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autoclass:: PyOpenColorIO.GpuLanguage
|
||||
:members:
|
||||
:undoc-members:
|
||||
:exclude-members: name
|
||||
.. include:: python/${PYDIR}/pyopencolorio_gpulanguage.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -284,10 +236,7 @@ EnvironmentMode
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autoclass:: PyOpenColorIO.EnvironmentMode
|
||||
:members:
|
||||
:undoc-members:
|
||||
:exclude-members: name
|
||||
.. include:: python/${PYDIR}/pyopencolorio_environmentmode.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -302,10 +251,7 @@ RangeStyle
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autoclass:: PyOpenColorIO.RangeStyle
|
||||
:members:
|
||||
:undoc-members:
|
||||
:exclude-members: name
|
||||
.. include:: python/${PYDIR}/pyopencolorio_rangestyle.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -320,10 +266,7 @@ FixedFunctionStyle
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autoclass:: PyOpenColorIO.FixedFunctionStyle
|
||||
:members:
|
||||
:undoc-members:
|
||||
:exclude-members: name
|
||||
.. include:: python/${PYDIR}/pyopencolorio_fixedfunctionstyle.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -338,10 +281,7 @@ ExposureContrastStyle
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autoclass:: PyOpenColorIO.ExposureContrastStyle
|
||||
:members:
|
||||
:undoc-members:
|
||||
:exclude-members: name
|
||||
.. include:: python/${PYDIR}/pyopencolorio_exposurecontraststyle.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -356,10 +296,7 @@ CDLStyle
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autoclass:: PyOpenColorIO.CDLStyle
|
||||
:members:
|
||||
:undoc-members:
|
||||
:exclude-members: name
|
||||
.. include:: python/${PYDIR}/pyopencolorio_cdlstyle.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -374,10 +311,7 @@ NegativeStyle
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autoclass:: PyOpenColorIO.NegativeStyle
|
||||
:members:
|
||||
:undoc-members:
|
||||
:exclude-members: name
|
||||
.. include:: python/${PYDIR}/pyopencolorio_negativestyle.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -392,10 +326,7 @@ GradingStyle
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autoclass:: PyOpenColorIO.GradingStyle
|
||||
:members:
|
||||
:undoc-members:
|
||||
:exclude-members: name
|
||||
.. include:: python/${PYDIR}/pyopencolorio_gradingstyle.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -410,10 +341,7 @@ DynamicPropertyType
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autoclass:: PyOpenColorIO.DynamicPropertyType
|
||||
:members:
|
||||
:undoc-members:
|
||||
:exclude-members: name
|
||||
.. include:: python/${PYDIR}/pyopencolorio_dynamicpropertytype.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -426,10 +354,7 @@ RGBCurveType
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autoclass:: PyOpenColorIO.RGBCurveType
|
||||
:members:
|
||||
:undoc-members:
|
||||
:exclude-members: name
|
||||
.. include:: python/${PYDIR}/pyopencolorio_rgbcurvetype.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -442,10 +367,7 @@ UniformDataType
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autoclass:: PyOpenColorIO.UniformDataType
|
||||
:members:
|
||||
:undoc-members:
|
||||
:exclude-members: name
|
||||
.. include:: python/${PYDIR}/pyopencolorio_uniformdatatype.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -458,10 +380,7 @@ OptimizationFlags
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autoclass:: PyOpenColorIO.OptimizationFlags
|
||||
:members:
|
||||
:undoc-members:
|
||||
:exclude-members: name
|
||||
.. include:: python/${PYDIR}/pyopencolorio_optimizationflags.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -474,10 +393,7 @@ ProcessorCacheFlags
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autoclass:: PyOpenColorIO.ProcessorCacheFlags
|
||||
:members:
|
||||
:undoc-members:
|
||||
:exclude-members: name
|
||||
.. include:: python/${PYDIR}/pyopencolorio_processorcacheflags.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
|
||||
@@ -9,9 +9,9 @@ Exceptions
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autoexception:: PyOpenColorIO.Exception
|
||||
.. include:: python/${PYDIR}/pyopencolorio_exception.rst
|
||||
|
||||
.. autoexception:: PyOpenColorIO.ExceptionMissingFile
|
||||
.. include:: python/${PYDIR}/pyopencolorio_exceptionmissingfile.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
|
||||
@@ -9,31 +9,7 @@ FormatMetadata
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. 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__
|
||||
.. include:: python/${PYDIR}/pyopencolorio_formatmetadata.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
|
||||
+46
-46
@@ -12,7 +12,7 @@ Caching
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autofunction:: PyOpenColorIO.ClearAllCaches
|
||||
.. include:: python/${PYDIR}/pyopencolorio_clearallcaches.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -27,9 +27,9 @@ Version
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autofunction:: PyOpenColorIO.GetVersion
|
||||
.. include:: python/${PYDIR}/pyopencolorio_getversion.rst
|
||||
|
||||
.. autofunction:: PyOpenColorIO.GetVersionHex
|
||||
.. include:: python/${PYDIR}/pyopencolorio_getversionhex.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -44,9 +44,9 @@ Logging
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autofunction:: PyOpenColorIO.GetLoggingLevel
|
||||
.. include:: python/${PYDIR}/pyopencolorio_getlogginglevel.rst
|
||||
|
||||
.. autofunction:: PyOpenColorIO.SetLoggingLevel
|
||||
.. include:: python/${PYDIR}/pyopencolorio_setlogginglevel.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -61,11 +61,11 @@ Logging Function
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autofunction:: PyOpenColorIO.SetLoggingFunction
|
||||
.. include:: python/${PYDIR}/pyopencolorio_setloggingfunction.rst
|
||||
|
||||
.. autofunction:: PyOpenColorIO.ResetToDefaultLoggingFunction
|
||||
.. include:: python/${PYDIR}/pyopencolorio_resettodefaultloggingfunction.rst
|
||||
|
||||
.. autofunction:: PyOpenColorIO.LogMessage
|
||||
.. include:: python/${PYDIR}/pyopencolorio_logmessage.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -84,9 +84,9 @@ Compute Hash Function
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autofunction:: PyOpenColorIO.SetComputeHashFunction
|
||||
.. include:: python/${PYDIR}/pyopencolorio_setcomputehashfunction.rst
|
||||
|
||||
.. autofunction:: PyOpenColorIO.ResetComputeHashFunction
|
||||
.. include:: python/${PYDIR}/pyopencolorio_resetcomputehashfunction.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -103,13 +103,13 @@ Environment Variables
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autofunction:: PyOpenColorIO.GetEnvVariable
|
||||
.. include:: python/${PYDIR}/pyopencolorio_getenvvariable.rst
|
||||
|
||||
.. autofunction:: PyOpenColorIO.SetEnvVariable
|
||||
.. include:: python/${PYDIR}/pyopencolorio_setenvvariable.rst
|
||||
|
||||
.. autofunction:: PyOpenColorIO.UnsetEnvVariable
|
||||
.. include:: python/${PYDIR}/pyopencolorio_unsetenvvariable.rst
|
||||
|
||||
.. autofunction:: PyOpenColorIO.IsEnvVariablePresent
|
||||
.. include:: python/${PYDIR}/pyopencolorio_isenvvariablepresent.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -142,9 +142,9 @@ Bool
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autofunction:: PyOpenColorIO.BoolToString
|
||||
.. include:: python/${PYDIR}/pyopencolorio_booltostring.rst
|
||||
|
||||
.. autofunction:: PyOpenColorIO.BoolFromString
|
||||
.. include:: python/${PYDIR}/pyopencolorio_boolfromstring.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -161,9 +161,9 @@ LoggingLevel
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autofunction:: PyOpenColorIO.LoggingLevelToString
|
||||
.. include:: python/${PYDIR}/pyopencolorio_loggingleveltostring.rst
|
||||
|
||||
.. autofunction:: PyOpenColorIO.LoggingLevelFromString
|
||||
.. include:: python/${PYDIR}/pyopencolorio_logginglevelfromstring.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -180,13 +180,13 @@ TransformDirection
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autofunction:: PyOpenColorIO.TransformDirectionToString
|
||||
.. include:: python/${PYDIR}/pyopencolorio_transformdirectiontostring.rst
|
||||
|
||||
.. autofunction:: PyOpenColorIO.TransformDirectionFromString
|
||||
.. include:: python/${PYDIR}/pyopencolorio_transformdirectionfromstring.rst
|
||||
|
||||
.. autofunction:: PyOpenColorIO.GetInverseTransformDirection
|
||||
.. include:: python/${PYDIR}/pyopencolorio_getinversetransformdirection.rst
|
||||
|
||||
.. autofunction:: PyOpenColorIO.CombineTransformDirections
|
||||
.. include:: python/${PYDIR}/pyopencolorio_combinetransformdirections.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -207,13 +207,13 @@ BitDepth
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autofunction:: PyOpenColorIO.BitDepthToString
|
||||
.. include:: python/${PYDIR}/pyopencolorio_bitdepthtostring.rst
|
||||
|
||||
.. autofunction:: PyOpenColorIO.BitDepthFromString
|
||||
.. include:: python/${PYDIR}/pyopencolorio_bitdepthfromstring.rst
|
||||
|
||||
.. autofunction:: PyOpenColorIO.BitDepthIsFloat
|
||||
.. include:: python/${PYDIR}/pyopencolorio_bitdepthisfloat.rst
|
||||
|
||||
.. autofunction:: PyOpenColorIO.BitDepthToInt
|
||||
.. include:: python/${PYDIR}/pyopencolorio_bitdepthtoint.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -234,9 +234,9 @@ Allocation
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autofunction:: PyOpenColorIO.AllocationToString
|
||||
.. include:: python/${PYDIR}/pyopencolorio_allocationtostring.rst
|
||||
|
||||
.. autofunction:: PyOpenColorIO.AllocationFromString
|
||||
.. include:: python/${PYDIR}/pyopencolorio_allocationfromstring.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -253,9 +253,9 @@ Interpolation
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autofunction:: PyOpenColorIO.InterpolationToString
|
||||
.. include:: python/${PYDIR}/pyopencolorio_interpolationtostring.rst
|
||||
|
||||
.. autofunction:: PyOpenColorIO.InterpolationFromString
|
||||
.. include:: python/${PYDIR}/pyopencolorio_interpolationfromstring.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -272,9 +272,9 @@ GpuLanguage
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autofunction:: PyOpenColorIO.GpuLanguageToString
|
||||
.. include:: python/${PYDIR}/pyopencolorio_gpulanguagetostring.rst
|
||||
|
||||
.. autofunction:: PyOpenColorIO.GpuLanguageFromString
|
||||
.. include:: python/${PYDIR}/pyopencolorio_gpulanguagefromstring.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -291,9 +291,9 @@ EnvironmentMode
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autofunction:: PyOpenColorIO.EnvironmentModeToString
|
||||
.. include:: python/${PYDIR}/pyopencolorio_environmentmodetostring.rst
|
||||
|
||||
.. autofunction:: PyOpenColorIO.EnvironmentModeFromString
|
||||
.. include:: python/${PYDIR}/pyopencolorio_environmentmodefromstring.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -310,9 +310,9 @@ CDLStyle
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autofunction:: PyOpenColorIO.CDLStyleToString
|
||||
.. include:: python/${PYDIR}/pyopencolorio_cdlstyletostring.rst
|
||||
|
||||
.. autofunction:: PyOpenColorIO.CDLStyleFromString
|
||||
.. include:: python/${PYDIR}/pyopencolorio_cdlstylefromstring.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -329,9 +329,9 @@ RangeStyle
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autofunction:: PyOpenColorIO.RangeStyleToString
|
||||
.. include:: python/${PYDIR}/pyopencolorio_rangestyletostring.rst
|
||||
|
||||
.. autofunction:: PyOpenColorIO.RangeStyleFromString
|
||||
.. include:: python/${PYDIR}/pyopencolorio_rangestylefromstring.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -348,9 +348,9 @@ FixedFunctionStyle
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autofunction:: PyOpenColorIO.FixedFunctionStyleToString
|
||||
.. include:: python/${PYDIR}/pyopencolorio_fixedfunctionstyletostring.rst
|
||||
|
||||
.. autofunction:: PyOpenColorIO.FixedFunctionStyleFromString
|
||||
.. include:: python/${PYDIR}/pyopencolorio_fixedfunctionstylefromstring.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -367,9 +367,9 @@ GradingStyle
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autofunction:: PyOpenColorIO.GradingStyleToString
|
||||
.. include:: python/${PYDIR}/pyopencolorio_gradingstyletostring.rst
|
||||
|
||||
.. autofunction:: PyOpenColorIO.GradingStyleFromString
|
||||
.. include:: python/${PYDIR}/pyopencolorio_gradingstylefromstring.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -386,9 +386,9 @@ ExposureContrastStyle
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autofunction:: PyOpenColorIO.ExposureContrastStyleToString
|
||||
.. include:: python/${PYDIR}/pyopencolorio_exposurecontraststyletostring.rst
|
||||
|
||||
.. autofunction:: PyOpenColorIO.ExposureContrastStyleFromString
|
||||
.. include:: python/${PYDIR}/pyopencolorio_exposurecontraststylefromstring.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -405,9 +405,9 @@ NegativeStyle
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autofunction:: PyOpenColorIO.NegativeStyleToString
|
||||
.. include:: python/${PYDIR}/pyopencolorio_negativestyletostring.rst
|
||||
|
||||
.. autofunction:: PyOpenColorIO.NegativeStyleFromString
|
||||
.. include:: python/${PYDIR}/pyopencolorio_negativestylefromstring.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
|
||||
@@ -14,11 +14,7 @@ GradingPrimaryTransform
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autoclass:: PyOpenColorIO.GradingPrimaryTransform
|
||||
:members:
|
||||
:undoc-members:
|
||||
:special-members: __init__, __str__
|
||||
:inherited-members:
|
||||
.. include:: python/${PYDIR}/pyopencolorio_gradingprimarytransform.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -38,10 +34,7 @@ GradingPrimary
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autoclass:: PyOpenColorIO.GradingPrimary
|
||||
:members:
|
||||
:undoc-members:
|
||||
:special-members: __init__, __str__
|
||||
.. include:: python/${PYDIR}/pyopencolorio_gradingprimary.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -58,10 +51,7 @@ GradingRGBM
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autoclass:: PyOpenColorIO.GradingRGBM
|
||||
:members:
|
||||
:undoc-members:
|
||||
:special-members: __init__, __str__
|
||||
.. include:: python/${PYDIR}/pyopencolorio_gradingrgbm.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -78,11 +68,7 @@ GradingRGBCurveTransform
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autoclass:: PyOpenColorIO.GradingRGBCurveTransform
|
||||
:members:
|
||||
:undoc-members:
|
||||
:special-members: __init__, __str__
|
||||
:inherited-members:
|
||||
.. include:: python/${PYDIR}/pyopencolorio_gradingrgbcurvetransform.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -102,10 +88,7 @@ GradingRGBCurve
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autoclass:: PyOpenColorIO.GradingRGBCurve
|
||||
:members:
|
||||
:undoc-members:
|
||||
:special-members: __init__, __str__
|
||||
.. include:: python/${PYDIR}/pyopencolorio_gradingrgbcurve.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -118,53 +101,6 @@ 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
|
||||
^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
@@ -172,10 +108,7 @@ GradingControlPoint
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autoclass:: PyOpenColorIO.GradingControlPoint
|
||||
:members:
|
||||
:undoc-members:
|
||||
:special-members: __init__, __str__
|
||||
.. include:: python/${PYDIR}/pyopencolorio_gradingcontrolpoint.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -192,14 +125,7 @@ GradingBSplineCurve
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autoclass:: PyOpenColorIO.GradingBSplineCurve
|
||||
:members:
|
||||
:undoc-members:
|
||||
:special-members: __init__, __str__
|
||||
:exclude-members: GradingControlPointIterator
|
||||
|
||||
.. autoclass:: PyOpenColorIO.GradingBSplineCurve.GradingControlPointIterator
|
||||
:special-members: __getitem__, __setitem__, __iter__, __len__, __next__
|
||||
.. include:: python/${PYDIR}/pyopencolorio_gradingbsplinecurve.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -219,11 +145,7 @@ GradingToneTransform
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autoclass:: PyOpenColorIO.GradingToneTransform
|
||||
:members:
|
||||
:undoc-members:
|
||||
:special-members: __init__, __str__
|
||||
:inherited-members:
|
||||
.. include:: python/${PYDIR}/pyopencolorio_gradingtonetransform.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -243,10 +165,7 @@ GradingTone
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autoclass:: PyOpenColorIO.GradingTone
|
||||
:members:
|
||||
:undoc-members:
|
||||
:special-members: __init__, __str__
|
||||
.. include:: python/${PYDIR}/pyopencolorio_gradingtone.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -263,10 +182,7 @@ GradingRGBMSW
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autoclass:: PyOpenColorIO.GradingRGBMSW
|
||||
:members:
|
||||
:undoc-members:
|
||||
:special-members: __init__, __str__
|
||||
.. include:: python/${PYDIR}/pyopencolorio_gradingrgbmsw.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
|
||||
+3
-14
@@ -9,10 +9,7 @@ ImageDesc
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autoclass:: PyOpenColorIO.ImageDesc
|
||||
:members:
|
||||
:undoc-members:
|
||||
:special-members: __init__
|
||||
.. include:: python/${PYDIR}/pyopencolorio_imagedesc.rst
|
||||
|
||||
.. py:data:: AutoStride
|
||||
:module: PyOpenColorIO
|
||||
@@ -38,11 +35,7 @@ PackedImageDesc
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autoclass:: PyOpenColorIO.PackedImageDesc
|
||||
:members:
|
||||
:undoc-members:
|
||||
:special-members: __init__
|
||||
:inherited-members:
|
||||
.. include:: python/${PYDIR}/pyopencolorio_packedimagedesc.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -57,11 +50,7 @@ PlanarImageDesc
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autoclass:: PyOpenColorIO.PlanarImageDesc
|
||||
:members:
|
||||
:undoc-members:
|
||||
:special-members: __init__
|
||||
:inherited-members:
|
||||
.. include:: python/${PYDIR}/pyopencolorio_planarimagedesc.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
|
||||
+1
-4
@@ -9,10 +9,7 @@ Look
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autoclass:: PyOpenColorIO.Look
|
||||
:members:
|
||||
:undoc-members:
|
||||
:special-members: __init__, __str__
|
||||
.. include:: python/${PYDIR}/pyopencolorio_look.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
|
||||
@@ -9,14 +9,7 @@ Named Transform
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autoclass:: PyOpenColorIO.NamedTransform
|
||||
:members:
|
||||
:undoc-members:
|
||||
:special-members: __init__, __str__
|
||||
:exclude-members: NamedTransformCategoryIterator
|
||||
|
||||
.. autoclass:: PyOpenColorIO.NamedTransform.NamedTransformCategoryIterator
|
||||
:special-members: __getitem__, __iter__, __len__, __next__
|
||||
.. include:: python/${PYDIR}/pyopencolorio_namedtransform.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
|
||||
+4
-27
@@ -12,14 +12,7 @@ Processor
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autoclass:: PyOpenColorIO.Processor
|
||||
:members:
|
||||
:undoc-members:
|
||||
:special-members: __init__
|
||||
:exclude-members: TransformFormatMetadataIterator, WriteFormatIterator
|
||||
|
||||
.. autoclass:: PyOpenColorIO.Processor.TransformFormatMetadataIterator
|
||||
:special-members: __getitem__, __iter__, __len__, __next__
|
||||
.. include:: python/${PYDIR}/pyopencolorio_processor.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -37,10 +30,7 @@ CPUProcessor
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autoclass:: PyOpenColorIO.CPUProcessor
|
||||
:members:
|
||||
:undoc-members:
|
||||
:special-members: __init__
|
||||
.. include:: python/${PYDIR}/pyopencolorio_cpuprocessor.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -58,10 +48,7 @@ GPUProcessor
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. autoclass:: PyOpenColorIO.GPUProcessor
|
||||
:members:
|
||||
:undoc-members:
|
||||
:special-members: __init__
|
||||
.. include:: python/${PYDIR}/pyopencolorio_gpuprocessor.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
@@ -79,17 +66,7 @@ ProcessorMetadata
|
||||
|
||||
.. group-tab:: Python
|
||||
|
||||
.. 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__
|
||||
.. include:: python/${PYDIR}/pyopencolorio_processormetadata.rst
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
..
|
||||
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>
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
..
|
||||
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
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
..
|
||||
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
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
..
|
||||
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.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.
|
||||
|
||||
@@ -0,0 +1,167 @@
|
||||
..
|
||||
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
|
||||
|
||||
Iterator on LUT baker Formats.
|
||||
|
||||
Each item is a tuple containing format name and format extension.
|
||||
|
||||
|
||||
.. 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
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
..
|
||||
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>
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
..
|
||||
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
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
..
|
||||
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
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
..
|
||||
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
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
..
|
||||
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
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
..
|
||||
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
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
..
|
||||
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
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
..
|
||||
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.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.
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
..
|
||||
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
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
..
|
||||
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>
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
..
|
||||
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
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
..
|
||||
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
|
||||
|
||||
@@ -0,0 +1,151 @@
|
||||
..
|
||||
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.
|
||||
|
||||
**ASC_SOP**
|
||||
|
||||
Slope, offset, power:: out = clamp( (in * slope) + offset ) ^ power
|
||||
|
||||
.. 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) -> PyOpenColorIO.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.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.
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
..
|
||||
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>
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
..
|
||||
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.
|
||||
|
||||
@@ -0,0 +1,257 @@
|
||||
..
|
||||
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
|
||||
|
||||
The *:ref:`ColorSpace`* is the state of an image with respect to colorimetry and color encoding. Transforming images between different *ColorSpaces* is the primary motivation for this library.
|
||||
|
||||
While a complete discussion of color spaces is beyond the scope of header documentation, traditional uses would be to have *ColorSpaces* corresponding to: physical capture devices (known cameras, scanners), and internal 'convenience' spaces (such as scene linear, logarithmic).
|
||||
|
||||
*ColorSpaces* are specific to a particular image precision (float32, uint8, etc.), and the set of ColorSpaces that provide equivalent mappings (at different precisions) are referred to as a 'family'.
|
||||
|
||||
|
||||
.. py:method:: ColorSpace.__init__(*args, **kwargs)
|
||||
:module: PyOpenColorIO
|
||||
|
||||
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.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
|
||||
|
||||
*Allocation*
|
||||
|
||||
If this colorspace needs to be transferred to a limited dynamic range coding space (such as during display with a GPU path), use this allocation to maximize bit efficiency.
|
||||
|
||||
|
||||
.. 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
|
||||
|
||||
*Encodings*
|
||||
|
||||
It is sometimes useful for applications to group color spaces based on how the color values are digitally encoded. For example, images in scene-linear, logarithmic, video, and data color spaces could have different default views. Unlike the Family and EqualityGroup attributes of a color space, the list of Encodings is predefined in the OCIO documentation (rather than being config-specific) to make it easier for applications to utilize.
|
||||
|
||||
Here is an example config entry that could appear under a :ref:`ColorSpace`:
|
||||
|
||||
.. code-block:: cpp
|
||||
|
||||
encoding: scene-linear
|
||||
|
||||
Encoding strings are not case-sensitive. Although users may add their own encodings, the strings will typically come from a fixed set listed in the documentation (similar to roles).
|
||||
|
||||
|
||||
.. 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
|
||||
|
||||
*:ref:`Transform`*
|
||||
|
||||
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.
|
||||
|
||||
A category is used to allow applications to filter the list of color spaces they display in menus based on what that color space is used for.
|
||||
|
||||
Here is an example config entry that could appear under a :ref:`ColorSpace`:
|
||||
|
||||
.. code-block:: cpp
|
||||
|
||||
categories: [ file-io, working-space, basic-3d ]
|
||||
|
||||
The example contains three categories: 'file-io', 'working-space' and 'basic-3d'.
|
||||
|
||||
.. note::
|
||||
Category strings are not case-sensitive and the order is not significant.
|
||||
|
||||
There is no limit imposed on length or number. Although users may add their own categories, the strings will typically come from a fixed set listed in the documentation (similar to roles).
|
||||
|
||||
|
||||
.. py:method:: ColorSpace.isData(self: PyOpenColorIO.ColorSpace) -> bool
|
||||
:module: PyOpenColorIO
|
||||
|
||||
*Data*
|
||||
|
||||
ColorSpaces that are data are treated a bit special. Basically, any colorspace transforms you try to apply to them are ignored. (Think of applying a gamut mapping transform to an ID pass). However, the setDataBypass method on :ref:`ColorSpaceTransform` and :ref:`DisplayViewTransform` allow applications to process data when necessary. (Think of sending mattes to an HDR monitor.)
|
||||
|
||||
This is traditionally used for pixel data that represents non-color pixel data, such as normals, point positions, ID information, etc.
|
||||
|
||||
|
||||
.. 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
|
||||
|
||||
|
||||
.. py:class:: ColorSpaceAliasIterator
|
||||
:module: PyOpenColorIO.ColorSpace
|
||||
|
||||
|
||||
.. py:method:: ColorSpaceAliasIterator.__getitem__(self: PyOpenColorIO.ColorSpace.ColorSpaceAliasIterator, arg0: int) -> str
|
||||
:module: PyOpenColorIO.ColorSpace
|
||||
|
||||
|
||||
.. py:method:: ColorSpaceAliasIterator.__iter__(self: PyOpenColorIO.ColorSpace.ColorSpaceAliasIterator) -> PyOpenColorIO.ColorSpace.ColorSpaceAliasIterator
|
||||
:module: PyOpenColorIO.ColorSpace
|
||||
|
||||
|
||||
.. py:method:: ColorSpaceAliasIterator.__len__(self: PyOpenColorIO.ColorSpace.ColorSpaceAliasIterator) -> int
|
||||
:module: PyOpenColorIO.ColorSpace
|
||||
|
||||
|
||||
.. py:method:: ColorSpaceAliasIterator.__next__(self: PyOpenColorIO.ColorSpace.ColorSpaceAliasIterator) -> str
|
||||
:module: PyOpenColorIO.ColorSpace
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
..
|
||||
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>
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
..
|
||||
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.
|
||||
|
||||
@@ -0,0 +1,92 @@
|
||||
..
|
||||
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.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) -> PyOpenColorIO.ColorSpaceMenuHelper.ColorSpaceLevelIterator
|
||||
: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
|
||||
|
||||
@@ -0,0 +1,166 @@
|
||||
..
|
||||
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: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.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) -> PyOpenColorIO.ColorSpaceMenuParameters.AddedColorSpaceIterator
|
||||
: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.
|
||||
|
||||
@@ -0,0 +1,159 @@
|
||||
..
|
||||
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 :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 :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
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
..
|
||||
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.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.
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
..
|
||||
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>
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
..
|
||||
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
@@ -0,0 +1,191 @@
|
||||
..
|
||||
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
|
||||
|
||||
:ref:`Context`
|
||||
|
||||
A context defines some overrides to a :ref:`Config`. For example, it can override the search path or change the value of a context variable.
|
||||
|
||||
.. note::
|
||||
Only some :ref:`Config::getProcessor` methods accept a custom context; otherwise, the default context instance is used (see Config::getCurrentContext).
|
||||
|
||||
:ref:`Context` Variables
|
||||
|
||||
The context variables allow changes at runtime using environment variables. For example, a color space name (such as src & dst for the :ref:`ColorSpaceTransform`) or a file name (such as LUT file name for the :ref:`FileTransform`) could be defined by context variables. The color transformation is then customized based on some environment variables.
|
||||
|
||||
In a config the context variables support three syntaxes (i.e. ${VAR}, $VAR and VAR%) and the parsing starts from longest to shortest. So, the resolve works like '$TEST_$TESTING_$TE' expands in this order '2 1 3'.
|
||||
|
||||
:ref:`Config` authors are recommended to include the "environment" section in their configs. This improves performance as well as making the config more readable. When present, this section must declare all context variables used in the config. It may also provide a default value, in case the variable is not present in the user's environment.
|
||||
|
||||
A context variable may only be used in the following places:
|
||||
- the `:ref:`ColorSpaceTransform`` to define the source and the destination color space names,
|
||||
- the `:ref:`FileTransform`` to define the source file name (e.g. a LUT file name),
|
||||
- the search_path,
|
||||
- the cccid of the `:ref:`FileTransform`` to only extract one specific transform from the CDL & CCC files.
|
||||
|
||||
Some specific restrictions are worth calling out:
|
||||
- they cannot be used as either the name or value of a role,
|
||||
- the context variable characters $ and % are prohibited in a color space name.
|
||||
|
||||
|
||||
.. 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.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
|
||||
|
||||
|
||||
.. 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
|
||||
|
||||
Resolve all the context variables from the string. It could be color space names or file names. Note that it recursively applies the context variable resolution. Returns the string unchanged if it does not contain any context variable.
|
||||
|
||||
2. resolveStringVar(self: PyOpenColorIO.Context, string: str, usedContextVars: PyOpenColorIO.Context) -> str
|
||||
|
||||
Resolve all the context variables from the string and return all the context variables used to resolve the string (empty if no context variables were used).
|
||||
|
||||
|
||||
.. py:method:: Context.setEnvironmentMode(self: PyOpenColorIO.Context, mode: PyOpenColorIO.EnvironmentMode) -> None
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. 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
|
||||
|
||||
@@ -0,0 +1,184 @@
|
||||
..
|
||||
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: PyOpenColorIO.ImageDesc) -> 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: PyOpenColorIO.ImageDesc, dstImgDesc: PyOpenColorIO.ImageDesc) -> 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
|
||||
|
||||
The returned pointer may be used to set the value of any dynamic properties of the requested type. Throws if the requested property is not found. Note that if the processor contains several ops that support the requested property, only one can be dynamic.
|
||||
|
||||
.. note::
|
||||
The dynamic properties in this object are decoupled from the ones in the :ref:`Processor` it was generated from. For each dynamic property in the :ref:`Processor`, there is one in the CPU processor.
|
||||
|
||||
|
||||
.. 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.
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
..
|
||||
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.
|
||||
|
||||
@@ -0,0 +1,88 @@
|
||||
..
|
||||
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.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.
|
||||
|
||||
@@ -0,0 +1,107 @@
|
||||
..
|
||||
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 `:ref:`CPUProcessor`` or `: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) -> PyOpenColorIO.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) -> PyOpenColorIO.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) -> PyOpenColorIO.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: PyOpenColorIO.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: PyOpenColorIO.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: PyOpenColorIO.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.
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
..
|
||||
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>
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
..
|
||||
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>
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
..
|
||||
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:: EnvironmentModeFromString(str: str) -> PyOpenColorIO.EnvironmentMode
|
||||
:module: PyOpenColorIO
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
..
|
||||
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:: EnvironmentModeToString(mode: PyOpenColorIO.EnvironmentMode) -> str
|
||||
:module: PyOpenColorIO
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
..
|
||||
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:exception:: Exception
|
||||
:module: PyOpenColorIO
|
||||
|
||||
An exception class to throw for errors detected at runtime.
|
||||
|
||||
.. warning::
|
||||
All functions in the :ref:`Config` class can potentially throw this exception.
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
..
|
||||
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:exception:: ExceptionMissingFile
|
||||
:module: PyOpenColorIO
|
||||
|
||||
An exception class for errors detected at runtime.
|
||||
|
||||
Thrown when OCIO cannot find a file that is expected to exist. This is provided as a custom type to distinguish cases where one wants to continue looking for missing files, but wants to properly fail for other error conditions.
|
||||
|
||||
@@ -0,0 +1,75 @@
|
||||
..
|
||||
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:: ExponentTransform
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Represents exponent transform: pow( clamp(color), value ).
|
||||
|
||||
.. note::
|
||||
For configs with version == 1: Negative style is ignored and if the exponent is 1.0, this will not clamp. Otherwise, the input color will be clamped between [0.0, inf]. For configs with version > 1: Negative value handling may be specified via setNegativeStyle.
|
||||
|
||||
|
||||
.. py:method:: ExponentTransform.__init__(*args, **kwargs)
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Overloaded function.
|
||||
|
||||
1. __init__(self: PyOpenColorIO.ExponentTransform) -> None
|
||||
|
||||
2. __init__(self: PyOpenColorIO.ExponentTransform, value: List[float[4]] = [1.0, 1.0, 1.0, 1.0], negativeStyle: PyOpenColorIO.NegativeStyle = <NegativeStyle.NEGATIVE_CLAMP: 0>, direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
|
||||
|
||||
|
||||
.. py:method:: ExponentTransform.equals(self: PyOpenColorIO.ExponentTransform, other: PyOpenColorIO.ExponentTransform) -> bool
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Checks if this exactly equals other.
|
||||
|
||||
|
||||
.. py:method:: ExponentTransform.getDirection(self: PyOpenColorIO.Transform) -> PyOpenColorIO.TransformDirection
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: ExponentTransform.getFormatMetadata(self: PyOpenColorIO.ExponentTransform) -> PyOpenColorIO.FormatMetadata
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: ExponentTransform.getNegativeStyle(self: PyOpenColorIO.ExponentTransform) -> PyOpenColorIO.NegativeStyle
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Specifies how negative values are handled. Legal values:
|
||||
|
||||
- NEGATIVE_CLAMP -- Clamp negative values (default).
|
||||
- NEGATIVE_MIRROR -- Positive curve is rotated 180 degrees around the origin to handle negatives.
|
||||
- NEGATIVE_PASS_THRU -- Negative values are passed through unchanged.
|
||||
|
||||
|
||||
.. py:method:: ExponentTransform.getTransformType(self: PyOpenColorIO.Transform) -> PyOpenColorIO.TransformType
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: ExponentTransform.getValue(self: PyOpenColorIO.ExponentTransform) -> List[float[4]]
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: ExponentTransform.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:: ExponentTransform.setNegativeStyle(self: PyOpenColorIO.ExponentTransform, style: PyOpenColorIO.NegativeStyle) -> None
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: ExponentTransform.setValue(self: PyOpenColorIO.ExponentTransform, value: List[float[4]]) -> None
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: ExponentTransform.validate(self: PyOpenColorIO.Transform) -> None
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Will throw if data is not valid.
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user