summaryrefslogtreecommitdiff
path: root/src/textures.c
diff options
context:
space:
mode:
authorjussi2023-11-20 21:04:53 +0200
committerjussi2023-11-20 21:04:53 +0200
commit05eaafb79e6fa1bebff157e94563334d7ead700b (patch)
tree574ae0af685967df067efe11058dc50478558333 /src/textures.c
parent7765a23a2c90e6d02f6278eed1b1b9b9375bc941 (diff)
downloadreilua-enhanced-05eaafb79e6fa1bebff157e94563334d7ead700b.tar.gz
reilua-enhanced-05eaafb79e6fa1bebff157e94563334d7ead700b.tar.bz2
reilua-enhanced-05eaafb79e6fa1bebff157e94563334d7ead700b.zip
Initial changes for Raylib 5.0 and some missing functions.
Diffstat (limited to 'src/textures.c')
-rw-r--r--src/textures.c85
1 files changed, 69 insertions, 16 deletions
diff --git a/src/textures.c b/src/textures.c
index 008aa14..ef1e76e 100644
--- a/src/textures.c
+++ b/src/textures.c
@@ -54,6 +54,22 @@ int ltexturesLoadImageRaw( lua_State *L ) {
}
/*
+> image = RL.LoadImageSvg( string fileNameOrString, Vector2 size )
+
+Load image from SVG file data or string with specified size
+
+- Success return Image
+*/
+int ltexturesLoadImageSvg( lua_State *L ) {
+ const char *fileNameOrString = luaL_checkstring( L, 1 );
+ Vector2 size = uluaGetVector2( L, 2 );
+
+ uluaPushImage( L, LoadImageSvg( fileNameOrString, (int)size.x, (int)size.y ) );
+
+ 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
@@ -163,6 +179,27 @@ int ltexturesExportImage( lua_State *L ) {
}
/*
+> buffer = RL.ExportImageToMemory( Image image, string fileType )
+
+Export image to memory buffer
+
+- Success return Buffer
+*/
+int ltexturesExportImageToMemory( lua_State *L ) {
+ Image *image = uluaGetImage( L, 1 );
+ const char *fileType = luaL_checkstring( L, 2 );
+
+ Buffer buffer = {
+ .type = BUFFER_UNSIGNED_CHAR
+ };
+ buffer.data = ExportImageToMemory( *image, fileType, (int*)&buffer.size );
+
+ uluaPushBuffer( L, buffer );
+
+ return 1;
+}
+
+/*
> success = RL.ExportImageAsCode( Image image, string fileName )
Export image as code file defining an array of bytes, returns true on success
@@ -197,53 +234,55 @@ int ltexturesGenImageColor( lua_State *L ) {
}
/*
-> image = RL.GenImageGradientV( Vector2 size, Color top, Color bottom )
+> image = RL.GenImageGradientLinear( Vector2 size, int direction, Color a, Color b )
-Generate image: vertical gradient
+Generate image: linear gradient, direction in degrees [0..360], 0=Vertical gradient
- Success return Image
*/
-int ltexturesGenImageGradientV( lua_State *L ) {
+int ltexturesGenImageGradientLinear( lua_State *L ) {
Vector2 size = uluaGetVector2( L, 1 );
- Color top = uluaGetColor( L, 2 );
- Color bottom = uluaGetColor( L, 3 );
+ int direction = luaL_checkinteger( L, 2 );
+ Color start = uluaGetColor( L, 3 );
+ Color end = uluaGetColor( L, 4 );
- uluaPushImage( L, GenImageGradientV( (int)size.x, (int)size.y, top, bottom ) );
+ uluaPushImage( L, GenImageGradientLinear( (int)size.x, (int)size.y, direction, start, end ) );
return 1;
}
/*
-> image = RL.GenImageGradientH( Vector2 size, Color left, Color right )
+> image = RL.GenImageGradientRadial( Vector2 size, float density, Color inner, Color outer )
-Generate image: horizontal gradient
+Generate image: radial gradient
- Success return Image
*/
-int ltexturesGenImageGradientH( lua_State *L ) {
+int ltexturesGenImageGradientRadial( lua_State *L ) {
Vector2 size = uluaGetVector2( L, 1 );
- Color left = uluaGetColor( L, 2 );
- Color right = uluaGetColor( L, 3 );
+ float density = luaL_checknumber( L, 2 );
+ Color inner = uluaGetColor( L, 3 );
+ Color outer = uluaGetColor( L, 4 );
- uluaPushImage( L, GenImageGradientH( (int)size.x, (int)size.y, left, right ) );
+ uluaPushImage( L, GenImageGradientRadial( (int)size.x, (int)size.y, density, inner, outer ) );
return 1;
}
/*
-> image = RL.GenImageGradientRadial( Vector2 size, float density, Color inner, Color outer )
+> image = RL.GenImageGradientSquare( Vector2 size, float density, Color inner, Color outer )
-Generate image: radial gradient
+Generate image: square gradient
- Success return Image
*/
-int ltexturesGenImageGradientRadial( lua_State *L ) {
+int ltexturesGenImageGradientSquare( lua_State *L ) {
Vector2 size = uluaGetVector2( L, 1 );
float density = luaL_checknumber( L, 2 );
Color inner = uluaGetColor( L, 3 );
Color outer = uluaGetColor( L, 4 );
- uluaPushImage( L, GenImageGradientRadial( (int)size.x, (int)size.y, density, inner, outer ) );
+ uluaPushImage( L, GenImageGradientSquare( (int)size.x, (int)size.y, density, inner, outer ) );
return 1;
}
@@ -593,6 +632,20 @@ int ltexturesImageFlipHorizontal( lua_State *L ) {
}
/*
+> RL.ImageRotate( Image image, int degrees )
+
+Rotate image by input angle in degrees (-359 to 359)
+*/
+int ltexturesImageRotate( lua_State *L ) {
+ Image *image = uluaGetImage( L, 1 );
+ int degrees = luaL_checkinteger( L, 2 );
+
+ ImageRotate( image, degrees );
+
+ return 0;
+}
+
+/*
> RL.ImageRotateCW( Image image )
Rotate image clockwise 90deg