Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci_workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -459,7 +459,7 @@ jobs:
if: |
github.event_name == 'push' ||
github.event.pull_request.head.repo.full_name != github.repository
runs-on: macos-13
runs-on: macos-15-intel
strategy:
matrix:
build: [1, 2, 3, 4, 5]
Expand Down
54 changes: 27 additions & 27 deletions .github/workflows/wheel_workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -101,10 +101,10 @@ jobs:
manylinux: manylinux_2_28
python: cp313-manylinux_x86_64
arch: x86_64
# - build: CPython 3.14 64 bits manylinux_2_28
# manylinux: manylinux_2_28
# python: cp314-manylinux_x86_64
# arch: x86_64
- build: CPython 3.14 64 bits manylinux_2_28
manylinux: manylinux_2_28
python: cp314-manylinux_x86_64
arch: x86_64
# -------------------------------------------------------------------
# CPython 64 bits manylinux2014
# -------------------------------------------------------------------
Expand All @@ -128,10 +128,10 @@ jobs:
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
- build: CPython 3.14 64 bits manylinux2014
manylinux: manylinux2014
python: cp314-manylinux_x86_64
arch: x86_64

steps:
- uses: actions/checkout@v4
Expand All @@ -142,7 +142,7 @@ jobs:
python-version: '3.11'

- name: Build wheels
uses: pypa/cibuildwheel@v3.1.4
uses: pypa/cibuildwheel@v3.3.0
env:
CIBW_BUILD: ${{ matrix.python }}
CIBW_ARCHS: ${{ matrix.arch }}
Expand Down Expand Up @@ -190,10 +190,10 @@ jobs:
manylinux: manylinux2014
python: cp313-manylinux_aarch64
arch: aarch64
# - build: CPython 3.14 ARM 64 bits manylinux2014
# manylinux: manylinux2014
# python: cp314-manylinux_aarch64
# arch: aarch64
- build: CPython 3.14 ARM 64 bits manylinux2014
manylinux: manylinux2014
python: cp314-manylinux_aarch64
arch: aarch64

steps:
- uses: actions/checkout@v4
Expand All @@ -204,7 +204,7 @@ jobs:
python-version: '3.11'

- name: Build wheels
uses: pypa/cibuildwheel@v3.1.4
uses: pypa/cibuildwheel@v3.3.0
env:
CIBW_BUILD: ${{ matrix.python }}
CIBW_ARCHS: ${{ matrix.arch }}
Expand All @@ -221,7 +221,7 @@ jobs:

macos:
name: Build wheels on macOS
runs-on: macos-13
runs-on: macos-15-intel
# Don't run on OCIO forks
if: |
github.event_name != 'schedule' ||
Expand All @@ -247,9 +247,9 @@ jobs:
- 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
- build: CPython 3.14 64 bits
python: cp314-macosx_x86_64
arch: x86_64

steps:
- uses: actions/checkout@v4
Expand All @@ -264,7 +264,7 @@ jobs:
brew uninstall --ignore-dependencies openexr imath || true

- name: Build wheels
uses: pypa/cibuildwheel@v3.1.4
uses: pypa/cibuildwheel@v3.3.0
env:
CIBW_BUILD: ${{ matrix.python }}
CIBW_ARCHS: ${{ matrix.arch }}
Expand Down Expand Up @@ -306,9 +306,9 @@ jobs:
- build: CPython 3.13 ARM 64 bits
python: cp313-macosx_arm64
arch: arm64
# - build: CPython 3.14 ARM 64 bits
# python: cp314-macosx_arm64
# arch: arm64
- build: CPython 3.14 ARM 64 bits
python: cp314-macosx_arm64
arch: arm64

steps:
- uses: actions/checkout@v4
Expand All @@ -319,7 +319,7 @@ jobs:
python-version: '3.11'

- name: Build wheels
uses: pypa/cibuildwheel@v3.1.4
uses: pypa/cibuildwheel@v3.3.0
env:
CIBW_BUILD: ${{ matrix.python }}
CIBW_ARCHS: ${{ matrix.arch }}
Expand Down Expand Up @@ -361,9 +361,9 @@ jobs:
- build: CPython 3.13 64 bits
python: cp313-win_amd64
arch: AMD64
# - build: CPython 3.14 64 bits
# python: cp314-win_amd64
# arch: AMD64
- build: CPython 3.14 64 bits
python: cp314-win_amd64
arch: AMD64

steps:
- uses: actions/checkout@v4
Expand All @@ -374,7 +374,7 @@ jobs:
python-version: '3.11'

- name: Build wheels
uses: pypa/cibuildwheel@v3.1.4
uses: pypa/cibuildwheel@v3.3.0
env:
CIBW_BUILD: ${{ matrix.python }}
CIBW_ARCHS: ${{ matrix.arch }}
Expand Down
4 changes: 2 additions & 2 deletions docs/site/homepage/data/en/contact.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ contact:
contact_list:
- icon : ti-comment # themify icon pack : https://themify.me/themify-icons
name: "Slack:"
info : "OpenColorIO"
link: "http://slack.opencolorio.org"
info : "#OpenColorIO"
link: "https://academysoftwarefdn.slack.com"

- icon : ti-email # themify icon pack : https://themify.me/themify-icons
name: "OCIO-User:"
Expand Down
24 changes: 12 additions & 12 deletions docs/site/homepage/data/en/news.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,26 +2,26 @@
news:
enable : true
image : images/disney_insideout.jpeg
title : OCIO v2 is here!
title : OCIO v2.5.0 is here!
content : "Check out our [guides](https://opencolorio.readthedocs.io/en/latest/releases/_index.html#releases) for upgrading. Here are just a few highlights of new features:"
caption: "Image courtesy of Disney (c)"
feature_item :
# feature item loop
- title : New GPU Renderer
icon : ti-world # themify icon pack : https://themify.me/themify-icons
content : The GPU renderer now matches the CPU and may be used to render final frames!
- title : Config Merging
icon : ti-files # themify icon pack : https://themify.me/themify-icons
content : This much-anticipated feature is now in Preview. Please provide feedback on use cases and workflows. Merging enables user and application control over things like name and alias conflicts, color space duplication, and much more.

# feature item loop
- title : Better User Experience
icon : ti-brush # themify icon pack : https://themify.me/themify-icons
content : Config authors have new tools to organize color spaces by category, hide color spaces, and define hierarchical menus. New File and Viewing Rules allow more powerful default behaviors.
- title : Vulkan GPU Support
icon : ti-image # themify icon pack : https://themify.me/themify-icons
content : Support has been added for the Khronos Vulkan graphics API standard. The OCIO GPU renderer may now be used within applications that use Vulkan to get the most out of the latest GPUs.

# feature item loop
- title : Improved ACES Support
icon : ti-stats-up # themify icon pack : https://themify.me/themify-icons
content : ACES Output Transforms no longer use 3d-LUTs and are accurate even for extreme exposure values. There is also full read and write support for the Academy/ASC Common LUT Format (CLF).
- title : Full ACES 2.0 Support
icon : ti-brush # themify icon pack : https://themify.me/themify-icons
content : With the inclusion of ACES 2.0 Built-In configs, our ACES 2.0 support is now feature complete. This allows use of the ACES 2.0 Output Transforms as OCIO views.

# feature item loop
- title : Analysis Tools
- title : New Color Space Attributes
icon : ti-panel # themify icon pack : https://themify.me/themify-icons
content : There are new command line tools for evaluating LUTs, converting to CLF, serializing OCIO Processors, and more!
content : OCIO now supports the Color Interop ID developed by the Color Interop Forum, as well as attributes for ICC and AMF. Please see the latest config release for example usage.
2 changes: 1 addition & 1 deletion share/ci/scripts/windows/install_doxygen.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ DOXYGEN_LOCATION="$1"
choco install jq

# Get the URL of the latest zip package for Doxygen.
url=$(curl -s 'https://api.github.com/repos/doxygen/doxygen/releases/latest' | jq -r '.assets[] | select(.name | test("doxygen-.*windows.x64.bin.zip")) | .browser_download_url')
url=$(curl -s 'https://api.github.com/repos/doxygen/doxygen/releases/latest' | jq -r '.assets[] | select(.name | test("doxygen-.*\\.x64\\.bin\\.zip")) | .browser_download_url')

# Download the zip.
mkdir $DOXYGEN_LOCATION
Expand Down
6 changes: 2 additions & 4 deletions share/cmake/modules/FindImath.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,8 @@ if(NOT OCIO_INSTALL_EXT_PACKAGES STREQUAL ALL)
set(_Imath_REQUIRED_VARS Imath_LIBRARY)
set(_Imath_LIB_VER "${Imath_FIND_VERSION_MAJOR}_${Imath_FIND_VERSION_MINOR}")

if(NOT DEFINED Imath_ROOT)
# Search for ImathConfig.cmake
find_package(Imath ${Imath_FIND_VERSION} CONFIG QUIET)
endif()
# Search for ImathConfig.cmake
find_package(Imath ${Imath_FIND_VERSION} CONFIG QUIET)

if(Imath_FOUND)
get_target_property(Imath_LIBRARY Imath::Imath LOCATION)
Expand Down
32 changes: 16 additions & 16 deletions share/cmake/modules/FindOSL.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -29,22 +29,22 @@
###############################################################################
### Try to find package ###

if(NOT DEFINED OSL_ROOT)
find_package(OSL ${OSL_FIND_VERSION} CONFIG QUIET)

set(OSL_SHADERS_INCLUDE_DIR ${OSL_INCLUDE_DIR}/../share)
# Variable used by the OSL unit tests.
set(OSL_SHADERS_DIR ${OSL_SHADERS_INCLUDE_DIR}/OSL/shaders)

include (FindPackageHandleStandardArgs)
find_package_handle_standard_args (OSL
REQUIRED_VARS
OSL_INCLUDE_DIR
OSL_LIB_DIR
VERSION_VAR
OSL_VERSION
)
else()
find_package(OSL ${OSL_FIND_VERSION} CONFIG QUIET)

set(OSL_SHADERS_INCLUDE_DIR ${OSL_INCLUDE_DIR}/../share)
# Variable used by the OSL unit tests.
set(OSL_SHADERS_DIR ${OSL_SHADERS_INCLUDE_DIR}/OSL/shaders)

include (FindPackageHandleStandardArgs)
find_package_handle_standard_args (OSL
REQUIRED_VARS
OSL_INCLUDE_DIR
OSL_LIB_DIR
VERSION_VAR
OSL_VERSION
)

if(NOT OSL_FOUND)
set(OSL_INCLUDE_DIR ${OSL_ROOT}/include)
set(OSL_VERSION_HEADER "${OSL_INCLUDE_DIR}/OSL/oslversion.h")

Expand Down
6 changes: 2 additions & 4 deletions share/cmake/modules/Findexpat.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -39,10 +39,8 @@ endif()
if(NOT OCIO_INSTALL_EXT_PACKAGES STREQUAL ALL)
set(_expat_REQUIRED_VARS expat_LIBRARY)

if(NOT DEFINED expat_ROOT)
# Search for expat-config.cmake
find_package(expat ${expat_FIND_VERSION} CONFIG QUIET)
endif()
# Search for expat-config.cmake
find_package(expat ${expat_FIND_VERSION} CONFIG QUIET)

if(expat_FOUND)
if (TARGET expat::libexpat)
Expand Down
6 changes: 2 additions & 4 deletions share/cmake/modules/Findminizip-ng.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,8 @@ if(CMAKE_BUILD_TYPE MATCHES "[Dd][Ee][Bb][Uu][Gg]")
endif()

if(NOT OCIO_INSTALL_EXT_PACKAGES STREQUAL ALL)
if(NOT DEFINED minizip-ng_ROOT)
# Search for minizip-ng-config.cmake
find_package(minizip-ng ${minizip-ng_FIND_VERSION} CONFIG QUIET)
endif()
# Search for minizip-ng-config.cmake
find_package(minizip-ng ${minizip-ng_FIND_VERSION} CONFIG QUIET)

if (minizip-ng_FOUND)
get_target_property(minizip-ng_INCLUDE_DIR MINIZIP::minizip-ng INTERFACE_INCLUDE_DIRECTORIES)
Expand Down
6 changes: 2 additions & 4 deletions share/cmake/modules/Findpybind11.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,8 @@
### Try to find package ###

if(NOT OCIO_INSTALL_EXT_PACKAGES STREQUAL ALL)
if(NOT DEFINED pybind11_ROOT)
# Search for pybind11Config.cmake
find_package(pybind11 ${pybind11_FIND_VERSION} CONFIG QUIET)
endif()
# Search for pybind11Config.cmake
find_package(pybind11 ${pybind11_FIND_VERSION} CONFIG QUIET)

if(NOT pybind11_FOUND)
# Find include directory
Expand Down
4 changes: 1 addition & 3 deletions share/cmake/modules/Findyaml-cpp.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,7 @@ if(NOT OCIO_INSTALL_EXT_PACKAGES STREQUAL ALL)
set(_yaml-cpp_REQUIRED_VARS yaml-cpp_LIBRARY)

# Search for yaml-cpp-config.cmake
if(NOT DEFINED yaml-cpp_ROOT)
find_package(yaml-cpp ${yaml-cpp_FIND_VERSION} CONFIG ${quiet})
endif()
find_package(yaml-cpp ${yaml-cpp_FIND_VERSION} CONFIG ${quiet})

if(yaml-cpp_FOUND)
# Alias target for yaml-cpp < 0.8 compatibility
Expand Down
38 changes: 18 additions & 20 deletions src/OpenColorIO/fileformats/FileFormatICC.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
#include "ops/gamma/GammaOp.h"
#include "ops/lut1d/Lut1DOp.h"
#include "ops/matrix/MatrixOp.h"
#include "ops/range/RangeOp.h"
#include "Platform.h"
#include "transforms/FileTransform.h"

Expand Down Expand Up @@ -794,13 +793,23 @@ LocalFileFormat::buildFileOps(OpRcPtrVec & ops,
}
}

// The matrix/TRC transform in the ICC profile converts display device code values to the
// CIE XYZ based version of the ICC profile connection space (PCS).
// However, in OCIO the most common use of an ICC monitor profile is as a display color space,
// and in that usage it is more natural for the XYZ to display code value transform to be called
// the forward direction.
// The matrix/TRC transform in the ICC profile converts display device code
// values to the CIE XYZ based version of the ICC profile connection space
// (PCS). However, in OCIO the most common use of an ICC monitor profile is
// as a display color space, and in that usage it is more natural for the
// XYZ to display code value transform to be called the forward direction.

// Curves / ParaCurves operates in the range 0.0 to 1.0 as per ICC specifications.
// The ICC spec states that the TRC tags should clamp to [0,1]. For curves
// that are implemented in the ICC profile as LUTs and most parametric
// curves (which become LUTs in OCIO), this is the case. However, as
// floating-point and HDR workflows become more common, the clamping has
// become a critical roadblock. For example, it is now common to have ICC
// profiles for linear color spaces that need to pass values outside [0,1].
// Therefore, OCIO now implements single entry 'curv' tags and type 0 'para'
// tags without clamping using an ExponentTransform which extends above 1
// and mirrors below 0. (Note that gamma values of 1 do not need to be
// tested for here since they will be omitted as no-ops later by the
// optimizer.)

switch (newDir)
{
Expand All @@ -817,18 +826,12 @@ LocalFileFormat::buildFileOps(OpRcPtrVec & ops,
const GammaOpData::Params greenParams = { cachedFile->mGammaRGB[1] };
const GammaOpData::Params blueParams = { cachedFile->mGammaRGB[2] };
const GammaOpData::Params alphaParams = { cachedFile->mGammaRGB[3] };
auto gamma = std::make_shared<GammaOpData>(GammaOpData::BASIC_FWD,
auto gamma = std::make_shared<GammaOpData>(GammaOpData::BASIC_MIRROR_FWD,
redParams,
greenParams,
blueParams,
alphaParams);

// GammaOp will clamp at 0 so we don't do it in the RangeOp.
CreateRangeOp(ops,
RangeOpData::EmptyValue(), 1,
RangeOpData::EmptyValue(), 1,
TRANSFORM_DIR_FORWARD);

CreateGammaOp(ops, gamma, TRANSFORM_DIR_FORWARD);
}

Expand Down Expand Up @@ -859,18 +862,13 @@ LocalFileFormat::buildFileOps(OpRcPtrVec & ops,
const GammaOpData::Params greenParams = { cachedFile->mGammaRGB[1] };
const GammaOpData::Params blueParams = { cachedFile->mGammaRGB[2] };
const GammaOpData::Params alphaParams = { cachedFile->mGammaRGB[3] };
auto gamma = std::make_shared<GammaOpData>(GammaOpData::BASIC_REV,
auto gamma = std::make_shared<GammaOpData>(GammaOpData::BASIC_MIRROR_REV,
redParams,
greenParams,
blueParams,
alphaParams);

CreateGammaOp(ops, gamma, TRANSFORM_DIR_FORWARD);

CreateRangeOp(ops,
RangeOpData::EmptyValue(), 1,
RangeOpData::EmptyValue(), 1,
TRANSFORM_DIR_FORWARD);
}
break;
}
Expand Down
Loading
Loading