class FakeFlatland
Defined at line 60 of file ../../sdk/lib/ui/scenic/cpp/testing/fake_flatland.h
A lightweight fake implementation of the Flatland API.
The fake has no side effects besides mutating its own internal state
according to the rules of interacting with the Flatland API. It makes that
internal state available for inspection by a test.
Thus it allows tests to do a few things that would be difficult using either
a mock implementation or the real implementation:
+ It allows the user to hook `Present` invocations and respond with
stubbed-out `FuturePresentationTimes`, but more crucially it mimics the
real Flatland behavior of only processing commands when a `Present` is
invoked.
+ It allows the user to inspect a snapshot of the scene graph at any moment
in time, via the `SceneGraph()` accessor.
+ It stores the various Flatland transforms and content generated by
commands into a std::unordered_map, and also correctly manages the
transform and content lifetimes via reference counting. This allows a
given transform or content to stay alive if its parent still holds a
reference to it, in the same way the real Flatland implementation would.
+ The resources returned by `SceneGraph()` that the test uses for
inspection are decoupled from the resources managed internally by the
`FakeFlatland` itself -- they are a snapshot of the scene graph at that
moment in time, with all snapshot state being cloned from the underlying
scene graph state. This allows the `FakeFlatland` and test to naturally
use `shared_ptr` for reference counting and mimic the real Flatland
behavior exactly, instead of an awkward index-based API.
The fake deliberately does not attempt to handle certain aspects of the real
Flatland implementation which are complex or burdensome to implement:
+ Rendering/interacting with Vulkan in any way
+ Cross-flatland links between Views and Viewports
+ Sysmem allocations
Public Methods
void FakeFlatland ()
Defined at line 17 of file ../../sdk/lib/ui/scenic/cpp/testing/fake_flatland.cc
void ~FakeFlatland ()
Defined at line 20 of file ../../sdk/lib/ui/scenic/cpp/testing/fake_flatland.cc
fuchsia::ui::composition::AllocatorHandle ConnectAllocator (async_dispatcher_t * dispatcher)
Bind this instance's Flatland FIDL channel to the `dispatcher` and allow
processing of incoming FIDL requests.
This can only be called once.
Defined at line 22 of file ../../sdk/lib/ui/scenic/cpp/testing/fake_flatland.cc
fuchsia::ui::composition::FlatlandHandle ConnectFlatland (async_dispatcher_t * dispatcher)
Bind this instance's Allocator FIDL channel to the `dispatcher` and allow
processing of incoming FIDL requests.
This can only be called once.
Defined at line 32 of file ../../sdk/lib/ui/scenic/cpp/testing/fake_flatland.cc
fidl::InterfaceRequestHandler<fuchsia::ui::composition::Flatland> GetFlatlandRequestHandler (async_dispatcher_t * dispatcher)
Returns a request handler that binds the incoming FIDL requests to this
session's FIDL channels on the `dispatcher`.
This can only be called once.
Defined at line 42 of file ../../sdk/lib/ui/scenic/cpp/testing/fake_flatland.cc
fidl::InterfaceRequestHandler<fuchsia::ui::composition::Allocator> GetAllocatorRequestHandler (async_dispatcher_t * dispatcher)
Defined at line 50 of file ../../sdk/lib/ui/scenic/cpp/testing/fake_flatland.cc
void Disconnect (fuchsia::ui::composition::FlatlandError error)
Disconnect the Flatland's FIDL channel with an error.
Defined at line 58 of file ../../sdk/lib/ui/scenic/cpp/testing/fake_flatland.cc
void SetPresentHandler (PresentHandler present_handler)
Set a handler for `Present`-related FIDL calls' return values.
Defined at line 64 of file ../../sdk/lib/ui/scenic/cpp/testing/fake_flatland.cc
void FireOnNextFrameBeginEvent (fuchsia::ui::composition::OnNextFrameBeginValues on_next_frame_begin_values)
Fire an `OnNextFrameBegin` event. Call this first after a `Present` in
order to give additional present tokens to the client and simulate scenic's
normal event flow.
Defined at line 68 of file ../../sdk/lib/ui/scenic/cpp/testing/fake_flatland.cc
void FireOnFramePresentedEvent (fuchsia::scenic::scheduling::FramePresentedInfo frame_presented_info)
Fire an `OnFramePresented` event. Call this second after a `Present` in
order to inform the client of returned frames and simulate scenic's normal
event flow.
Defined at line 73 of file ../../sdk/lib/ui/scenic/cpp/testing/fake_flatland.cc
void NotImplemented_ (const std::string & name)
|fuchsia::ui::composition::testing::Allocator_TestBase|
|fuchsia::ui::composition::testing::Flatland_TestBase|
Defined at line 78 of file ../../sdk/lib/ui/scenic/cpp/testing/fake_flatland.cc
void RegisterBufferCollection (fuchsia::ui::composition::RegisterBufferCollectionArgs args, RegisterBufferCollectionCallback callback)
|fuchsia::ui::composition::testing::Allocator|
Defined at line 82 of file ../../sdk/lib/ui/scenic/cpp/testing/fake_flatland.cc
void Present (fuchsia::ui::composition::PresentArgs args)
|fuchsia::ui::composition::Flatland|
Defined at line 114 of file ../../sdk/lib/ui/scenic/cpp/testing/fake_flatland.cc
void CreateView (fuchsia::ui::views::ViewCreationToken token, fidl::InterfaceRequest<fuchsia::ui::composition::ParentViewportWatcher> parent_viewport_watcher)
|fuchsia::ui::composition::Flatland|
Defined at line 130 of file ../../sdk/lib/ui/scenic/cpp/testing/fake_flatland.cc
void FakeFlatland (const FakeFlatland & )
Delete copy and assignment ctors.
Defined at line 131 of file ../../sdk/lib/ui/scenic/cpp/testing/fake_flatland.h
FakeFlatland & operator= (const FakeFlatland & )
Defined at line 132 of file ../../sdk/lib/ui/scenic/cpp/testing/fake_flatland.h
bool is_allocator_connected ()
Defined at line 134 of file ../../sdk/lib/ui/scenic/cpp/testing/fake_flatland.h
bool is_flatland_connected ()
Defined at line 136 of file ../../sdk/lib/ui/scenic/cpp/testing/fake_flatland.h
const std::string & debug_name ()
Defined at line 138 of file ../../sdk/lib/ui/scenic/cpp/testing/fake_flatland.h
void CreateView2 (fuchsia::ui::views::ViewCreationToken token, fuchsia::ui::views::ViewIdentityOnCreation view_identity, fuchsia::ui::composition::ViewBoundProtocols view_protocols, fidl::InterfaceRequest<fuchsia::ui::composition::ParentViewportWatcher> parent_viewport_watcher)
|fuchsia::ui::composition::Flatland|
Defined at line 138 of file ../../sdk/lib/ui/scenic/cpp/testing/fake_flatland.cc
const FakeGraph & graph ()
Defined at line 140 of file ../../sdk/lib/ui/scenic/cpp/testing/fake_flatland.h
GraphBindings & graph_bindings ()
Defined at line 142 of file ../../sdk/lib/ui/scenic/cpp/testing/fake_flatland.h
void CreateTransform (fuchsia::ui::composition::TransformId transform_id)
|fuchsia::ui::composition::Flatland|
Defined at line 177 of file ../../sdk/lib/ui/scenic/cpp/testing/fake_flatland.cc
void SetTranslation (fuchsia::ui::composition::TransformId transform_id, fuchsia::math::Vec translation)
|fuchsia::ui::composition::Flatland|
Defined at line 208 of file ../../sdk/lib/ui/scenic/cpp/testing/fake_flatland.cc
void SetScale (fuchsia::ui::composition::TransformId transform_id, fuchsia::math::VecF scale)
|fuchsia::ui::composition::Flatland|
Defined at line 229 of file ../../sdk/lib/ui/scenic/cpp/testing/fake_flatland.cc
void SetOrientation (fuchsia::ui::composition::TransformId transform_id, fuchsia::ui::composition::Orientation orientation)
|fuchsia::ui::composition::Flatland|
Defined at line 264 of file ../../sdk/lib/ui/scenic/cpp/testing/fake_flatland.cc
void SetOpacity (fuchsia::ui::composition::TransformId transform_id, float value)
|fuchsia::ui::composition::Flatland|
Defined at line 285 of file ../../sdk/lib/ui/scenic/cpp/testing/fake_flatland.cc
void SetClipBoundary (fuchsia::ui::composition::TransformId transform_id, std::unique_ptr<fuchsia::math::Rect> bounds)
|fuchsia::ui::composition::Flatland|
Defined at line 311 of file ../../sdk/lib/ui/scenic/cpp/testing/fake_flatland.cc
void SetImageOpacity (fuchsia::ui::composition::ContentId image_id, float opacity)
|fuchsia::ui::composition::Flatland|
Defined at line 337 of file ../../sdk/lib/ui/scenic/cpp/testing/fake_flatland.cc
void AddChild (fuchsia::ui::composition::TransformId parent_transform_id, fuchsia::ui::composition::TransformId child_transform_id)
|fuchsia::ui::composition::Flatland|
Defined at line 365 of file ../../sdk/lib/ui/scenic/cpp/testing/fake_flatland.cc
void RemoveChild (fuchsia::ui::composition::TransformId parent_transform_id, fuchsia::ui::composition::TransformId child_transform_id)
|fuchsia::ui::composition::Flatland|
Defined at line 417 of file ../../sdk/lib/ui/scenic/cpp/testing/fake_flatland.cc
void SetContent (fuchsia::ui::composition::TransformId transform_id, fuchsia::ui::composition::ContentId content_id)
|fuchsia::ui::composition::Flatland|
Defined at line 475 of file ../../sdk/lib/ui/scenic/cpp/testing/fake_flatland.cc
void SetRootTransform (fuchsia::ui::composition::TransformId transform_id)
|fuchsia::ui::composition::Flatland|
Defined at line 511 of file ../../sdk/lib/ui/scenic/cpp/testing/fake_flatland.cc
void CreateViewport (fuchsia::ui::composition::ContentId viewport_id, fuchsia::ui::views::ViewportCreationToken token, fuchsia::ui::composition::ViewportProperties properties, fidl::InterfaceRequest<fuchsia::ui::composition::ChildViewWatcher> child_view_watcher)
|fuchsia::ui::composition::Flatland|
Defined at line 529 of file ../../sdk/lib/ui/scenic/cpp/testing/fake_flatland.cc
void CreateImage (fuchsia::ui::composition::ContentId image_id, fuchsia::ui::composition::BufferCollectionImportToken import_token, uint32_t vmo_index, fuchsia::ui::composition::ImageProperties properties)
|fuchsia::ui::composition::Flatland|
Defined at line 568 of file ../../sdk/lib/ui/scenic/cpp/testing/fake_flatland.cc
void SetImageSampleRegion (fuchsia::ui::composition::ContentId image_id, fuchsia::math::RectF rect)
|fuchsia::ui::composition::Flatland|
Defined at line 599 of file ../../sdk/lib/ui/scenic/cpp/testing/fake_flatland.cc
void SetImageDestinationSize (fuchsia::ui::composition::ContentId image_id, fuchsia::math::SizeU size)
|fuchsia::ui::composition::Flatland|
Defined at line 628 of file ../../sdk/lib/ui/scenic/cpp/testing/fake_flatland.cc
void SetImageBlendingFunction (fuchsia::ui::composition::ContentId image_id, fuchsia::ui::composition::BlendMode blend_mode)
|fuchsia::ui::composition::Flatland|
Defined at line 657 of file ../../sdk/lib/ui/scenic/cpp/testing/fake_flatland.cc
void SetImageFlip (fuchsia::ui::composition::ContentId image_id, fuchsia::ui::composition::ImageFlip flip)
|fuchsia::ui::composition::Flatland|
Defined at line 686 of file ../../sdk/lib/ui/scenic/cpp/testing/fake_flatland.cc
void SetViewportProperties (fuchsia::ui::composition::ContentId viewport_id, fuchsia::ui::composition::ViewportProperties properties)
|fuchsia::ui::composition::Flatland|
Defined at line 715 of file ../../sdk/lib/ui/scenic/cpp/testing/fake_flatland.cc
void ReleaseTransform (fuchsia::ui::composition::TransformId transform_id)
|fuchsia::ui::composition::Flatland|
Defined at line 744 of file ../../sdk/lib/ui/scenic/cpp/testing/fake_flatland.cc
void ReleaseViewport (fuchsia::ui::composition::ContentId viewport_id, ReleaseViewportCallback callback)
|fuchsia::ui::composition::Flatland|
Defined at line 766 of file ../../sdk/lib/ui/scenic/cpp/testing/fake_flatland.cc
void ReleaseImage (fuchsia::ui::composition::ContentId image_id)
|fuchsia::ui::composition::Flatland|
Defined at line 795 of file ../../sdk/lib/ui/scenic/cpp/testing/fake_flatland.cc
void SetHitRegions (fuchsia::ui::composition::TransformId transform_id, std::vector<fuchsia::ui::composition::HitRegion> regions)
|fuchsia::ui::composition::Flatland|
Defined at line 823 of file ../../sdk/lib/ui/scenic/cpp/testing/fake_flatland.cc
void SetInfiniteHitRegion (fuchsia::ui::composition::TransformId transform_id, fuchsia::ui::composition::HitTestInteraction hit_test)
|fuchsia::ui::composition::Flatland|
Defined at line 844 of file ../../sdk/lib/ui/scenic/cpp/testing/fake_flatland.cc
void Clear ()
|fuchsia::ui::composition::Flatland|
Defined at line 865 of file ../../sdk/lib/ui/scenic/cpp/testing/fake_flatland.cc
void SetDebugName (std::string debug_name)
|fuchsia::ui::composition::Flatland|
Defined at line 870 of file ../../sdk/lib/ui/scenic/cpp/testing/fake_flatland.cc