目次 - SDL 3.0 API(機能別) - マウス - SDL_MouseMotionTransformCallback

SDL_MouseMotionTransformCallback

マウスの移動量を変換するコールバックの型

ヘッダ

SDL3/SDL_mouse.h

構文

typedef void (SDLCALL *SDL_MouseMotionTransformCallback)( void *userdata, Uint64 timestamp, SDL_Window *window, SDL_MouseID mouseID, float *x, float *y);

引数

void *userdataSDL_SetRelativeMouseTransform()に渡したuserdata
Uint64timestampマウス移動イベントを受信した時刻
SDL_Window *windowマウス移動イベントを受信したウィンドウ
SDL_MouseIDmouseIDマウス移動イベントを発生されたマウス
float *xX軸方向の移動量へのポインタ. 変換前の値が書き込まれていて, 変換後の値を書き込む
float *yY軸方向の移動量へのポインタ. 変換前の値が書き込まれていて, 変換後の値を書き込む

詳細

このコールバックはSDLがマウス移動イベントで移動量をスケーリングするとき呼ばれる.

スレッドセーフ

このコールバックはSDLの内部マウス入力処理プロシージャから呼ばれる. これはメインイベントスレッドループとは別のリアルタイム優先度のスレッドの可能性がある. そのため, このスレッドの負荷がコールバックの影響で上がりすぎると, システム全体がフリーズする可能性がある. xとy以外の変数を操作する場合は, 同期を適切に行う必要がある.

バージョン

SDL 3.4.0以降

SDL Wikiへのリンク

SDL_MouseMotionTransformCallback - SDL Wiki