From 3aa949f3f556a45a1d10f3b83e786562918dfa05 Mon Sep 17 00:00:00 2001 From: jussi Date: Thu, 24 Mar 2022 17:10:35 +0200 Subject: Image export functions. --- src/core.c | 2 +- src/lua_core.c | 2 ++ src/textures.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 53 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/core.c b/src/core.c index c5ae5c6..5ba5274 100644 --- a/src/core.c +++ b/src/core.c @@ -302,7 +302,7 @@ int lcoreSetWindowTitle( lua_State *L ) { } /* -> RL_lcoreCloseWindow() +> RL_CloseWindow() Close window and unload OpenGL context and free all resources */ diff --git a/src/lua_core.c b/src/lua_core.c index e594a2f..574689e 100644 --- a/src/lua_core.c +++ b/src/lua_core.c @@ -521,6 +521,8 @@ void luaRegister() { lua_register( L, "RL_LoadImage", ltexturesLoadImage ); lua_register( L, "RL_GenImageColor", ltexturesGenImageColor ); lua_register( L, "RL_UnloadImage", ltexturesUnloadImage ); + lua_register( L, "RL_ExportImage", ltexturesExportImage ); + lua_register( L, "RL_ExportImageAsCode", ltexturesExportImageAsCode ); lua_register( L, "RL_LoadTexture", ltexturesLoadTexture ); lua_register( L, "RL_LoadTextureFromImage", ltexturesLoadTextureFromImage ); lua_register( L, "RL_UnloadTexture", ltexturesUnloadTexture ); diff --git a/src/textures.c b/src/textures.c index 72d6c28..f278341 100644 --- a/src/textures.c +++ b/src/textures.c @@ -203,6 +203,56 @@ int ltexturesUnloadImage( lua_State *L ) { return 1; } +/* +> success = RL_ExportImage( Image image, string fileName ) + +Export image data to file, returns true on success + +- Failure return nil +- Success return bool +*/ +int ltexturesExportImage( lua_State *L ) { + if ( !lua_isnumber( L, -2 ) || !lua_isstring( L, -1 ) ) { + TraceLog( LOG_WARNING, "%s", "Bad call of function. RL_ExportImage( Image image, string fileName )" ); + lua_pushnil( L ); + return 1; + } + size_t id = lua_tointeger( L, -2 ); + + if ( !validImage( id ) ) { + lua_pushnil( L ); + return 1; + } + lua_pushboolean( L, ExportImage( *state->images[ id ], lua_tostring( L, -1 ) ) ); + + return 1; +} + +/* +> success = RL_ExportImageAsCode( Image image, string fileName ) + +Export image as code file defining an array of bytes, returns true on success + +- Failure return nil +- Success return bool +*/ +int ltexturesExportImageAsCode( lua_State *L ) { + if ( !lua_isnumber( L, -2 ) || !lua_isstring( L, -1 ) ) { + TraceLog( LOG_WARNING, "%s", "Bad call of function. RL_ExportImageAsCode( Image image, string fileName )" ); + lua_pushnil( L ); + return 1; + } + size_t id = lua_tointeger( L, -2 ); + + if ( !validImage( id ) ) { + lua_pushnil( L ); + return 1; + } + lua_pushboolean( L, ExportImageAsCode( *state->images[ id ], lua_tostring( L, -1 ) ) ); + + return 1; +} + /* > texture = RL_LoadTexture( string fileName ) -- cgit v1.2.3