私はフルスクリーン 3D ゲームを作成しており、ユーザーがハードウェア容量に合わせて画面解像度を選択できるメニューを作成しました。
次のように、使用可能なすべての画面モードを列挙していますEnumDisplaySettingsExA
。
std::vector<DEVMODEA> modes;
DEVMODEA modeInfo;
int modeNum = -1;
while (EnumDisplaySettingsExA(0, ++modeNum, &modeInfo, 0)) {
if (modeInfo.dmBitsPerPel < 16) continue;
modes.push_back( modeInfo );
}
問題は、パンモードも取得していることです! どれがどれか区別がつかない; たとえば、私の ATI ラップトップには 1280x800 の最大通常モードがありますが、1024x600 のパン モードも含まれています。
2 つを区別する方法を知っている人はいますか? メニューからパン モードを拒否できますか?