ARGENTO CUORE

 May the code be with you.

--.--.--[--] スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

2010.01.16[土] setRenderModeとか、Threadのこととか

三次元グラフィックスを表示するのにGLSurfaceViewを使っているのですが、
onDrawFrame
というメソッドが定期的に呼ばれるっていう説明を見て、こちら側でこの時に描画してほしいというタイミングを制御できないかなーと思っていたら、
setRenderMode
というメソッドで、RENDERMODE_WHEN_DIRTYを指定してやれば、
requestRender()
で描画を要求することができるらしいです。

フレームレートはオブジェクトの数や大きさで随分変化してしまい、PCのように60fps固定とか30fps固定とかが無理そうです……。

で、今はGameThreadというプログラム中の色々な計算をするスレッドを作っていて、そこのメインループからrequestRender()を呼び出すようにしました。そうしたら、1つ問題を発見。

なぜかアプリを終了させても、GameThreadのメインループが終了しない。

で、Threadのインスタンスの参照先をnullにしてみたり、そのあと強制GCかけてみたりしたんですが、メインループ終了しない……。なんでだろう……。

とりあえず、メインループ内でboolean値を参照するようにしてbreakさせるかどうかを分岐、UIのほうから終了が選択されたら、boolean値をfalseにして、Threadインスタンスの参照をnullにするようにしました。

これで良いのかなぁ……。
スポンサーサイト

Comment

2012.05.24 Thu 12:03  承認待ちコメント

このコメントは管理者の承認待ちです
  • #
  •  
  • []
  • [Edit]






(編集・削除用)


管理者にだけ表示を許可

Trackback

http://ronor.blog81.fc2.com/tb.php/34-ccff1399

この記事にトラックバック(FC2Blog User)

Scala Feed

scala feed

FC2カウンター

プロフィール

RoNor

Author:RoNor
得意呪文はScalaですって言えるようになるのが夢です。
デスマーチ中、パーティメンバーの防御力を向上させたりさせなかったり。

検索フォーム

QRコード

QRコード

Copyright © 2009-2010 ARGENTO CUORE and RoNor All rights reserved.

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。