diff options
| author | jussi | 2023-04-06 22:17:33 +0300 |
|---|---|---|
| committer | jussi | 2023-04-06 22:17:33 +0300 |
| commit | 9e7f538a38eb66430f919eec1d5cfa3a7a1efe8c (patch) | |
| tree | 1b9b90b57a419ceef0dce1004b63b3ab04421a4d | |
| parent | fe15e836bd87963d10bd301a3a24652763059e0d (diff) | |
| download | reilua-enhanced-9e7f538a38eb66430f919eec1d5cfa3a7a1efe8c.tar.gz reilua-enhanced-9e7f538a38eb66430f919eec1d5cfa3a7a1efe8c.tar.bz2 reilua-enhanced-9e7f538a38eb66430f919eec1d5cfa3a7a1efe8c.zip | |
Vector2LineAngle and more Color functions.
| -rw-r--r-- | API.md | 36 | ||||
| -rw-r--r-- | ReiLua_API.lua | 32 | ||||
| -rw-r--r-- | changelog | 4 | ||||
| -rw-r--r-- | devnotes | 16 | ||||
| -rw-r--r-- | include/shapes.h | 1 | ||||
| -rw-r--r-- | include/textures.h | 3 | ||||
| -rw-r--r-- | src/lua_core.c | 4 | ||||
| -rw-r--r-- | src/shapes.c | 35 | ||||
| -rw-r--r-- | src/textures.c | 69 |
9 files changed, 196 insertions, 4 deletions
@@ -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 @@ -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 @@ -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 |
