Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
weixin_43355755
engine
提交
a15bc1be
E
engine
项目概览
weixin_43355755
/
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,发现更多精彩内容 >>
未验证
提交
a15bc1be
编写于
7月 07, 2020
作者:
H
Harry Terkelsen
提交者:
GitHub
7月 07, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[CanvasKit] Dispose the overlay surface when a platform view is disposed (#19546)
上级
3fe5edf8
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
21 addition
and
10 deletion
+21
-10
lib/web_ui/lib/src/engine/compositor/embedded_views.dart
lib/web_ui/lib/src/engine/compositor/embedded_views.dart
+12
-9
lib/web_ui/lib/src/engine/compositor/surface.dart
lib/web_ui/lib/src/engine/compositor/surface.dart
+9
-1
未找到文件。
lib/web_ui/lib/src/engine/compositor/embedded_views.dart
浏览文件 @
a15bc1be
...
...
@@ -2,7 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
part of
engine
;
/// This composites HTML views into the [ui.Scene].
...
...
@@ -255,7 +254,8 @@ class HtmlViewEmbedder {
final
CkPath
path
=
CkPath
();
path
.
addRRect
(
mutator
.
rrect
!);
_ensureSvgPathDefs
();
html
.
Element
pathDefs
=
_svgPathDefs
!.
querySelector
(
'#sk_path_defs'
)!;
html
.
Element
pathDefs
=
_svgPathDefs
!.
querySelector
(
'#sk_path_defs'
)!;
_clipPathCount
+=
1
;
html
.
Element
newClipPath
=
html
.
Element
.
html
(
'<clipPath id="svgClip
$_clipPathCount
">'
...
...
@@ -266,7 +266,8 @@ class HtmlViewEmbedder {
}
else
if
(
mutator
.
path
!=
null
)
{
final
CkPath
path
=
mutator
.
path
as
CkPath
;
_ensureSvgPathDefs
();
html
.
Element
pathDefs
=
_svgPathDefs
!.
querySelector
(
'#sk_path_defs'
)!;
html
.
Element
pathDefs
=
_svgPathDefs
!.
querySelector
(
'#sk_path_defs'
)!;
_clipPathCount
+=
1
;
html
.
Element
newClipPath
=
html
.
Element
.
html
(
'<clipPath id="svgClip
$_clipPathCount
">'
...
...
@@ -369,6 +370,8 @@ class HtmlViewEmbedder {
if
(
_overlays
[
viewId
]
!=
null
)
{
final
Overlay
overlay
=
_overlays
[
viewId
]!;
overlay
.
surface
.
htmlElement
?.
remove
();
overlay
.
surface
.
htmlElement
=
null
;
overlay
.
skSurface
?.
dispose
();
}
_overlays
.
remove
(
viewId
);
_currentCompositionParams
.
remove
(
viewId
);
...
...
@@ -402,10 +405,10 @@ class EmbeddedViewParams {
if
(
identical
(
this
,
other
))
{
return
true
;
}
return
other
is
EmbeddedViewParams
&&
other
.
offset
==
offset
&&
other
.
size
==
size
&&
other
.
mutators
==
mutators
;
return
other
is
EmbeddedViewParams
&&
other
.
offset
==
offset
&&
other
.
size
==
size
&&
other
.
mutators
==
mutators
;
}
int
get
hashCode
=>
ui
.
hashValues
(
offset
,
size
,
mutators
);
...
...
@@ -524,8 +527,8 @@ class MutatorsStack extends Iterable<Mutator> {
if
(
identical
(
other
,
this
))
{
return
true
;
}
return
other
is
MutatorsStack
&&
_listEquals
<
Mutator
>(
other
.
_mutators
,
_mutators
);
return
other
is
MutatorsStack
&&
_listEquals
<
Mutator
>(
other
.
_mutators
,
_mutators
);
}
int
get
hashCode
=>
ui
.
hashList
(
_mutators
);
...
...
lib/web_ui/lib/src/engine/compositor/surface.dart
浏览文件 @
a15bc1be
...
...
@@ -134,7 +134,7 @@ class Surface {
}
bool
_presentSurface
()
{
canvasKit
.
callMethod
(
'setCurrentContext'
,
<
dynamic
>[
_surface
!.
context
]);
canvasKit
.
callMethod
(
'setCurrentContext'
,
<
int
>[
_surface
!.
context
]);
_surface
!.
getCanvas
().
flush
();
return
true
;
}
...
...
@@ -159,8 +159,16 @@ class CkSurface {
int
height
()
=>
_surface
.
callMethod
(
'height'
);
void
dispose
()
{
if
(
_isDisposed
)
{
return
;
}
// Only resources from the current context can be disposed.
canvasKit
.
callMethod
(
'setCurrentContext'
,
<
int
>[
_glContext
]);
_surface
.
callMethod
(
'dispose'
);
_grContext
.
callMethod
(
'releaseResourcesAndAbandonContext'
);
_grContext
.
callMethod
(
'delete'
);
_isDisposed
=
true
;
}
bool
_isDisposed
=
false
;
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录