繁体   English   中英

如何使用Android NDK调用“ glEnable”?

[英]How can I call “glEnable” using Android NDK?

我正在尝试对android环境进行世界上最简单的测试,只是在处理端口之前先让我所有的鸭子都排成一行。

我要做的第一件事就是链接GLES 1.0 ...这是我采取的步骤:

一个:使用Android Studio 2.3.2,我创建了一个具有基本活动的新的启用C ++的项目

二:在AndroidManifest.xml中,我添加了以下内容:

<uses-feature android:glEsVersion="0x00010000" />

三:在CMakeLists.txt中,我添加了以下几行:

find_package( ZLIB REQUIRED )
find_library( GLES1_LIBRARY names GLESv1_CM )
include_directories( ${ZLIB_INCLUDE_DIRS} ${GLES_INCLUDE_DIRS} )
...
target_link_libraries( # Specifies the target library.
                   native-lib
                   ${ZLIB_LIBRARIES}
                   ${GLES1_LIBRARIES}
                   ${log-lib} )

这适用于log-lib,也适用于zlib ...不适用于GLES1(请参阅下一步)

第四:我只是向native-lib.cpp添加了一条简单的代码

 glEnable(GL_BLEND);

点击编译并...

CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o: In function `Java_com_game_raptisoft_myapplication_MainActivity_stringFromJNI':
C:\Users\Raptisoft2011\Desktop\Android\MyApplication\app\src\main\cpp/native-lib.cpp:12: undefined reference to `glEnable'

我该如何解决这个问题? 我还需要包含更多的链接声明吗? 我尝试了GLES1_LIBRARY的各种迭代(例如GLES_LIBRARY等),但是没有任何效果。

尝试

target_link_libraries( # Specifies the target library.
               native-lib
               ${ZLIB_LIBRARIES}
               EGL
               GLESv1_CM
               ${log-lib} )

另外,您已将${GLES1_LIBRARIES}定位${GLES1_LIBRARIES}目标,但在上方已将其拼写为GLES1_LIBRARY


如果可以,我建议移植到gles2。 您最需要担心的是编写着色器,它使您可以更好地控制数据的绘制方式。


顺便说一句,这与使用PopCap框架创建Chuzzle的Rapitsoft相同吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM