SDL_INIT_INTERFACE(3)

NAME
SDL_INIT_INTERFACE - A macro to initialize an SDL interface.

SYNOPSIS
#include <SDL3/SDL_stdinc.h>

#define SDL_INIT_INTERFACE(iface)               \
    do {                                        \
        SDL_zerop(iface);                       \
        (iface)->version = sizeof(*(iface));    \
    } while (0)

DESCRIPTION
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 = {
            .version = sizeof(iface),
            .seek = ...
        };
        stream = SDL_OpenIO(&iface, NULL);

THREAD SAFETY
It is safe to call this macro from any thread.

AVAILABILITY
This macro is available since SDL 3.2.0.

SEE ALSO
SDL_IOStreamInterface(3type), SDL_StorageInterface(3type), SDL_VirtualJoystickDesc(3type)