1
0
Fork 0
nih-plug/nih_plug_iced
Robbert van der Helm 083885a40c Rework Params trait API with Arc instead of Pin
This is a breaking change requiring a small change to plugin
implementations.

The reason why `Pin<&dyn Params>` was used was more as a hint to
indicate that the object must last for the plugin's lifetime, but `Pin`
doesn't enforce that. It also makes the APIs a lot more awkward.
Requiring the use of `Arc` fixes the following problems:

- When storing the params object in the wrapper, the `ParamPtr`s are
  guaranteed to be stable.
- This makes it possible to access the `Params` object without acquiring
  a lock on the plugin, this is very important for implementing
  plugin-side preset management.
- It enforces immutability on the `Params` object.
- And of course the API is much nicer without a bunch of unsafe code to
  work around Pin's limitations.
2022-04-07 15:31:46 +02:00
..
src Rework Params trait API with Arc instead of Pin 2022-04-07 15:31:46 +02:00
Cargo.toml Allow text entry on Alt+Click 2022-03-15 12:48:40 +01:00
README.md Update nih_plug_iced regarding default features 2022-03-16 16:07:08 +01:00

NIH-plug: iced support

This provides an adapter to create iced based GUIs with NIH-plug through iced_baseview.

By default this targets OpenGL as wgpu causes segfaults on a number of configurations. To use wgpu instead, include the crate with the following options:

nih_plug_iced = { git = "https://github.com/robbert-vdh/nih-plug.git", default_features = false, features = ["wgpu"] }

Iced has many more optional features. Check the Cargo.toml file for more information.