Use this function to prepare a read-write memory buffer for use with SDL_IOStream.
Defined in <SDL3/SDL_iostream.h>
void *mem, size_t size); SDL_IOStream * SDL_IOFromMem(
void * | mem | a pointer to a buffer to feed an SDL_IOStream stream. |
size_t | size | the buffer size, in bytes. |
(SDL_IOStream *) Returns a pointer to a new SDL_IOStream structure or NULL on failure; call SDL_GetError() for more information.
This function sets up an SDL_IOStream struct based on a memory area of a certain size, for both read and write access.
This memory buffer is not copied by the SDL_IOStream; the pointer you provide must remain valid until you close the stream.
If you need to make sure the SDL_IOStream never writes to the memory buffer, you should use SDL_IOFromConstMem() with a read-only buffer of memory instead.
The following properties will be set at creation time by SDL:
SDL_PROP_IOSTREAM_MEMORY_POINTER
: this will be the mem
parameter that was passed to this function.SDL_PROP_IOSTREAM_MEMORY_SIZE_NUMBER
: this will be the size
parameter that was passed to this function.Additionally, the following properties are recognized:
SDL_PROP_IOSTREAM_MEMORY_FREE_FUNC_POINTER
: if this property is set to a non-NULL value it will be interpreted as a function of SDL_free_func type and called with the passed mem
pointer when closing the stream. By default it is unset, i.e., the memory will not be freed.It is safe to call this function from any thread.
This function is available since SDL 3.2.0.