summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--API.md36
-rw-r--r--ReiLua_API.lua32
-rw-r--r--changelog4
-rw-r--r--devnotes16
-rw-r--r--include/shapes.h1
-rw-r--r--include/textures.h3
-rw-r--r--src/lua_core.c4
-rw-r--r--src/shapes.c35
-rw-r--r--src/textures.c69
9 files changed, 196 insertions, 4 deletions
diff --git a/API.md b/API.md
index 706511d..586e81d 100644
--- a/API.md
+++ b/API.md
@@ -2831,6 +2831,15 @@ Check if point is inside a triangle
---
+> collision = RL.CheckCollisionPointPoly( Vector2 point, Vector2{} points )
+
+Check if point is within a polygon described by array of vertices
+
+- Failure return nil
+- Success return bool
+
+---
+
> collision, position = RL.CheckCollisionLines( Vector2 startPos1, Vector2 endPos1, Vector2 startPos2, Vector2 endPos2 )
Check the collision between two lines defined by two points each, returns collision point by reference
@@ -3620,6 +3629,33 @@ Returns a Color from HSV values, hue [0..360], saturation/value [0..1]
---
+> color = RL.ColorTint( Color color, Color tint )
+
+Get color multiplied with another color
+
+- Failure return false
+- Success return Color
+
+---
+
+> color = RL.ColorBrightness( Color color, float factor )
+
+Get color with brightness correction, brightness factor goes from -1.0f to 1.0f
+
+- Failure return false
+- Success return Color
+
+---
+
+> color = RL.ColorContrast( Color color, float contrast )
+
+Get color with contrast correction, contrast values between -1.0f and 1.0f
+
+- Failure return false
+- Success return Color
+
+---
+
> color = RL.ColorAlpha( Color color, float alpha )
Returns color with alpha applied, alpha goes from 0.0f to 1.0f
diff --git a/ReiLua_API.lua b/ReiLua_API.lua
index 62e854e..97edbde 100644
--- a/ReiLua_API.lua
+++ b/ReiLua_API.lua
@@ -1989,6 +1989,14 @@ function RL.CheckCollisionPointCircle( point, center, radius ) end
---@return any collision
function RL.CheckCollisionPointTriangle( point, p1, p2, p3 ) end
+---Check if point is within a polygon described by array of vertices
+---- Failure return nil
+---- Success return bool
+---@param point table
+---@param points any
+---@return any collision
+function RL.CheckCollisionPointPoly( point, points ) end
+
---Check the collision between two lines defined by two points each, returns collision point by reference
---- Failure return nil
---- Success return bool, Vector2
@@ -2688,6 +2696,30 @@ function RL.ColorToHSV( color ) end
---@return any color
function RL.ColorFromHSV( hue, saturation, value ) end
+---Get color multiplied with another color
+---- Failure return false
+---- Success return Color
+---@param color table
+---@param tint table
+---@return any color
+function RL.ColorTint( color, tint ) end
+
+---Get color with brightness correction, brightness factor goes from -1.0f to 1.0f
+---- Failure return false
+---- Success return Color
+---@param color table
+---@param factor number
+---@return any color
+function RL.ColorBrightness( color, factor ) end
+
+---Get color with contrast correction, contrast values between -1.0f and 1.0f
+---- Failure return false
+---- Success return Color
+---@param color table
+---@param contrast number
+---@return any color
+function RL.ColorContrast( color, contrast ) end
+
---Returns color with alpha applied, alpha goes from 0.0f to 1.0f
---- Failure return false
---- Success return Color
diff --git a/changelog b/changelog
index ba0b97b..b303e0c 100644
--- a/changelog
+++ b/changelog
@@ -24,6 +24,10 @@ Detailed changes:
- ADDED: UpdateCamera3DPro. Same as UpdateCameraPro in raylib.
- ADDED: BLEND_CUSTOM_SEPARATE.
- ADDED: Vector2LineAngle
+ - ADDED: CheckCollisionPointPoly
+ - ADDED: ColorTint
+ - ADDED: ColorBrightness
+ - ADDED: ColorContrast
------------------------------------------------------------------------
Release: ReiLua version 0.4.0 Using Raylib 4.2
diff --git a/devnotes b/devnotes
index 16f0832..c374f29 100644
--- a/devnotes
+++ b/devnotes
@@ -4,16 +4,24 @@ Current {
}
Backlog {
- * Raymath
- * Vector2LineAngle
+ * IsWaveReady and others like that.
+
* rlgl
- * More low level functions.
+ * More low level functions. Could be usefull now when draw polygon is removed.
* Text
* Ability to set font texture filtering.
* Codepoints?
* Audio
* AudioStream.
- * VR.
* Core.
* Compression/Encoding functionality.
+ * SetWindowIcons.
+ * Textures
+ * GenImagePerlinNoise
+ * GenImageText
+ * ImageDrawCircleLines
+ * ImageBlurGaussian
+ * Models
+ * DrawCapsule and DrawCapsuleWires
+ * LoadMaterials
}
diff --git a/include/shapes.h b/include/shapes.h
index 1550054..6618524 100644
--- a/include/shapes.h
+++ b/include/shapes.h
@@ -40,6 +40,7 @@ int lshapesCheckCollisionCircleRec( lua_State *L );
int lshapesCheckCollisionPointRec( lua_State *L );
int lshapesCheckCollisionPointCircle( lua_State *L );
int lshapesCheckCollisionPointTriangle( lua_State *L );
+int lshapesCheckCollisionPointPoly( lua_State *L );
int lshapesCheckCollisionLines( lua_State *L );
int lshapesCheckCollisionPointLine( lua_State *L );
int lshapesGetCollisionRec( lua_State *L );
diff --git a/include/textures.h b/include/textures.h
index 5df574e..1f7932e 100644
--- a/include/textures.h
+++ b/include/textures.h
@@ -100,6 +100,9 @@ int ltexturesColorNormalize( lua_State *L );
int ltexturesColorFromNormalized( lua_State *L );
int ltexturesColorToHSV( lua_State *L );
int ltexturesColorFromHSV( lua_State *L );
+int ltexturesColorTint( lua_State *L );
+int ltexturesColorBrightness( lua_State *L );
+int ltexturesColorContrast( lua_State *L );
int ltexturesColorAlpha( lua_State *L );
int ltexturesColorAlphaBlend( lua_State *L );
int ltexturesGetColor( lua_State *L );
diff --git a/src/lua_core.c b/src/lua_core.c
index 9197170..920d408 100644
--- a/src/lua_core.c
+++ b/src/lua_core.c
@@ -914,6 +914,7 @@ void luaRegister() {
assingGlobalFunction( "CheckCollisionPointRec", lshapesCheckCollisionPointRec );
assingGlobalFunction( "CheckCollisionPointCircle", lshapesCheckCollisionPointCircle );
assingGlobalFunction( "CheckCollisionPointTriangle", lshapesCheckCollisionPointTriangle );
+ assingGlobalFunction( "CheckCollisionPointPoly", lshapesCheckCollisionPointPoly );
assingGlobalFunction( "CheckCollisionLines", lshapesCheckCollisionLines );
assingGlobalFunction( "CheckCollisionPointLine", lshapesCheckCollisionPointLine );
assingGlobalFunction( "GetCollisionRec", lshapesGetCollisionRec );
@@ -1011,6 +1012,9 @@ void luaRegister() {
assingGlobalFunction( "ColorFromNormalized", ltexturesColorFromNormalized );
assingGlobalFunction( "ColorToHSV", ltexturesColorToHSV );
assingGlobalFunction( "ColorFromHSV", ltexturesColorFromHSV );
+ assingGlobalFunction( "ColorTint", ltexturesColorTint );
+ assingGlobalFunction( "ColorBrightness", ltexturesColorBrightness );
+ assingGlobalFunction( "ColorContrast", ltexturesColorContrast );
assingGlobalFunction( "ColorAlpha", ltexturesColorAlpha );
assingGlobalFunction( "ColorAlphaBlend", ltexturesColorAlphaBlend );
assingGlobalFunction( "GetColor", ltexturesGetColor );
diff --git a/src/shapes.c b/src/shapes.c
index cf50ca3..d5f92f6 100644
--- a/src/shapes.c
+++ b/src/shapes.c
@@ -1106,6 +1106,41 @@ int lshapesCheckCollisionPointTriangle( lua_State *L ) {
}
/*
+> collision = RL.CheckCollisionPointPoly( Vector2 point, Vector2{} points )
+
+Check if point is within a polygon described by array of vertices
+
+- Failure return nil
+- Success return bool
+*/
+int lshapesCheckCollisionPointPoly( lua_State *L ) {
+ if ( !lua_istable( L, -2 ) || !lua_istable( L, -1 ) ) {
+ TraceLog( LOG_WARNING, "%s", "Bad call of function. RL.CheckCollisionPointPoly( Vector2 point, Vector2{} points )" );
+ lua_pushnil( L );
+ return 1;
+ }
+ int pointCount = uluaGetTableLen( L );
+ Vector2 points[ pointCount ];
+
+ int t = lua_gettop( L );
+ int i = 0;
+ lua_pushnil( L );
+
+ while ( lua_next( L, t ) != 0 ) {
+ points[i] = uluaGetVector2( L );
+ i++;
+ lua_pop( L, 1 );
+ }
+ lua_pop( L, 1 );
+
+ Vector2 point = uluaGetVector2( L );
+
+ lua_pushboolean( L, CheckCollisionPointPoly( point, points, pointCount ) );
+
+ return 1;
+}
+
+/*
> collision, position = RL.CheckCollisionLines( Vector2 startPos1, Vector2 endPos1, Vector2 startPos2, Vector2 endPos2 )
Check the collision between two lines defined by two points each, returns collision point by reference
diff --git a/src/textures.c b/src/textures.c
index ab6e53f..b6a49f1 100644
--- a/src/textures.c
+++ b/src/textures.c
@@ -2449,6 +2449,75 @@ int ltexturesColorFromHSV( lua_State *L ) {
}
/*
+> color = RL.ColorTint( Color color, Color tint )
+
+Get color multiplied with another color
+
+- Failure return false
+- Success return Color
+*/
+int ltexturesColorTint( lua_State *L ) {
+ if ( !lua_istable( L, -2 ) || !lua_istable( L, -1 ) ) {
+ TraceLog( LOG_WARNING, "%s", "Bad call of function. RL.ColorTint( Color color, Color tint )" );
+ lua_pushboolean( L, false );
+ return 1;
+ }
+ Color tint = uluaGetColor( L );
+ lua_pop( L, 1 );
+ Color color = uluaGetColor( L );
+
+ uluaPushColor( L, ColorTint( color, tint ) );
+
+ return 1;
+}
+
+/*
+> color = RL.ColorBrightness( Color color, float factor )
+
+Get color with brightness correction, brightness factor goes from -1.0f to 1.0f
+
+- Failure return false
+- Success return Color
+*/
+int ltexturesColorBrightness( lua_State *L ) {
+ if ( !lua_istable( L, -2 ) || !lua_isnumber( L, -1 ) ) {
+ TraceLog( LOG_WARNING, "%s", "Bad call of function. RL.ColorBrightness( Color color, float factor )" );
+ lua_pushboolean( L, false );
+ return 1;
+ }
+ float factor = lua_tonumber( L, -1 );
+ lua_pop( L, 1 );
+ Color color = uluaGetColor( L );
+
+ uluaPushColor( L, ColorBrightness( color, factor ) );
+
+ return 1;
+}
+
+/*
+> color = RL.ColorContrast( Color color, float contrast )
+
+Get color with contrast correction, contrast values between -1.0f and 1.0f
+
+- Failure return false
+- Success return Color
+*/
+int ltexturesColorContrast( lua_State *L ) {
+ if ( !lua_istable( L, -2 ) || !lua_isnumber( L, -1 ) ) {
+ TraceLog( LOG_WARNING, "%s", "Bad call of function. RL.ColorContrast( Color color, float contrast )" );
+ lua_pushboolean( L, false );
+ return 1;
+ }
+ float contrast = lua_tonumber( L, -1 );
+ lua_pop( L, 1 );
+ Color color = uluaGetColor( L );
+
+ uluaPushColor( L, ColorContrast( color, contrast ) );
+
+ return 1;
+}
+
+/*
> color = RL.ColorAlpha( Color color, float alpha )
Returns color with alpha applied, alpha goes from 0.0f to 1.0f