forked from xuzhongxing/fuchsia-notes
-
Notifications
You must be signed in to change notification settings - Fork 0
/
hello_base_view.txt
33 lines (26 loc) · 1.44 KB
/
hello_base_view.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
main
scenic::CreateScenicSessionPtrAndListenerRequest(scenic.get()),
scenic->CreateSession(session.NewRequest(), listener_handle.Bind());
In scenic process:
CreateSessionImmediately(std::move(session_request), std::move(listener));
ShadertoyEmbedderView::ShadertoyEmbedderView
BaseView::BaseView(
View::View
session->Enqueue(NewCreateViewCmd(id(), std::move(token), debug_name));
SystemTypeForCmd(cmd);
SessionHandler::DispatchCommand
buffered_commands_.emplace_back(std::move(command.gfx()));
把createview cmd放入buffer
root_presenter->PresentView(std::move(view_holder_token), nullptr);
===>
转入root presenter进程, see root_presenter.txt
view->LaunchShadertoyClient();
LaunchAppAndCreateView("shadertoy_client");
zx::eventpair::create(0u, &view_holder_token, &view_token);
view event pair用于连接在不同进程中的2个view, 把child view放到viewholder里
viewholder要后创建,创建时会去找child view
info.view_provider->CreateView(std::move(view_token),
info.services_from_child_view.NewRequest(),
std::move(services_to_child_view));
rpc调用shadertoy里的CreateView
这里也没有进入present循环