7 Star 20 Fork 8

isrc_ohos / OpenGL_ISRC

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
Apache-2.0

OpenGL_ISRC

项目介绍

  • 项目名称:OpenGL移植
  • 所属系列:鸿蒙开源平台的OpenGL移植
  • 功能:安卓OpenGL中除GLUtil类以外的所有类的功能,glCreateShader和glCreateProgram相关的的方法暂时无法使用。
  • 项目移植状态:基本完成
  • 调用差异: 1、在安卓中可以使用各种版本的GL,但是该项目只能使用GLES。 2、在安卓SDK中提供各种版本的EGL,但是该项目只能使用鸿蒙SDK中自带的EGL。 3、GLSurfaceView被改名成为GLSurfaceProvider。
  • 项目作者和维护人:戴研
  • 联系方式:isrc_hm@iscas.ac.cn/2839808264@qq.com(个人)
  • 参考项目地址:http://androidxref.com/9.0.0_r3/

项目介绍

  • 编程语言:Java、 C/C++
  • 外部库依赖:安卓源码中的GLES库文件

安装教程

1、直接将项目文件中的libs文件夹里的har包复制到新项目中就可以使用。

2、如果想直接使用项目文件需要: (1)把android.opengl和ohos.opengl两个文件夹包括其中的内容复制到新的项目中的java目录下,包名不能更改。 (2)OpenGL组件中的libs文件夹中的so文件全部复制到新项目中的libs文件夹中。

使用说明

1、GLUtil类暂时没有移植,对应的功能暂时无法使用。

2、GLSurfaceview改为了GLSurfaceProvider 在使用GLSurfaceProvider的Renderer时,GL改为GLES1X。

    public interface Renderer {
        
        void onSurfaceCreated(GLES1X gl, EGLConfig config);
        
        void onSurfaceChanged(GLES1X gl, int width, int height);
        
        void onDrawFrame(GLES1X gl);
    }

3、项目文件中MainAbilitySlice.java文件中提供了GLSurfaceProvider和EGL的使用示例

4、与glCreateShader和glCreateProgram相关的的方法暂时无法使用。

未完成部分

1、 -由于glCreateShader和glCreateProgram方法无法正常创建着色器和程序,所以这两个方法需要重新移植。目前有一种方案可行性比较大:去移植安卓中的swiftshader。 -链接:http://androidxref.com/9.0.0_r3/xref/external/swiftshader/src/Shader/

-如果有需要的可以尝试去移植。

-由于移植需要用到native部分,我提供该项目中生成etc1的so库时项目的代码。 -native部分参考:https://gitee.com/D1124/OpenGL_ISRC_native -(C代码如何编译成so库并在Java中使用的示例↑)

2、 -GLUtil类,需要在C代码中将安卓中的bitmap替换为pixelmap(链接中1065-1070行对应的方法)。 -链接:http://androidxref.com/9.0.0_r3/xref/frameworks/base/core/jni/android/opengl/util.cpp

版本迭代

  • v0.1.0

版权和许可信息

  • Apache Licence 2.0
# OpenGL_ISRC #### 项目介绍 - 项目名称:OpenGL移植 - 所属系列:鸿蒙开源平台的OpenGL移植 - 功能:安卓OpenGL中除GLUtil类以外的所有类的功能,glCreateShader和glCreateProgram相关的的方法暂时无法使用。 - 项目移植状态:基本完成 - 调用差异: 1、在安卓中可以使用各种版本的GL,但是该项目只能使用GLES。 2、在安卓SDK中提供各种版本的EGL,但是该项目只能使用鸿蒙SDK中自带的EGL。 3、GLSurfaceView被改名成为GLSurfaceProvider。 - 项目作者和维护人:戴研 - 联系方式:isrc_hm@iscas.ac.cn/2839808264@qq.com(个人) - 参考项目地址:http://androidxref.com/9.0.0_r3/ #### 项目介绍 - 编程语言:Java、 C/C++ - 外部库依赖:安卓源码中的GLES库文件 #### 安装教程 1、直接将项目文件中的libs文件夹里的har包复制到新项目中就可以使用。 2、如果想直接使用项目文件需要: (1)把android.opengl和ohos.opengl两个文件夹包括其中的内容复制到新的项目中的java目录下,包名不能更改。 (2)OpenGL组件中的libs文件夹中的so文件全部复制到新项目中的libs文件夹中。 #### 使用说明 1、GLUtil类暂时没有移植,对应的功能暂时无法使用。 2、GLSurfaceview改为了GLSurfaceProvider 在使用GLSurfaceProvider的Renderer时,GL改为GLES1X。 ``` public interface Renderer { void onSurfaceCreated(GLES1X gl, EGLConfig config); void onSurfaceChanged(GLES1X gl, int width, int height); void onDrawFrame(GLES1X gl); } ``` 3、项目文件中MainAbilitySlice.java文件中提供了GLSurfaceProvider和EGL的使用示例 4、与glCreateShader和glCreateProgram相关的的方法暂时无法使用。 #### 未完成部分 1、 -由于glCreateShader和glCreateProgram方法无法正常创建着色器和程序,所以这两个方法需要重新移植。目前有一种方案可行性比较大:去移植安卓中的swiftshader。 -链接:http://androidxref.com/9.0.0_r3/xref/external/swiftshader/src/Shader/ -如果有需要的可以尝试去移植。 -由于移植需要用到native部分,我提供该项目中生成etc1的so库时项目的代码。 -native部分参考:https://gitee.com/D1124/OpenGL_ISRC_native -(C代码如何编译成so库并在Java中使用的示例↑) 2、 -GLUtil类,需要在C代码中将安卓中的bitmap替换为pixelmap(链接中1065-1070行对应的方法)。 -链接:http://androidxref.com/9.0.0_r3/xref/frameworks/base/core/jni/android/opengl/util.cpp #### 版本迭代 - v0.1.0 #### 版权和许可信息 - Apache Licence 2.0

简介

OpenGL移植 展开 收起
Java
Apache-2.0
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/iscas-ohos/OpenGL_ISRC.git
git@gitee.com:iscas-ohos/OpenGL_ISRC.git
iscas-ohos
OpenGL_ISRC
OpenGL_ISRC
main

搜索帮助