Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
weixin_43355755
engine
提交
ed0f477c
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,发现更多精彩内容 >>
未验证
提交
ed0f477c
编写于
10月 29, 2020
作者:
M
Matej Knopp
提交者:
GitHub
10月 29, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Use preTranslate when applying offset to matrix (#21648)
上级
caf32d5b
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
19 addition
and
2 deletion
+19
-2
flow/layers/opacity_layer.cc
flow/layers/opacity_layer.cc
+1
-1
flow/layers/opacity_layer_unittests.cc
flow/layers/opacity_layer_unittests.cc
+17
-0
flow/layers/picture_layer.cc
flow/layers/picture_layer.cc
+1
-1
未找到文件。
flow/layers/opacity_layer.cc
浏览文件 @
ed0f477c
...
...
@@ -17,7 +17,7 @@ void OpacityLayer::Preroll(PrerollContext* context, const SkMatrix& matrix) {
FML_DCHECK
(
!
GetChildContainer
()
->
layers
().
empty
());
// We can't be a leaf.
SkMatrix
child_matrix
=
matrix
;
child_matrix
.
p
ost
Translate
(
offset_
.
fX
,
offset_
.
fY
);
child_matrix
.
p
re
Translate
(
offset_
.
fX
,
offset_
.
fY
);
// Similar to what's done in TransformLayer::Preroll, we have to apply the
// reverse transformation to the cull rect to properly cull child layers.
...
...
flow/layers/opacity_layer_unittests.cc
浏览文件 @
ed0f477c
...
...
@@ -54,6 +54,23 @@ TEST_F(OpacityLayerTest, PaintBeforePreollDies) {
}
#endif
TEST_F
(
OpacityLayerTest
,
TranslateChildren
)
{
SkPath
child_path1
;
child_path1
.
addRect
(
10.0
f
,
10.0
f
,
20.0
f
,
20.
f
);
SkPaint
child_paint1
(
SkColors
::
kGray
);
auto
layer
=
std
::
make_shared
<
OpacityLayer
>
(
0.5
,
SkPoint
::
Make
(
10
,
10
));
auto
mock_layer1
=
std
::
make_shared
<
MockLayer
>
(
child_path1
,
child_paint1
);
layer
->
Add
(
mock_layer1
);
auto
initial_transform
=
SkMatrix
::
Scale
(
2.0
,
2.0
);
layer
->
Preroll
(
preroll_context
(),
initial_transform
);
SkRect
layer_bounds
=
mock_layer1
->
paint_bounds
();
mock_layer1
->
parent_matrix
().
mapRect
(
&
layer_bounds
);
EXPECT_EQ
(
layer_bounds
,
SkRect
::
MakeXYWH
(
40
,
40
,
20
,
20
));
}
TEST_F
(
OpacityLayerTest
,
ChildIsCached
)
{
const
SkAlpha
alpha_half
=
255
/
2
;
auto
initial_transform
=
SkMatrix
::
Translate
(
50.0
,
25.5
);
...
...
flow/layers/picture_layer.cc
浏览文件 @
ed0f477c
...
...
@@ -30,7 +30,7 @@ void PictureLayer::Preroll(PrerollContext* context, const SkMatrix& matrix) {
TRACE_EVENT0
(
"flutter"
,
"PictureLayer::RasterCache (Preroll)"
);
SkMatrix
ctm
=
matrix
;
ctm
.
p
ost
Translate
(
offset_
.
x
(),
offset_
.
y
());
ctm
.
p
re
Translate
(
offset_
.
x
(),
offset_
.
y
());
#ifndef SUPPORT_FRACTIONAL_TRANSLATION
ctm
=
RasterCache
::
GetIntegralTransCTM
(
ctm
);
#endif
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录