Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
sxychenjing
engine
提交
fd9a079a
E
engine
项目概览
sxychenjing
/
engine
与 Fork 源项目一致
从无法访问的项目Fork
通知
3
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,发现更多精彩内容 >>
未验证
提交
fd9a079a
编写于
1月 22, 2021
作者:
W
Wu Zhong
提交者:
GitHub
1月 21, 2021
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[iOS] Fixes DisplayLinkManager leaks (#22194)
上级
5cf3eaed
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
10 addition
and
28 deletion
+10
-28
shell/platform/darwin/ios/framework/Source/FlutterEngine.mm
shell/platform/darwin/ios/framework/Source/FlutterEngine.mm
+1
-1
shell/platform/darwin/ios/framework/Source/vsync_waiter_ios.h
...l/platform/darwin/ios/framework/Source/vsync_waiter_ios.h
+1
-3
shell/platform/darwin/ios/framework/Source/vsync_waiter_ios.mm
.../platform/darwin/ios/framework/Source/vsync_waiter_ios.mm
+8
-24
未找到文件。
shell/platform/darwin/ios/framework/Source/FlutterEngine.mm
浏览文件 @
fd9a079a
...
...
@@ -635,7 +635,7 @@ static void SetEntryPoint(flutter::Settings* settings, NSString* entrypoint, NSS
}
-
(
void
)
initializeDisplays
{
double
refresh_rate
=
[
[[
DisplayLinkManager
alloc
]
init
]
displayRefreshRate
];
double
refresh_rate
=
[
DisplayLinkManager
displayRefreshRate
];
auto
display
=
flutter
::
Display
(
refresh_rate
);
_shell
->
OnDisplayUpdates
(
flutter
::
DisplayUpdateType
::
kStartup
,
{
display
});
}
...
...
shell/platform/darwin/ios/framework/Source/vsync_waiter_ios.h
浏览文件 @
fd9a079a
...
...
@@ -12,8 +12,6 @@
@interface
DisplayLinkManager
:
NSObject
-
(
instancetype
)
init
;
//------------------------------------------------------------------------------
/// @brief The display refresh rate used for reporting purposes. The engine does not care
/// about this for frame scheduling. It is only used by tools for instrumentation. The
...
...
@@ -23,7 +21,7 @@
///
/// @return The refresh rate in frames per second.
///
-
(
double
)
displayRefreshRate
;
+
(
double
)
displayRefreshRate
;
@end
...
...
shell/platform/darwin/ios/framework/Source/vsync_waiter_ios.mm
浏览文件 @
fd9a079a
...
...
@@ -91,26 +91,16 @@ void VsyncWaiterIOS::AwaitVSync() {
@end
@implementation
DisplayLinkManager
{
fml
::
scoped_nsobject
<
CADisplayLink
>
display_link_
;
}
-
(
instancetype
)
init
{
self
=
[
super
init
];
if
(
self
)
{
display_link_
=
fml
::
scoped_nsobject
<
CADisplayLink
>
{
[[
CADisplayLink
displayLinkWithTarget
:
self
selector
:
@selector
(
onDisplayLink
:)]
retain
]
};
display_link_
.
get
().
paused
=
YES
;
}
@implementation
DisplayLinkManager
return
self
;
}
-
(
double
)
displayRefreshRate
{
+
(
double
)
displayRefreshRate
{
if
(
@available
(
iOS
10.3
,
*
))
{
auto
preferredFPS
=
display_link_
.
get
().
preferredFramesPerSecond
;
// iOS 10.0
fml
::
scoped_nsobject
<
CADisplayLink
>
display_link
=
fml
::
scoped_nsobject
<
CADisplayLink
>
{
[[
CADisplayLink
displayLinkWithTarget
:[[
DisplayLinkManager
new
]
autorelease
]
selector:
@selector
(
onDisplayLink
:)]
retain
]
};
display_link
.
get
().
paused
=
YES
;
auto
preferredFPS
=
display_link
.
get
().
preferredFramesPerSecond
;
// iOS 10.0
// From Docs:
// The default value for preferredFramesPerSecond is 0. When this value is 0, the preferred
...
...
@@ -131,10 +121,4 @@ void VsyncWaiterIOS::AwaitVSync() {
// no-op.
}
-
(
void
)
dealloc
{
[
display_link_
.
get
()
invalidate
];
[
super
dealloc
];
}
@end
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录