2017-06-02 11 views
0

私はアンドロイド環境の世界で最も簡単なテストをしようとしています。ポートに取り組む前に、すべてのアヒルを一列に並べるだけです。Android NDKを使用して「glEnable」を呼び出すにはどうすればよいですか?

私がする必要がある非常にまず最初はただGLES 1.0をリンクされて...ここで私が撮ったの手順です:

ONEを:Androidのメーカー2.3.2を使用するが、私は基本的な活性を持つ新しいC++対応のプロジェクトを作成しました

TWO:

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

THREE:

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}) 
:CMakeLists.txtで私はこれらの行を追加のAndroidManifest.xmlに、私はこれを追加ログ-libのために働く、それはそれは(次のステップを参照)

FOUR GLES1のために動作しません...あまりにもzlibのために働く

:私はちょうどネイティブlib.cpp

に1つの単純な行を追加しました
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などのような)のさまざまな反復を試みましたが、何も動作しません。

答えて

0

はまた、あなたが​​を目標としている

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

試してみてください、それはGLES1_LIBRARY


することができます場合は、あなたが綴られてきた上に、私はGLES2への移植を示唆しています。心配する必要があるのは、シェーダーを書くことです。データの描画方法をより詳細に制御できます。


これはPopCapフレームワークを使用してChuzzleを作成したのと同じRapitsoftですか?

+0

それは...ですが、ChuzzleはPopcapフレームワークにはありません。私のフレームワークはAndroidを除いてクロスプラットフォームです。今、それを修正しようとするが、少年は、それは私の道のりのすべてのステップと戦っている。 – Raptisoft

+0

ところで、あなたが私に与えた解決策は、私がEGLを放置している限りです。少なくとも、それはコンパイルするために働く。残念ながら起動時にクラッシュします。だからいつものように、新しい山が登る。 :) – Raptisoft

+0

私はこの例で始めると言っています:https://github.com/googlesamples/android-ndk/tree/master/native-activityそしてそれに描画するコードを追加し始めましょう。成功したAndroidアプリケーションで作業した後、移植作業を開始します。 –

関連する問題