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

SDL_GetDisplayProperties

ディスプレイのプロパティを得る

ヘッダ

SDL3/SDL_video.h

構文

SDL_PropertiesID SDL_GetDisplayProperties(SDL_DisplayID displayID);

引数

SDL_DisplayIDdisplayID問い合わせるディスプレイ

戻り値

(SDL_PropertiesID) プロパティグループIDを戻す. 失敗のとき0を戻す. SDL_GetError()を呼んで詳細を知ることができる.

詳細

SDLから次の読取専用プロパティが提供されている:

KMS/DRMの場合:

On Waylandの場合:

スレッドセーフ

この関数を呼べるのはメインスレッドのみである.

バージョン

SDL 3.2.0以降

サンプルコード

// サンプルプログラム:
// SDL3でディスプレイのHDRが有効かをチェックする

#include <SDL3/SDL_log.h>
#include <SDL3/SDL_main.h>
#include <SDL3/SDL_stdinc.h>
#include <SDL3/SDL_video.h>

int
main(int argc, char** argv)
{
  if (!SDL_Init(SDL_INIT_VIDEO)) {
    SDL_Log("SDLの初期化に失敗した: %s", SDL_GetError());
    return 0;
  }

  SDL_Log("SDL初期化");

  int num_displays;
  SDL_DisplayID *displays = SDL_GetDisplays(&num_displays);

  for(int i = 0; i < num_displays; i++) {
    SDL_PropertiesID prop_id = SDL_GetDisplayProperties(displays[i]);

    if(!SDL_GetBooleanProperty(prop_id, SDL_PROP_DISPLAY_HDR_ENABLED_BOOLEAN, false)) {
      SDL_Log("ディスプレイID %"SDL_PRIu32 " には有効なHDRが存在しない", displays[i]);
    } else {
      SDL_Log("ディスプレイID %"SDL_PRIu32 " のHDRは有効.", displays[i]);
    }
  }

  SDL_free(displays);

  return 0;
}

SDL Wikiへのリンク

SDL_GetDisplayProperties - SDL Wiki