> 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;
}