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

SDL_SetWindowPosition

ウィンドウの位置の設定を要求する

ヘッダ

SDL3/SDL_video.h

構文

bool SDL_SetWindowPosition(SDL_Window *window, int x, int y);

引数

SDL_Window *window位置を変えるウィンドウ
intxウィンドウのx座標, またはSDL_WINDOWPOS_CENTERED, または SDL_WINDOWPOS_UNDEFINED
intyウィンドウのy座標, またはSDL_WINDOWPOS_CENTERED, または SDL_WINDOWPOS_UNDEFINED

戻り値

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

詳細

ウィンドウが排他的フルスクリーンまたは最大化の場合は, この要求は効果がない.

この関数はデスクトップフルスクリーンのウィンドウを別のディスプレイに移動するためにも使えるが, 排他的フルスクリーンのウィンドウは特定のディスプレイで固定されているため, プログラムでの位置の変更はSDL_SetWindowFullscreenMode()のみで行える.

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

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

スレッドセーフ

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

バージョン

SDL 3.2.0以降

関連項目

SDL Wikiへのリンク

SDL_SetWindowPosition - SDL Wiki