#define SDL_INIT_INTERFACE(iface) \
do { \
SDL_zerop(iface); \
(iface)->version = sizeof(*(iface)); \
} while (0)
このマクロはSDLインターフェース構造体を初期化する. そして, アプリケーションはフィールドに書き込む前にこのマクロを呼ぶ必要がある.
次のように使用する:
SDL_IOStreamInterface iface;
SDL_INIT_INTERFACE(&iface);
// アプリケーションでインターフェース関数ポインタを設定する
iface.seek = ...
stream = SDL_OpenIO(&iface, NULL);
指示付き初期化を使用するならば, versionをインターフェースのサイズで初期化すること. 例えば
SDL_IOStreamInterface iface = {
.version = sizeof(iface),
.seek = ...
};
stream = SDL_OpenIO(&iface, NULL);
この関数はどのスレッドからも安全に呼べる.