OpenGLのおすすめの本のバグ

OpenGLを勉強するにあたっては、下記の本がとっても分かりやすいかと思います。

 

 

とはいえ、やっぱり最初は難しいのですが、2Dの部分までやりこめば、OpenGLのパターンがわかってくるかと思います。

基本的には、

1、全体を構築

2、表示したいものを決めて、それに合わせた描画関数を作る

3、2で作ったものを使いまわす。

の3段階でOpenGLは割とカンタンに使えるようになりました。

 

ただ、本の通りに作ってみたら、テクスチャの破棄の時点で、下記のエラーが表示されていました。

E/libEGL(6891): call to OpenGL ES API with no current context (logged once per thread)

赤文字なので、エラーなんですが、

本では、メインのActivityのonPauseで、Texttureを消しましょう。としているのだけど、「そこから呼ぶのはだめ」というエラーが表示されます。

TextureManager.deleteAll(Global.gl1);

上記の実行で、詳しくは本を読めばわかるのですが、テクスチャを用意した時にメモリ解放の為、その描画を離れる時はテクスチャを破棄しましょう。っていう関数部分です。

 

で、いろいろエラーを検索してもあまり引っかからなかったのですが、

せんりつの昼行灯:AndroidのOpenGL ESでのテクスチャの扱いについて

こちらのブログで同じ内容でひっかかったのかと思うのですが、解決方法がしるされていました。

 

_gLSurfaceView.queueEvent(new Runnable() {
 public void run() {
 TextureManager.deleteAll(Global.gl1);
 }
});

これだけでした。_gLSurfaceViewはOpenGLを組み込んでいるSurfaceViewですが、

エラーが発生しなくなりました。

 

※実際にどこに設置するかで、エラーは発生したりしなかったりを調べるのが割とデリケートでしたが。。。

 

OpenGLをお使いの方はぜひお気をつけくださいませ。

前後の記事

前の記事:

次の記事:

関連の記事

コメントの投稿

  • サイト内検索

新作アプリの紹介

関連サイトの紹介

アンドロイドアプリ開発TIPS
きぐるみカメラ
ふらいぱん
アンドロイドのデザイン集
Page top↑