我在GLSurfaceView.Renderer类Android.This上使用Android.This语言开发了Open项目。
现在,我想创建一个用OpenGL开发安卓系统的NDK项目。但我不喜欢用GLSurfaceView.Renderer.Android的java源代码正在调用框架中的C souce。因此,我认为在不使用java的情况下调用开源库会比java运行得更快。
那么,是否有可能在纯c++ (例如NativeActivity )中创建一个具有表面视图的opengl上下文?
发布于 2016-10-27 14:43:06
本机c++界面曾经存在问题,谷歌没有保证它的ABI稳定性。这意味着二进制文件将取决于特定版本的c++接口。但是简单的解决方案过去是有java初始化代码,然后只使用c++来呈现路径。java初始化的少量额外成本并不是真正需要考虑的问题,因为代码很少运行。
如果谷歌改变了ABI的稳定性,那么您可以创建一个ANativeWindow并将其传递给eglCreateWindowSurface。
发布于 2016-10-28 22:19:11
看看一个名为"MoreTeapots“的安卓例子。它尽可能多地使用C++,尽可能少使用Java。它在一个单独的线程中运行所有东西,并与UI线程通信以接收事件。
但是,它的运行速度不会超过Java在每个帧中调用C++代码的速度(至少没有使用Renderer类这一事实是如此)。
https://stackoverflow.com/questions/40279281
复制相似问题