トップページ > 記事閲覧
Android版:エミュレータ(x86)と実機(ARM)差分
名前:海海月 日時: 2017/11/05 18:34

エミュレータ環境(x86)で問題はなく動作するのですが、実機(ARM)用に変更し実機で 動作確認を行うと、以下の事象が発生しました。 差分1 ・アプリケーションを起動すると、画面が白の状態で何も表示されない。  (音楽は再生されます) ・上記状態より、アプリケーションは停止せずホームボタンを押下。  その後、プロセス一覧から動作中のアプリケーションを選択する事で描画される。  (上記は2D画像となります) 差分2 ・pmxファイルは、上記の手順を行っても表示されず白の状態となる。  (こちらの場合も、音楽は再生されます) 動作検証可能な実機が、1台しかないため機種依存の可能性もあるかとは思いますが、 ご確認のほどよろしくお願いします。なお、確認している実機は Xperia(TM) X Compact SO-02Jとなり、 ライブラリの方は、先日 SetGraphModeを使用した場合に以降の描画処理が正常に動作しない状態を 修正いただいた test版となります。
メンテ

Page: 1 |

Re: Android版:エミュレータ(x86)と実機(ARM)差分 ( No.1 )
名前:管理人 日時:2017/11/05 23:00

うーん、すみません、今のところ原因は不明です… 幾つかご質問させてください m(_ _;m 1. エミュレータ環境(x86)よりも、実機(ARM)の方が読み込みに時間がかかる場合があります、  何十秒も読み込みに時間がかかることがありますが、どれだけ待っても画面は白いままでしょうか? 2. 不具合が発生するのは先日の SetGraphMode に関する不具合を修正したバージョンとのことですが、  不具合が発生するプログラムでは DxLib_Init の後に SetGraphMode を使用されていますでしょうか? 3. 1の問いのお答えが『DxLib_Init の後に SetGraphMode を使用されている』場合に限った質問となりますが、   DxLib_Init の後に SetGraphMode を使用しないようにした場合も不具合( 画面が白の状態 )が発生してしまうでしょうか? 4. エミュレータ環境(ARM)でも問題なく動作しますでしょうか? (2017/11/5 22:50に追記) すみません、言葉足らずでした、手元の実機(ARM)( F-02H )では正常に pmx を読み込み、表示することができました (2017/11/5 23:00に追記)
メンテ
Re: Android版:エミュレータ(x86)と実機(ARM)差分 ( No.2 )
名前:海海月 日時:2017/11/06 23:51

ご確認ありがとうございます。 2D画像が表示されない件は、ARM版のコピーしたライブラリが破損かコピー漏れがあったようで、 再度、ライブラリを上書きすることで起動直後から表示されるようになりました。お手数をおかけしました。 ただ、pmxファイルに関してですがコチラの事象は改善されず、表示されない状態です。 また、エミュレータ(ARM)で確認をしてみたのですがエミュレータ(ARM)でも表示されない状態でした。 「DxLibModelViewer」で、mv1形式に変換をしてみたのですがコチラも同様に、表示されませんでした。 (エミュレータ(x86)ではmv1形式に変換しても表示されました) エミュレータ(ARM)で表示できなかったファイル(mv1形式 変換後)をいかに格納しました。 パスワードはメールにてお伝えします。 blackbox.ne.jp/susr/umikurage/stage.zip
メンテ
Re: Android版:エミュレータ(x86)と実機(ARM)差分 ( No.3 )
名前:管理人 日時:2017/11/08 01:01

アップしていただいたモデルを描画するプログラムを組んで実行したところ、 実機( F-02H )でも正常に描画されました テストで使用したプログラムは以下の通りですので、よろしければ海海月さんの環境では 正常に表示されないのかお試しになってみてください m(_ _;m #include "DxLib.h" #define MODEL_NUM 4 int android_main( void ) { int ModelHandle[ MODEL_NUM ] ; int i ; SetGraphMode( 1280, 1024, 32 ) ; // DXライブラリの初期化 if( DxLib_Init() < 0 ) return -1 ; ModelHandle[ 0 ] = MV1LoadModel( "stage/skyDome.mv1" ) ; ModelHandle[ 1 ] = MV1LoadModel( "stage/stageMain_01.mv1" ) ; ModelHandle[ 2 ] = MV1LoadModel( "stage/stageSub_A.mv1" ) ; ModelHandle[ 3 ] = MV1LoadModel( "stage/stageSub_B.mv1" ) ; // 描画先を裏画面にする SetDrawScreen( DX_SCREEN_BACK ) ; SetCameraPositionAndTarget_UpVecY( VGet( 0.0f, 37.0f, -100.0f ), VGet( 0.0f, 15.3f, -19.0f ) ); SetCameraNearFar( 3.35f, 836.7f ); SetLightEnable( FALSE ); SetGlobalAmbientLight( GetColorF( 0.200f, 0.200f, 0.200f, 0.0f ) ); int Light0Handle = CreateDirLightHandle( VGet( -0.834f, -0.206f, 0.511f ) ); SetLightDifColorHandle( Light0Handle, GetColorF( 1.000f, 1.000f, 1.000f, 1.000f ) ); SetLightSpcColorHandle( Light0Handle, GetColorF( 0.500f, 0.500f, 0.500f, 0.000f ) ); SetLightAmbColorHandle( Light0Handle, GetColorF( 0.000f, 0.000f, 0.000f, 0.000f ) ); // メインループ(何かキーが押されたらループを抜ける) while( ProcessMessage() == 0 ) { // 画面のクリア ClearDrawScreen() ; // 3Dモデルの描画 for( i = 0; i < MODEL_NUM; i++ ) { MV1DrawModel( ModelHandle[ i ] ) ; } // 裏画面の内容を表画面に反映 ScreenFlip() ; } // DXライブラリの後始末 DxLib_End() ; // ソフトの終了 return 0 ; }
メンテ
Re: Android版:エミュレータ(x86)と実機(ARM)差分 ( No.4 )
名前:海海月(解決) 日時:2017/11/11 21:15

ご確認ありがとうございます。 管理人様から、ご提示いただいたプログラムだと表示されたため 自分の作っている部分に不具合があるようなので、作りをを確認したいと思います。
メンテ

Page: 1 |

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

   クッキー保存