トップページ > 記事閲覧
Android版:スレッド関連
名前:ギウ 日時: 2018/03/14 23:19

お世話になっております。 Windowsだと上手くいってて、Androidで上手くいかないので、質問です。 ゲームの1フレームの流れが、↓の状態の時。 ========== ゲーム処理(ソフトウェアレンダリング)→ReCreateGraphFromSoftImage→ScreenFlip→ProcessMessage ========== ↓の部分をスレッド化しました。 === ReCreateGraphFromSoftImage→ScreenFlip→ProcessMessage === ※VRAMとは別に、仮想VRAMを2枚用意し、スレッド処理をしてる間にゲーム処理を入れてる感じです。 Windows側は、_beginthreadexやWaitForSingleObjectを使い、上手く動作してます。 Android版は、pthread_createやpthread_joinを使ったのですが、上手くいきません。 処理自体は流れてる(エラーは出てない)のですが、画面が動かない感じです。(操作はできます) DXライブラリと直接関係ないかもですが、何かわかりましたら教えてください;
メンテ

Page: 1 |

Re: Android版:スレッド関連 ( No.1 )
名前:管理人 日時:2018/03/15 00:24

すみません、DXライブラリは『DxLib_Init 呼び出しを行ったスレッド』以外のスレッドで DXライブラリの関数を呼んだ場合の動作の保証はしていません なので、Windows版で上手く動作しているのは「たまたま」で、Windows版でも環境によっては 正常に動作しない可能性があります なので、Android版で正常に動作しないことに関しても対応はできません m(_ _;m ( ライブラリの設計を根っこから変更する必要があるので・・・ ) 問題になるのはDXライブラリの関数内部で呼ばれる各プラットフォームの API の呼び出し処理なので、 寧ろ「ゲーム処理(ソフトウェアレンダリング)」の方をスレッド化された方が良いのではないかと思うのですが如何でしょうか? (・・; ( DXライブラリの関数があまり絡まない処理だと思いますので )
メンテ
Re: Android版:スレッド関連 ( No.2 )
名前:ギウ(解決) 日時:2018/03/15 06:03

ご回答ありがとうございます! なるほど了解です。 ゲーム処理側をスレッド化してみます。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存