SDL_DisplayMode* SDL_GetClosestDisplayMode(int displayIndex, const SDL_DisplayMode* mode, SDL_DisplayMode* closest)
displayIndex | 調査するディスプレイの番号 |
mode | 要求するSDL_DisplayMode |
closest | 要求に最も近い利用可能なモードを代入するSDL_DisplayModeのポインタ |
// SDL2のSDL_GetClosestDisplayMode()を使う
#include "SDL.h"
#include <stdio.h>
int main(int argc, char* argv[]) {
// 代入される構造体を宣言する
SDL_DisplayMode target, closest;
SDL_Init(SDL_INIT_VIDEO);
// 要求する解像度等を設定する
target.w = 600;
target.h = 500;
target.format = 0; // 無視される
target.refresh_rate = 0; // 無視される
target.driverdata = 0; // 0で初期化する
printf("要求: ¥t%dx%dpx @ %dhz ¥n", target.w, target.h, target.refresh_rate);
// ディスプレイモードをSDL_GetClosestDisplayに参照呼び出しで渡す
// そして戻り値がNULLでないかチェックする
if (SDL_GetClosestDisplayMode(0, &target, &closest) == NULL)
// 戻り値がNULLならば, 一致するモードが見つからなかった
printf("¥n一致するディスプレイモードが見つからなかった!¥n¥n");
else
// その他ならば, 最も近いディスプレイモードが使える
// SDL_DisplayMode構造体をアクセスして受け取った値を見る
printf("受信: ¥t%dx%dpx @ %dhz ¥n", closest.w, closest.h, closest.refresh_rate);
// 終了処理を行いプログラムを終了する
SDL_Quit();
return 0;
}