簡體   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