Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Graphic Ui
提交
6e9c22d9
G
Graphic Ui
项目概览
OpenHarmony
/
Graphic Ui
大约 1 年 前同步成功
通知
13
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
Graphic Ui
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
6e9c22d9
编写于
9月 27, 2021
作者:
O
openharmony_ci
提交者:
Gitee
9月 27, 2021
浏览文件
操作
浏览文件
下载
差异文件
!442 支持超出屏幕截屏
Merge pull request !442 from pssea/master
上级
7245f045
41458494
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
10 addition
and
11 deletion
+10
-11
frameworks/components/ui_view.cpp
frameworks/components/ui_view.cpp
+10
-11
未找到文件。
frameworks/components/ui_view.cpp
浏览文件 @
6e9c22d9
...
...
@@ -982,16 +982,8 @@ bool UIView::GetBitmap(ImageInfo& bitmap)
nextSibling_
=
nullptr
;
parent_
=
nullptr
;
BufferInfo
*
bufferInfo
=
BaseGfxEngine
::
GetInstance
()
->
GetFBBufferInfo
();
if
(
bufferInfo
==
nullptr
)
{
return
false
;
}
int16_t
screenWidth
=
bufferInfo
->
rect
.
GetWidth
();
int16_t
screenHeight
=
bufferInfo
->
rect
.
GetHeight
();
Rect
screenRect
(
0
,
0
,
screenWidth
,
screenHeight
);
rect_
.
SetPosition
(
0
,
0
);
Rect
mask
=
GetRect
();
mask
.
Intersect
(
mask
,
screenRect
);
uint16_t
bufferWidth
=
static_cast
<
uint16_t
>
(
mask
.
GetWidth
());
uint16_t
bufferHeight
=
static_cast
<
uint16_t
>
(
mask
.
GetHeight
());
bitmap
.
header
.
colorMode
=
ARGB8888
;
...
...
@@ -1000,16 +992,24 @@ bool UIView::GetBitmap(ImageInfo& bitmap)
bitmap
.
header
.
height
=
bufferHeight
;
bitmap
.
header
.
reserved
=
0
;
uint8_t
*
viewBitmapBuffer
=
reinterpret_cast
<
uint8_t
*>
(
ImageCacheMalloc
(
bitmap
)
);
void
*
viewBitmapBuffer
=
ImageCacheMalloc
(
bitmap
);
if
(
viewBitmapBuffer
==
nullptr
)
{
GRAPHIC_LOGE
(
"GetBitmap buffer alloc failed."
);
nextSibling_
=
tempSibling
;
parent_
=
tempParent
;
rect_
.
SetPosition
(
tempX
,
tempY
);
return
false
;
}
bitmap
.
data
=
reinterpret_cast
<
uint8_t
*>
(
viewBitmapBuffer
);
if
(
memset_s
(
viewBitmapBuffer
,
bitmap
.
dataSize
,
0
,
bitmap
.
dataSize
)
!=
EOK
)
{
GRAPHIC_LOGE
(
"GetBitmap buffer memset failed."
);
ImageCacheFree
(
bitmap
);
bitmap
.
data
=
nullptr
;
return
false
;
}
BufferInfo
newBufferInfo
;
newBufferInfo
.
virAddr
=
static_cast
<
void
*>
(
viewBitmapBuffer
)
;
newBufferInfo
.
virAddr
=
viewBitmapBuffer
;
newBufferInfo
.
phyAddr
=
newBufferInfo
.
virAddr
;
newBufferInfo
.
rect
=
mask
;
newBufferInfo
.
width
=
bufferWidth
;
...
...
@@ -1021,7 +1021,6 @@ bool UIView::GetBitmap(ImageInfo& bitmap)
RootView
::
GetInstance
()
->
UpdateBufferInfo
(
&
newBufferInfo
);
RootView
::
GetInstance
()
->
Measure
();
RootView
::
GetInstance
()
->
DrawTop
(
this
,
mask
);
bitmap
.
data
=
viewBitmapBuffer
;
RootView
::
GetInstance
()
->
RestoreDrawContext
();
nextSibling_
=
tempSibling
;
parent_
=
tempParent
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录