pub enum ManagerRequest {
SetRootView {
view_provider: ClientEnd<ViewProviderMarker>,
responder: ManagerSetRootViewResponder,
},
PresentRootViewLegacy {
view_holder_token: ViewHolderToken,
view_ref: ViewRef,
responder: ManagerPresentRootViewLegacyResponder,
},
PresentRootView {
viewport_creation_token: ViewportCreationToken,
responder: ManagerPresentRootViewResponder,
},
}
Expand description
A protocol used to manage the scene graph of the session.
This protocol is exposed by the scene_manager
component. The scene_manager
component configures and constructs a scene graph in Scenic. A product may
use the scene_manager
to reduce Scenic-related configuration code in their session.
Variants§
SetRootView
Sets the root view of the scene graph to the view provided by view_provider
.
Subsequent calls will replace the view tree with the one starting at the new root view.
The root view is shared between all clients of Manager
.
Returns a fuchsia.ui.views.ViewRef
referencing the view provided by view_provider
.
If this ViewRef cannot be returned (e.g. in Flatland case, if the ViewCreationToken is
dropped before it is given to Scenic), then the connection to the Manager
will be closed.
The client can expect that:
(1) Its root view will be focused once it’s connected to the scene. (2) The logical size and position of its root view match the display.
TODO(https://fxbug.dev/42055565): Fix this situation. NOTE: the ViewRef is only returned after the child view is connected to the scene graph. Therefore, the caller must guarantee that the child view will eventually be connected before waiting for the ViewRef; if the child view doesn’t connect, it is possible to deadlock.
PresentRootViewLegacy
Presents a view tree to the display, via the provided view holder token.
This call will present the view using the legacy GFX API.
Subsequent calls will replace the view tree with the one starting at the new root viewport.
The root view is shared between all clients of Manager
.
The client can expect that:
(1) Its root view will be focused once it’s connected to the scene. (2) The logical size and position of its root view match the display.
TODO(https://fxbug.dev/42055565): Fix this situation. NOTE: this method returns only after the child view is connected to the scene graph. Therefore, the caller must guarantee that the child view will eventually be connected before waiting for the return; if the child view doesn’t connect, it is possible to deadlock.
Fields
view_holder_token: ViewHolderToken
view_ref: ViewRef
responder: ManagerPresentRootViewLegacyResponder
PresentRootView
Presents a view tree to the display, via the provided viewport token.
Subsequent calls will replace the view tree with the one starting at the new root viewport.
The root view is shared between all clients of Manager
.
The client can expect that:
(1) Its root view will be focused once it’s connected to the scene. (2) The logical size and position of its root view match the display.
TODO(https://fxbug.dev/42055565): Fix this situation. NOTE: this method returns only after the child view is connected to the scene graph. Therefore, the caller must guarantee that the child view will eventually be connected before waiting for the return; if the child view doesn’t connect, it is possible to deadlock.
Implementations§
Source§impl ManagerRequest
impl ManagerRequest
pub fn into_set_root_view( self, ) -> Option<(ClientEnd<ViewProviderMarker>, ManagerSetRootViewResponder)>
pub fn into_present_root_view_legacy( self, ) -> Option<(ViewHolderToken, ViewRef, ManagerPresentRootViewLegacyResponder)>
pub fn into_present_root_view( self, ) -> Option<(ViewportCreationToken, ManagerPresentRootViewResponder)>
Sourcepub fn method_name(&self) -> &'static str
pub fn method_name(&self) -> &'static str
Name of the method defined in FIDL