提交 4f370b3e 编写于 作者: A Adam Barth 提交者: GitHub

Add more wiring for new semantics backend (#3111)

Previously the Dart entry points weren't wired up.
上级 192bc174
......@@ -4,8 +4,8 @@
#include "flutter/lib/ui/dart_ui.h"
#include "flutter/lib/ui/compositing/scene_builder.h"
#include "flutter/lib/ui/compositing/scene.h"
#include "flutter/lib/ui/compositing/scene_builder.h"
#include "flutter/lib/ui/dart_runtime_hooks.h"
#include "flutter/lib/ui/mojo_services.h"
#include "flutter/lib/ui/painting/canvas.h"
......@@ -18,6 +18,8 @@
#include "flutter/lib/ui/painting/path.h"
#include "flutter/lib/ui/painting/picture.h"
#include "flutter/lib/ui/painting/picture_recorder.h"
#include "flutter/lib/ui/semantics/semantics_update.h"
#include "flutter/lib/ui/semantics/semantics_update_builder.h"
#include "flutter/lib/ui/text/paragraph.h"
#include "flutter/lib/ui/text/paragraph_builder.h"
#include "flutter/lib/ui/window/window.h"
......@@ -63,6 +65,8 @@ void DartUI::InitForGlobal() {
PictureRecorder::RegisterNatives(g_natives);
Scene::RegisterNatives(g_natives);
SceneBuilder::RegisterNatives(g_natives);
SemanticsUpdate::RegisterNatives(g_natives);
SemanticsUpdateBuilder::RegisterNatives(g_natives);
Window::RegisterNatives(g_natives);
}
}
......
......@@ -35,6 +35,17 @@ void Render(Dart_NativeArguments args) {
UIDartState::Current()->window()->client()->Render(scene);
}
void UpdateSemantics(Dart_NativeArguments args) {
Dart_Handle exception = nullptr;
SemanticsUpdate* update =
tonic::DartConverter<SemanticsUpdate*>::FromArguments(args, 1, exception);
if (exception) {
Dart_ThrowException(exception);
return;
}
UIDartState::Current()->window()->client()->UpdateSemantics(update);
}
void SendPlatformMessage(Dart_Handle window,
const std::string& name,
Dart_Handle callback,
......@@ -188,10 +199,12 @@ void Window::OnAppLifecycleStateChanged(sky::AppLifecycleState state) {
}
void Window::RegisterNatives(tonic::DartLibraryNatives* natives) {
natives->Register(
{{"Window_scheduleFrame", ScheduleFrame, 1, true},
{"Window_render", Render, 2, true},
{"Window_sendPlatformMessage", _SendPlatformMessage, 4, true}});
natives->Register({
{"Window_scheduleFrame", ScheduleFrame, 1, true},
{"Window_sendPlatformMessage", _SendPlatformMessage, 4, true},
{"Window_render", Render, 2, true},
{"Window_updateSemantics", UpdateSemantics, 2, true},
});
}
} // namespace blink
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册