class FlatlandPresenter
Defined at line 19 of file ../../src/ui/scenic/lib/flatland/flatland_presenter.h
Interface for Flatland instances to register user Present calls. Primarily intended to provide
a thread-safe abstraction around a FrameScheduler.
Public Methods
void ScheduleUpdateForSession (zx::time requested_presentation_time, scheduling::SchedulingIdPair id_pair, bool squashable, std::vector<zx::event> release_fences, bool schedule_asap)
From scheduling::FrameScheduler::ScheduleUpdateForSession():
Tells the frame scheduler to schedule a frame. This is also used for updates triggered by
something other than a Session update i.e. an ImagePipe with a new Image to present.
Flatland should not call this function until it has reached the acquire fences and queued an
UberStruct for the associated |id_pair|.
This function should be called from Flatland instance worker threads.
std::vector<scheduling::FuturePresentationInfo> GetFuturePresentationInfos ()
From scheduling::FrameScheduler::GetFuturePresentationInfos():
Gets the predicted latch points and presentation times for the frames at or before the next
|requested_prediction_span| time span. Uses the FramePredictor to do so.
The callback is guaranteed to run on the calling thread.
void RemoveSession (scheduling::SessionId session_id, std::optional<zx::event> release_fence)
From scheduling::FrameScheduler::RemoveSession():
Removes all references to |session_id| and schedules a new frame to clean up any leftovers.
This function should be called from Flatland instance worker threads. Final clean-up is posted
back on the main thread, so state may still exist after this method returns.
`release_fence` provides the caller with a way to know that the effects of removing the session
have (roughly) "appeared on screen", so that it is safe to e.g. release any client images that
are now known not be be in use by Vulkan or the display controller.
void ~FlatlandPresenter ()
Defined at line 21 of file ../../src/ui/scenic/lib/flatland/flatland_presenter.h