Skip to content

Add kOfxParamPropColourManaged for colour-managed RGB/RGBA params (#158)#245

Open
garyo wants to merge 2 commits into
mainfrom
feature/colour-managed-param-158
Open

Add kOfxParamPropColourManaged for colour-managed RGB/RGBA params (#158)#245
garyo wants to merge 2 commits into
mainfrom
feature/colour-managed-param-158

Conversation

@garyo

@garyo garyo commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

Implements the agreed spec change from #158. Companion to #244 (the contrib/colour conversion library).

What

Adds kOfxParamPropColourManaged, a boolean parameter property a plug-in can set on an RGB or RGBA parameter to declare that the parameter's values — including its default — are in the ACES2065-1 (AP0) reference colourspace rather than an unmanaged, display-referred encoding. The values are scene-linear and not constrained to [0..1], so a colour-managed host (or any host that supports wide-gamut colours) can interpret and convert them correctly.

Plug-ins must check the set status: if the host does not implement the property, they should fall back to old-style colour values. It defaults to 0, so existing plug-ins are unaffected.

Changes

  • include/ofxParam.h: the property with its @propdef metadata (bool, dim 1), plus new ParamsRGB and ParamsRGBA property sets — the colour param types were not previously modelled in the property metadata system.
  • Documentation/sources/Reference/ofxParameter.rst: describes the property in the Colour Parameters section.
  • release-notes.md: noted under 1.5.1.
  • openfx-cpp/include/openfx/*: regenerated metadata, property sets, and typed accessors via scripts/gen-props.py.

Validation

  • scripts/gen-props.py passes all checks (metadata present, every prop used in a set).
  • The property resolves to bool / dimension 1 / default false consistently across the generated metadata and accessors (ParamsRGB::setColourManaged(bool) etc.).

Note: introduced: "1.5.1" to match the current in-progress version; easy to bump to 1.6 if preferred.

🤖 Generated with Claude Code

Add kOfxParamPropColourManaged, a boolean parameter property a plug-in can
set on an RGB or RGBA parameter to declare that the parameter's values —
including its default — are in the ACES2065-1 (AP0) reference colourspace
rather than an unmanaged, display-referred encoding. The values are
scene-linear and not constrained to [0..1], so a colour-managed host (or any
host that supports wide-gamut colours) can interpret and convert them
correctly. Plug-ins must check the set status: if the host does not implement
the property, they should fall back to old-style colour values. It defaults to
0, so existing plug-ins are unaffected.

- include/ofxParam.h: the property with its @propdef metadata (bool, dim 1),
  plus new ParamsRGB and ParamsRGBA property sets (the colour param types were
  not previously modelled in the property metadata).
- Documentation/sources/Reference/ofxParameter.rst: describe the property in
  the Colour Parameters section.
- release-notes.md: note the addition under 1.5.1.
- openfx-cpp/include/openfx/*: regenerated metadata, property sets, and typed
  accessors (scripts/gen-props.py).

Signed-off-by: Gary Oberbrunner <garyo@darkstarsystems.com>
@garyo garyo force-pushed the feature/colour-managed-param-158 branch from cf241a5 to e34971a Compare June 18, 2026 21:00
@revisionfx

Copy link
Copy Markdown
Contributor

A documentation note was host should save such parameter value(s) in project file in ACES2065-1 so as we increase interoperability between apps, this stays robust. And to be clear if this property is supported, plugin is expected to create default values in ACES2065-1.

Of course hard to test right now :)

Signed-off-by: Gary Oberbrunner <garyo@darkstarsystems.com>
@garyo

garyo commented Jun 18, 2026

Copy link
Copy Markdown
Contributor Author

Thanks for the note, Pierre — added that now (both header and doc). And I note that you can test the colour-conversion lib any time; that's totally standalone, usable by any host or plug-in.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants