From 6a4f8ab4a3573fe79bab93528750e1a87de24a58 Mon Sep 17 00:00:00 2001 From: jussi Date: Fri, 2 May 2025 16:09:33 +0300 Subject: SetImageData. --- src/lua_core.c | 1 + src/textures.c | 28 +++++++++++++++++++++++----- 2 files changed, 24 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/lua_core.c b/src/lua_core.c index 29a6bf8..e29b2ee 100644 --- a/src/lua_core.c +++ b/src/lua_core.c @@ -1916,6 +1916,7 @@ void luaRegister() { assingGlobalFunction( "GetImageAlphaBorder", ltexturesGetImageAlphaBorder ); assingGlobalFunction( "GetImageColor", ltexturesGetImageColor ); /* Image configuration functions. */ + assingGlobalFunction( "SetImageData", ltexturesSetImageData ); assingGlobalFunction( "GetImageData", ltexturesGetImageData ); assingGlobalFunction( "GetImageSize", ltexturesGetImageSize ); assingGlobalFunction( "GetImageMipmaps", ltexturesGetImageMipmaps ); diff --git a/src/textures.c b/src/textures.c index 89b6e8f..b6ddcb7 100644 --- a/src/textures.c +++ b/src/textures.c @@ -3,6 +3,7 @@ #include "textures.h" #include "text.h" #include "lua_core.h" +#include "rmath.h" /* ## Textures - Image loading functions @@ -930,6 +931,23 @@ int ltexturesGetImageColor( lua_State* L ) { ## Textures - Image configuration functions */ +/* +> RL.SetImageData( Image image, Buffer data ) + +Set image data from Buffer +*/ +int ltexturesSetImageData( lua_State* L ) { + Image* image = uluaGetImage( L, 1 ); + Buffer* data = uluaGetBuffer( L, 2 ); + + memcpy( image->data, data->data, imin( + GetPixelDataSize( image->width, image->height, image->format ), + data->size + ) ); + + return 0; +} + /* > imageData = RL.GetImageData( Image image ) @@ -1127,7 +1145,7 @@ int ltexturesImageDrawRectangleLines( lua_State* L ) { } /* -> RL.ImageDrawTriangle( Image *dst, Vector2 v1, Vector2 v2, Vector2 v3, Color color ) +> RL.ImageDrawTriangle( Image dst, Vector2 v1, Vector2 v2, Vector2 v3, Color color ) Draw triangle within an image */ @@ -1144,7 +1162,7 @@ int ltexturesImageDrawTriangle( lua_State* L ) { } /* -> RL.ImageDrawTriangleEx( Image *dst, Vector2 v1, Vector2 v2, Vector2 v3, Color c1, Color c2, Color c3 ) +> RL.ImageDrawTriangleEx( Image dst, Vector2 v1, Vector2 v2, Vector2 v3, Color c1, Color c2, Color c3 ) Draw triangle with interpolated colors within an image */ @@ -1163,7 +1181,7 @@ int ltexturesImageDrawTriangleEx( lua_State* L ) { } /* -> RL.ImageDrawTriangleLines( Image *dst, Vector2 v1, Vector2 v2, Vector2 v3, Color color ) +> RL.ImageDrawTriangleLines( Image dst, Vector2 v1, Vector2 v2, Vector2 v3, Color color ) Draw triangle outline within an image */ @@ -1180,7 +1198,7 @@ int ltexturesImageDrawTriangleLines( lua_State* L ) { } /* -> RL.ImageDrawTriangleFan( Image *dst, Vector2{} points, Color color ) +> RL.ImageDrawTriangleFan( Image dst, Vector2{} points, Color color ) Draw a triangle fan defined by points within an image (first vertex is the center) */ @@ -1197,7 +1215,7 @@ int ltexturesImageDrawTriangleFan( lua_State* L ) { } /* -> RL.ImageDrawTriangleStrip( Image *dst, Vector2{} points, Color color ) +> RL.ImageDrawTriangleStrip( Image dst, Vector2{} points, Color color ) Draw a triangle strip defined by points within an image */ -- cgit v1.2.3