Add more wiring for new semantics backend (flutter/engine#3111)
Previously the Dart entry points weren't wired up.
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user