いつもお世話になっております。
GetDisplayMode関数の挙動で少し疑問があったためスレッドを立てさせていただきました。
下記のソースコードで対応している画面モードの取得、列挙をするプログラムを作成し実行したところ、
同じ解像度、周波数が2,3つほど重複して取得されました。
グラフィックボードのプロパティでは重複していませんでしたが、この挙動は仕様なのでしょうか?
--- 以下ソースコード ---
#include "DxLib.h"
#include <vector>
int WINAPI _tWinMain(_In_ HINSTANCE hInstance,
_In_opt_ HINSTANCE hPrevInstance,
_In_ LPTSTR lpCmdLine,
_In_ int nShowCmd) {
SetGraphMode(1920, 1080, 32);
ChangeWindowMode(TRUE);
if (DxLib_Init() != 0) {
return -1;
}
SetDrawScreen(DX_SCREEN_BACK);
std::vector<DISPLAYMODEDATA> mode;
mode.resize(GetDisplayModeNum(0));
for (int i = 0; i < mode.size(); i++) {
mode.at(i) = GetDisplayMode(i, 0);
}
while (ProcessMessage() == 0) {
ClearDrawScreen();
for (int i = 0; i < mode.size(); i++) {
DrawFormatString(0, i * 18, GetColor(0xFF, 0xFF, 0xFF),
_T("%dx%d %dbit %dHz"), mode.at(i).Width, mode.at(i).Height, mode.at(i).ColorBitDepth, mode.at(i).RefreshRate);
}
ScreenFlip();
}
DxLib_End();
return 0;
}
--- ソースコードここまで ---
--- 実行結果 ---
640x480 32bit 59Hz
640x480 32bit 60Hz
720x480 32bit 60Hz
720x480 32bit 59Hz
720x576 32bit 60Hz
720x576 32bit 60Hz
720x576 32bit 60Hz
800x600 32bit 60Hz
1024x768 32bit 60Hz
1152x864 32bit 59Hz
1152x864 32bit 60Hz
1176x664 32bit 60Hz ※重複箇所
1176x664 32bit 60Hz
1176x664 32bit 60Hz
1176x664 32bit 59Hz
1176x664 32bit 59Hz
1176x664 32bit 59Hz
1280x720 32bit 60Hz
1280x720 32bit 59Hz
1280x768 32bit 60Hz
1280x768 32bit 60Hz
1280x800 32bit 60Hz
1280x960 32bit 60Hz ※
1280x960 32bit 60Hz
1280x960 32bit 60Hz
1280x1024 32bit 60Hz
1360x768 32bit 60Hz
1360x768 32bit 60Hz
1360x768 32bit 60Hz
1366x768 32bit 60Hz
1366x768 32bit 60Hz
1366x768 32bit 60Hz
1600x900 32bit 60Hz
1600x1024 32bit 60Hz
1600x1024 32bit 60Hz
1600x1024 32bit 60Hz
1600x1024 32bit 59Hz
1600x1024 32bit 59Hz
1600x1024 32bit 59Hz
1600x1200 32bit 59Hz ※
1600x1200 32bit 60Hz
1600x1200 32bit 59Hz
1600x1200 32bit 60Hz
1600x1200 32bit 59Hz
1600x1200 32bit 60Hz
1680x1050 32bit 60Hz
1680x1050 32bit 60Hz
1680x1050 32bit 60Hz
1680x1050 32bit 59Hz
1680x1050 32bit 59Hz
1680x1050 32bit 59Hz
1768x992 32bit 60Hz
1768x992 32bit 60Hz
1768x992 32bit 60Hz
1768x992 32bit 59Hz
1768x992 32bit 59Hz
1768x992 32bit 59Hz
1920x1080 32bit 60Hz
1920x1080 32bit 59Hz
1920x1200 32bit 59Hz ※
1920x1200 32bit 60Hz
1920x1200 32bit 59Hz
1920x1200 32bit 60Hz
1920x1200 32bit 59Hz
1920x1200 32bit 60Hz
1920x1440 32bit 59Hz
1920x1440 32bit 60Hz
1920x1440 32bit 59Hz
1920x1440 32bit 60Hz
1920x1440 32bit 59Hz
1920x1440 32bit 60Hz
2048x1536 32bit 60Hz ※
2048x1536 32bit 60Hz
2048x1536 32bit 60Hz
2048x1536 32bit 30Hz
2048x1536 32bit 30Hz
2048x1536 32bit 30Hz
2560x1440 32bit 59Hz
2560x1440 32bit 60Hz
2560x1600 32bit 60Hz
2560x1600 32bit 60Hz
2560x1600 32bit 60Hz
2560x1600 32bit 30Hz
2560x1600 32bit 30Hz
2560x1600 32bit 30Hz
3840x2160 32bit 60Hz
3840x2160 32bit 30Hz
--- 実行結果ここまで ---
実行環境
OS: Windows 10 Ver.1809 x64
CPU: Intel Core i7-4770
RAM: 8GB
GPU: NVIDIA GeForce GTX760