Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
sxychenjing
engine
提交
2c3fc4aa
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,发现更多精彩内容 >>
未验证
提交
2c3fc4aa
编写于
10月 01, 2020
作者:
D
David Worsham
提交者:
GitHub
10月 01, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
embedder: Exclude GL code (#21544)
上级
fc0616f8
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
65 addition
and
25 deletion
+65
-25
shell/platform/embedder/embedder.cc
shell/platform/embedder/embedder.cc
+10
-3
shell/platform/embedder/embedder_engine.cc
shell/platform/embedder/embedder_engine.cc
+22
-5
shell/platform/embedder/embedder_engine.h
shell/platform/embedder/embedder_engine.h
+12
-3
shell/platform/embedder/platform_view_embedder.cc
shell/platform/embedder/platform_view_embedder.cc
+10
-8
shell/platform/embedder/platform_view_embedder.h
shell/platform/embedder/platform_view_embedder.h
+11
-6
未找到文件。
shell/platform/embedder/embedder.cc
浏览文件 @
2c3fc4aa
...
...
@@ -59,6 +59,10 @@ extern const intptr_t kPlatformStrongDillSize;
#include "rapidjson/rapidjson.h"
#include "rapidjson/writer.h"
#ifdef SHELL_ENABLE_GL
#include "flutter/shell/platform/embedder/embedder_external_texture_gl.h"
#endif
const
int32_t
kFlutterSemanticsNodeIdBatchEnd
=
-
1
;
const
int32_t
kFlutterSemanticsCustomActionIdBatchEnd
=
-
1
;
...
...
@@ -1034,11 +1038,11 @@ FlutterEngineResult FlutterEngineInitialize(size_t version,
return
std
::
make_unique
<
flutter
::
Rasterizer
>
(
shell
);
};
#ifdef SHELL_ENABLE_GL
// TODO(chinmaygarde): This is the wrong spot for this. It belongs in the
// platform view jump table.
flutter
::
EmbedderExternalTextureGL
::
ExternalTextureCallback
external_texture_callback
;
#ifdef SHELL_ENABLE_GL
if
(
config
->
type
==
kOpenGL
)
{
const
FlutterOpenGLRendererConfig
*
open_gl_config
=
&
config
->
open_gl
;
if
(
SAFE_ACCESS
(
open_gl_config
,
gl_external_texture_frame_callback
,
...
...
@@ -1135,8 +1139,11 @@ FlutterEngineResult FlutterEngineInitialize(size_t version,
std
::
move
(
settings
),
//
std
::
move
(
run_configuration
),
//
on_create_platform_view
,
//
on_create_rasterizer
,
//
external_texture_callback
//
on_create_rasterizer
//
#ifdef SHELL_ENABLE_GL
,
external_texture_callback
//
#endif
);
// Release the ownership of the embedder engine to the caller.
...
...
shell/platform/embedder/embedder_engine.cc
浏览文件 @
2c3fc4aa
...
...
@@ -27,16 +27,24 @@ EmbedderEngine::EmbedderEngine(
flutter
::
Settings
settings
,
RunConfiguration
run_configuration
,
Shell
::
CreateCallback
<
PlatformView
>
on_create_platform_view
,
Shell
::
CreateCallback
<
Rasterizer
>
on_create_rasterizer
,
EmbedderExternalTextureGL
::
ExternalTextureCallback
external_texture_callback
)
Shell
::
CreateCallback
<
Rasterizer
>
on_create_rasterizer
#ifdef SHELL_ENABLE_GL
,
EmbedderExternalTextureGL
::
ExternalTextureCallback
external_texture_callback
#endif
)
:
thread_host_
(
std
::
move
(
thread_host
)),
task_runners_
(
task_runners
),
run_configuration_
(
std
::
move
(
run_configuration
)),
shell_args_
(
std
::
make_unique
<
ShellArgs
>
(
std
::
move
(
settings
),
on_create_platform_view
,
on_create_rasterizer
)),
external_texture_callback_
(
external_texture_callback
)
{}
on_create_rasterizer
))
#ifdef SHELL_ENABLE_GL
,
external_texture_callback_
(
external_texture_callback
)
#endif
{
}
EmbedderEngine
::~
EmbedderEngine
()
=
default
;
...
...
@@ -144,28 +152,37 @@ bool EmbedderEngine::SendPlatformMessage(
}
bool
EmbedderEngine
::
RegisterTexture
(
int64_t
texture
)
{
#ifdef SHELL_ENABLE_GL
if
(
!
IsValid
()
||
!
external_texture_callback_
)
{
return
false
;
}
shell_
->
GetPlatformView
()
->
RegisterTexture
(
std
::
make_unique
<
EmbedderExternalTextureGL
>
(
texture
,
external_texture_callback_
));
#endif
return
true
;
}
bool
EmbedderEngine
::
UnregisterTexture
(
int64_t
texture
)
{
#ifdef SHELL_ENABLE_GL
if
(
!
IsValid
()
||
!
external_texture_callback_
)
{
return
false
;
}
shell_
->
GetPlatformView
()
->
UnregisterTexture
(
texture
);
#endif
return
true
;
}
bool
EmbedderEngine
::
MarkTextureFrameAvailable
(
int64_t
texture
)
{
#ifdef SHELL_ENABLE_GL
if
(
!
IsValid
()
||
!
external_texture_callback_
)
{
return
false
;
}
shell_
->
GetPlatformView
()
->
MarkTextureFrameAvailable
(
texture
);
#endif
return
true
;
}
...
...
shell/platform/embedder/embedder_engine.h
浏览文件 @
2c3fc4aa
...
...
@@ -12,9 +12,12 @@
#include "flutter/shell/common/shell.h"
#include "flutter/shell/common/thread_host.h"
#include "flutter/shell/platform/embedder/embedder.h"
#include "flutter/shell/platform/embedder/embedder_external_texture_gl.h"
#include "flutter/shell/platform/embedder/embedder_thread_host.h"
#ifdef SHELL_ENABLE_GL
#include "flutter/shell/platform/embedder/embedder_external_texture_gl.h"
#endif
namespace
flutter
{
struct
ShellArgs
;
...
...
@@ -28,9 +31,13 @@ class EmbedderEngine {
Settings
settings
,
RunConfiguration
run_configuration
,
Shell
::
CreateCallback
<
PlatformView
>
on_create_platform_view
,
Shell
::
CreateCallback
<
Rasterizer
>
on_create_rasterizer
,
Shell
::
CreateCallback
<
Rasterizer
>
on_create_rasterizer
#ifdef SHELL_ENABLE_GL
,
EmbedderExternalTextureGL
::
ExternalTextureCallback
external_texture_callback
);
external_texture_callback
#endif
);
~
EmbedderEngine
();
...
...
@@ -90,8 +97,10 @@ class EmbedderEngine {
RunConfiguration
run_configuration_
;
std
::
unique_ptr
<
ShellArgs
>
shell_args_
;
std
::
unique_ptr
<
Shell
>
shell_
;
#ifdef SHELL_ENABLE_GL
const
EmbedderExternalTextureGL
::
ExternalTextureCallback
external_texture_callback_
;
#endif
FML_DISALLOW_COPY_AND_ASSIGN
(
EmbedderEngine
);
};
...
...
shell/platform/embedder/platform_view_embedder.cc
浏览文件 @
2c3fc4aa
...
...
@@ -9,28 +9,30 @@ namespace flutter {
PlatformViewEmbedder
::
PlatformViewEmbedder
(
PlatformView
::
Delegate
&
delegate
,
flutter
::
TaskRunners
task_runners
,
EmbedderSurfaceGL
::
GLDispatchTable
gl_dispatch_table
,
bool
fbo_reset_after_present
,
EmbedderSurfaceSoftware
::
SoftwareDispatchTable
software_dispatch_table
,
PlatformDispatchTable
platform_dispatch_table
,
std
::
unique_ptr
<
EmbedderExternalViewEmbedder
>
external_view_embedder
)
:
PlatformView
(
delegate
,
std
::
move
(
task_runners
)),
embedder_surface_
(
std
::
make_unique
<
EmbedderSurfaceGL
>
(
gl_dispatch_table
,
fbo_reset_after_present
,
embedder_surface_
(
std
::
make_unique
<
EmbedderSurfaceSoftware
>
(
software_dispatch_table
,
std
::
move
(
external_view_embedder
))),
platform_dispatch_table_
(
platform_dispatch_table
)
{}
#ifdef SHELL_ENABLE_GL
PlatformViewEmbedder
::
PlatformViewEmbedder
(
PlatformView
::
Delegate
&
delegate
,
flutter
::
TaskRunners
task_runners
,
EmbedderSurfaceSoftware
::
SoftwareDispatchTable
software_dispatch_table
,
EmbedderSurfaceGL
::
GLDispatchTable
gl_dispatch_table
,
bool
fbo_reset_after_present
,
PlatformDispatchTable
platform_dispatch_table
,
std
::
unique_ptr
<
EmbedderExternalViewEmbedder
>
external_view_embedder
)
:
PlatformView
(
delegate
,
std
::
move
(
task_runners
)),
embedder_surface_
(
std
::
make_unique
<
EmbedderSurfaceSoftware
>
(
software_dispatch_table
,
embedder_surface_
(
std
::
make_unique
<
EmbedderSurfaceGL
>
(
gl_dispatch_table
,
fbo_reset_after_present
,
std
::
move
(
external_view_embedder
))),
platform_dispatch_table_
(
platform_dispatch_table
)
{}
#endif
PlatformViewEmbedder
::~
PlatformViewEmbedder
()
=
default
;
...
...
shell/platform/embedder/platform_view_embedder.h
浏览文件 @
2c3fc4aa
...
...
@@ -11,10 +11,13 @@
#include "flutter/shell/common/platform_view.h"
#include "flutter/shell/platform/embedder/embedder.h"
#include "flutter/shell/platform/embedder/embedder_surface.h"
#include "flutter/shell/platform/embedder/embedder_surface_gl.h"
#include "flutter/shell/platform/embedder/embedder_surface_software.h"
#include "flutter/shell/platform/embedder/vsync_waiter_embedder.h"
#ifdef SHELL_ENABLE_GL
#include "flutter/shell/platform/embedder/embedder_surface_gl.h"
#endif
namespace
flutter
{
class
PlatformViewEmbedder
final
:
public
PlatformView
{
...
...
@@ -40,22 +43,24 @@ class PlatformViewEmbedder final : public PlatformView {
compute_platform_resolved_locale_callback
;
};
// Create
s a platform view that sets up an OpenGL
rasterizer.
// Create
a platform view that sets up a software
rasterizer.
PlatformViewEmbedder
(
PlatformView
::
Delegate
&
delegate
,
flutter
::
TaskRunners
task_runners
,
EmbedderSurfaceGL
::
GLDispatchTable
gl_dispatch_table
,
bool
fbo_reset_after_present
,
EmbedderSurfaceSoftware
::
SoftwareDispatchTable
software_dispatch_table
,
PlatformDispatchTable
platform_dispatch_table
,
std
::
unique_ptr
<
EmbedderExternalViewEmbedder
>
external_view_embedder
);
// Create a platform view that sets up a software rasterizer.
#ifdef SHELL_ENABLE_GL
// Creates a platform view that sets up an OpenGL rasterizer.
PlatformViewEmbedder
(
PlatformView
::
Delegate
&
delegate
,
flutter
::
TaskRunners
task_runners
,
EmbedderSurfaceSoftware
::
SoftwareDispatchTable
software_dispatch_table
,
EmbedderSurfaceGL
::
GLDispatchTable
gl_dispatch_table
,
bool
fbo_reset_after_present
,
PlatformDispatchTable
platform_dispatch_table
,
std
::
unique_ptr
<
EmbedderExternalViewEmbedder
>
external_view_embedder
);
#endif
~
PlatformViewEmbedder
()
override
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录