いつもお世話になっております
特定のPCだけ画像が正しく表示しない現象が発生しました。
現象を確認するために画面の横いっぱいにpngを表示するだけのコードを以下のように書いたのですが、
特定のPCだけ画面右側3/1ほどが真っ暗になります。
GetDefaultState()にてPCのWindowサイズを求めて、その90%程度のサイズを計算してScreenSizeX, ScreenSizeYにセット、
SetGraphMode(ScreenSizeX, ScreenSizeY, 16);
とした後、
ChangeWindowMode(TRUE);
SetWindowStyleMode(10);
SetAlwaysRunFlag(TRUE);
SetTransColor(0, 255, 0);
if (DxLib_Init() == -1) // DXライブラリ初期化処理
{
return -1; // エラーが起きたら直ちに終了
}
SetDrawScreen(DX_SCREEN_BACK);
SetDrawMode(DX_DRAWMODE_BILINEAR);
string path = "壁紙.png";
int PictureHandle = LoadGraph(path.c_str());
int ImgSizeX = 0, ImgSizeY = 0;
GetGraphSize(PictureHandle, &ImgSizeX, &ImgSizeY);
double zoom = (double)ScreenSizeX / (double)ImgSizeX;
while (ProcessMessage() == 0)
{
SetDrawArea(0, 0, ScreenSizeX, ScreenSizeY);
ClsDrawScreen();
DrawRotaGraph(ScreenSizeX/2, ScreenSizeY/2, zoom, 0, PictureHandle, TRUE);
ScreenFlip();
}
異常発生時のログをみるとDirectXの取得に失敗しているようです。
正常に表示するPCであれば、ログに問題なさそうです。
その異常が発生するPCでのDirextX診断プログラムでは正しくDirextX12が動作しているようです(細部に問題あるかもですが未確認です)
画像が欠ける要因として考えられるのは何がありますでしょうか?
ハイカラー(16)指定したのも影響しますでしょうか?
使用したDxLibのVerは322fです
下記の件と似ているかもしれません
https://dxlib.xsrv.jp/cgi/patiobbs/patio.cgi?mode=view&no=4181