Added function to create RWops from const memory: SDL_RWFromConstMem()
--HG-- extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%40765
This commit is contained in:
parent
9c03bae4f8
commit
028eb83878
7 changed files with 28 additions and 0 deletions
1
WhatsNew
1
WhatsNew
|
@ -6,6 +6,7 @@ Version 1.0:
|
||||||
1.2.7:
|
1.2.7:
|
||||||
Added CPU feature detection functions to SDL_cpuinfo.h:
|
Added CPU feature detection functions to SDL_cpuinfo.h:
|
||||||
SDL_HasRDTSC(), SDL_HasMMX(), SDL_Has3DNow(), SDL_HasSSE()
|
SDL_HasRDTSC(), SDL_HasMMX(), SDL_Has3DNow(), SDL_HasSSE()
|
||||||
|
Added function to create RWops from const memory: SDL_RWFromConstMem()
|
||||||
|
|
||||||
1.2.6:
|
1.2.6:
|
||||||
Added SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject()
|
Added SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject()
|
||||||
|
|
|
@ -92,6 +92,7 @@ extern DECLSPEC SDL_RWops * SDLCALL SDL_RWFromFile(const char *file, const char
|
||||||
extern DECLSPEC SDL_RWops * SDLCALL SDL_RWFromFP(FILE *fp, int autoclose);
|
extern DECLSPEC SDL_RWops * SDLCALL SDL_RWFromFP(FILE *fp, int autoclose);
|
||||||
|
|
||||||
extern DECLSPEC SDL_RWops * SDLCALL SDL_RWFromMem(void *mem, int size);
|
extern DECLSPEC SDL_RWops * SDLCALL SDL_RWFromMem(void *mem, int size);
|
||||||
|
extern DECLSPEC SDL_RWops * SDLCALL SDL_RWFromConstMem(const void *mem, int size);
|
||||||
|
|
||||||
extern DECLSPEC SDL_RWops * SDLCALL SDL_AllocRW(void);
|
extern DECLSPEC SDL_RWops * SDLCALL SDL_AllocRW(void);
|
||||||
extern DECLSPEC void SDLCALL SDL_FreeRW(SDL_RWops *area);
|
extern DECLSPEC void SDLCALL SDL_FreeRW(SDL_RWops *area);
|
||||||
|
|
|
@ -129,6 +129,11 @@ static int mem_write(SDL_RWops *context, const void *ptr, int size, int num)
|
||||||
context->hidden.mem.here += num*size;
|
context->hidden.mem.here += num*size;
|
||||||
return(num);
|
return(num);
|
||||||
}
|
}
|
||||||
|
static int mem_writeconst(SDL_RWops *context, const void *ptr, int size, int num)
|
||||||
|
{
|
||||||
|
SDL_SetError("Can't write to read-only memory");
|
||||||
|
return(-1);
|
||||||
|
}
|
||||||
static int mem_close(SDL_RWops *context)
|
static int mem_close(SDL_RWops *context)
|
||||||
{
|
{
|
||||||
if ( context ) {
|
if ( context ) {
|
||||||
|
@ -258,6 +263,23 @@ SDL_RWops *SDL_RWFromMem(void *mem, int size)
|
||||||
return(rwops);
|
return(rwops);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SDL_RWops *SDL_RWFromConstMem(const void *mem, int size)
|
||||||
|
{
|
||||||
|
SDL_RWops *rwops;
|
||||||
|
|
||||||
|
rwops = SDL_AllocRW();
|
||||||
|
if ( rwops != NULL ) {
|
||||||
|
rwops->seek = mem_seek;
|
||||||
|
rwops->read = mem_read;
|
||||||
|
rwops->write = mem_writeconst;
|
||||||
|
rwops->close = mem_close;
|
||||||
|
rwops->hidden.mem.base = (Uint8 *)mem;
|
||||||
|
rwops->hidden.mem.here = rwops->hidden.mem.base;
|
||||||
|
rwops->hidden.mem.stop = rwops->hidden.mem.base+size;
|
||||||
|
}
|
||||||
|
return(rwops);
|
||||||
|
}
|
||||||
|
|
||||||
SDL_RWops *SDL_AllocRW(void)
|
SDL_RWops *SDL_AllocRW(void)
|
||||||
{
|
{
|
||||||
SDL_RWops *area;
|
SDL_RWops *area;
|
||||||
|
|
|
@ -112,6 +112,7 @@ _SDL_CondWaitTimeout
|
||||||
_SDL_RWFromFile
|
_SDL_RWFromFile
|
||||||
_SDL_RWFromFP
|
_SDL_RWFromFP
|
||||||
_SDL_RWFromMem
|
_SDL_RWFromMem
|
||||||
|
_SDL_RWFromConstMem
|
||||||
_SDL_AllocRW
|
_SDL_AllocRW
|
||||||
_SDL_FreeRW
|
_SDL_FreeRW
|
||||||
_SDL_GetWMInfo
|
_SDL_GetWMInfo
|
||||||
|
|
|
@ -111,6 +111,7 @@
|
||||||
SDL_RWFromFile
|
SDL_RWFromFile
|
||||||
SDL_RWFromFP
|
SDL_RWFromFP
|
||||||
SDL_RWFromMem
|
SDL_RWFromMem
|
||||||
|
SDL_RWFromConstMem
|
||||||
SDL_AllocRW
|
SDL_AllocRW
|
||||||
SDL_FreeRW
|
SDL_FreeRW
|
||||||
SDL_GetWMInfo
|
SDL_GetWMInfo
|
||||||
|
|
|
@ -112,6 +112,7 @@
|
||||||
_SDL_RWFromFile
|
_SDL_RWFromFile
|
||||||
_SDL_RWFromFP
|
_SDL_RWFromFP
|
||||||
_SDL_RWFromMem
|
_SDL_RWFromMem
|
||||||
|
_SDL_RWFromConstMem
|
||||||
_SDL_AllocRW
|
_SDL_AllocRW
|
||||||
_SDL_FreeRW
|
_SDL_FreeRW
|
||||||
_SDL_GetWMInfo
|
_SDL_GetWMInfo
|
||||||
|
|
|
@ -112,6 +112,7 @@
|
||||||
SDL_RWFromFile
|
SDL_RWFromFile
|
||||||
SDL_RWFromFP
|
SDL_RWFromFP
|
||||||
SDL_RWFromMem
|
SDL_RWFromMem
|
||||||
|
SDL_RWFromConstMem
|
||||||
SDL_AllocRW
|
SDL_AllocRW
|
||||||
SDL_FreeRW
|
SDL_FreeRW
|
||||||
SDL_GetWMInfo
|
SDL_GetWMInfo
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue