Open Effects Proposal for Standard Change
Please read the contribution guidelines first.
Standard Change Workflow
Requirements for accepting a standard change:
Summary
I’m beginning to work on a “modern C++” openfx-cpp support lib that will be more maintainable, type-safe and easy to use, as well as reflecting the C API more directly. I expect to contribute this to the main repo at some point. A couple of questions for you:
- Would you use such a thing when creating new plugins?
- Should I aim for C++20 (better, more compile-time type safety etc.) or C++17 (in more common use today)?
- Are there particular pain points you have with implementing plugins using the C API? I’m thinking initially about props, params, clips and images.
Motivation
The current C++ support lib is very out of date, and hasn't been updated in a long time. It also doesn't use any modern C++17 or later elements, so it is clunky to use. It also works only as a complete framework, not as an incremental add-on to the C API. This proposal is for a more minimal set of C++ classes for clips, images, properties, and parameters, to simplify access and ensure type-safety. It uses the new type info for all built-in properties and property sets to enable simple type-safe property access.
Problem
The goal is to simplify development of new plugins for new users of the API, while staying true to the original design goals of simplicity, compatibility and extensibility.
Impact
This is entirely plugin side, and has no impact on the C API at all.
Documentation Impact
The new helpers will need documentation as well as sample effects.
Stakeholders
This is intended for plugin creators.
Discussion
Initial implementation is taking place in the https://github.com/AcademySoftwareFoundation/openfx/tree/props-metadata branch, see #166 .
Open Effects Proposal for Standard Change
Please read the contribution guidelines first.
Standard Change Workflow
standard changetagfeature/PROPOSAL-NAMEbranch)maintainer merges PR to master which closes PR and issue
Requirements for accepting a standard change:
Summary
I’m beginning to work on a “modern C++” openfx-cpp support lib that will be more maintainable, type-safe and easy to use, as well as reflecting the C API more directly. I expect to contribute this to the main repo at some point. A couple of questions for you:
Motivation
The current C++ support lib is very out of date, and hasn't been updated in a long time. It also doesn't use any modern C++17 or later elements, so it is clunky to use. It also works only as a complete framework, not as an incremental add-on to the C API. This proposal is for a more minimal set of C++ classes for clips, images, properties, and parameters, to simplify access and ensure type-safety. It uses the new type info for all built-in properties and property sets to enable simple type-safe property access.
Problem
The goal is to simplify development of new plugins for new users of the API, while staying true to the original design goals of simplicity, compatibility and extensibility.
Impact
This is entirely plugin side, and has no impact on the C API at all.
Documentation Impact
The new helpers will need documentation as well as sample effects.
Stakeholders
This is intended for plugin creators.
Discussion
Initial implementation is taking place in the https://github.com/AcademySoftwareFoundation/openfx/tree/props-metadata branch, see #166 .