Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
qq_34031325
engine
提交
33ee0a50
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,发现更多精彩内容 >>
提交
33ee0a50
编写于
5月 08, 2017
作者:
A
Adam Barth
提交者:
GitHub
5月 08, 2017
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add Picture.toImage (#3657)
Fixes
https://github.com/flutter/flutter/issues/6774
上级
1c90fe6b
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
26 addition
and
2 deletion
+26
-2
lib/ui/painting.dart
lib/ui/painting.dart
+9
-0
lib/ui/painting/picture.cc
lib/ui/painting/picture.cc
+14
-2
lib/ui/painting/picture.h
lib/ui/painting/picture.h
+3
-0
未找到文件。
lib/ui/painting.dart
浏览文件 @
33ee0a50
...
...
@@ -1649,6 +1649,15 @@ abstract class Picture extends NativeFieldWrapperClass2 {
/// object. To create a Picture object, use a [PictureRecorder].
Picture
();
// (this constructor is here just so we can document it)
/// Creates an image from this picture.
///
/// The picture is rasterized using the number of pixels specified by the
/// given width and height.
///
/// Although the image is returned synchronously, the picture is actually
/// rasterized the first time the image is drawn and then cached.
Image
toImage
(
int
width
,
int
height
)
native
"Picture_toImage"
;
/// Release the resources used by this object. The object is no longer usable
/// after this method is called.
void
dispose
()
native
"Picture_dispose"
;
...
...
lib/ui/painting/picture.cc
浏览文件 @
33ee0a50
...
...
@@ -7,16 +7,19 @@
#include "flutter/common/threads.h"
#include "flutter/lib/ui/painting/canvas.h"
#include "flutter/lib/ui/painting/utils.h"
#include "lib/tonic/converter/dart_converter.h"
#include "lib/tonic/dart_args.h"
#include "lib/tonic/dart_binding_macros.h"
#include "lib/tonic/converter/dart_converter.h"
#include "lib/tonic/dart_library_natives.h"
#include "third_party/skia/include/core/SkImage.h"
namespace
blink
{
IMPLEMENT_WRAPPERTYPEINFO
(
ui
,
Picture
);
#define FOR_EACH_BINDING(V) V(Picture, dispose)
#define FOR_EACH_BINDING(V) \
V(Picture, toImage) \
V(Picture, dispose)
DART_BIND_ALL
(
Picture
,
FOR_EACH_BINDING
)
...
...
@@ -32,6 +35,15 @@ Picture::~Picture() {
SkiaUnrefOnIOThread
(
&
picture_
);
}
ftl
::
RefPtr
<
CanvasImage
>
Picture
::
toImage
(
int
width
,
int
height
)
{
ftl
::
RefPtr
<
CanvasImage
>
image
=
CanvasImage
::
Create
();
// TODO(abarth): We should pass in an SkColorSpace at some point.
image
->
set_image
(
SkImage
::
MakeFromPicture
(
picture_
,
SkISize
::
Make
(
width
,
height
),
nullptr
,
nullptr
,
SkImage
::
BitDepth
::
kU8
,
nullptr
));
return
image
;
}
void
Picture
::
dispose
()
{
ClearDartWrapper
();
}
...
...
lib/ui/painting/picture.h
浏览文件 @
33ee0a50
...
...
@@ -5,6 +5,7 @@
#ifndef FLUTTER_LIB_UI_PAINTING_PICTURE_H_
#define FLUTTER_LIB_UI_PAINTING_PICTURE_H_
#include "flutter/lib/ui/painting/image.h"
#include "lib/tonic/dart_wrappable.h"
#include "third_party/skia/include/core/SkPicture.h"
...
...
@@ -26,6 +27,8 @@ class Picture : public ftl::RefCountedThreadSafe<Picture>,
const
sk_sp
<
SkPicture
>&
picture
()
const
{
return
picture_
;
}
ftl
::
RefPtr
<
CanvasImage
>
toImage
(
int
width
,
int
height
);
void
dispose
();
static
void
RegisterNatives
(
tonic
::
DartLibraryNatives
*
natives
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录