目次 - SDL 3.0 API(機能別) - サーフェイスの生成と単純な描画 - SDL_RotateSurface

SDL_RotateSurface

サーフェイスの弧度法で指定した角度に時計回りに回転させたコピーを生成する

ヘッダ

SDL3/SDL_surface.h

構文

SDL_Surface * SDL_RotateSurface(SDL_Surface *surface, float angle);

引数

SDL_Surface *src回転させるサーフェイス
floatangle回転の弧度法の角度

戻り値

(SDL_Surface *) 回転したサーフェイスのコピーを戻す. 失敗のときNULLを戻す. SDL_GetError()を呼んで詳細を知ることができる.

詳細

回転する角度は反時計回りとして負の数を渡すこともできる.

角度が90度の倍数でない場合, 元の画像よりも大きくなるが, 背景は可能ならばカラーキーで, 可能でなければRGBA 255/255/255/0で塗りつぶされる.

サーフェイスにSDL_PROP_SURFACE_ROTATION_FLOATプロパティが設定されている場合, 生成されたサーフェイスには調整された値が設定される: 回転プロパティが90で角度が30ならば, 新しいサーフェイスのプロパティの値は60となる(つまり, 重力に逆らって正しく表示するには, このサーフェイスはさらに60度回転させる必要がある). しかし, この例の場合の新しいサーフェイスをさらに回転させると, 90度単位でない場合は画像のサイズと調整のための詰め物が生じるため, 期待しない結果となるので注意すること.

スレッドセーフ

この関数は別のスレッドから別のサーフェイスに対して呼ぶことができる.

バージョン

SDL 3.4.0以降

SDL Wikiへのリンク

SDL_RotateSurface - SDL Wiki