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

SDL_SetWindowAspectRatio

ウィンドウのクライアント領域の縦横比の設定を要求する

ヘッダ

SDL3/SDL_video.h

構文

bool SDL_SetWindowAspectRatio(SDL_Window *window, float min_aspect, float max_aspect);

引数

SDL_Window *window設定するウィンドウ
floatmin_aspectウィンドウの縦横比の最小
floatmax_aspectウィンドウの縦横比の最大

戻り値

(bool) 成功のとき真, 失敗のとき偽を戻す. SDL_GetError()を呼んで詳細を知ることができる.

詳細

縦横比は幅を高さで割った比で, 例えば2560×1600ならば1.6である. 縦横比が大きいほど広く, 小さいほど狭くなる.

もし, この要求をした時点で, ウィンドウが最大化やフルスクリーンのようにサイズ固定の状態ならば, この要求はウィンドウがサイズ変更可能な状態になるまで延期される.

一部のウィンドウシステムでは, この要求は非同期で, この関数から戻っても新しいウィンドウの状態は即座には適応されない. 即座に変更したい場合は, SDL_SyncWindow()を呼んで変更されるまでブロックすること.

ウィンドウの状態が変わると, SDL_EVENT_WINDOW_RESIZEDイベントが発生する. 一部のウィンドウシステムは様々な条件でウィンドウサイズを制限する(例えば表示領域をデスクトップの利用可能範囲に収まるようにする)場合があるため, ウィンドウのサイズは要求した縦横比と正確には一致しない場合があるので注意すること. さらに, これは単に要求するだけであり, ウィンドウシステムは状態の変更を遅らせる可能性がある.

スレッドセーフ

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

バージョン

SDL 3.2.0以降

関連項目

SDL Wikiへのリンク

SDL_SetWindowAspectRatio - SDL Wiki