Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d2b672f7e7 | ||
|
|
7de13fc20a | ||
|
|
d4435d33e7 | ||
|
|
73229d885d | ||
|
|
2983316028 | ||
|
|
f74c1b88a9 | ||
|
|
14f13c8b4e | ||
|
|
8fed1b3bc6 | ||
|
|
52faf7449c | ||
|
|
e1b3ffecdd | ||
|
|
a8626f8b45 | ||
|
|
df74525ef9 | ||
|
|
9b619d837a | ||
|
|
056b7b0cb0 | ||
|
|
5ef7fe09eb | ||
|
|
9b9819f7d7 | ||
|
|
ecdc10c458 | ||
|
|
8dc5f6e52b | ||
|
|
eb8e338598 | ||
|
|
d7b41f6c82 | ||
|
|
9eb736bd84 | ||
|
|
0472317713 | ||
|
|
7ffd61d5e7 | ||
|
|
37349220e7 | ||
|
|
0064973150 | ||
|
|
c0a02f3f97 | ||
|
|
267b5d0eaf | ||
|
|
86d7fb56ab | ||
|
|
54e5512ca1 | ||
|
|
12ee9db34f | ||
|
|
67729901c5 | ||
|
|
0645fdd6b5 | ||
|
|
33185815e4 | ||
|
|
7067004759 | ||
|
|
9d964541c1 | ||
|
|
d46e367f4b | ||
|
|
5346a5c08b | ||
|
|
467f90d4ed | ||
|
|
f44dc562ed | ||
|
|
a984c22cb2 | ||
|
|
229ec9cb3a | ||
|
|
3ae974a03b | ||
|
|
066a9ee845 | ||
|
|
4508967c09 | ||
|
|
544c833115 | ||
|
|
f51291111c | ||
|
|
cb5e319d0f |
@@ -25,7 +25,7 @@ jobs:
|
||||
linux_gpu:
|
||||
name: 'Linux CentOS 7 VFX CY2020 GPU <GCC 6.3.1>'
|
||||
# Don't run on OCIO forks
|
||||
if: github.repository == 'AcademySoftwareFoundation/OpenColorIO'
|
||||
if: github.event.push.repository.full_name == 'AcademySoftwareFoundation/OpenColorIO'
|
||||
# GH-hosted VM. The build runs in CentOS 7 'container' hard-coded in
|
||||
# AWS CodeBuild project.
|
||||
# TODO: Add support for dynamic GH Action defined CodeBuild
|
||||
|
||||
+66
-17
@@ -28,13 +28,13 @@ endif()
|
||||
# Project definition.
|
||||
|
||||
project(OpenColorIO
|
||||
VERSION 2.0.0
|
||||
VERSION 2.0.5
|
||||
DESCRIPTION "OpenColorIO (OCIO) is a complete color management solution"
|
||||
HOMEPAGE_URL https://github.com/AcademySoftwareFoundation/OpenColorIO
|
||||
LANGUAGES CXX C)
|
||||
|
||||
# "dev", "beta1", rc1", etc or "" for an official release.
|
||||
set(OpenColorIO_VERSION_RELEASE_TYPE "rc1")
|
||||
set(OpenColorIO_VERSION_RELEASE_TYPE "")
|
||||
|
||||
enable_testing()
|
||||
|
||||
@@ -118,6 +118,9 @@ option(OCIO_BUILD_FROZEN_DOCS "Specify whether to build frozen documentation, ne
|
||||
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
|
||||
"Preferred Python version (if any) in case multiple are available")
|
||||
|
||||
option(OCIO_BUILD_JAVA "Specify whether to build java bindings" OFF)
|
||||
|
||||
option(OCIO_WARNING_AS_ERROR "Set build error level for CI testing" OFF)
|
||||
@@ -127,14 +130,6 @@ option(OCIO_WARNING_AS_ERROR "Set build error level for CI testing" OFF)
|
||||
# Optimization / internal linking preferences
|
||||
|
||||
option(OCIO_USE_SSE "Specify whether to enable SSE CPU performance optimizations" ON)
|
||||
option(OCIO_INLINES_HIDDEN "Specify whether to build with -fvisibility-inlines-hidden" ${UNIX})
|
||||
|
||||
|
||||
###############################################################################
|
||||
# Supplemental builtins
|
||||
|
||||
# Add supplemental built-in transformations such as camera related one.
|
||||
option(OCIO_ADD_EXTRA_BUILTINS "Specify whether to add supplemental built-in transforms" ON)
|
||||
|
||||
|
||||
###############################################################################
|
||||
@@ -249,11 +244,65 @@ include(FindExtPackages)
|
||||
###############################################################################
|
||||
# Progress to other sources
|
||||
|
||||
add_subdirectory(ext)
|
||||
add_subdirectory(include)
|
||||
add_subdirectory(src)
|
||||
add_subdirectory(tests)
|
||||
if(OCIO_BUILD_DOCS)
|
||||
add_subdirectory(docs)
|
||||
endif()
|
||||
add_subdirectory(vendor)
|
||||
if(OCIO_BUILD_DOCS)
|
||||
add_subdirectory(docs)
|
||||
endif()
|
||||
add_subdirectory(tests)
|
||||
add_subdirectory(src)
|
||||
add_subdirectory(include)
|
||||
add_subdirectory(ext)
|
||||
|
||||
|
||||
###############################################################################
|
||||
# Configure env script
|
||||
|
||||
if(WIN32)
|
||||
set(OCIO_SETUP_NAME setup_ocio.bat)
|
||||
else()
|
||||
set(OCIO_SETUP_NAME setup_ocio.sh)
|
||||
endif()
|
||||
|
||||
configure_file(${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 share/ocio/)
|
||||
|
||||
|
||||
###############################################################################
|
||||
# Generate OpenColorIO-config.cmake
|
||||
# Targets exported to ${PROJECT_NAME}_EXPORTED_TARGETS will be available for
|
||||
# import using find_package(OpenColorIO).
|
||||
|
||||
include(CMakePackageConfigHelpers)
|
||||
|
||||
set(OCIO_TARGETS_EXPORT_NAME "${PROJECT_NAME}Targets.cmake")
|
||||
set(OCIO_VERSION_CONFIG "${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}")
|
||||
|
||||
# Version fetched from the top level project()
|
||||
write_basic_package_version_file(
|
||||
${OCIO_VERSION_CONFIG}
|
||||
# Version range supported only if generated by CMake 3.19.2 or newer.
|
||||
COMPATIBILITY SameMajorVersion
|
||||
)
|
||||
|
||||
configure_package_config_file(
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/cmake/Config.cmake.in ${OCIO_PROJECT_CONFIG}
|
||||
INSTALL_DESTINATION ${OCIO_CONFIG_INSTALL_DIR}
|
||||
NO_SET_AND_CHECK_MACRO
|
||||
NO_CHECK_REQUIRED_COMPONENTS_MACRO
|
||||
)
|
||||
|
||||
install(
|
||||
EXPORT ${PROJECT_NAME}_EXPORTED_TARGETS
|
||||
DESTINATION ${OCIO_CONFIG_INSTALL_DIR}
|
||||
NAMESPACE ${PROJECT_NAME}::
|
||||
FILE ${OCIO_TARGETS_EXPORT_NAME}
|
||||
)
|
||||
|
||||
install(
|
||||
FILES "${OCIO_PROJECT_CONFIG}" "${OCIO_VERSION_CONFIG}"
|
||||
DESTINATION "${OCIO_CONFIG_INSTALL_DIR}"
|
||||
)
|
||||
|
||||
@@ -121,6 +121,27 @@ External Plugins (currently known)::
|
||||
this is a 1D HDR to LDR allocation. It is normally combined with
|
||||
another display transform in the host app for preview.
|
||||
|
||||
.. data:: PyOpenColorIO.ROLE_RENDERING
|
||||
|
||||
The rendering role may be used to identify a specific color space to be
|
||||
used by CGI renderers. This is typically a scene-linear space but the
|
||||
primaries also matter since they influence the resulting color, especially
|
||||
in areas of indirect illumination.
|
||||
|
||||
.. data:: PyOpenColorIO.ROLE_INTERCHANGE_SCENE
|
||||
|
||||
The aces_interchange role is used to specify which color space in the
|
||||
config implements the standard ACES2065-1 color space (SMPTE ST2065-1).
|
||||
This may be used when converting scene-referred colors from one config
|
||||
to another.
|
||||
|
||||
.. data:: PyOpenColorIO.ROLE_INTERCHANGE_DISPLAY
|
||||
|
||||
The cie_xyz_d65_interchange role is used to specify which color space in
|
||||
the config implements CIE XYZ colorimetry with the neutral axis at D65.
|
||||
This may be used when converting display-referred colors from one config
|
||||
to another.
|
||||
|
||||
.. group-tab:: C++
|
||||
|
||||
.. doxygengroup:: VarsRoles
|
||||
|
||||
@@ -31,3 +31,8 @@
|
||||
:module: PyOpenColorIO
|
||||
:value: <Allocation.ALLOCATION_UNKNOWN: 0>
|
||||
|
||||
|
||||
.. py:method:: Allocation.value
|
||||
:module: PyOpenColorIO
|
||||
:property:
|
||||
|
||||
|
||||
@@ -19,9 +19,11 @@
|
||||
2. __init__(self: PyOpenColorIO.AllocationTransform, allocation: PyOpenColorIO.Allocation = <Allocation.ALLOCATION_UNIFORM: 1>, vars: List[float] = [], direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
|
||||
|
||||
|
||||
.. py:method:: AllocationTransform.__str__(self: PyOpenColorIO.AllocationTransform) -> str
|
||||
.. py:method:: AllocationTransform.__str__()
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Return str(self).
|
||||
|
||||
|
||||
.. py:method:: AllocationTransform.getAllocation(self: PyOpenColorIO.AllocationTransform) -> PyOpenColorIO.Allocation
|
||||
:module: PyOpenColorIO
|
||||
|
||||
@@ -145,6 +145,10 @@
|
||||
.. 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
|
||||
|
||||
@@ -75,3 +75,8 @@
|
||||
:module: PyOpenColorIO
|
||||
:value: <BitDepth.BIT_DEPTH_UNKNOWN: 0>
|
||||
|
||||
|
||||
.. py:method:: BitDepth.value
|
||||
:module: PyOpenColorIO
|
||||
:property:
|
||||
|
||||
|
||||
@@ -19,9 +19,11 @@
|
||||
2. __init__(self: PyOpenColorIO.BuiltinTransform, style: str = 'IDENTITY', direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
|
||||
|
||||
|
||||
.. py:method:: BuiltinTransform.__str__(self: PyOpenColorIO.BuiltinTransform) -> str
|
||||
.. py:method:: BuiltinTransform.__str__()
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Return str(self).
|
||||
|
||||
|
||||
.. py:method:: BuiltinTransform.getDescription(self: PyOpenColorIO.BuiltinTransform) -> str
|
||||
:module: PyOpenColorIO
|
||||
|
||||
@@ -31,3 +31,8 @@
|
||||
:module: PyOpenColorIO
|
||||
:value: <CDLStyle.CDL_NO_CLAMP: 1>
|
||||
|
||||
|
||||
.. py:method:: CDLStyle.value
|
||||
:module: PyOpenColorIO
|
||||
:property:
|
||||
|
||||
|
||||
@@ -18,16 +18,18 @@
|
||||
|
||||
Load the CDL from the src .cdl, .cc, or .ccc file.
|
||||
|
||||
|
||||
.. note::
|
||||
The cccid can be the ID of a CDL or the index of the CDL (as string). If cccid is NULL or empty the first CDL is returned. The cccid is case-sensitive. The src must be an absolute path reference, no relative directory or envvar resolution is performed. Throws if file does not contain any CDL or if the specified cccid is not found.
|
||||
|
||||
|
||||
.. py:method:: CDLTransform.CreateGroupFromFile(src: str) -> OpenColorIO_v2_0rc1::GroupTransform
|
||||
.. 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.
|
||||
|
||||
@@ -44,9 +46,11 @@
|
||||
3. __init__(self: PyOpenColorIO.CDLTransform, slope: List[float[3]] = [1.0, 1.0, 1.0], offset: List[float[3]] = [0.0, 0.0, 0.0], power: List[float[3]] = [1.0, 1.0, 1.0], sat: float = 1.0, id: str = '', description: str = '', direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
|
||||
|
||||
|
||||
.. py:method:: CDLTransform.__str__(self: PyOpenColorIO.CDLTransform) -> str
|
||||
.. py:method:: CDLTransform.__str__()
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Return str(self).
|
||||
|
||||
|
||||
.. py:method:: CDLTransform.equals(self: PyOpenColorIO.CDLTransform, other: PyOpenColorIO.CDLTransform) -> bool
|
||||
:module: PyOpenColorIO
|
||||
|
||||
@@ -47,3 +47,8 @@
|
||||
:module: PyOpenColorIO
|
||||
:value: <ChannelOrdering.CHANNEL_ORDERING_RGBA: 0>
|
||||
|
||||
|
||||
.. py:method:: ChannelOrdering.value
|
||||
:module: PyOpenColorIO
|
||||
:property:
|
||||
|
||||
|
||||
@@ -7,16 +7,6 @@
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:class:: ColorSpace.ColorSpaceAliasIterator
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: ColorSpace.ColorSpaceAliasIterator.__init__(*args, **kwargs)
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Initialize self. See help(type(self)) for accurate signature.
|
||||
|
||||
|
||||
.. py:method:: ColorSpace.__init__(*args, **kwargs)
|
||||
:module: PyOpenColorIO
|
||||
|
||||
@@ -29,10 +19,6 @@
|
||||
3. __init__(self: PyOpenColorIO.ColorSpace, referenceSpace: PyOpenColorIO.ReferenceSpaceType = <ReferenceSpaceType.REFERENCE_SPACE_SCENE: 0>, name: str = '', aliases: List[str] = [], family: str = '', encoding: str = '', equalityGroup: str = '', description: str = '', bitDepth: PyOpenColorIO.BitDepth = <BitDepth.BIT_DEPTH_UNKNOWN: 0>, isData: bool = False, allocation: PyOpenColorIO.Allocation = <Allocation.ALLOCATION_UNIFORM: 1>, allocationVars: List[float] = [], toReference: PyOpenColorIO.Transform = None, fromReference: PyOpenColorIO.Transform = None, categories: List[str] = []) -> None
|
||||
|
||||
|
||||
.. py:method:: ColorSpace.__str__(self: PyOpenColorIO.ColorSpace) -> str
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: ColorSpace.addAlias(self: PyOpenColorIO.ColorSpace, alias: str) -> None
|
||||
:module: PyOpenColorIO
|
||||
|
||||
@@ -44,6 +30,7 @@
|
||||
|
||||
Add a single category.
|
||||
|
||||
|
||||
.. note::
|
||||
Will do nothing if the category already exists.
|
||||
|
||||
@@ -135,6 +122,7 @@
|
||||
|
||||
Remove a category.
|
||||
|
||||
|
||||
.. note::
|
||||
Will do nothing if the category is missing.
|
||||
|
||||
@@ -204,3 +192,23 @@
|
||||
.. 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
|
||||
|
||||
|
||||
@@ -24,3 +24,8 @@
|
||||
:module: PyOpenColorIO
|
||||
:value: <ColorSpaceDirection.COLORSPACE_DIR_TO_REFERENCE: 0>
|
||||
|
||||
|
||||
.. py:method:: ColorSpaceDirection.value
|
||||
:module: PyOpenColorIO
|
||||
:property:
|
||||
|
||||
|
||||
@@ -19,10 +19,6 @@
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: ColorSpaceMenuHelper.__str__(self: PyOpenColorIO.ColorSpaceMenuHelper) -> str
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: ColorSpaceMenuHelper.getDescription(self: PyOpenColorIO.ColorSpaceMenuHelper, index: int) -> str
|
||||
:module: PyOpenColorIO
|
||||
|
||||
@@ -31,7 +27,7 @@
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: ColorSpaceMenuHelper.getHierarchyLevels(self: PyOpenColorIO.ColorSpaceMenuHelper, index: int) -> OpenColorIO_v2_0rc1::PyIterator<std::shared_ptr<OpenColorIO_v2_0rc1::ColorSpaceMenuHelper>,0,unsigned __int64>
|
||||
.. py:method:: ColorSpaceMenuHelper.getHierarchyLevels(self: PyOpenColorIO.ColorSpaceMenuHelper, index: int) -> PyOpenColorIO.ColorSpaceMenuHelper.ColorSpaceLevelIterator
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
|
||||
@@ -46,16 +46,6 @@
|
||||
5) If AddColorSpace has been used to add any additional items, these are appended to the final list.
|
||||
|
||||
|
||||
.. py:class:: ColorSpaceMenuParameters.AddedColorSpaceIterator
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: ColorSpaceMenuParameters.AddedColorSpaceIterator.__init__(*args, **kwargs)
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Initialize self. See help(type(self)) for accurate signature.
|
||||
|
||||
|
||||
.. py:method:: ColorSpaceMenuParameters.__init__(*args, **kwargs)
|
||||
:module: PyOpenColorIO
|
||||
|
||||
@@ -66,10 +56,6 @@
|
||||
2. __init__(self: PyOpenColorIO.ColorSpaceMenuParameters, config: PyOpenColorIO.Config, role: str = '', includeColorSpaces: bool = True, searchReferenceSpaceType: PyOpenColorIO.SearchReferenceSpaceType = <SearchReferenceSpaceType.SEARCH_REFERENCE_SPACE_ALL: 2>, includeNamedTransforms: bool = False, appCategories: str = '', encodings: str = '', userCategories: str = '', includeRoles: bool = False) -> None
|
||||
|
||||
|
||||
.. py:method:: ColorSpaceMenuParameters.__str__(self: PyOpenColorIO.ColorSpaceMenuParameters) -> str
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: ColorSpaceMenuParameters.addColorSpace(self: PyOpenColorIO.ColorSpaceMenuParameters, colorSpace: str) -> None
|
||||
:module: PyOpenColorIO
|
||||
|
||||
@@ -85,7 +71,7 @@
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: ColorSpaceMenuParameters.getAddedColorSpaces(self: PyOpenColorIO.ColorSpaceMenuParameters) -> OpenColorIO_v2_0rc1::PyIterator<std::shared_ptr<OpenColorIO_v2_0rc1::ColorSpaceMenuParameters>,0>
|
||||
.. py:method:: ColorSpaceMenuParameters.getAddedColorSpaces(self: PyOpenColorIO.ColorSpaceMenuParameters) -> PyOpenColorIO.ColorSpaceMenuParameters.AddedColorSpaceIterator
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
|
||||
@@ -17,9 +17,11 @@
|
||||
2. __init__(self: PyOpenColorIO.ColorSpaceTransform, src: str = '', dst: str = '', direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>, dataBypass: bool = True) -> None
|
||||
|
||||
|
||||
.. py:method:: ColorSpaceTransform.__str__(self: PyOpenColorIO.ColorSpaceTransform) -> str
|
||||
.. py:method:: ColorSpaceTransform.__str__()
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Return str(self).
|
||||
|
||||
|
||||
.. py:method:: ColorSpaceTransform.getDataBypass(self: PyOpenColorIO.ColorSpaceTransform) -> bool
|
||||
:module: PyOpenColorIO
|
||||
|
||||
@@ -31,3 +31,8 @@
|
||||
:module: PyOpenColorIO
|
||||
:value: <ColorSpaceVisibility.COLORSPACE_INACTIVE: 1>
|
||||
|
||||
|
||||
.. py:method:: ColorSpaceVisibility.value
|
||||
:module: PyOpenColorIO
|
||||
:property:
|
||||
|
||||
|
||||
@@ -47,20 +47,20 @@
|
||||
|
||||
Overloaded function.
|
||||
|
||||
1. GetProcessorFromConfigs(srcConfig: PyOpenColorIO.Config, srcColorSpaceName: str, dstConfig: PyOpenColorIO.Config, dstColorSpaceName: str) -> OpenColorIO_v2_0rc1::Processor
|
||||
1. GetProcessorFromConfigs(srcConfig: PyOpenColorIO.Config, srcColorSpaceName: str, dstConfig: PyOpenColorIO.Config, dstColorSpaceName: str) -> PyOpenColorIO.Processor
|
||||
|
||||
Get a processor to convert between color spaces in two separate configs.
|
||||
|
||||
|
||||
This relies on both configs having the aces_interchange role (when srcName is scene-referred) or the role cie_xyz_d65_interchange (when srcName is display-referred) defined. An exception is thrown if that is not the case.
|
||||
|
||||
2. GetProcessorFromConfigs(srcContext: OpenColorIO_v2_0rc1::Context, srcConfig: PyOpenColorIO.Config, srcColorSpaceName: str, dstContext: OpenColorIO_v2_0rc1::Context, dstConfig: PyOpenColorIO.Config, dstColorSpaceName: str) -> OpenColorIO_v2_0rc1::Processor
|
||||
2. GetProcessorFromConfigs(srcContext: PyOpenColorIO.Context, srcConfig: PyOpenColorIO.Config, srcColorSpaceName: str, dstContext: PyOpenColorIO.Context, dstConfig: PyOpenColorIO.Config, dstColorSpaceName: str) -> PyOpenColorIO.Processor
|
||||
|
||||
3. GetProcessorFromConfigs(srcConfig: PyOpenColorIO.Config, srcColorSpaceName: str, srcInterchangeName: str, dstConfig: PyOpenColorIO.Config, dstColorSpaceName: str, dstInterchangeName: str) -> OpenColorIO_v2_0rc1::Processor
|
||||
3. GetProcessorFromConfigs(srcConfig: PyOpenColorIO.Config, srcColorSpaceName: str, srcInterchangeName: str, dstConfig: PyOpenColorIO.Config, dstColorSpaceName: str, dstInterchangeName: str) -> PyOpenColorIO.Processor
|
||||
|
||||
The srcInterchangeName and dstInterchangeName must refer to a pair of color spaces in the two configs that are the same. A role name may also be used.
|
||||
|
||||
4. GetProcessorFromConfigs(srcContext: OpenColorIO_v2_0rc1::Context, srcConfig: PyOpenColorIO.Config, srcColorSpaceName: str, srcInterchangeName: str, dstContext: OpenColorIO_v2_0rc1::Context, dstConfig: PyOpenColorIO.Config, dstColorSpaceName: str, dstInterchangeName: str) -> OpenColorIO_v2_0rc1::Processor
|
||||
4. GetProcessorFromConfigs(srcContext: PyOpenColorIO.Context, srcConfig: PyOpenColorIO.Config, srcColorSpaceName: str, srcInterchangeName: str, dstContext: PyOpenColorIO.Context, dstConfig: PyOpenColorIO.Config, dstColorSpaceName: str, dstInterchangeName: str) -> PyOpenColorIO.Processor
|
||||
|
||||
|
||||
.. py:method:: Config.__init__(self: PyOpenColorIO.Config) -> None
|
||||
@@ -76,7 +76,7 @@
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: Config.addColorSpace(self: PyOpenColorIO.Config, colorSpace: OpenColorIO_v2_0rc1::ColorSpace) -> None
|
||||
.. py:method:: Config.addColorSpace(self: PyOpenColorIO.Config, colorSpace: PyOpenColorIO.ColorSpace) -> None
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Add a color space to the configuration.
|
||||
@@ -122,11 +122,11 @@
|
||||
Add (or update) an environment variable with a default value. But it removes it if the default value is null.
|
||||
|
||||
|
||||
.. py:method:: Config.addLook(self: PyOpenColorIO.Config, look: OpenColorIO_v2_0rc1::Look) -> None
|
||||
.. py:method:: Config.addLook(self: PyOpenColorIO.Config, look: PyOpenColorIO.Look) -> None
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: Config.addNamedTransform(self: PyOpenColorIO.Config, namedTransform: OpenColorIO_v2_0rc1::NamedTransform) -> None
|
||||
.. py:method:: Config.addNamedTransform(self: PyOpenColorIO.Config, namedTransform: PyOpenColorIO.NamedTransform) -> None
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
@@ -145,7 +145,7 @@
|
||||
Will throw if view or colorSpaceName are null or empty.
|
||||
|
||||
|
||||
.. py:method:: Config.addViewTransform(self: PyOpenColorIO.Config, viewTransform: OpenColorIO_v2_0rc1::ViewTransform) -> None
|
||||
.. py:method:: Config.addViewTransform(self: PyOpenColorIO.Config, viewTransform: PyOpenColorIO.ViewTransform) -> None
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
@@ -208,7 +208,7 @@
|
||||
|
||||
This will produce a hash of the all colorspace definitions, etc. All external references, such as files used in FileTransforms, etc., will be incorporated into the cacheID. While the contents of the files are not read, the file system is queried for relevant information (mtime, inode) so that the config's cacheID will change when the underlying luts are updated. If a context is not provided, the current :ref:`Context` will be used. If a null context is provided, file references will not be taken into account (this is essentially a hash of :ref:`Config::serialize`).
|
||||
|
||||
2. getCacheID(self: PyOpenColorIO.Config, context: OpenColorIO_v2_0rc1::Context) -> str
|
||||
2. getCacheID(self: PyOpenColorIO.Config, context: PyOpenColorIO.Context) -> str
|
||||
|
||||
This will produce a hash of the all colorspace definitions, etc. All external references, such as files used in FileTransforms, etc., will be incorporated into the cacheID. While the contents of the files are not read, the file system is queried for relevant information (mtime, inode) so that the config's cacheID will change when the underlying luts are updated. If a context is not provided, the current :ref:`Context` will be used. If a null context is provided, file references will not be taken into account (this is essentially a hash of :ref:`Config::serialize`).
|
||||
|
||||
@@ -219,26 +219,19 @@
|
||||
Accepts an alias, role name, named transform name, or color space name and returns the color space name or the named transform name.
|
||||
|
||||
|
||||
.. py:method:: Config.getColorSpace(self: PyOpenColorIO.Config, name: str) -> OpenColorIO_v2_0rc1::ColorSpace
|
||||
.. py:method:: Config.getColorSpace(self: PyOpenColorIO.Config, name: str) -> PyOpenColorIO.ColorSpace
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Get the color space from all the color spaces (i.e. active and inactive) and return null if the name is not found.
|
||||
|
||||
|
||||
.. note::
|
||||
The fcn accepts either a color space name, role name, or alias. (Color space names take precedence over roles.)
|
||||
|
||||
|
||||
.. py:method:: Config.getColorSpaceFromFilepath(*args, **kwargs)
|
||||
.. py:method:: Config.getColorSpaceFromFilepath(self: PyOpenColorIO.Config, filePath: str) -> tuple
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Overloaded function.
|
||||
|
||||
1. getColorSpaceFromFilepath(self: PyOpenColorIO.Config, filePath: str) -> str
|
||||
|
||||
Get the color space of the first rule that matched filePath.
|
||||
|
||||
2. getColorSpaceFromFilepath(self: PyOpenColorIO.Config, filePath: str, ruleIndex: int) -> str
|
||||
|
||||
Get the color space of the first rule that matched filePath.
|
||||
|
||||
|
||||
@@ -257,7 +250,7 @@
|
||||
|
||||
Overloaded function.
|
||||
|
||||
1. getColorSpaces(self: PyOpenColorIO.Config, category: str) -> OpenColorIO_v2_0rc1::ColorSpaceSet
|
||||
1. getColorSpaces(self: PyOpenColorIO.Config, category: str) -> PyOpenColorIO.ColorSpaceSet
|
||||
|
||||
Get all active color spaces having a specific category in the order they appear in the config file.
|
||||
|
||||
@@ -273,7 +266,7 @@
|
||||
3. getColorSpaces(self: PyOpenColorIO.Config) -> PyOpenColorIO.Config.ActiveColorSpaceIterator
|
||||
|
||||
|
||||
.. py:method:: Config.getCurrentContext(self: PyOpenColorIO.Config) -> OpenColorIO_v2_0rc1::Context
|
||||
.. py:method:: Config.getCurrentContext(self: PyOpenColorIO.Config) -> PyOpenColorIO.Context
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
@@ -291,7 +284,7 @@
|
||||
There is no "1 size fits all" set of luma coefficients. (The values are typically different for each colorspace, and the application of them may be nonsensical depending on the intensity coding anyways). Thus, the 'right' answer is to make these functions on the :cpp:class:`:ref:`Config`` class. However, it's often useful to have a config-wide default so here it is. We will add the colorspace specific luma call if/when another client is interesting in using it.
|
||||
|
||||
|
||||
.. py:method:: Config.getDefaultSceneToDisplayViewTransform(self: PyOpenColorIO.Config) -> OpenColorIO_v2_0rc1::ViewTransform
|
||||
.. py:method:: Config.getDefaultSceneToDisplayViewTransform(self: PyOpenColorIO.Config) -> PyOpenColorIO.ViewTransform
|
||||
:module: PyOpenColorIO
|
||||
|
||||
This view transform is the one that will be used by default if a :ref:`ColorSpaceTransform` is needed between a scene-referred and display-referred color space. The config author may specify a transform to use via the default_view_transform entry in the config. If that is not present, or does not return a valid view transform from the scene-referred connection space, the fall-back is to use the first valid view transform in the config. Returns a null ConstTransformRcPtr if there isn't one.
|
||||
@@ -368,7 +361,7 @@
|
||||
A single character used to separate the family string into tokens for use in hierarchical menus. Defaults to '/'.
|
||||
|
||||
|
||||
.. py:method:: Config.getFileRules(self: PyOpenColorIO.Config) -> OpenColorIO_v2_0rc1::FileRules
|
||||
.. py:method:: Config.getFileRules(self: PyOpenColorIO.Config) -> PyOpenColorIO.FileRules
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Get read-only version of the file rules.
|
||||
@@ -378,7 +371,7 @@
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: Config.getLook(self: PyOpenColorIO.Config, name: str) -> OpenColorIO_v2_0rc1::Look
|
||||
.. py:method:: Config.getLook(self: PyOpenColorIO.Config, name: str) -> PyOpenColorIO.Look
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
@@ -410,7 +403,7 @@
|
||||
The name string may be used to communicate config update details or similar information to workflows external to OCIO in cases where the config path/filename itself does not provide adequate information.
|
||||
|
||||
|
||||
.. py:method:: Config.getNamedTransform(self: PyOpenColorIO.Config, name: str) -> OpenColorIO_v2_0rc1::NamedTransform
|
||||
.. py:method:: Config.getNamedTransform(self: PyOpenColorIO.Config, name: str) -> PyOpenColorIO.NamedTransform
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
@@ -439,33 +432,33 @@
|
||||
|
||||
Overloaded function.
|
||||
|
||||
1. getProcessor(self: PyOpenColorIO.Config, srcColorSpace: OpenColorIO_v2_0rc1::ColorSpace, dstColorSpace: OpenColorIO_v2_0rc1::ColorSpace) -> OpenColorIO_v2_0rc1::Processor
|
||||
1. getProcessor(self: PyOpenColorIO.Config, srcColorSpace: PyOpenColorIO.ColorSpace, dstColorSpace: PyOpenColorIO.ColorSpace) -> PyOpenColorIO.Processor
|
||||
|
||||
2. getProcessor(self: PyOpenColorIO.Config, context: OpenColorIO_v2_0rc1::Context, srcColorSpace: OpenColorIO_v2_0rc1::ColorSpace, dstColorSpace: OpenColorIO_v2_0rc1::ColorSpace) -> OpenColorIO_v2_0rc1::Processor
|
||||
2. getProcessor(self: PyOpenColorIO.Config, context: PyOpenColorIO.Context, srcColorSpace: PyOpenColorIO.ColorSpace, dstColorSpace: PyOpenColorIO.ColorSpace) -> PyOpenColorIO.Processor
|
||||
|
||||
3. getProcessor(self: PyOpenColorIO.Config, srcColorSpaceName: str, dstColorSpaceName: str) -> OpenColorIO_v2_0rc1::Processor
|
||||
3. getProcessor(self: PyOpenColorIO.Config, srcColorSpaceName: str, dstColorSpaceName: str) -> PyOpenColorIO.Processor
|
||||
|
||||
.. note::
|
||||
Names can be colorspace name, role name, or a combination of both.
|
||||
|
||||
4. getProcessor(self: PyOpenColorIO.Config, context: OpenColorIO_v2_0rc1::Context, srcColorSpaceName: str, dstColorSpaceName: str) -> OpenColorIO_v2_0rc1::Processor
|
||||
4. getProcessor(self: PyOpenColorIO.Config, context: PyOpenColorIO.Context, srcColorSpaceName: str, dstColorSpaceName: str) -> PyOpenColorIO.Processor
|
||||
|
||||
5. getProcessor(self: PyOpenColorIO.Config, srcColorSpaceName: str, display: str, view: str, direction: PyOpenColorIO.TransformDirection) -> OpenColorIO_v2_0rc1::Processor
|
||||
5. getProcessor(self: PyOpenColorIO.Config, srcColorSpaceName: str, display: str, view: str, direction: PyOpenColorIO.TransformDirection) -> PyOpenColorIO.Processor
|
||||
|
||||
6. getProcessor(self: PyOpenColorIO.Config, context: OpenColorIO_v2_0rc1::Context, srcColorSpaceName: str, display: str, view: str, direction: PyOpenColorIO.TransformDirection) -> OpenColorIO_v2_0rc1::Processor
|
||||
6. getProcessor(self: PyOpenColorIO.Config, context: PyOpenColorIO.Context, srcColorSpaceName: str, display: str, view: str, direction: PyOpenColorIO.TransformDirection) -> PyOpenColorIO.Processor
|
||||
|
||||
cpp:function::
|
||||
|
||||
7. getProcessor(self: PyOpenColorIO.Config, transform: PyOpenColorIO.Transform) -> OpenColorIO_v2_0rc1::Processor
|
||||
7. getProcessor(self: PyOpenColorIO.Config, transform: PyOpenColorIO.Transform) -> PyOpenColorIO.Processor
|
||||
|
||||
Get the processor for the specified transform.
|
||||
|
||||
|
||||
Not often needed, but will allow for the re-use of atomic OCIO functionality (such as to apply an individual LUT file).
|
||||
|
||||
8. getProcessor(self: PyOpenColorIO.Config, transform: PyOpenColorIO.Transform, direction: PyOpenColorIO.TransformDirection) -> OpenColorIO_v2_0rc1::Processor
|
||||
8. getProcessor(self: PyOpenColorIO.Config, transform: PyOpenColorIO.Transform, direction: PyOpenColorIO.TransformDirection) -> PyOpenColorIO.Processor
|
||||
|
||||
9. getProcessor(self: PyOpenColorIO.Config, context: OpenColorIO_v2_0rc1::Context, transform: PyOpenColorIO.Transform, direction: PyOpenColorIO.TransformDirection) -> OpenColorIO_v2_0rc1::Processor
|
||||
9. getProcessor(self: PyOpenColorIO.Config, context: PyOpenColorIO.Context, transform: PyOpenColorIO.Transform, direction: PyOpenColorIO.TransformDirection) -> PyOpenColorIO.Processor
|
||||
|
||||
|
||||
.. py:method:: Config.getRoleNames(self: PyOpenColorIO.Config) -> PyOpenColorIO.Config.RoleNameIterator
|
||||
@@ -488,7 +481,7 @@
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: Config.getViewTransform(self: PyOpenColorIO.Config, name: str) -> OpenColorIO_v2_0rc1::ViewTransform
|
||||
.. py:method:: Config.getViewTransform(self: PyOpenColorIO.Config, name: str) -> PyOpenColorIO.ViewTransform
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
@@ -500,7 +493,7 @@
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: Config.getViewingRules(self: PyOpenColorIO.Config) -> OpenColorIO_v2_0rc1::ViewingRules
|
||||
.. py:method:: Config.getViewingRules(self: PyOpenColorIO.Config) -> PyOpenColorIO.ViewingRules
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Get read-only version of the viewing rules.
|
||||
@@ -558,6 +551,7 @@
|
||||
|
||||
Remove a color space from the configuration.
|
||||
|
||||
|
||||
.. note::
|
||||
It does not throw an exception. Name must be the canonical name. If a role name or alias is provided or if the name is not in the config, nothing is done.
|
||||
|
||||
@@ -648,7 +642,7 @@
|
||||
Succeeds if the characters is null or a valid character from the ASCII table i.e. from value 32 (i.e. space) to 126 (i.e. '~'); otherwise, it throws an exception.
|
||||
|
||||
|
||||
.. py:method:: Config.setFileRules(self: PyOpenColorIO.Config, fileRules: OpenColorIO_v2_0rc1::FileRules) -> None
|
||||
.. py:method:: Config.setFileRules(self: PyOpenColorIO.Config, fileRules: PyOpenColorIO.FileRules) -> None
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Set file rules.
|
||||
@@ -710,20 +704,26 @@
|
||||
|
||||
Set all search paths as a concatenated string, ':' to separate the paths.
|
||||
|
||||
|
||||
See :ref:`addSearchPath` for a more robust and platform-agnostic method of setting the search paths.
|
||||
|
||||
|
||||
.. py:method:: Config.setStrictParsingEnabled(self: PyOpenColorIO.Config, enabled: bool) -> None
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: Config.setVersion(self: PyOpenColorIO.Config, major: int, minor: int) -> None
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Set the configuration major and minor versions. Throws if version is not supported.
|
||||
|
||||
|
||||
.. py:method:: Config.setViewingRules(self: PyOpenColorIO.Config, ViewingRules: OpenColorIO_v2_0rc1::ViewingRules) -> None
|
||||
.. py:method:: Config.setViewingRules(self: PyOpenColorIO.Config, ViewingRules: PyOpenColorIO.ViewingRules) -> None
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Set viewing rules.
|
||||
|
||||
|
||||
.. note::
|
||||
The argument is cloned.
|
||||
|
||||
@@ -813,7 +813,7 @@
|
||||
:module: PyOpenColorIO.Config
|
||||
|
||||
|
||||
.. py:method:: ColorSpaceIterator.__getitem__(self: PyOpenColorIO.Config.ColorSpaceIterator, arg0: int) -> OpenColorIO_v2_0rc1::ColorSpace
|
||||
.. py:method:: ColorSpaceIterator.__getitem__(self: PyOpenColorIO.Config.ColorSpaceIterator, arg0: int) -> PyOpenColorIO.ColorSpace
|
||||
:module: PyOpenColorIO.Config
|
||||
|
||||
|
||||
@@ -825,7 +825,7 @@
|
||||
:module: PyOpenColorIO.Config
|
||||
|
||||
|
||||
.. py:method:: ColorSpaceIterator.__next__(self: PyOpenColorIO.Config.ColorSpaceIterator) -> OpenColorIO_v2_0rc1::ColorSpace
|
||||
.. py:method:: ColorSpaceIterator.__next__(self: PyOpenColorIO.Config.ColorSpaceIterator) -> PyOpenColorIO.ColorSpace
|
||||
:module: PyOpenColorIO.Config
|
||||
|
||||
|
||||
@@ -853,7 +853,7 @@
|
||||
:module: PyOpenColorIO.Config
|
||||
|
||||
|
||||
.. py:method:: ActiveColorSpaceIterator.__getitem__(self: PyOpenColorIO.Config.ActiveColorSpaceIterator, arg0: int) -> OpenColorIO_v2_0rc1::ColorSpace
|
||||
.. py:method:: ActiveColorSpaceIterator.__getitem__(self: PyOpenColorIO.Config.ActiveColorSpaceIterator, arg0: int) -> PyOpenColorIO.ColorSpace
|
||||
:module: PyOpenColorIO.Config
|
||||
|
||||
|
||||
@@ -865,7 +865,7 @@
|
||||
:module: PyOpenColorIO.Config
|
||||
|
||||
|
||||
.. py:method:: ActiveColorSpaceIterator.__next__(self: PyOpenColorIO.Config.ActiveColorSpaceIterator) -> OpenColorIO_v2_0rc1::ColorSpace
|
||||
.. py:method:: ActiveColorSpaceIterator.__next__(self: PyOpenColorIO.Config.ActiveColorSpaceIterator) -> PyOpenColorIO.ColorSpace
|
||||
:module: PyOpenColorIO.Config
|
||||
|
||||
|
||||
@@ -1013,7 +1013,7 @@
|
||||
:module: PyOpenColorIO.Config
|
||||
|
||||
|
||||
.. py:method:: LookIterator.__getitem__(self: PyOpenColorIO.Config.LookIterator, arg0: int) -> OpenColorIO_v2_0rc1::Look
|
||||
.. py:method:: LookIterator.__getitem__(self: PyOpenColorIO.Config.LookIterator, arg0: int) -> PyOpenColorIO.Look
|
||||
:module: PyOpenColorIO.Config
|
||||
|
||||
|
||||
@@ -1025,7 +1025,7 @@
|
||||
:module: PyOpenColorIO.Config
|
||||
|
||||
|
||||
.. py:method:: LookIterator.__next__(self: PyOpenColorIO.Config.LookIterator) -> OpenColorIO_v2_0rc1::Look
|
||||
.. py:method:: LookIterator.__next__(self: PyOpenColorIO.Config.LookIterator) -> PyOpenColorIO.Look
|
||||
:module: PyOpenColorIO.Config
|
||||
|
||||
|
||||
@@ -1053,7 +1053,7 @@
|
||||
:module: PyOpenColorIO.Config
|
||||
|
||||
|
||||
.. py:method:: ViewTransformIterator.__getitem__(self: PyOpenColorIO.Config.ViewTransformIterator, arg0: int) -> OpenColorIO_v2_0rc1::ViewTransform
|
||||
.. py:method:: ViewTransformIterator.__getitem__(self: PyOpenColorIO.Config.ViewTransformIterator, arg0: int) -> PyOpenColorIO.ViewTransform
|
||||
:module: PyOpenColorIO.Config
|
||||
|
||||
|
||||
@@ -1065,7 +1065,7 @@
|
||||
:module: PyOpenColorIO.Config
|
||||
|
||||
|
||||
.. py:method:: ViewTransformIterator.__next__(self: PyOpenColorIO.Config.ViewTransformIterator) -> OpenColorIO_v2_0rc1::ViewTransform
|
||||
.. py:method:: ViewTransformIterator.__next__(self: PyOpenColorIO.Config.ViewTransformIterator) -> PyOpenColorIO.ViewTransform
|
||||
:module: PyOpenColorIO.Config
|
||||
|
||||
|
||||
@@ -1093,7 +1093,7 @@
|
||||
:module: PyOpenColorIO.Config
|
||||
|
||||
|
||||
.. py:method:: NamedTransformIterator.__getitem__(self: PyOpenColorIO.Config.NamedTransformIterator, arg0: int) -> OpenColorIO_v2_0rc1::NamedTransform
|
||||
.. py:method:: NamedTransformIterator.__getitem__(self: PyOpenColorIO.Config.NamedTransformIterator, arg0: int) -> PyOpenColorIO.NamedTransform
|
||||
:module: PyOpenColorIO.Config
|
||||
|
||||
|
||||
@@ -1105,7 +1105,7 @@
|
||||
:module: PyOpenColorIO.Config
|
||||
|
||||
|
||||
.. py:method:: NamedTransformIterator.__next__(self: PyOpenColorIO.Config.NamedTransformIterator) -> OpenColorIO_v2_0rc1::NamedTransform
|
||||
.. py:method:: NamedTransformIterator.__next__(self: PyOpenColorIO.Config.NamedTransformIterator) -> PyOpenColorIO.NamedTransform
|
||||
:module: PyOpenColorIO.Config
|
||||
|
||||
|
||||
@@ -1133,7 +1133,7 @@
|
||||
:module: PyOpenColorIO.Config
|
||||
|
||||
|
||||
.. py:method:: ActiveNamedTransformIterator.__getitem__(self: PyOpenColorIO.Config.ActiveNamedTransformIterator, arg0: int) -> OpenColorIO_v2_0rc1::NamedTransform
|
||||
.. py:method:: ActiveNamedTransformIterator.__getitem__(self: PyOpenColorIO.Config.ActiveNamedTransformIterator, arg0: int) -> PyOpenColorIO.NamedTransform
|
||||
:module: PyOpenColorIO.Config
|
||||
|
||||
|
||||
@@ -1145,6 +1145,6 @@
|
||||
:module: PyOpenColorIO.Config
|
||||
|
||||
|
||||
.. py:method:: ActiveNamedTransformIterator.__next__(self: PyOpenColorIO.Config.ActiveNamedTransformIterator) -> OpenColorIO_v2_0rc1::NamedTransform
|
||||
.. py:method:: ActiveNamedTransformIterator.__next__(self: PyOpenColorIO.Config.ActiveNamedTransformIterator) -> PyOpenColorIO.NamedTransform
|
||||
:module: PyOpenColorIO.Config
|
||||
|
||||
|
||||
@@ -17,10 +17,6 @@
|
||||
2. __init__(self: PyOpenColorIO.Context, workingDir: str = '', searchPaths: List[str] = [], stringVars: Dict[str, str] = {}, environmentMode: PyOpenColorIO.EnvironmentMode = <EnvironmentMode.ENV_ENVIRONMENT_LOAD_PREDEFINED: 1>) -> None
|
||||
|
||||
|
||||
.. py:method:: Context.__str__(self: PyOpenColorIO.Context) -> str
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: Context.addSearchPath(self: PyOpenColorIO.Context, path: str) -> None
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
Overloaded function.
|
||||
|
||||
1. apply(self: PyOpenColorIO.CPUProcessor, imgDesc: OpenColorIO_v2_0rc1::PyImageDesc) -> None
|
||||
1. apply(self: PyOpenColorIO.CPUProcessor, imgDesc: PyOpenColorIO.ImageDesc) -> None
|
||||
|
||||
|
||||
Apply to an image with any kind of channel ordering while respecting
|
||||
@@ -37,7 +37,7 @@
|
||||
|
||||
|
||||
|
||||
2. apply(self: PyOpenColorIO.CPUProcessor, srcImgDesc: OpenColorIO_v2_0rc1::PyImageDesc, dstImgDesc: OpenColorIO_v2_0rc1::PyImageDesc) -> None
|
||||
2. apply(self: PyOpenColorIO.CPUProcessor, srcImgDesc: PyOpenColorIO.ImageDesc, dstImgDesc: PyOpenColorIO.ImageDesc) -> None
|
||||
|
||||
|
||||
Apply to an image with any kind of channel ordering while respecting
|
||||
|
||||
@@ -17,9 +17,11 @@
|
||||
2. __init__(self: PyOpenColorIO.DisplayViewTransform, src: str = '', display: str = '', view: str = '', looksBypass: bool = False, dataBypass: bool = True, direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
|
||||
|
||||
|
||||
.. py:method:: DisplayViewTransform.__str__(self: PyOpenColorIO.DisplayViewTransform) -> str
|
||||
.. py:method:: DisplayViewTransform.__str__()
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Return str(self).
|
||||
|
||||
|
||||
.. py:method:: DisplayViewTransform.getDataBypass(self: PyOpenColorIO.DisplayViewTransform) -> bool
|
||||
:module: PyOpenColorIO
|
||||
|
||||
@@ -27,19 +27,19 @@
|
||||
Get the property as DynamicPropertyDoubleRcPtr to access the double value. Will throw if property type is not a type that holds a double such as DYNAMIC_PROPERTY_EXPOSURE.
|
||||
|
||||
|
||||
.. py:method:: DynamicProperty.getGradingPrimary(self: PyOpenColorIO.DynamicProperty) -> OpenColorIO_v2_0rc1::GradingPrimary
|
||||
.. 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) -> OpenColorIO_v2_0rc1::GradingRGBCurve
|
||||
.. 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) -> OpenColorIO_v2_0rc1::GradingTone
|
||||
.. 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.
|
||||
@@ -55,19 +55,19 @@
|
||||
Get the property as DynamicPropertyDoubleRcPtr to access the double value. Will throw if property type is not a type that holds a double such as DYNAMIC_PROPERTY_EXPOSURE.
|
||||
|
||||
|
||||
.. py:method:: DynamicProperty.setGradingPrimary(self: PyOpenColorIO.DynamicProperty, val: OpenColorIO_v2_0rc1::GradingPrimary) -> None
|
||||
.. 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: OpenColorIO_v2_0rc1::GradingRGBCurve) -> None
|
||||
.. 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: OpenColorIO_v2_0rc1::GradingTone) -> None
|
||||
.. 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.
|
||||
|
||||
@@ -54,3 +54,8 @@
|
||||
:module: PyOpenColorIO
|
||||
:value: <DynamicPropertyType.DYNAMIC_PROPERTY_GRADING_TONE: 5>
|
||||
|
||||
|
||||
.. py:method:: DynamicPropertyType.value
|
||||
:module: PyOpenColorIO
|
||||
:property:
|
||||
|
||||
|
||||
@@ -31,3 +31,8 @@
|
||||
:module: PyOpenColorIO
|
||||
:value: <EnvironmentMode.ENV_ENVIRONMENT_UNKNOWN: 0>
|
||||
|
||||
|
||||
.. py:method:: EnvironmentMode.value
|
||||
:module: PyOpenColorIO
|
||||
:property:
|
||||
|
||||
|
||||
@@ -23,9 +23,11 @@
|
||||
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.__str__(self: PyOpenColorIO.ExponentTransform) -> str
|
||||
.. py:method:: ExponentTransform.__str__()
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Return str(self).
|
||||
|
||||
|
||||
.. py:method:: ExponentTransform.equals(self: PyOpenColorIO.ExponentTransform, other: PyOpenColorIO.ExponentTransform) -> bool
|
||||
:module: PyOpenColorIO
|
||||
|
||||
@@ -25,9 +25,11 @@
|
||||
2. __init__(self: PyOpenColorIO.ExponentWithLinearTransform, gamma: List[float[4]] = [1.0, 1.0, 1.0, 1.0], offset: List[float[4]] = [0.0, 0.0, 0.0, 0.0], negativeStyle: PyOpenColorIO.NegativeStyle = <NegativeStyle.NEGATIVE_LINEAR: 3>, direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
|
||||
|
||||
|
||||
.. py:method:: ExponentWithLinearTransform.__str__(self: PyOpenColorIO.ExponentWithLinearTransform) -> str
|
||||
.. py:method:: ExponentWithLinearTransform.__str__()
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Return str(self).
|
||||
|
||||
|
||||
.. py:method:: ExponentWithLinearTransform.equals(self: PyOpenColorIO.ExponentWithLinearTransform, other: PyOpenColorIO.ExponentWithLinearTransform) -> bool
|
||||
:module: PyOpenColorIO
|
||||
|
||||
@@ -33,3 +33,8 @@
|
||||
:module: PyOpenColorIO
|
||||
:value: <ExposureContrastStyle.EXPOSURE_CONTRAST_VIDEO: 1>
|
||||
|
||||
|
||||
.. py:method:: ExposureContrastStyle.value
|
||||
:module: PyOpenColorIO
|
||||
:property:
|
||||
|
||||
|
||||
@@ -19,9 +19,11 @@
|
||||
2. __init__(self: PyOpenColorIO.ExposureContrastTransform, style: PyOpenColorIO.ExposureContrastStyle = <ExposureContrastStyle.EXPOSURE_CONTRAST_LINEAR: 0>, exposure: float = 0.0, contrast: float = 1.0, gamma: float = 1.0, pivot: float = 0.18, logExposureStep: float = 0.088, logMidGray: float = 0.435, dynamicExposure: bool = False, dynamicContrast: bool = False, dynamicGamma: bool = False, direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
|
||||
|
||||
|
||||
.. py:method:: ExposureContrastTransform.__str__(self: PyOpenColorIO.ExposureContrastTransform) -> str
|
||||
.. py:method:: ExposureContrastTransform.__str__()
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Return str(self).
|
||||
|
||||
|
||||
.. py:method:: ExposureContrastTransform.equals(self: PyOpenColorIO.ExposureContrastTransform, other: PyOpenColorIO.ExposureContrastTransform) -> bool
|
||||
:module: PyOpenColorIO
|
||||
|
||||
@@ -17,9 +17,11 @@
|
||||
2. __init__(self: PyOpenColorIO.FileTransform, src: str = '', cccId: str = '', interpolation: PyOpenColorIO.Interpolation = <Interpolation.INTERP_DEFAULT: 254>, direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
|
||||
|
||||
|
||||
.. py:method:: FileTransform.__str__(self: PyOpenColorIO.FileTransform) -> str
|
||||
.. py:method:: FileTransform.__str__()
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Return str(self).
|
||||
|
||||
|
||||
.. py:method:: FileTransform.getCCCId(self: PyOpenColorIO.FileTransform) -> str
|
||||
:module: PyOpenColorIO
|
||||
|
||||
@@ -30,6 +30,12 @@
|
||||
|
||||
FIXED_FUNCTION_XYZ_TO_LUV : CIE XYZ to 1976 CIELUV colour space (D65 white)
|
||||
|
||||
FIXED_FUNCTION_ACES_GAMUTMAP_02 : ACES 0.2 Gamut clamping algorithm -- NOT IMPLEMENTED YET.
|
||||
|
||||
FIXED_FUNCTION_ACES_GAMUTMAP_07 : ACES 0.7 Gamut clamping algorithm -- NOT IMPLEMENTED YET.
|
||||
|
||||
FIXED_FUNCTION_ACES_GAMUTMAP_13 : ACES 1.3 Gamut mapping algorithm -- NOT IMPLEMENTED YET.
|
||||
|
||||
.. py:method:: name() -> str
|
||||
:property:
|
||||
|
||||
@@ -38,6 +44,21 @@
|
||||
:value: <FixedFunctionStyle.FIXED_FUNCTION_ACES_DARK_TO_DIM_10: 4>
|
||||
|
||||
|
||||
.. py:attribute:: FixedFunctionStyle.FIXED_FUNCTION_ACES_GAMUTMAP_02
|
||||
:module: PyOpenColorIO
|
||||
:value: <FixedFunctionStyle.FIXED_FUNCTION_ACES_GAMUTMAP_02: 10>
|
||||
|
||||
|
||||
.. py:attribute:: FixedFunctionStyle.FIXED_FUNCTION_ACES_GAMUTMAP_07
|
||||
:module: PyOpenColorIO
|
||||
:value: <FixedFunctionStyle.FIXED_FUNCTION_ACES_GAMUTMAP_07: 11>
|
||||
|
||||
|
||||
.. py:attribute:: FixedFunctionStyle.FIXED_FUNCTION_ACES_GAMUTMAP_13
|
||||
:module: PyOpenColorIO
|
||||
:value: <FixedFunctionStyle.FIXED_FUNCTION_ACES_GAMUTMAP_13: 12>
|
||||
|
||||
|
||||
.. py:attribute:: FixedFunctionStyle.FIXED_FUNCTION_ACES_GLOW_03
|
||||
:module: PyOpenColorIO
|
||||
:value: <FixedFunctionStyle.FIXED_FUNCTION_ACES_GLOW_03: 2>
|
||||
@@ -82,3 +103,8 @@
|
||||
:module: PyOpenColorIO
|
||||
:value: <FixedFunctionStyle.FIXED_FUNCTION_XYZ_TO_xyY: 7>
|
||||
|
||||
|
||||
.. py:method:: FixedFunctionStyle.value
|
||||
:module: PyOpenColorIO
|
||||
:property:
|
||||
|
||||
|
||||
@@ -9,19 +9,15 @@
|
||||
Provides a set of hard-coded algorithmic building blocks that are needed to accurately implement various common color transformations.
|
||||
|
||||
|
||||
.. py:method:: FixedFunctionTransform.__init__(*args, **kwargs)
|
||||
.. py:method:: FixedFunctionTransform.__init__(self: PyOpenColorIO.FixedFunctionTransform, style: PyOpenColorIO.FixedFunctionStyle, params: List[float] = [], direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Overloaded function.
|
||||
|
||||
1. __init__(self: PyOpenColorIO.FixedFunctionTransform) -> None
|
||||
|
||||
2. __init__(self: PyOpenColorIO.FixedFunctionTransform, style: PyOpenColorIO.FixedFunctionStyle = <FixedFunctionStyle.FIXED_FUNCTION_ACES_RED_MOD_03: 0>, params: List[float] = [], direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
|
||||
|
||||
|
||||
.. py:method:: FixedFunctionTransform.__str__(self: PyOpenColorIO.FixedFunctionTransform) -> str
|
||||
.. py:method:: FixedFunctionTransform.__str__()
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Return str(self).
|
||||
|
||||
|
||||
.. py:method:: FixedFunctionTransform.equals(self: PyOpenColorIO.FixedFunctionTransform, other: PyOpenColorIO.FixedFunctionTransform) -> bool
|
||||
:module: PyOpenColorIO
|
||||
|
||||
@@ -47,3 +47,8 @@
|
||||
:module: PyOpenColorIO
|
||||
:value: <GpuLanguage.GPU_LANGUAGE_HLSL_DX11: 4>
|
||||
|
||||
|
||||
.. py:method:: GpuLanguage.value
|
||||
:module: PyOpenColorIO
|
||||
:property:
|
||||
|
||||
|
||||
@@ -13,19 +13,11 @@
|
||||
Initialize self. See help(type(self)) for accurate signature.
|
||||
|
||||
|
||||
.. py:method:: GPUProcessor.extractGpuShaderInfo(*args, **kwargs)
|
||||
.. py:method:: GPUProcessor.extractGpuShaderInfo(self: PyOpenColorIO.GPUProcessor, shaderDesc: PyOpenColorIO.GpuShaderDesc) -> None
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Overloaded function.
|
||||
|
||||
1. extractGpuShaderInfo(self: PyOpenColorIO.GPUProcessor, shaderDesc: OpenColorIO_v2_0rc1::GpuShaderDesc) -> None
|
||||
|
||||
Extract & Store the shader information to implement the color processing.
|
||||
|
||||
2. extractGpuShaderInfo(self: PyOpenColorIO.GPUProcessor, shaderCreator: OpenColorIO_v2_0rc1::GpuShaderCreator) -> None
|
||||
|
||||
Extract the shader information using a custom :ref:`GpuShaderCreator` class.
|
||||
|
||||
|
||||
.. py:method:: GPUProcessor.getCacheID(self: PyOpenColorIO.GPUProcessor) -> str
|
||||
:module: PyOpenColorIO
|
||||
|
||||
@@ -13,18 +13,6 @@
|
||||
To better decouple the DynamicProperties from their GPU implementation, the code provides several addUniform() methods i.e. one per access function types. For example, an :ref:`ExposureContrastTransform` instance owns three DynamicProperties and they are all implemented by a double. When creating the GPU fragment shader program, the addUniform() with :ref:`GpuShaderCreator::DoubleGetter` is called when property is dynamic, up to three times.
|
||||
|
||||
|
||||
.. py:method:: GpuShaderCreator.__init__(self: PyOpenColorIO.GpuShaderCreator) -> None
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: GpuShaderCreator.add3DTexture(self: PyOpenColorIO.GpuShaderCreator, textureName: str, samplerName: str, edgeLen: int, interpolation: PyOpenColorIO.Interpolation, values: float) -> None
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: GpuShaderCreator.addTexture(self: PyOpenColorIO.GpuShaderCreator, textureName: str, samplerName: str, width: int, height: int, channel: PyOpenColorIO.GpuShaderCreator.TextureType, interpolation: PyOpenColorIO.Interpolation, values: float) -> None
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: GpuShaderCreator.addToDeclareShaderCode(self: PyOpenColorIO.GpuShaderCreator, shaderCode: str) -> None
|
||||
:module: PyOpenColorIO
|
||||
|
||||
@@ -85,7 +73,7 @@
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: GpuShaderCreator.getDynamicProperty(self: PyOpenColorIO.GpuShaderCreator, type: PyOpenColorIO.DynamicPropertyType) -> OpenColorIO_v2_0rc1::DynamicProperty
|
||||
.. py:method:: GpuShaderCreator.getDynamicProperty(self: PyOpenColorIO.GpuShaderCreator, type: PyOpenColorIO.DynamicPropertyType) -> PyOpenColorIO.DynamicProperty
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
@@ -180,11 +168,16 @@
|
||||
:value: <TextureType.TEXTURE_RGB_CHANNEL: 1>
|
||||
|
||||
|
||||
.. py:method:: TextureType.value
|
||||
:module: PyOpenColorIO.GpuShaderCreator
|
||||
:property:
|
||||
|
||||
|
||||
.. py:class:: DynamicPropertyIterator
|
||||
:module: PyOpenColorIO.GpuShaderCreator
|
||||
|
||||
|
||||
.. py:method:: DynamicPropertyIterator.__getitem__(self: PyOpenColorIO.GpuShaderCreator.DynamicPropertyIterator, arg0: int) -> OpenColorIO_v2_0rc1::DynamicProperty
|
||||
.. py:method:: DynamicPropertyIterator.__getitem__(self: PyOpenColorIO.GpuShaderCreator.DynamicPropertyIterator, arg0: int) -> PyOpenColorIO.DynamicProperty
|
||||
:module: PyOpenColorIO.GpuShaderCreator
|
||||
|
||||
|
||||
@@ -196,6 +189,6 @@
|
||||
:module: PyOpenColorIO.GpuShaderCreator
|
||||
|
||||
|
||||
.. py:method:: DynamicPropertyIterator.__next__(self: PyOpenColorIO.GpuShaderCreator.DynamicPropertyIterator) -> OpenColorIO_v2_0rc1::DynamicProperty
|
||||
.. py:method:: DynamicPropertyIterator.__next__(self: PyOpenColorIO.GpuShaderCreator.DynamicPropertyIterator) -> PyOpenColorIO.DynamicProperty
|
||||
:module: PyOpenColorIO.GpuShaderCreator
|
||||
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
Start to collect the shader data.
|
||||
|
||||
|
||||
.. py:method:: GpuShaderDesc.clone(self: PyOpenColorIO.GpuShaderCreator) -> PyOpenColorIO.GpuShaderCreator
|
||||
.. py:method:: GpuShaderDesc.clone(self: PyOpenColorIO.GpuShaderDesc) -> PyOpenColorIO.GpuShaderCreator
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
@@ -87,10 +87,6 @@
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: GpuShaderDesc.get3DTextureValues(self: PyOpenColorIO.GpuShaderDesc, index: int) -> numpy.ndarray
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: GpuShaderDesc.get3DTextures(self: PyOpenColorIO.GpuShaderDesc) -> PyOpenColorIO.GpuShaderDesc.Texture3DIterator
|
||||
:module: PyOpenColorIO
|
||||
|
||||
@@ -103,7 +99,7 @@
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: GpuShaderDesc.getDynamicProperty(self: PyOpenColorIO.GpuShaderCreator, type: PyOpenColorIO.DynamicPropertyType) -> OpenColorIO_v2_0rc1::DynamicProperty
|
||||
.. py:method:: GpuShaderDesc.getDynamicProperty(self: PyOpenColorIO.GpuShaderCreator, type: PyOpenColorIO.DynamicPropertyType) -> PyOpenColorIO.DynamicProperty
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
@@ -121,14 +117,6 @@
|
||||
To avoid texture/unform name clashes always append an increasing number to the resource name.
|
||||
|
||||
|
||||
.. py:method:: GpuShaderDesc.getNum3DTextures(self: PyOpenColorIO.GpuShaderDesc) -> int
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: GpuShaderDesc.getNumTextures(self: PyOpenColorIO.GpuShaderDesc) -> int
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: GpuShaderDesc.getPixelName(self: PyOpenColorIO.GpuShaderCreator) -> str
|
||||
:module: PyOpenColorIO
|
||||
|
||||
@@ -140,15 +128,21 @@
|
||||
Some applications require that textures, uniforms, and helper methods be uniquely named because several processor instances could coexist.
|
||||
|
||||
|
||||
.. py:method:: GpuShaderDesc.getShaderText(self: PyOpenColorIO.GpuShaderDesc) -> str
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Get the complete OCIO shader program.
|
||||
|
||||
|
||||
.. py:method:: GpuShaderDesc.getTextureMaxWidth(self: PyOpenColorIO.GpuShaderCreator) -> int
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: GpuShaderDesc.getTextureValues(self: PyOpenColorIO.GpuShaderDesc, index: int) -> numpy.ndarray
|
||||
.. py:method:: GpuShaderDesc.getTextures(self: PyOpenColorIO.GpuShaderDesc) -> PyOpenColorIO.GpuShaderDesc.TextureIterator
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: GpuShaderDesc.getTextures(self: PyOpenColorIO.GpuShaderDesc) -> PyOpenColorIO.GpuShaderDesc.TextureIterator
|
||||
.. py:method:: GpuShaderDesc.getUniforms(self: PyOpenColorIO.GpuShaderDesc) -> PyOpenColorIO.GpuShaderDesc.UniformIterator
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
@@ -214,6 +208,40 @@
|
||||
:value: <TextureType.TEXTURE_RGB_CHANNEL: 1>
|
||||
|
||||
|
||||
.. py:method:: TextureType.value
|
||||
:module: PyOpenColorIO.GpuShaderDesc
|
||||
:property:
|
||||
|
||||
|
||||
.. py:class:: UniformData
|
||||
:module: PyOpenColorIO.GpuShaderDesc
|
||||
|
||||
|
||||
.. py:method:: UniformData.getBool(self: PyOpenColorIO.GpuShaderDesc.UniformData) -> bool
|
||||
:module: PyOpenColorIO.GpuShaderDesc
|
||||
|
||||
|
||||
.. py:method:: UniformData.getDouble(self: PyOpenColorIO.GpuShaderDesc.UniformData) -> float
|
||||
:module: PyOpenColorIO.GpuShaderDesc
|
||||
|
||||
|
||||
.. py:method:: UniformData.getFloat3(self: PyOpenColorIO.GpuShaderDesc.UniformData) -> List[float[3]]
|
||||
:module: PyOpenColorIO.GpuShaderDesc
|
||||
|
||||
|
||||
.. py:method:: UniformData.getVectorFloat(self: PyOpenColorIO.GpuShaderDesc.UniformData) -> numpy.ndarray
|
||||
:module: PyOpenColorIO.GpuShaderDesc
|
||||
|
||||
|
||||
.. py:method:: UniformData.getVectorInt(self: PyOpenColorIO.GpuShaderDesc.UniformData) -> numpy.ndarray
|
||||
:module: PyOpenColorIO.GpuShaderDesc
|
||||
|
||||
|
||||
.. py:method:: UniformData.type
|
||||
:module: PyOpenColorIO.GpuShaderDesc
|
||||
:property:
|
||||
|
||||
|
||||
.. py:class:: Texture
|
||||
:module: PyOpenColorIO.GpuShaderDesc
|
||||
|
||||
@@ -223,6 +251,10 @@
|
||||
:property:
|
||||
|
||||
|
||||
.. py:method:: Texture.getValues(self: PyOpenColorIO.GpuShaderDesc.Texture) -> numpy.ndarray
|
||||
:module: PyOpenColorIO.GpuShaderDesc
|
||||
|
||||
|
||||
.. py:method:: Texture.height
|
||||
:module: PyOpenColorIO.GpuShaderDesc
|
||||
:property:
|
||||
@@ -257,6 +289,10 @@
|
||||
:property:
|
||||
|
||||
|
||||
.. py:method:: Texture3D.getValues(self: PyOpenColorIO.GpuShaderDesc.Texture3D) -> numpy.ndarray
|
||||
:module: PyOpenColorIO.GpuShaderDesc
|
||||
|
||||
|
||||
.. py:method:: Texture3D.interpolation
|
||||
:module: PyOpenColorIO.GpuShaderDesc
|
||||
:property:
|
||||
@@ -272,6 +308,26 @@
|
||||
:property:
|
||||
|
||||
|
||||
.. py:class:: UniformIterator
|
||||
:module: PyOpenColorIO.GpuShaderDesc
|
||||
|
||||
|
||||
.. py:method:: UniformIterator.__getitem__(self: PyOpenColorIO.GpuShaderDesc.UniformIterator, arg0: int) -> tuple
|
||||
:module: PyOpenColorIO.GpuShaderDesc
|
||||
|
||||
|
||||
.. py:method:: UniformIterator.__iter__(self: PyOpenColorIO.GpuShaderDesc.UniformIterator) -> PyOpenColorIO.GpuShaderDesc.UniformIterator
|
||||
:module: PyOpenColorIO.GpuShaderDesc
|
||||
|
||||
|
||||
.. py:method:: UniformIterator.__len__(self: PyOpenColorIO.GpuShaderDesc.UniformIterator) -> int
|
||||
:module: PyOpenColorIO.GpuShaderDesc
|
||||
|
||||
|
||||
.. py:method:: UniformIterator.__next__(self: PyOpenColorIO.GpuShaderDesc.UniformIterator) -> tuple
|
||||
:module: PyOpenColorIO.GpuShaderDesc
|
||||
|
||||
|
||||
.. py:class:: TextureIterator
|
||||
:module: PyOpenColorIO.GpuShaderDesc
|
||||
|
||||
@@ -316,7 +372,7 @@
|
||||
:module: PyOpenColorIO.GpuShaderDesc
|
||||
|
||||
|
||||
.. py:method:: DynamicPropertyIterator.__getitem__(self: PyOpenColorIO.GpuShaderCreator.DynamicPropertyIterator, arg0: int) -> OpenColorIO_v2_0rc1::DynamicProperty
|
||||
.. py:method:: DynamicPropertyIterator.__getitem__(self: PyOpenColorIO.GpuShaderCreator.DynamicPropertyIterator, arg0: int) -> PyOpenColorIO.DynamicProperty
|
||||
:module: PyOpenColorIO.GpuShaderDesc
|
||||
|
||||
|
||||
@@ -328,6 +384,6 @@
|
||||
:module: PyOpenColorIO.GpuShaderDesc
|
||||
|
||||
|
||||
.. py:method:: DynamicPropertyIterator.__next__(self: PyOpenColorIO.GpuShaderCreator.DynamicPropertyIterator) -> OpenColorIO_v2_0rc1::DynamicProperty
|
||||
.. py:method:: DynamicPropertyIterator.__next__(self: PyOpenColorIO.GpuShaderCreator.DynamicPropertyIterator) -> PyOpenColorIO.DynamicProperty
|
||||
:module: PyOpenColorIO.GpuShaderDesc
|
||||
|
||||
|
||||
@@ -23,10 +23,6 @@
|
||||
Create a BSpline curve with a list of control points.
|
||||
|
||||
|
||||
.. py:method:: GradingBSplineCurve.__str__(self: PyOpenColorIO.GradingBSplineCurve) -> str
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: GradingBSplineCurve.getControlPoints(self: PyOpenColorIO.GradingBSplineCurve) -> PyOpenColorIO.GradingBSplineCurve.GradingControlPointIterator
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
@@ -19,10 +19,6 @@
|
||||
2. __init__(self: PyOpenColorIO.GradingControlPoint, x: float = 0.0, y: float = 0.0) -> None
|
||||
|
||||
|
||||
.. py:method:: GradingControlPoint.__str__(self: PyOpenColorIO.GradingControlPoint) -> str
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: GradingControlPoint.x
|
||||
:module: PyOpenColorIO
|
||||
:property:
|
||||
|
||||
@@ -23,10 +23,6 @@
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: GradingPrimary.__str__(self: PyOpenColorIO.GradingPrimary) -> str
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: GradingPrimary.brightness
|
||||
:module: PyOpenColorIO
|
||||
:property:
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
|
||||
Overloaded function.
|
||||
|
||||
1. __init__(self: PyOpenColorIO.GradingPrimaryTransform, style: PyOpenColorIO.GradingStyle = <GradingStyle.GRADING_LOG: 0>, values: PyOpenColorIO.GradingPrimary, dynamic: bool = False, dir: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
|
||||
1. __init__(self: PyOpenColorIO.GradingPrimaryTransform, values: PyOpenColorIO.GradingPrimary, style: PyOpenColorIO.GradingStyle = <GradingStyle.GRADING_LOG: 0>, dynamic: bool = False, dir: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
|
||||
|
||||
Creates an instance of :ref:`GradingPrimaryTransform`.
|
||||
|
||||
@@ -32,9 +32,11 @@
|
||||
Creates an instance of :ref:`GradingPrimaryTransform`.
|
||||
|
||||
|
||||
.. py:method:: GradingPrimaryTransform.__str__(self: PyOpenColorIO.Transform) -> str
|
||||
.. py:method:: GradingPrimaryTransform.__str__()
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Return str(self).
|
||||
|
||||
|
||||
.. py:method:: GradingPrimaryTransform.getDirection(self: PyOpenColorIO.Transform) -> PyOpenColorIO.TransformDirection
|
||||
:module: PyOpenColorIO
|
||||
|
||||
@@ -18,11 +18,7 @@
|
||||
|
||||
Do not use (needed only for pybind11).
|
||||
|
||||
2. __init__(self: PyOpenColorIO.GradingRGBCurve, red: PyOpenColorIO.GradingBSplineCurve = <PyOpenColorIO.GradingBSplineCurve object at 0x7f9cabe66230>, green: PyOpenColorIO.GradingBSplineCurve = <PyOpenColorIO.GradingBSplineCurve object at 0x7f9cabe661f0>, blue: PyOpenColorIO.GradingBSplineCurve = <PyOpenColorIO.GradingBSplineCurve object at 0x7f9cabe66170>, master: PyOpenColorIO.GradingBSplineCurve = <PyOpenColorIO.GradingBSplineCurve object at 0x7f9cabe64f70>) -> None
|
||||
|
||||
|
||||
.. py:method:: GradingRGBCurve.__str__(self: PyOpenColorIO.GradingRGBCurve) -> str
|
||||
:module: PyOpenColorIO
|
||||
2. __init__(self: PyOpenColorIO.GradingRGBCurve, red: PyOpenColorIO.GradingBSplineCurve = <control_points=[<x=0, y=0><x=0.5, y=0.5><x=1, y=1>]>, green: PyOpenColorIO.GradingBSplineCurve = <control_points=[<x=0, y=0><x=0.5, y=0.5><x=1, y=1>]>, blue: PyOpenColorIO.GradingBSplineCurve = <control_points=[<x=0, y=0><x=0.5, y=0.5><x=1, y=1>]>, master: PyOpenColorIO.GradingBSplineCurve = <control_points=[<x=0, y=0><x=0.5, y=0.5><x=1, y=1>]>) -> None
|
||||
|
||||
|
||||
.. py:method:: GradingRGBCurve.blue
|
||||
|
||||
@@ -1,118 +1,120 @@
|
||||
..
|
||||
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:: GradingRGBCurveTransform
|
||||
:module: PyOpenColorIO
|
||||
|
||||
RGB curve color correction controls.
|
||||
|
||||
This transform allows for modifying tone reproduction via B-spline curves.
|
||||
|
||||
There is an R, G, and B curve along with a Master curve (that applies to R, G, and B). Each curve is specified via the x and y coordinates of its control points. A monotonic spline is fit to the control points. The x coordinates must be non-decreasing. When the grading style is linear, the units for the control points are photographic stops relative to 0.18.
|
||||
|
||||
The control points are dynamic, so they may be adjusted even after the :ref:`Transform` is included in a :ref:`Processor`.
|
||||
|
||||
|
||||
.. py:method:: GradingRGBCurveTransform.__init__(*args, **kwargs)
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Overloaded function.
|
||||
|
||||
1. __init__(self: PyOpenColorIO.GradingRGBCurveTransform, style: PyOpenColorIO.GradingStyle = <GradingStyle.GRADING_LOG: 0>, values: PyOpenColorIO.GradingRGBCurve, dynamic: bool = False, dir: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
|
||||
|
||||
Creates an instance of :ref:`GradingPrimaryTransform`.
|
||||
|
||||
2. __init__(self: PyOpenColorIO.GradingRGBCurveTransform, style: PyOpenColorIO.GradingStyle = <GradingStyle.GRADING_LOG: 0>, dynamic: bool = False, dir: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
|
||||
|
||||
Creates an instance of :ref:`GradingPrimaryTransform`.
|
||||
|
||||
|
||||
.. py:method:: GradingRGBCurveTransform.__str__(self: PyOpenColorIO.Transform) -> str
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: GradingRGBCurveTransform.getBypassLinToLog(self: PyOpenColorIO.GradingRGBCurveTransform) -> bool
|
||||
:module: PyOpenColorIO
|
||||
|
||||
The scene-linear grading style applies a lin-to-log transform to the pixel values before going through the curve. However, in some cases (e.g. drawing curves in a UI) it may be useful to bypass the lin-to-log. Default value is false.
|
||||
|
||||
|
||||
.. py:method:: GradingRGBCurveTransform.getDirection(self: PyOpenColorIO.Transform) -> PyOpenColorIO.TransformDirection
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: GradingRGBCurveTransform.getFormatMetadata(self: PyOpenColorIO.GradingRGBCurveTransform) -> PyOpenColorIO.FormatMetadata
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: GradingRGBCurveTransform.getSlope(self: PyOpenColorIO.GradingRGBCurveTransform, channel: PyOpenColorIO.RGBCurveType, index: int) -> float
|
||||
:module: PyOpenColorIO
|
||||
|
||||
It is possible to provide a desired slope value for each control point. The number of slopes is always the same as the number of control points and so the control points must be set before setting the slopes. The slopes are primarily intended for use by config authors looking to match a specific shape with as few control points as possible, they are not intended to be exposed to a user interface for direct manipulation. When a curve is being generated for creative purposes it is better to let OCIO calculate the slopes automatically.
|
||||
|
||||
|
||||
.. py:method:: GradingRGBCurveTransform.getStyle(self: PyOpenColorIO.GradingRGBCurveTransform) -> PyOpenColorIO.GradingStyle
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Adjusts the behavior of the transform for log, linear, or video color space encodings.
|
||||
|
||||
|
||||
.. py:method:: GradingRGBCurveTransform.getTransformType(self: PyOpenColorIO.Transform) -> PyOpenColorIO.TransformType
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: GradingRGBCurveTransform.getValue(self: PyOpenColorIO.GradingRGBCurveTransform) -> PyOpenColorIO.GradingRGBCurve
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: GradingRGBCurveTransform.isDynamic(self: PyOpenColorIO.GradingRGBCurveTransform) -> bool
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Parameters can be made dynamic so the values can be changed through the CPU or GPU processor, but if there are several :ref:`GradingRGBCurveTransform` only one can have dynamic parameters.
|
||||
|
||||
|
||||
.. py:method:: GradingRGBCurveTransform.makeDynamic(self: PyOpenColorIO.GradingRGBCurveTransform) -> None
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: GradingRGBCurveTransform.makeNonDynamic(self: PyOpenColorIO.GradingRGBCurveTransform) -> None
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: GradingRGBCurveTransform.setBypassLinToLog(self: PyOpenColorIO.GradingRGBCurveTransform, bypass: bool) -> None
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: GradingRGBCurveTransform.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:: GradingRGBCurveTransform.setSlope(self: PyOpenColorIO.GradingRGBCurveTransform, channel: PyOpenColorIO.RGBCurveType, index: int, slope: float) -> None
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: GradingRGBCurveTransform.setStyle(self: PyOpenColorIO.GradingRGBCurveTransform, style: PyOpenColorIO.GradingStyle) -> None
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Will reset value to style's defaults if style is not the current style.
|
||||
|
||||
|
||||
.. py:method:: GradingRGBCurveTransform.setValue(self: PyOpenColorIO.GradingRGBCurveTransform, values: PyOpenColorIO.GradingRGBCurve) -> None
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Throws if value is not valid.
|
||||
|
||||
|
||||
.. py:method:: GradingRGBCurveTransform.slopesAreDefault(self: PyOpenColorIO.GradingRGBCurveTransform, channel: PyOpenColorIO.RGBCurveType) -> bool
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: GradingRGBCurveTransform.validate(self: PyOpenColorIO.Transform) -> None
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Will throw if data is not valid.
|
||||
|
||||
..
|
||||
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:: GradingRGBCurveTransform
|
||||
:module: PyOpenColorIO
|
||||
|
||||
RGB curve color correction controls.
|
||||
|
||||
This transform allows for modifying tone reproduction via B-spline curves.
|
||||
|
||||
There is an R, G, and B curve along with a Master curve (that applies to R, G, and B). Each curve is specified via the x and y coordinates of its control points. A monotonic spline is fit to the control points. The x coordinates must be non-decreasing. When the grading style is linear, the units for the control points are photographic stops relative to 0.18.
|
||||
|
||||
The control points are dynamic, so they may be adjusted even after the :ref:`Transform` is included in a :ref:`Processor`.
|
||||
|
||||
|
||||
.. py:method:: GradingRGBCurveTransform.__init__(*args, **kwargs)
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Overloaded function.
|
||||
|
||||
1. __init__(self: PyOpenColorIO.GradingRGBCurveTransform, values: PyOpenColorIO.GradingRGBCurve, style: PyOpenColorIO.GradingStyle = <GradingStyle.GRADING_LOG: 0>, dynamic: bool = False, dir: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
|
||||
|
||||
Creates an instance of :ref:`GradingPrimaryTransform`.
|
||||
|
||||
2. __init__(self: PyOpenColorIO.GradingRGBCurveTransform, style: PyOpenColorIO.GradingStyle = <GradingStyle.GRADING_LOG: 0>, dynamic: bool = False, dir: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
|
||||
|
||||
Creates an instance of :ref:`GradingPrimaryTransform`.
|
||||
|
||||
|
||||
.. py:method:: GradingRGBCurveTransform.__str__()
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Return str(self).
|
||||
|
||||
|
||||
.. py:method:: GradingRGBCurveTransform.getBypassLinToLog(self: PyOpenColorIO.GradingRGBCurveTransform) -> bool
|
||||
:module: PyOpenColorIO
|
||||
|
||||
The scene-linear grading style applies a lin-to-log transform to the pixel values before going through the curve. However, in some cases (e.g. drawing curves in a UI) it may be useful to bypass the lin-to-log. Default value is false.
|
||||
|
||||
|
||||
.. py:method:: GradingRGBCurveTransform.getDirection(self: PyOpenColorIO.Transform) -> PyOpenColorIO.TransformDirection
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: GradingRGBCurveTransform.getFormatMetadata(self: PyOpenColorIO.GradingRGBCurveTransform) -> PyOpenColorIO.FormatMetadata
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: GradingRGBCurveTransform.getSlope(self: PyOpenColorIO.GradingRGBCurveTransform, channel: PyOpenColorIO.RGBCurveType, index: int) -> float
|
||||
:module: PyOpenColorIO
|
||||
|
||||
It is possible to provide a desired slope value for each control point. The number of slopes is always the same as the number of control points and so the control points must be set before setting the slopes. The slopes are primarily intended for use by config authors looking to match a specific shape with as few control points as possible, they are not intended to be exposed to a user interface for direct manipulation. When a curve is being generated for creative purposes it is better to let OCIO calculate the slopes automatically.
|
||||
|
||||
|
||||
.. py:method:: GradingRGBCurveTransform.getStyle(self: PyOpenColorIO.GradingRGBCurveTransform) -> PyOpenColorIO.GradingStyle
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Adjusts the behavior of the transform for log, linear, or video color space encodings.
|
||||
|
||||
|
||||
.. py:method:: GradingRGBCurveTransform.getTransformType(self: PyOpenColorIO.Transform) -> PyOpenColorIO.TransformType
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: GradingRGBCurveTransform.getValue(self: PyOpenColorIO.GradingRGBCurveTransform) -> PyOpenColorIO.GradingRGBCurve
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: GradingRGBCurveTransform.isDynamic(self: PyOpenColorIO.GradingRGBCurveTransform) -> bool
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Parameters can be made dynamic so the values can be changed through the CPU or GPU processor, but if there are several :ref:`GradingRGBCurveTransform` only one can have dynamic parameters.
|
||||
|
||||
|
||||
.. py:method:: GradingRGBCurveTransform.makeDynamic(self: PyOpenColorIO.GradingRGBCurveTransform) -> None
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: GradingRGBCurveTransform.makeNonDynamic(self: PyOpenColorIO.GradingRGBCurveTransform) -> None
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: GradingRGBCurveTransform.setBypassLinToLog(self: PyOpenColorIO.GradingRGBCurveTransform, bypass: bool) -> None
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: GradingRGBCurveTransform.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:: GradingRGBCurveTransform.setSlope(self: PyOpenColorIO.GradingRGBCurveTransform, channel: PyOpenColorIO.RGBCurveType, index: int, slope: float) -> None
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: GradingRGBCurveTransform.setStyle(self: PyOpenColorIO.GradingRGBCurveTransform, style: PyOpenColorIO.GradingStyle) -> None
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Will reset value to style's defaults if style is not the current style.
|
||||
|
||||
|
||||
.. py:method:: GradingRGBCurveTransform.setValue(self: PyOpenColorIO.GradingRGBCurveTransform, values: PyOpenColorIO.GradingRGBCurve) -> None
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Throws if value is not valid.
|
||||
|
||||
|
||||
.. py:method:: GradingRGBCurveTransform.slopesAreDefault(self: PyOpenColorIO.GradingRGBCurveTransform, channel: PyOpenColorIO.RGBCurveType) -> bool
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: GradingRGBCurveTransform.validate(self: PyOpenColorIO.Transform) -> None
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Will throw if data is not valid.
|
||||
|
||||
|
||||
@@ -19,10 +19,6 @@
|
||||
2. __init__(self: PyOpenColorIO.GradingRGBM, red: float, green: float, blue: float, master: float) -> None
|
||||
|
||||
|
||||
.. py:method:: GradingRGBM.__str__(self: PyOpenColorIO.GradingRGBM) -> str
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: GradingRGBM.blue
|
||||
:module: PyOpenColorIO
|
||||
:property:
|
||||
|
||||
@@ -21,10 +21,6 @@
|
||||
3. __init__(self: PyOpenColorIO.GradingRGBMSW, start: float, width: float) -> None
|
||||
|
||||
|
||||
.. py:method:: GradingRGBMSW.__str__(self: PyOpenColorIO.GradingRGBMSW) -> str
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: GradingRGBMSW.blue
|
||||
:module: PyOpenColorIO
|
||||
:property:
|
||||
|
||||
@@ -33,3 +33,8 @@
|
||||
:module: PyOpenColorIO
|
||||
:value: <GradingStyle.GRADING_VIDEO: 2>
|
||||
|
||||
|
||||
.. py:method:: GradingStyle.value
|
||||
:module: PyOpenColorIO
|
||||
:property:
|
||||
|
||||
|
||||
@@ -13,10 +13,6 @@
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: GradingTone.__str__(self: PyOpenColorIO.GradingTone) -> str
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: GradingTone.blacks
|
||||
:module: PyOpenColorIO
|
||||
:property:
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
|
||||
Overloaded function.
|
||||
|
||||
1. __init__(self: PyOpenColorIO.GradingToneTransform, style: PyOpenColorIO.GradingStyle = <GradingStyle.GRADING_LOG: 0>, values: PyOpenColorIO.GradingTone, dynamic: bool = False, dir: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
|
||||
1. __init__(self: PyOpenColorIO.GradingToneTransform, values: PyOpenColorIO.GradingTone, style: PyOpenColorIO.GradingStyle = <GradingStyle.GRADING_LOG: 0>, dynamic: bool = False, dir: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
|
||||
|
||||
Creates an instance of :ref:`GradingToneTransform`.
|
||||
|
||||
@@ -40,9 +40,11 @@
|
||||
Creates an instance of :ref:`GradingToneTransform`.
|
||||
|
||||
|
||||
.. py:method:: GradingToneTransform.__str__(self: PyOpenColorIO.Transform) -> str
|
||||
.. py:method:: GradingToneTransform.__str__()
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Return str(self).
|
||||
|
||||
|
||||
.. py:method:: GradingToneTransform.getDirection(self: PyOpenColorIO.Transform) -> PyOpenColorIO.TransformDirection
|
||||
:module: PyOpenColorIO
|
||||
|
||||
@@ -7,21 +7,11 @@
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: GroupTransform.GetWriteFormats() -> OpenColorIO_v2_0rc1::PyIterator<std::shared_ptr<OpenColorIO_v2_0rc1::GroupTransform>,1>
|
||||
.. py:method:: GroupTransform.GetWriteFormats() -> PyOpenColorIO.GroupTransform.WriteFormatIterator
|
||||
:module: PyOpenColorIO
|
||||
:staticmethod:
|
||||
|
||||
|
||||
.. py:class:: GroupTransform.WriteFormatIterator
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: GroupTransform.WriteFormatIterator.__init__(*args, **kwargs)
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Initialize self. See help(type(self)) for accurate signature.
|
||||
|
||||
|
||||
.. py:method:: GroupTransform.__init__(*args, **kwargs)
|
||||
:module: PyOpenColorIO
|
||||
|
||||
@@ -32,9 +22,11 @@
|
||||
2. __init__(self: PyOpenColorIO.GroupTransform, transforms: List[PyOpenColorIO.Transform] = [], direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
|
||||
|
||||
|
||||
.. py:method:: GroupTransform.__str__(self: PyOpenColorIO.GroupTransform) -> str
|
||||
.. py:method:: GroupTransform.__str__()
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Return str(self).
|
||||
|
||||
|
||||
.. py:method:: GroupTransform.appendTransform(self: PyOpenColorIO.GroupTransform, transform: PyOpenColorIO.Transform) -> None
|
||||
:module: PyOpenColorIO
|
||||
@@ -77,10 +69,11 @@
|
||||
|
||||
Overloaded function.
|
||||
|
||||
1. write(self: PyOpenColorIO.GroupTransform, config: OpenColorIO_v2_0rc1::Config, context: OpenColorIO_v2_0rc1::Context, formatName: str, fileName: str) -> None
|
||||
1. write(self: PyOpenColorIO.GroupTransform, formatName: str, fileName: str, config: PyOpenColorIO.Config = None) -> None
|
||||
|
||||
Write the transforms comprising the group to the stream.
|
||||
|
||||
|
||||
Writing (as opposed to Baking) is a lossless process. An exception is thrown if the processor cannot be losslessly written to the specified file format. Transforms such as :ref:`FileTransform` or :ref:`ColorSpaceTransform` are resolved into write-able simple transforms using the config and context. Supported formats include CTF, CLF, and CDL. All available formats can be listed with the following: .. code-block:: cpp
|
||||
|
||||
// What are the allowed writing output formats?
|
||||
@@ -93,10 +86,11 @@
|
||||
formats << " (." << GroupTransform::GetFormatExtensionByIndex(i) << ")";
|
||||
}
|
||||
|
||||
2. write(self: PyOpenColorIO.GroupTransform, config: OpenColorIO_v2_0rc1::Config, context: OpenColorIO_v2_0rc1::Context, formatName: str) -> str
|
||||
2. write(self: PyOpenColorIO.GroupTransform, formatName: str, config: PyOpenColorIO.Config = None) -> str
|
||||
|
||||
Write the transforms comprising the group to the stream.
|
||||
|
||||
|
||||
Writing (as opposed to Baking) is a lossless process. An exception is thrown if the processor cannot be losslessly written to the specified file format. Transforms such as :ref:`FileTransform` or :ref:`ColorSpaceTransform` are resolved into write-able simple transforms using the config and context. Supported formats include CTF, CLF, and CDL. All available formats can be listed with the following: .. code-block:: cpp
|
||||
|
||||
// What are the allowed writing output formats?
|
||||
@@ -110,6 +104,26 @@
|
||||
}
|
||||
|
||||
|
||||
.. py:class:: WriteFormatIterator
|
||||
:module: PyOpenColorIO.GroupTransform
|
||||
|
||||
|
||||
.. py:method:: WriteFormatIterator.__getitem__(self: PyOpenColorIO.GroupTransform.WriteFormatIterator, arg0: int) -> tuple
|
||||
:module: PyOpenColorIO.GroupTransform
|
||||
|
||||
|
||||
.. py:method:: WriteFormatIterator.__iter__(self: PyOpenColorIO.GroupTransform.WriteFormatIterator) -> PyOpenColorIO.GroupTransform.WriteFormatIterator
|
||||
:module: PyOpenColorIO.GroupTransform
|
||||
|
||||
|
||||
.. py:method:: WriteFormatIterator.__len__(self: PyOpenColorIO.GroupTransform.WriteFormatIterator) -> int
|
||||
:module: PyOpenColorIO.GroupTransform
|
||||
|
||||
|
||||
.. py:method:: WriteFormatIterator.__next__(self: PyOpenColorIO.GroupTransform.WriteFormatIterator) -> tuple
|
||||
:module: PyOpenColorIO.GroupTransform
|
||||
|
||||
|
||||
.. py:class:: TransformIterator
|
||||
:module: PyOpenColorIO.GroupTransform
|
||||
|
||||
|
||||
@@ -71,3 +71,8 @@
|
||||
:module: PyOpenColorIO
|
||||
:value: <Interpolation.INTERP_UNKNOWN: 0>
|
||||
|
||||
|
||||
.. py:method:: Interpolation.value
|
||||
:module: PyOpenColorIO
|
||||
:property:
|
||||
|
||||
|
||||
@@ -32,10 +32,6 @@
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: LegacyViewingPipeline.__str__(self: PyOpenColorIO.LegacyViewingPipeline) -> str
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: LegacyViewingPipeline.getChannelView(self: PyOpenColorIO.LegacyViewingPipeline) -> PyOpenColorIO.Transform
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
@@ -24,9 +24,11 @@
|
||||
2. __init__(self: PyOpenColorIO.LogAffineTransform, logSideSlope: List[float[3]] = [1.0, 1.0, 1.0], logSideOffset: List[float[3]] = [0.0, 0.0, 0.0], linSideSlope: List[float[3]] = [1.0, 1.0, 1.0], linSideOffset: List[float[3]] = [0.0, 0.0, 0.0], direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
|
||||
|
||||
|
||||
.. py:method:: LogAffineTransform.__str__(self: PyOpenColorIO.LogAffineTransform) -> str
|
||||
.. py:method:: LogAffineTransform.__str__()
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Return str(self).
|
||||
|
||||
|
||||
.. py:method:: LogAffineTransform.equals(self: PyOpenColorIO.LogAffineTransform, other: PyOpenColorIO.LogAffineTransform) -> bool
|
||||
:module: PyOpenColorIO
|
||||
|
||||
@@ -6,25 +6,23 @@
|
||||
.. py:class:: LogCameraTransform
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Same as :cpp:class:`:ref:`LogAffineTransform`` but with the addition of a linear segment near black. This formula is used for many camera logs (e.g., LogC) as well as ACEScct.
|
||||
Same as :ref:`LogAffineTransform` but with the addition of a linear segment near black. This formula is used for many camera logs (e.g., LogC) as well as ACEScct.
|
||||
|
||||
- The linSideBreak specifies the point on the linear axis where the log and linear segments meet. It must be set (there is no default).
|
||||
- The linearSlope specifies the slope of the linear segment of the forward (linToLog) transform. By default it is set equal to the slope of the log curve at the break point.
|
||||
|
||||
|
||||
.. py:method:: LogCameraTransform.__init__(*args, **kwargs)
|
||||
.. py:method:: LogCameraTransform.__init__(self: PyOpenColorIO.LogCameraTransform, linSideBreak: List[float[3]], base: float = 2.0, logSideSlope: List[float[3]] = [1.0, 1.0, 1.0], logSideOffset: List[float[3]] = [0.0, 0.0, 0.0], linSideSlope: List[float[3]] = [1.0, 1.0, 1.0], linSideOffset: List[float[3]] = [0.0, 0.0, 0.0], linearSlope: List[float] = [], direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Overloaded function.
|
||||
|
||||
1. __init__(self: PyOpenColorIO.LogCameraTransform) -> None
|
||||
|
||||
2. __init__(self: PyOpenColorIO.LogCameraTransform, linSideBreak: List[float[3]], logSideSlope: List[float[3]] = [1.0, 1.0, 1.0], logSideOffset: List[float[3]] = [0.0, 0.0, 0.0], linSideSlope: List[float[3]] = [1.0, 1.0, 1.0], linSideOffset: List[float[3]] = [0.0, 0.0, 0.0], direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
|
||||
LinSideBreak must be set for the transform to be valid (there is no default).
|
||||
|
||||
|
||||
.. py:method:: LogCameraTransform.__str__(self: PyOpenColorIO.LogCameraTransform) -> str
|
||||
.. py:method:: LogCameraTransform.__str__()
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Return str(self).
|
||||
|
||||
|
||||
.. py:method:: LogCameraTransform.equals(self: PyOpenColorIO.LogCameraTransform, other: PyOpenColorIO.LogCameraTransform) -> bool
|
||||
:module: PyOpenColorIO
|
||||
@@ -47,8 +45,6 @@
|
||||
.. py:method:: LogCameraTransform.getLinSideBreakValue(self: PyOpenColorIO.LogCameraTransform) -> List[float[3]]
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Return true if LinSideBreak values were set, false if they were not.
|
||||
|
||||
|
||||
.. py:method:: LogCameraTransform.getLinSideOffsetValue(self: PyOpenColorIO.LogCameraTransform) -> List[float[3]]
|
||||
:module: PyOpenColorIO
|
||||
@@ -61,7 +57,7 @@
|
||||
.. py:method:: LogCameraTransform.getLinearSlopeValue(self: PyOpenColorIO.LogCameraTransform) -> List[float[3]]
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Return true if LinearSlope values were set, false if they were not.
|
||||
Return LinearSlope or 3 qnan values if not defined.
|
||||
|
||||
|
||||
.. py:method:: LogCameraTransform.getLogSideOffsetValue(self: PyOpenColorIO.LogCameraTransform) -> List[float[3]]
|
||||
@@ -71,11 +67,17 @@
|
||||
.. py:method:: LogCameraTransform.getLogSideSlopeValue(self: PyOpenColorIO.LogCameraTransform) -> List[float[3]]
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Get/Set values for the R, G, B components.
|
||||
|
||||
|
||||
.. py:method:: LogCameraTransform.getTransformType(self: PyOpenColorIO.Transform) -> PyOpenColorIO.TransformType
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: LogCameraTransform.isLinearSlopeValueSet(self: PyOpenColorIO.LogCameraTransform) -> bool
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: LogCameraTransform.setBase(self: PyOpenColorIO.LogCameraTransform, base: float) -> None
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
@@ -45,3 +45,8 @@
|
||||
:module: PyOpenColorIO
|
||||
:value: <LoggingLevel.LOGGING_LEVEL_WARNING: 1>
|
||||
|
||||
|
||||
.. py:method:: LoggingLevel.value
|
||||
:module: PyOpenColorIO
|
||||
:property:
|
||||
|
||||
|
||||
@@ -23,9 +23,11 @@
|
||||
2. __init__(self: PyOpenColorIO.LogTransform, base: float = 2.0, direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
|
||||
|
||||
|
||||
.. py:method:: LogTransform.__str__(self: PyOpenColorIO.LogTransform) -> str
|
||||
.. py:method:: LogTransform.__str__()
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Return str(self).
|
||||
|
||||
|
||||
.. py:method:: LogTransform.equals(self: PyOpenColorIO.LogTransform, other: PyOpenColorIO.LogTransform) -> bool
|
||||
:module: PyOpenColorIO
|
||||
|
||||
@@ -17,10 +17,6 @@
|
||||
2. __init__(self: PyOpenColorIO.Look, name: str = '', processSpace: str = '', transform: PyOpenColorIO.Transform = None, inverseTransform: PyOpenColorIO.Transform = None, description: str = '') -> None
|
||||
|
||||
|
||||
.. py:method:: Look.__str__(self: PyOpenColorIO.Look) -> str
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: Look.getDescription(self: PyOpenColorIO.Look) -> str
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
@@ -14,12 +14,14 @@
|
||||
|
||||
1. __init__(self: PyOpenColorIO.LookTransform) -> None
|
||||
|
||||
2. __init__(self: PyOpenColorIO.LookTransform, src: str = '', dst: str = '', looks: str = '', direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>, skipColorSpaceConversion: bool = False) -> None
|
||||
2. __init__(self: PyOpenColorIO.LookTransform, src: str, dst: str, looks: str = '', skipColorSpaceConversion: bool = False, direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
|
||||
|
||||
|
||||
.. py:method:: LookTransform.__str__(self: PyOpenColorIO.LookTransform) -> str
|
||||
.. py:method:: LookTransform.__str__()
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Return str(self).
|
||||
|
||||
|
||||
.. py:method:: LookTransform.getDirection(self: PyOpenColorIO.Transform) -> PyOpenColorIO.TransformDirection
|
||||
:module: PyOpenColorIO
|
||||
|
||||
@@ -10,9 +10,11 @@
|
||||
|
||||
Members:
|
||||
|
||||
HUE_NONE :
|
||||
HUE_NONE : No adjustment.
|
||||
|
||||
HUE_DW3 :
|
||||
HUE_DW3 : Algorithm used in ACES Output Transforms through v0.7.
|
||||
|
||||
HUE_WYPN : Weighted Yellow Power Norm -- NOT IMPLEMENTED YET.
|
||||
|
||||
.. py:method:: name() -> str
|
||||
:property:
|
||||
@@ -26,3 +28,13 @@
|
||||
:module: PyOpenColorIO
|
||||
:value: <Lut1DHueAdjust.HUE_NONE: 0>
|
||||
|
||||
|
||||
.. py:attribute:: Lut1DHueAdjust.HUE_WYPN
|
||||
:module: PyOpenColorIO
|
||||
:value: <Lut1DHueAdjust.HUE_WYPN: 2>
|
||||
|
||||
|
||||
.. py:method:: Lut1DHueAdjust.value
|
||||
:module: PyOpenColorIO
|
||||
:property:
|
||||
|
||||
|
||||
@@ -27,9 +27,11 @@
|
||||
Create an identity 1D-LUT with specific length and half-domain setting. Will throw for lengths longer than 1024x1024.
|
||||
|
||||
|
||||
.. py:method:: Lut1DTransform.__str__(self: PyOpenColorIO.Lut1DTransform) -> str
|
||||
.. py:method:: Lut1DTransform.__str__()
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Return str(self).
|
||||
|
||||
|
||||
.. py:method:: Lut1DTransform.equals(self: PyOpenColorIO.Lut1DTransform, other: PyOpenColorIO.Lut1DTransform) -> bool
|
||||
:module: PyOpenColorIO
|
||||
|
||||
@@ -27,9 +27,11 @@
|
||||
Create an identity 3D-LUT with specific grid size. Will throw for grid size larger than 129.
|
||||
|
||||
|
||||
.. py:method:: Lut3DTransform.__str__(self: PyOpenColorIO.Lut3DTransform) -> str
|
||||
.. py:method:: Lut3DTransform.__str__()
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Return str(self).
|
||||
|
||||
|
||||
.. py:method:: Lut3DTransform.equals(self: PyOpenColorIO.Lut3DTransform, other: PyOpenColorIO.Lut3DTransform) -> bool
|
||||
:module: PyOpenColorIO
|
||||
|
||||
@@ -47,9 +47,11 @@
|
||||
2. __init__(self: PyOpenColorIO.MatrixTransform, matrix: List[float[16]] = [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], offset: List[float[4]] = [0.0, 0.0, 0.0, 0.0], direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
|
||||
|
||||
|
||||
.. py:method:: MatrixTransform.__str__(self: PyOpenColorIO.MatrixTransform) -> str
|
||||
.. py:method:: MatrixTransform.__str__()
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Return str(self).
|
||||
|
||||
|
||||
.. py:method:: MatrixTransform.equals(self: PyOpenColorIO.MatrixTransform, other: PyOpenColorIO.MatrixTransform) -> bool
|
||||
:module: PyOpenColorIO
|
||||
|
||||
@@ -13,15 +13,11 @@
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: MixingColorSpaceManager.__str__(self: PyOpenColorIO.MixingColorSpaceManager) -> str
|
||||
.. py:method:: MixingColorSpaceManager.getMixingEncodings(self: PyOpenColorIO.MixingColorSpaceManager) -> PyOpenColorIO.MixingColorSpaceManager.MixingEncodingIterator
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: MixingColorSpaceManager.getMixingEncodings(self: PyOpenColorIO.MixingColorSpaceManager) -> OpenColorIO_v2_0rc1::PyIterator<std::shared_ptr<OpenColorIO_v2_0rc1::MixingColorSpaceManager>,1>
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: MixingColorSpaceManager.getMixingSpaces(self: PyOpenColorIO.MixingColorSpaceManager) -> OpenColorIO_v2_0rc1::PyIterator<std::shared_ptr<OpenColorIO_v2_0rc1::MixingColorSpaceManager>,0>
|
||||
.. py:method:: MixingColorSpaceManager.getMixingSpaces(self: PyOpenColorIO.MixingColorSpaceManager) -> PyOpenColorIO.MixingColorSpaceManager.MixingSpaceIterator
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
|
||||
@@ -23,10 +23,6 @@
|
||||
Initialize self. See help(type(self)) for accurate signature.
|
||||
|
||||
|
||||
.. py:method:: MixingSlider.__str__(self: PyOpenColorIO.MixingSlider) -> str
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: MixingSlider.getSliderMaxEdge(self: PyOpenColorIO.MixingSlider) -> float
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
|
||||
:ref:`NamedTransform`.
|
||||
|
||||
|
||||
A :ref:`NamedTransform` provides a way for config authors to include a set of color transforms that are independent of the color space being processed. For example a "utility
|
||||
curve" transform where there is no need to convert to or from a reference space.
|
||||
|
||||
@@ -32,10 +33,6 @@
|
||||
2. __init__(self: PyOpenColorIO.NamedTransform, name: str = '', aliases: List[str] = [], family: str = '', description: str = '', forwardTransform: PyOpenColorIO.Transform = None, inverseTransform: PyOpenColorIO.Transform = None, categories: List[str] = []) -> None
|
||||
|
||||
|
||||
.. py:method:: NamedTransform.__str__(self: PyOpenColorIO.NamedTransform) -> str
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: NamedTransform.addAlias(self: PyOpenColorIO.NamedTransform, alias: str) -> None
|
||||
:module: PyOpenColorIO
|
||||
|
||||
@@ -60,11 +57,11 @@
|
||||
:ref:`ColorSpace::clearCategories`
|
||||
|
||||
|
||||
.. py:method:: NamedTransform.getAliases(self: PyOpenColorIO.NamedTransform) -> OpenColorIO_v2_0rc1::PyIterator<std::shared_ptr<OpenColorIO_v2_0rc1::NamedTransform>,1>
|
||||
.. py:method:: NamedTransform.getAliases(self: PyOpenColorIO.NamedTransform) -> PyOpenColorIO.NamedTransform.NamedTransformAliasIterator
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: NamedTransform.getCategories(self: PyOpenColorIO.NamedTransform) -> OpenColorIO_v2_0rc1::PyIterator<std::shared_ptr<OpenColorIO_v2_0rc1::NamedTransform>,0>
|
||||
.. py:method:: NamedTransform.getCategories(self: PyOpenColorIO.NamedTransform) -> PyOpenColorIO.NamedTransform.NamedTransformCategoryIterator
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
|
||||
@@ -31,3 +31,8 @@
|
||||
:module: PyOpenColorIO
|
||||
:value: <NamedTransformVisibility.NAMEDTRANSFORM_INACTIVE: 1>
|
||||
|
||||
|
||||
.. py:method:: NamedTransformVisibility.value
|
||||
:module: PyOpenColorIO
|
||||
:property:
|
||||
|
||||
|
||||
@@ -40,3 +40,8 @@
|
||||
:module: PyOpenColorIO
|
||||
:value: <NegativeStyle.NEGATIVE_PASS_THRU: 2>
|
||||
|
||||
|
||||
.. py:method:: NegativeStyle.value
|
||||
:module: PyOpenColorIO
|
||||
:property:
|
||||
|
||||
|
||||
@@ -208,3 +208,8 @@
|
||||
:module: PyOpenColorIO
|
||||
:value: <OptimizationFlags.OPTIMIZATION_VERY_GOOD: 263995331>
|
||||
|
||||
|
||||
.. py:method:: OptimizationFlags.value
|
||||
:module: PyOpenColorIO
|
||||
:property:
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: Processor.getDefaultCPUProcessor(self: PyOpenColorIO.Processor) -> OpenColorIO_v2_0rc1::CPUProcessor
|
||||
.. py:method:: Processor.getDefaultCPUProcessor(self: PyOpenColorIO.Processor) -> PyOpenColorIO.CPUProcessor
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Get an optimized :cpp:class:`:ref:`CPUProcessor`` instance.
|
||||
@@ -50,19 +50,19 @@
|
||||
cpuProcessor->apply(img);
|
||||
|
||||
|
||||
.. py:method:: Processor.getDefaultGPUProcessor(self: PyOpenColorIO.Processor) -> OpenColorIO_v2_0rc1::GPUProcessor
|
||||
.. py:method:: Processor.getDefaultGPUProcessor(self: PyOpenColorIO.Processor) -> PyOpenColorIO.GPUProcessor
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Get an optimized :ref:`GPUProcessor` instance.
|
||||
|
||||
|
||||
.. py:method:: Processor.getDynamicProperty(self: PyOpenColorIO.Processor, type: PyOpenColorIO.DynamicPropertyType) -> OpenColorIO_v2_0rc1::DynamicProperty
|
||||
.. py:method:: Processor.getDynamicProperty(self: PyOpenColorIO.Processor, type: PyOpenColorIO.DynamicPropertyType) -> PyOpenColorIO.DynamicProperty
|
||||
:module: PyOpenColorIO
|
||||
|
||||
The returned pointer may be used to set the default 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 and only this one will be controlled.
|
||||
|
||||
.. note::
|
||||
The dynamic properties are a convenient way to change on-the-fly values without generating again and again a CPU or GPU processor instance. Color transformations can contain dynamic properties from a :cpp:class:`:ref:`ExposureContrastTransform`` for example. So, :cpp:class:`:ref:`Processor``, :cpp:class:`:ref:`CPUProcessor`` and :cpp:class:`:ref:`GpuShaderCreator`` all have ways to manage dynamic properties. However, the transform dynamic properties are decoupled between the types of processor instances so that the same :cpp:class:`:ref:`Processor`` can generate several independent CPU and/or GPU processor instances i.e. changing the value of the exposure dynamic property from a CPU processor instance does not affect the corresponding GPU processor instance. :ref:`Processor` creation will throw if there are more than one property of a given type.
|
||||
The dynamic properties are a convenient way to change on-the-fly values without generating again and again a CPU or GPU processor instance. Color transformations can contain dynamic properties from a :ref:`ExposureContrastTransform` for example. So, :ref:`Processor`, :ref:`CPUProcessor` and :ref:`GpuShaderCreator` all have ways to manage dynamic properties. However, the transform dynamic properties are decoupled between the types of processor instances so that the same :ref:`Processor` can generate several independent CPU and/or GPU processor instances i.e. changing the value of the exposure dynamic property from a CPU processor instance does not affect the corresponding GPU processor instance. :ref:`Processor` creation will log a warning if there are more than one property of a given type. There may be more than one property of a given type, but only one will respond to parameter updates, the others will use their original parameter values.
|
||||
|
||||
|
||||
.. py:method:: Processor.getFormatMetadata(self: PyOpenColorIO.Processor) -> PyOpenColorIO.FormatMetadata
|
||||
@@ -76,12 +76,12 @@
|
||||
|
||||
Overloaded function.
|
||||
|
||||
1. getOptimizedCPUProcessor(self: PyOpenColorIO.Processor, oFlags: PyOpenColorIO.OptimizationFlags) -> OpenColorIO_v2_0rc1::CPUProcessor
|
||||
1. getOptimizedCPUProcessor(self: PyOpenColorIO.Processor, oFlags: PyOpenColorIO.OptimizationFlags) -> PyOpenColorIO.CPUProcessor
|
||||
|
||||
2. getOptimizedCPUProcessor(self: PyOpenColorIO.Processor, inBitDepth: PyOpenColorIO.BitDepth, outBitDepth: PyOpenColorIO.BitDepth, oFlags: PyOpenColorIO.OptimizationFlags) -> OpenColorIO_v2_0rc1::CPUProcessor
|
||||
2. getOptimizedCPUProcessor(self: PyOpenColorIO.Processor, inBitDepth: PyOpenColorIO.BitDepth, outBitDepth: PyOpenColorIO.BitDepth, oFlags: PyOpenColorIO.OptimizationFlags) -> PyOpenColorIO.CPUProcessor
|
||||
|
||||
|
||||
.. py:method:: Processor.getOptimizedGPUProcessor(self: PyOpenColorIO.Processor, oFlags: PyOpenColorIO.OptimizationFlags) -> OpenColorIO_v2_0rc1::GPUProcessor
|
||||
.. py:method:: Processor.getOptimizedGPUProcessor(self: PyOpenColorIO.Processor, oFlags: PyOpenColorIO.OptimizationFlags) -> PyOpenColorIO.GPUProcessor
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
@@ -99,7 +99,7 @@
|
||||
Run the optimizer on a :ref:`Processor` to create a new :cpp:class:`:ref:`Processor``. It is usually not necessary to call this since getting a :ref:`CPUProcessor` or :ref:`GPUProcessor` will also optimize. However if you need both, calling this method first makes getting a CPU and GPU :ref:`Processor` faster since the optimization is effectively only done once.
|
||||
|
||||
|
||||
.. py:method:: Processor.getProcessorMetadata(self: PyOpenColorIO.Processor) -> OpenColorIO_v2_0rc1::ProcessorMetadata
|
||||
.. py:method:: Processor.getProcessorMetadata(self: PyOpenColorIO.Processor) -> PyOpenColorIO.ProcessorMetadata
|
||||
:module: PyOpenColorIO
|
||||
|
||||
The :ref:`ProcessorMetadata` contains technical information such as the number of files and looks used in the processor.
|
||||
@@ -115,18 +115,16 @@
|
||||
True if the image transformation is non-separable. For example, if a change in red may also cause a change in green or blue.
|
||||
|
||||
|
||||
.. py:method:: Processor.hasDynamicProperty(*args, **kwargs)
|
||||
.. py:method:: Processor.hasDynamicProperty(self: PyOpenColorIO.Processor, type: PyOpenColorIO.DynamicPropertyType) -> bool
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Overloaded function.
|
||||
|
||||
1. hasDynamicProperty(self: PyOpenColorIO.Processor, type: PyOpenColorIO.DynamicPropertyType) -> bool
|
||||
|
||||
True if at least one dynamic property of that type exists.
|
||||
|
||||
2. hasDynamicProperty(self: PyOpenColorIO.Processor) -> bool
|
||||
|
||||
True if at least one dynamic property of that type exists.
|
||||
.. py:method:: Processor.isDynamic(self: PyOpenColorIO.Processor) -> bool
|
||||
:module: PyOpenColorIO
|
||||
|
||||
True if at least one dynamic property of any type exists and is dynamic.
|
||||
|
||||
|
||||
.. py:method:: Processor.isNoOp(self: PyOpenColorIO.Processor) -> bool
|
||||
|
||||
@@ -40,3 +40,8 @@
|
||||
:module: PyOpenColorIO
|
||||
:value: <ProcessorCacheFlags.PROCESSOR_CACHE_SHARE_DYN_PROPERTIES: 2>
|
||||
|
||||
|
||||
.. py:method:: ProcessorCacheFlags.value
|
||||
:module: PyOpenColorIO
|
||||
:property:
|
||||
|
||||
|
||||
@@ -26,3 +26,8 @@
|
||||
:module: PyOpenColorIO
|
||||
:value: <RangeStyle.RANGE_NO_CLAMP: 0>
|
||||
|
||||
|
||||
.. py:method:: RangeStyle.value
|
||||
:module: PyOpenColorIO
|
||||
:property:
|
||||
|
||||
|
||||
@@ -30,9 +30,11 @@
|
||||
Creates an instance of :ref:`RangeTransform`.
|
||||
|
||||
|
||||
.. py:method:: RangeTransform.__str__(self: PyOpenColorIO.RangeTransform) -> str
|
||||
.. py:method:: RangeTransform.__str__()
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Return str(self).
|
||||
|
||||
|
||||
.. py:method:: RangeTransform.equals(self: PyOpenColorIO.RangeTransform, other: PyOpenColorIO.RangeTransform) -> bool
|
||||
:module: PyOpenColorIO
|
||||
@@ -156,16 +158,14 @@
|
||||
Set the Range style to clamp or not input values.
|
||||
|
||||
|
||||
.. py:method:: RangeTransform.unsetMaxOutValue(*args, **kwargs)
|
||||
.. py:method:: RangeTransform.unsetMaxInValue(self: PyOpenColorIO.RangeTransform) -> None
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Overloaded function.
|
||||
Unset the maximum value for the input.
|
||||
|
||||
1. unsetMaxOutValue(self: PyOpenColorIO.RangeTransform) -> None
|
||||
|
||||
Unset the maximum value for the output.
|
||||
|
||||
2. unsetMaxOutValue(self: PyOpenColorIO.RangeTransform) -> None
|
||||
.. py:method:: RangeTransform.unsetMaxOutValue(self: PyOpenColorIO.RangeTransform) -> None
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Unset the maximum value for the output.
|
||||
|
||||
|
||||
@@ -26,3 +26,8 @@
|
||||
:module: PyOpenColorIO
|
||||
:value: <ReferenceSpaceType.REFERENCE_SPACE_SCENE: 0>
|
||||
|
||||
|
||||
.. py:method:: ReferenceSpaceType.value
|
||||
:module: PyOpenColorIO
|
||||
:property:
|
||||
|
||||
|
||||
@@ -47,3 +47,8 @@
|
||||
:module: PyOpenColorIO
|
||||
:value: <RGBCurveType.RGB_RED: 0>
|
||||
|
||||
|
||||
.. py:method:: RGBCurveType.value
|
||||
:module: PyOpenColorIO
|
||||
:property:
|
||||
|
||||
|
||||
@@ -31,3 +31,8 @@
|
||||
:module: PyOpenColorIO
|
||||
:value: <SearchReferenceSpaceType.SEARCH_REFERENCE_SPACE_SCENE: 0>
|
||||
|
||||
|
||||
.. py:method:: SearchReferenceSpaceType.value
|
||||
:module: PyOpenColorIO
|
||||
:property:
|
||||
|
||||
|
||||
@@ -3,10 +3,12 @@
|
||||
Copyright Contributors to the OpenColorIO Project.
|
||||
Do not edit! This file was automatically generated by share/docs/frozendoc.py.
|
||||
|
||||
.. py:function:: SetComputeHashFunction(hashFunction: std::function<std::basic_string<char,std::char_traits<char>,std::allocator<char> > __cdecl(std::basic_string<char,std::char_traits<char>,std::allocator<char> > const & __ptr64)>) -> None
|
||||
.. py:function:: SetComputeHashFunction(hashFunction: Callable[[str], str]) -> None
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Set the Compute Hash Function to use; otherwise, use the default.
|
||||
|
||||
|
||||
|
||||
:param ComputeHashFunction:
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
Copyright Contributors to the OpenColorIO Project.
|
||||
Do not edit! This file was automatically generated by share/docs/frozendoc.py.
|
||||
|
||||
.. py:function:: SetLoggingFunction(logFunction: std::function<void (char const*)>) -> None
|
||||
.. py:function:: SetLoggingFunction(logFunction: Callable[[str], None]) -> None
|
||||
:module: PyOpenColorIO
|
||||
|
||||
Set the logging function to use; otherwise, use the default (i.e. std::cerr).
|
||||
|
||||
@@ -15,10 +15,6 @@
|
||||
Initialize self. See help(type(self)) for accurate signature.
|
||||
|
||||
|
||||
.. py:method:: Transform.__str__(self: PyOpenColorIO.Transform) -> str
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: Transform.getDirection(self: PyOpenColorIO.Transform) -> PyOpenColorIO.TransformDirection
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
@@ -24,3 +24,8 @@
|
||||
:module: PyOpenColorIO
|
||||
:value: <TransformDirection.TRANSFORM_DIR_INVERSE: 1>
|
||||
|
||||
|
||||
.. py:method:: TransformDirection.value
|
||||
:module: PyOpenColorIO
|
||||
:property:
|
||||
|
||||
|
||||
@@ -164,3 +164,8 @@
|
||||
:module: PyOpenColorIO
|
||||
:value: <TransformType.TRANSFORM_TYPE_RANGE: 21>
|
||||
|
||||
|
||||
.. py:method:: TransformType.value
|
||||
:module: PyOpenColorIO
|
||||
:property:
|
||||
|
||||
|
||||
@@ -14,6 +14,8 @@
|
||||
|
||||
UNIFORM_BOOL :
|
||||
|
||||
UNIFORM_FLOAT3 : Array of 3 floats.
|
||||
|
||||
UNIFORM_VECTOR_FLOAT : Vector of floats (size is set by uniform).
|
||||
|
||||
UNIFORM_VECTOR_INT : Vector of int pairs (size is set by uniform).
|
||||
@@ -33,6 +35,11 @@
|
||||
:value: <UniformDataType.UNIFORM_DOUBLE: 0>
|
||||
|
||||
|
||||
.. py:attribute:: UniformDataType.UNIFORM_FLOAT3
|
||||
:module: PyOpenColorIO
|
||||
:value: <UniformDataType.UNIFORM_FLOAT3: 2>
|
||||
|
||||
|
||||
.. py:attribute:: UniformDataType.UNIFORM_UNKNOWN
|
||||
:module: PyOpenColorIO
|
||||
:value: <UniformDataType.UNIFORM_UNKNOWN: 5>
|
||||
@@ -47,3 +54,8 @@
|
||||
:module: PyOpenColorIO
|
||||
:value: <UniformDataType.UNIFORM_VECTOR_INT: 4>
|
||||
|
||||
|
||||
.. py:method:: UniformDataType.value
|
||||
:module: PyOpenColorIO
|
||||
:property:
|
||||
|
||||
|
||||
@@ -17,10 +17,6 @@
|
||||
2. __init__(self: PyOpenColorIO.ViewTransform, referenceSpace: PyOpenColorIO.ReferenceSpaceType = <ReferenceSpaceType.REFERENCE_SPACE_SCENE: 0>, name: str = '', family: str = '', description: str = '', toReference: PyOpenColorIO.Transform = None, fromReference: PyOpenColorIO.Transform = None, categories: List[str] = []) -> None
|
||||
|
||||
|
||||
.. py:method:: ViewTransform.__str__(self: PyOpenColorIO.ViewTransform) -> str
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
.. py:method:: ViewTransform.addCategory(self: PyOpenColorIO.ViewTransform, category: str) -> None
|
||||
:module: PyOpenColorIO
|
||||
|
||||
|
||||
@@ -24,3 +24,8 @@
|
||||
:module: PyOpenColorIO
|
||||
:value: <ViewTransformDirection.VIEWTRANSFORM_DIR_TO_REFERENCE: 0>
|
||||
|
||||
|
||||
.. py:method:: ViewTransformDirection.value
|
||||
:module: PyOpenColorIO
|
||||
:property:
|
||||
|
||||
|
||||
@@ -24,3 +24,8 @@
|
||||
:module: PyOpenColorIO
|
||||
:value: <ViewType.VIEW_SHARED: 0>
|
||||
|
||||
|
||||
.. py:method:: ViewType.value
|
||||
:module: PyOpenColorIO
|
||||
:property:
|
||||
|
||||
|
||||
@@ -6,7 +6,10 @@
|
||||
:members:
|
||||
:undoc-members:
|
||||
:special-members: __init__, __str__
|
||||
:exclude-members: ColorSpaceCategoryIterator
|
||||
:exclude-members: ColorSpaceCategoryIterator, ColorSpaceAliasIterator
|
||||
|
||||
.. autoclass:: PyOpenColorIO.ColorSpace.ColorSpaceCategoryIterator
|
||||
:special-members: __getitem__, __iter__, __len__, __next__
|
||||
|
||||
.. autoclass:: PyOpenColorIO.ColorSpace.ColorSpaceAliasIterator
|
||||
:special-members: __getitem__, __iter__, __len__, __next__
|
||||
|
||||
@@ -8,6 +8,10 @@
|
||||
:members:
|
||||
:undoc-members:
|
||||
:special-members: __init__, __str__
|
||||
:exclude-members: AddedColorSpaceIterator
|
||||
|
||||
.. autoclass:: PyOpenColorIO.ColorSpaceMenuHelper.AddedColorSpaceIterator
|
||||
:special-members: __getitem__, __iter__, __len__, __next__
|
||||
|
||||
.. autoclass:: PyOpenColorIO.ColorSpaceMenuHelper
|
||||
:members:
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
.. autoclass:: PyOpenColorIO.GpuShaderCreator
|
||||
:members:
|
||||
:undoc-members:
|
||||
:special-members: __init__
|
||||
:exclude-members: TextureType,
|
||||
TEXTURE_RED_CHANNEL,
|
||||
TEXTURE_RGB_CHANNEL,
|
||||
|
||||
@@ -9,8 +9,10 @@
|
||||
:exclude-members: TextureType,
|
||||
TEXTURE_RED_CHANNEL,
|
||||
TEXTURE_RGB_CHANNEL,
|
||||
UniformData,
|
||||
Texture,
|
||||
Texture3D,
|
||||
UniformIterator,
|
||||
TextureIterator,
|
||||
Texture3DIterator,
|
||||
DynamicPropertyIterator
|
||||
@@ -24,6 +26,10 @@
|
||||
.. py:method:: name() -> str
|
||||
:property:
|
||||
|
||||
.. autoclass:: PyOpenColorIO.GpuShaderDesc.UniformData
|
||||
:members:
|
||||
:undoc-members:
|
||||
|
||||
.. autoclass:: PyOpenColorIO.GpuShaderDesc.Texture
|
||||
:members:
|
||||
:undoc-members:
|
||||
@@ -32,6 +38,9 @@
|
||||
:members:
|
||||
:undoc-members:
|
||||
|
||||
.. autoclass:: PyOpenColorIO.GpuShaderDesc.UniformIterator
|
||||
:special-members: __getitem__, __iter__, __len__, __next__
|
||||
|
||||
.. autoclass:: PyOpenColorIO.GpuShaderDesc.TextureIterator
|
||||
:special-members: __getitem__, __iter__, __len__, __next__
|
||||
|
||||
|
||||
@@ -7,7 +7,10 @@
|
||||
:undoc-members:
|
||||
:special-members: __init__, __str__
|
||||
:inherited-members:
|
||||
:exclude-members: TransformIterator
|
||||
:exclude-members: TransformIterator, WriteFormatIterator
|
||||
|
||||
.. autoclass:: PyOpenColorIO.GroupTransform.WriteFormatIterator
|
||||
:special-members: __getitem__, __iter__, __len__, __next__
|
||||
|
||||
.. autoclass:: PyOpenColorIO.GroupTransform.TransformIterator
|
||||
:special-members: __getitem__, __iter__, __len__, __next__
|
||||
|
||||
@@ -52,7 +52,7 @@ Example Python API call:
|
||||
.. code-block:: python
|
||||
|
||||
look = OCIO.Look(name='di', processSpace='rclg16')
|
||||
t = OCIO.FileTransform('look_di.cc', interpolation=OCIO.Constants.INTERP_LINEAR)
|
||||
t = OCIO.FileTransform('look_di.cc', interpolation=OCIO.INTERP_LINEAR)
|
||||
look.setTransform(t)
|
||||
config.addLook(look)
|
||||
|
||||
|
||||
@@ -300,7 +300,7 @@ to use to control other types of tasks not listed below.
|
||||
|
||||
* ``color_picking`` - colors in a color-selection UI can be displayed
|
||||
in this space, while selecting colors in a different working space
|
||||
(e.g. ``scene_linear`` or ``texture_paint``)
|
||||
(e.g. ``scene_linear`` or ``texture_paint``).
|
||||
|
||||
* ``color_timing`` - color space used for applying color corrections,
|
||||
e.g. user-specified grade within an image viewer (if the application
|
||||
@@ -308,32 +308,32 @@ to use to control other types of tasks not listed below.
|
||||
|
||||
* ``compositing_log`` - a log color space used for certain processing
|
||||
operations (plate resizing, pulling keys, degrain, etc). Used by the
|
||||
OCIOLogConvert Nuke node
|
||||
OCIOLogConvert Nuke node.
|
||||
|
||||
* ``data`` - used when writing data outputs such as normals, depth
|
||||
data, and other "non color" data. The color space in this role should
|
||||
typically have ``data: true`` specified, so no color transforms are
|
||||
applied
|
||||
applied.
|
||||
|
||||
* ``default`` - when ``strictparsing: false``, this color space is used
|
||||
as a fallback. If not defined, the ``scene_linear`` role is used
|
||||
as a fallback.
|
||||
|
||||
* ``matte_paint`` - color space which matte-paintings are created in
|
||||
(for more information, :ref:`see the guide on baking ICC profiles
|
||||
for Photoshop <userguide-bakelut-photoshop>`, and
|
||||
:ref:`config-spivfx`)
|
||||
:ref:`config-spivfx`).
|
||||
|
||||
* ``reference`` - the color space against which the other color spaces
|
||||
are defined
|
||||
are defined.
|
||||
|
||||
.. note::
|
||||
The reference role has sometimes been misinterpreted as being the
|
||||
space in which "reference art" is stored in.
|
||||
|
||||
* ``scene_linear`` - the scene-referred linear-to-light color space,
|
||||
often the same as the reference space (see:ref:`faq-terminology`)
|
||||
often the same as the reference space (see:ref:`faq-terminology`).
|
||||
|
||||
* ``texture_paint`` - similar to ``matte_paint`` but for painting
|
||||
textures for 3D objects (see the description of texture painting in
|
||||
:ref:`SPI's pipeline <config-spipipeline-texture>`)
|
||||
:ref:`SPI's pipeline <config-spipipeline-texture>`).
|
||||
|
||||
|
||||
@@ -115,7 +115,7 @@ determine the colorspace ``lnf`` (it being the right-most substring
|
||||
containing a colorspace name)
|
||||
|
||||
However, if the colorspace cannot be determined and ``strictparsing:
|
||||
true``, it will produce an error.
|
||||
true``, it will return an empty string.
|
||||
|
||||
If the colorspace cannot be determined and ``strictparsing: false``,
|
||||
the default role will be used. This allows unhandled images to operate
|
||||
|
||||
@@ -93,15 +93,16 @@ Python
|
||||
import PyOpenColorIO as OCIO
|
||||
|
||||
try:
|
||||
config = OCIO.GetCurrentConfig()
|
||||
processor = config.getProcessor(OCIO.Constants.ROLE_COMPOSITING_LOG,
|
||||
OCIO.Constants.ROLE_SCENE_LINEAR)
|
||||
cpu = processor->getDefaultCPUProcessor()
|
||||
config = OCIO.GetCurrentConfig()
|
||||
processor = config.getProcessor(OCIO.ROLE_COMPOSITING_LOG,
|
||||
OCIO.ROLE_SCENE_LINEAR)
|
||||
cpu = processor.getDefaultCPUProcessor()
|
||||
|
||||
# Apply the color transform to the existing RGBA pixel data
|
||||
img = cpu.applyRGBA(img)
|
||||
except Exception, e:
|
||||
print "OpenColorIO Error",e
|
||||
# Apply the color transform to the existing RGBA pixel data
|
||||
img = [1, 0, 0, 0]
|
||||
img = cpu.applyRGBA(img)
|
||||
except Exception as e:
|
||||
print("OpenColorIO Error: ", e)
|
||||
|
||||
.. _usage_displayimage:
|
||||
|
||||
@@ -137,17 +138,18 @@ C++
|
||||
|
||||
try
|
||||
{
|
||||
OCIO::ConstConfigRcPtr config = OCIO::GetCurrentConfig();
|
||||
OCIO::ConstConfigRcPtr config = OCIO::GetCurrentConfig();
|
||||
|
||||
const char * display = config->getDefaultDisplay();
|
||||
const char * view = config->getDefaultView(display);
|
||||
const char * display = config->getDefaultDisplay();
|
||||
const char * view = config->getDefaultView(display);
|
||||
|
||||
OCIO::ConstProcessorRcPtr processor = config->getProcessor(OCIO::ROLE_SCENE_LINEAR,
|
||||
display, view);
|
||||
OCIO::ConstCPUProcessorRcPtr cpu = processor->getDefaultCPUProcessor();
|
||||
OCIO::ConstProcessorRcPtr processor = config->getProcessor(OCIO::ROLE_SCENE_LINEAR,
|
||||
display, view,
|
||||
OCIO::TRANSFORM_DIR_FORWARD);
|
||||
OCIO::ConstCPUProcessorRcPtr cpu = processor->getDefaultCPUProcessor();
|
||||
|
||||
OCIO::PackedImageDesc img(imageData, width, height, 4);
|
||||
cpu->apply(img);
|
||||
OCIO::PackedImageDesc img(imageData, width, height, 4);
|
||||
cpu->apply(img);
|
||||
}
|
||||
catch(OCIO::Exception & exception)
|
||||
{
|
||||
@@ -159,21 +161,21 @@ Python
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
import PyOpenColorIO as OCIO
|
||||
import PyOpenColorIO as OCIO
|
||||
|
||||
try:
|
||||
config = OCIO.GetCurrentConfig()
|
||||
config = OCIO.GetCurrentConfig()
|
||||
|
||||
display = config.getDefaultDisplay()
|
||||
view = config.getDefaultView(display)
|
||||
display = config.getDefaultDisplay()
|
||||
view = config.getDefaultView(display)
|
||||
|
||||
processor = config.getProcessor(OCIO.Constants.ROLE_SCENE_LINEAR, display, view)
|
||||
cpu = processor.getDefaultCPUProcessor()
|
||||
processor = config.getProcessor(OCIO.ROLE_SCENE_LINEAR, display, view, OCIO.TRANSFORM_DIR_FORWARD)
|
||||
cpu = processor.getDefaultCPUProcessor()
|
||||
|
||||
imageData = [1, 0, 0]
|
||||
cpu.applyRGB(img)
|
||||
except Exception, e:
|
||||
print "OpenColorIO Error",e
|
||||
img = [1, 0, 0]
|
||||
cpu.applyRGB(img)
|
||||
except Exception as e:
|
||||
print("OpenColorIO Error: ", e)
|
||||
|
||||
Displaying an image, using the CPU (Full Display Pipeline)
|
||||
**********************************************************
|
||||
@@ -246,30 +248,30 @@ Python
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
import PyOpenColorIO as OCIO
|
||||
import PyOpenColorIO as OCIO
|
||||
|
||||
# Step 1: Get the config
|
||||
config = OCIO.GetCurrentConfig()
|
||||
# Step 1: Get the config
|
||||
config = OCIO.GetCurrentConfig()
|
||||
|
||||
# Step 2: Lookup the display ColorSpace
|
||||
display = config.getDefaultDisplay()
|
||||
view = config.getDefaultView(display)
|
||||
# Step 2: Lookup the display ColorSpace
|
||||
display = config.getDefaultDisplay()
|
||||
view = config.getDefaultView(display)
|
||||
|
||||
# Step 3: Create a DisplayTransform, and set the input, display, and view
|
||||
# (This example assumes the input is scene linear. Adapt as needed.)
|
||||
# Step 3: Create a DisplayViewTransform, and set the input, display, and view
|
||||
# (This example assumes the input is a role. Adapt as needed.)
|
||||
|
||||
transform = OCIO.DisplayTransform()
|
||||
transform.setInputColorSpaceName(OCIO.Constants.ROLE_SCENE_LINEAR)
|
||||
transform.setDisplay(display)
|
||||
transform.setView(view)
|
||||
transform = OCIO.DisplayViewTransform()
|
||||
transform.setSrc(OCIO.Constants.ROLE_SCENE_LINEAR)
|
||||
transform.setDisplay(display)
|
||||
transform.setView(view)
|
||||
|
||||
# Step 4: Create the processor
|
||||
processor = config.getProcessor(transform)
|
||||
cpu = processor.getDefaultCPUProcessor()
|
||||
# Step 4: Create the processor
|
||||
processor = config.getProcessor(transform)
|
||||
cpu = processor.getDefaultCPUProcessor()
|
||||
|
||||
# Step 5: Apply the color transform to an existing RGB pixel
|
||||
imageData = [1, 0, 0]
|
||||
print cpu.applyRGB(imageData)
|
||||
# Step 5: Apply the color transform to an existing RGB pixel
|
||||
imageData = [1, 0, 0]
|
||||
print(cpu.applyRGB(imageData))
|
||||
|
||||
|
||||
Displaying an image, using the GPU
|
||||
|
||||
@@ -63,15 +63,15 @@ default, cmake will try to install all of the items labelled with * and so
|
||||
it is not necessary to install those items manually:
|
||||
|
||||
- cmake >= 3.12
|
||||
- \*Expat >= 2.2.5 (XML parser for CDL/CLF/CTF)
|
||||
- \*Expat >= 2.2.8 (XML parser for CDL/CLF/CTF)
|
||||
- \*yaml-cpp >= 0.6.3 (YAML parser for Configs)
|
||||
- \*IlmBase (Half only) >= 2.3.0 (for half domain LUTs)
|
||||
- \*IlmBase (Half only) >= 2.4.0 (for half domain LUTs)
|
||||
- \*pystring >= 1.1.3
|
||||
|
||||
Some optional components also depend on:
|
||||
|
||||
- \*Little CMS >= 2.2 (for ociobakelut ICC profile baking)
|
||||
- \*pybind11 >= 2.4.3 (for the Python bindings)
|
||||
- \*pybind11 >= 2.6.1 (for the Python bindings)
|
||||
- Python >= 2.7 (for the Python bindings)
|
||||
- Python >= 3.7 (for the docs, with the following PyPi packages)
|
||||
- Sphinx
|
||||
|
||||
@@ -2,13 +2,22 @@
|
||||
# Copyright Contributors to the OpenColorIO Project.
|
||||
|
||||
configure_file("OpenColorABI.h.in" "${CMAKE_CURRENT_BINARY_DIR}/OpenColorABI.h" @ONLY)
|
||||
add_library(public_api INTERFACE)
|
||||
add_library(OpenColorIOHeaders INTERFACE)
|
||||
|
||||
set_property(TARGET public_api
|
||||
PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}/..;${CMAKE_CURRENT_SOURCE_DIR};${CMAKE_CURRENT_BINARY_DIR};${CMAKE_CURRENT_BINARY_DIR}/OpenColorIO
|
||||
set(BUILD_INCLUDES
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/..
|
||||
${CMAKE_CURRENT_SOURCE_DIR}
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
${CMAKE_CURRENT_BINARY_DIR}/OpenColorIO
|
||||
)
|
||||
|
||||
add_dependencies(public_api "${CMAKE_CURRENT_BINARY_DIR}/OpenColorABI.h")
|
||||
target_include_directories(OpenColorIOHeaders
|
||||
INTERFACE
|
||||
"$<BUILD_INTERFACE:${BUILD_INCLUDES}>"
|
||||
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>"
|
||||
)
|
||||
|
||||
add_dependencies(OpenColorIOHeaders "${CMAKE_CURRENT_BINARY_DIR}/OpenColorABI.h")
|
||||
|
||||
# public interface
|
||||
|
||||
@@ -17,3 +26,7 @@ list(APPEND core_export_headers ${CMAKE_CURRENT_BINARY_DIR}/OpenColorABI.h)
|
||||
|
||||
install(FILES ${core_export_headers}
|
||||
DESTINATION include/OpenColorIO)
|
||||
|
||||
install(TARGETS OpenColorIOHeaders
|
||||
EXPORT ${PROJECT_NAME}_EXPORTED_TARGETS
|
||||
)
|
||||
|
||||
@@ -227,7 +227,7 @@ public:
|
||||
* 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.
|
||||
*/
|
||||
virtual const char * getUIName(size_t idx) const noexcept = 0;;
|
||||
virtual const char * getUIName(size_t idx) const noexcept = 0;
|
||||
|
||||
/**
|
||||
* Get the index of the element of a given name. Return (size_t)-1 name if NULL or empty, or if
|
||||
|
||||
+170
-106
@@ -994,7 +994,8 @@ public:
|
||||
*/
|
||||
void setFileRules(ConstFileRulesRcPtr fileRules);
|
||||
|
||||
/// Get the color space of the first rule that matched filePath.
|
||||
/// Get the color space of the first rule that matched filePath. (For v1 configs, this is
|
||||
/// equivalent to calling parseColorSpaceFromString with strictparsing set to false.)
|
||||
const char * getColorSpaceFromFilepath(const char * filePath) const;
|
||||
|
||||
/**
|
||||
@@ -1149,64 +1150,56 @@ private:
|
||||
extern OCIOEXPORT std::ostream& operator<< (std::ostream&, const Config&);
|
||||
|
||||
|
||||
|
||||
// TODO: Move to .rst
|
||||
// FileRules
|
||||
// *********
|
||||
// The File Rules are a set of filepath to color space mappings that are evaluated
|
||||
// from first to last. The first rule to match is what determines which color space is
|
||||
// returned. There are four types of rules available. Each rule type has a name key that may
|
||||
// be used by applications to refer to that rule. Name values must be unique i.e. using a
|
||||
// case insensitive comparison. The other keys depend on the rule type:
|
||||
//
|
||||
// - Basic Rule: This is the basic rule type that uses Unix glob style pattern matching and
|
||||
// is thus very easy to use. It contains the keys:
|
||||
//
|
||||
// * name: Name of the rule
|
||||
//
|
||||
// * colorspace: Color space name to be returned.
|
||||
//
|
||||
// * pattern: Glob pattern to be used for the main part of the name/path.
|
||||
//
|
||||
// * extension: Glob pattern to be used for the file extension. Note that if glob tokens
|
||||
// are not used, the extension will be used in a non-case-sensitive way by default.
|
||||
//
|
||||
// - Regex Rule: This is similar to the basic rule but allows additional capabilities for
|
||||
// power-users. It contains the keys:
|
||||
//
|
||||
// * name: Name of the rule
|
||||
//
|
||||
// * colorspace: Color space name to be returned.
|
||||
//
|
||||
// * regex: Regular expression to be evaluated.
|
||||
//
|
||||
// - OCIO v1 style Rule: This rule allows the use of the OCIO v1 style, where the string
|
||||
// is searched for color space names from the config. This rule may occur 0 or 1 times
|
||||
// in the list. The position in the list prioritizes it with respect to the other rules.
|
||||
// StrictParsing is not used. If no color space is found in the path, the rule will not
|
||||
// match and the next rule will be considered.
|
||||
// \see FileRules::insertPathSearchRule.
|
||||
// It has the key:
|
||||
//
|
||||
// * name: Must be "ColorSpaceNamePathSearch".
|
||||
//
|
||||
// - Default Rule: The file_rules must always end with this rule. If no prior rules match,
|
||||
// this rule specifies the color space applications will use.
|
||||
// \see FileRules::setDefaultRuleColorSpace.
|
||||
// It has the keys:
|
||||
//
|
||||
// * name: must be "Default".
|
||||
//
|
||||
// * colorspace : Color space name to be returned.
|
||||
//
|
||||
// Custom string keys and associated string values may be used to convey app or
|
||||
// workflow-specific information, e.g. whether the color space should be left as is
|
||||
// or converted into a working space.
|
||||
//
|
||||
// Getters and setters are using the rule position, they will throw if the position is not
|
||||
// valid. If the rule at the specified position does not implement the requested property
|
||||
// getter will return NULL and setter will throw.
|
||||
//
|
||||
/**
|
||||
* \brief
|
||||
* The File Rules are a set of filepath to color space mappings that are evaluated
|
||||
* from first to last. The first rule to match is what determines which color space is
|
||||
* returned. There are four types of rules available. Each rule type has a name key that may
|
||||
* be used by applications to refer to that rule. Name values must be unique i.e. using a
|
||||
* case insensitive comparison. The other keys depend on the rule type:
|
||||
*
|
||||
* * *Basic Rule*: This is the basic rule type that uses Unix glob style pattern matching and
|
||||
* is thus very easy to use. It contains the keys:
|
||||
* * name: Name of the rule
|
||||
* * colorspace: Color space name to be returned.
|
||||
* * pattern: Glob pattern to be used for the main part of the name/path.
|
||||
* * extension: Glob pattern to be used for the file extension. Note that if glob tokens
|
||||
* are not used, the extension will be used in a non-case-sensitive way by default.
|
||||
*
|
||||
* * *Regex Rule*: This is similar to the basic rule but allows additional capabilities for
|
||||
* power-users. It contains the keys:
|
||||
* * name: Name of the rule
|
||||
* * colorspace: Color space name to be returned.
|
||||
* * regex: Regular expression to be evaluated.
|
||||
*
|
||||
* * *OCIO v1 style Rule*: This rule allows the use of the OCIO v1 style, where the string
|
||||
* is searched for color space names from the config. This rule may occur 0 or 1 times
|
||||
* in the list. The position in the list prioritizes it with respect to the other rules.
|
||||
* StrictParsing is not used. If no color space is found in the path, the rule will not
|
||||
* match and the next rule will be considered.
|
||||
* see \ref insertPathSearchRule.
|
||||
* It has the key:
|
||||
* * name: Must be "ColorSpaceNamePathSearch".
|
||||
*
|
||||
* * *Default Rule*: The file_rules must always end with this rule. If no prior rules match,
|
||||
* this rule specifies the color space applications will use.
|
||||
* see \ref setDefaultRuleColorSpace.
|
||||
* It has the keys:
|
||||
* * name: must be "Default".
|
||||
* * colorspace : Color space name to be returned.
|
||||
*
|
||||
* Custom string keys and associated string values may be used to convey app or
|
||||
* workflow-specific information, e.g. whether the color space should be left as is
|
||||
* or converted into a working space.
|
||||
*
|
||||
* Getters and setters are using the rule position, they will throw if the position is not
|
||||
* valid. If the rule at the specified position does not implement the requested property
|
||||
* getter will return NULL and setter will throw.
|
||||
*
|
||||
* When loading a v1 config, a set of FileRules are created with ColorSpaceNamePathSearch followed
|
||||
* by the Default rule pointing to the default role. This allows getColorSpaceFromFilepath to emulate
|
||||
* OCIO v1 code that used parseColorSpaceFromString with strictparsing set to false.
|
||||
*/
|
||||
|
||||
class OCIOEXPORT FileRules
|
||||
{
|
||||
@@ -1335,30 +1328,28 @@ extern OCIOEXPORT std::ostream & operator<< (std::ostream &, const FileRules &);
|
||||
|
||||
|
||||
|
||||
|
||||
// TODO: Move to .rst
|
||||
//
|
||||
// ViewingRules
|
||||
// ************
|
||||
// Viewing Rules allow config authors to filter the list of views an application should offer
|
||||
// based on the color space of an image. For example, a config may define a large number of
|
||||
// views but not all of them may be appropriate for use with all color spaces. E.g., some views
|
||||
// may be intended for use with scene-linear color space encodings and others with video color
|
||||
// space encodings.
|
||||
//
|
||||
// Each rule has a name key for applications to refer to the rule. Name values must be unique
|
||||
// (using case insensitive comparison). Viewing Rules may also have the following keys:
|
||||
//
|
||||
// * colorspaces: Either a single colorspace name or a list of names.
|
||||
//
|
||||
// * encodings: One or more strings to be found in the colorspace's encoding attribute.
|
||||
// Either this attribute or colorspaces must be present, but not both.
|
||||
//
|
||||
// * custom : Allows arbitrary key / value string pairs, similar to FileRules.
|
||||
//
|
||||
// Getters and setters are using the rule position, they will throw if the position is not
|
||||
// valid.
|
||||
|
||||
/**
|
||||
* ViewingRules
|
||||
*
|
||||
* Viewing Rules allow config authors to filter the list of views an application should offer
|
||||
* based on the color space of an image. For example, a config may define a large number of
|
||||
* views but not all of them may be appropriate for use with all color spaces. E.g., some views
|
||||
* may be intended for use with scene-linear color space encodings and others with video color
|
||||
* space encodings.
|
||||
*
|
||||
* Each rule has a name key for applications to refer to the rule. Name values must be unique
|
||||
* (using case insensitive comparison). Viewing Rules may also have the following keys:
|
||||
*
|
||||
* * colorspaces: Either a single colorspace name or a list of names.
|
||||
*
|
||||
* * encodings: One or more strings to be found in the colorspace's encoding attribute.
|
||||
* Either this attribute or colorspaces must be present, but not both.
|
||||
*
|
||||
* * custom : Allows arbitrary key / value string pairs, similar to FileRules.
|
||||
*
|
||||
* Getters and setters are using the rule position, they will throw if the position is not
|
||||
* valid.
|
||||
*/
|
||||
class OCIOEXPORT ViewingRules
|
||||
{
|
||||
public:
|
||||
@@ -2115,14 +2106,15 @@ public:
|
||||
*
|
||||
* \note The dynamic properties are a convenient way to change on-the-fly values without
|
||||
* generating again and again a CPU or GPU processor instance. Color transformations can
|
||||
* contain dynamic properties from a :cpp:class:`ExposureContrastTransform` for example.
|
||||
* So, :cpp:class:`Processor`, :cpp:class:`CPUProcessor` and :cpp:class:`GpuShaderCreator`
|
||||
* all have ways to manage dynamic properties. However, the transform dynamic properties
|
||||
* are decoupled between the types of processor instances so that the same
|
||||
* :cpp:class:`Processor` can generate several independent CPU and/or GPU processor
|
||||
* instances i.e. changing the value of the exposure dynamic property from a CPU processor
|
||||
* instance does not affect the corresponding GPU processor instance. Processor creation will
|
||||
* throw if there are more than one property of a given type.
|
||||
* contain dynamic properties from a ExposureContrastTransform for example.
|
||||
* So, Processor, CPUProcessor and GpuShaderCreator all have ways to manage dynamic
|
||||
* properties. However, the transform dynamic properties are decoupled between the types
|
||||
* of processor instances so that the same Processor can generate several independent CPU
|
||||
* and/or GPU processor instances i.e. changing the value of the exposure dynamic property
|
||||
* from a CPU processor instance does not affect the corresponding GPU processor instance.
|
||||
* Processor creation will log a warning if there are more than one property of a given type.
|
||||
* There may be more than one property of a given type, but only one will respond to parameter
|
||||
* updates, the others will use their original parameter values.
|
||||
*/
|
||||
DynamicPropertyRcPtr getDynamicProperty(DynamicPropertyType type) const;
|
||||
/// True if at least one dynamic property of that type exists.
|
||||
@@ -2150,10 +2142,18 @@ public:
|
||||
// GPU Renderer
|
||||
//
|
||||
|
||||
/// Get an optimized \ref GPUProcessor instance.
|
||||
/// Get an optimized GPUProcessor instance.
|
||||
ConstGPUProcessorRcPtr getDefaultGPUProcessor() const;
|
||||
ConstGPUProcessorRcPtr getOptimizedGPUProcessor(OptimizationFlags oFlags) const;
|
||||
|
||||
/**
|
||||
* Get an optimized GPUProcessor instance that will emulate the OCIO v1 GPU path. This approach
|
||||
* bakes some of the ops into a single Lut3D and so is less accurate than the current GPU
|
||||
* processing methods.
|
||||
*/
|
||||
ConstGPUProcessorRcPtr getOptimizedLegacyGPUProcessor(OptimizationFlags oFlags,
|
||||
unsigned edgelen) const;
|
||||
|
||||
//
|
||||
// CPU Renderer
|
||||
//
|
||||
@@ -2300,7 +2300,7 @@ public:
|
||||
/// Extract & Store the shader information to implement the color processing.
|
||||
void extractGpuShaderInfo(GpuShaderDescRcPtr & shaderDesc) const;
|
||||
|
||||
/// Extract the shader information using a custom \ref GpuShaderCreator class.
|
||||
/// Extract the shader information using a custom GpuShaderCreator class.
|
||||
void extractGpuShaderInfo(GpuShaderCreatorRcPtr & shaderCreator) const;
|
||||
|
||||
GPUProcessor(const GPUProcessor &) = delete;
|
||||
@@ -2711,15 +2711,59 @@ private:
|
||||
// GpuShaderCreator
|
||||
/**
|
||||
* Inherit from the class to fully customize the implementation of a GPU shader program
|
||||
* from a color transformation.
|
||||
* from a color transformation.
|
||||
*
|
||||
* When no customizations are needed then the :cpp:class:`GpuShaderDesc` is a better choice.
|
||||
* When no customizations are needed and the intermediate in-memory step is acceptable then the
|
||||
* \ref GpuShaderDesc is a better choice.
|
||||
*
|
||||
* To better decouple the DynamicProperties from their GPU implementation, the code provides
|
||||
* several addUniform() methods i.e. one per access function types. For example, an
|
||||
* ExposureContrastTransform instance owns three DynamicProperties and they are all
|
||||
* implemented by a double. When creating the GPU fragment shader program, the addUniform() with
|
||||
* GpuShaderCreator::DoubleGetter is called when property is dynamic, up to three times.
|
||||
* \note
|
||||
* To better decouple the \ref DynamicProperties from their GPU implementation, the code provides
|
||||
* several addUniform() methods i.e. one per access function types. For example, an
|
||||
* \ref ExposureContrastTransform instance owns three \ref DynamicProperties and they are all
|
||||
* implemented by a double. When creating the GPU fragment shader program, the addUniform() with
|
||||
* GpuShaderCreator::DoubleGetter is called when property is dynamic, up to three times.
|
||||
*
|
||||
* **An OCIO shader program could contain:**
|
||||
*
|
||||
* * A declaration part e.g., uniform sampled3D tex3;
|
||||
*
|
||||
* * Some helper methods
|
||||
*
|
||||
* * The OCIO shader function may be broken down as:
|
||||
*
|
||||
* * The function header e.g., void OCIODisplay(in vec4 inColor) {
|
||||
* * The function body e.g., vec4 outColor.rgb = texture3D(tex3, inColor.rgb).rgb;
|
||||
* * The function footer e.g., return outColor; }
|
||||
*
|
||||
*
|
||||
* **Usage Example:**
|
||||
*
|
||||
* Below is a code snippet to highlight the different parts of the OCIO shader program.
|
||||
*
|
||||
* \code{.cpp}
|
||||
*
|
||||
* // All global declarations
|
||||
* uniform sampled3D tex3;
|
||||
*
|
||||
* // All helper methods
|
||||
* vec3 computePosition(vec3 color)
|
||||
* {
|
||||
* vec3 coords = color;
|
||||
* // Some processing...
|
||||
* return coords;
|
||||
* }
|
||||
*
|
||||
* // The shader function
|
||||
* vec4 OCIODisplay(in vec4 inColor) //
|
||||
* { // Function Header
|
||||
* vec4 outColor = inColor; //
|
||||
*
|
||||
* outColor.rgb = texture3D(tex3, computePosition(inColor.rgb)).rgb;
|
||||
*
|
||||
* return outColor; // Function Footer
|
||||
* } //
|
||||
*
|
||||
* \endcode
|
||||
*/
|
||||
class OCIOEXPORT GpuShaderCreator
|
||||
{
|
||||
@@ -2765,8 +2809,8 @@ public:
|
||||
virtual unsigned getTextureMaxWidth() const noexcept = 0;
|
||||
|
||||
/**
|
||||
* To avoid texture/unform name clashes always append
|
||||
* an increasing number to the resource name.
|
||||
* To avoid global texture sampler and uniform name clashes always append an increasing index
|
||||
* to the resource name.
|
||||
*/
|
||||
unsigned getNextResourceIndex() noexcept;
|
||||
|
||||
@@ -2816,10 +2860,17 @@ public:
|
||||
|
||||
enum TextureType
|
||||
{
|
||||
TEXTURE_RED_CHANNEL, ///< Only use the red channel of the texture
|
||||
TEXTURE_RGB_CHANNEL
|
||||
TEXTURE_RED_CHANNEL, ///< Only need a red channel texture
|
||||
TEXTURE_RGB_CHANNEL ///< Need a RGB texture
|
||||
};
|
||||
|
||||
/**
|
||||
* Add a 2D texture (1D texture if height equals 1).
|
||||
*
|
||||
* \note
|
||||
* The 'values' parameter contains the LUT data which must be used as-is as the dimensions and
|
||||
* origin are hard-coded in the fragment shader program. So, it means one GPU texture per entry.
|
||||
**/
|
||||
virtual void addTexture(const char * textureName,
|
||||
const char * samplerName,
|
||||
unsigned width, unsigned height,
|
||||
@@ -2827,6 +2878,14 @@ public:
|
||||
Interpolation interpolation,
|
||||
const float * values) = 0;
|
||||
|
||||
/**
|
||||
* Add a 3D texture with RGB channel type.
|
||||
*
|
||||
* \note
|
||||
* The 'values' parameter contains the 3D LUT data which must be used as-is as the dimension
|
||||
* and origin are hard-coded in the fragment shader program. So, it means one GPU 3D texture
|
||||
* per entry.
|
||||
**/
|
||||
virtual void add3DTexture(const char * textureName,
|
||||
const char * samplerName,
|
||||
unsigned edgelen,
|
||||
@@ -3044,7 +3103,7 @@ protected:
|
||||
// //
|
||||
// OCIO::GpuShaderDescRcPtr shaderDesc = MyCustomGpuShader::Create();
|
||||
//
|
||||
// shaderDesc->setLanguage(OCIO::GPU_LANGUAGE_GLSL_1_3);
|
||||
// shaderDesc->setLanguage(OCIO::GPU_LANGUAGE_GLSL_1_2);
|
||||
// shaderDesc->setFunctionName("OCIODisplay");
|
||||
//
|
||||
// // Step 2: Collect the shader program information for a specific processor
|
||||
@@ -3079,7 +3138,12 @@ class OCIOEXPORT GpuShaderDesc : public GpuShaderCreator
|
||||
{
|
||||
public:
|
||||
|
||||
/// Create the legacy shader description.
|
||||
/**
|
||||
* Create the legacy GPU shader description. This is now deprecated (to be removed in
|
||||
* the coming release i.e. 2.1.x).
|
||||
* Do not use it because that's broken. So, this method has been replaced by the pair
|
||||
* Processor::getOptimizedLegacyGPUProcessor() and GpuShaderDesc::CreateShaderDesc().
|
||||
*/
|
||||
static GpuShaderDescRcPtr CreateLegacyShaderDesc(unsigned edgelen);
|
||||
|
||||
/// Create the default shader description.
|
||||
|
||||
@@ -1088,7 +1088,10 @@ extern OCIOEXPORT std::ostream & operator<<(std::ostream &, const FileTransform
|
||||
class OCIOEXPORT FixedFunctionTransform : public Transform
|
||||
{
|
||||
public:
|
||||
static FixedFunctionTransformRcPtr Create();
|
||||
static FixedFunctionTransformRcPtr Create(FixedFunctionStyle style);
|
||||
static FixedFunctionTransformRcPtr Create(FixedFunctionStyle style,
|
||||
const double * params,
|
||||
size_t num);
|
||||
|
||||
TransformType getTransformType() const noexcept override { return TRANSFORM_TYPE_FIXED_FUNCTION; }
|
||||
|
||||
@@ -1360,7 +1363,6 @@ public:
|
||||
* @endcode
|
||||
*/
|
||||
virtual void write(const ConstConfigRcPtr & config,
|
||||
const ConstContextRcPtr & context,
|
||||
const char * formatName,
|
||||
std::ostream & os) const = 0;
|
||||
|
||||
@@ -1385,7 +1387,7 @@ extern OCIOEXPORT std::ostream & operator<<(std::ostream &, const GroupTransform
|
||||
|
||||
|
||||
/**
|
||||
* Applies a logarithm with an affine transform before and after.
|
||||
* Applies a logarithm with an affine transform before and after.
|
||||
* Represents the Cineon lin-to-log type transforms::
|
||||
*
|
||||
* logSideSlope * log( linSideSlope * color + linSideOffset, base) + logSideOffset
|
||||
@@ -1433,8 +1435,8 @@ extern OCIOEXPORT std::ostream & operator<<(std::ostream &, const LogAffineTrans
|
||||
|
||||
|
||||
/**
|
||||
* Same as :cpp:class:`LogAffineTransform` but with the addition of a linear segment
|
||||
* near black. This formula is used for many camera logs (e.g., LogC) as well as ACEScct.
|
||||
* Same as LogAffineTransform but with the addition of a linear segment near black. This formula
|
||||
* is used for many camera logs (e.g., LogC) as well as ACEScct.
|
||||
*
|
||||
* * The linSideBreak specifies the point on the linear axis where the log and linear
|
||||
* segments meet. It must be set (there is no default).
|
||||
@@ -1444,7 +1446,8 @@ extern OCIOEXPORT std::ostream & operator<<(std::ostream &, const LogAffineTrans
|
||||
class OCIOEXPORT LogCameraTransform : public Transform
|
||||
{
|
||||
public:
|
||||
static LogCameraTransformRcPtr Create();
|
||||
/// LinSideBreak must be set for the transform to be valid (there is no default).
|
||||
static LogCameraTransformRcPtr Create(const double(&linSideBreakValues)[3]);
|
||||
|
||||
TransformType getTransformType() const noexcept override { return TRANSFORM_TYPE_LOG_CAMERA; }
|
||||
|
||||
@@ -1457,8 +1460,7 @@ public:
|
||||
virtual double getBase() const noexcept = 0;
|
||||
virtual void setBase(double base) noexcept = 0;
|
||||
|
||||
// !rst:: **Get/Set values for the R, G, B components**
|
||||
|
||||
/// Get/Set values for the R, G, B components.
|
||||
virtual void getLogSideSlopeValue(double(&values)[3]) const noexcept = 0;
|
||||
virtual void setLogSideSlopeValue(const double(&values)[3]) noexcept = 0;
|
||||
virtual void getLogSideOffsetValue(double(&values)[3]) const noexcept = 0;
|
||||
@@ -1467,9 +1469,7 @@ public:
|
||||
virtual void setLinSideSlopeValue(const double(&values)[3]) noexcept = 0;
|
||||
virtual void getLinSideOffsetValue(double(&values)[3]) const noexcept = 0;
|
||||
virtual void setLinSideOffsetValue(const double(&values)[3]) noexcept = 0;
|
||||
|
||||
/// Return true if LinSideBreak values were set, false if they were not.
|
||||
virtual bool getLinSideBreakValue(double(&values)[3]) const noexcept = 0;
|
||||
virtual void getLinSideBreakValue(double(&values)[3]) const noexcept = 0;
|
||||
virtual void setLinSideBreakValue(const double(&values)[3]) noexcept = 0;
|
||||
|
||||
/// Return true if LinearSlope values were set, false if they were not.
|
||||
@@ -1680,7 +1680,7 @@ public:
|
||||
* feature that was used in some versions of ACES. This adjusts the hue
|
||||
* of the result to approximately match the input.
|
||||
*/
|
||||
virtual void setHueAdjust(Lut1DHueAdjust algo) noexcept = 0;
|
||||
virtual void setHueAdjust(Lut1DHueAdjust algo) = 0;
|
||||
|
||||
virtual Interpolation getInterpolation() const = 0;
|
||||
virtual void setInterpolation(Interpolation algo) = 0;
|
||||
|
||||
@@ -417,8 +417,9 @@ enum BitDepth
|
||||
/// Used by :cpp:class`Lut1DTransform` to control optional hue restoration algorithm.
|
||||
enum Lut1DHueAdjust
|
||||
{
|
||||
HUE_NONE = 0, // No adjustment.
|
||||
HUE_DW3 // Algorithm used in ACES Output Transforms through v0.7.
|
||||
HUE_NONE = 0, ///< No adjustment.
|
||||
HUE_DW3, ///< Algorithm used in ACES Output Transforms through v0.7.
|
||||
HUE_WYPN ///< Weighted Yellow Power Norm -- NOT IMPLEMENTED YET
|
||||
};
|
||||
|
||||
/// Used by \ref PackedImageDesc to indicate the channel ordering of the image to process.
|
||||
@@ -473,7 +474,10 @@ enum FixedFunctionStyle
|
||||
FIXED_FUNCTION_RGB_TO_HSV, ///< Classic RGB to HSV function
|
||||
FIXED_FUNCTION_XYZ_TO_xyY, ///< CIE XYZ to 1931 xy chromaticity coordinates
|
||||
FIXED_FUNCTION_XYZ_TO_uvY, ///< CIE XYZ to 1976 u'v' chromaticity coordinates
|
||||
FIXED_FUNCTION_XYZ_TO_LUV ///< CIE XYZ to 1976 CIELUV colour space (D65 white)
|
||||
FIXED_FUNCTION_XYZ_TO_LUV, ///< CIE XYZ to 1976 CIELUV colour space (D65 white)
|
||||
FIXED_FUNCTION_ACES_GAMUTMAP_02, ///< ACES 0.2 Gamut clamping algorithm -- NOT IMPLEMENTED YET
|
||||
FIXED_FUNCTION_ACES_GAMUTMAP_07, ///< ACES 0.7 Gamut clamping algorithm -- NOT IMPLEMENTED YET
|
||||
FIXED_FUNCTION_ACES_GAMUTMAP_13 ///< ACES 1.3 Gamut mapping algorithm -- NOT IMPLEMENTED YET
|
||||
};
|
||||
|
||||
/// Enumeration of the :cpp:class:`ExposureContrastTransform` transform algorithms.
|
||||
@@ -780,6 +784,7 @@ by hardcoded names.
|
||||
|
||||
Internal::
|
||||
Extracting color space from file path - (ROLE_DEFAULT)
|
||||
Interchange color spaces between configs - (ROLE_EXCHANGE_SCENE, ROLE_EXCHANGE_DISPLAY)
|
||||
|
||||
App Helpers::
|
||||
LegacyViewingPipeline - (ROLE_SCENE_LINEAR (LinearCC for exposure))
|
||||
@@ -819,6 +824,25 @@ extern OCIOEXPORT const char * ROLE_TEXTURE_PAINT;
|
||||
*/
|
||||
extern OCIOEXPORT const char * ROLE_MATTE_PAINT;
|
||||
|
||||
/**
|
||||
* The rendering role may be used to identify a specific color space to be used by CGI renderers.
|
||||
* This is typically a scene-linear space but the primaries also matter since they influence the
|
||||
* resulting color, especially in areas of indirect illumination.
|
||||
*/
|
||||
extern OCIOEXPORT const char * ROLE_RENDERING;
|
||||
/**
|
||||
* The aces_interchange role is used to specify which color space in the config implements the
|
||||
* standard ACES2065-1 color space (SMPTE ST2065-1). This may be used when converting
|
||||
* scene-referred colors from one config to another.
|
||||
*/
|
||||
extern OCIOEXPORT const char * ROLE_INTERCHANGE_SCENE;
|
||||
/**
|
||||
* The cie_xyz_d65_interchange role is used to specify which color space in the config implements
|
||||
* CIE XYZ colorimetry with the neutral axis at D65. This may be used when converting
|
||||
* display-referred colors from one config to another.
|
||||
*/
|
||||
extern OCIOEXPORT const char * ROLE_INTERCHANGE_DISPLAY;
|
||||
|
||||
/** @}*/
|
||||
|
||||
/** \defgroup VarsSharedView
|
||||
|
||||
Executable
BIN
Binary file not shown.
Executable
+91
@@ -0,0 +1,91 @@
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright Contributors to the OpenColorIO Project.
|
||||
|
||||
# Use OpenImageIO's oiiotool to compare the reference image set to the actual image set produced
|
||||
# by a CLF implementation.
|
||||
#
|
||||
# The script iterates over the images in the directory and prints the oiiotool command being run.
|
||||
# It will then print either 'Test passed' or 'Test failed' after each command and then at the end
|
||||
# will summarize with 'All tests passed' or 'These tests failed' with a list of the failed images.
|
||||
#
|
||||
# Usage:
|
||||
# > python compare_clf_test_frames.py <PATH-TO-REFERENCE-IMAGES> <PATH-TO-ACTUAL-IMAGES>
|
||||
|
||||
# This script is python 2.7 and python 3 compatible.
|
||||
|
||||
import os
|
||||
import subprocess
|
||||
import tempfile
|
||||
|
||||
def process_frames( ref_path, act_path ):
|
||||
|
||||
# Check the arguments are as expected.
|
||||
if not os.path.isdir( ref_path ):
|
||||
raise ValueError( "Reference image directory must exist: " + ref_path )
|
||||
if not os.path.isdir( act_path ):
|
||||
raise ValueError( "Actual image directory must exist: " + act_path )
|
||||
|
||||
# Take the aim and actual images and compute abs(aim - act) / max(abs(aim), 0.1).
|
||||
base_cmd = 'oiiotool %s --dup %s --absdiff --swap --abs --maxc 0.1 --div '
|
||||
|
||||
# Mask out the Inf and NaN values in the CLF test kit target image.
|
||||
box_cmd = '--box:color=0,0,0:fill=1 1008,771,1023,798 --box:color=0,0,0:fill=1 0,1023,1,1023 '
|
||||
|
||||
# Error out if there are any new NaNs generated (there should not be).
|
||||
nan_err_cmd = '--fixnan error '
|
||||
|
||||
# Print out how many pixels are greater than the test threshold of 0.002.
|
||||
range_cmd = '--rangecheck 0,0,0 .002,.002,.002 '
|
||||
|
||||
# Oiiotool seems to need a -o to avoid issuing a useless warning, so add an output file
|
||||
# even though it is not used. (Note that trying to write to /dev/null here doesn't work.)
|
||||
avoid_warning_cmd = '-o ' + os.path.join(tempfile.gettempdir(), 'tmp.exr') + ' '
|
||||
|
||||
oiio_cmd = base_cmd + box_cmd + nan_err_cmd + range_cmd + avoid_warning_cmd
|
||||
|
||||
# Iterate over each pair of test images.
|
||||
failed_tests = []
|
||||
for f in sorted(os.listdir( ref_path )):
|
||||
fname, ext = os.path.splitext( f )
|
||||
if ext == '.exr':
|
||||
|
||||
# Build the full path to the files.
|
||||
ref = os.path.join( ref_path, f )
|
||||
act = os.path.join( act_path, f )
|
||||
|
||||
# Build the command.
|
||||
cmd = oiio_cmd % (ref, act)
|
||||
|
||||
print(''); print( cmd )
|
||||
|
||||
# Process the image.
|
||||
try:
|
||||
result = subprocess.check_output(cmd, shell=True)
|
||||
|
||||
ind = str(result).find('0 > .002,.002,.002')
|
||||
if ind > -1:
|
||||
print('** Test passed **')
|
||||
else:
|
||||
failed_tests.append(f)
|
||||
print('\n** TEST FAILED **')
|
||||
print(result)
|
||||
|
||||
except:
|
||||
failed_tests.append(f)
|
||||
print('\n** TEST FAILED **')
|
||||
print(result)
|
||||
|
||||
if len(failed_tests) == 0:
|
||||
print("\n\nALL TESTS PASSED SUCCESSFULLY!\n\n")
|
||||
else:
|
||||
print("\n\nTHESE TESTS FAILED!\n")
|
||||
for s in failed_tests:
|
||||
print(s)
|
||||
print('')
|
||||
|
||||
|
||||
if __name__=='__main__':
|
||||
import sys
|
||||
if len( sys.argv ) != 3:
|
||||
raise ValueError( "USAGE: python compare_clf_test_frames.py <REF_IMAGE_DIR> <ACTUAL_IMAGE_DIR>" )
|
||||
process_frames( sys.argv[1], sys.argv[2] )
|
||||
Executable
+92
@@ -0,0 +1,92 @@
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright Contributors to the OpenColorIO Project.
|
||||
|
||||
# Use OpenColorIO to apply the CLF files from the CLF test kit to the CLF target image
|
||||
# and produce a directory of processed OpenEXR images at the specified location.
|
||||
# Run the script with "-h" for usage information.
|
||||
|
||||
# This script is python 2.7 and python 3 compatible.
|
||||
|
||||
import os
|
||||
import argparse
|
||||
|
||||
def process_frames( options ):
|
||||
|
||||
dst_path = options.dst_dir
|
||||
use_gpu = options.gpu
|
||||
opt_level = options.opt
|
||||
|
||||
# Check the arguments are as expected.
|
||||
if not os.path.exists( dst_path ):
|
||||
os.mkdir( dst_path )
|
||||
if not os.path.isdir( dst_path ):
|
||||
raise ValueError( "Destination path must be a directory: " + dst_path )
|
||||
|
||||
# Get the path to the CLF target image, relative to the path of this script.
|
||||
script_path = os.path.abspath( __file__ )
|
||||
parts = script_path.split( os.sep )
|
||||
ocio_base_path = os.path.join( os.sep, *parts[0:-3] )
|
||||
src_image = os.path.join( ocio_base_path, 'share', 'clf', 'CLF_testimage.exr' )
|
||||
|
||||
# Get the path to the CLF files, relative to the path of this script.
|
||||
clf_path = os.path.join( ocio_base_path, 'tests', 'data', 'files', 'clf' )
|
||||
|
||||
# Set the optimization level. None or lossless avoids the fast SSE log/exponent.
|
||||
# (Note that the decimal value is available by simply printing the enum in Python.)
|
||||
if (opt_level == 'none') or (opt_level is None):
|
||||
# For default for this script, use no optimization rather than OCIO's default optimization
|
||||
# in order to apply the operators exactly as they appear in the CLF file with no attempt
|
||||
# to speed up the processing.
|
||||
print( 'Optimization level: None' )
|
||||
os.environ["OCIO_OPTIMIZATION_FLAGS"] = "0"
|
||||
elif opt_level == 'lossless':
|
||||
print( 'Optimization level: Lossless' )
|
||||
os.environ["OCIO_OPTIMIZATION_FLAGS"] = "144457667"
|
||||
elif opt_level == 'default':
|
||||
print( 'Optimization level: Default' )
|
||||
else:
|
||||
raise ValueError( 'Unexpected --opt argument.' )
|
||||
|
||||
# TODO: Add an option to turn on only SSE without removing any ops.
|
||||
|
||||
if use_gpu:
|
||||
print( 'Processing on the GPU\n' )
|
||||
cmd_base = 'ocioconvert --gpu --lut %s %s %s'
|
||||
else:
|
||||
print( 'Processing on the CPU\n' )
|
||||
cmd_base = 'ocioconvert --lut %s %s %s'
|
||||
|
||||
# Iterate over each legal CLF file in the suite.
|
||||
for f in os.listdir( clf_path ):
|
||||
fname, ext = os.path.splitext( f )
|
||||
if ext == '.clf':
|
||||
|
||||
# Build the full path to the file.
|
||||
p = os.path.join( clf_path, f )
|
||||
|
||||
# Build the name of the destination image.
|
||||
dst_image = os.path.join( dst_path, fname + '.exr' )
|
||||
|
||||
# Build the command.
|
||||
cmd = cmd_base % (p, src_image, dst_image)
|
||||
print('================='); print( cmd )
|
||||
|
||||
# Process the image.
|
||||
os.system( cmd )
|
||||
|
||||
|
||||
if __name__=='__main__':
|
||||
import sys
|
||||
|
||||
import argparse
|
||||
parser = argparse.ArgumentParser(description='Process CLF test images using OCIO.')
|
||||
parser.add_argument('dst_dir',
|
||||
help='Path to a directory where the result images will be stored.')
|
||||
parser.add_argument('--gpu', action='store_true',
|
||||
help='Process using the GPU rather than the CPU.')
|
||||
parser.add_argument('--opt', choices=['none','lossless','default'],
|
||||
help='Specify the OCIO optimization level. If not specified, "none" will be used.')
|
||||
options = parser.parse_args(sys.argv[1:])
|
||||
|
||||
process_frames(options)
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright Contributors to the OpenColorIO Project.
|
||||
#
|
||||
# General CMake utility macros.
|
||||
#
|
||||
|
||||
macro(set_unless_defined var_name var_default)
|
||||
if(NOT DEFINED ${var_name})
|
||||
set(${var_name} ${var_default})
|
||||
else()
|
||||
message(STATUS "Variable explicitly defined: ${var_name} = ${${var_name}}")
|
||||
endif()
|
||||
endmacro()
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user