Google is committed to advancing racial equity for Black communities. See how.

Graphical Presenter component role

Overview

Graphical Presenter is a component role, within the session, that presents multiple graphical views to the user; most commonly, views from the session's Elements.

Although the same session component could also implement the Graphical Presenter roll, there is a FIDL protocol, fuchsia.element.GraphicalPresenter, that allows a session component to delegate Graphical Presenter responsibilities another component. This makes it possible for each component to execute in different runtimes (such Rust versus Flutter/Dart) if needed.

Displaying element views

For Fuchsia-based products running on devices with a graphical display, a session implementation manages displayable components through the Element API. Each element renders its graphical representation in what is known as a "view".

A session will request the Element's view, and then pass that view to the Graphical Presenter to be displayed, along with optional [Element Annotations][element-annotations], used to communicate product-specific presentation properties.

PresentView request

The session calls the GraphicalPresenter method PresentView() to display a given view. PresentView() takes a ViewSpec, through which the session conveys where and how it wants the view to be displayed in the Scenic scene graph. In return, the caller is given a handle to the view, as a ViewController. The caller can request changes to the view via calls to the ViewController, or destroy the view (remove it from the display) by releasing or closing its ViewController.

The developer guide includes an example implementation of presenting an element's view.