目次 - 3.関数 - 3.1一般 - IMG_Init

IMG_Init

SDL_imageを初期化する

構文

int IMG_Init(int flags)

引数

flags初期化フラグ. 論理和で複数指定できる

戻り値

初期化された全てのフラグ

詳細

この関数はSDL_imageが必要とする動的リンクライブラリを読み込み, 使用するために初期化する. この関数はSDL_imageの内で最初に呼ばなければならない. もし呼び出しに失敗すれば, ライブラリを使うことはできない.

フラグはIMG_InitFlagsの1つか, 論理和で複数選択する. 成功のとき初期化に成功したフラグ, 失敗のとき0が戻される.

現在, 以下のフラグがある

IMG_INIT_JPG
IMG_INIT_PNG
IMG_INIT_TIF
IMG_INIT_WEBP
IMG_INIT_JXL
IMG_INIT_AVIF

フラグは将来のSDL_imageのリリースで追加される可能性がある.

この関数は様々な画像の読み書きに対応するために外部の共有ライブラリを必要とする. そのため, 共有ライブラリが使えない場合は, メモリ不足などの問題がなくシステムが正常でも初期化に失敗する場合がある.

この関数はフラグを追加するために複数回呼び出せる. その場合の戻り値には, 新たに正常に初期化されたフラグと, 以前に初期化したフラグの両方が含まれている.

以前に初期化したフラグを戻すために0(フラグなし)で呼び出すことは可能である. この方法で変更を加えず安全に現在の状態を得ることができる.

この関数は以前初期化したフラグを新たなものと同様に戻すため, この関数を0で呼ぶことはできるが, 戻り値が0か否かでエラーをチェックすることはできない. 代わりに戻り値に要求したフラグが全て含まれているかでチェックすべきである. もしゲームに特定のフォーマットのデータがあるならば, 致命的なエラーを引き起こしてしまう. 一般的な画像表示アプリケーションならば, JPGとPNGに対応していれば恐らく問題はなく, たとえあらゆる形式を要求したとしても, WEBPはなくても十分だろう.

他の周辺ライブラリとは違い, IMG_Initは重ならない. 一度IMG_Quit()を呼べば全て終了するため, IMG_Initの回数呼ぶ必要はない. そのため, プログラム中ではIMG_InitとIMG_Quitを1度だけ呼ぶのが最良と考えられる. これは必須ではないが, そうでない場合は発生する危険性に注意する必要がある.

SDL_imageを初期化した後, アプリケーションはSDL_SurfaceやSDL_Textureに画像を読み込むことができるようになる.

バージョン

SDL_image 2.0.0以降

関連項目(関数)

IMG_Quit

原文へのリンク

SDL_image/IMG_Init