pub struct DisplayContext { /* private fields */ }debug-window only.Expand description
Handle for displaying images from a background thread.
Obtained inside the closure passed to DebugDisplay::run(). All
methods are safe to call from the background thread.
§Examples
use fovea_display::{DebugDisplay, Identity};
use fovea::image::Image;
use fovea::pixel::Srgba8;
DebugDisplay::run(|ctx| {
let img = Image::fill(100, 100, Srgba8::new(255, 0, 0, 255));
ctx.show("Red", &img, Identity);
ctx.wait_key();
});Implementations§
Source§impl DisplayContext
impl DisplayContext
Sourcepub fn show<V, S>(&self, title: &str, image: &V, strategy: S)
pub fn show<V, S>(&self, title: &str, image: &V, strategy: S)
Display an image in a window with the given title.
Converts the image to a framebuffer using the given strategy on the calling thread, then sends the framebuffer to the event loop for display. If a window with this title already exists, its contents are updated; otherwise a new window is created.
This method is non-blocking — it returns immediately after sending the command.
§Type parameters
V: AnyImageView— owned images, ROIs, tiled views, etc.S: ADisplayStrategythat can convertV’s pixel type.
Sourcepub fn wait_key(&self) -> Option<KeyCode>
pub fn wait_key(&self) -> Option<KeyCode>
Block until a key is pressed in any window.
Returns the KeyCode of the pressed key, or None if all
windows were closed or the event loop exited.
§Examples
use fovea_display::{DebugDisplay, Identity};
use fovea::image::Image;
use fovea::pixel::Srgba8;
DebugDisplay::run(|ctx| {
let img = Image::fill(100, 100, Srgba8::new(0, 255, 0, 255));
ctx.show("Green", &img, Identity);
match ctx.wait_key() {
Some(key) => println!("Key pressed: {:?}", key),
None => println!("All windows closed"),
}
});Sourcepub fn wait_key_timeout(&self, timeout: Duration) -> Option<KeyCode>
pub fn wait_key_timeout(&self, timeout: Duration) -> Option<KeyCode>
Block until a key is pressed, with a timeout.
Returns Some(key) if a key was pressed within the timeout,
None if the timeout elapsed or all windows were closed.
Source§impl DisplayContext
impl DisplayContext
Sourcepub fn show_histogram<S, V>(&self, title: &str, h: &Histogram<S, V>)
pub fn show_histogram<S, V>(&self, title: &str, h: &Histogram<S, V>)
Display a histogram inside a DebugDisplay::run
session, using default render options.
Non-blocking. Uses the same window-update semantics as
DisplayContext::show: passing the same title again
updates the existing window in place.
Sourcepub fn show_histogram_with<S, V>(
&self,
title: &str,
h: &Histogram<S, V>,
opts: &HistogramRenderOptions,
)
pub fn show_histogram_with<S, V>( &self, title: &str, h: &Histogram<S, V>, opts: &HistogramRenderOptions, )
Display a histogram inside a DebugDisplay::run
session with custom render options.
Sourcepub fn show_histogram_layers(
&self,
title: &str,
layers: &[HistogramLayer<'_>],
opts: &HistogramPlotOptions,
)
pub fn show_histogram_layers( &self, title: &str, layers: &[HistogramLayer<'_>], opts: &HistogramPlotOptions, )
Display a multi-layer histogram inside a
DebugDisplay::run session.
Non-blocking. See render_histogram_layers for the
rendering model.
Auto Trait Implementations§
impl !RefUnwindSafe for DisplayContext
impl !Sync for DisplayContext
impl !UnwindSafe for DisplayContext
impl Freeze for DisplayContext
impl Send for DisplayContext
impl Unpin for DisplayContext
impl UnsafeUnpin for DisplayContext
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> ConvertPixelExt for T
impl<T> ConvertPixelExt for T
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.