jniで、テクスチャ画像をアプリと関係ない場所から、読込みたくなった時の備忘録。

libpngが公開されているので、ココからダウンロードしてビルドしましたが、
そのままでは、通りませんでした。

エラー内容:
CMakeFiles/testlib.dir/src/main/cpp/pngrutil.c.o: In function `png_init_filter_functions’:
D:\Products\OpenGL\libpng\aaaaa\3rdPartyLibPng\app\src\main\cpp/pngrutil.c:3983: undefined reference to `png_init_filter_functions_neon’

いろいろ調べましたが、結局わからず。
エラー行をコメントアウトして対応。

こんな感じ。一応ちゃんと描画されているのでよしとします。

ポイント
  • libpngのアンドロイド版をダウンロード、ビルド
  • このままだとビルドが通らないので、エラー行をコメント化
  • 自分のプロジェクトにソースコードごと追加する。

pngrutil.c…エラーをコメント化

CMakeLists.txt…libpngのビルド設定

CppPng.h…libpngを使うためのラッパークラス

CppPng.cpp

CppSurfaceView.cpp…テクスチャ設定

あ、adb pushで、画像ファイルをコピーするのを忘れずに!!

ソースコード一式はココ