目次 - API(機能別) - ディスプレイとウィンドウ - SDL_GetCurrentDisplayMode

SDL_GetCurrentDisplayMode

現在のディスプレイモードを得る

構文

int SDL_GetCurrentDisplayMode(int displayIndex, SDL_DisplayMode* mode)

引数

displayIndex調査するディスプレイの番号
mode現在のディスプレイモードを代入するSDL_DisplayModeのポインタ

戻り値

成功のとき0, 失敗のとき負の数のエラーコードを戻す. SDL_GetError()を呼んで詳細を知ることができる.

サンプルコード

// SDL2のSDL_GetCurrentDisplayMode()を使う

#include "SDL.h"

int main(int argc, char* argv[])
{
  int i;

  // 代入されるディスプレイモード構造体を宣言する
  SDL_DisplayMode current;

  SDL_Init(SDL_INIT_VIDEO); 

  // 全てのディスプレイの現在のディスプレイモードを得る
  for(i = 0; i < SDL_GetNumVideoDisplays(); ++i){
  
    int should_be_zero = SDL_GetCurrentDisplayMode(i, &current);

    if(should_be_zero != 0)
      // エラー発生...
      SDL_Log("ビデオディスプレイ #%d のディスプレイモードを得られなかった: %s", i, SDL_GetError());

    else 
      // 成功, 現在のディスプレイモードを表示する
      SDL_Log("ディスプレイ #%d: 現在のディスプレイモードは %dx%dpx @ %dhz", i, current.w, current.h, current.refresh_rate);

  }
 
  // 終了処理してプログラムを終了する
  SDL_Quit();     
  return 0;   
 
}

詳細

この関数とSDL_GetDesktopDisplayMode()は, SDLがフルスクリーンで, かつ解像度を変えたとき異なる. その場合, この関数は現在のディスプレイモードを戻すが, SDL_GetDesktopDisplayMode()は変更前のディスプレイモードを戻す.

バージョン

SDL 2.0.0以降

関連項目(関数)

SDL_GetDesktopDisplayMode
SDL_GetDisplayMode
SDL_GetNumVideoDisplays
SDL_SetWindowDisplayMode

SDL Wikiへのリンク

SDL_GetCurrentDisplayMode - SDL Wiki