graphic_graphic_2d:基于OpenHarmony的2D图形绘制框架项目

暂无描述

Branch420Tags56
FilesLast commitLast update
ColorPicker: Add QuickSkip support and HWC intersection handling Implement ColorPicker functionality for QuickSkip scenarios where surface nodes are skipped during preparation but still require color picking. Changes: - Add ColorPicker drawable preparation in skipped subtrees via PrepareColorPickerDrawableInSkippedSubTree() - Add HWC node disable logic when surfaces intersect ColorPicker regions via UpdateHwcNodeEnableByColorPicker() and ProcessSurfaceForColorPicker() - Add ChildHasVisibleColorPicker() check for render nodes - Add surface marking for intersection checking during Prepare phase - Add OnDraw lifecycle trace in RSColorPickerDrawable for debugging - Remove duplicate test code (~540 lines) in RSColorPickerManagerTest - Remove verbose debug traces, keep only essential error logs This ensures ColorPicker works correctly when parent surfaces are quick-skipped for performance optimization. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> Change-Id: Icb16eb159e8c9631972f5f13da1010fd563f2f10 Signed-off-by: Tianer Zhou <zhoutianer@huawei.com> 3 months ago
codeOwner临时更换 Signed-off-by: white-dragon-tiger <bailonghu1@huawei.com> revert merge request: codeOwner临时更换 32314cafefab0d75f64b9f20d93769ca0b5dd2b5 This revert merge request !2981117 days ago
linux arm64编译sdk-graphic_graphic_2d Signed-off-by: liangxinyan123 <liangxinyan2@huawei.com> 1 year ago
add full fuzz test for SetDarkMode Signed-off-by: Tianer Zhou <ezhoureal@gmail.com> Co-Authored-By: Agent Change-Id: I0a73c892217dc81a5086c3dfbcf2e2f45fe431ed 1 month ago
delete ddgr cloud push Signed-off-by: zzzzzmeng <zhaomeng90@huawei.com> 5 months ago
delete module frame rectify Signed-off-by: baizengqiang <baizengqiang1@huawei.com> 1 year ago
Add tdd for balanced crash Signed-off-by: FTL1ght <zhangyubao@h-partners.com> Change-Id: I79bda83507384f107b1ebb471c525befcc2d9091 3 days ago
!30474 merge 0601_dev into master 添加防护网 Created-by: szlcc_123 Commit-by: szlcc_123 Merged-by: openharmony_ci Description: **Description: 添加防护网** **Issue number: https://gitcode.com/openharmony/graphic_graphic_2d/issues/24031** **Test & Result: PASS** **CodeCheck: PASS** <table> <thead> <tr> <th>类型</th> <th>自检项</th> <th>自检结果</th> </tr> </thead> <tbody> <tr> <td rowspan="2"><strong>多线程</strong></td> <td>在类的成员变量中定义了vector/map/list等容器类型,且在多个成员函数中有操作时,需要加锁保护</td> <td>自检结果:PASS</td> </tr> <tr> <td>定义全局变量,在多个函数中都有操作时,需要加锁保护</td> <td>自检结果:PASS</td> </tr> <tr> <td rowspan="4"><strong>内存操作</strong></td> <td>调用外部接口时,确认是否对返回值做了判空判断,尤其外部接口返回了nullptr的情况,避免进程崩溃</td> <td>自检结果:PASS</td> </tr> <tr> <td>内存操作优先使用安全函数,并检查其返回值</td> <td>自检结果:PASS</td> </tr> <tr> <td>注意每个异常退出流程,是否都已经将资源释放(推荐使用RAII)</td> <td>自检结果:PASS</td> </tr> <tr> <td>隐式内存分配场景:realpath、ReadParcelable序列化、cJSON相关函数时等,需主动释放或使用智能指针</td> <td>自检结果:PASS</td> </tr> <tr> <td rowspan="3"><strong>外部输入</strong></td> <td>所有外部输入均不可信,需判断外部输入是否直接作为内存分配的大小,数组下标、循环条件、SQL查询等</td> <td>自检结果:PASS</td> </tr> <tr> <td>注意外部字符串数据有无尾0</td> <td>自检结果:PASS</td> </tr> <tr> <td>外部输入的路径不可信,需使用realpath做标准化处理,并判断路径的合法性</td> <td>自检结果:PASS</td> </tr> <tr> <td><strong>敏感信息</strong></td> <td>注意日志中打印敏感信息需匿名化</td> <td>自检结果:PASS</td> </tr> <tr> <td><strong>数学运算</strong></td> <td>代码中是否混合了加减乘除等运算,需检查是否可能导致整数溢出或符号翻转</td> <td>自检结果:PASS</td> </tr> <tr> <td><strong>初始化</strong></td> <td>类成员、局部变量使用前需初始化</td> <td>自检结果:PASS</td> </tr> <tr> <td><strong>权限管理</strong></td> <td>作为系统服务对外提供了接口(或RSCmd),是否做了权限保护和校验,只允许申请了权限的应用访问</td> <td>自检结果:PASS</td> </tr> </tbody> </table> ### L0新增用例自检结果 - [ ] 是,有新增L0用例,且完成自检 - [Y] 否 See merge request: openharmony/graphic_graphic_2d!304742 days ago
普通录像支持log视频 Signed-off-by: mengzhe <mengzhe5@huawei.com> 8 days ago
commit Signed-off-by: gaoweihua <gaoweihua2@huawei.com> 2 days ago
普通录像支持log视频 Signed-off-by: mengzhe <mengzhe5@huawei.com> 8 days ago
WIP: fix compile errors Signed-off-by: Zhang Peng <zhangpeng280@huawei.com> Change-Id: Ia7890859e556fec25b0b1278532a919d1fc21004 9 months ago
update OpenHarmony 2.0 Canary 4 years ago
fix warning Signed-off-by: Tianer Zhou <zhoutianer@huawei.com> Change-Id: I382b27bc35d2392d1672120575dd07cd92a301fa 3 months ago
docs: add knowledge for HGM Co-Authored-By: Agent Signed-off-by: Masou_Shizuka <chensiyu78@huawei.com> 4 days ago
看板问题-编译告警整改 Signed-off-by: y30082097 <yuanzhi12@h-partners.com> 1 month ago
update OpenHarmony 2.0 Canary 4 years ago
add fuzz test seed and update test case Signed-off-by: developer <liuyongkang4@huawei.com> 1 year ago
quduoyu Signed-off-by: cwx1252618 <chaifu1@huawei.com> Change-Id: I967db2417529b55e12e397a7a929208d8433e397 2 years ago
fix name Signed-off-by: zhangbirong <zhangbirong@huawei.com> Change-Id: I6f98c8a595b52a49e2ffffecadec917d12f82674 2 years ago
Fixed arkui-x build due to missed adapters Signed-off-by: Ilya Tihobaev <tihobaev.ilya@huawei-partners.com> Change-Id: Ic83d408ec93ce2a393686c1294fd1ab2e51227a2 1 year ago
移除 rs_proxy feature gate,默认启用 ENABLE_RS_PROXY 移除 graphic_2d_feature_enable_rs_proxy 特性开关,使 ENABLE_RS_PROXY 宏无条件生效。 Signed-off-by: sunriseLL <liwen176@huawei.com> Co-Authored-By: Agent 8 days ago
add window type Change-Id: I1ed9d4e2408990f4d8f969c55996c84d0689932d Signed-off-by: lizheng <lizheng2@huawei.com> 4 years ago
Description:change dir graphic/graphic to graphic/graphic_2d IssueNo:https://gitee.com/openharmony/graphic_standard/issues/I57W1P Feature or Bugfix: Bugfix Binary Source:NA Signed-off-by: sufeng <sufeng6@huawei.com> 3 years ago
delete ddgr cloud push Signed-off-by: zzzzzmeng <zhaomeng90@huawei.com> 5 months ago
回退 'Pull Request !3058 : del unused code' 3 years ago
!30119 merge master into master feat: implement dynamic layer skip controller logic Created-by: sunqizhen Commit-by: sunqizhen Merged-by: openharmony_ci Description: **Description:** feat: implement dynamic layer skip controller logic **Issue number:** https://gitcode.com/openharmony/graphic_graphic_2d/issues/23755 **Test & Result:** feat: implement dynamic layer skip controller logic **CodeCheck:** <table> <thead> <tr> <th>类型</th> <th>自检项</th> <th>自检结果</th> </tr> </thead> <tbody> <tr> <td rowspan="2"><strong>多线程</strong></td> <td>在类的成员变量中定义了vector/map/list等容器类型,且在多个成员函数中有操作时,需要加锁保护</td> <td>自检结果:PASS</td> </tr> <tr> <td>定义全局变量,在多个函数中都有操作时,需要加锁保护</td> <td>自检结果:PASS</td> </tr> <tr> <td rowspan="4"><strong>内存操作</strong></td> <td>调用外部接口时,确认是否对返回值做了判空判断,尤其外部接口返回了nullptr的情况,避免进程崩溃</td> <td>自检结果:PASS</td> </tr> <tr> <td>内存操作优先使用安全函数,并检查其返回值</td> <td>自检结果:PASS</td> </tr> <tr> <td>注意每个异常退出流程,是否都已经将资源释放(推荐使用RAII)</td> <td>自检结果:PASS</td> </tr> <tr> <td>隐式内存分配场景:realpath、ReadParcelable序列化、cJSON相关函数时等,需主动释放或使用智能指针</td> <td>自检结果:PASS</td> </tr> <tr> <td rowspan="3"><strong>外部输入</strong></td> <td>所有外部输入均不可信,需判断外部输入是否直接作为内存分配的大小,数组下标、循环条件、SQL查询等</td> <td>自检结果:PASS</td> </tr> <tr> <td>注意外部字符串数据有无尾0</td> <td>自检结果:PASS</td> </tr> <tr> <td>外部输入的路径不可信,需使用realpath做标准化处理,并判断路径的合法性</td> <td>自检结果:PASS</td> </tr> <tr> <td><strong>敏感信息</strong></td> <td>注意日志中打印敏感信息需匿名化</td> <td>自检结果:PASS</td> </tr> <tr> <td><strong>数学运算</strong></td> <td>代码中是否混合了加减乘除等运算,需检查是否可能导致整数溢出或符号翻转</td> <td>自检结果:PASS</td> </tr> <tr> <td><strong>初始化</strong></td> <td>类成员、局部变量使用前需初始化</td> <td>自检结果:PASS</td> </tr> <tr> <td><strong>权限管理</strong></td> <td>作为系统服务对外提供了接口(或RSCmd),是否做了权限保护和校验,只允许申请了权限的应用访问</td> <td>自检结果:PASS</td> </tr> </tbody> </table> ### L0新增用例自检结果 - [ ] 是,有新增L0用例,且完成自检 - [ ] 否 See merge request: openharmony/graphic_graphic_2d!301193 days ago
蓝黄差异同步 Signed-off-by: white-dragon-tiger <bailonghu1@huawei.com> 4 months ago

graphic_2d

简介

Graphic子系统 提供了图形接口能力。

其主要的结构如下图所示:

Graphic子系统架构图

OpenHarmony 图形栈的分层说明如下:

• 接口层:提供图形的 Native API能力,包括:WebGL、Native Drawing的绘制能力、OpenGL 指令级的绘制能力支撑等。

• 框架层:分为 Render Service、Drawing、Animation、Effect、显示与内存管理五个模块。

模块 能力描述
Render Servicel (渲染服务) 提供UI框架的绘制能力,其核心职责是将ArkUI的控件描述转换成绘制树信息,根据对应的渲染策略,进行最佳路径渲染。同时,负责多窗口流畅和空间态下UI共享的核心底层机制。
Drawing (绘制) 提供图形子系统内部的标准化接口,主要完成2D渲染、3D渲染和渲染引擎的管理等基本功能。
Animation (动画) 提供动画引擎的相关能力。
Effect (效果) 主要完成图片效果、渲染特效等效果处理的能力,包括:多效果的串联、并联处理,在布局时加入渲染特效、控件交互特效等相关能力。
显示与内存管理 此模块是图形栈与硬件解耦的主要模块,主要定义了OpenHarmony 显示与内存管理的能力,其定义的南向HDI 接口需要让不同的OEM厂商完成对OpenHarmony图形栈的适配.

• 引擎层:包括 2D 图形库和 3D 图形引擎两个模块。2D 图形库提供 2D 图形绘制底层 API,支持图形绘制与文本绘制底层能力。3D 图形引擎能力尚在构建中。

目录

foundation/graphic/graphic_2d/
├── figures                 # Markdown引用的图片目录
├── frameworks              # 框架代码目录
│   ├── animation_server    # AnimationServer代码
│   ├── bootanimation       # 开机动画目录
│   ├── fence               # fence代码
│   ├── opengl_wrapper      # opengl_wrapper
│   ├── surface             # Surface代码
│   ├── surfaceimage        # surfaceimage代码
│   ├── vsync               # Vsync代码
│   ├── wm                  # wm代码
│   ├── wmserver            # wmserver代码
│   ├── wmservice           # wmservice代码
│   ├── wmtest              # wmtest代码
├── rosen                   # 框架代码目录
│   ├── build               # 构建说明
│   ├── doc                 # doc
│   ├── include             # 对外头文件代码
│   ├── modules             # graphic 子系统各模块代码
│   ├── samples             # 实例代码
│   ├── test                # 开发测试代码
│   ├── tools               # 工具代码
├── interfaces              # 图形接口存放目录
│   ├── inner_api           # 内部native接口存放目录
│   └── kits                # js/napi外部接口存放目录
└── utils                   # 小部件存放目录

相关仓

Downloads

0

Total downloads (including clone, pull, ZIP & release downloads), updated by T+1.

Languages

C++98.08%
C1.14%
ArkTS0.57%
JavaScript0.18%
Python0.01%