XComponent、openGL实现3D图形绘制

XComponent、openGL实现3D图形绘制

HarmonyOS
2024-05-21 22:08:54
浏览
1
收藏 1
回答 1
待解决
回答 1
按赞同
/
按时间
lovingkane
1

XComponent控件常用于相机预览流的显示和游戏画面的绘制,在OpenHarmony上,可以配合Native Window创建OpenGL开发环境,并最终将OpenGL绘制的图形显示到XComponent控件。

开发流程:

通过在IDE中创建Native C++工程,在C++代码中定义接口为Init和Update用于3D图形绘制环境的初始化和图形渲染更新,并映射NAPI相关接口UpdateAngle。ArkTS侧主要利用XComponent控件实现Index.ets,C++侧主要采用OpenGL ES相关标准API实现三棱锥的绘制流程相关代码,并可与ArkTS进行交互。

应用启动时,NAPI模块也相应进行初始化,此时可通过C++侧的OH_NativeXComponent_GetXComponentId()接口,获取到当前XComponent控件的控件指针,并给到C++侧三棱锥绘制相关的Init和Update函数,实现3D图形显示。同时,为实现三棱锥的触摸屏滑动旋转效果,在C++代码中映射的NAPI接口UpdateAngle给到ArkTS侧调用。ArkTS侧需在导入NAPI模块"libtetrahedron_napi.so"正确的前提下,通过调用UpdateAngle接口更新三棱锥旋转角度

使用的核心API

Xcomponent

NativeWindow

核心代码解释

1.在界面中定义Xcomponent

2.使用NAPI获取XComponent实例指针,注册XComponent回调函数

1、实例NativeWindow环境

2、绘制3d图形

4.exports上挂上native侧方法,当arkTs发生手势滑动调用c++侧updateAngle,实现更新三棱锥旋转角度

实现效果

注明适配的版本信息

DevEco Studio Version: 4.0.1.601

SDK:HarmoneyOS 4.0.10.11

已于2024-5-22 20:41:31修改
分享
微博
QQ
微信
回复
2024-05-22 20:33:36
相关问题
XComponent、NativeDrawing实现2D图形绘制
898浏览 • 1回复 待解决
HarmonyOS 3D卡片遮挡滑动实现方式
173浏览 • 1回复 待解决
有谁知道是否支持实现3D效果
1746浏览 • 1回复 待解决
HarmonyOS 能否支持3D模型导入?
118浏览 • 0回复 待解决
使用Native、XComponent和EGL绘制图形
814浏览 • 1回复 待解决
使用Drawing实现图形绘制与显示
728浏览 • 1回复 待解决
XComponent使用OpenGl ES
878浏览 • 1回复 待解决
使用Drawing进行2d图像绘制
779浏览 • 1回复 待解决
鸿蒙如何实现位图绘制
9669浏览 • 1回复 待解决
HarmonyOS 绘制水印如何实现
92浏览 • 1回复 待解决
通过Native 调用c++层实现文本绘制
829浏览 • 1回复 待解决
如何用openGL做解码后处理
1569浏览 • 0回复 待解决
提问
该提问已有0人参与 ,帮助了0人