diff options
| author | jussi | 2023-11-29 17:20:54 +0200 |
|---|---|---|
| committer | jussi | 2023-11-29 17:20:54 +0200 |
| commit | 4ff1b1dcb9f52a2642feabda38c8c135aac6c599 (patch) | |
| tree | ff8e0a1a59fc6eab65d857ddfbbef8775e216854 /src/core.c | |
| parent | 21eb3f90c427b3b84801754e92bebb418a8d9391 (diff) | |
| download | reilua-enhanced-4ff1b1dcb9f52a2642feabda38c8c135aac6c599.tar.gz reilua-enhanced-4ff1b1dcb9f52a2642feabda38c8c135aac6c599.tar.bz2 reilua-enhanced-4ff1b1dcb9f52a2642feabda38c8c135aac6c599.zip | |
ExportBufferAsCode.
Diffstat (limited to 'src/core.c')
| -rw-r--r-- | src/core.c | 68 |
1 files changed, 42 insertions, 26 deletions
@@ -2943,6 +2943,41 @@ int lcoreLoadBuffer( lua_State *L ) { } /* +> buffer = RL.LoadBufferFromFile( string path, type int ) + +Read buffer data from binary file + +- Failure return nil +- Success return Buffer +*/ +int lcoreLoadBufferFromFile( lua_State *L ) { + int type = luaL_checkinteger( L, 2 ); + const char *path = luaL_checkstring( L, 1 ); + + int fileLen = GetFileLength( path ); + Buffer buffer = { + .type = type, + .size = fileLen, + .data = malloc( fileLen ) + }; + size_t elementSize = getBufferElementSize( &buffer ); + FILE *file; + file = fopen( path, "rb" ); + + if ( file == NULL ) { + TraceLog( LOG_WARNING, "Invalid file %s\n", path ); + lua_pushnil( L ); + return 1; + } + fread( buffer.data, elementSize, buffer.size / elementSize, file ); + fclose( file ); + + uluaPushBuffer( L, buffer ); + + return 1; +} + +/* > RL.UnloadBuffer( Buffer buffer ) Unload buffer data @@ -3107,36 +3142,17 @@ int lcoreExportBuffer( lua_State *L ) { } /* -> buffer = RL.LoadBufferFromFile( string path, type int ) +> success = RL.ExportBufferAsCode( Buffer buffer, string fileName ) -Read buffer data from binary file +Export buffer data to code (.h), returns true on success -- Failure return nil -- Success return Buffer +- Success return bool */ -int lcoreLoadBufferFromFile( lua_State *L ) { - int type = luaL_checkinteger( L, 2 ); - const char *path = luaL_checkstring( L, 1 ); - - int fileLen = GetFileLength( path ); - Buffer buffer = { - .type = type, - .size = fileLen, - .data = malloc( fileLen ) - }; - size_t elementSize = getBufferElementSize( &buffer ); - FILE *file; - file = fopen( path, "rb" ); - - if ( file == NULL ) { - TraceLog( LOG_WARNING, "Invalid file %s\n", path ); - lua_pushnil( L ); - return 1; - } - fread( buffer.data, elementSize, buffer.size / elementSize, file ); - fclose( file ); +int lcoreExportBufferAsCode( lua_State *L ) { + Buffer *buffer = uluaGetBuffer( L, 1 ); + const char *fileName = luaL_checkstring( L, 2 ); - uluaPushBuffer( L, buffer ); + lua_pushboolean( L, ExportDataAsCode( buffer->data, buffer->size, fileName ) ); return 1; } |
