| Uint32 | version | このインターフェースのバージョン |
| Sint64 (SDLCALL *)(void *userdata) | size |
このSDL_IOStreamのバイト数を戻す関数 データストリームの全サイズを戻す. エラーのとき-1を戻す. |
| Sint64 (SDLCALL *)(void *userdata, Sint64 offset, SDL_IOWhence whence) | seek |
シーク位置をwhenceからoffsetだけ移動する関数whenceは次の値の1つである: SDL_IO_SEEK_SET, SDL_IO_SEEK_CUR, SDL_IO_SEEK_ENDデータストリームの移動後のシーク位置を戻す. エラーのとき-1を戻す. |
| size_t (SDLCALL *)(void *userdata, void *ptr, size_t size, SDL_IOStatus *status) | read |
データストリームから最大sizeバイトを読み込み, ptrに書き込む関数sizeは常に >0 である.読み込みが完了しなかった場合, *statusにSDL_IOStatus列挙体の値を設定する必要がある. 読み込みに成功した場合は設定する必要はない.読み込んだバイト数を戻す. |
| size_t (SDLCALL *)(void *userdata, const void *ptr, size_t size, SDL_IOStatus *status); | write |
データストリームへptrポインタからちょうどsizeバイトを書き込む関数sizeは常に >0 である.書き込みが完了しなかった場合, *statusにSDL_IOStatus列挙体の値を設定する必要がある. 書き込みに成功した場合は設定する必要はない.書き込んだバイト数を戻す. |
| bool (SDLCALL *)(void *userdata, SDL_IOStatus *status); | flush |
ストリームがバッファしている場合, データを確実に書き込む関数 失敗した場合, *statusにSDL_IOStatus列挙体の値を設定する必要がある. 成功した場合は設定する必要はない.成功のとき真, データの掃き出しに失敗したとき偽を戻す. |
| bool (SDLCALL *)(void *userdata); | close |
クローズして資源を解放する関数 この関数は物理メディアへのファイルの書き込みの同期を保証しない. システムのファイルキャッシュ内にあり, ディスクへの書き込みを待っている可能性がある. この関数が失敗してもSDL_IOStreamは破棄される. そのため, バッファの掃き出しなどが失敗しても後処理を全て行うこと 成功のとき真, データの掃き出しで書き込みエラーが生じたとき偽を戻す. |
アプリケーションは, この構造体をSDL_OpenIO()に渡して独自のSDL_IOStreamを生成することができる. これは必須ではない. SDLにはSDL_IOFromFile()やSDL_IOFromMem()のような一般的なI/Oストリームが既に用意されている.
この構造体はSDL_INIT_INTERFACE()で初期化する必要がある.