Use this function to prepare a read-only memory buffer for use with SDL_IOStream.
Defined in <SDL3/SDL_iostream.h>
const void *mem, size_t size); SDL_IOStream * SDL_IOFromConstMem(
const void * | mem | a pointer to a read-only 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. It assumes the memory area is not writable.
Attempting to write to this SDL_IOStream stream will report an error without writing to the memory buffer.
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 write to a memory buffer, you should use SDL_IOFromMem() with a writable 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.