table of contents
other versions
- trixie 3.2.10+ds-1
- testing 3.2.24+ds-1
- unstable 3.2.26+ds-1
- experimental 3.3.2+git20251029~d9ca045+ds-1
| SDL_StorageInterface(3type) | SDL3 DATATYPES | SDL_StorageInterface(3type) |
NAME¶
SDL_StorageInterface - Function interface for SDL_Storage.
SYNOPSIS¶
#include <SDL3/SDL_storage.h>
typedef struct SDL_StorageInterface
{
/* The version of this interface */
Uint32 version;
/* Called when the storage is closed */
bool (SDLCALL *close)(void *userdata);
/* Optional, returns whether the storage is currently ready for access */
bool (SDLCALL *ready)(void *userdata);
/* Enumerate a directory, optional for write-only storage */
bool (SDLCALL *enumerate)(void *userdata, const char *path, SDL_EnumerateDirectoryCallback callback, void *callback_userdata);
/* Get path information, optional for write-only storage */
bool (SDLCALL *info)(void *userdata, const char *path, SDL_PathInfo *info);
/* Read a file from storage, optional for write-only storage */
bool (SDLCALL *read_file)(void *userdata, const char *path, void *destination, Uint64 length);
/* Write a file to storage, optional for read-only storage */
bool (SDLCALL *write_file)(void *userdata, const char *path, const void *source, Uint64 length);
/* Create a directory, optional for read-only storage */
bool (SDLCALL *mkdir)(void *userdata, const char *path);
/* Remove a file or empty directory, optional for read-only storage */
bool (SDLCALL *remove)(void *userdata, const char *path);
/* Rename a path, optional for read-only storage */
bool (SDLCALL *rename)(void *userdata, const char *oldpath, const char *newpath);
/* Copy a file, optional for read-only storage */
bool (SDLCALL *copy)(void *userdata, const char *oldpath, const char *newpath);
/* Get the space remaining, optional for read-only storage */
Uint64 (SDLCALL *space_remaining)(void *userdata);
} SDL_StorageInterface;
DESCRIPTION¶
Apps that want to supply a custom implementation of SDL_Storage will fill in all the functions in this struct, and then pass it to SDL_OpenStorage to create a custom SDL_Storage object.
It is not usually necessary to do this; SDL provides standard implementations for many things you might expect to do with an SDL_Storage.
This structure should be initialized using SDL_INIT_INTERFACE()
AVAILABILITY¶
This struct is available since SDL 3.2.0.
SEE ALSO¶
| SDL 3.2.26 | Simple Directmedia Layer |