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

Need a way to create a Floem NSView in a foreign Mac OS app #505

Open
timboudreau opened this issue Jul 8, 2024 · 0 comments
Open

Need a way to create a Floem NSView in a foreign Mac OS app #505

timboudreau opened this issue Jul 8, 2024 · 0 comments

Comments

@timboudreau
Copy link
Contributor

Filing this as a placeholder, and will try to address it when I bubble back up out of DSP-code back to UI-land.

I'm attempting to use Floem as the UI for AudioUnit plugins for Mac OS using Apple's AudioUnit API.

These are libraries which are (optionally, but it's important for performance) loaded in-process by a host application (e.g. GarageBand, Logic, Adobe Audition).

They do not have ownership of the event loop or application (panic or exit would be extremely bad behavior).

The UI API is simply to provide a call that instantiates an NSView - you implement whatever communication with the AudioUnit is needed under the hood).

So I need a way to instantiate an NSView which will be rendered and have its event handling done by Floem, without any assumptions about that being the entire application - and to be able to unload all of that cleanly, leaking nothing.

In the long run, implementing this would substantially increase the use cases for Floem on Mac OS, since it would be possible to write Floem UI components for use in any Mac OS application (possibly iOS too?) - and for most tasks, the performance is considerably better and the footprint much smaller than the equivalent UI using SwiftUI.

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

No branches or pull requests

1 participant