使用Native、XComponent和EGL绘制图形
使用Native、XComponent和EGL绘制图形
HarmonyOS
赞
收藏 0
回答 1
相关问题
HarmonyOS 绘制图形,radius无法使用数组定义4个圆角
932浏览 • 1回复 待解决
HarmonyOS opengl es3.0绘制图形颜色有问题
932浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何创建WebGL缓冲区用于绘制图形?
957浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在ArkTS卡片中自定义绘制图形?
1067浏览 • 1回复 待解决
如何使用canvas绘制图形?环境是API6,java编写自定义组件
3264浏览 • 1回复 待解决
画布上绘制图片如何实现?
826浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何通过视口viewport对鸿蒙绘制图形进行放大与缩小?
721浏览 • 1回复 待解决
HarmonyOS Canvas中关于绘制图片问题
1024浏览 • 1回复 待解决
如何在使用 Canvas 绘制图像时处理像素模糊问题?
1009浏览 • 0回复 待解决
鸿蒙绘制图形Path折线绘制Polyline设置折线拐角处为圆弧达不到效果,能不能增加圆角属性
2425浏览 • 1回复 待解决
XComponent、NativeDrawing实现2D图形绘制
2091浏览 • 1回复 待解决
XComponent、openGL实现3D图形绘制
3068浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙Canvas上处理和绘制图像像素信息?
984浏览 • 1回复 待解决
HarmonyOS CanvasRenderingContext2D中drawImage绘制图片无法展示
684浏览 • 1回复 待解决
Native XComponent、Drawing、手势实现上下滑动文本和图形拖移
1866浏览 • 1回复 待解决
HarmonyOS @ohos.graphics.drawing绘制模块中的RenderNode怎么制定坐标绘制图片
693浏览 • 1回复 待解决
使用Drawing实现图形绘制与显示
1777浏览 • 1回复 待解决
EGL绘制是否支持多线程?如何在多线程的场景下同时操作一块buffer进行图形绘制
2686浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS使用XComponent实现EGL/OpenGLES渲染?
862浏览 • 1回复 待解决
HarmonyOS XComponent绘制
728浏览 • 1回复 待解决
如何使用EGL绘制自定义动画?请提供一个简单示例
2790浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙中利用Native XComponent创建自定义绘制内容?
839浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何实现XComponent组件中的EGL/OpenGLES渲染?
760浏览 • 1回复 待解决
HarmonyOS native xComponent获取问题咨询
726浏览 • 1回复 待解决
HarmonyOS 是否有类似xfermode相关的图形绘制api
635浏览 • 1回复 待解决
本demo实现了绘制矩形的功能,可以通过触摸矩形区域为矩形更换颜色,点击绘制矩形按钮后恢复原本的颜色。
核心组件
l EGL(Embedded Graphic Library):EGL 是Khronos渲染API (如OpenGL ES 或 OpenVG) 与底层原生窗口系统之间的接口。
l XComponent:可用于EGL/OpenGLES和媒体数据写入,并显示在XComponent组件。
项目代码结构
├──entry/src/main
│ ├──cpp // C++代码区
│ │ ├──CMakeLists.txt // CMake配置文件
│ │ ├──hello.cpp // C++源代码
│ │ ├──common
│ │ │ └──common.h // 常量定义文件
│ │ ├──manager // 生命周期管理模块
│ │ │ ├──PluginManager.cpp
│ │ │ └──PluginManager.h
│ │ ├──render // 渲染模块
│ │ │ ├──EGLCore.cpp
│ │ │ ├──EGLCore.h
│ │ │ ├──PluginRender.cpp
│ │ │ └──PluginRender.h
│ │ └──types // 接口存放文件夹
│ │ └──libentry
│ │ ├──index.d.ts // 接口文件
│ │ └──oh-package.json5 // 接口注册配置文件
│ └──ets // 代码区
│ ├──common
│ │ └──CommonConstants.ets // 常量定义文件
│ ├──entryability
│ │ └──EntryAbility.ts // 程序入口类
│ └──pages // 页面文件
│ └──Index.ets // 主界面
└──entry/src/main/resources // 资源文件目录
demo架构
使用C++代码实现业务逻辑,ArkTS代码用于前端界面以及调用相关方法
l C++侧:实现图像渲染、应用管理以及页面的生命周期管理
l ArkTS侧:调用c++侧的图形渲染方法以及生命周期管理方法,实现前端界面
l CMake:跨平台编译工具,将C++代码编译成so文件提供给ArkTS
ArkTS代码
定义XComponent
ArkTS核心代码
界面
C++代码
模块注册 hello.cpp
注册XComponent事件回调
定义surface创建、改变、销毁和XComponent触摸事件回调
矩形绘制方法
初始化EGL
渲染实现
绘制背景
绘制图形
改变颜色,重新绘制大小相同颜色不同的图形
资源释放
EGLCore的资源释放
PluginRender的资源释放
CMakeLists,编译成动态链接库
效果展示
绘制矩形
触摸矩形改变颜色