Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
qq_34031325
engine
提交
a9a53d40
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,发现更多精彩内容 >>
未验证
提交
a9a53d40
编写于
4月 26, 2018
作者:
C
Chinmay Garde
提交者:
GitHub
4月 26, 2018
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Use the non-thread-hostile FontProviderSyncPtr for font resolution. (#5105)
上级
e11905c6
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
17 addition
and
17 deletion
+17
-17
content_handler/application_runner.cc
content_handler/application_runner.cc
+12
-7
content_handler/fuchsia_font_manager.cc
content_handler/fuchsia_font_manager.cc
+2
-7
content_handler/fuchsia_font_manager.h
content_handler/fuchsia_font_manager.h
+3
-3
未找到文件。
content_handler/application_runner.cc
浏览文件 @
a9a53d40
...
...
@@ -108,13 +108,18 @@ void ApplicationRunner::SetupICU() {
}
void
ApplicationRunner
::
SetupGlobalFonts
()
{
fonts
::
FontProviderPtr
font_provider
(
host_context_
->
ConnectToEnvironmentService
<
fonts
::
FontProvider
>
());
auto
font_manager
=
sk_make_sp
<
txt
::
FuchsiaFontManager
>
(
std
::
move
(
font_provider
));
blink
::
FontCollection
::
ForProcess
()
.
GetFontCollection
()
->
SetDefaultFontManager
(
std
::
move
(
font_manager
));
// Fuchsia does not have per application (shell) fonts. Instead, all fonts
// must be obtained from the font provider.
auto
process_font_collection
=
blink
::
FontCollection
::
ForProcess
().
GetFontCollection
();
// Connect to the system font provider.
fonts
::
FontProviderSyncPtr
sync_font_provider
;
host_context_
->
ConnectToEnvironmentService
(
sync_font_provider
.
NewRequest
());
// Set the default font manager.
process_font_collection
->
SetDefaultFontManager
(
sk_make_sp
<
txt
::
FuchsiaFontManager
>
(
std
::
move
(
sync_font_provider
)));
}
void
ApplicationRunner
::
FireTerminationCallbackIfNecessary
()
{
...
...
content_handler/fuchsia_font_manager.cc
浏览文件 @
a9a53d40
...
...
@@ -54,7 +54,7 @@ fonts::FontSlant ToFontSlant(SkFontStyle::Slant slant) {
}
// anonymous namespace
FuchsiaFontManager
::
FuchsiaFontManager
(
fonts
::
FontProviderPtr
provider
)
FuchsiaFontManager
::
FuchsiaFontManager
(
fonts
::
FontProvider
Sync
Ptr
provider
)
:
font_provider_
(
std
::
move
(
provider
))
{}
FuchsiaFontManager
::~
FuchsiaFontManager
()
=
default
;
...
...
@@ -97,12 +97,7 @@ SkTypeface* FuchsiaFontManager::onMatchFamilyStyle(
request
.
slant
=
ToFontSlant
(
style
.
slant
());
fonts
::
FontResponsePtr
response
;
font_provider_
->
GetFont
(
std
::
move
(
request
),
[
&
response
](
fonts
::
FontResponsePtr
r
)
{
response
=
std
::
move
(
r
);
});
font_provider_
.
WaitForResponse
();
if
(
!
response
)
{
if
(
!
font_provider_
->
GetFont
(
std
::
move
(
request
),
&
response
))
{
FXL_DLOG
(
ERROR
)
<<
"Unable to contact the font provider. Did you run "
"Flutter in an environment that has a font manager?"
;
return
nullptr
;
...
...
content_handler/fuchsia_font_manager.h
浏览文件 @
a9a53d40
...
...
@@ -17,8 +17,8 @@
#ifndef TXT_FUCHSIA_FONT_MANAGER_H_
#define TXT_FUCHSIA_FONT_MANAGER_H_
#include <memory>
#include <fuchsia/cpp/fonts.h>
#include <memory>
#include "lib/fxl/macros.h"
#include "third_party/skia/include/core/SkStream.h"
#include "third_party/skia/include/core/SkTypeface.h"
...
...
@@ -28,7 +28,7 @@ namespace txt {
class
FuchsiaFontManager
final
:
public
SkFontMgr
{
public:
FuchsiaFontManager
(
fonts
::
FontProviderPtr
provider
);
FuchsiaFontManager
(
fonts
::
FontProvider
Sync
Ptr
provider
);
~
FuchsiaFontManager
()
override
;
...
...
@@ -81,7 +81,7 @@ class FuchsiaFontManager final : public SkFontMgr {
FXL_DISALLOW_COPY_AND_ASSIGN
(
FuchsiaFontManager
);
private:
mutable
fonts
::
FontProviderPtr
font_provider_
;
mutable
fonts
::
FontProvider
Sync
Ptr
font_provider_
;
};
}
// namespace txt
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录