Wiki Page Content

Differences between revisions 5 and 7 (spanning 2 versions)
Revision 5 as of 2010-10-13 18:54:18
Size: 1080
Editor: SheenaSmith
Comment: update content - pointers, structs
Revision 7 as of 2013-08-08 19:22:01
Size: 1478
Editor: RyanGordon
Comment: Rewritten
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
||<tablewidth="100%" style="color: #FF0000;" :> DRAFT||
Line 5: Line 4:
= SDL_RWFromMem =
Use this function to create an SDL_RWops structure from memory of a certain size.
= SDL_RWFromConstMem =
Use this function to prepare a read-only memory buffer for use with RWops.
Line 12: Line 11:
SDL_RWops* SDL_RWFromMem(void* mem,
                         int size)
SDL_RWops* SDL_RWFromConstMem(const void* mem,
                              int       size)
Line 17: Line 16:
||'''mem'''||,,a pointer to ,,^the memory location^||
||'''size'''||^the size of the memory location^||

<<Color2(green,Is '''mem''' an exception to the 'pointer rule'?)>>
||'''mem'''||a pointer to a read-only buffer to feed an [[SDL_RWops]] stream||
||'''size'''||the buffer size, in bytes||
Line 23: Line 20:
A pointer to the SDL_RWops structure that is created, or NULL on failure. Returns a pointer to a new [[SDL_RWops]] structure, or NULL if it fails; call [[SDL_GetError]]() for more information.
Line 26: Line 23:
*
Line 29: Line 25:
SDL_RWops *rw;

rw = SDL_RWFromMem(bitmap, sizeof(bitmap));
SDL_SaveBMP_RW(screen, rw, 0);
SDL_RWops *rw = SDL_RWFromMem(bitmap, sizeof(bitmap));
SDL_SaveBMP_RW(screen, rw, 1);  /* closes RWOPS, leaves us memory buffer of data */
Line 34: Line 28:
*
Line 37: Line 30:
*<<BR>>If the memory is not writable, use [[SDL_RWFromConstMem]]() instead.<<BR>>* This function sets up an [[SDL_RWops]] struct based on a memory area of a certain size, for both read and write access.

This memory buffer is not copied by the RWops; the pointer you provide must remain valid until you close the stream. Closing the stream will not free the original buffer.

If you need to make sure the RWops never writes to the memory buffer, you should use [[SDL_RWFromConstMem]] with a read-only buffer of memory instead.
Line 40: Line 37:
 .[[SDL_RWFromConstMem]] ???
 .[[SDL_RWFromFile]] ???
 .[[SDL_RWFromFP]] ???
 .[[SDL_RWFromConstMem]]
 .[[SDL_RWclose]]
 .[[SDL_RWread]]
.[[SDL_RWwrite]]
 .[[SDL_RWseek]]
 .[[SDL_RWtell]]

SDL_RWFromConstMem

Use this function to prepare a read-only memory buffer for use with RWops.

Syntax

SDL_RWops* SDL_RWFromConstMem(const void* mem,
                              int         size)

Function Parameters

mem

a pointer to a read-only buffer to feed an SDL_RWops stream

size

the buffer size, in bytes

Return Value

Returns a pointer to a new SDL_RWops structure, or NULL if it fails; call SDL_GetError() for more information.

Code Examples

char bitmap[310000];
SDL_RWops *rw = SDL_RWFromMem(bitmap, sizeof(bitmap));
SDL_SaveBMP_RW(screen, rw, 1);  /* closes RWOPS, leaves us memory buffer of data */

Remarks

This function sets up an SDL_RWops struct based on a memory area of a certain size, for both read and write access.

This memory buffer is not copied by the RWops; the pointer you provide must remain valid until you close the stream. Closing the stream will not free the original buffer.

If you need to make sure the RWops never writes to the memory buffer, you should use SDL_RWFromConstMem with a read-only buffer of memory instead.


CategoryAPI, CategoryIO

None: SDL_RWFromMem (last edited 2015-06-20 20:00:06 by PhilippWiesemann)

(Page Info.)
Feedback
Please include your contact information if you'd like to receive a reply.
Submit