pub struct BuiltinEditor<P: Params> { /* private fields */ }Expand description
Built-in editor that renders parameter widgets to a pixel buffer.
Uses the CPU backend (tiny-skia) for software rasterization. When
open() is called, creates a baseview window and blits pixels via wgpu.
Implementations§
Source§impl<P: Params + 'static> BuiltinEditor<P>
impl<P: Params + 'static> BuiltinEditor<P>
Sourcepub fn request_repaint(&self)
pub fn request_repaint(&self)
Request a repaint on the next idle tick. Call this if plugin
code mutates display state outside the normal param or
state_changed pathways (uncommon). User interaction and
host automation already flag themselves dirty automatically.
pub fn new(params: Arc<P>, layout: PluginLayout) -> Self
pub fn new_with_layout(params: Arc<P>, layout: Layout) -> Self
pub fn new_grid(params: Arc<P>, layout: GridLayout) -> Self
pub fn with_theme(self, theme: Theme) -> Self
Sourcepub fn render(&mut self)
pub fn render(&mut self)
Render the full UI to the internal CPU pixel buffer.
Only available when the cpu feature is on. In gpu-only
mode, render through Self::render_to with a
truce_gpu::WgpuBackend instead.
§Panics
Panics if the lazy CpuBackend::new allocation fails (out of
memory or zero dimensions). The backend is allocated on first
render - subsequent calls reuse it.
Sourcepub fn dispatch_events(&mut self, events: &[InputEvent])
pub fn dispatch_events(&mut self, events: &[InputEvent])
Feed a batch of input events through interaction::dispatch and
apply the resulting param edits. Flags a repaint when hover,
dropdown-open state, or any param moved.
Typically callers build the events by running each baseview
event through interaction::BaseviewTranslator and batching
the non-None results.
Sourcepub fn pixel_data(&self) -> Option<&[u8]>
pub fn pixel_data(&self) -> Option<&[u8]>
Get the raw pixel data after rendering (RGBA premultiplied).
Only available when the cpu feature is on.
Sourcepub fn has_context(&self) -> bool
pub fn has_context(&self) -> bool
Whether the editor has an active context.
Sourcepub fn take_context(&mut self) -> Option<PluginContext>
pub fn take_context(&mut self) -> Option<PluginContext>
Take the editor context, leaving None in its place.
Used by hot-reload to preserve the context when swapping editors.
Sourcepub fn set_context(&mut self, context: PluginContext)
pub fn set_context(&mut self, context: PluginContext)
Set the editor context (host callbacks) without opening the CPU view.
Sourcepub fn size(&self) -> (u32, u32)
pub fn size(&self) -> (u32, u32)
Editor logical size (width, height in points). Inherent
method so it stays callable when the Editor trait impl is
cfg’d out in gpu-only builds.
Sourcepub fn state_changed(&mut self)
pub fn state_changed(&mut self)
Notify the widget tree that plugin state was restored
(preset recall, undo, session load). Inherent for the same
reason as Self::size above.
Sourcepub fn render_to(&mut self, backend: &mut dyn RenderBackend)
pub fn render_to(&mut self, backend: &mut dyn RenderBackend)
Render all widgets to an external RenderBackend.
Used by truce-gpu to draw through the GPU backend instead of
the internal CPU backend.
Trait Implementations§
Source§impl<P: Params + 'static> Editor for BuiltinEditor<P>
Available on crate feature cpu only.
impl<P: Params + 'static> Editor for BuiltinEditor<P>
cpu only.Source§fn state_changed(&mut self)
fn state_changed(&mut self)
Source§fn open(&mut self, parent: RawWindowHandle, context: PluginContext)
fn open(&mut self, parent: RawWindowHandle, context: PluginContext)
Source§fn set_scale_factor(&mut self, factor: f64)
fn set_scale_factor(&mut self, factor: f64)
Source§fn screenshot(
&mut self,
_params: Arc<dyn Params>,
) -> Option<(Vec<u8>, u32, u32)>
fn screenshot( &mut self, _params: Arc<dyn Params>, ) -> Option<(Vec<u8>, u32, u32)>
Source§fn set_size(&mut self, _width: u32, _height: u32) -> bool
fn set_size(&mut self, _width: u32, _height: u32) -> bool
Source§fn can_resize(&self) -> bool
fn can_resize(&self) -> bool
impl<P: Params> Send for BuiltinEditor<P>
Auto Trait Implementations§
impl<P> Freeze for BuiltinEditor<P>
impl<P> !RefUnwindSafe for BuiltinEditor<P>
impl<P> !Sync for BuiltinEditor<P>
impl<P> Unpin for BuiltinEditor<P>
impl<P> UnsafeUnpin for BuiltinEditor<P>
impl<P> !UnwindSafe for BuiltinEditor<P>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<E> IntoEditor for Ewhere
E: Editor + 'static,
impl<E> IntoEditor for Ewhere
E: Editor + 'static,
Source§fn into_editor(self) -> Box<dyn Editor>
fn into_editor(self) -> Box<dyn Editor>
Box<dyn Editor>.