summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjussi2023-11-29 17:20:54 +0200
committerjussi2023-11-29 17:20:54 +0200
commit4ff1b1dcb9f52a2642feabda38c8c135aac6c599 (patch)
treeff8e0a1a59fc6eab65d857ddfbbef8775e216854 /src
parent21eb3f90c427b3b84801754e92bebb418a8d9391 (diff)
downloadreilua-enhanced-4ff1b1dcb9f52a2642feabda38c8c135aac6c599.tar.gz
reilua-enhanced-4ff1b1dcb9f52a2642feabda38c8c135aac6c599.tar.bz2
reilua-enhanced-4ff1b1dcb9f52a2642feabda38c8c135aac6c599.zip
ExportBufferAsCode.
Diffstat (limited to 'src')
-rw-r--r--src/core.c68
-rw-r--r--src/lua_core.c3
2 files changed, 44 insertions, 27 deletions
diff --git a/src/core.c b/src/core.c
index 2f4b96b..2d7d7a1 100644
--- a/src/core.c
+++ b/src/core.c
@@ -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;
}
diff --git a/src/lua_core.c b/src/lua_core.c
index 0874613..a777bc4 100644
--- a/src/lua_core.c
+++ b/src/lua_core.c
@@ -1354,12 +1354,13 @@ void luaRegister() {
assingGlobalFunction( "UpdateCamera3DPro", lcoreUpdateCamera3DPro );
/* Buffer management functions. */
assingGlobalFunction( "LoadBuffer", lcoreLoadBuffer );
+ assingGlobalFunction( "LoadBufferFromFile", lcoreLoadBufferFromFile );
assingGlobalFunction( "UnloadBuffer", lcoreUnloadBuffer );
assingGlobalFunction( "GetBufferData", lcoreGetBufferData );
assingGlobalFunction( "GetBufferType", lcoreGetBufferType );
assingGlobalFunction( "GetBufferSize", lcoreGetBufferSize );
assingGlobalFunction( "ExportBuffer", lcoreExportBuffer );
- assingGlobalFunction( "LoadBufferFromFile", lcoreLoadBufferFromFile );
+ assingGlobalFunction( "ExportBufferAsCode", lcoreExportBufferAsCode );
/* Shapes. */
/* Basic shapes drawing functions. */