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§
Sourcefn 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<'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.
Sourcefn 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 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.
Sourcefn present_root_view(&self)
fn present_root_view(&self)
Requests a new frame be presented in the scene.
Sourcefn set_cursor_position(&mut self, position_physical_px: Position)
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”.
Sourcefn set_cursor_visibility(&mut self, visible: bool)
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.
fn get_pointerinjection_view_refs(&self) -> (ViewRef, ViewRef)
Sourcefn get_pointerinjection_display_size(&self) -> Size
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.