大佬教程收集整理的这篇文章主要介绍了android – 在NativeActivity中创建OpenGL着色器,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
所以我的问题是 – 如何在纯原生Android应用程序中创建OpenGL ES 2.0着色器?
附:我知道,如果你使用Java GLSurfaceView和不正确的线程创建它们着色器创建可能会失败,但看着本地活动的样品,它只是似乎有一个线程!
由于我在Java代码中有一个入口点(没有使用NativeAcvity机制),我还必须将本机窗口句柄(EGLNativeWindowTypE)从java传递到C,以便在本机代码中创建EGL表面.但是,由于您只想修改NativeActivity示例,因此您可以使用ENGIne-> app->窗口创建EGL表面,如NativeActivity main.c示例中所示.
好的,如何在本机代码中创建适当的OpenGL ES 2.0上下文?我刚刚对NativeActivity示例中的main.c文件进行了两处更改并检查它是否有效.
首先,使用以下EGL属性
const EGLint attribs[] = { EGL_RENDERABLE_TYPE,EGL_OPENGL_ES2_BIT,//important EGL_BLUE_SIZE,8,EGL_GREEN_SIZE,EGL_RED_SIZE,EGL_NONE };
在eglChooseConfig(display,attribs,& config,1,& numConfigs);.
其次,后来在创建上下文时使用
const EGLint attrib_list [] = {EGL_COntexT_CLIENT_VERSION,2,EGL_NONE};
in context = eglCreateContext(display,config,NULL,attrib_list);
我保留了其余的代码.我打印了一些信息以确保使用OpenGL ES 2.0:
I/native-activity( 955): Details: [Version: OpenGL ES 2.0 1403843],[Vendor: Qualcomm],[Renderer: Adreno 205],[Extensions: GL_AMD_compressed_3DC_texture GL_AMD_compressed_ATC_texture ... ]
希望能帮助到你!
以上是大佬教程为你收集整理的android – 在NativeActivity中创建OpenGL着色器全部内容,希望文章能够帮你解决android – 在NativeActivity中创建OpenGL着色器所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。