Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OpenColorIO Properties #103

Merged
merged 35 commits into from
Jul 21, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
2a7543f
OCIO Properties
john-paulsmith Dec 5, 2022
7e8c002
Made all OCIO properties read only
john-paulsmith Dec 5, 2022
e1beee2
Extended OCIO properties
john-paulsmith Feb 7, 2023
e2800d3
Revised Preferred Colourspace + doc improvement
john-paulsmith Feb 7, 2023
8cbc93e
Reworked the OCIO extension to support ACES
john-paulsmith Feb 8, 2023
b07f15f
Moved the colourspace API to its own header
john-paulsmith Mar 3, 2023
3a8e7ee
Colourspace defs based on OCIO ACES Studio config
john-paulsmith Apr 30, 2023
559e0ba
Improve the readability of roles
john-paulsmith Apr 30, 2023
caf96af
Allow a list of preferred colourspaces
john-paulsmith Apr 30, 2023
132d027
Added missing colourspace name definitions
john-paulsmith May 2, 2023
f69bfec
Added the concept of core colourspaces and display names
john-paulsmith Apr 13, 2024
ff9b225
Workaround for missing srgb_tx encoding
john-paulsmith Apr 14, 2024
122c534
Fix core colourspace labelling logic
john-paulsmith Apr 14, 2024
e0cca3c
Multiple improvements from code review
john-paulsmith May 9, 2024
0c8339c
Reorganised core/non-core colourspaces
john-paulsmith May 10, 2024
8e06771
Colourspace cross-referencing
john-paulsmith Jun 4, 2024
ce4acf1
Full, Basic and Core colour management styles
john-paulsmith Jun 4, 2024
a768098
Corrections from code review
john-paulsmith Jun 4, 2024
01a3ca8
Added basic colourspaces instead of roles
john-paulsmith Jul 1, 2024
88f35d0
Output colourspace negotiation action
john-paulsmith Jul 2, 2024
af85e80
Improvements to the docs and OCIO config
john-paulsmith Jul 10, 2024
9f0533b
Support versioning native styles
john-paulsmith Jul 11, 2024
b3caf78
Allow use of basic colourspaces in OCIO mode
john-paulsmith Jul 12, 2024
be3de0e
Minor doc fix
john-paulsmith Jul 12, 2024
9a7eec4
Doc clarifications for OCIO mode
john-paulsmith Jul 12, 2024
3316c2e
Add Colourspace example
garyo Apr 30, 2024
7f5598f
WIP: colorspace example updates
garyo May 7, 2024
396fe61
WIP: colourspace example now draws text with image info & colourspaces
garyo May 9, 2024
edce85d
Add params to set preferred colourspaces
garyo May 9, 2024
9a9748c
Update colorspace example: fixes from Phil Barrett
garyo May 16, 2024
c3ecca0
Rename ColorSpace to ColourSpace for consistency
garyo May 16, 2024
e23ef6f
Fix a couple of Info.plist CFBundleExecutable strings
garyo May 16, 2024
6e95184
Add Emacs .dir-locals.el to set our C/C++ indentation standard
garyo May 16, 2024
63d3227
Update to latest spec
garyo Jul 12, 2024
52a0ac5
Automatically include the latest config
john-paulsmith Jul 12, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 23 additions & 22 deletions include/ofxColour.h
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,11 @@ both host and plug-in will be chosen.
A host must set this property on any effect instances where it has negotiated
OCIO colour management (kOfxImageEffectPropColourManagementOCIO).
Use of URIs for built-in configs, such as ocio://default is permitted.

When native colour management is in use, a host must set this property to point
to the OCIO config used to define strings for the version of OFX it was built
against. This will allow a plug-in which uses OCIO to work directly with native
mode.
john-paulsmith marked this conversation as resolved.
Show resolved Hide resolved
*/
#define kOfxImageEffectPropOCIOConfig "OfxImageEffectPropOCIOConfig"

Expand All @@ -70,6 +75,9 @@ vectors or similar images which should not be colour managed can use the data
colourspace which is present in the built-in OCIO configs.
john-paulsmith marked this conversation as resolved.
Show resolved Hide resolved
Both host and plug-in should use the value of
kOfxImageClipPropPreferredColourspace where reasonable.
If a clip sets OfxImageClipPropIsMask or it only supports
OfxImageComponentAlpha, colour management is disabled and this property
must be unset.
*/
#define kOfxImageClipPropColourspace "OfxImageClipPropColourspace"

Expand All @@ -91,12 +99,16 @@ specific camera and expects a log colourspace might list:

"arri_logc4", "arri_logc3_ei800", "ACEScct", "color_timing"

The host should provide input images in the first mutually agreeable
colourspace, and set kOfxImageClipPropColourspace to tell the plug-in which
colourspace has been selected. In the event that the host cannot supply images
in a requested colourspace, it may supply images in any valid colourspace.
Plug-ins must check kOfxImageClipPropColourspace to see if their request was
satisfied.
The host is free to choose any colourspace from this list, but should favour
the first mutually agreeable colourspace, and set kOfxImageClipPropColourspace
to tell the plug-in which colourspace has been selected. A host does not need
to convert into the first choice just because it can, as this might be
inefficient, and should scene-to-display or display-to-scene conversions where
john-paulsmith marked this conversation as resolved.
Show resolved Hide resolved
john-paulsmith marked this conversation as resolved.
Show resolved Hide resolved
possible.

In the event that the host cannot supply images in a requested colourspace,
it may supply images in any valid colourspace. Plug-ins must check
kOfxImageClipPropColourspace to see if their request was satisfied.

Hosts may set this on an output clip, which could be helpful in a generator
context, and plug-ins should follow the same logic as hosts when deciding
Expand All @@ -110,10 +122,10 @@ plug-in is capable of adapting to any input colourspace, it should not set
this preference.

If a plug-in has inputs which contain motion vectors, depth values or other
non-colour channels, it should set the preferred colourspace to "data".
Similarly, if a host requests outputs in a typical scene colourspace, but the
plug-in is producing motion vectors, it should ignore the request and set
kOfxImageClipPropColourspace to "data".
non-colour channels, it should set the preferred colourspace to
kOfxColourspaceRaw. Similarly, if a host requests outputs in a typical scene
colourspace, but the plug-in is producing motion vectors, it should ignore
the request and set kOfxImageClipPropColourspace to kOfxColourspaceRaw.
*/
#define kOfxImageClipPropPreferredColourspaces "OfxImageClipPropPreferredColourspaces"

Expand All @@ -129,7 +141,7 @@ not expect this to be available during a render event.
Hosts should set this property to a display colourspace which matches that
used in its own viewport. For a multi-display system, choose the colourspace
for the display device where a native window would appear by default.
A host which supports OCIO should use the OCIO-specific display, view and look
A host which supports OCIO should use the OCIO-specific display and view
properties instead.

*/
Expand Down Expand Up @@ -157,17 +169,6 @@ If not defined, the default rules for choosing a view will be followed.
*/
#define kOfxImageEffectPropOCIOView "OfxImageEffectPropOCIOView"

/** @brief The OCIO look used in the plug-in's viewport

- Type - string X 1
- Property Set - image effect instance (read only)
- Valid Values - OCIO look that is present in the config

This OCIO-specific property allows the host to specify which OCIO look should be used.
If not defined, no look will be applied.
*/
#define kOfxImageEffectPropOCIOLook "OfxImageEffectPropOCIOLook"

#ifdef __cplusplus
}
#endif
Expand Down
Loading
Loading