Add more wiring for new semantics backend (flutter/engine#3111)

Previously the Dart entry points weren't wired up.
This commit is contained in:
Adam Barth
2016-10-10 14:51:22 -07:00
committed by GitHub
parent c0aa11d81e
commit be2271e05e
2 changed files with 22 additions and 5 deletions

View File

@@ -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);
}
}

View File

@@ -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