scene_management

Trait SceneManagerTrait

Source
pub trait SceneManagerTrait: Send {
    // Required methods
    fn set_root_view<'life0, 'async_trait>(
        &'life0 mut self,
        viewport_creation_token: ViewportCreationToken,
        view_ref: Option<ViewRef>,
    ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn set_root_view_deprecated<'life0, 'async_trait>(
        &'life0 mut self,
        view_provider: ViewProviderProxy,
    ) -> Pin<Box<dyn Future<Output = Result<ViewRef, Error>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn present_root_view(&self);
    fn set_cursor_position(&mut self, position_physical_px: Position);
    fn set_cursor_visibility(&mut self, visible: bool);
    fn get_pointerinjection_view_refs(&self) -> (ViewRef, ViewRef);
    fn get_pointerinjection_display_size(&self) -> Size;
    fn get_pointerinjector_viewport_watcher_subscription(
        &self,
    ) -> InjectorViewportSubscriber;
    fn get_display_metrics(&self) -> &DisplayMetrics;
}
Expand description

A SceneManager manages a Scenic scene graph, and allows clients to add views to it. Each SceneManager can choose how to configure the scene, including lighting, setting the frames of added views, etc.

§Example

let view_provider = some_apips.connect_to_service::<ViewProviderMarker>()?;

let scenic = connect_to_service::<ScenicMarker>()?;
let mut scene_manager = scene_management::FlatSceneManager::new(scenic).await?;
scene_manager.set_root_view(viewport_token).await?;

Required Methods§

Source

fn set_root_view<'life0, 'async_trait>( &'life0 mut self, viewport_creation_token: ViewportCreationToken, view_ref: Option<ViewRef>, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Sets the root view for the scene.

ViewRef will be unset for Flatland views.

Removes any previous root view, as well as all of its descendants.

Source

fn set_root_view_deprecated<'life0, 'async_trait>( &'life0 mut self, view_provider: ViewProviderProxy, ) -> Pin<Box<dyn Future<Output = Result<ViewRef, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

DEPRECATED: Use ViewportToken version above. Sets the root view for the scene.

Removes any previous root view, as well as all of its descendants.

Source

fn present_root_view(&self)

Requests a new frame be presented in the scene.

Source

fn set_cursor_position(&mut self, position_physical_px: Position)

Sets the position of the cursor in the current scene. If no cursor has been created it will create one using default settings.

§Parameters
  • position_physical_px: A [Position] struct representing the cursor position, in physical pixels.
§Notes

If a custom cursor has not been set using set_cursor_image or set_cursor_shape a default cursor will be created and added to the scene. The implementation of the SceneManager trait is responsible for translating the raw input position into “pips”.

Source

fn set_cursor_visibility(&mut self, visible: bool)

Sets the visibility of the cursor in the current scene. The cursor is visible by default.

§Parameters
  • visible: Boolean value indicating if the cursor should be visible.
Source

fn get_pointerinjection_view_refs(&self) -> (ViewRef, ViewRef)

Source

fn get_pointerinjection_display_size(&self) -> Size

Input pipeline handlers such as TouchInjectorHandler require the display size in order to be instantiated. This method exposes that information.

Source

fn get_pointerinjector_viewport_watcher_subscription( &self, ) -> InjectorViewportSubscriber

Source

fn get_display_metrics(&self) -> &DisplayMetrics

Implementors§