Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
qq_34031325
engine
提交
8d6ded45
E
engine
项目概览
qq_34031325
/
engine
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
E
engine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
8d6ded45
编写于
4月 27, 2017
作者:
J
Jason Simmons
提交者:
GitHub
4月 27, 2017
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add a second per-frame callback that is invoked after the microtask queue is drained (#3632)
See
https://github.com/flutter/flutter/issues/7626
上级
2bb12e57
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
17 addition
and
0 deletion
+17
-0
lib/ui/hooks.dart
lib/ui/hooks.dart
+5
-0
lib/ui/window.dart
lib/ui/window.dart
+6
-0
lib/ui/window/window.cc
lib/ui/window/window.cc
+5
-0
runtime/dart_vm_entry_points.txt
runtime/dart_vm_entry_points.txt
+1
-0
未找到文件。
lib/ui/hooks.dart
浏览文件 @
8d6ded45
...
...
@@ -83,6 +83,11 @@ void _beginFrame(int microseconds) {
window
.
onBeginFrame
(
new
Duration
(
microseconds:
microseconds
));
}
void
_drawFrame
(
)
{
if
(
window
.
onDrawFrame
!=
null
)
window
.
onDrawFrame
();
}
// If this value changes, update the encoding code in the following files:
//
// * pointer_data.cc
...
...
lib/ui/window.dart
浏览文件 @
8d6ded45
...
...
@@ -149,6 +149,12 @@ class Window {
/// last time this callback was invoked.
FrameCallback
onBeginFrame
;
/// A callback that is invoked for each frame after onBeginFrame has
/// completed and after the microtask queue has been drained. This can be
/// used to implement a second phase of frame rendering that happens
/// after any deferred work queued by the onBeginFrame phase.
VoidCallback
onDrawFrame
;
/// A callback that is invoked when pointer data is available.
PointerDataPacketCallback
onPointerDataPacket
;
...
...
lib/ui/window/window.cc
浏览文件 @
8d6ded45
...
...
@@ -10,6 +10,7 @@
#include "lib/tonic/converter/dart_converter.h"
#include "lib/tonic/dart_args.h"
#include "lib/tonic/dart_library_natives.h"
#include "lib/tonic/dart_microtask_queue.h"
#include "lib/tonic/logging/dart_invoke.h"
#include "lib/tonic/typed_data/dart_byte_data.h"
...
...
@@ -221,6 +222,10 @@ void Window::BeginFrame(ftl::TimePoint frameTime) {
{
Dart_NewInteger
(
microseconds
),
});
tonic
::
DartMicrotaskQueue
::
RunMicrotasks
();
DartInvokeField
(
library_
.
value
(),
"_drawFrame"
,
{});
}
void
Window
::
CompletePlatformMessageEmptyResponse
(
int
response_id
)
{
...
...
runtime/dart_vm_entry_points.txt
浏览文件 @
8d6ded45
...
...
@@ -5,6 +5,7 @@ dart:isolate,::,_getIsolateScheduleImmediateClosure
dart:isolate,::,_setupHooks
dart:isolate,::,_startMainIsolate
dart:ui,::,_beginFrame
dart:ui,::,_drawFrame
dart:ui,::,_dispatchPlatformMessage
dart:ui,::,_dispatchPointerDataPacket
dart:ui,::,_dispatchSemanticsAction
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录