トップページ > 過去ログ > 記事閲覧
Ver 3.02f
名前:maruo 日時: 2010/07/15 13:27

7月11日頃にアップされたバージョンで、 ChangeWindowModeでアクセス違反、 (SetChangeScreenModeGraphicsSystemResetFlag( FALSE )で復帰させてます) ウィンドウモード時に他アプリ等で画面に被さる動作をすると表示が狂う、拡大されてるような感じ。 Ver 3.02eに戻すと同じ症状は再現しませんでした。

Page: 1 |

Re: Ver 3.02f ( No.1 )
名前:いっち 日時:2010/07/15 21:37

> ChangeWindowModeでアクセス違反 7/11付けのテストバージョンにて確認しましたが SetChangeScreenModeGraphicsSystemResetFlag がうまく動作していないように見受けられました。 私の環境では2回以上ウィンドウのモードを変更した場合、グラフィックハンドルが復帰しませんでした。(アクセス違反は発生しませんでした。) > ウィンドウモード時に他アプリ等で画面に被さる動作をすると表示が狂う、拡大されてるような感じ。 この事象も確認できました。ウィンドウをバックグラウンドにした際の描画内容が安定していないようでした。 //-- 以下、テストソース (Test1.bmpを使用)--// #include "DxLib.h" int StrColor; void ChangeCallback( void *Data ) { StrColor = GetColor( 255, 0, 0 ); SetDrawScreen( DX_SCREEN_BACK ) ; } int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { SetUseASyncChangeWindowModeFunction( TRUE, ChangeCallback, NULL ); if ( DxLib_Init( ) == -1 ) return -1; SetChangeScreenModeGraphicsSystemResetFlag( FALSE ); SetDrawScreen( DX_SCREEN_BACK ); StrColor = GetColor( 255, 255, 255 ); int gh = LoadGraph( "Test1.bmp" ); int flag = FALSE; while ( ProcessMessage( ) == 0 && CheckHitKey( KEY_INPUT_ESCAPE ) == 0 ) { if ( CheckHitKey( KEY_INPUT_SPACE ) ) { flag = flag ? FALSE : TRUE; ChangeWindowMode( flag ); WaitTimer( 2000 ); } ClearDrawScreen( ); DrawGraph( 0, 0, gh, TRUE ); DrawFormatString( 0, 0, StrColor, "test" ); ScreenFlip( ); } DxLib_End( ); return 0; }
Re: Ver 3.02f ( No.2 )
名前:管理人 日時:2010/07/18 04:17

ご報告ありがとうございます SetChangeScreenModeGraphicsSystemResetFlag( FALSE ) ; の設定で ChangeWindowMode を使用すると アクセス違反が発生する不具合、又はグラフィックハンドルが復帰しない不具合 ウインドウモード時に他アプリ等の画面を被せると表示が狂う不具合 共に修正しました こちらに修正バージョンをアップしましたので、よろしければお使い下さい m(_ _)m http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用 (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい)
Re: Ver 3.02f ( No.3 )
名前:maruo 日時:2010/07/18 17:37

> いっちさん 検証&テストソースありがとうございますm(_ _)m > 管理人さん 修正ありがとうございますm(_ _)m SetChangeScreenModeGraphicsSystemResetFlag( FALSE )で ChangeWindowModeでの復帰は、カメラ設定がデフォルト?に戻ったのですが ALT+TABでのアプリ切り替え時の復帰ではカメラ設定そのままでした。 ChangeWindowModeと一緒にカメラ設定し直すだけですので何ら問題ないのですが 仕様かどうかわからなかったので、一応報告です。
Re: Ver 3.02f ( No.4 )
名前:管理人 日時:2010/07/20 03:17

ご報告ありがとうございます フルスクリーンモードの場合は必ず復帰前と同じ画面解像度で復帰するという前提がありますが、 SetChangeScreenModeGraphicsSystemResetFlag( FALSE ) での復帰は SetGraphMode を使用した際にも 有効な関係上、復帰前と解像度が変化している可能性があるので、カメラの設定はリセットされる という仕様になっています( ChangeWindowMode の場合だけ復帰する、というのもありですが・・・ (・・;; )
Re: Ver 3.02f ( No.5 )
名前:maruo 日時:2010/07/20 21:41

なるほど、言われてみれば納得の仕様です。

Page: 1 |