Skip to content
Merged
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
16 changes: 16 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# SPDX-License-Identifier: BSD-3-Clause
# Copyright Contributors to the OpenColorIO Project.

version: 2

updates:

- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"

- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "weekly"
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
67 changes: 67 additions & 0 deletions .github/workflows/release-sign.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# SPDX-License-Identifier: BSD-3-Clause
# Copyright Contributors to the OpenColorIO Project.

#
# Releases are signed via https://github.com/sigstore/sigstore-python.
# See https://docs.sigstore.dev for information about sigstore.
#
# This action creates a .tar.gz of the complete OpenColorIO source tree at
# the given release tag, signs it via sigstore, and uploads the
# .tar.gz and the associated .tar.gz.sigstore credential bundle.
#
# To verify a downloaded release at a given tag:
#
# % pip install sigstore
# % sigstore verify github --cert-identity https://github.com/AcademySoftwareFoundation/OpenColorIO/.github/workflows/release-sign.yml@refs/tags/<tag> OpenColorIO-<tag>.tar.gz
#

name: Sign Release

on:
release:
types: [published]

permissions:
contents: read

jobs:
release:
name: Sign & upload release artifacts
runs-on: ubuntu-latest

env:
TAG: ${{ github.ref_name }}
permissions:
contents: write
id-token: write
repository-projects: write

steps:

- name: Set Prefix
# The tag name begins with a 'v', e.g. "v2.4.0", but the prefix
# should omit the 'v', so the tarball "OpenColorIO-2.4.0.tar.gz"
# extracts files into "OpenColorIO-2.4.0/...". This matches
# the GitHub release page autogenerated artifact conventions.
run: |
echo OCIO_PREFIX=OpenColorIO-${TAG//v}/ >> $GITHUB_ENV
echo OCIO_TARBALL=OpenColorIO-${TAG//v}.tar.gz >> $GITHUB_ENV
shell: bash

- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.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@a5caf349bc536fbef3668a10ed7f5cd309a4b53d # v3.2.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
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 CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,12 @@ endif()
# Project definition.

project(OpenColorIO
VERSION 2.5.0
VERSION 2.5.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.
# Release type "dev", "beta1", rc1", etc or "" for an official release.
set(OpenColorIO_VERSION_RELEASE_TYPE "")


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.
28 changes: 22 additions & 6 deletions include/OpenColorIO/OpenColorIO.h
Original file line number Diff line number Diff line change
Expand Up @@ -3503,8 +3503,9 @@ class OCIOEXPORT GpuShaderCreator
* The 'values' parameter contains the LUT data which must be used as-is as the dimensions and
* origin are hard-coded in the fragment shader program. So, it means one GPU texture per entry.
*
* \return Index of the texture. For shading languages using explicit texture bindings, the return
* value is the same as the texture binding index in the generated shader program.
* \return Shader binding index of the texture. For shading languages using explicit texture bindings,
* the return value is the same as the texture binding index in the generated shader program.
* The setDescriptorSetIndex function may be used to offset the starting index value.
**/
virtual unsigned addTexture(const char * textureName,
const char * samplerName,
Expand All @@ -3522,8 +3523,9 @@ class OCIOEXPORT GpuShaderCreator
* and origin are hard-coded in the fragment shader program. So, it means one GPU 3D texture
* per entry.
*
* \return Index of the texture. For shading languages using explicit texture bindings, the return
* value is the same as the texture binding index in the generated shader program.
* \return Shader binding index of the texture. For shading languages using explicit texture bindings,
* the return value is the same as the texture binding index in the generated shader program.
* The setDescriptorSetIndex function may be used to offset the starting index value.
**/
virtual unsigned add3DTexture(const char * textureName,
const char * samplerName,
Expand Down Expand Up @@ -3775,7 +3777,12 @@ class OCIOEXPORT GpuShaderDesc : public GpuShaderCreator
**/
virtual std::size_t getUniformBufferSize() const noexcept = 0;

// 1D lut related methods
/**
* The getTexture methods are used to access Lut1D arrays to upload to the GPU as textures.
* Please note that the index used here is based on the total number of Lut1Ds used by
* the Processor and is different from the texture shader binding index, which may be
* obtained using the corresponding function.
*/
virtual unsigned getNumTextures() const noexcept = 0;
virtual void getTexture(unsigned index,
const char *& textureName,
Expand All @@ -3786,15 +3793,24 @@ class OCIOEXPORT GpuShaderDesc : public GpuShaderCreator
TextureDimensions & dimensions,
Interpolation & interpolation) const = 0;
virtual void getTextureValues(unsigned index, const float *& values) const = 0;
/// Get the index used to declare the texture in the shader for languages such as Vulkan.
virtual unsigned getTextureShaderBindingIndex(unsigned index) const = 0;

// 3D lut related methods
/**
* The get3DTexture methods are used to access Lut3D arrays to upload to the GPU as textures.
* Please note that the index used here is based on the total number of Lut3Ds used by
* the Processor and is different from the texture shader binding index, which may be
* obtained using the corresponding function.
*/
virtual unsigned getNum3DTextures() const noexcept = 0;
virtual void get3DTexture(unsigned index,
const char *& textureName,
const char *& samplerName,
unsigned & edgelen,
Interpolation & interpolation) const = 0;
virtual void get3DTextureValues(unsigned index, const float *& values) const = 0;
/// Get the index used to declare the texture in the shader for languages such as Vulkan.
virtual unsigned get3DTextureShaderBindingIndex(unsigned index) const = 0;

/// Get the complete OCIO shader program.
const char * getShaderText() const noexcept;
Expand Down
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
Loading
Loading