A macro to initialize an SDL interface.
Defined in <SDL3/SDL_stdinc.h>
#define SDL_INIT_INTERFACE(iface) \
do { \
SDL_zerop(iface); \
(iface)->version = sizeof(*(iface)); \
} while (0)
This macro will initialize an SDL interface structure and should be called before you fill out the fields with your implementation.
You can use it like this:
SDL_IOStreamInterface iface;
SDL_INIT_INTERFACE(&iface);
// Fill in the interface function pointers with your implementation
iface.seek = ...
stream = SDL_OpenIO(&iface, NULL);
If you are using designated initializers, you can use the size of the interface as the version, e.g.
SDL_IOStreamInterface iface = {sizeof(iface),
.version =
.seek = ...
}; stream = SDL_OpenIO(&iface, NULL);
It is safe to call this macro from any thread.
This macro is available since SDL 3.1.3.