68 :
public fuchsia::ui::composition::testing::Allocator_TestBase,
69 public fuchsia::ui::composition::testing::Flatland_TestBase {
72 std::function<void(fuchsia::ui::composition::PresentArgs)>;
81 const std::string&
debug_name()
const {
return debug_name_; }
90 async_dispatcher_t* dispatcher =
nullptr);
97 async_dispatcher_t* dispatcher =
nullptr);
111 fuchsia::ui::composition::OnNextFrameBeginValues
112 on_next_frame_begin_values);
118 fuchsia::scenic::scheduling::FramePresentedInfo frame_presented_info);
121 struct ParentViewportWatcher :
public fuchsia::ui::composition::testing::
122 ParentViewportWatcher_TestBase {
124 ParentViewportWatcher(
125 fuchsia::ui::views::ViewCreationToken view_token,
126 fuchsia::ui::views::ViewIdentityOnCreation view_identity,
127 fuchsia::ui::composition::ViewBoundProtocols view_protocols,
128 fidl::InterfaceRequest<fuchsia::ui::composition::ParentViewportWatcher>
129 parent_viewport_watcher,
130 async_dispatcher_t* dispatcher);
131 ParentViewportWatcher(ParentViewportWatcher&& other);
132 ~ParentViewportWatcher()
override;
135 void NotImplemented_(
const std::string&
name)
override;
138 void GetLayout(GetLayoutCallback
callback)
override;
141 void GetStatus(GetStatusCallback
callback)
override;
143 fuchsia::ui::views::ViewCreationToken view_token;
144 fuchsia::ui::views::ViewIdentityOnCreation view_identity;
145 fuchsia::ui::composition::ViewBoundProtocols view_protocols;
146 fidl::Binding<fuchsia::ui::composition::ParentViewportWatcher>
147 parent_viewport_watcher;
150 struct ChildViewWatcher
151 :
public fuchsia::ui::composition::testing::ChildViewWatcher_TestBase {
154 fuchsia::ui::views::ViewportCreationToken viewport_token,
155 fidl::InterfaceRequest<fuchsia::ui::composition::ChildViewWatcher>
157 async_dispatcher_t* dispatcher);
158 ChildViewWatcher(ChildViewWatcher&& other);
159 ~ChildViewWatcher()
override;
162 void NotImplemented_(
const std::string&
name)
override;
165 void GetStatus(GetStatusCallback
callback)
override;
167 fuchsia::ui::views::ViewportCreationToken viewport_token;
168 fidl::Binding<fuchsia::ui::composition::ChildViewWatcher>
172 struct ImageBinding {
173 fuchsia::ui::composition::BufferCollectionImportToken import_token;
176 struct BufferCollectionBinding {
177 fuchsia::ui::composition::BufferCollectionExportToken export_token;
178 fuchsia::sysmem::BufferCollectionTokenHandle sysmem_token;
180 fuchsia::ui::composition::RegisterBufferCollectionUsage
usage;
183 struct GraphBindings {
184 std::optional<std::pair<zx_koid_t, ParentViewportWatcher>> viewport_watcher;
185 std::unordered_map<zx_koid_t, ChildViewWatcher> view_watchers;
186 std::unordered_map<zx_koid_t, ImageBinding>
images;
187 std::unordered_map<zx_koid_t, BufferCollectionBinding> buffer_collections;
196 fuchsia::ui::composition::RegisterBufferCollectionArgs
args,
197 RegisterBufferCollectionCallback
callback)
override;
200 void Present(fuchsia::ui::composition::PresentArgs
args)
override;
204 fuchsia::ui::views::ViewCreationToken token,
205 fidl::InterfaceRequest<fuchsia::ui::composition::ParentViewportWatcher>
206 parent_viewport_watcher)
override;
210 fuchsia::ui::views::ViewCreationToken token,
211 fuchsia::ui::views::ViewIdentityOnCreation view_identity,
212 fuchsia::ui::composition::ViewBoundProtocols view_protocols,
213 fidl::InterfaceRequest<fuchsia::ui::composition::ParentViewportWatcher>
214 parent_viewport_watcher)
override;
218 fuchsia::ui::composition::TransformId transform_id)
override;
221 void SetTranslation(fuchsia::ui::composition::TransformId transform_id,
222 fuchsia::math::Vec translation)
override;
225 void SetScale(fuchsia::ui::composition::TransformId transform_id,
226 fuchsia::math::VecF
scale)
override;
230 fuchsia::ui::composition::TransformId transform_id,
231 fuchsia::ui::composition::Orientation orientation)
override;
234 void SetOpacity(fuchsia::ui::composition::TransformId transform_id,
235 float value)
override;
238 void SetClipBoundary(fuchsia::ui::composition::TransformId transform_id,
239 std::unique_ptr<fuchsia::math::Rect> bounds)
override;
248 fuchsia::ui::composition::TransformId parent_transform_id,
249 fuchsia::ui::composition::TransformId child_transform_id)
override;
253 fuchsia::ui::composition::TransformId parent_transform_id,
254 fuchsia::ui::composition::TransformId child_transform_id)
override;
257 void SetContent(fuchsia::ui::composition::TransformId transform_id,
258 fuchsia::ui::composition::ContentId content_id)
override;
262 fuchsia::ui::composition::TransformId transform_id)
override;
266 fuchsia::ui::composition::ContentId viewport_id,
267 fuchsia::ui::views::ViewportCreationToken token,
268 fuchsia::ui::composition::ViewportProperties properties,
269 fidl::InterfaceRequest<fuchsia::ui::composition::ChildViewWatcher>
270 child_view_watcher)
override;
274 fuchsia::ui::composition::ContentId image_id,
275 fuchsia::ui::composition::BufferCollectionImportToken import_token,
277 fuchsia::ui::composition::ImageProperties properties)
override;
281 fuchsia::math::RectF rect)
override;
285 fuchsia::math::SizeU size)
override;
289 fuchsia::ui::composition::ContentId image_id,
290 fuchsia::ui::composition::BlendMode blend_mode)
override;
294 fuchsia::ui::composition::ContentId viewport_id,
295 fuchsia::ui::composition::ViewportProperties properties)
override;
299 fuchsia::ui::composition::TransformId transform_id)
override;
303 ReleaseViewportCallback
callback)
override;
306 void ReleaseImage(fuchsia::ui::composition::ContentId image_id)
override;
310 fuchsia::ui::composition::TransformId transform_id,
311 std::vector<fuchsia::ui::composition::HitRegion> regions)
override;
315 fuchsia::ui::composition::TransformId transform_id,
316 fuchsia::ui::composition::HitTestInteraction hit_test)
override;
319 void Clear()
override;
324 fidl::Binding<fuchsia::ui::composition::Allocator> allocator_binding_;
325 fidl::Binding<fuchsia::ui::composition::Flatland> flatland_binding_;
326 GraphBindings graph_bindings_;
329 FakeGraph pending_graph_;
330 FakeGraph current_graph_;
339 std::pair<std::weak_ptr<FakeTransform>, std::weak_ptr<FakeTransform>>>
342 std::string debug_name_;