目次 - SDL 3.0 API(機能別) - ディスプレイとウィンドウ - SDL_GetWindowProperties
SDL_GetWindowProperties
ウィンドウのプロパティを得る
ヘッダ
SDL3/SDL_video.h
構文
SDL_PropertiesID SDL_GetWindowProperties(SDL_Window *window);
引数
戻り値
(SDL_PropertiesID) プロパティグループIDを戻す. 失敗のとき0を戻す.
SDL_GetError()を呼んで詳細を知ることができる.
詳細
SDLから次の読取専用プロパティが提供されている:
- SDL_PROP_WINDOW_SHAPE_POINTER: 矩形ウィンドウのサーフェイス
- SDL_PROP_WINDOW_HDR_ENABLED_BOOLEAN: 真のときウィンドウにSDRホワイトポイント以上のHDRヘッドルームがある. このプロパティはSDL_EVENT_WINDOW_HDR_STATE_CHANGEDイベントが送られたとき動的に変化しうる
- SDL_PROP_WINDOW_SDR_WHITE_LEVEL_FLOAT: SDL_COLORSPACE_SRGB_LINEAR色空間のSDRホワイトの値. WindowsではscRGB色空間と関連しており, Apple環境ではEDRでは常に1.0である. このプロパティはSDL_EVENT_WINDOW_HDR_STATE_CHANGEDが送られたとき動的に変化しうる
- SDL_PROP_WINDOW_HDR_HEADROOM_FLOAT: SDRホワイトポイントからの表示可能な追加のハイダイナミックレンジ. HDRが有効でなければ1.0である. このプロパティはSDL_EVENT_WINDOW_HDR_STATE_CHANGEDが送られたとき動的に変化しうる
Androidの場合:
- SDL_PROP_WINDOW_ANDROID_WINDOW_POINTER: ウィンドウのANativeWindow
- SDL_PROP_WINDOW_ANDROID_SURFACE_POINTER: ウィンドウのEGLSurface
iOSの場合:
- SDL_PROP_WINDOW_UIKIT_WINDOW_POINTER: ウィンドウの(__unsafe_unretained) UIWindow
- SDL_PROP_WINDOW_UIKIT_METAL_VIEW_TAG_NUMBER: ウィンドウのmetal viewのNSIntegerタグ
- SDL_PROP_WINDOW_UIKIT_OPENGL_FRAMEBUFFER_NUMBER: OpenGLビューのframebufferオブジェクト. OpenGLを使ってスクリーンにレンダリングする場合はバインドされているはずである
- SDL_PROP_WINDOW_UIKIT_OPENGL_RENDERBUFFER_NUMBER: OpenGLのrenderbufferオブジェクト. SDL_GL_SwapWindowが呼ばれたときバインドされるはずである
- SDL_PROP_WINDOW_UIKIT_OPENGL_RESOLVE_FRAMEBUFFER_NUMBER: MSAAを使用している場合, OpenGLビューのresolve framebuffer
KMS/DRMの場合:
- SDL_PROP_WINDOW_KMSDRM_DEVICE_INDEX_NUMBER: ウィンドウのデバイスのインデックス番号 (例: /dev/dri/cardXのX)
- SDL_PROP_WINDOW_KMSDRM_DRM_FD_NUMBER: ウィンドウのDRM FD
- SDL_PROP_WINDOW_KMSDRM_GBM_DEVICE_POINTER: ウィンドウのGBMデバイス
macOSの場合:
- SDL_PROP_WINDOW_COCOA_WINDOW_POINTER: ウィンドウの(__unsafe_unretained) NSWindow
- SDL_PROP_WINDOW_COCOA_METAL_VIEW_TAG_NUMBER: ウィンドウのmetal viewのNSIntegerタグ
OpenVRの場合:
- SDL_PROP_WINDOW_OPENVR_OVERLAY_ID_NUMBER: オーバーレイウィンドウのOpenVRオーバーレイハンドルID
Vivanteの場合:
- SDL_PROP_WINDOW_VIVANTE_DISPLAY_POINTER: ウィンドウのEGLNativeDisplayType
- SDL_PROP_WINDOW_VIVANTE_WINDOW_POINTER: ウィンドウのEGLNativeWindowType
- SDL_PROP_WINDOW_VIVANTE_SURFACE_POINTER: ウィンドウのEGLSurface
On Windows:
- SDL_PROP_WINDOW_WIN32_HWND_POINTER: ウィンドウのHWND
- SDL_PROP_WINDOW_WIN32_HDC_POINTER: ウィンドウのHDC
- SDL_PROP_WINDOW_WIN32_INSTANCE_POINTER: ウィンドウのHINSTANCE
Waylandの場合:
注意: xdg_*ウィンドウオブジェクトは内部ではウィンドウの表示/非表示の呼び出しに渡って継続しない.
ウィンドウが非表示のときnullとなり, 表示のたびに再獲得する必要がある.
- SDL_PROP_WINDOW_WAYLAND_DISPLAY_POINTER: ウィンドウのwl_display
- SDL_PROP_WINDOW_WAYLAND_SURFACE_POINTER: ウィンドウのwl_surface
- SDL_PROP_WINDOW_WAYLAND_VIEWPORT_POINTER: ウィンドウのwp_viewport
- SDL_PROP_WINDOW_WAYLAND_EGL_WINDOW_POINTER: ウィンドウのwl_egl_window
- SDL_PROP_WINDOW_WAYLAND_XDG_SURFACE_POINTER: ウィンドウのxdg_surface
- SDL_PROP_WINDOW_WAYLAND_XDG_TOPLEVEL_POINTER: ウィンドウのxdg_toplevel role
- SDL_PROP_WINDOW_WAYLAND_XDG_TOPLEVEL_EXPORT_HANDLE_STRING: ウィンドウのexport handle
- SDL_PROP_WINDOW_WAYLAND_XDG_POPUP_POINTER: ウィンドウのxdg_popup role
- SDL_PROP_WINDOW_WAYLAND_XDG_POSITIONER_POINTER: ポップアップモード時のウィンドウのxdg_positioner
X11の場合:
- SDL_PROP_WINDOW_X11_DISPLAY_POINTER: ウィンドウのX11 Display
- SDL_PROP_WINDOW_X11_SCREEN_NUMBER: ウィンドウのスクリーン番号
- SDL_PROP_WINDOW_X11_WINDOW_NUMBER: ウィンドウのX11 Window
Emscriptenの場合:
- SDL_PROP_WINDOW_EMSCRIPTEN_CANVAS_ID_STRING: canvas要素のid
- SDL_PROP_WINDOW_EMSCRIPTEN_FILL_DOCUMENT_BOOLEAN: 真のときcanvasはブラウザウィンドウ全体を占めていて, 一部のSDLウィンドウ機能を回避する
- SDL_PROP_WINDOW_EMSCRIPTEN_KEYBOARD_ELEMENT_STRING: このウィンドウのキーボード入力にバインドされたキーボード要素
スレッドセーフ
この関数を呼べるのはメインスレッドのみである.
バージョン
SDL 3.2.0以降
SDL Wikiへのリンク
SDL_GetWindowProperties - SDL Wiki