HarmonyOS 鸿蒙Next开发Native怎么调用OpenGL

发布于 1周前 作者 gougou168 来自 鸿蒙OS

HarmonyOS 鸿蒙Next开发Native怎么调用OpenGL

DevEco Studio 3.1.1 Release

HarmonyOS API 6,  gles2.0  ,native ,jni 

native开发,如何在应用层调用 opengl


4 回复

可以再发一遍吗,报404错误了,想学习一下

我是要将安卓开发的库,转为鸿蒙开发

在安卓中,使用opengl渲染图像,通过jni native接口,在Java层如下

public class EncRenderer implements GLSurfaceView.Renderer {
    public YimaLib yimaLib;
    @Override
    public void onSurfaceCreated(GL10 gl, EGLConfig config) {
        String  strWorkDirPath =  "/data/data/yima.opengl.demo/files/WorkDir";
        yimaLib = new YimaLib();
        yimaLib.Create(strWorkDirPath);
        yimaLib.Init();
    }
    @Override
    public void onSurfaceChanged(GL10 gl, int width, int height) {
        yimaLib.RefreshDrawerGLView(width, height);
        yimaLib.CenterMap(1210000000, 320000000);
        yimaLib.SetCurrentScale(10000000);
    }
    @Override
    public void onDrawFrame(GL10 gl) {
        long startTime = System.currentTimeMillis();
        yimaLib.DrawGLView();
        long endTime = System.currentTimeMillis();
        Log.d("OPENGL_DRAW", "DrawGLView cost: " + (endTime - startTime) + "ms");
    }
}
public class EncGLSurfaceView extends GLSurfaceView {
    EncRenderer encRenderer;
public EncGLSurfaceView(Context context, AttributeSet attrs) {
    super(context, attrs);
    setEGLContextClientVersion(3);//使用opengl 3
    setEGLConfigChooser(8, 8, 8, 8, 16, 0);
    <span style="color: rgb(255,171,64);">encRenderer = new EncRenderer();
    setRenderer(encRenderer);</span>
    setRenderMode(RENDERMODE_WHEN_DIRTY);
}

public YimaLib GetYimaLib(){
    return encRenderer.yimaLib;
}
@Override
public boolean onTouchEvent(MotionEvent event) {
    return true;
}

}

这段代码在鸿蒙开发中如何修改,鸿蒙中view类用什么代替

在HarmonyOS鸿蒙Next开发中,调用OpenGL进行Native开发,通常涉及以下几个步骤:

  1. 配置NDK环境:确保你的开发环境已正确安装NDK,并配置好编译工具链。这是进行Native开发的基础。

  2. 引入OpenGL库:在你的Native项目中,需要引入OpenGL相关的库。这通常通过修改CMakeLists.txt或Android.mk文件来实现,确保链接到OpenGL ES库(如libGLESv2)。

  3. 初始化OpenGL环境:在Native代码中,通过调用EGL(Embedded-System Graphics Library)函数来初始化OpenGL环境。这包括创建EGLDisplay、EGLContext等,并绑定到相应的窗口或Surface。

  4. 编写OpenGL渲染代码:在初始化完成后,可以编写OpenGL的渲染逻辑。这包括设置渲染状态、绑定纹理、绘制图形等。

  5. 处理生命周期事件:确保在应用的生命周期事件中正确管理OpenGL资源的创建、使用和销毁,以避免内存泄漏和渲染错误。

如果在按照上述步骤操作后仍然遇到问题,可能是由于具体环境配置或代码实现细节上的差异。此时,建议详细检查错误日志,并参考HarmonyOS官方文档或相关开发社区的资源。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。

回到顶部