summaryrefslogtreecommitdiff
path: root/src/textures.c
diff options
context:
space:
mode:
authorjussi2023-11-20 16:20:11 +0200
committerjussi2023-11-20 16:20:11 +0200
commit7765a23a2c90e6d02f6278eed1b1b9b9375bc941 (patch)
treefaa7dee80e49a327bf04fbb086822b25cf019f88 /src/textures.c
parent50d0e15ff494291779710b120d8f53202aa2ef1f (diff)
downloadreilua-enhanced-7765a23a2c90e6d02f6278eed1b1b9b9375bc941.tar.gz
reilua-enhanced-7765a23a2c90e6d02f6278eed1b1b9b9375bc941.tar.bz2
reilua-enhanced-7765a23a2c90e6d02f6278eed1b1b9b9375bc941.zip
LoadImageRaw, LoadImageAnim and LoadImageFromMemory. Version 0.6.
Diffstat (limited to 'src/textures.c')
-rw-r--r--src/textures.c66
1 files changed, 66 insertions, 0 deletions
diff --git a/src/textures.c b/src/textures.c
index c5b07e4..008aa14 100644
--- a/src/textures.c
+++ b/src/textures.c
@@ -13,6 +13,7 @@
Load image from file into CPU memory (RAM)
+- Failure return nil
- Success return Image
*/
int ltexturesLoadImage( lua_State *L ) {
@@ -28,6 +29,71 @@ int ltexturesLoadImage( lua_State *L ) {
}
/*
+> image = RL.LoadImageRaw( string fileName, Vector2 size, int format, int headerSize )
+
+Load image from RAW file data
+
+- Failure return nil
+- Success return Image
+*/
+int ltexturesLoadImageRaw( lua_State *L ) {
+ const char *fileName = luaL_checkstring( L, 1 );
+ Vector2 size = uluaGetVector2( L, 2 );
+ int format = luaL_checkinteger( L, 3 );
+ int headerSize = luaL_checkinteger( L, 4 );
+
+ if ( FileExists( fileName ) ) {
+ uluaPushImage( L, LoadImageRaw( fileName, (int)size.x, (int)size.y, format, headerSize ) );
+
+ return 1;
+ }
+ TraceLog( state->logLevelInvalid, "Invalid file '%s'", fileName );
+ lua_pushnil( L );
+
+ return 1;
+}
+
+/*
+> image, frameCount = RL.LoadImageAnim( string fileName )
+
+Load image sequence from file (frames appended to image.data). All frames are returned in RGBA format
+
+- Failure return nil
+- Success return Image, int
+*/
+int ltexturesLoadImageAnim( lua_State *L ) {
+ const char *fileName = luaL_checkstring( L, 1 );
+
+ if ( FileExists( fileName ) ) {
+ int frameCount = 0;
+ uluaPushImage( L, LoadImageAnim( fileName, &frameCount ) );
+ lua_pushinteger( L, frameCount );
+
+ return 2;
+ }
+ TraceLog( state->logLevelInvalid, "Invalid file '%s'", fileName );
+ lua_pushnil( L );
+
+ return 1;
+}
+
+/*
+> image, frameCount = RL.LoadImageFromMemory( string fileType, Buffer data )
+
+Load image from memory buffer, fileType refers to extension: i.e. '.png'
+
+- Success return Image
+*/
+int ltexturesLoadImageFromMemory( lua_State *L ) {
+ const char *fileType = luaL_checkstring( L, 1 );
+ Buffer *data = uluaGetBuffer( L, 2 );
+
+ uluaPushImage( L, LoadImageFromMemory( fileType, data->data, data->size ) );
+
+ return 1;
+}
+
+/*
> image = RL.LoadImageFromTexture( Texture texture )
Load image from GPU texture data