Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
liujiuri
engine
提交
789c1e79
E
engine
项目概览
liujiuri
/
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,发现更多精彩内容 >>
提交
789c1e79
编写于
7月 22, 2016
作者:
J
Jason Simmons
提交者:
GitHub
7月 22, 2016
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Disable rendering if the rasterizer can not create a GL/EGL context (#2817)
Fixes
https://github.com/flutter/flutter/issues/4972
上级
9eb5df41
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
25 addition
and
10 deletion
+25
-10
sky/shell/gpu/direct/ganesh_canvas.cc
sky/shell/gpu/direct/ganesh_canvas.cc
+6
-2
sky/shell/gpu/direct/ganesh_canvas.h
sky/shell/gpu/direct/ganesh_canvas.h
+1
-1
sky/shell/gpu/direct/rasterizer_direct.cc
sky/shell/gpu/direct/rasterizer_direct.cc
+18
-7
未找到文件。
sky/shell/gpu/direct/ganesh_canvas.cc
浏览文件 @
789c1e79
...
@@ -27,14 +27,18 @@ GaneshCanvas::GaneshCanvas() {
...
@@ -27,14 +27,18 @@ GaneshCanvas::GaneshCanvas() {
GaneshCanvas
::~
GaneshCanvas
()
{
GaneshCanvas
::~
GaneshCanvas
()
{
}
}
void
GaneshCanvas
::
SetupGrGLInterface
()
{
bool
GaneshCanvas
::
SetupGrGLInterface
()
{
sk_surface_
=
nullptr
;
sk_surface_
=
nullptr
;
gr_context_
=
skia
::
AdoptRef
(
GrContext
::
Create
(
gr_context_
=
skia
::
AdoptRef
(
GrContext
::
Create
(
kOpenGL_GrBackend
,
kOpenGL_GrBackend
,
reinterpret_cast
<
GrBackendContext
>
(
GrGLCreateNativeInterface
())));
reinterpret_cast
<
GrBackendContext
>
(
GrGLCreateNativeInterface
())));
DCHECK
(
gr_context_
);
if
(
!
gr_context_
)
return
false
;
gr_context_
->
setResourceCacheLimits
(
kMaxGaneshResourceCacheCount
,
gr_context_
->
setResourceCacheLimits
(
kMaxGaneshResourceCacheCount
,
kMaxGaneshResourceCacheBytes
);
kMaxGaneshResourceCacheBytes
);
return
true
;
}
}
bool
GaneshCanvas
::
SelectPixelConfig
(
GrPixelConfig
*
config
)
{
bool
GaneshCanvas
::
SelectPixelConfig
(
GrPixelConfig
*
config
)
{
...
...
sky/shell/gpu/direct/ganesh_canvas.h
浏览文件 @
789c1e79
...
@@ -21,7 +21,7 @@ class GaneshCanvas {
...
@@ -21,7 +21,7 @@ class GaneshCanvas {
GaneshCanvas
();
GaneshCanvas
();
~
GaneshCanvas
();
~
GaneshCanvas
();
void
SetupGrGLInterface
();
bool
SetupGrGLInterface
();
SkCanvas
*
GetCanvas
(
int32_t
fbo
,
const
SkISize
&
size
);
SkCanvas
*
GetCanvas
(
int32_t
fbo
,
const
SkISize
&
size
);
...
...
sky/shell/gpu/direct/rasterizer_direct.cc
浏览文件 @
789c1e79
...
@@ -52,12 +52,19 @@ void RasterizerDirect::Setup(PlatformView* platform_view,
...
@@ -52,12 +52,19 @@ void RasterizerDirect::Setup(PlatformView* platform_view,
// The context needs to be made current before the GrGL interface can be
// The context needs to be made current before the GrGL interface can be
// setup.
// setup.
bool
success
=
platform_view
->
ContextMakeCurrent
();
bool
success
=
platform_view
->
ContextMakeCurrent
();
if
(
success
)
{
success
=
ganesh_canvas_
.
SetupGrGLInterface
();
if
(
!
success
)
LOG
(
ERROR
)
<<
"Could not create the GL interface"
;
}
else
{
LOG
(
ERROR
)
<<
"Could not make the context current for initial GL setup"
;
}
CHECK
(
success
)
<<
"Could not make the context current for initial GL setup"
;
if
(
success
)
{
platform_view_
=
platform_view
;
ganesh_canvas_
.
SetupGrGLInterface
();
}
else
{
LOG
(
ERROR
)
<<
"WARNING: Flutter will be unable to render to the display"
;
platform_view_
=
platform_view
;
}
continuation
.
Run
();
continuation
.
Run
();
...
@@ -80,6 +87,11 @@ void RasterizerDirect::Draw(uint64_t layer_tree_ptr,
...
@@ -80,6 +87,11 @@ void RasterizerDirect::Draw(uint64_t layer_tree_ptr,
const
DrawCallback
&
callback
)
{
const
DrawCallback
&
callback
)
{
TRACE_EVENT0
(
"flutter"
,
"RasterizerDirect::Draw"
);
TRACE_EVENT0
(
"flutter"
,
"RasterizerDirect::Draw"
);
if
(
platform_view_
==
nullptr
)
{
callback
.
Run
();
return
;
}
std
::
unique_ptr
<
flow
::
LayerTree
>
layer_tree
(
std
::
unique_ptr
<
flow
::
LayerTree
>
layer_tree
(
reinterpret_cast
<
flow
::
LayerTree
*>
(
layer_tree_ptr
));
reinterpret_cast
<
flow
::
LayerTree
*>
(
layer_tree_ptr
));
...
@@ -88,8 +100,7 @@ void RasterizerDirect::Draw(uint64_t layer_tree_ptr,
...
@@ -88,8 +100,7 @@ void RasterizerDirect::Draw(uint64_t layer_tree_ptr,
platform_view_
->
Resize
(
size
);
platform_view_
->
Resize
(
size
);
}
}
if
(
platform_view_
==
nullptr
||
!
platform_view_
->
ContextMakeCurrent
()
||
if
(
!
platform_view_
->
ContextMakeCurrent
()
||
!
layer_tree
->
root_layer
())
{
!
layer_tree
->
root_layer
())
{
callback
.
Run
();
callback
.
Run
();
return
;
return
;
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录