Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
sxychenjing
engine
提交
fe92a512
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,发现更多精彩内容 >>
未验证
提交
fe92a512
编写于
10月 30, 2017
作者:
C
Chinmay Garde
提交者:
GitHub
10月 30, 2017
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix iOS build to account for Shell rasterizer registration updates. (#4295)
上级
eabcf3aa
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
14 addition
and
6 deletion
+14
-6
shell/platform/darwin/ios/framework/Source/FlutterView.mm
shell/platform/darwin/ios/framework/Source/FlutterView.mm
+13
-5
shell/platform/darwin/ios/platform_view_ios.mm
shell/platform/darwin/ios/platform_view_ios.mm
+1
-1
未找到文件。
shell/platform/darwin/ios/framework/Source/FlutterView.mm
浏览文件 @
fe92a512
...
...
@@ -7,6 +7,7 @@
#include "flutter/common/settings.h"
#include "flutter/common/threads.h"
#include "flutter/flow/layers/layer_tree.h"
#include "flutter/shell/common/platform_view.h"
#include "flutter/shell/common/rasterizer.h"
#include "flutter/shell/common/shell.h"
#include "lib/fxl/synchronization/waitable_event.h"
...
...
@@ -88,17 +89,24 @@ void SnapshotRasterizer(fxl::WeakPtr<shell::Rasterizer> rasterizer,
SkCGDrawBitmap
(
context
,
bitmap
,
0
,
0
);
}
static
fxl
::
WeakPtr
<
shell
::
Rasterizer
>
GetRandomRasterizer
()
{
fxl
::
WeakPtr
<
shell
::
Rasterizer
>
rasterizer
;
shell
::
Shell
::
Shared
().
IteratePlatformViews
([
&
rasterizer
](
shell
::
PlatformView
*
view
)
->
bool
{
rasterizer
=
view
->
rasterizer
().
GetWeakRasterizerPtr
();
// We just grab the first rasterizer so there is no need to iterate
// further.
return
false
;
});
return
rasterizer
;
}
void
SnapshotContents
(
CGContextRef
context
,
bool
is_opaque
)
{
// TODO(chinmaygarde): Currently, there is no way to get the rasterizer for
// a particular platform view from the shell. But, for now, we only have one
// platform view. So use that. Once we support multiple platform views, the
// shell will need to provide a way to get the rasterizer for a specific
// platform view.
std
::
vector
<
fxl
::
WeakPtr
<
shell
::
Rasterizer
>>
registered_rasterizers
;
shell
::
Shell
::
Shared
().
GetRasterizers
(
&
registered_rasterizers
);
for
(
auto
&
rasterizer
:
registered_rasterizers
)
{
SnapshotRasterizer
(
rasterizer
,
context
,
is_opaque
);
}
SnapshotRasterizer
(
GetRandomRasterizer
(),
context
,
is_opaque
);
}
void
SnapshotContentsSync
(
CGContextRef
context
,
UIView
*
view
)
{
...
...
shell/platform/darwin/ios/platform_view_ios.mm
浏览文件 @
fe92a512
...
...
@@ -31,7 +31,7 @@ void PlatformViewIOS::Attach() {
void
PlatformViewIOS
::
Attach
(
fxl
::
Closure
firstFrameCallback
)
{
CreateEngine
();
PostAddToShellTask
();
if
(
firstFrameCallback
)
{
firstFrameCallback_
=
firstFrameCallback
;
rasterizer_
->
AddNextFrameCallback
([
weakSelf
=
GetWeakPtr
()]
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录