From 51d849571da455cb5c77c8a16c3d4494630d7c92 Mon Sep 17 00:00:00 2001 From: Amy Wilder <74995093+AmityWilder@users.noreply.github.com> Date: Mon, 3 Mar 2025 19:59:50 -0500 Subject: [PATCH 01/16] [rshapes] Add implementations --- src/rshapes.c | 408 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 408 insertions(+) diff --git a/src/rshapes.c b/src/rshapes.c index 9327a5543ac1..9f78adf279ca 100644 --- a/src/rshapes.c +++ b/src/rshapes.c @@ -2107,6 +2107,66 @@ void DrawSplineSegmentBezierCubic(Vector2 p1, Vector2 c2, Vector2 c3, Vector2 p4 DrawTriangleStrip(points, 2*SPLINE_SEGMENT_DIVISIONS + 2, color); } +// Draw spline segment with variable thickness: Cubic Bezier, 2 points, 2 control points, 1 or more thickness +void DrawSplineSegmentBezierCubicVar(Vector2 p1, Vector2 c2, Vector2 c3, Vector2 p4, const float* thicks, int thickCount, Color color) +{ + if (thickCount >= 1) + { + const float step = 1.0f/SPLINE_SEGMENT_DIVISIONS; + + Vector2 previous = p1; + Vector2 current = { 0 }; + float t = 0.0f; + + Vector2 points[2*SPLINE_SEGMENT_DIVISIONS + 2] = { 0 }; + + for (int i = 1; i <= SPLINE_SEGMENT_DIVISIONS; i++) + { + t = step*(float)i; + + float thick; + if (thickCount > 1) { + float tMajor = t*(float)thickCount; + int tIndex = (int)tMajor; + if (tIndex >= thickCount) tIndex = thickCount - 1; + float tMinor = tMajor - (float)tIndex; + thick = thicks[tIndex]; + } else { + thick = thicks[0]; // constant thickness + } + + float a = powf(1.0f - t, 3); + float b = 3.0f*powf(1.0f - t, 2)*t; + float c = 3.0f*(1.0f - t)*powf(t, 2); + float d = powf(t, 3); + + current.y = a*p1.y + b*c2.y + c*c3.y + d*p4.y; + current.x = a*p1.x + b*c2.x + c*c3.x + d*p4.x; + + float dy = current.y - previous.y; + float dx = current.x - previous.x; + float size = 0.5f*thick/sqrtf(dx*dx+dy*dy); + + if (i == 1) + { + points[0].x = previous.x + dy*size; + points[0].y = previous.y - dx*size; + points[1].x = previous.x - dy*size; + points[1].y = previous.y + dx*size; + } + + points[2*i + 1].x = current.x - dy*size; + points[2*i + 1].y = current.y + dx*size; + points[2*i].x = current.x + dy*size; + points[2*i].y = current.y - dx*size; + + previous = current; + } + + DrawTriangleStrip(points, 2*SPLINE_SEGMENT_DIVISIONS + 2, color); + } +} + // Get spline point for a given t [0.0f .. 1.0f], Linear Vector2 GetSplinePointLinear(Vector2 startPos, Vector2 endPos, float t) { @@ -2189,6 +2249,354 @@ Vector2 GetSplinePointBezierCubic(Vector2 startPos, Vector2 startControlPos, Vec return point; } +// Get spline direction and speed, Linear Bezier +// +// Normalize to get the "forward" direction of the curve +Vector2 GetSplineVelocityLinear(Vector2 startPos, Vector2 endPos) +{ + Vector2 velocity = { 0 }; + + velocity.x = endPos.x - startPos.x; + velocity.y = endPos.y - startPos.y; + + return velocity; +} + +// Get spline direction and speed for a given t [0.0f .. 1.0f], Quadratic Bezier +// +// Normalize to get the "forward" direction of the curve at t +Vector2 GetSplineVelocityBezierQuad(Vector2 startPos, Vector2 controlPos, Vector2 endPos, float t) +{ + Vector2 velocity = { 0 }; + + float a = 2.0f*(1.0f - t); + float b = 2.0f*t; + + velocity.x = a*(controlPos.x - startPos.x) + b*(endPos.x - controlPos.x); + velocity.y = a*(controlPos.y - startPos.y) + b*(endPos.y - controlPos.y); + + return velocity; +} + +// Get spline direction and speed for a given t [0.0f .. 1.0f], Cubic Bezier +// +// Normalize to get the "forward" direction of the curve at t +Vector2 GetSplineVelocityBezierCubic(Vector2 startPos, Vector2 startControlPos, Vector2 endControlPos, Vector2 endPos, float t) +{ + Vector2 velocity = { 0 }; + + float a = 3.0f*powf(1.0f - t, 2); + float b = 6.0f*(1.0f - t)*t; + float c = 3.0f*t*t; + + velocity.x = a*(startControlPos.x - startPos.x) + b*(endControlPos.x - startControlPos.x) + c*(endPos.x - endControlPos.x); + velocity.y = a*(startControlPos.y - startPos.y) + b*(endControlPos.y - startControlPos.y) + c*(endPos.y - endControlPos.y); + + return velocity; +} + +// Get spline rate of change, Quadratic Bezier +Vector2 GetSplineAccelerationBezierQuad(Vector2 startPos, Vector2 controlPos, Vector2 endPos) +{ + Vector2 acceleration = { 0 }; + + acceleration.x = 2.0f*(endPos.x - 2.0f*controlPos.x - startPos.x); + acceleration.y = 2.0f*(endPos.y - 2.0f*controlPos.y - startPos.y); + + return acceleration; +} + +// Get spline rate of change for a given t [0.0f .. 1.0f], Cubic Bezier +Vector2 GetSplineAccelerationBezierCubic(Vector2 startPos, Vector2 startControlPos, Vector2 endControlPos, Vector2 endPos, float t) +{ + Vector2 acceleration = { 0 }; + + float a = 2.0f*(1.0f - t); + float b = 2.0f*t; + + acceleration.x = a*(endControlPos.x - 2.0f*startControlPos.x + startPos.x) + b*(endPos.x - 2.0f*endControlPos.x + startControlPos.x); + acceleration.y = a*(endControlPos.y - 2.0f*startControlPos.y + startPos.y) + b*(endPos.y - 2.0f*endControlPos.y + startControlPos.y); + + return acceleration; +} + +// Get spline rate of acceleration, Cubic Bezier +Vector2 GetSplineJoltBezierCubic(Vector2 startPos, Vector2 startControlPos, Vector2 endControlPos, Vector2 endPos) +{ + Vector2 jolt = { 0 }; + + jolt.x = 6.0f*(endPos.x + 3.0f*(startControlPos.x - endControlPos.x) - startPos.x); + jolt.y = 6.0f*(endPos.y + 3.0f*(startControlPos.y - endControlPos.y) - startPos.y); + + return jolt; +} + +// Compute spline curve bounding rectangle, Linear Bezier +Rectangle GetSplineBoundsBezierLinear(Vector2 startPos, Vector2 endPos) +{ + float xMin; + float yMin; + float xMax; + float yMax; + + if (startPos.x < endPos.x) + { + xMin = startPos.x; + xMax = endPos.x; + } + else + { + xMin = endPos.x; + xMax = startPos.x; + } + + if (startPos.y < endPos.y) + { + yMin = startPos.y; + yMax = endPos.y; + } + else + { + yMin = endPos.y; + yMax = startPos.y; + } + + // straight line will never escape bounds + + Rectangle bounds = { xMin, yMin, xMax - xMin, yMax - yMin }; + + return bounds; +} + +// Compute spline curve bounding rectangle, Quadratic Bezier +Rectangle GetSplineBoundsBezierQuad(Vector2 startPos, Vector2 controlPos, Vector2 endPos) +{ + float xMin; + float yMin; + float xMax; + float yMax; + + if (startPos.x < endPos.x) + { + xMin = startPos.x; + xMax = endPos.x; + } + else + { + xMin = endPos.x; + xMax = startPos.x; + } + + if (startPos.y < endPos.y) + { + yMin = startPos.y; + yMax = endPos.y; + } + else + { + yMin = endPos.y; + yMax = startPos.y; + } + + // curve velocity, rearranged to solve for t + // at^2 + bt + c + // local min/max occur where derivative (velocity) is zero, + // so we use quadratic formula to find values of t at zeros + + float a = startPos.x - 2.0f*controlPos.x + endPos.x; + float b = 2.0f*(controlPos.x - startPos.x); + float c = startPos.x; + + bool dejavu = false; + do + { + if (a != 0) + { + float bSqrMinus4ac = b*b - 4.0f*a*c; + float t[2] = { 0 }; + int tCount = 0; + if (bSqrMinus4ac > 0) + { + float denominator = 1.0f/(2.0f*a); + + float term0 = -b*denominator; + float term1 = sqrtf(bSqrMinus4ac)*denominator; + + t[0] = term0 + term1; + if (0.0f < t[0] && t[0] < 1.0f) ++tCount; + + t[tCount] = term0 - term1; + if (0.0f < t[tCount] && t[tCount] < 1.0f) ++tCount; + } + else if (bSqrMinus4ac == 0) + { + t[0] = -b/(2.0f*a); + if (0.0f < t[0] && t[0] < 1.0f) ++tCount; + } + // ignore imaginary solution + + for (int i = 0; i < tCount; ++i) + { + Vector2 point = GetSplinePointBezierQuad(startPos, controlPos, endPos, t[i]); + + if (point.x < xMin) xMin = point.x; + if (point.x > xMax) xMax = point.x; + if (point.y < yMin) yMin = point.y; + if (point.y > yMax) yMax = point.y; + } + } + // straight line will never escape bounds + + if (dejavu) break; + dejavu = true; + + a = startPos.y - 2.0f*controlPos.y + endPos.y; + b = 2.0f*(controlPos.y - startPos.y); + c = startPos.y; + } + while (true); + + Rectangle bounds = { xMin, yMin, xMax - xMin, yMax - yMin }; + + return bounds; +} + +// Compute spline curve bounding rectangle, Cubic Bezier +Rectangle GetSplineBoundsBezierCubic(Vector2 startPos, Vector2 startControlPos, Vector2 endControlPos, Vector2 endPos) +{ + float xMin; + float yMin; + float xMax; + float yMax; + + if (startPos.x < endPos.x) + { + xMin = startPos.x; + xMax = endPos.x; + } + else + { + xMin = endPos.x; + xMax = startPos.x; + } + + if (startPos.y < endPos.y) + { + yMin = startPos.y; + yMax = endPos.y; + } + else + { + yMin = endPos.y; + yMax = startPos.y; + } + + // curve velocity, rearranged to solve for t + // at^2 + bt + c + // local min/max occur where derivative (velocity) is zero, + // so we use quadratic formula to find values of t at zeros + + float a = -3.0f*startPos.x + 9.0f*startControlPos.x - 9.0f*endControlPos.x + 3.0f*endPos.x; + float b = 6.0f*startPos.x - 12.0f*startControlPos.x + 6.0f*endControlPos.x; + float c = -3.0f*startPos.x + 3.0f*startControlPos.x; + + bool dejavu = false; + do + { + if (a != 0) + { + float bSqrMinus4ac = b*b - 4.0f*a*c; + float t[2] = { 0 }; + int tCount = 0; + if (bSqrMinus4ac > 0) + { + float denominator = 1.0f/(2.0f*a); + + float term0 = -b*denominator; + float term1 = sqrtf(bSqrMinus4ac)*denominator; + + t[0] = term0 + term1; + if (0.0f < t[0] && t[0] < 1.0f) ++tCount; + + t[tCount] = term0 - term1; + if (0.0f < t[tCount] && t[tCount] < 1.0f) ++tCount; + } + else if (bSqrMinus4ac == 0) + { + t[0] = -b/(2.0f*a); + if (0.0f < t[0] && t[0] < 1.0f) ++tCount; + } + // ignore imaginary solution + + for (int i = 0; i < tCount; ++i) + { + Vector2 point = GetSplinePointBezierCubic(startPos, startControlPos, endControlPos, endPos, t[i]); + + if (point.x < xMin) xMin = point.x; + if (point.x > xMax) xMax = point.x; + if (point.y < yMin) yMin = point.y; + if (point.y > yMax) yMax = point.y; + } + } + // straight line will never escape bounds + + if (dejavu) break; + dejavu = true; + + a = -3.0f*startPos.x + 9.0f*startControlPos.x - 9.0f*endControlPos.x + 3.0f*endPos.x; + b = 6.0f*startPos.x - 12.0f*startControlPos.x + 6.0f*endControlPos.x; + c = -3.0f*startPos.x + 3.0f*startControlPos.x; + } + while (true); + + Rectangle bounds = { xMin, yMin, xMax - xMin, yMax - yMin }; + + return bounds; +} + +// Reciprocal radius (or "radians per meter") for a given t [0.0f .. 1.0f], Cubic Bezier +float GetSplineCurvatureBezierCubic(Vector2 startPos, Vector2 startControlPos, Vector2 endControlPos, Vector2 endPos, float t) +{ + float curvature = 0.0f; + + float a = 3.0f*powf(1.0f - t, 2); + float b = 6.0f*(1.0f - t)*t; + float c = 3.0f*t*t; + + Vector2 velocity = { 0 }; + + velocity.x = a*(startControlPos.x - startPos.x) + b*(endControlPos.x - startControlPos.x) + c*(endPos.x - endControlPos.x); + velocity.y = a*(startControlPos.y - startPos.y) + b*(endControlPos.y - startControlPos.y) + c*(endPos.y - endControlPos.y); + + a = 2.0f*(1.0f - t); + b = 2.0f*t; + + Vector2 acceleration = { 0 }; + + acceleration.x = a*(endControlPos.x - 2.0f*startControlPos.x + startPos.x) + b*(endPos.x - 2.0f*endControlPos.x + startControlPos.x); + acceleration.y = a*(endControlPos.y - 2.0f*startControlPos.y + startPos.y) + b*(endPos.y - 2.0f*endControlPos.y + startControlPos.y); + + float curvature = (velocity.x*acceleration.y - velocity.y*acceleration.x)/powf(sqrtf(velocity.x*velocity.x + velocity.y*velocity.y), 3); + + return curvature; +} + +// Get value of t (unbounded) for the point on the line closest to a given position +float GetSplineNearestTLinear(Vector2 startPos, Vector2 endPos, Vector2 point) +{ + Vector2 edge = { 0 }; + edge.x = endPos.x - startPos.x; + edge.y = endPos.y - startPos.y; + + Vector2 diff = { 0 }; + diff.x = point.x - startPos.x; + diff.y = point.y - startPos.y; + + float t = (edge.x*diff.x + edge.y*diff.y)/(edge.x*edge.x + edge.y*edge.y); + + return t; +} + //---------------------------------------------------------------------------------- // Module Functions Definition - Collision Detection functions //---------------------------------------------------------------------------------- From 288c3ad2670f75852ce9196732a16887074ac787 Mon Sep 17 00:00:00 2001 From: Amy Wilder <74995093+AmityWilder@users.noreply.github.com> Date: Mon, 3 Mar 2025 20:01:35 -0500 Subject: [PATCH 02/16] [rshapes] Add function signatures to raylib.h --- src/raylib.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/raylib.h b/src/raylib.h index 7919db77567a..b30594416b50 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1298,6 +1298,7 @@ RLAPI void DrawSplineSegmentBasis(Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4 RLAPI void DrawSplineSegmentCatmullRom(Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4, float thick, Color color); // Draw spline segment: Catmull-Rom, 4 points RLAPI void DrawSplineSegmentBezierQuadratic(Vector2 p1, Vector2 c2, Vector2 p3, float thick, Color color); // Draw spline segment: Quadratic Bezier, 2 points, 1 control point RLAPI void DrawSplineSegmentBezierCubic(Vector2 p1, Vector2 c2, Vector2 c3, Vector2 p4, float thick, Color color); // Draw spline segment: Cubic Bezier, 2 points, 2 control points +RLAPI void DrawSplineSegmentBezierCubicVar(Vector2 p1, Vector2 c2, Vector2 c3, Vector2 p4, const float* thicks, int thickCount, Color color); // Draw spline segment with variable thickness: Cubic Bezier, 2 points, 2 control points, 1 or more thickness // Spline segment point evaluation functions, for a given t [0.0f .. 1.0f] RLAPI Vector2 GetSplinePointLinear(Vector2 startPos, Vector2 endPos, float t); // Get (evaluate) spline point: Linear @@ -1306,6 +1307,22 @@ RLAPI Vector2 GetSplinePointCatmullRom(Vector2 p1, Vector2 p2, Vector2 p3, Vecto RLAPI Vector2 GetSplinePointBezierQuad(Vector2 p1, Vector2 c2, Vector2 p3, float t); // Get (evaluate) spline point: Quadratic Bezier RLAPI Vector2 GetSplinePointBezierCubic(Vector2 p1, Vector2 c2, Vector2 c3, Vector2 p4, float t); // Get (evaluate) spline point: Cubic Bezier +// Spline segment slope evaluation functions, for a given t [0.0f .. 1.0f] +RLAPI Vector2 GetSplineVelocityLinear(Vector2 startPos, Vector2 endPos); // Get (evaluate) spline velocity: Linear +RLAPI Vector2 GetSplineVelocityBezierQuad(Vector2 startPos, Vector2 controlPos, Vector2 endPos, float t); // Get (evaluate) spline velocity: Quadratic Bezier +RLAPI Vector2 GetSplineVelocityBezierCubic(Vector2 startPos, Vector2 startControlPos, Vector2 endControlPos, Vector2 endPos, float t); // Get (evaluate) spline velocity: Cubic Bezier +RLAPI Vector2 GetSplineAccelerationBezierQuad(Vector2 startPos, Vector2 controlPos, Vector2 endPos); // Get (evaluate) spline acceleration: Quadratic Bezier +RLAPI Vector2 GetSplineAccelerationBezierCubic(Vector2 startPos, Vector2 startControlPos, Vector2 endControlPos, Vector2 endPos, float t); // Get (evaluate) spline acceleration: Cubic Bezier +RLAPI Vector2 GetSplineJoltBezierCubic(Vector2 startPos, Vector2 startControlPos, Vector2 endControlPos, Vector2 endPos); // Get (evaluate) spline jolt: Cubic Bezier + +// Spline segment bounds evaluation functions +RLAPI Rectangle GetSplineBoundsBezierLinear(Vector2 startPos, Vector2 endPos); // Get (evaluate) spline bounds rectangle: Linear +RLAPI Rectangle GetSplineBoundsBezierQuad(Vector2 startPos, Vector2 controlPos, Vector2 endPos); // Get (evaluate) spline bounds rectangle: Quadratic Bezier +RLAPI Rectangle GetSplineBoundsBezierCubic(Vector2 startPos, Vector2 startControlPos, Vector2 endControlPos, Vector2 endPos); // Get (evaluate) spline bounds rectangle: Cubic Bezier + +RLAPI float GetSplineCurvatureBezierCubic(Vector2 startPos, Vector2 startControlPos, Vector2 endControlPos, Vector2 endPos, float t); // Get (evaluate) spline curvature: Cubic Bezier +RLAPI float GetSplineNearestTLinear(Vector2 startPos, Vector2 endPos, Vector2 point); // Get (evaluate) nearest t value to point: Linear + // Basic shapes collision detection functions RLAPI bool CheckCollisionRecs(Rectangle rec1, Rectangle rec2); // Check collision between two rectangles RLAPI bool CheckCollisionCircles(Vector2 center1, float radius1, Vector2 center2, float radius2); // Check collision between two circles From 6120df6a87071ab584c54f61e6cd526e9b043c79 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 4 Mar 2025 01:02:41 +0000 Subject: [PATCH 03/16] Update raylib_api.* by CI --- parser/output/raylib_api.json | 272 +++++++++++++ parser/output/raylib_api.lua | 131 ++++++ parser/output/raylib_api.txt | 743 +++++++++++++++++++--------------- parser/output/raylib_api.xml | 73 +++- 4 files changed, 894 insertions(+), 325 deletions(-) diff --git a/parser/output/raylib_api.json b/parser/output/raylib_api.json index f5872ec8a883..0ddcf52a9597 100644 --- a/parser/output/raylib_api.json +++ b/parser/output/raylib_api.json @@ -6518,6 +6518,41 @@ } ] }, + { + "name": "DrawSplineSegmentBezierCubicVar", + "description": "Draw spline segment with variable thickness: Cubic Bezier, 2 points, 2 control points, 1 or more thickness", + "returnType": "void", + "params": [ + { + "type": "Vector2", + "name": "p1" + }, + { + "type": "Vector2", + "name": "c2" + }, + { + "type": "Vector2", + "name": "c3" + }, + { + "type": "Vector2", + "name": "p4" + }, + { + "type": "const float*", + "name": "thicks" + }, + { + "type": "int", + "name": "thickCount" + }, + { + "type": "Color", + "name": "color" + } + ] + }, { "name": "GetSplinePointLinear", "description": "Get (evaluate) spline point: Linear", @@ -6641,6 +6676,243 @@ } ] }, + { + "name": "GetSplineVelocityLinear", + "description": "Get (evaluate) spline velocity: Linear", + "returnType": "Vector2", + "params": [ + { + "type": "Vector2", + "name": "startPos" + }, + { + "type": "Vector2", + "name": "endPos" + } + ] + }, + { + "name": "GetSplineVelocityBezierQuad", + "description": "Get (evaluate) spline velocity: Quadratic Bezier", + "returnType": "Vector2", + "params": [ + { + "type": "Vector2", + "name": "startPos" + }, + { + "type": "Vector2", + "name": "controlPos" + }, + { + "type": "Vector2", + "name": "endPos" + }, + { + "type": "float", + "name": "t" + } + ] + }, + { + "name": "GetSplineVelocityBezierCubic", + "description": "Get (evaluate) spline velocity: Cubic Bezier", + "returnType": "Vector2", + "params": [ + { + "type": "Vector2", + "name": "startPos" + }, + { + "type": "Vector2", + "name": "startControlPos" + }, + { + "type": "Vector2", + "name": "endControlPos" + }, + { + "type": "Vector2", + "name": "endPos" + }, + { + "type": "float", + "name": "t" + } + ] + }, + { + "name": "GetSplineAccelerationBezierQuad", + "description": "Get (evaluate) spline acceleration: Quadratic Bezier", + "returnType": "Vector2", + "params": [ + { + "type": "Vector2", + "name": "startPos" + }, + { + "type": "Vector2", + "name": "controlPos" + }, + { + "type": "Vector2", + "name": "endPos" + } + ] + }, + { + "name": "GetSplineAccelerationBezierCubic", + "description": "Get (evaluate) spline acceleration: Cubic Bezier", + "returnType": "Vector2", + "params": [ + { + "type": "Vector2", + "name": "startPos" + }, + { + "type": "Vector2", + "name": "startControlPos" + }, + { + "type": "Vector2", + "name": "endControlPos" + }, + { + "type": "Vector2", + "name": "endPos" + }, + { + "type": "float", + "name": "t" + } + ] + }, + { + "name": "GetSplineJoltBezierCubic", + "description": "Get (evaluate) spline jolt: Cubic Bezier", + "returnType": "Vector2", + "params": [ + { + "type": "Vector2", + "name": "startPos" + }, + { + "type": "Vector2", + "name": "startControlPos" + }, + { + "type": "Vector2", + "name": "endControlPos" + }, + { + "type": "Vector2", + "name": "endPos" + } + ] + }, + { + "name": "GetSplineBoundsBezierLinear", + "description": "Get (evaluate) spline bounds rectangle: Linear", + "returnType": "Rectangle", + "params": [ + { + "type": "Vector2", + "name": "startPos" + }, + { + "type": "Vector2", + "name": "endPos" + } + ] + }, + { + "name": "GetSplineBoundsBezierQuad", + "description": "Get (evaluate) spline bounds rectangle: Quadratic Bezier", + "returnType": "Rectangle", + "params": [ + { + "type": "Vector2", + "name": "startPos" + }, + { + "type": "Vector2", + "name": "controlPos" + }, + { + "type": "Vector2", + "name": "endPos" + } + ] + }, + { + "name": "GetSplineBoundsBezierCubic", + "description": "Get (evaluate) spline bounds rectangle: Cubic Bezier", + "returnType": "Rectangle", + "params": [ + { + "type": "Vector2", + "name": "startPos" + }, + { + "type": "Vector2", + "name": "startControlPos" + }, + { + "type": "Vector2", + "name": "endControlPos" + }, + { + "type": "Vector2", + "name": "endPos" + } + ] + }, + { + "name": "GetSplineCurvatureBezierCubic", + "description": "Get (evaluate) spline curvature: Cubic Bezier", + "returnType": "float", + "params": [ + { + "type": "Vector2", + "name": "startPos" + }, + { + "type": "Vector2", + "name": "startControlPos" + }, + { + "type": "Vector2", + "name": "endControlPos" + }, + { + "type": "Vector2", + "name": "endPos" + }, + { + "type": "float", + "name": "t" + } + ] + }, + { + "name": "GetSplineNearestTLinear", + "description": "Get (evaluate) nearest t value to point: Linear", + "returnType": "float", + "params": [ + { + "type": "Vector2", + "name": "startPos" + }, + { + "type": "Vector2", + "name": "endPos" + }, + { + "type": "Vector2", + "name": "point" + } + ] + }, { "name": "CheckCollisionRecs", "description": "Check collision between two rectangles", diff --git a/parser/output/raylib_api.lua b/parser/output/raylib_api.lua index 81dd7f9327de..9fa25fc3ee5f 100644 --- a/parser/output/raylib_api.lua +++ b/parser/output/raylib_api.lua @@ -5210,6 +5210,20 @@ return { {type = "Color", name = "color"} } }, + { + name = "DrawSplineSegmentBezierCubicVar", + description = "Draw spline segment with variable thickness: Cubic Bezier, 2 points, 2 control points, 1 or more thickness", + returnType = "void", + params = { + {type = "Vector2", name = "p1"}, + {type = "Vector2", name = "c2"}, + {type = "Vector2", name = "c3"}, + {type = "Vector2", name = "p4"}, + {type = "const float*", name = "thicks"}, + {type = "int", name = "thickCount"}, + {type = "Color", name = "color"} + } + }, { name = "GetSplinePointLinear", description = "Get (evaluate) spline point: Linear", @@ -5267,6 +5281,123 @@ return { {type = "float", name = "t"} } }, + { + name = "GetSplineVelocityLinear", + description = "Get (evaluate) spline velocity: Linear", + returnType = "Vector2", + params = { + {type = "Vector2", name = "startPos"}, + {type = "Vector2", name = "endPos"} + } + }, + { + name = "GetSplineVelocityBezierQuad", + description = "Get (evaluate) spline velocity: Quadratic Bezier", + returnType = "Vector2", + params = { + {type = "Vector2", name = "startPos"}, + {type = "Vector2", name = "controlPos"}, + {type = "Vector2", name = "endPos"}, + {type = "float", name = "t"} + } + }, + { + name = "GetSplineVelocityBezierCubic", + description = "Get (evaluate) spline velocity: Cubic Bezier", + returnType = "Vector2", + params = { + {type = "Vector2", name = "startPos"}, + {type = "Vector2", name = "startControlPos"}, + {type = "Vector2", name = "endControlPos"}, + {type = "Vector2", name = "endPos"}, + {type = "float", name = "t"} + } + }, + { + name = "GetSplineAccelerationBezierQuad", + description = "Get (evaluate) spline acceleration: Quadratic Bezier", + returnType = "Vector2", + params = { + {type = "Vector2", name = "startPos"}, + {type = "Vector2", name = "controlPos"}, + {type = "Vector2", name = "endPos"} + } + }, + { + name = "GetSplineAccelerationBezierCubic", + description = "Get (evaluate) spline acceleration: Cubic Bezier", + returnType = "Vector2", + params = { + {type = "Vector2", name = "startPos"}, + {type = "Vector2", name = "startControlPos"}, + {type = "Vector2", name = "endControlPos"}, + {type = "Vector2", name = "endPos"}, + {type = "float", name = "t"} + } + }, + { + name = "GetSplineJoltBezierCubic", + description = "Get (evaluate) spline jolt: Cubic Bezier", + returnType = "Vector2", + params = { + {type = "Vector2", name = "startPos"}, + {type = "Vector2", name = "startControlPos"}, + {type = "Vector2", name = "endControlPos"}, + {type = "Vector2", name = "endPos"} + } + }, + { + name = "GetSplineBoundsBezierLinear", + description = "Get (evaluate) spline bounds rectangle: Linear", + returnType = "Rectangle", + params = { + {type = "Vector2", name = "startPos"}, + {type = "Vector2", name = "endPos"} + } + }, + { + name = "GetSplineBoundsBezierQuad", + description = "Get (evaluate) spline bounds rectangle: Quadratic Bezier", + returnType = "Rectangle", + params = { + {type = "Vector2", name = "startPos"}, + {type = "Vector2", name = "controlPos"}, + {type = "Vector2", name = "endPos"} + } + }, + { + name = "GetSplineBoundsBezierCubic", + description = "Get (evaluate) spline bounds rectangle: Cubic Bezier", + returnType = "Rectangle", + params = { + {type = "Vector2", name = "startPos"}, + {type = "Vector2", name = "startControlPos"}, + {type = "Vector2", name = "endControlPos"}, + {type = "Vector2", name = "endPos"} + } + }, + { + name = "GetSplineCurvatureBezierCubic", + description = "Get (evaluate) spline curvature: Cubic Bezier", + returnType = "float", + params = { + {type = "Vector2", name = "startPos"}, + {type = "Vector2", name = "startControlPos"}, + {type = "Vector2", name = "endControlPos"}, + {type = "Vector2", name = "endPos"}, + {type = "float", name = "t"} + } + }, + { + name = "GetSplineNearestTLinear", + description = "Get (evaluate) nearest t value to point: Linear", + returnType = "float", + params = { + {type = "Vector2", name = "startPos"}, + {type = "Vector2", name = "endPos"}, + {type = "Vector2", name = "point"} + } + }, { name = "CheckCollisionRecs", description = "Check collision between two rectangles", diff --git a/parser/output/raylib_api.txt b/parser/output/raylib_api.txt index c74a79a5fc6e..309d9845a598 100644 --- a/parser/output/raylib_api.txt +++ b/parser/output/raylib_api.txt @@ -993,7 +993,7 @@ Callback 006: AudioCallback() (2 input parameters) Param[1]: bufferData (type: void *) Param[2]: frames (type: unsigned int) -Functions found: 582 +Functions found: 594 Function 001: InitWindow() (3 input parameters) Name: InitWindow @@ -2528,14 +2528,25 @@ Function 259: DrawSplineSegmentBezierCubic() (6 input parameters) Param[4]: p4 (type: Vector2) Param[5]: thick (type: float) Param[6]: color (type: Color) -Function 260: GetSplinePointLinear() (3 input parameters) +Function 260: DrawSplineSegmentBezierCubicVar() (7 input parameters) + Name: DrawSplineSegmentBezierCubicVar + Return type: void + Description: Draw spline segment with variable thickness: Cubic Bezier, 2 points, 2 control points, 1 or more thickness + Param[1]: p1 (type: Vector2) + Param[2]: c2 (type: Vector2) + Param[3]: c3 (type: Vector2) + Param[4]: p4 (type: Vector2) + Param[5]: thicks (type: const float*) + Param[6]: thickCount (type: int) + Param[7]: color (type: Color) +Function 261: GetSplinePointLinear() (3 input parameters) Name: GetSplinePointLinear Return type: Vector2 Description: Get (evaluate) spline point: Linear Param[1]: startPos (type: Vector2) Param[2]: endPos (type: Vector2) Param[3]: t (type: float) -Function 261: GetSplinePointBasis() (5 input parameters) +Function 262: GetSplinePointBasis() (5 input parameters) Name: GetSplinePointBasis Return type: Vector2 Description: Get (evaluate) spline point: B-Spline @@ -2544,7 +2555,7 @@ Function 261: GetSplinePointBasis() (5 input parameters) Param[3]: p3 (type: Vector2) Param[4]: p4 (type: Vector2) Param[5]: t (type: float) -Function 262: GetSplinePointCatmullRom() (5 input parameters) +Function 263: GetSplinePointCatmullRom() (5 input parameters) Name: GetSplinePointCatmullRom Return type: Vector2 Description: Get (evaluate) spline point: Catmull-Rom @@ -2553,7 +2564,7 @@ Function 262: GetSplinePointCatmullRom() (5 input parameters) Param[3]: p3 (type: Vector2) Param[4]: p4 (type: Vector2) Param[5]: t (type: float) -Function 263: GetSplinePointBezierQuad() (4 input parameters) +Function 264: GetSplinePointBezierQuad() (4 input parameters) Name: GetSplinePointBezierQuad Return type: Vector2 Description: Get (evaluate) spline point: Quadratic Bezier @@ -2561,7 +2572,7 @@ Function 263: GetSplinePointBezierQuad() (4 input parameters) Param[2]: c2 (type: Vector2) Param[3]: p3 (type: Vector2) Param[4]: t (type: float) -Function 264: GetSplinePointBezierCubic() (5 input parameters) +Function 265: GetSplinePointBezierCubic() (5 input parameters) Name: GetSplinePointBezierCubic Return type: Vector2 Description: Get (evaluate) spline point: Cubic Bezier @@ -2570,13 +2581,97 @@ Function 264: GetSplinePointBezierCubic() (5 input parameters) Param[3]: c3 (type: Vector2) Param[4]: p4 (type: Vector2) Param[5]: t (type: float) -Function 265: CheckCollisionRecs() (2 input parameters) +Function 266: GetSplineVelocityLinear() (2 input parameters) + Name: GetSplineVelocityLinear + Return type: Vector2 + Description: Get (evaluate) spline velocity: Linear + Param[1]: startPos (type: Vector2) + Param[2]: endPos (type: Vector2) +Function 267: GetSplineVelocityBezierQuad() (4 input parameters) + Name: GetSplineVelocityBezierQuad + Return type: Vector2 + Description: Get (evaluate) spline velocity: Quadratic Bezier + Param[1]: startPos (type: Vector2) + Param[2]: controlPos (type: Vector2) + Param[3]: endPos (type: Vector2) + Param[4]: t (type: float) +Function 268: GetSplineVelocityBezierCubic() (5 input parameters) + Name: GetSplineVelocityBezierCubic + Return type: Vector2 + Description: Get (evaluate) spline velocity: Cubic Bezier + Param[1]: startPos (type: Vector2) + Param[2]: startControlPos (type: Vector2) + Param[3]: endControlPos (type: Vector2) + Param[4]: endPos (type: Vector2) + Param[5]: t (type: float) +Function 269: GetSplineAccelerationBezierQuad() (3 input parameters) + Name: GetSplineAccelerationBezierQuad + Return type: Vector2 + Description: Get (evaluate) spline acceleration: Quadratic Bezier + Param[1]: startPos (type: Vector2) + Param[2]: controlPos (type: Vector2) + Param[3]: endPos (type: Vector2) +Function 270: GetSplineAccelerationBezierCubic() (5 input parameters) + Name: GetSplineAccelerationBezierCubic + Return type: Vector2 + Description: Get (evaluate) spline acceleration: Cubic Bezier + Param[1]: startPos (type: Vector2) + Param[2]: startControlPos (type: Vector2) + Param[3]: endControlPos (type: Vector2) + Param[4]: endPos (type: Vector2) + Param[5]: t (type: float) +Function 271: GetSplineJoltBezierCubic() (4 input parameters) + Name: GetSplineJoltBezierCubic + Return type: Vector2 + Description: Get (evaluate) spline jolt: Cubic Bezier + Param[1]: startPos (type: Vector2) + Param[2]: startControlPos (type: Vector2) + Param[3]: endControlPos (type: Vector2) + Param[4]: endPos (type: Vector2) +Function 272: GetSplineBoundsBezierLinear() (2 input parameters) + Name: GetSplineBoundsBezierLinear + Return type: Rectangle + Description: Get (evaluate) spline bounds rectangle: Linear + Param[1]: startPos (type: Vector2) + Param[2]: endPos (type: Vector2) +Function 273: GetSplineBoundsBezierQuad() (3 input parameters) + Name: GetSplineBoundsBezierQuad + Return type: Rectangle + Description: Get (evaluate) spline bounds rectangle: Quadratic Bezier + Param[1]: startPos (type: Vector2) + Param[2]: controlPos (type: Vector2) + Param[3]: endPos (type: Vector2) +Function 274: GetSplineBoundsBezierCubic() (4 input parameters) + Name: GetSplineBoundsBezierCubic + Return type: Rectangle + Description: Get (evaluate) spline bounds rectangle: Cubic Bezier + Param[1]: startPos (type: Vector2) + Param[2]: startControlPos (type: Vector2) + Param[3]: endControlPos (type: Vector2) + Param[4]: endPos (type: Vector2) +Function 275: GetSplineCurvatureBezierCubic() (5 input parameters) + Name: GetSplineCurvatureBezierCubic + Return type: float + Description: Get (evaluate) spline curvature: Cubic Bezier + Param[1]: startPos (type: Vector2) + Param[2]: startControlPos (type: Vector2) + Param[3]: endControlPos (type: Vector2) + Param[4]: endPos (type: Vector2) + Param[5]: t (type: float) +Function 276: GetSplineNearestTLinear() (3 input parameters) + Name: GetSplineNearestTLinear + Return type: float + Description: Get (evaluate) nearest t value to point: Linear + Param[1]: startPos (type: Vector2) + Param[2]: endPos (type: Vector2) + Param[3]: point (type: Vector2) +Function 277: CheckCollisionRecs() (2 input parameters) Name: CheckCollisionRecs Return type: bool Description: Check collision between two rectangles Param[1]: rec1 (type: Rectangle) Param[2]: rec2 (type: Rectangle) -Function 266: CheckCollisionCircles() (4 input parameters) +Function 278: CheckCollisionCircles() (4 input parameters) Name: CheckCollisionCircles Return type: bool Description: Check collision between two circles @@ -2584,14 +2679,14 @@ Function 266: CheckCollisionCircles() (4 input parameters) Param[2]: radius1 (type: float) Param[3]: center2 (type: Vector2) Param[4]: radius2 (type: float) -Function 267: CheckCollisionCircleRec() (3 input parameters) +Function 279: CheckCollisionCircleRec() (3 input parameters) Name: CheckCollisionCircleRec Return type: bool Description: Check collision between circle and rectangle Param[1]: center (type: Vector2) Param[2]: radius (type: float) Param[3]: rec (type: Rectangle) -Function 268: CheckCollisionCircleLine() (4 input parameters) +Function 280: CheckCollisionCircleLine() (4 input parameters) Name: CheckCollisionCircleLine Return type: bool Description: Check if circle collides with a line created betweeen two points [p1] and [p2] @@ -2599,20 +2694,20 @@ Function 268: CheckCollisionCircleLine() (4 input parameters) Param[2]: radius (type: float) Param[3]: p1 (type: Vector2) Param[4]: p2 (type: Vector2) -Function 269: CheckCollisionPointRec() (2 input parameters) +Function 281: CheckCollisionPointRec() (2 input parameters) Name: CheckCollisionPointRec Return type: bool Description: Check if point is inside rectangle Param[1]: point (type: Vector2) Param[2]: rec (type: Rectangle) -Function 270: CheckCollisionPointCircle() (3 input parameters) +Function 282: CheckCollisionPointCircle() (3 input parameters) Name: CheckCollisionPointCircle Return type: bool Description: Check if point is inside circle Param[1]: point (type: Vector2) Param[2]: center (type: Vector2) Param[3]: radius (type: float) -Function 271: CheckCollisionPointTriangle() (4 input parameters) +Function 283: CheckCollisionPointTriangle() (4 input parameters) Name: CheckCollisionPointTriangle Return type: bool Description: Check if point is inside a triangle @@ -2620,7 +2715,7 @@ Function 271: CheckCollisionPointTriangle() (4 input parameters) Param[2]: p1 (type: Vector2) Param[3]: p2 (type: Vector2) Param[4]: p3 (type: Vector2) -Function 272: CheckCollisionPointLine() (4 input parameters) +Function 284: CheckCollisionPointLine() (4 input parameters) Name: CheckCollisionPointLine Return type: bool Description: Check if point belongs to line created between two points [p1] and [p2] with defined margin in pixels [threshold] @@ -2628,14 +2723,14 @@ Function 272: CheckCollisionPointLine() (4 input parameters) Param[2]: p1 (type: Vector2) Param[3]: p2 (type: Vector2) Param[4]: threshold (type: int) -Function 273: CheckCollisionPointPoly() (3 input parameters) +Function 285: CheckCollisionPointPoly() (3 input parameters) Name: CheckCollisionPointPoly Return type: bool Description: Check if point is within a polygon described by array of vertices Param[1]: point (type: Vector2) Param[2]: points (type: const Vector2 *) Param[3]: pointCount (type: int) -Function 274: CheckCollisionLines() (5 input parameters) +Function 286: CheckCollisionLines() (5 input parameters) Name: CheckCollisionLines Return type: bool Description: Check the collision between two lines defined by two points each, returns collision point by reference @@ -2644,18 +2739,18 @@ Function 274: CheckCollisionLines() (5 input parameters) Param[3]: startPos2 (type: Vector2) Param[4]: endPos2 (type: Vector2) Param[5]: collisionPoint (type: Vector2 *) -Function 275: GetCollisionRec() (2 input parameters) +Function 287: GetCollisionRec() (2 input parameters) Name: GetCollisionRec Return type: Rectangle Description: Get collision rectangle for two rectangles collision Param[1]: rec1 (type: Rectangle) Param[2]: rec2 (type: Rectangle) -Function 276: LoadImage() (1 input parameters) +Function 288: LoadImage() (1 input parameters) Name: LoadImage Return type: Image Description: Load image from file into CPU memory (RAM) Param[1]: fileName (type: const char *) -Function 277: LoadImageRaw() (5 input parameters) +Function 289: LoadImageRaw() (5 input parameters) Name: LoadImageRaw Return type: Image Description: Load image from RAW file data @@ -2664,13 +2759,13 @@ Function 277: LoadImageRaw() (5 input parameters) Param[3]: height (type: int) Param[4]: format (type: int) Param[5]: headerSize (type: int) -Function 278: LoadImageAnim() (2 input parameters) +Function 290: LoadImageAnim() (2 input parameters) Name: LoadImageAnim Return type: Image Description: Load image sequence from file (frames appended to image.data) Param[1]: fileName (type: const char *) Param[2]: frames (type: int *) -Function 279: LoadImageAnimFromMemory() (4 input parameters) +Function 291: LoadImageAnimFromMemory() (4 input parameters) Name: LoadImageAnimFromMemory Return type: Image Description: Load image sequence from memory buffer @@ -2678,60 +2773,60 @@ Function 279: LoadImageAnimFromMemory() (4 input parameters) Param[2]: fileData (type: const unsigned char *) Param[3]: dataSize (type: int) Param[4]: frames (type: int *) -Function 280: LoadImageFromMemory() (3 input parameters) +Function 292: LoadImageFromMemory() (3 input parameters) Name: LoadImageFromMemory Return type: Image Description: Load image from memory buffer, fileType refers to extension: i.e. '.png' Param[1]: fileType (type: const char *) Param[2]: fileData (type: const unsigned char *) Param[3]: dataSize (type: int) -Function 281: LoadImageFromTexture() (1 input parameters) +Function 293: LoadImageFromTexture() (1 input parameters) Name: LoadImageFromTexture Return type: Image Description: Load image from GPU texture data Param[1]: texture (type: Texture2D) -Function 282: LoadImageFromScreen() (0 input parameters) +Function 294: LoadImageFromScreen() (0 input parameters) Name: LoadImageFromScreen Return type: Image Description: Load image from screen buffer and (screenshot) No input parameters -Function 283: IsImageValid() (1 input parameters) +Function 295: IsImageValid() (1 input parameters) Name: IsImageValid Return type: bool Description: Check if an image is valid (data and parameters) Param[1]: image (type: Image) -Function 284: UnloadImage() (1 input parameters) +Function 296: UnloadImage() (1 input parameters) Name: UnloadImage Return type: void Description: Unload image from CPU memory (RAM) Param[1]: image (type: Image) -Function 285: ExportImage() (2 input parameters) +Function 297: ExportImage() (2 input parameters) Name: ExportImage Return type: bool Description: Export image data to file, returns true on success Param[1]: image (type: Image) Param[2]: fileName (type: const char *) -Function 286: ExportImageToMemory() (3 input parameters) +Function 298: ExportImageToMemory() (3 input parameters) Name: ExportImageToMemory Return type: unsigned char * Description: Export image to memory buffer Param[1]: image (type: Image) Param[2]: fileType (type: const char *) Param[3]: fileSize (type: int *) -Function 287: ExportImageAsCode() (2 input parameters) +Function 299: ExportImageAsCode() (2 input parameters) Name: ExportImageAsCode Return type: bool Description: Export image as code file defining an array of bytes, returns true on success Param[1]: image (type: Image) Param[2]: fileName (type: const char *) -Function 288: GenImageColor() (3 input parameters) +Function 300: GenImageColor() (3 input parameters) Name: GenImageColor Return type: Image Description: Generate image: plain color Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: color (type: Color) -Function 289: GenImageGradientLinear() (5 input parameters) +Function 301: GenImageGradientLinear() (5 input parameters) Name: GenImageGradientLinear Return type: Image Description: Generate image: linear gradient, direction in degrees [0..360], 0=Vertical gradient @@ -2740,7 +2835,7 @@ Function 289: GenImageGradientLinear() (5 input parameters) Param[3]: direction (type: int) Param[4]: start (type: Color) Param[5]: end (type: Color) -Function 290: GenImageGradientRadial() (5 input parameters) +Function 302: GenImageGradientRadial() (5 input parameters) Name: GenImageGradientRadial Return type: Image Description: Generate image: radial gradient @@ -2749,7 +2844,7 @@ Function 290: GenImageGradientRadial() (5 input parameters) Param[3]: density (type: float) Param[4]: inner (type: Color) Param[5]: outer (type: Color) -Function 291: GenImageGradientSquare() (5 input parameters) +Function 303: GenImageGradientSquare() (5 input parameters) Name: GenImageGradientSquare Return type: Image Description: Generate image: square gradient @@ -2758,7 +2853,7 @@ Function 291: GenImageGradientSquare() (5 input parameters) Param[3]: density (type: float) Param[4]: inner (type: Color) Param[5]: outer (type: Color) -Function 292: GenImageChecked() (6 input parameters) +Function 304: GenImageChecked() (6 input parameters) Name: GenImageChecked Return type: Image Description: Generate image: checked @@ -2768,14 +2863,14 @@ Function 292: GenImageChecked() (6 input parameters) Param[4]: checksY (type: int) Param[5]: col1 (type: Color) Param[6]: col2 (type: Color) -Function 293: GenImageWhiteNoise() (3 input parameters) +Function 305: GenImageWhiteNoise() (3 input parameters) Name: GenImageWhiteNoise Return type: Image Description: Generate image: white noise Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: factor (type: float) -Function 294: GenImagePerlinNoise() (5 input parameters) +Function 306: GenImagePerlinNoise() (5 input parameters) Name: GenImagePerlinNoise Return type: Image Description: Generate image: perlin noise @@ -2784,45 +2879,45 @@ Function 294: GenImagePerlinNoise() (5 input parameters) Param[3]: offsetX (type: int) Param[4]: offsetY (type: int) Param[5]: scale (type: float) -Function 295: GenImageCellular() (3 input parameters) +Function 307: GenImageCellular() (3 input parameters) Name: GenImageCellular Return type: Image Description: Generate image: cellular algorithm, bigger tileSize means bigger cells Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: tileSize (type: int) -Function 296: GenImageText() (3 input parameters) +Function 308: GenImageText() (3 input parameters) Name: GenImageText Return type: Image Description: Generate image: grayscale image from text data Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: text (type: const char *) -Function 297: ImageCopy() (1 input parameters) +Function 309: ImageCopy() (1 input parameters) Name: ImageCopy Return type: Image Description: Create an image duplicate (useful for transformations) Param[1]: image (type: Image) -Function 298: ImageFromImage() (2 input parameters) +Function 310: ImageFromImage() (2 input parameters) Name: ImageFromImage Return type: Image Description: Create an image from another image piece Param[1]: image (type: Image) Param[2]: rec (type: Rectangle) -Function 299: ImageFromChannel() (2 input parameters) +Function 311: ImageFromChannel() (2 input parameters) Name: ImageFromChannel Return type: Image Description: Create an image from a selected channel of another image (GRAYSCALE) Param[1]: image (type: Image) Param[2]: selectedChannel (type: int) -Function 300: ImageText() (3 input parameters) +Function 312: ImageText() (3 input parameters) Name: ImageText Return type: Image Description: Create an image from text (default font) Param[1]: text (type: const char *) Param[2]: fontSize (type: int) Param[3]: color (type: Color) -Function 301: ImageTextEx() (5 input parameters) +Function 313: ImageTextEx() (5 input parameters) Name: ImageTextEx Return type: Image Description: Create an image from text (custom sprite font) @@ -2831,76 +2926,76 @@ Function 301: ImageTextEx() (5 input parameters) Param[3]: fontSize (type: float) Param[4]: spacing (type: float) Param[5]: tint (type: Color) -Function 302: ImageFormat() (2 input parameters) +Function 314: ImageFormat() (2 input parameters) Name: ImageFormat Return type: void Description: Convert image data to desired format Param[1]: image (type: Image *) Param[2]: newFormat (type: int) -Function 303: ImageToPOT() (2 input parameters) +Function 315: ImageToPOT() (2 input parameters) Name: ImageToPOT Return type: void Description: Convert image to POT (power-of-two) Param[1]: image (type: Image *) Param[2]: fill (type: Color) -Function 304: ImageCrop() (2 input parameters) +Function 316: ImageCrop() (2 input parameters) Name: ImageCrop Return type: void Description: Crop an image to a defined rectangle Param[1]: image (type: Image *) Param[2]: crop (type: Rectangle) -Function 305: ImageAlphaCrop() (2 input parameters) +Function 317: ImageAlphaCrop() (2 input parameters) Name: ImageAlphaCrop Return type: void Description: Crop image depending on alpha value Param[1]: image (type: Image *) Param[2]: threshold (type: float) -Function 306: ImageAlphaClear() (3 input parameters) +Function 318: ImageAlphaClear() (3 input parameters) Name: ImageAlphaClear Return type: void Description: Clear alpha channel to desired color Param[1]: image (type: Image *) Param[2]: color (type: Color) Param[3]: threshold (type: float) -Function 307: ImageAlphaMask() (2 input parameters) +Function 319: ImageAlphaMask() (2 input parameters) Name: ImageAlphaMask Return type: void Description: Apply alpha mask to image Param[1]: image (type: Image *) Param[2]: alphaMask (type: Image) -Function 308: ImageAlphaPremultiply() (1 input parameters) +Function 320: ImageAlphaPremultiply() (1 input parameters) Name: ImageAlphaPremultiply Return type: void Description: Premultiply alpha channel Param[1]: image (type: Image *) -Function 309: ImageBlurGaussian() (2 input parameters) +Function 321: ImageBlurGaussian() (2 input parameters) Name: ImageBlurGaussian Return type: void Description: Apply Gaussian blur using a box blur approximation Param[1]: image (type: Image *) Param[2]: blurSize (type: int) -Function 310: ImageKernelConvolution() (3 input parameters) +Function 322: ImageKernelConvolution() (3 input parameters) Name: ImageKernelConvolution Return type: void Description: Apply custom square convolution kernel to image Param[1]: image (type: Image *) Param[2]: kernel (type: const float *) Param[3]: kernelSize (type: int) -Function 311: ImageResize() (3 input parameters) +Function 323: ImageResize() (3 input parameters) Name: ImageResize Return type: void Description: Resize image (Bicubic scaling algorithm) Param[1]: image (type: Image *) Param[2]: newWidth (type: int) Param[3]: newHeight (type: int) -Function 312: ImageResizeNN() (3 input parameters) +Function 324: ImageResizeNN() (3 input parameters) Name: ImageResizeNN Return type: void Description: Resize image (Nearest-Neighbor scaling algorithm) Param[1]: image (type: Image *) Param[2]: newWidth (type: int) Param[3]: newHeight (type: int) -Function 313: ImageResizeCanvas() (6 input parameters) +Function 325: ImageResizeCanvas() (6 input parameters) Name: ImageResizeCanvas Return type: void Description: Resize canvas and fill with color @@ -2910,12 +3005,12 @@ Function 313: ImageResizeCanvas() (6 input parameters) Param[4]: offsetX (type: int) Param[5]: offsetY (type: int) Param[6]: fill (type: Color) -Function 314: ImageMipmaps() (1 input parameters) +Function 326: ImageMipmaps() (1 input parameters) Name: ImageMipmaps Return type: void Description: Compute all mipmap levels for a provided image Param[1]: image (type: Image *) -Function 315: ImageDither() (5 input parameters) +Function 327: ImageDither() (5 input parameters) Name: ImageDither Return type: void Description: Dither image data to 16bpp or lower (Floyd-Steinberg dithering) @@ -2924,109 +3019,109 @@ Function 315: ImageDither() (5 input parameters) Param[3]: gBpp (type: int) Param[4]: bBpp (type: int) Param[5]: aBpp (type: int) -Function 316: ImageFlipVertical() (1 input parameters) +Function 328: ImageFlipVertical() (1 input parameters) Name: ImageFlipVertical Return type: void Description: Flip image vertically Param[1]: image (type: Image *) -Function 317: ImageFlipHorizontal() (1 input parameters) +Function 329: ImageFlipHorizontal() (1 input parameters) Name: ImageFlipHorizontal Return type: void Description: Flip image horizontally Param[1]: image (type: Image *) -Function 318: ImageRotate() (2 input parameters) +Function 330: ImageRotate() (2 input parameters) Name: ImageRotate Return type: void Description: Rotate image by input angle in degrees (-359 to 359) Param[1]: image (type: Image *) Param[2]: degrees (type: int) -Function 319: ImageRotateCW() (1 input parameters) +Function 331: ImageRotateCW() (1 input parameters) Name: ImageRotateCW Return type: void Description: Rotate image clockwise 90deg Param[1]: image (type: Image *) -Function 320: ImageRotateCCW() (1 input parameters) +Function 332: ImageRotateCCW() (1 input parameters) Name: ImageRotateCCW Return type: void Description: Rotate image counter-clockwise 90deg Param[1]: image (type: Image *) -Function 321: ImageColorTint() (2 input parameters) +Function 333: ImageColorTint() (2 input parameters) Name: ImageColorTint Return type: void Description: Modify image color: tint Param[1]: image (type: Image *) Param[2]: color (type: Color) -Function 322: ImageColorInvert() (1 input parameters) +Function 334: ImageColorInvert() (1 input parameters) Name: ImageColorInvert Return type: void Description: Modify image color: invert Param[1]: image (type: Image *) -Function 323: ImageColorGrayscale() (1 input parameters) +Function 335: ImageColorGrayscale() (1 input parameters) Name: ImageColorGrayscale Return type: void Description: Modify image color: grayscale Param[1]: image (type: Image *) -Function 324: ImageColorContrast() (2 input parameters) +Function 336: ImageColorContrast() (2 input parameters) Name: ImageColorContrast Return type: void Description: Modify image color: contrast (-100 to 100) Param[1]: image (type: Image *) Param[2]: contrast (type: float) -Function 325: ImageColorBrightness() (2 input parameters) +Function 337: ImageColorBrightness() (2 input parameters) Name: ImageColorBrightness Return type: void Description: Modify image color: brightness (-255 to 255) Param[1]: image (type: Image *) Param[2]: brightness (type: int) -Function 326: ImageColorReplace() (3 input parameters) +Function 338: ImageColorReplace() (3 input parameters) Name: ImageColorReplace Return type: void Description: Modify image color: replace color Param[1]: image (type: Image *) Param[2]: color (type: Color) Param[3]: replace (type: Color) -Function 327: LoadImageColors() (1 input parameters) +Function 339: LoadImageColors() (1 input parameters) Name: LoadImageColors Return type: Color * Description: Load color data from image as a Color array (RGBA - 32bit) Param[1]: image (type: Image) -Function 328: LoadImagePalette() (3 input parameters) +Function 340: LoadImagePalette() (3 input parameters) Name: LoadImagePalette Return type: Color * Description: Load colors palette from image as a Color array (RGBA - 32bit) Param[1]: image (type: Image) Param[2]: maxPaletteSize (type: int) Param[3]: colorCount (type: int *) -Function 329: UnloadImageColors() (1 input parameters) +Function 341: UnloadImageColors() (1 input parameters) Name: UnloadImageColors Return type: void Description: Unload color data loaded with LoadImageColors() Param[1]: colors (type: Color *) -Function 330: UnloadImagePalette() (1 input parameters) +Function 342: UnloadImagePalette() (1 input parameters) Name: UnloadImagePalette Return type: void Description: Unload colors palette loaded with LoadImagePalette() Param[1]: colors (type: Color *) -Function 331: GetImageAlphaBorder() (2 input parameters) +Function 343: GetImageAlphaBorder() (2 input parameters) Name: GetImageAlphaBorder Return type: Rectangle Description: Get image alpha border rectangle Param[1]: image (type: Image) Param[2]: threshold (type: float) -Function 332: GetImageColor() (3 input parameters) +Function 344: GetImageColor() (3 input parameters) Name: GetImageColor Return type: Color Description: Get image pixel color at (x, y) position Param[1]: image (type: Image) Param[2]: x (type: int) Param[3]: y (type: int) -Function 333: ImageClearBackground() (2 input parameters) +Function 345: ImageClearBackground() (2 input parameters) Name: ImageClearBackground Return type: void Description: Clear image background with given color Param[1]: dst (type: Image *) Param[2]: color (type: Color) -Function 334: ImageDrawPixel() (4 input parameters) +Function 346: ImageDrawPixel() (4 input parameters) Name: ImageDrawPixel Return type: void Description: Draw pixel within an image @@ -3034,14 +3129,14 @@ Function 334: ImageDrawPixel() (4 input parameters) Param[2]: posX (type: int) Param[3]: posY (type: int) Param[4]: color (type: Color) -Function 335: ImageDrawPixelV() (3 input parameters) +Function 347: ImageDrawPixelV() (3 input parameters) Name: ImageDrawPixelV Return type: void Description: Draw pixel within an image (Vector version) Param[1]: dst (type: Image *) Param[2]: position (type: Vector2) Param[3]: color (type: Color) -Function 336: ImageDrawLine() (6 input parameters) +Function 348: ImageDrawLine() (6 input parameters) Name: ImageDrawLine Return type: void Description: Draw line within an image @@ -3051,7 +3146,7 @@ Function 336: ImageDrawLine() (6 input parameters) Param[4]: endPosX (type: int) Param[5]: endPosY (type: int) Param[6]: color (type: Color) -Function 337: ImageDrawLineV() (4 input parameters) +Function 349: ImageDrawLineV() (4 input parameters) Name: ImageDrawLineV Return type: void Description: Draw line within an image (Vector version) @@ -3059,7 +3154,7 @@ Function 337: ImageDrawLineV() (4 input parameters) Param[2]: start (type: Vector2) Param[3]: end (type: Vector2) Param[4]: color (type: Color) -Function 338: ImageDrawLineEx() (5 input parameters) +Function 350: ImageDrawLineEx() (5 input parameters) Name: ImageDrawLineEx Return type: void Description: Draw a line defining thickness within an image @@ -3068,7 +3163,7 @@ Function 338: ImageDrawLineEx() (5 input parameters) Param[3]: end (type: Vector2) Param[4]: thick (type: int) Param[5]: color (type: Color) -Function 339: ImageDrawCircle() (5 input parameters) +Function 351: ImageDrawCircle() (5 input parameters) Name: ImageDrawCircle Return type: void Description: Draw a filled circle within an image @@ -3077,7 +3172,7 @@ Function 339: ImageDrawCircle() (5 input parameters) Param[3]: centerY (type: int) Param[4]: radius (type: int) Param[5]: color (type: Color) -Function 340: ImageDrawCircleV() (4 input parameters) +Function 352: ImageDrawCircleV() (4 input parameters) Name: ImageDrawCircleV Return type: void Description: Draw a filled circle within an image (Vector version) @@ -3085,7 +3180,7 @@ Function 340: ImageDrawCircleV() (4 input parameters) Param[2]: center (type: Vector2) Param[3]: radius (type: int) Param[4]: color (type: Color) -Function 341: ImageDrawCircleLines() (5 input parameters) +Function 353: ImageDrawCircleLines() (5 input parameters) Name: ImageDrawCircleLines Return type: void Description: Draw circle outline within an image @@ -3094,7 +3189,7 @@ Function 341: ImageDrawCircleLines() (5 input parameters) Param[3]: centerY (type: int) Param[4]: radius (type: int) Param[5]: color (type: Color) -Function 342: ImageDrawCircleLinesV() (4 input parameters) +Function 354: ImageDrawCircleLinesV() (4 input parameters) Name: ImageDrawCircleLinesV Return type: void Description: Draw circle outline within an image (Vector version) @@ -3102,7 +3197,7 @@ Function 342: ImageDrawCircleLinesV() (4 input parameters) Param[2]: center (type: Vector2) Param[3]: radius (type: int) Param[4]: color (type: Color) -Function 343: ImageDrawRectangle() (6 input parameters) +Function 355: ImageDrawRectangle() (6 input parameters) Name: ImageDrawRectangle Return type: void Description: Draw rectangle within an image @@ -3112,7 +3207,7 @@ Function 343: ImageDrawRectangle() (6 input parameters) Param[4]: width (type: int) Param[5]: height (type: int) Param[6]: color (type: Color) -Function 344: ImageDrawRectangleV() (4 input parameters) +Function 356: ImageDrawRectangleV() (4 input parameters) Name: ImageDrawRectangleV Return type: void Description: Draw rectangle within an image (Vector version) @@ -3120,14 +3215,14 @@ Function 344: ImageDrawRectangleV() (4 input parameters) Param[2]: position (type: Vector2) Param[3]: size (type: Vector2) Param[4]: color (type: Color) -Function 345: ImageDrawRectangleRec() (3 input parameters) +Function 357: ImageDrawRectangleRec() (3 input parameters) Name: ImageDrawRectangleRec Return type: void Description: Draw rectangle within an image Param[1]: dst (type: Image *) Param[2]: rec (type: Rectangle) Param[3]: color (type: Color) -Function 346: ImageDrawRectangleLines() (4 input parameters) +Function 358: ImageDrawRectangleLines() (4 input parameters) Name: ImageDrawRectangleLines Return type: void Description: Draw rectangle lines within an image @@ -3135,7 +3230,7 @@ Function 346: ImageDrawRectangleLines() (4 input parameters) Param[2]: rec (type: Rectangle) Param[3]: thick (type: int) Param[4]: color (type: Color) -Function 347: ImageDrawTriangle() (5 input parameters) +Function 359: ImageDrawTriangle() (5 input parameters) Name: ImageDrawTriangle Return type: void Description: Draw triangle within an image @@ -3144,7 +3239,7 @@ Function 347: ImageDrawTriangle() (5 input parameters) Param[3]: v2 (type: Vector2) Param[4]: v3 (type: Vector2) Param[5]: color (type: Color) -Function 348: ImageDrawTriangleEx() (7 input parameters) +Function 360: ImageDrawTriangleEx() (7 input parameters) Name: ImageDrawTriangleEx Return type: void Description: Draw triangle with interpolated colors within an image @@ -3155,7 +3250,7 @@ Function 348: ImageDrawTriangleEx() (7 input parameters) Param[5]: c1 (type: Color) Param[6]: c2 (type: Color) Param[7]: c3 (type: Color) -Function 349: ImageDrawTriangleLines() (5 input parameters) +Function 361: ImageDrawTriangleLines() (5 input parameters) Name: ImageDrawTriangleLines Return type: void Description: Draw triangle outline within an image @@ -3164,7 +3259,7 @@ Function 349: ImageDrawTriangleLines() (5 input parameters) Param[3]: v2 (type: Vector2) Param[4]: v3 (type: Vector2) Param[5]: color (type: Color) -Function 350: ImageDrawTriangleFan() (4 input parameters) +Function 362: ImageDrawTriangleFan() (4 input parameters) Name: ImageDrawTriangleFan Return type: void Description: Draw a triangle fan defined by points within an image (first vertex is the center) @@ -3172,7 +3267,7 @@ Function 350: ImageDrawTriangleFan() (4 input parameters) Param[2]: points (type: Vector2 *) Param[3]: pointCount (type: int) Param[4]: color (type: Color) -Function 351: ImageDrawTriangleStrip() (4 input parameters) +Function 363: ImageDrawTriangleStrip() (4 input parameters) Name: ImageDrawTriangleStrip Return type: void Description: Draw a triangle strip defined by points within an image @@ -3180,7 +3275,7 @@ Function 351: ImageDrawTriangleStrip() (4 input parameters) Param[2]: points (type: Vector2 *) Param[3]: pointCount (type: int) Param[4]: color (type: Color) -Function 352: ImageDraw() (5 input parameters) +Function 364: ImageDraw() (5 input parameters) Name: ImageDraw Return type: void Description: Draw a source image within a destination image (tint applied to source) @@ -3189,7 +3284,7 @@ Function 352: ImageDraw() (5 input parameters) Param[3]: srcRec (type: Rectangle) Param[4]: dstRec (type: Rectangle) Param[5]: tint (type: Color) -Function 353: ImageDrawText() (6 input parameters) +Function 365: ImageDrawText() (6 input parameters) Name: ImageDrawText Return type: void Description: Draw text (using default font) within an image (destination) @@ -3199,7 +3294,7 @@ Function 353: ImageDrawText() (6 input parameters) Param[4]: posY (type: int) Param[5]: fontSize (type: int) Param[6]: color (type: Color) -Function 354: ImageDrawTextEx() (7 input parameters) +Function 366: ImageDrawTextEx() (7 input parameters) Name: ImageDrawTextEx Return type: void Description: Draw text (custom sprite font) within an image (destination) @@ -3210,79 +3305,79 @@ Function 354: ImageDrawTextEx() (7 input parameters) Param[5]: fontSize (type: float) Param[6]: spacing (type: float) Param[7]: tint (type: Color) -Function 355: LoadTexture() (1 input parameters) +Function 367: LoadTexture() (1 input parameters) Name: LoadTexture Return type: Texture2D Description: Load texture from file into GPU memory (VRAM) Param[1]: fileName (type: const char *) -Function 356: LoadTextureFromImage() (1 input parameters) +Function 368: LoadTextureFromImage() (1 input parameters) Name: LoadTextureFromImage Return type: Texture2D Description: Load texture from image data Param[1]: image (type: Image) -Function 357: LoadTextureCubemap() (2 input parameters) +Function 369: LoadTextureCubemap() (2 input parameters) Name: LoadTextureCubemap Return type: TextureCubemap Description: Load cubemap from image, multiple image cubemap layouts supported Param[1]: image (type: Image) Param[2]: layout (type: int) -Function 358: LoadRenderTexture() (2 input parameters) +Function 370: LoadRenderTexture() (2 input parameters) Name: LoadRenderTexture Return type: RenderTexture2D Description: Load texture for rendering (framebuffer) Param[1]: width (type: int) Param[2]: height (type: int) -Function 359: IsTextureValid() (1 input parameters) +Function 371: IsTextureValid() (1 input parameters) Name: IsTextureValid Return type: bool Description: Check if a texture is valid (loaded in GPU) Param[1]: texture (type: Texture2D) -Function 360: UnloadTexture() (1 input parameters) +Function 372: UnloadTexture() (1 input parameters) Name: UnloadTexture Return type: void Description: Unload texture from GPU memory (VRAM) Param[1]: texture (type: Texture2D) -Function 361: IsRenderTextureValid() (1 input parameters) +Function 373: IsRenderTextureValid() (1 input parameters) Name: IsRenderTextureValid Return type: bool Description: Check if a render texture is valid (loaded in GPU) Param[1]: target (type: RenderTexture2D) -Function 362: UnloadRenderTexture() (1 input parameters) +Function 374: UnloadRenderTexture() (1 input parameters) Name: UnloadRenderTexture Return type: void Description: Unload render texture from GPU memory (VRAM) Param[1]: target (type: RenderTexture2D) -Function 363: UpdateTexture() (2 input parameters) +Function 375: UpdateTexture() (2 input parameters) Name: UpdateTexture Return type: void Description: Update GPU texture with new data Param[1]: texture (type: Texture2D) Param[2]: pixels (type: const void *) -Function 364: UpdateTextureRec() (3 input parameters) +Function 376: UpdateTextureRec() (3 input parameters) Name: UpdateTextureRec Return type: void Description: Update GPU texture rectangle with new data Param[1]: texture (type: Texture2D) Param[2]: rec (type: Rectangle) Param[3]: pixels (type: const void *) -Function 365: GenTextureMipmaps() (1 input parameters) +Function 377: GenTextureMipmaps() (1 input parameters) Name: GenTextureMipmaps Return type: void Description: Generate GPU mipmaps for a texture Param[1]: texture (type: Texture2D *) -Function 366: SetTextureFilter() (2 input parameters) +Function 378: SetTextureFilter() (2 input parameters) Name: SetTextureFilter Return type: void Description: Set texture scaling filter mode Param[1]: texture (type: Texture2D) Param[2]: filter (type: int) -Function 367: SetTextureWrap() (2 input parameters) +Function 379: SetTextureWrap() (2 input parameters) Name: SetTextureWrap Return type: void Description: Set texture wrapping mode Param[1]: texture (type: Texture2D) Param[2]: wrap (type: int) -Function 368: DrawTexture() (4 input parameters) +Function 380: DrawTexture() (4 input parameters) Name: DrawTexture Return type: void Description: Draw a Texture2D @@ -3290,14 +3385,14 @@ Function 368: DrawTexture() (4 input parameters) Param[2]: posX (type: int) Param[3]: posY (type: int) Param[4]: tint (type: Color) -Function 369: DrawTextureV() (3 input parameters) +Function 381: DrawTextureV() (3 input parameters) Name: DrawTextureV Return type: void Description: Draw a Texture2D with position defined as Vector2 Param[1]: texture (type: Texture2D) Param[2]: position (type: Vector2) Param[3]: tint (type: Color) -Function 370: DrawTextureEx() (5 input parameters) +Function 382: DrawTextureEx() (5 input parameters) Name: DrawTextureEx Return type: void Description: Draw a Texture2D with extended parameters @@ -3306,7 +3401,7 @@ Function 370: DrawTextureEx() (5 input parameters) Param[3]: rotation (type: float) Param[4]: scale (type: float) Param[5]: tint (type: Color) -Function 371: DrawTextureRec() (4 input parameters) +Function 383: DrawTextureRec() (4 input parameters) Name: DrawTextureRec Return type: void Description: Draw a part of a texture defined by a rectangle @@ -3314,7 +3409,7 @@ Function 371: DrawTextureRec() (4 input parameters) Param[2]: source (type: Rectangle) Param[3]: position (type: Vector2) Param[4]: tint (type: Color) -Function 372: DrawTexturePro() (6 input parameters) +Function 384: DrawTexturePro() (6 input parameters) Name: DrawTexturePro Return type: void Description: Draw a part of a texture defined by a rectangle with 'pro' parameters @@ -3324,7 +3419,7 @@ Function 372: DrawTexturePro() (6 input parameters) Param[4]: origin (type: Vector2) Param[5]: rotation (type: float) Param[6]: tint (type: Color) -Function 373: DrawTextureNPatch() (6 input parameters) +Function 385: DrawTextureNPatch() (6 input parameters) Name: DrawTextureNPatch Return type: void Description: Draws a texture (or part of it) that stretches or shrinks nicely @@ -3334,119 +3429,119 @@ Function 373: DrawTextureNPatch() (6 input parameters) Param[4]: origin (type: Vector2) Param[5]: rotation (type: float) Param[6]: tint (type: Color) -Function 374: ColorIsEqual() (2 input parameters) +Function 386: ColorIsEqual() (2 input parameters) Name: ColorIsEqual Return type: bool Description: Check if two colors are equal Param[1]: col1 (type: Color) Param[2]: col2 (type: Color) -Function 375: Fade() (2 input parameters) +Function 387: Fade() (2 input parameters) Name: Fade Return type: Color Description: Get color with alpha applied, alpha goes from 0.0f to 1.0f Param[1]: color (type: Color) Param[2]: alpha (type: float) -Function 376: ColorToInt() (1 input parameters) +Function 388: ColorToInt() (1 input parameters) Name: ColorToInt Return type: int Description: Get hexadecimal value for a Color (0xRRGGBBAA) Param[1]: color (type: Color) -Function 377: ColorNormalize() (1 input parameters) +Function 389: ColorNormalize() (1 input parameters) Name: ColorNormalize Return type: Vector4 Description: Get Color normalized as float [0..1] Param[1]: color (type: Color) -Function 378: ColorFromNormalized() (1 input parameters) +Function 390: ColorFromNormalized() (1 input parameters) Name: ColorFromNormalized Return type: Color Description: Get Color from normalized values [0..1] Param[1]: normalized (type: Vector4) -Function 379: ColorToHSV() (1 input parameters) +Function 391: ColorToHSV() (1 input parameters) Name: ColorToHSV Return type: Vector3 Description: Get HSV values for a Color, hue [0..360], saturation/value [0..1] Param[1]: color (type: Color) -Function 380: ColorFromHSV() (3 input parameters) +Function 392: ColorFromHSV() (3 input parameters) Name: ColorFromHSV Return type: Color Description: Get a Color from HSV values, hue [0..360], saturation/value [0..1] Param[1]: hue (type: float) Param[2]: saturation (type: float) Param[3]: value (type: float) -Function 381: ColorTint() (2 input parameters) +Function 393: ColorTint() (2 input parameters) Name: ColorTint Return type: Color Description: Get color multiplied with another color Param[1]: color (type: Color) Param[2]: tint (type: Color) -Function 382: ColorBrightness() (2 input parameters) +Function 394: ColorBrightness() (2 input parameters) Name: ColorBrightness Return type: Color Description: Get color with brightness correction, brightness factor goes from -1.0f to 1.0f Param[1]: color (type: Color) Param[2]: factor (type: float) -Function 383: ColorContrast() (2 input parameters) +Function 395: ColorContrast() (2 input parameters) Name: ColorContrast Return type: Color Description: Get color with contrast correction, contrast values between -1.0f and 1.0f Param[1]: color (type: Color) Param[2]: contrast (type: float) -Function 384: ColorAlpha() (2 input parameters) +Function 396: ColorAlpha() (2 input parameters) Name: ColorAlpha Return type: Color Description: Get color with alpha applied, alpha goes from 0.0f to 1.0f Param[1]: color (type: Color) Param[2]: alpha (type: float) -Function 385: ColorAlphaBlend() (3 input parameters) +Function 397: ColorAlphaBlend() (3 input parameters) Name: ColorAlphaBlend Return type: Color Description: Get src alpha-blended into dst color with tint Param[1]: dst (type: Color) Param[2]: src (type: Color) Param[3]: tint (type: Color) -Function 386: ColorLerp() (3 input parameters) +Function 398: ColorLerp() (3 input parameters) Name: ColorLerp Return type: Color Description: Get color lerp interpolation between two colors, factor [0.0f..1.0f] Param[1]: color1 (type: Color) Param[2]: color2 (type: Color) Param[3]: factor (type: float) -Function 387: GetColor() (1 input parameters) +Function 399: GetColor() (1 input parameters) Name: GetColor Return type: Color Description: Get Color structure from hexadecimal value Param[1]: hexValue (type: unsigned int) -Function 388: GetPixelColor() (2 input parameters) +Function 400: GetPixelColor() (2 input parameters) Name: GetPixelColor Return type: Color Description: Get Color from a source pixel pointer of certain format Param[1]: srcPtr (type: void *) Param[2]: format (type: int) -Function 389: SetPixelColor() (3 input parameters) +Function 401: SetPixelColor() (3 input parameters) Name: SetPixelColor Return type: void Description: Set color formatted into destination pixel pointer Param[1]: dstPtr (type: void *) Param[2]: color (type: Color) Param[3]: format (type: int) -Function 390: GetPixelDataSize() (3 input parameters) +Function 402: GetPixelDataSize() (3 input parameters) Name: GetPixelDataSize Return type: int Description: Get pixel data size in bytes for certain format Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: format (type: int) -Function 391: GetFontDefault() (0 input parameters) +Function 403: GetFontDefault() (0 input parameters) Name: GetFontDefault Return type: Font Description: Get the default Font No input parameters -Function 392: LoadFont() (1 input parameters) +Function 404: LoadFont() (1 input parameters) Name: LoadFont Return type: Font Description: Load font from file into GPU memory (VRAM) Param[1]: fileName (type: const char *) -Function 393: LoadFontEx() (4 input parameters) +Function 405: LoadFontEx() (4 input parameters) Name: LoadFontEx Return type: Font Description: Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character set, font size is provided in pixels height @@ -3454,14 +3549,14 @@ Function 393: LoadFontEx() (4 input parameters) Param[2]: fontSize (type: int) Param[3]: codepoints (type: int *) Param[4]: codepointCount (type: int) -Function 394: LoadFontFromImage() (3 input parameters) +Function 406: LoadFontFromImage() (3 input parameters) Name: LoadFontFromImage Return type: Font Description: Load font from Image (XNA style) Param[1]: image (type: Image) Param[2]: key (type: Color) Param[3]: firstChar (type: int) -Function 395: LoadFontFromMemory() (6 input parameters) +Function 407: LoadFontFromMemory() (6 input parameters) Name: LoadFontFromMemory Return type: Font Description: Load font from memory buffer, fileType refers to extension: i.e. '.ttf' @@ -3471,12 +3566,12 @@ Function 395: LoadFontFromMemory() (6 input parameters) Param[4]: fontSize (type: int) Param[5]: codepoints (type: int *) Param[6]: codepointCount (type: int) -Function 396: IsFontValid() (1 input parameters) +Function 408: IsFontValid() (1 input parameters) Name: IsFontValid Return type: bool Description: Check if a font is valid (font data loaded, WARNING: GPU texture not checked) Param[1]: font (type: Font) -Function 397: LoadFontData() (6 input parameters) +Function 409: LoadFontData() (6 input parameters) Name: LoadFontData Return type: GlyphInfo * Description: Load font data for further use @@ -3486,7 +3581,7 @@ Function 397: LoadFontData() (6 input parameters) Param[4]: codepoints (type: int *) Param[5]: codepointCount (type: int) Param[6]: type (type: int) -Function 398: GenImageFontAtlas() (6 input parameters) +Function 410: GenImageFontAtlas() (6 input parameters) Name: GenImageFontAtlas Return type: Image Description: Generate image font atlas using chars info @@ -3496,30 +3591,30 @@ Function 398: GenImageFontAtlas() (6 input parameters) Param[4]: fontSize (type: int) Param[5]: padding (type: int) Param[6]: packMethod (type: int) -Function 399: UnloadFontData() (2 input parameters) +Function 411: UnloadFontData() (2 input parameters) Name: UnloadFontData Return type: void Description: Unload font chars info data (RAM) Param[1]: glyphs (type: GlyphInfo *) Param[2]: glyphCount (type: int) -Function 400: UnloadFont() (1 input parameters) +Function 412: UnloadFont() (1 input parameters) Name: UnloadFont Return type: void Description: Unload font from GPU memory (VRAM) Param[1]: font (type: Font) -Function 401: ExportFontAsCode() (2 input parameters) +Function 413: ExportFontAsCode() (2 input parameters) Name: ExportFontAsCode Return type: bool Description: Export font as code file, returns true on success Param[1]: font (type: Font) Param[2]: fileName (type: const char *) -Function 402: DrawFPS() (2 input parameters) +Function 414: DrawFPS() (2 input parameters) Name: DrawFPS Return type: void Description: Draw current FPS Param[1]: posX (type: int) Param[2]: posY (type: int) -Function 403: DrawText() (5 input parameters) +Function 415: DrawText() (5 input parameters) Name: DrawText Return type: void Description: Draw text (using default font) @@ -3528,7 +3623,7 @@ Function 403: DrawText() (5 input parameters) Param[3]: posY (type: int) Param[4]: fontSize (type: int) Param[5]: color (type: Color) -Function 404: DrawTextEx() (6 input parameters) +Function 416: DrawTextEx() (6 input parameters) Name: DrawTextEx Return type: void Description: Draw text using font and additional parameters @@ -3538,7 +3633,7 @@ Function 404: DrawTextEx() (6 input parameters) Param[4]: fontSize (type: float) Param[5]: spacing (type: float) Param[6]: tint (type: Color) -Function 405: DrawTextPro() (8 input parameters) +Function 417: DrawTextPro() (8 input parameters) Name: DrawTextPro Return type: void Description: Draw text using Font and pro parameters (rotation) @@ -3550,7 +3645,7 @@ Function 405: DrawTextPro() (8 input parameters) Param[6]: fontSize (type: float) Param[7]: spacing (type: float) Param[8]: tint (type: Color) -Function 406: DrawTextCodepoint() (5 input parameters) +Function 418: DrawTextCodepoint() (5 input parameters) Name: DrawTextCodepoint Return type: void Description: Draw one character (codepoint) @@ -3559,7 +3654,7 @@ Function 406: DrawTextCodepoint() (5 input parameters) Param[3]: position (type: Vector2) Param[4]: fontSize (type: float) Param[5]: tint (type: Color) -Function 407: DrawTextCodepoints() (7 input parameters) +Function 419: DrawTextCodepoints() (7 input parameters) Name: DrawTextCodepoints Return type: void Description: Draw multiple character (codepoint) @@ -3570,18 +3665,18 @@ Function 407: DrawTextCodepoints() (7 input parameters) Param[5]: fontSize (type: float) Param[6]: spacing (type: float) Param[7]: tint (type: Color) -Function 408: SetTextLineSpacing() (1 input parameters) +Function 420: SetTextLineSpacing() (1 input parameters) Name: SetTextLineSpacing Return type: void Description: Set vertical line spacing when drawing with line-breaks Param[1]: spacing (type: int) -Function 409: MeasureText() (2 input parameters) +Function 421: MeasureText() (2 input parameters) Name: MeasureText Return type: int Description: Measure string width for default font Param[1]: text (type: const char *) Param[2]: fontSize (type: int) -Function 410: MeasureTextEx() (4 input parameters) +Function 422: MeasureTextEx() (4 input parameters) Name: MeasureTextEx Return type: Vector2 Description: Measure string size for Font @@ -3589,195 +3684,195 @@ Function 410: MeasureTextEx() (4 input parameters) Param[2]: text (type: const char *) Param[3]: fontSize (type: float) Param[4]: spacing (type: float) -Function 411: GetGlyphIndex() (2 input parameters) +Function 423: GetGlyphIndex() (2 input parameters) Name: GetGlyphIndex Return type: int Description: Get glyph index position in font for a codepoint (unicode character), fallback to '?' if not found Param[1]: font (type: Font) Param[2]: codepoint (type: int) -Function 412: GetGlyphInfo() (2 input parameters) +Function 424: GetGlyphInfo() (2 input parameters) Name: GetGlyphInfo Return type: GlyphInfo Description: Get glyph font info data for a codepoint (unicode character), fallback to '?' if not found Param[1]: font (type: Font) Param[2]: codepoint (type: int) -Function 413: GetGlyphAtlasRec() (2 input parameters) +Function 425: GetGlyphAtlasRec() (2 input parameters) Name: GetGlyphAtlasRec Return type: Rectangle Description: Get glyph rectangle in font atlas for a codepoint (unicode character), fallback to '?' if not found Param[1]: font (type: Font) Param[2]: codepoint (type: int) -Function 414: LoadUTF8() (2 input parameters) +Function 426: LoadUTF8() (2 input parameters) Name: LoadUTF8 Return type: char * Description: Load UTF-8 text encoded from codepoints array Param[1]: codepoints (type: const int *) Param[2]: length (type: int) -Function 415: UnloadUTF8() (1 input parameters) +Function 427: UnloadUTF8() (1 input parameters) Name: UnloadUTF8 Return type: void Description: Unload UTF-8 text encoded from codepoints array Param[1]: text (type: char *) -Function 416: LoadCodepoints() (2 input parameters) +Function 428: LoadCodepoints() (2 input parameters) Name: LoadCodepoints Return type: int * Description: Load all codepoints from a UTF-8 text string, codepoints count returned by parameter Param[1]: text (type: const char *) Param[2]: count (type: int *) -Function 417: UnloadCodepoints() (1 input parameters) +Function 429: UnloadCodepoints() (1 input parameters) Name: UnloadCodepoints Return type: void Description: Unload codepoints data from memory Param[1]: codepoints (type: int *) -Function 418: GetCodepointCount() (1 input parameters) +Function 430: GetCodepointCount() (1 input parameters) Name: GetCodepointCount Return type: int Description: Get total number of codepoints in a UTF-8 encoded string Param[1]: text (type: const char *) -Function 419: GetCodepoint() (2 input parameters) +Function 431: GetCodepoint() (2 input parameters) Name: GetCodepoint Return type: int Description: Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure Param[1]: text (type: const char *) Param[2]: codepointSize (type: int *) -Function 420: GetCodepointNext() (2 input parameters) +Function 432: GetCodepointNext() (2 input parameters) Name: GetCodepointNext Return type: int Description: Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure Param[1]: text (type: const char *) Param[2]: codepointSize (type: int *) -Function 421: GetCodepointPrevious() (2 input parameters) +Function 433: GetCodepointPrevious() (2 input parameters) Name: GetCodepointPrevious Return type: int Description: Get previous codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure Param[1]: text (type: const char *) Param[2]: codepointSize (type: int *) -Function 422: CodepointToUTF8() (2 input parameters) +Function 434: CodepointToUTF8() (2 input parameters) Name: CodepointToUTF8 Return type: const char * Description: Encode one codepoint into UTF-8 byte array (array length returned as parameter) Param[1]: codepoint (type: int) Param[2]: utf8Size (type: int *) -Function 423: TextCopy() (2 input parameters) +Function 435: TextCopy() (2 input parameters) Name: TextCopy Return type: int Description: Copy one string to another, returns bytes copied Param[1]: dst (type: char *) Param[2]: src (type: const char *) -Function 424: TextIsEqual() (2 input parameters) +Function 436: TextIsEqual() (2 input parameters) Name: TextIsEqual Return type: bool Description: Check if two text string are equal Param[1]: text1 (type: const char *) Param[2]: text2 (type: const char *) -Function 425: TextLength() (1 input parameters) +Function 437: TextLength() (1 input parameters) Name: TextLength Return type: unsigned int Description: Get text length, checks for '\0' ending Param[1]: text (type: const char *) -Function 426: TextFormat() (2 input parameters) +Function 438: TextFormat() (2 input parameters) Name: TextFormat Return type: const char * Description: Text formatting with variables (sprintf() style) Param[1]: text (type: const char *) Param[2]: args (type: ...) -Function 427: TextSubtext() (3 input parameters) +Function 439: TextSubtext() (3 input parameters) Name: TextSubtext Return type: const char * Description: Get a piece of a text string Param[1]: text (type: const char *) Param[2]: position (type: int) Param[3]: length (type: int) -Function 428: TextReplace() (3 input parameters) +Function 440: TextReplace() (3 input parameters) Name: TextReplace Return type: char * Description: Replace text string (WARNING: memory must be freed!) Param[1]: text (type: const char *) Param[2]: replace (type: const char *) Param[3]: by (type: const char *) -Function 429: TextInsert() (3 input parameters) +Function 441: TextInsert() (3 input parameters) Name: TextInsert Return type: char * Description: Insert text in a position (WARNING: memory must be freed!) Param[1]: text (type: const char *) Param[2]: insert (type: const char *) Param[3]: position (type: int) -Function 430: TextJoin() (3 input parameters) +Function 442: TextJoin() (3 input parameters) Name: TextJoin Return type: char * Description: Join text strings with delimiter Param[1]: textList (type: char **) Param[2]: count (type: int) Param[3]: delimiter (type: const char *) -Function 431: TextSplit() (3 input parameters) +Function 443: TextSplit() (3 input parameters) Name: TextSplit Return type: char ** Description: Split text into multiple strings Param[1]: text (type: const char *) Param[2]: delimiter (type: char) Param[3]: count (type: int *) -Function 432: TextAppend() (3 input parameters) +Function 444: TextAppend() (3 input parameters) Name: TextAppend Return type: void Description: Append text at specific position and move cursor! Param[1]: text (type: char *) Param[2]: append (type: const char *) Param[3]: position (type: int *) -Function 433: TextFindIndex() (2 input parameters) +Function 445: TextFindIndex() (2 input parameters) Name: TextFindIndex Return type: int Description: Find first text occurrence within a string Param[1]: text (type: const char *) Param[2]: find (type: const char *) -Function 434: TextToUpper() (1 input parameters) +Function 446: TextToUpper() (1 input parameters) Name: TextToUpper Return type: char * Description: Get upper case version of provided string Param[1]: text (type: const char *) -Function 435: TextToLower() (1 input parameters) +Function 447: TextToLower() (1 input parameters) Name: TextToLower Return type: char * Description: Get lower case version of provided string Param[1]: text (type: const char *) -Function 436: TextToPascal() (1 input parameters) +Function 448: TextToPascal() (1 input parameters) Name: TextToPascal Return type: char * Description: Get Pascal case notation version of provided string Param[1]: text (type: const char *) -Function 437: TextToSnake() (1 input parameters) +Function 449: TextToSnake() (1 input parameters) Name: TextToSnake Return type: char * Description: Get Snake case notation version of provided string Param[1]: text (type: const char *) -Function 438: TextToCamel() (1 input parameters) +Function 450: TextToCamel() (1 input parameters) Name: TextToCamel Return type: char * Description: Get Camel case notation version of provided string Param[1]: text (type: const char *) -Function 439: TextToInteger() (1 input parameters) +Function 451: TextToInteger() (1 input parameters) Name: TextToInteger Return type: int Description: Get integer value from text Param[1]: text (type: const char *) -Function 440: TextToFloat() (1 input parameters) +Function 452: TextToFloat() (1 input parameters) Name: TextToFloat Return type: float Description: Get float value from text Param[1]: text (type: const char *) -Function 441: DrawLine3D() (3 input parameters) +Function 453: DrawLine3D() (3 input parameters) Name: DrawLine3D Return type: void Description: Draw a line in 3D world space Param[1]: startPos (type: Vector3) Param[2]: endPos (type: Vector3) Param[3]: color (type: Color) -Function 442: DrawPoint3D() (2 input parameters) +Function 454: DrawPoint3D() (2 input parameters) Name: DrawPoint3D Return type: void Description: Draw a point in 3D space, actually a small line Param[1]: position (type: Vector3) Param[2]: color (type: Color) -Function 443: DrawCircle3D() (5 input parameters) +Function 455: DrawCircle3D() (5 input parameters) Name: DrawCircle3D Return type: void Description: Draw a circle in 3D world space @@ -3786,7 +3881,7 @@ Function 443: DrawCircle3D() (5 input parameters) Param[3]: rotationAxis (type: Vector3) Param[4]: rotationAngle (type: float) Param[5]: color (type: Color) -Function 444: DrawTriangle3D() (4 input parameters) +Function 456: DrawTriangle3D() (4 input parameters) Name: DrawTriangle3D Return type: void Description: Draw a color-filled triangle (vertex in counter-clockwise order!) @@ -3794,14 +3889,14 @@ Function 444: DrawTriangle3D() (4 input parameters) Param[2]: v2 (type: Vector3) Param[3]: v3 (type: Vector3) Param[4]: color (type: Color) -Function 445: DrawTriangleStrip3D() (3 input parameters) +Function 457: DrawTriangleStrip3D() (3 input parameters) Name: DrawTriangleStrip3D Return type: void Description: Draw a triangle strip defined by points Param[1]: points (type: const Vector3 *) Param[2]: pointCount (type: int) Param[3]: color (type: Color) -Function 446: DrawCube() (5 input parameters) +Function 458: DrawCube() (5 input parameters) Name: DrawCube Return type: void Description: Draw cube @@ -3810,14 +3905,14 @@ Function 446: DrawCube() (5 input parameters) Param[3]: height (type: float) Param[4]: length (type: float) Param[5]: color (type: Color) -Function 447: DrawCubeV() (3 input parameters) +Function 459: DrawCubeV() (3 input parameters) Name: DrawCubeV Return type: void Description: Draw cube (Vector version) Param[1]: position (type: Vector3) Param[2]: size (type: Vector3) Param[3]: color (type: Color) -Function 448: DrawCubeWires() (5 input parameters) +Function 460: DrawCubeWires() (5 input parameters) Name: DrawCubeWires Return type: void Description: Draw cube wires @@ -3826,21 +3921,21 @@ Function 448: DrawCubeWires() (5 input parameters) Param[3]: height (type: float) Param[4]: length (type: float) Param[5]: color (type: Color) -Function 449: DrawCubeWiresV() (3 input parameters) +Function 461: DrawCubeWiresV() (3 input parameters) Name: DrawCubeWiresV Return type: void Description: Draw cube wires (Vector version) Param[1]: position (type: Vector3) Param[2]: size (type: Vector3) Param[3]: color (type: Color) -Function 450: DrawSphere() (3 input parameters) +Function 462: DrawSphere() (3 input parameters) Name: DrawSphere Return type: void Description: Draw sphere Param[1]: centerPos (type: Vector3) Param[2]: radius (type: float) Param[3]: color (type: Color) -Function 451: DrawSphereEx() (5 input parameters) +Function 463: DrawSphereEx() (5 input parameters) Name: DrawSphereEx Return type: void Description: Draw sphere with extended parameters @@ -3849,7 +3944,7 @@ Function 451: DrawSphereEx() (5 input parameters) Param[3]: rings (type: int) Param[4]: slices (type: int) Param[5]: color (type: Color) -Function 452: DrawSphereWires() (5 input parameters) +Function 464: DrawSphereWires() (5 input parameters) Name: DrawSphereWires Return type: void Description: Draw sphere wires @@ -3858,7 +3953,7 @@ Function 452: DrawSphereWires() (5 input parameters) Param[3]: rings (type: int) Param[4]: slices (type: int) Param[5]: color (type: Color) -Function 453: DrawCylinder() (6 input parameters) +Function 465: DrawCylinder() (6 input parameters) Name: DrawCylinder Return type: void Description: Draw a cylinder/cone @@ -3868,7 +3963,7 @@ Function 453: DrawCylinder() (6 input parameters) Param[4]: height (type: float) Param[5]: slices (type: int) Param[6]: color (type: Color) -Function 454: DrawCylinderEx() (6 input parameters) +Function 466: DrawCylinderEx() (6 input parameters) Name: DrawCylinderEx Return type: void Description: Draw a cylinder with base at startPos and top at endPos @@ -3878,7 +3973,7 @@ Function 454: DrawCylinderEx() (6 input parameters) Param[4]: endRadius (type: float) Param[5]: sides (type: int) Param[6]: color (type: Color) -Function 455: DrawCylinderWires() (6 input parameters) +Function 467: DrawCylinderWires() (6 input parameters) Name: DrawCylinderWires Return type: void Description: Draw a cylinder/cone wires @@ -3888,7 +3983,7 @@ Function 455: DrawCylinderWires() (6 input parameters) Param[4]: height (type: float) Param[5]: slices (type: int) Param[6]: color (type: Color) -Function 456: DrawCylinderWiresEx() (6 input parameters) +Function 468: DrawCylinderWiresEx() (6 input parameters) Name: DrawCylinderWiresEx Return type: void Description: Draw a cylinder wires with base at startPos and top at endPos @@ -3898,7 +3993,7 @@ Function 456: DrawCylinderWiresEx() (6 input parameters) Param[4]: endRadius (type: float) Param[5]: sides (type: int) Param[6]: color (type: Color) -Function 457: DrawCapsule() (6 input parameters) +Function 469: DrawCapsule() (6 input parameters) Name: DrawCapsule Return type: void Description: Draw a capsule with the center of its sphere caps at startPos and endPos @@ -3908,7 +4003,7 @@ Function 457: DrawCapsule() (6 input parameters) Param[4]: slices (type: int) Param[5]: rings (type: int) Param[6]: color (type: Color) -Function 458: DrawCapsuleWires() (6 input parameters) +Function 470: DrawCapsuleWires() (6 input parameters) Name: DrawCapsuleWires Return type: void Description: Draw capsule wireframe with the center of its sphere caps at startPos and endPos @@ -3918,51 +4013,51 @@ Function 458: DrawCapsuleWires() (6 input parameters) Param[4]: slices (type: int) Param[5]: rings (type: int) Param[6]: color (type: Color) -Function 459: DrawPlane() (3 input parameters) +Function 471: DrawPlane() (3 input parameters) Name: DrawPlane Return type: void Description: Draw a plane XZ Param[1]: centerPos (type: Vector3) Param[2]: size (type: Vector2) Param[3]: color (type: Color) -Function 460: DrawRay() (2 input parameters) +Function 472: DrawRay() (2 input parameters) Name: DrawRay Return type: void Description: Draw a ray line Param[1]: ray (type: Ray) Param[2]: color (type: Color) -Function 461: DrawGrid() (2 input parameters) +Function 473: DrawGrid() (2 input parameters) Name: DrawGrid Return type: void Description: Draw a grid (centered at (0, 0, 0)) Param[1]: slices (type: int) Param[2]: spacing (type: float) -Function 462: LoadModel() (1 input parameters) +Function 474: LoadModel() (1 input parameters) Name: LoadModel Return type: Model Description: Load model from files (meshes and materials) Param[1]: fileName (type: const char *) -Function 463: LoadModelFromMesh() (1 input parameters) +Function 475: LoadModelFromMesh() (1 input parameters) Name: LoadModelFromMesh Return type: Model Description: Load model from generated mesh (default material) Param[1]: mesh (type: Mesh) -Function 464: IsModelValid() (1 input parameters) +Function 476: IsModelValid() (1 input parameters) Name: IsModelValid Return type: bool Description: Check if a model is valid (loaded in GPU, VAO/VBOs) Param[1]: model (type: Model) -Function 465: UnloadModel() (1 input parameters) +Function 477: UnloadModel() (1 input parameters) Name: UnloadModel Return type: void Description: Unload model (including meshes) from memory (RAM and/or VRAM) Param[1]: model (type: Model) -Function 466: GetModelBoundingBox() (1 input parameters) +Function 478: GetModelBoundingBox() (1 input parameters) Name: GetModelBoundingBox Return type: BoundingBox Description: Compute model bounding box limits (considers all meshes) Param[1]: model (type: Model) -Function 467: DrawModel() (4 input parameters) +Function 479: DrawModel() (4 input parameters) Name: DrawModel Return type: void Description: Draw a model (with texture if set) @@ -3970,7 +4065,7 @@ Function 467: DrawModel() (4 input parameters) Param[2]: position (type: Vector3) Param[3]: scale (type: float) Param[4]: tint (type: Color) -Function 468: DrawModelEx() (6 input parameters) +Function 480: DrawModelEx() (6 input parameters) Name: DrawModelEx Return type: void Description: Draw a model with extended parameters @@ -3980,7 +4075,7 @@ Function 468: DrawModelEx() (6 input parameters) Param[4]: rotationAngle (type: float) Param[5]: scale (type: Vector3) Param[6]: tint (type: Color) -Function 469: DrawModelWires() (4 input parameters) +Function 481: DrawModelWires() (4 input parameters) Name: DrawModelWires Return type: void Description: Draw a model wires (with texture if set) @@ -3988,7 +4083,7 @@ Function 469: DrawModelWires() (4 input parameters) Param[2]: position (type: Vector3) Param[3]: scale (type: float) Param[4]: tint (type: Color) -Function 470: DrawModelWiresEx() (6 input parameters) +Function 482: DrawModelWiresEx() (6 input parameters) Name: DrawModelWiresEx Return type: void Description: Draw a model wires (with texture if set) with extended parameters @@ -3998,7 +4093,7 @@ Function 470: DrawModelWiresEx() (6 input parameters) Param[4]: rotationAngle (type: float) Param[5]: scale (type: Vector3) Param[6]: tint (type: Color) -Function 471: DrawModelPoints() (4 input parameters) +Function 483: DrawModelPoints() (4 input parameters) Name: DrawModelPoints Return type: void Description: Draw a model as points @@ -4006,7 +4101,7 @@ Function 471: DrawModelPoints() (4 input parameters) Param[2]: position (type: Vector3) Param[3]: scale (type: float) Param[4]: tint (type: Color) -Function 472: DrawModelPointsEx() (6 input parameters) +Function 484: DrawModelPointsEx() (6 input parameters) Name: DrawModelPointsEx Return type: void Description: Draw a model as points with extended parameters @@ -4016,13 +4111,13 @@ Function 472: DrawModelPointsEx() (6 input parameters) Param[4]: rotationAngle (type: float) Param[5]: scale (type: Vector3) Param[6]: tint (type: Color) -Function 473: DrawBoundingBox() (2 input parameters) +Function 485: DrawBoundingBox() (2 input parameters) Name: DrawBoundingBox Return type: void Description: Draw bounding box (wires) Param[1]: box (type: BoundingBox) Param[2]: color (type: Color) -Function 474: DrawBillboard() (5 input parameters) +Function 486: DrawBillboard() (5 input parameters) Name: DrawBillboard Return type: void Description: Draw a billboard texture @@ -4031,7 +4126,7 @@ Function 474: DrawBillboard() (5 input parameters) Param[3]: position (type: Vector3) Param[4]: scale (type: float) Param[5]: tint (type: Color) -Function 475: DrawBillboardRec() (6 input parameters) +Function 487: DrawBillboardRec() (6 input parameters) Name: DrawBillboardRec Return type: void Description: Draw a billboard texture defined by source @@ -4041,7 +4136,7 @@ Function 475: DrawBillboardRec() (6 input parameters) Param[4]: position (type: Vector3) Param[5]: size (type: Vector2) Param[6]: tint (type: Color) -Function 476: DrawBillboardPro() (9 input parameters) +Function 488: DrawBillboardPro() (9 input parameters) Name: DrawBillboardPro Return type: void Description: Draw a billboard texture defined by source and rotation @@ -4054,13 +4149,13 @@ Function 476: DrawBillboardPro() (9 input parameters) Param[7]: origin (type: Vector2) Param[8]: rotation (type: float) Param[9]: tint (type: Color) -Function 477: UploadMesh() (2 input parameters) +Function 489: UploadMesh() (2 input parameters) Name: UploadMesh Return type: void Description: Upload mesh vertex data in GPU and provide VAO/VBO ids Param[1]: mesh (type: Mesh *) Param[2]: dynamic (type: bool) -Function 478: UpdateMeshBuffer() (5 input parameters) +Function 490: UpdateMeshBuffer() (5 input parameters) Name: UpdateMeshBuffer Return type: void Description: Update mesh vertex data in GPU for a specific buffer index @@ -4069,19 +4164,19 @@ Function 478: UpdateMeshBuffer() (5 input parameters) Param[3]: data (type: const void *) Param[4]: dataSize (type: int) Param[5]: offset (type: int) -Function 479: UnloadMesh() (1 input parameters) +Function 491: UnloadMesh() (1 input parameters) Name: UnloadMesh Return type: void Description: Unload mesh data from CPU and GPU Param[1]: mesh (type: Mesh) -Function 480: DrawMesh() (3 input parameters) +Function 492: DrawMesh() (3 input parameters) Name: DrawMesh Return type: void Description: Draw a 3d mesh with material and transform Param[1]: mesh (type: Mesh) Param[2]: material (type: Material) Param[3]: transform (type: Matrix) -Function 481: DrawMeshInstanced() (4 input parameters) +Function 493: DrawMeshInstanced() (4 input parameters) Name: DrawMeshInstanced Return type: void Description: Draw multiple mesh instances with material and different transforms @@ -4089,35 +4184,35 @@ Function 481: DrawMeshInstanced() (4 input parameters) Param[2]: material (type: Material) Param[3]: transforms (type: const Matrix *) Param[4]: instances (type: int) -Function 482: GetMeshBoundingBox() (1 input parameters) +Function 494: GetMeshBoundingBox() (1 input parameters) Name: GetMeshBoundingBox Return type: BoundingBox Description: Compute mesh bounding box limits Param[1]: mesh (type: Mesh) -Function 483: GenMeshTangents() (1 input parameters) +Function 495: GenMeshTangents() (1 input parameters) Name: GenMeshTangents Return type: void Description: Compute mesh tangents Param[1]: mesh (type: Mesh *) -Function 484: ExportMesh() (2 input parameters) +Function 496: ExportMesh() (2 input parameters) Name: ExportMesh Return type: bool Description: Export mesh data to file, returns true on success Param[1]: mesh (type: Mesh) Param[2]: fileName (type: const char *) -Function 485: ExportMeshAsCode() (2 input parameters) +Function 497: ExportMeshAsCode() (2 input parameters) Name: ExportMeshAsCode Return type: bool Description: Export mesh as code file (.h) defining multiple arrays of vertex attributes Param[1]: mesh (type: Mesh) Param[2]: fileName (type: const char *) -Function 486: GenMeshPoly() (2 input parameters) +Function 498: GenMeshPoly() (2 input parameters) Name: GenMeshPoly Return type: Mesh Description: Generate polygonal mesh Param[1]: sides (type: int) Param[2]: radius (type: float) -Function 487: GenMeshPlane() (4 input parameters) +Function 499: GenMeshPlane() (4 input parameters) Name: GenMeshPlane Return type: Mesh Description: Generate plane mesh (with subdivisions) @@ -4125,42 +4220,42 @@ Function 487: GenMeshPlane() (4 input parameters) Param[2]: length (type: float) Param[3]: resX (type: int) Param[4]: resZ (type: int) -Function 488: GenMeshCube() (3 input parameters) +Function 500: GenMeshCube() (3 input parameters) Name: GenMeshCube Return type: Mesh Description: Generate cuboid mesh Param[1]: width (type: float) Param[2]: height (type: float) Param[3]: length (type: float) -Function 489: GenMeshSphere() (3 input parameters) +Function 501: GenMeshSphere() (3 input parameters) Name: GenMeshSphere Return type: Mesh Description: Generate sphere mesh (standard sphere) Param[1]: radius (type: float) Param[2]: rings (type: int) Param[3]: slices (type: int) -Function 490: GenMeshHemiSphere() (3 input parameters) +Function 502: GenMeshHemiSphere() (3 input parameters) Name: GenMeshHemiSphere Return type: Mesh Description: Generate half-sphere mesh (no bottom cap) Param[1]: radius (type: float) Param[2]: rings (type: int) Param[3]: slices (type: int) -Function 491: GenMeshCylinder() (3 input parameters) +Function 503: GenMeshCylinder() (3 input parameters) Name: GenMeshCylinder Return type: Mesh Description: Generate cylinder mesh Param[1]: radius (type: float) Param[2]: height (type: float) Param[3]: slices (type: int) -Function 492: GenMeshCone() (3 input parameters) +Function 504: GenMeshCone() (3 input parameters) Name: GenMeshCone Return type: Mesh Description: Generate cone/pyramid mesh Param[1]: radius (type: float) Param[2]: height (type: float) Param[3]: slices (type: int) -Function 493: GenMeshTorus() (4 input parameters) +Function 505: GenMeshTorus() (4 input parameters) Name: GenMeshTorus Return type: Mesh Description: Generate torus mesh @@ -4168,7 +4263,7 @@ Function 493: GenMeshTorus() (4 input parameters) Param[2]: size (type: float) Param[3]: radSeg (type: int) Param[4]: sides (type: int) -Function 494: GenMeshKnot() (4 input parameters) +Function 506: GenMeshKnot() (4 input parameters) Name: GenMeshKnot Return type: Mesh Description: Generate trefoil knot mesh @@ -4176,91 +4271,91 @@ Function 494: GenMeshKnot() (4 input parameters) Param[2]: size (type: float) Param[3]: radSeg (type: int) Param[4]: sides (type: int) -Function 495: GenMeshHeightmap() (2 input parameters) +Function 507: GenMeshHeightmap() (2 input parameters) Name: GenMeshHeightmap Return type: Mesh Description: Generate heightmap mesh from image data Param[1]: heightmap (type: Image) Param[2]: size (type: Vector3) -Function 496: GenMeshCubicmap() (2 input parameters) +Function 508: GenMeshCubicmap() (2 input parameters) Name: GenMeshCubicmap Return type: Mesh Description: Generate cubes-based map mesh from image data Param[1]: cubicmap (type: Image) Param[2]: cubeSize (type: Vector3) -Function 497: LoadMaterials() (2 input parameters) +Function 509: LoadMaterials() (2 input parameters) Name: LoadMaterials Return type: Material * Description: Load materials from model file Param[1]: fileName (type: const char *) Param[2]: materialCount (type: int *) -Function 498: LoadMaterialDefault() (0 input parameters) +Function 510: LoadMaterialDefault() (0 input parameters) Name: LoadMaterialDefault Return type: Material Description: Load default material (Supports: DIFFUSE, SPECULAR, NORMAL maps) No input parameters -Function 499: IsMaterialValid() (1 input parameters) +Function 511: IsMaterialValid() (1 input parameters) Name: IsMaterialValid Return type: bool Description: Check if a material is valid (shader assigned, map textures loaded in GPU) Param[1]: material (type: Material) -Function 500: UnloadMaterial() (1 input parameters) +Function 512: UnloadMaterial() (1 input parameters) Name: UnloadMaterial Return type: void Description: Unload material from GPU memory (VRAM) Param[1]: material (type: Material) -Function 501: SetMaterialTexture() (3 input parameters) +Function 513: SetMaterialTexture() (3 input parameters) Name: SetMaterialTexture Return type: void Description: Set texture for a material map type (MATERIAL_MAP_DIFFUSE, MATERIAL_MAP_SPECULAR...) Param[1]: material (type: Material *) Param[2]: mapType (type: int) Param[3]: texture (type: Texture2D) -Function 502: SetModelMeshMaterial() (3 input parameters) +Function 514: SetModelMeshMaterial() (3 input parameters) Name: SetModelMeshMaterial Return type: void Description: Set material for a mesh Param[1]: model (type: Model *) Param[2]: meshId (type: int) Param[3]: materialId (type: int) -Function 503: LoadModelAnimations() (2 input parameters) +Function 515: LoadModelAnimations() (2 input parameters) Name: LoadModelAnimations Return type: ModelAnimation * Description: Load model animations from file Param[1]: fileName (type: const char *) Param[2]: animCount (type: int *) -Function 504: UpdateModelAnimation() (3 input parameters) +Function 516: UpdateModelAnimation() (3 input parameters) Name: UpdateModelAnimation Return type: void Description: Update model animation pose (CPU) Param[1]: model (type: Model) Param[2]: anim (type: ModelAnimation) Param[3]: frame (type: int) -Function 505: UpdateModelAnimationBones() (3 input parameters) +Function 517: UpdateModelAnimationBones() (3 input parameters) Name: UpdateModelAnimationBones Return type: void Description: Update model animation mesh bone matrices (GPU skinning) Param[1]: model (type: Model) Param[2]: anim (type: ModelAnimation) Param[3]: frame (type: int) -Function 506: UnloadModelAnimation() (1 input parameters) +Function 518: UnloadModelAnimation() (1 input parameters) Name: UnloadModelAnimation Return type: void Description: Unload animation data Param[1]: anim (type: ModelAnimation) -Function 507: UnloadModelAnimations() (2 input parameters) +Function 519: UnloadModelAnimations() (2 input parameters) Name: UnloadModelAnimations Return type: void Description: Unload animation array data Param[1]: animations (type: ModelAnimation *) Param[2]: animCount (type: int) -Function 508: IsModelAnimationValid() (2 input parameters) +Function 520: IsModelAnimationValid() (2 input parameters) Name: IsModelAnimationValid Return type: bool Description: Check model animation skeleton match Param[1]: model (type: Model) Param[2]: anim (type: ModelAnimation) -Function 509: CheckCollisionSpheres() (4 input parameters) +Function 521: CheckCollisionSpheres() (4 input parameters) Name: CheckCollisionSpheres Return type: bool Description: Check collision between two spheres @@ -4268,40 +4363,40 @@ Function 509: CheckCollisionSpheres() (4 input parameters) Param[2]: radius1 (type: float) Param[3]: center2 (type: Vector3) Param[4]: radius2 (type: float) -Function 510: CheckCollisionBoxes() (2 input parameters) +Function 522: CheckCollisionBoxes() (2 input parameters) Name: CheckCollisionBoxes Return type: bool Description: Check collision between two bounding boxes Param[1]: box1 (type: BoundingBox) Param[2]: box2 (type: BoundingBox) -Function 511: CheckCollisionBoxSphere() (3 input parameters) +Function 523: CheckCollisionBoxSphere() (3 input parameters) Name: CheckCollisionBoxSphere Return type: bool Description: Check collision between box and sphere Param[1]: box (type: BoundingBox) Param[2]: center (type: Vector3) Param[3]: radius (type: float) -Function 512: GetRayCollisionSphere() (3 input parameters) +Function 524: GetRayCollisionSphere() (3 input parameters) Name: GetRayCollisionSphere Return type: RayCollision Description: Get collision info between ray and sphere Param[1]: ray (type: Ray) Param[2]: center (type: Vector3) Param[3]: radius (type: float) -Function 513: GetRayCollisionBox() (2 input parameters) +Function 525: GetRayCollisionBox() (2 input parameters) Name: GetRayCollisionBox Return type: RayCollision Description: Get collision info between ray and box Param[1]: ray (type: Ray) Param[2]: box (type: BoundingBox) -Function 514: GetRayCollisionMesh() (3 input parameters) +Function 526: GetRayCollisionMesh() (3 input parameters) Name: GetRayCollisionMesh Return type: RayCollision Description: Get collision info between ray and mesh Param[1]: ray (type: Ray) Param[2]: mesh (type: Mesh) Param[3]: transform (type: Matrix) -Function 515: GetRayCollisionTriangle() (4 input parameters) +Function 527: GetRayCollisionTriangle() (4 input parameters) Name: GetRayCollisionTriangle Return type: RayCollision Description: Get collision info between ray and triangle @@ -4309,7 +4404,7 @@ Function 515: GetRayCollisionTriangle() (4 input parameters) Param[2]: p1 (type: Vector3) Param[3]: p2 (type: Vector3) Param[4]: p3 (type: Vector3) -Function 516: GetRayCollisionQuad() (5 input parameters) +Function 528: GetRayCollisionQuad() (5 input parameters) Name: GetRayCollisionQuad Return type: RayCollision Description: Get collision info between ray and quad @@ -4318,158 +4413,158 @@ Function 516: GetRayCollisionQuad() (5 input parameters) Param[3]: p2 (type: Vector3) Param[4]: p3 (type: Vector3) Param[5]: p4 (type: Vector3) -Function 517: InitAudioDevice() (0 input parameters) +Function 529: InitAudioDevice() (0 input parameters) Name: InitAudioDevice Return type: void Description: Initialize audio device and context No input parameters -Function 518: CloseAudioDevice() (0 input parameters) +Function 530: CloseAudioDevice() (0 input parameters) Name: CloseAudioDevice Return type: void Description: Close the audio device and context No input parameters -Function 519: IsAudioDeviceReady() (0 input parameters) +Function 531: IsAudioDeviceReady() (0 input parameters) Name: IsAudioDeviceReady Return type: bool Description: Check if audio device has been initialized successfully No input parameters -Function 520: SetMasterVolume() (1 input parameters) +Function 532: SetMasterVolume() (1 input parameters) Name: SetMasterVolume Return type: void Description: Set master volume (listener) Param[1]: volume (type: float) -Function 521: GetMasterVolume() (0 input parameters) +Function 533: GetMasterVolume() (0 input parameters) Name: GetMasterVolume Return type: float Description: Get master volume (listener) No input parameters -Function 522: LoadWave() (1 input parameters) +Function 534: LoadWave() (1 input parameters) Name: LoadWave Return type: Wave Description: Load wave data from file Param[1]: fileName (type: const char *) -Function 523: LoadWaveFromMemory() (3 input parameters) +Function 535: LoadWaveFromMemory() (3 input parameters) Name: LoadWaveFromMemory Return type: Wave Description: Load wave from memory buffer, fileType refers to extension: i.e. '.wav' Param[1]: fileType (type: const char *) Param[2]: fileData (type: const unsigned char *) Param[3]: dataSize (type: int) -Function 524: IsWaveValid() (1 input parameters) +Function 536: IsWaveValid() (1 input parameters) Name: IsWaveValid Return type: bool Description: Checks if wave data is valid (data loaded and parameters) Param[1]: wave (type: Wave) -Function 525: LoadSound() (1 input parameters) +Function 537: LoadSound() (1 input parameters) Name: LoadSound Return type: Sound Description: Load sound from file Param[1]: fileName (type: const char *) -Function 526: LoadSoundFromWave() (1 input parameters) +Function 538: LoadSoundFromWave() (1 input parameters) Name: LoadSoundFromWave Return type: Sound Description: Load sound from wave data Param[1]: wave (type: Wave) -Function 527: LoadSoundAlias() (1 input parameters) +Function 539: LoadSoundAlias() (1 input parameters) Name: LoadSoundAlias Return type: Sound Description: Create a new sound that shares the same sample data as the source sound, does not own the sound data Param[1]: source (type: Sound) -Function 528: IsSoundValid() (1 input parameters) +Function 540: IsSoundValid() (1 input parameters) Name: IsSoundValid Return type: bool Description: Checks if a sound is valid (data loaded and buffers initialized) Param[1]: sound (type: Sound) -Function 529: UpdateSound() (3 input parameters) +Function 541: UpdateSound() (3 input parameters) Name: UpdateSound Return type: void Description: Update sound buffer with new data Param[1]: sound (type: Sound) Param[2]: data (type: const void *) Param[3]: sampleCount (type: int) -Function 530: UnloadWave() (1 input parameters) +Function 542: UnloadWave() (1 input parameters) Name: UnloadWave Return type: void Description: Unload wave data Param[1]: wave (type: Wave) -Function 531: UnloadSound() (1 input parameters) +Function 543: UnloadSound() (1 input parameters) Name: UnloadSound Return type: void Description: Unload sound Param[1]: sound (type: Sound) -Function 532: UnloadSoundAlias() (1 input parameters) +Function 544: UnloadSoundAlias() (1 input parameters) Name: UnloadSoundAlias Return type: void Description: Unload a sound alias (does not deallocate sample data) Param[1]: alias (type: Sound) -Function 533: ExportWave() (2 input parameters) +Function 545: ExportWave() (2 input parameters) Name: ExportWave Return type: bool Description: Export wave data to file, returns true on success Param[1]: wave (type: Wave) Param[2]: fileName (type: const char *) -Function 534: ExportWaveAsCode() (2 input parameters) +Function 546: ExportWaveAsCode() (2 input parameters) Name: ExportWaveAsCode Return type: bool Description: Export wave sample data to code (.h), returns true on success Param[1]: wave (type: Wave) Param[2]: fileName (type: const char *) -Function 535: PlaySound() (1 input parameters) +Function 547: PlaySound() (1 input parameters) Name: PlaySound Return type: void Description: Play a sound Param[1]: sound (type: Sound) -Function 536: StopSound() (1 input parameters) +Function 548: StopSound() (1 input parameters) Name: StopSound Return type: void Description: Stop playing a sound Param[1]: sound (type: Sound) -Function 537: PauseSound() (1 input parameters) +Function 549: PauseSound() (1 input parameters) Name: PauseSound Return type: void Description: Pause a sound Param[1]: sound (type: Sound) -Function 538: ResumeSound() (1 input parameters) +Function 550: ResumeSound() (1 input parameters) Name: ResumeSound Return type: void Description: Resume a paused sound Param[1]: sound (type: Sound) -Function 539: IsSoundPlaying() (1 input parameters) +Function 551: IsSoundPlaying() (1 input parameters) Name: IsSoundPlaying Return type: bool Description: Check if a sound is currently playing Param[1]: sound (type: Sound) -Function 540: SetSoundVolume() (2 input parameters) +Function 552: SetSoundVolume() (2 input parameters) Name: SetSoundVolume Return type: void Description: Set volume for a sound (1.0 is max level) Param[1]: sound (type: Sound) Param[2]: volume (type: float) -Function 541: SetSoundPitch() (2 input parameters) +Function 553: SetSoundPitch() (2 input parameters) Name: SetSoundPitch Return type: void Description: Set pitch for a sound (1.0 is base level) Param[1]: sound (type: Sound) Param[2]: pitch (type: float) -Function 542: SetSoundPan() (2 input parameters) +Function 554: SetSoundPan() (2 input parameters) Name: SetSoundPan Return type: void Description: Set pan for a sound (0.5 is center) Param[1]: sound (type: Sound) Param[2]: pan (type: float) -Function 543: WaveCopy() (1 input parameters) +Function 555: WaveCopy() (1 input parameters) Name: WaveCopy Return type: Wave Description: Copy a wave to a new wave Param[1]: wave (type: Wave) -Function 544: WaveCrop() (3 input parameters) +Function 556: WaveCrop() (3 input parameters) Name: WaveCrop Return type: void Description: Crop a wave to defined frames range Param[1]: wave (type: Wave *) Param[2]: initFrame (type: int) Param[3]: finalFrame (type: int) -Function 545: WaveFormat() (4 input parameters) +Function 557: WaveFormat() (4 input parameters) Name: WaveFormat Return type: void Description: Convert wave data to desired format @@ -4477,203 +4572,203 @@ Function 545: WaveFormat() (4 input parameters) Param[2]: sampleRate (type: int) Param[3]: sampleSize (type: int) Param[4]: channels (type: int) -Function 546: LoadWaveSamples() (1 input parameters) +Function 558: LoadWaveSamples() (1 input parameters) Name: LoadWaveSamples Return type: float * Description: Load samples data from wave as a 32bit float data array Param[1]: wave (type: Wave) -Function 547: UnloadWaveSamples() (1 input parameters) +Function 559: UnloadWaveSamples() (1 input parameters) Name: UnloadWaveSamples Return type: void Description: Unload samples data loaded with LoadWaveSamples() Param[1]: samples (type: float *) -Function 548: LoadMusicStream() (1 input parameters) +Function 560: LoadMusicStream() (1 input parameters) Name: LoadMusicStream Return type: Music Description: Load music stream from file Param[1]: fileName (type: const char *) -Function 549: LoadMusicStreamFromMemory() (3 input parameters) +Function 561: LoadMusicStreamFromMemory() (3 input parameters) Name: LoadMusicStreamFromMemory Return type: Music Description: Load music stream from data Param[1]: fileType (type: const char *) Param[2]: data (type: const unsigned char *) Param[3]: dataSize (type: int) -Function 550: IsMusicValid() (1 input parameters) +Function 562: IsMusicValid() (1 input parameters) Name: IsMusicValid Return type: bool Description: Checks if a music stream is valid (context and buffers initialized) Param[1]: music (type: Music) -Function 551: UnloadMusicStream() (1 input parameters) +Function 563: UnloadMusicStream() (1 input parameters) Name: UnloadMusicStream Return type: void Description: Unload music stream Param[1]: music (type: Music) -Function 552: PlayMusicStream() (1 input parameters) +Function 564: PlayMusicStream() (1 input parameters) Name: PlayMusicStream Return type: void Description: Start music playing Param[1]: music (type: Music) -Function 553: IsMusicStreamPlaying() (1 input parameters) +Function 565: IsMusicStreamPlaying() (1 input parameters) Name: IsMusicStreamPlaying Return type: bool Description: Check if music is playing Param[1]: music (type: Music) -Function 554: UpdateMusicStream() (1 input parameters) +Function 566: UpdateMusicStream() (1 input parameters) Name: UpdateMusicStream Return type: void Description: Updates buffers for music streaming Param[1]: music (type: Music) -Function 555: StopMusicStream() (1 input parameters) +Function 567: StopMusicStream() (1 input parameters) Name: StopMusicStream Return type: void Description: Stop music playing Param[1]: music (type: Music) -Function 556: PauseMusicStream() (1 input parameters) +Function 568: PauseMusicStream() (1 input parameters) Name: PauseMusicStream Return type: void Description: Pause music playing Param[1]: music (type: Music) -Function 557: ResumeMusicStream() (1 input parameters) +Function 569: ResumeMusicStream() (1 input parameters) Name: ResumeMusicStream Return type: void Description: Resume playing paused music Param[1]: music (type: Music) -Function 558: SeekMusicStream() (2 input parameters) +Function 570: SeekMusicStream() (2 input parameters) Name: SeekMusicStream Return type: void Description: Seek music to a position (in seconds) Param[1]: music (type: Music) Param[2]: position (type: float) -Function 559: SetMusicVolume() (2 input parameters) +Function 571: SetMusicVolume() (2 input parameters) Name: SetMusicVolume Return type: void Description: Set volume for music (1.0 is max level) Param[1]: music (type: Music) Param[2]: volume (type: float) -Function 560: SetMusicPitch() (2 input parameters) +Function 572: SetMusicPitch() (2 input parameters) Name: SetMusicPitch Return type: void Description: Set pitch for a music (1.0 is base level) Param[1]: music (type: Music) Param[2]: pitch (type: float) -Function 561: SetMusicPan() (2 input parameters) +Function 573: SetMusicPan() (2 input parameters) Name: SetMusicPan Return type: void Description: Set pan for a music (0.5 is center) Param[1]: music (type: Music) Param[2]: pan (type: float) -Function 562: GetMusicTimeLength() (1 input parameters) +Function 574: GetMusicTimeLength() (1 input parameters) Name: GetMusicTimeLength Return type: float Description: Get music time length (in seconds) Param[1]: music (type: Music) -Function 563: GetMusicTimePlayed() (1 input parameters) +Function 575: GetMusicTimePlayed() (1 input parameters) Name: GetMusicTimePlayed Return type: float Description: Get current music time played (in seconds) Param[1]: music (type: Music) -Function 564: LoadAudioStream() (3 input parameters) +Function 576: LoadAudioStream() (3 input parameters) Name: LoadAudioStream Return type: AudioStream Description: Load audio stream (to stream raw audio pcm data) Param[1]: sampleRate (type: unsigned int) Param[2]: sampleSize (type: unsigned int) Param[3]: channels (type: unsigned int) -Function 565: IsAudioStreamValid() (1 input parameters) +Function 577: IsAudioStreamValid() (1 input parameters) Name: IsAudioStreamValid Return type: bool Description: Checks if an audio stream is valid (buffers initialized) Param[1]: stream (type: AudioStream) -Function 566: UnloadAudioStream() (1 input parameters) +Function 578: UnloadAudioStream() (1 input parameters) Name: UnloadAudioStream Return type: void Description: Unload audio stream and free memory Param[1]: stream (type: AudioStream) -Function 567: UpdateAudioStream() (3 input parameters) +Function 579: UpdateAudioStream() (3 input parameters) Name: UpdateAudioStream Return type: void Description: Update audio stream buffers with data Param[1]: stream (type: AudioStream) Param[2]: data (type: const void *) Param[3]: frameCount (type: int) -Function 568: IsAudioStreamProcessed() (1 input parameters) +Function 580: IsAudioStreamProcessed() (1 input parameters) Name: IsAudioStreamProcessed Return type: bool Description: Check if any audio stream buffers requires refill Param[1]: stream (type: AudioStream) -Function 569: PlayAudioStream() (1 input parameters) +Function 581: PlayAudioStream() (1 input parameters) Name: PlayAudioStream Return type: void Description: Play audio stream Param[1]: stream (type: AudioStream) -Function 570: PauseAudioStream() (1 input parameters) +Function 582: PauseAudioStream() (1 input parameters) Name: PauseAudioStream Return type: void Description: Pause audio stream Param[1]: stream (type: AudioStream) -Function 571: ResumeAudioStream() (1 input parameters) +Function 583: ResumeAudioStream() (1 input parameters) Name: ResumeAudioStream Return type: void Description: Resume audio stream Param[1]: stream (type: AudioStream) -Function 572: IsAudioStreamPlaying() (1 input parameters) +Function 584: IsAudioStreamPlaying() (1 input parameters) Name: IsAudioStreamPlaying Return type: bool Description: Check if audio stream is playing Param[1]: stream (type: AudioStream) -Function 573: StopAudioStream() (1 input parameters) +Function 585: StopAudioStream() (1 input parameters) Name: StopAudioStream Return type: void Description: Stop audio stream Param[1]: stream (type: AudioStream) -Function 574: SetAudioStreamVolume() (2 input parameters) +Function 586: SetAudioStreamVolume() (2 input parameters) Name: SetAudioStreamVolume Return type: void Description: Set volume for audio stream (1.0 is max level) Param[1]: stream (type: AudioStream) Param[2]: volume (type: float) -Function 575: SetAudioStreamPitch() (2 input parameters) +Function 587: SetAudioStreamPitch() (2 input parameters) Name: SetAudioStreamPitch Return type: void Description: Set pitch for audio stream (1.0 is base level) Param[1]: stream (type: AudioStream) Param[2]: pitch (type: float) -Function 576: SetAudioStreamPan() (2 input parameters) +Function 588: SetAudioStreamPan() (2 input parameters) Name: SetAudioStreamPan Return type: void Description: Set pan for audio stream (0.5 is centered) Param[1]: stream (type: AudioStream) Param[2]: pan (type: float) -Function 577: SetAudioStreamBufferSizeDefault() (1 input parameters) +Function 589: SetAudioStreamBufferSizeDefault() (1 input parameters) Name: SetAudioStreamBufferSizeDefault Return type: void Description: Default size for new audio streams Param[1]: size (type: int) -Function 578: SetAudioStreamCallback() (2 input parameters) +Function 590: SetAudioStreamCallback() (2 input parameters) Name: SetAudioStreamCallback Return type: void Description: Audio thread callback to request new data Param[1]: stream (type: AudioStream) Param[2]: callback (type: AudioCallback) -Function 579: AttachAudioStreamProcessor() (2 input parameters) +Function 591: AttachAudioStreamProcessor() (2 input parameters) Name: AttachAudioStreamProcessor Return type: void Description: Attach audio stream processor to stream, receives frames x 2 samples as 'float' (stereo) Param[1]: stream (type: AudioStream) Param[2]: processor (type: AudioCallback) -Function 580: DetachAudioStreamProcessor() (2 input parameters) +Function 592: DetachAudioStreamProcessor() (2 input parameters) Name: DetachAudioStreamProcessor Return type: void Description: Detach audio stream processor from stream Param[1]: stream (type: AudioStream) Param[2]: processor (type: AudioCallback) -Function 581: AttachAudioMixedProcessor() (1 input parameters) +Function 593: AttachAudioMixedProcessor() (1 input parameters) Name: AttachAudioMixedProcessor Return type: void Description: Attach audio stream processor to the entire audio pipeline, receives frames x 2 samples as 'float' (stereo) Param[1]: processor (type: AudioCallback) -Function 582: DetachAudioMixedProcessor() (1 input parameters) +Function 594: DetachAudioMixedProcessor() (1 input parameters) Name: DetachAudioMixedProcessor Return type: void Description: Detach audio stream processor from the entire audio pipeline diff --git a/parser/output/raylib_api.xml b/parser/output/raylib_api.xml index b7af0c41a3f2..17d9fefcad60 100644 --- a/parser/output/raylib_api.xml +++ b/parser/output/raylib_api.xml @@ -679,7 +679,7 @@ - + @@ -1621,6 +1621,15 @@ + + + + + + + + + @@ -1653,6 +1662,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From efa7ef12e675fe3e5d9511df0b2fa25941f9ed8f Mon Sep 17 00:00:00 2001 From: Henry Wilder Date: Mon, 3 Mar 2025 22:20:42 -0500 Subject: [PATCH 04/16] Ensure DrawSplineSegmentBezierCubicVar renders somewhat correctly --- CHANGELOG | 13 +++ examples/shapes/shapes_splines_drawing.c | 40 +++++++- src/raylib.h | 2 +- src/rshapes.c | 120 ++++++++++++++--------- 4 files changed, 125 insertions(+), 50 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index f792bca4da92..60e35728a58d 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -179,6 +179,19 @@ WIP: Last update with commit from 02-Nov-2024 [rshapes] REVIEWED: `CheckCollisionCircleRec()` (#3584) by @ubkp [rshapes] REVIEWED: Add more detail to function comment (#4344) by @Jeffery Myers [rshapes] REVIEWED: Functions that draw point arrays take them as const (#4051) by @Jeffery Myers +[rshapes] ADDED: `DrawSplineSegmentBezierCubicVar()` (#TBD) by @AmityWilder +[rshapes] ADDED: `GetSplineVelocityLinear()` (#TBD) by @AmityWilder +[rshapes] ADDED: `GetSplineVelocityBezierQuad()` (#TBD) by @AmityWilder +[rshapes] ADDED: `GetSplineVelocityBezierCubic()` (#TBD) by @AmityWilder +[rshapes] ADDED: `GetSplineAccelerationBezierQuad()` (#TBD) by @AmityWilder +[rshapes] ADDED: `GetSplineAccelerationBezierCubic()` (#TBD) by @AmityWilder +[rshapes] ADDED: `GetSplineJoltBezierCubic()` (#TBD) by @AmityWilder +[rshapes] ADDED: `GetSplineBoundsBezierLinear()` (#TBD) by @AmityWilder +[rshapes] ADDED: `GetSplineBoundsBezierQuad()` (#TBD) by @AmityWilder +[rshapes] ADDED: `GetSplineBoundsBezierCubic()` (#TBD) by @AmityWilder +[rshapes] ADDED: `GetSplineCurvatureBezierCubic()` (#TBD) by @AmityWilder +[rshapes] ADDED: `GetSplineNearestTLinear()` (#TBD) by @AmityWilder +[rshapes] ADDED: Example of `DrawSplineSegmentBezierCubicVar` in splines drawing example (#TBD) by @AmityWilder [rtextures] ADDED: `ColorIsEqual()` by @Ray [rtextures] ADDED: `ColorLerp()`, to mix 2 colors together (#4310) by @SusgUY446 [rtextures] ADDED: `LoadImageAnimFromMemory()` (#3681) by @IoIxD diff --git a/examples/shapes/shapes_splines_drawing.c b/examples/shapes/shapes_splines_drawing.c index 065050e8ec80..4ba63a18ff2e 100644 --- a/examples/shapes/shapes_splines_drawing.c +++ b/examples/shapes/shapes_splines_drawing.c @@ -34,7 +34,8 @@ typedef enum { SPLINE_LINEAR = 0, // Linear SPLINE_BASIS, // B-Spline SPLINE_CATMULLROM, // Catmull-Rom - SPLINE_BEZIER // Cubic Bezier + SPLINE_BEZIER, // Cubic Bezier + SPLINE_BEZIER_VAR // Cubic Bezier, variable thickness } SplineType; //------------------------------------------------------------------------------------ @@ -78,7 +79,7 @@ int main(void) // Spline config variables float splineThickness = 8.0f; - int splineTypeActive = SPLINE_LINEAR; // 0-Linear, 1-BSpline, 2-CatmullRom, 3-Bezier + int splineTypeActive = SPLINE_BEZIER_VAR; // 0-Linear, 1-BSpline, 2-CatmullRom, 3-Bezier, 4-BezierVar bool splineTypeEditMode = false; bool splineHelpersActive = true; @@ -120,7 +121,7 @@ int main(void) } // Cubic Bezier spline control points logic - if ((splineTypeActive == SPLINE_BEZIER) && (focusedPoint == -1)) + if (((splineTypeActive == SPLINE_BEZIER) || (splineTypeActive == SPLINE_BEZIER_VAR)) && (focusedPoint == -1)) { // Spline control point focus and selection logic for (int i = 0; i < pointCount - 1; i++) @@ -153,6 +154,7 @@ int main(void) else if (IsKeyPressed(KEY_TWO)) splineTypeActive = 1; else if (IsKeyPressed(KEY_THREE)) splineTypeActive = 2; else if (IsKeyPressed(KEY_FOUR)) splineTypeActive = 3; + else if (IsKeyPressed(KEY_FIVE)) splineTypeActive = 4; //---------------------------------------------------------------------------------- // Draw @@ -215,7 +217,36 @@ int main(void) DrawSplineSegmentBezierCubic(pointsInterleaved[i], pointsInterleaved[i + 1], pointsInterleaved[i + 2], pointsInterleaved[i + 3], splineThickness, MAROON); } */ + } + else if (splineTypeActive == SPLINE_BEZIER_VAR) + { + float thicks[] = { + 0.0f, + splineThickness, + splineThickness, + 0.0f, + }; + // NOTE: Cubic-bezier spline requires the 2 control points of each segnment to be + // provided interleaved with the start and end point of every segment + for (int i = 0; i < (pointCount - 1); i++) + { + pointsInterleaved[3*i] = points[i]; + pointsInterleaved[3*i + 1] = control[i].start; + pointsInterleaved[3*i + 2] = control[i].end; + } + + pointsInterleaved[3*(pointCount - 1)] = points[pointCount - 1]; + + // Draw spline: cubic-bezier (with control points) + for (int i = 0; i < pointCount - 1; ++i) + { + DrawSplineSegmentBezierCubicVar(points[i], control[i].start, control[i].end, points[i+1], thicks, 4, RED); + } + } + + if ((splineTypeActive == SPLINE_BEZIER) || (splineTypeActive == SPLINE_BEZIER_VAR)) + { // Draw spline control points for (int i = 0; i < pointCount - 1; i++) { @@ -242,6 +273,7 @@ int main(void) DrawCircleLinesV(points[i], (focusedPoint == i)? 12.0f : 8.0f, (focusedPoint == i)? BLUE: DARKBLUE); if ((splineTypeActive != SPLINE_LINEAR) && (splineTypeActive != SPLINE_BEZIER) && + (splineTypeActive != SPLINE_BEZIER_VAR) && (i < pointCount - 1)) DrawLineV(points[i], points[i + 1], GRAY); DrawText(TextFormat("[%.0f, %.0f]", points[i].x, points[i].y), (int)points[i].x, (int)points[i].y + 10, 10, BLACK); @@ -260,7 +292,7 @@ int main(void) GuiUnlock(); GuiLabel((Rectangle){ 12, 10, 140, 24 }, "Spline type:"); - if (GuiDropdownBox((Rectangle){ 12, 8 + 24, 140, 28 }, "LINEAR;BSPLINE;CATMULLROM;BEZIER", &splineTypeActive, splineTypeEditMode)) splineTypeEditMode = !splineTypeEditMode; + if (GuiDropdownBox((Rectangle){ 12, 8 + 24, 140, 28 }, "LINEAR;BSPLINE;CATMULLROM;BEZIER;BEZIER VARIABLE", &splineTypeActive, splineTypeEditMode)) splineTypeEditMode = !splineTypeEditMode; EndDrawing(); //---------------------------------------------------------------------------------- diff --git a/src/raylib.h b/src/raylib.h index b30594416b50..16677041bfe7 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1298,7 +1298,7 @@ RLAPI void DrawSplineSegmentBasis(Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4 RLAPI void DrawSplineSegmentCatmullRom(Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4, float thick, Color color); // Draw spline segment: Catmull-Rom, 4 points RLAPI void DrawSplineSegmentBezierQuadratic(Vector2 p1, Vector2 c2, Vector2 p3, float thick, Color color); // Draw spline segment: Quadratic Bezier, 2 points, 1 control point RLAPI void DrawSplineSegmentBezierCubic(Vector2 p1, Vector2 c2, Vector2 c3, Vector2 p4, float thick, Color color); // Draw spline segment: Cubic Bezier, 2 points, 2 control points -RLAPI void DrawSplineSegmentBezierCubicVar(Vector2 p1, Vector2 c2, Vector2 c3, Vector2 p4, const float* thicks, int thickCount, Color color); // Draw spline segment with variable thickness: Cubic Bezier, 2 points, 2 control points, 1 or more thickness +RLAPI void DrawSplineSegmentBezierCubicVar(Vector2 p1, Vector2 c2, Vector2 c3, Vector2 p4, const float* thicks, int thickCount, Color color); // Draw spline segment with variable thickness: Cubic Bezier, 2 points, 2 control points // Spline segment point evaluation functions, for a given t [0.0f .. 1.0f] RLAPI Vector2 GetSplinePointLinear(Vector2 startPos, Vector2 endPos, float t); // Get (evaluate) spline point: Linear diff --git a/src/rshapes.c b/src/rshapes.c index 9f78adf279ca..aedb58d1c585 100644 --- a/src/rshapes.c +++ b/src/rshapes.c @@ -2107,63 +2107,93 @@ void DrawSplineSegmentBezierCubic(Vector2 p1, Vector2 c2, Vector2 c3, Vector2 p4 DrawTriangleStrip(points, 2*SPLINE_SEGMENT_DIVISIONS + 2, color); } -// Draw spline segment with variable thickness: Cubic Bezier, 2 points, 2 control points, 1 or more thickness +// Draw spline segment with variable thickness: Cubic Bezier, 2 points, 2 control points void DrawSplineSegmentBezierCubicVar(Vector2 p1, Vector2 c2, Vector2 c3, Vector2 p4, const float* thicks, int thickCount, Color color) { - if (thickCount >= 1) + if (thickCount >= 4) { - const float step = 1.0f/SPLINE_SEGMENT_DIVISIONS; + rlBegin(RL_TRIANGLES); + rlColor4ub(color.r, color.g, color.b, color.a); - Vector2 previous = p1; - Vector2 current = { 0 }; - float t = 0.0f; + const float step = 1.0f/SPLINE_SEGMENT_DIVISIONS; - Vector2 points[2*SPLINE_SEGMENT_DIVISIONS + 2] = { 0 }; + Vector2 previous[2] = { 0 }; + Vector2 current[2] = { 0 }; + float t = 0.0f; - for (int i = 1; i <= SPLINE_SEGMENT_DIVISIONS; i++) - { - t = step*(float)i; - - float thick; - if (thickCount > 1) { - float tMajor = t*(float)thickCount; - int tIndex = (int)tMajor; - if (tIndex >= thickCount) tIndex = thickCount - 1; - float tMinor = tMajor - (float)tIndex; - thick = thicks[tIndex]; - } else { - thick = thicks[0]; // constant thickness - } + for (int i = 0; i <= SPLINE_SEGMENT_DIVISIONS; i++) + { + t = step*(float)i; - float a = powf(1.0f - t, 3); - float b = 3.0f*powf(1.0f - t, 2)*t; - float c = 3.0f*(1.0f - t)*powf(t, 2); - float d = powf(t, 3); + Vector2 tangent = { 0 }; + { + float a = 3.0f*powf(1.0f - t, 2); + float b = 6.0f*(1.0f - t)*t; + float c = 3.0f*t*t; - current.y = a*p1.y + b*c2.y + c*c3.y + d*p4.y; - current.x = a*p1.x + b*c2.x + c*c3.x + d*p4.x; + tangent.x = a*(c2.x - p1.x) + b*(c3.x - c2.x) + c*(p4.x - c3.x); + tangent.y = a*(c2.y - p1.y) + b*(c3.y - c2.y) + c*(p4.y - c3.y); + } - float dy = current.y - previous.y; - float dx = current.x - previous.x; - float size = 0.5f*thick/sqrtf(dx*dx+dy*dy); + float speedSqr = (tangent.x*tangent.x + tangent.y*tangent.y); + if (speedSqr == 0) continue; + float speedInv = 1.0f/sqrtf(speedSqr); + tangent.x = tangent.x*speedInv; + tangent.y = tangent.y*speedInv; - if (i == 1) - { - points[0].x = previous.x + dy*size; - points[0].y = previous.y - dx*size; - points[1].x = previous.x - dy*size; - points[1].y = previous.y + dx*size; - } + Vector2 point = { 0 }; + { + float a = powf(1.0f - t, 3); + float b = 3.0f*powf(1.0f - t, 2)*t; + float c = 3.0f*(1.0f - t)*powf(t, 2); + float d = powf(t, 3); + + point.y = a*p1.y + b*c2.y + c*c3.y + d*p4.y; + point.x = a*p1.x + b*c2.x + c*c3.x + d*p4.x; + } + + // TODO: Doesn't seem to be working properly for more than 3 distinct values + float thick; + { + float tMajor = t*(float)thickCount; + int tIndex = (int)tMajor; + float tMinor = tMajor - (float)tIndex; + tIndex *= 3; + if (tIndex >= thickCount - 3) + { + tIndex = thickCount - 4; + tMinor = 1.0f; + } + float a = powf(1.0f - t, 3); + float b = 3.0f*powf(1.0f - t, 2)*t; + float c = 3.0f*(1.0f - t)*t*t; + float d = t*t*t; + + thick = a*thicks[tIndex] + b*thicks[tIndex + 1] + c*thicks[tIndex + 2] + d*thicks[tIndex + 3]; + } - points[2*i + 1].x = current.x - dy*size; - points[2*i + 1].y = current.y + dx*size; - points[2*i].x = current.x + dy*size; - points[2*i].y = current.y - dx*size; + current[0].x = point.x + thick*tangent.y; + current[0].y = point.y - thick*tangent.x; - previous = current; - } + current[1].x = point.x - thick*tangent.y; + current[1].y = point.y + thick*tangent.x; + + if (i > 0) + { + rlVertex2f(current[0].x, current[0].y); + rlVertex2f(previous[0].x, previous[0].y); + rlVertex2f(previous[1].x, previous[1].y); + + rlVertex2f(current[1].x, current[1].y); + rlVertex2f(current[0].x, current[0].y); + rlVertex2f(previous[1].x, previous[1].y); + } - DrawTriangleStrip(points, 2*SPLINE_SEGMENT_DIVISIONS + 2, color); + previous[0] = current[0]; + previous[1] = current[1]; + } + + rlEnd(); } } @@ -2576,7 +2606,7 @@ float GetSplineCurvatureBezierCubic(Vector2 startPos, Vector2 startControlPos, V acceleration.x = a*(endControlPos.x - 2.0f*startControlPos.x + startPos.x) + b*(endPos.x - 2.0f*endControlPos.x + startControlPos.x); acceleration.y = a*(endControlPos.y - 2.0f*startControlPos.y + startPos.y) + b*(endPos.y - 2.0f*endControlPos.y + startControlPos.y); - float curvature = (velocity.x*acceleration.y - velocity.y*acceleration.x)/powf(sqrtf(velocity.x*velocity.x + velocity.y*velocity.y), 3); + curvature = (velocity.x*acceleration.y - velocity.y*acceleration.x)/powf(sqrtf(velocity.x*velocity.x + velocity.y*velocity.y), 3); return curvature; } From 631e2a4c5cf3b8a3903e96f5231d6f6e1a3f9eb4 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 4 Mar 2025 03:21:04 +0000 Subject: [PATCH 05/16] Update raylib_api.* by CI --- parser/output/raylib_api.json | 2 +- parser/output/raylib_api.lua | 2 +- parser/output/raylib_api.txt | 2 +- parser/output/raylib_api.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/parser/output/raylib_api.json b/parser/output/raylib_api.json index 0ddcf52a9597..5d80b7a6901c 100644 --- a/parser/output/raylib_api.json +++ b/parser/output/raylib_api.json @@ -6520,7 +6520,7 @@ }, { "name": "DrawSplineSegmentBezierCubicVar", - "description": "Draw spline segment with variable thickness: Cubic Bezier, 2 points, 2 control points, 1 or more thickness", + "description": "Draw spline segment with variable thickness: Cubic Bezier, 2 points, 2 control points", "returnType": "void", "params": [ { diff --git a/parser/output/raylib_api.lua b/parser/output/raylib_api.lua index 9fa25fc3ee5f..2127f3a45d1b 100644 --- a/parser/output/raylib_api.lua +++ b/parser/output/raylib_api.lua @@ -5212,7 +5212,7 @@ return { }, { name = "DrawSplineSegmentBezierCubicVar", - description = "Draw spline segment with variable thickness: Cubic Bezier, 2 points, 2 control points, 1 or more thickness", + description = "Draw spline segment with variable thickness: Cubic Bezier, 2 points, 2 control points", returnType = "void", params = { {type = "Vector2", name = "p1"}, diff --git a/parser/output/raylib_api.txt b/parser/output/raylib_api.txt index 309d9845a598..6eec756e5cb5 100644 --- a/parser/output/raylib_api.txt +++ b/parser/output/raylib_api.txt @@ -2531,7 +2531,7 @@ Function 259: DrawSplineSegmentBezierCubic() (6 input parameters) Function 260: DrawSplineSegmentBezierCubicVar() (7 input parameters) Name: DrawSplineSegmentBezierCubicVar Return type: void - Description: Draw spline segment with variable thickness: Cubic Bezier, 2 points, 2 control points, 1 or more thickness + Description: Draw spline segment with variable thickness: Cubic Bezier, 2 points, 2 control points Param[1]: p1 (type: Vector2) Param[2]: c2 (type: Vector2) Param[3]: c3 (type: Vector2) diff --git a/parser/output/raylib_api.xml b/parser/output/raylib_api.xml index 17d9fefcad60..73cf6404d012 100644 --- a/parser/output/raylib_api.xml +++ b/parser/output/raylib_api.xml @@ -1621,7 +1621,7 @@ - + From 35e4300422698560001fb643c4465a2b59b92a8a Mon Sep 17 00:00:00 2001 From: Henry Wilder Date: Mon, 3 Mar 2025 22:38:32 -0500 Subject: [PATCH 06/16] Add issue number to changelog items --- CHANGELOG | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 60e35728a58d..4252c9bc34bb 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -179,19 +179,19 @@ WIP: Last update with commit from 02-Nov-2024 [rshapes] REVIEWED: `CheckCollisionCircleRec()` (#3584) by @ubkp [rshapes] REVIEWED: Add more detail to function comment (#4344) by @Jeffery Myers [rshapes] REVIEWED: Functions that draw point arrays take them as const (#4051) by @Jeffery Myers -[rshapes] ADDED: `DrawSplineSegmentBezierCubicVar()` (#TBD) by @AmityWilder -[rshapes] ADDED: `GetSplineVelocityLinear()` (#TBD) by @AmityWilder -[rshapes] ADDED: `GetSplineVelocityBezierQuad()` (#TBD) by @AmityWilder -[rshapes] ADDED: `GetSplineVelocityBezierCubic()` (#TBD) by @AmityWilder -[rshapes] ADDED: `GetSplineAccelerationBezierQuad()` (#TBD) by @AmityWilder -[rshapes] ADDED: `GetSplineAccelerationBezierCubic()` (#TBD) by @AmityWilder -[rshapes] ADDED: `GetSplineJoltBezierCubic()` (#TBD) by @AmityWilder -[rshapes] ADDED: `GetSplineBoundsBezierLinear()` (#TBD) by @AmityWilder -[rshapes] ADDED: `GetSplineBoundsBezierQuad()` (#TBD) by @AmityWilder -[rshapes] ADDED: `GetSplineBoundsBezierCubic()` (#TBD) by @AmityWilder -[rshapes] ADDED: `GetSplineCurvatureBezierCubic()` (#TBD) by @AmityWilder -[rshapes] ADDED: `GetSplineNearestTLinear()` (#TBD) by @AmityWilder -[rshapes] ADDED: Example of `DrawSplineSegmentBezierCubicVar` in splines drawing example (#TBD) by @AmityWilder +[rshapes] ADDED: `DrawSplineSegmentBezierCubicVar()` (#4809) by @AmityWilder +[rshapes] ADDED: `GetSplineVelocityLinear()` (#4809) by @AmityWilder +[rshapes] ADDED: `GetSplineVelocityBezierQuad()` (#4809) by @AmityWilder +[rshapes] ADDED: `GetSplineVelocityBezierCubic()` (#4809) by @AmityWilder +[rshapes] ADDED: `GetSplineAccelerationBezierQuad()` (#4809) by @AmityWilder +[rshapes] ADDED: `GetSplineAccelerationBezierCubic()` (#4809) by @AmityWilder +[rshapes] ADDED: `GetSplineJoltBezierCubic()` (#4809) by @AmityWilder +[rshapes] ADDED: `GetSplineBoundsBezierLinear()` (#4809) by @AmityWilder +[rshapes] ADDED: `GetSplineBoundsBezierQuad()` (#4809) by @AmityWilder +[rshapes] ADDED: `GetSplineBoundsBezierCubic()` (#4809) by @AmityWilder +[rshapes] ADDED: `GetSplineCurvatureBezierCubic()` (#4809) by @AmityWilder +[rshapes] ADDED: `GetSplineNearestTLinear()` (#4809) by @AmityWilder +[rshapes] ADDED: Example of `DrawSplineSegmentBezierCubicVar` in splines drawing example (#4809) by @AmityWilder [rtextures] ADDED: `ColorIsEqual()` by @Ray [rtextures] ADDED: `ColorLerp()`, to mix 2 colors together (#4310) by @SusgUY446 [rtextures] ADDED: `LoadImageAnimFromMemory()` (#3681) by @IoIxD From 6f89aa57ab93f51154f61f7ab1ab91b78a344fc2 Mon Sep 17 00:00:00 2001 From: Henry Wilder Date: Tue, 4 Mar 2025 12:02:39 -0500 Subject: [PATCH 07/16] Add DrawSplineSegmentLinearVar --- examples/shapes/shapes_splines_drawing.c | 25 ++++++- src/raylib.h | 1 + src/rshapes.c | 89 +++++++++++++++++++++++- 3 files changed, 109 insertions(+), 6 deletions(-) diff --git a/examples/shapes/shapes_splines_drawing.c b/examples/shapes/shapes_splines_drawing.c index 4ba63a18ff2e..605011a78249 100644 --- a/examples/shapes/shapes_splines_drawing.c +++ b/examples/shapes/shapes_splines_drawing.c @@ -35,6 +35,7 @@ typedef enum { SPLINE_BASIS, // B-Spline SPLINE_CATMULLROM, // Catmull-Rom SPLINE_BEZIER, // Cubic Bezier + SPLINE_LINEAR_VAR, // Linear, variable thickness SPLINE_BEZIER_VAR // Cubic Bezier, variable thickness } SplineType; @@ -79,7 +80,8 @@ int main(void) // Spline config variables float splineThickness = 8.0f; - int splineTypeActive = SPLINE_BEZIER_VAR; // 0-Linear, 1-BSpline, 2-CatmullRom, 3-Bezier, 4-BezierVar + int splineTypeActive = SPLINE_LINEAR_VAR; // 0-Linear, 1-BSpline, 2-CatmullRom, 3-Bezier, 4-LinearVar, 5-BezierVar + // TODO: Change the default back to SPLINE_LINEAR when finished testing bool splineTypeEditMode = false; bool splineHelpersActive = true; @@ -155,6 +157,7 @@ int main(void) else if (IsKeyPressed(KEY_THREE)) splineTypeActive = 2; else if (IsKeyPressed(KEY_FOUR)) splineTypeActive = 3; else if (IsKeyPressed(KEY_FIVE)) splineTypeActive = 4; + else if (IsKeyPressed(KEY_SIX)) splineTypeActive = 5; //---------------------------------------------------------------------------------- // Draw @@ -218,6 +221,21 @@ int main(void) } */ } + else if (splineTypeActive == SPLINE_LINEAR_VAR) + { + float thicks[] = { + 0.0f, + splineThickness, + splineThickness, + 0.0f, + }; + + // Draw spline: variable-width linear + for (int i = 0; i < pointCount - 1; ++i) + { + DrawSplineSegmentLinearVar(points[i], points[i+1], thicks, 4, RED); + } + } else if (splineTypeActive == SPLINE_BEZIER_VAR) { float thicks[] = { @@ -238,7 +256,7 @@ int main(void) pointsInterleaved[3*(pointCount - 1)] = points[pointCount - 1]; - // Draw spline: cubic-bezier (with control points) + // Draw spline: variable-width cubic-bezier (with control points) for (int i = 0; i < pointCount - 1; ++i) { DrawSplineSegmentBezierCubicVar(points[i], control[i].start, control[i].end, points[i+1], thicks, 4, RED); @@ -272,6 +290,7 @@ int main(void) { DrawCircleLinesV(points[i], (focusedPoint == i)? 12.0f : 8.0f, (focusedPoint == i)? BLUE: DARKBLUE); if ((splineTypeActive != SPLINE_LINEAR) && + (splineTypeActive != SPLINE_LINEAR_VAR) && (splineTypeActive != SPLINE_BEZIER) && (splineTypeActive != SPLINE_BEZIER_VAR) && (i < pointCount - 1)) DrawLineV(points[i], points[i + 1], GRAY); @@ -292,7 +311,7 @@ int main(void) GuiUnlock(); GuiLabel((Rectangle){ 12, 10, 140, 24 }, "Spline type:"); - if (GuiDropdownBox((Rectangle){ 12, 8 + 24, 140, 28 }, "LINEAR;BSPLINE;CATMULLROM;BEZIER;BEZIER VARIABLE", &splineTypeActive, splineTypeEditMode)) splineTypeEditMode = !splineTypeEditMode; + if (GuiDropdownBox((Rectangle){ 12, 8 + 24, 140, 28 }, "LINEAR;BSPLINE;CATMULLROM;BEZIER;LINEAR VARIABLE;BEZIER VARIABLE", &splineTypeActive, splineTypeEditMode)) splineTypeEditMode = !splineTypeEditMode; EndDrawing(); //---------------------------------------------------------------------------------- diff --git a/src/raylib.h b/src/raylib.h index 16677041bfe7..1e9e8da557a1 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1298,6 +1298,7 @@ RLAPI void DrawSplineSegmentBasis(Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4 RLAPI void DrawSplineSegmentCatmullRom(Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4, float thick, Color color); // Draw spline segment: Catmull-Rom, 4 points RLAPI void DrawSplineSegmentBezierQuadratic(Vector2 p1, Vector2 c2, Vector2 p3, float thick, Color color); // Draw spline segment: Quadratic Bezier, 2 points, 1 control point RLAPI void DrawSplineSegmentBezierCubic(Vector2 p1, Vector2 c2, Vector2 c3, Vector2 p4, float thick, Color color); // Draw spline segment: Cubic Bezier, 2 points, 2 control points +RLAPI void DrawSplineSegmentLinearVar(Vector2 p1, Vector2 p2, const float* thicks, int thickCount, Color color); // Draw spline segment with variable thickness: Linear Bezier, 2 points RLAPI void DrawSplineSegmentBezierCubicVar(Vector2 p1, Vector2 c2, Vector2 c3, Vector2 p4, const float* thicks, int thickCount, Color color); // Draw spline segment with variable thickness: Cubic Bezier, 2 points, 2 control points // Spline segment point evaluation functions, for a given t [0.0f .. 1.0f] diff --git a/src/rshapes.c b/src/rshapes.c index aedb58d1c585..8852fea59994 100644 --- a/src/rshapes.c +++ b/src/rshapes.c @@ -2107,6 +2107,89 @@ void DrawSplineSegmentBezierCubic(Vector2 p1, Vector2 c2, Vector2 c3, Vector2 p4 DrawTriangleStrip(points, 2*SPLINE_SEGMENT_DIVISIONS + 2, color); } +// Draw spline segment with variable thickness: Linear, 2 points +void DrawSplineSegmentLinearVar(Vector2 p1, Vector2 p2, const float* thicks, int thickCount, Color color) +{ + if (thickCount >= 4) + { + const float step = 1.0f/SPLINE_SEGMENT_DIVISIONS; + + Vector2 previous[2] = { 0 }; + Vector2 current[2] = { 0 }; + float t = 0.0f; + + // Linear velocity does not change across the curve + Vector2 tangent = { 0 }; + + tangent.x = p2.x - p1.x; + tangent.y = p2.y - p1.y; + + float speedSqr = tangent.x*tangent.x + tangent.y*tangent.y; + + if (speedSqr > 0) + { + float speedInv = 1.0f/sqrtf(speedSqr); + tangent.x *= speedInv; + tangent.y *= speedInv; + + rlBegin(RL_TRIANGLES); + rlColor4ub(color.r, color.g, color.b, color.a); + + for (int i = 0; i <= SPLINE_SEGMENT_DIVISIONS; i++) + { + t = step*(float)i; + + Vector2 point = { 0 }; + + point.x = p1.x*(1.0f - t) + p2.x*t; + point.y = p1.y*(1.0f - t) + p2.y*t; + + // TODO: Doesn't seem to be working properly for more than 3 distinct values + float thick; + { + float tMajor = t*(float)thickCount; + int tIndex = (int)tMajor; + float tMinor = tMajor - (float)tIndex; + tIndex *= 3; + if (tIndex >= thickCount - 3) + { + tIndex = thickCount - 4; + tMinor = 1.0f; + } + float a = powf(1.0f - t, 3); + float b = 3.0f*powf(1.0f - t, 2)*t; + float c = 3.0f*(1.0f - t)*t*t; + float d = t*t*t; + + thick = a*thicks[tIndex] + b*thicks[tIndex + 1] + c*thicks[tIndex + 2] + d*thicks[tIndex + 3]; + } + + current[0].x = point.x + thick*tangent.y; + current[0].y = point.y - thick*tangent.x; + + current[1].x = point.x - thick*tangent.y; + current[1].y = point.y + thick*tangent.x; + + if (i > 0) + { + rlVertex2f(current[0].x, current[0].y); + rlVertex2f(previous[0].x, previous[0].y); + rlVertex2f(previous[1].x, previous[1].y); + + rlVertex2f(current[1].x, current[1].y); + rlVertex2f(current[0].x, current[0].y); + rlVertex2f(previous[1].x, previous[1].y); + } + + previous[0] = current[0]; + previous[1] = current[1]; + } + + rlEnd(); + } + } +} + // Draw spline segment with variable thickness: Cubic Bezier, 2 points, 2 control points void DrawSplineSegmentBezierCubicVar(Vector2 p1, Vector2 c2, Vector2 c3, Vector2 p4, const float* thicks, int thickCount, Color color) { @@ -2138,8 +2221,8 @@ void DrawSplineSegmentBezierCubicVar(Vector2 p1, Vector2 c2, Vector2 c3, Vector2 float speedSqr = (tangent.x*tangent.x + tangent.y*tangent.y); if (speedSqr == 0) continue; float speedInv = 1.0f/sqrtf(speedSqr); - tangent.x = tangent.x*speedInv; - tangent.y = tangent.y*speedInv; + tangent.x *= speedInv; + tangent.y *= speedInv; Vector2 point = { 0 }; { @@ -2178,7 +2261,7 @@ void DrawSplineSegmentBezierCubicVar(Vector2 p1, Vector2 c2, Vector2 c3, Vector2 current[1].x = point.x - thick*tangent.y; current[1].y = point.y + thick*tangent.x; - if (i > 0) + if (i > 0) // TODO: `previous` may be unassigned in i=1 if i=0 had a `speedSqr` of 0 { rlVertex2f(current[0].x, current[0].y); rlVertex2f(previous[0].x, previous[0].y); From 9a5c02f67d79a53b834a8c464a2f7d1742c57795 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 4 Mar 2025 17:03:01 +0000 Subject: [PATCH 08/16] Update raylib_api.* by CI --- parser/output/raylib_api.json | 27 ++ parser/output/raylib_api.lua | 12 + parser/output/raylib_api.txt | 681 +++++++++++++++++----------------- parser/output/raylib_api.xml | 9 +- 4 files changed, 392 insertions(+), 337 deletions(-) diff --git a/parser/output/raylib_api.json b/parser/output/raylib_api.json index 5d80b7a6901c..63ff1f7507b2 100644 --- a/parser/output/raylib_api.json +++ b/parser/output/raylib_api.json @@ -6518,6 +6518,33 @@ } ] }, + { + "name": "DrawSplineSegmentLinearVar", + "description": "Draw spline segment with variable thickness: Linear Bezier, 2 points", + "returnType": "void", + "params": [ + { + "type": "Vector2", + "name": "p1" + }, + { + "type": "Vector2", + "name": "p2" + }, + { + "type": "const float*", + "name": "thicks" + }, + { + "type": "int", + "name": "thickCount" + }, + { + "type": "Color", + "name": "color" + } + ] + }, { "name": "DrawSplineSegmentBezierCubicVar", "description": "Draw spline segment with variable thickness: Cubic Bezier, 2 points, 2 control points", diff --git a/parser/output/raylib_api.lua b/parser/output/raylib_api.lua index 2127f3a45d1b..a9c73f6c5d8b 100644 --- a/parser/output/raylib_api.lua +++ b/parser/output/raylib_api.lua @@ -5210,6 +5210,18 @@ return { {type = "Color", name = "color"} } }, + { + name = "DrawSplineSegmentLinearVar", + description = "Draw spline segment with variable thickness: Linear Bezier, 2 points", + returnType = "void", + params = { + {type = "Vector2", name = "p1"}, + {type = "Vector2", name = "p2"}, + {type = "const float*", name = "thicks"}, + {type = "int", name = "thickCount"}, + {type = "Color", name = "color"} + } + }, { name = "DrawSplineSegmentBezierCubicVar", description = "Draw spline segment with variable thickness: Cubic Bezier, 2 points, 2 control points", diff --git a/parser/output/raylib_api.txt b/parser/output/raylib_api.txt index 6eec756e5cb5..ab43c00c9c0e 100644 --- a/parser/output/raylib_api.txt +++ b/parser/output/raylib_api.txt @@ -993,7 +993,7 @@ Callback 006: AudioCallback() (2 input parameters) Param[1]: bufferData (type: void *) Param[2]: frames (type: unsigned int) -Functions found: 594 +Functions found: 595 Function 001: InitWindow() (3 input parameters) Name: InitWindow @@ -2528,7 +2528,16 @@ Function 259: DrawSplineSegmentBezierCubic() (6 input parameters) Param[4]: p4 (type: Vector2) Param[5]: thick (type: float) Param[6]: color (type: Color) -Function 260: DrawSplineSegmentBezierCubicVar() (7 input parameters) +Function 260: DrawSplineSegmentLinearVar() (5 input parameters) + Name: DrawSplineSegmentLinearVar + Return type: void + Description: Draw spline segment with variable thickness: Linear Bezier, 2 points + Param[1]: p1 (type: Vector2) + Param[2]: p2 (type: Vector2) + Param[3]: thicks (type: const float*) + Param[4]: thickCount (type: int) + Param[5]: color (type: Color) +Function 261: DrawSplineSegmentBezierCubicVar() (7 input parameters) Name: DrawSplineSegmentBezierCubicVar Return type: void Description: Draw spline segment with variable thickness: Cubic Bezier, 2 points, 2 control points @@ -2539,14 +2548,14 @@ Function 260: DrawSplineSegmentBezierCubicVar() (7 input parameters) Param[5]: thicks (type: const float*) Param[6]: thickCount (type: int) Param[7]: color (type: Color) -Function 261: GetSplinePointLinear() (3 input parameters) +Function 262: GetSplinePointLinear() (3 input parameters) Name: GetSplinePointLinear Return type: Vector2 Description: Get (evaluate) spline point: Linear Param[1]: startPos (type: Vector2) Param[2]: endPos (type: Vector2) Param[3]: t (type: float) -Function 262: GetSplinePointBasis() (5 input parameters) +Function 263: GetSplinePointBasis() (5 input parameters) Name: GetSplinePointBasis Return type: Vector2 Description: Get (evaluate) spline point: B-Spline @@ -2555,7 +2564,7 @@ Function 262: GetSplinePointBasis() (5 input parameters) Param[3]: p3 (type: Vector2) Param[4]: p4 (type: Vector2) Param[5]: t (type: float) -Function 263: GetSplinePointCatmullRom() (5 input parameters) +Function 264: GetSplinePointCatmullRom() (5 input parameters) Name: GetSplinePointCatmullRom Return type: Vector2 Description: Get (evaluate) spline point: Catmull-Rom @@ -2564,7 +2573,7 @@ Function 263: GetSplinePointCatmullRom() (5 input parameters) Param[3]: p3 (type: Vector2) Param[4]: p4 (type: Vector2) Param[5]: t (type: float) -Function 264: GetSplinePointBezierQuad() (4 input parameters) +Function 265: GetSplinePointBezierQuad() (4 input parameters) Name: GetSplinePointBezierQuad Return type: Vector2 Description: Get (evaluate) spline point: Quadratic Bezier @@ -2572,7 +2581,7 @@ Function 264: GetSplinePointBezierQuad() (4 input parameters) Param[2]: c2 (type: Vector2) Param[3]: p3 (type: Vector2) Param[4]: t (type: float) -Function 265: GetSplinePointBezierCubic() (5 input parameters) +Function 266: GetSplinePointBezierCubic() (5 input parameters) Name: GetSplinePointBezierCubic Return type: Vector2 Description: Get (evaluate) spline point: Cubic Bezier @@ -2581,13 +2590,13 @@ Function 265: GetSplinePointBezierCubic() (5 input parameters) Param[3]: c3 (type: Vector2) Param[4]: p4 (type: Vector2) Param[5]: t (type: float) -Function 266: GetSplineVelocityLinear() (2 input parameters) +Function 267: GetSplineVelocityLinear() (2 input parameters) Name: GetSplineVelocityLinear Return type: Vector2 Description: Get (evaluate) spline velocity: Linear Param[1]: startPos (type: Vector2) Param[2]: endPos (type: Vector2) -Function 267: GetSplineVelocityBezierQuad() (4 input parameters) +Function 268: GetSplineVelocityBezierQuad() (4 input parameters) Name: GetSplineVelocityBezierQuad Return type: Vector2 Description: Get (evaluate) spline velocity: Quadratic Bezier @@ -2595,7 +2604,7 @@ Function 267: GetSplineVelocityBezierQuad() (4 input parameters) Param[2]: controlPos (type: Vector2) Param[3]: endPos (type: Vector2) Param[4]: t (type: float) -Function 268: GetSplineVelocityBezierCubic() (5 input parameters) +Function 269: GetSplineVelocityBezierCubic() (5 input parameters) Name: GetSplineVelocityBezierCubic Return type: Vector2 Description: Get (evaluate) spline velocity: Cubic Bezier @@ -2604,14 +2613,14 @@ Function 268: GetSplineVelocityBezierCubic() (5 input parameters) Param[3]: endControlPos (type: Vector2) Param[4]: endPos (type: Vector2) Param[5]: t (type: float) -Function 269: GetSplineAccelerationBezierQuad() (3 input parameters) +Function 270: GetSplineAccelerationBezierQuad() (3 input parameters) Name: GetSplineAccelerationBezierQuad Return type: Vector2 Description: Get (evaluate) spline acceleration: Quadratic Bezier Param[1]: startPos (type: Vector2) Param[2]: controlPos (type: Vector2) Param[3]: endPos (type: Vector2) -Function 270: GetSplineAccelerationBezierCubic() (5 input parameters) +Function 271: GetSplineAccelerationBezierCubic() (5 input parameters) Name: GetSplineAccelerationBezierCubic Return type: Vector2 Description: Get (evaluate) spline acceleration: Cubic Bezier @@ -2620,7 +2629,7 @@ Function 270: GetSplineAccelerationBezierCubic() (5 input parameters) Param[3]: endControlPos (type: Vector2) Param[4]: endPos (type: Vector2) Param[5]: t (type: float) -Function 271: GetSplineJoltBezierCubic() (4 input parameters) +Function 272: GetSplineJoltBezierCubic() (4 input parameters) Name: GetSplineJoltBezierCubic Return type: Vector2 Description: Get (evaluate) spline jolt: Cubic Bezier @@ -2628,20 +2637,20 @@ Function 271: GetSplineJoltBezierCubic() (4 input parameters) Param[2]: startControlPos (type: Vector2) Param[3]: endControlPos (type: Vector2) Param[4]: endPos (type: Vector2) -Function 272: GetSplineBoundsBezierLinear() (2 input parameters) +Function 273: GetSplineBoundsBezierLinear() (2 input parameters) Name: GetSplineBoundsBezierLinear Return type: Rectangle Description: Get (evaluate) spline bounds rectangle: Linear Param[1]: startPos (type: Vector2) Param[2]: endPos (type: Vector2) -Function 273: GetSplineBoundsBezierQuad() (3 input parameters) +Function 274: GetSplineBoundsBezierQuad() (3 input parameters) Name: GetSplineBoundsBezierQuad Return type: Rectangle Description: Get (evaluate) spline bounds rectangle: Quadratic Bezier Param[1]: startPos (type: Vector2) Param[2]: controlPos (type: Vector2) Param[3]: endPos (type: Vector2) -Function 274: GetSplineBoundsBezierCubic() (4 input parameters) +Function 275: GetSplineBoundsBezierCubic() (4 input parameters) Name: GetSplineBoundsBezierCubic Return type: Rectangle Description: Get (evaluate) spline bounds rectangle: Cubic Bezier @@ -2649,7 +2658,7 @@ Function 274: GetSplineBoundsBezierCubic() (4 input parameters) Param[2]: startControlPos (type: Vector2) Param[3]: endControlPos (type: Vector2) Param[4]: endPos (type: Vector2) -Function 275: GetSplineCurvatureBezierCubic() (5 input parameters) +Function 276: GetSplineCurvatureBezierCubic() (5 input parameters) Name: GetSplineCurvatureBezierCubic Return type: float Description: Get (evaluate) spline curvature: Cubic Bezier @@ -2658,20 +2667,20 @@ Function 275: GetSplineCurvatureBezierCubic() (5 input parameters) Param[3]: endControlPos (type: Vector2) Param[4]: endPos (type: Vector2) Param[5]: t (type: float) -Function 276: GetSplineNearestTLinear() (3 input parameters) +Function 277: GetSplineNearestTLinear() (3 input parameters) Name: GetSplineNearestTLinear Return type: float Description: Get (evaluate) nearest t value to point: Linear Param[1]: startPos (type: Vector2) Param[2]: endPos (type: Vector2) Param[3]: point (type: Vector2) -Function 277: CheckCollisionRecs() (2 input parameters) +Function 278: CheckCollisionRecs() (2 input parameters) Name: CheckCollisionRecs Return type: bool Description: Check collision between two rectangles Param[1]: rec1 (type: Rectangle) Param[2]: rec2 (type: Rectangle) -Function 278: CheckCollisionCircles() (4 input parameters) +Function 279: CheckCollisionCircles() (4 input parameters) Name: CheckCollisionCircles Return type: bool Description: Check collision between two circles @@ -2679,14 +2688,14 @@ Function 278: CheckCollisionCircles() (4 input parameters) Param[2]: radius1 (type: float) Param[3]: center2 (type: Vector2) Param[4]: radius2 (type: float) -Function 279: CheckCollisionCircleRec() (3 input parameters) +Function 280: CheckCollisionCircleRec() (3 input parameters) Name: CheckCollisionCircleRec Return type: bool Description: Check collision between circle and rectangle Param[1]: center (type: Vector2) Param[2]: radius (type: float) Param[3]: rec (type: Rectangle) -Function 280: CheckCollisionCircleLine() (4 input parameters) +Function 281: CheckCollisionCircleLine() (4 input parameters) Name: CheckCollisionCircleLine Return type: bool Description: Check if circle collides with a line created betweeen two points [p1] and [p2] @@ -2694,20 +2703,20 @@ Function 280: CheckCollisionCircleLine() (4 input parameters) Param[2]: radius (type: float) Param[3]: p1 (type: Vector2) Param[4]: p2 (type: Vector2) -Function 281: CheckCollisionPointRec() (2 input parameters) +Function 282: CheckCollisionPointRec() (2 input parameters) Name: CheckCollisionPointRec Return type: bool Description: Check if point is inside rectangle Param[1]: point (type: Vector2) Param[2]: rec (type: Rectangle) -Function 282: CheckCollisionPointCircle() (3 input parameters) +Function 283: CheckCollisionPointCircle() (3 input parameters) Name: CheckCollisionPointCircle Return type: bool Description: Check if point is inside circle Param[1]: point (type: Vector2) Param[2]: center (type: Vector2) Param[3]: radius (type: float) -Function 283: CheckCollisionPointTriangle() (4 input parameters) +Function 284: CheckCollisionPointTriangle() (4 input parameters) Name: CheckCollisionPointTriangle Return type: bool Description: Check if point is inside a triangle @@ -2715,7 +2724,7 @@ Function 283: CheckCollisionPointTriangle() (4 input parameters) Param[2]: p1 (type: Vector2) Param[3]: p2 (type: Vector2) Param[4]: p3 (type: Vector2) -Function 284: CheckCollisionPointLine() (4 input parameters) +Function 285: CheckCollisionPointLine() (4 input parameters) Name: CheckCollisionPointLine Return type: bool Description: Check if point belongs to line created between two points [p1] and [p2] with defined margin in pixels [threshold] @@ -2723,14 +2732,14 @@ Function 284: CheckCollisionPointLine() (4 input parameters) Param[2]: p1 (type: Vector2) Param[3]: p2 (type: Vector2) Param[4]: threshold (type: int) -Function 285: CheckCollisionPointPoly() (3 input parameters) +Function 286: CheckCollisionPointPoly() (3 input parameters) Name: CheckCollisionPointPoly Return type: bool Description: Check if point is within a polygon described by array of vertices Param[1]: point (type: Vector2) Param[2]: points (type: const Vector2 *) Param[3]: pointCount (type: int) -Function 286: CheckCollisionLines() (5 input parameters) +Function 287: CheckCollisionLines() (5 input parameters) Name: CheckCollisionLines Return type: bool Description: Check the collision between two lines defined by two points each, returns collision point by reference @@ -2739,18 +2748,18 @@ Function 286: CheckCollisionLines() (5 input parameters) Param[3]: startPos2 (type: Vector2) Param[4]: endPos2 (type: Vector2) Param[5]: collisionPoint (type: Vector2 *) -Function 287: GetCollisionRec() (2 input parameters) +Function 288: GetCollisionRec() (2 input parameters) Name: GetCollisionRec Return type: Rectangle Description: Get collision rectangle for two rectangles collision Param[1]: rec1 (type: Rectangle) Param[2]: rec2 (type: Rectangle) -Function 288: LoadImage() (1 input parameters) +Function 289: LoadImage() (1 input parameters) Name: LoadImage Return type: Image Description: Load image from file into CPU memory (RAM) Param[1]: fileName (type: const char *) -Function 289: LoadImageRaw() (5 input parameters) +Function 290: LoadImageRaw() (5 input parameters) Name: LoadImageRaw Return type: Image Description: Load image from RAW file data @@ -2759,13 +2768,13 @@ Function 289: LoadImageRaw() (5 input parameters) Param[3]: height (type: int) Param[4]: format (type: int) Param[5]: headerSize (type: int) -Function 290: LoadImageAnim() (2 input parameters) +Function 291: LoadImageAnim() (2 input parameters) Name: LoadImageAnim Return type: Image Description: Load image sequence from file (frames appended to image.data) Param[1]: fileName (type: const char *) Param[2]: frames (type: int *) -Function 291: LoadImageAnimFromMemory() (4 input parameters) +Function 292: LoadImageAnimFromMemory() (4 input parameters) Name: LoadImageAnimFromMemory Return type: Image Description: Load image sequence from memory buffer @@ -2773,60 +2782,60 @@ Function 291: LoadImageAnimFromMemory() (4 input parameters) Param[2]: fileData (type: const unsigned char *) Param[3]: dataSize (type: int) Param[4]: frames (type: int *) -Function 292: LoadImageFromMemory() (3 input parameters) +Function 293: LoadImageFromMemory() (3 input parameters) Name: LoadImageFromMemory Return type: Image Description: Load image from memory buffer, fileType refers to extension: i.e. '.png' Param[1]: fileType (type: const char *) Param[2]: fileData (type: const unsigned char *) Param[3]: dataSize (type: int) -Function 293: LoadImageFromTexture() (1 input parameters) +Function 294: LoadImageFromTexture() (1 input parameters) Name: LoadImageFromTexture Return type: Image Description: Load image from GPU texture data Param[1]: texture (type: Texture2D) -Function 294: LoadImageFromScreen() (0 input parameters) +Function 295: LoadImageFromScreen() (0 input parameters) Name: LoadImageFromScreen Return type: Image Description: Load image from screen buffer and (screenshot) No input parameters -Function 295: IsImageValid() (1 input parameters) +Function 296: IsImageValid() (1 input parameters) Name: IsImageValid Return type: bool Description: Check if an image is valid (data and parameters) Param[1]: image (type: Image) -Function 296: UnloadImage() (1 input parameters) +Function 297: UnloadImage() (1 input parameters) Name: UnloadImage Return type: void Description: Unload image from CPU memory (RAM) Param[1]: image (type: Image) -Function 297: ExportImage() (2 input parameters) +Function 298: ExportImage() (2 input parameters) Name: ExportImage Return type: bool Description: Export image data to file, returns true on success Param[1]: image (type: Image) Param[2]: fileName (type: const char *) -Function 298: ExportImageToMemory() (3 input parameters) +Function 299: ExportImageToMemory() (3 input parameters) Name: ExportImageToMemory Return type: unsigned char * Description: Export image to memory buffer Param[1]: image (type: Image) Param[2]: fileType (type: const char *) Param[3]: fileSize (type: int *) -Function 299: ExportImageAsCode() (2 input parameters) +Function 300: ExportImageAsCode() (2 input parameters) Name: ExportImageAsCode Return type: bool Description: Export image as code file defining an array of bytes, returns true on success Param[1]: image (type: Image) Param[2]: fileName (type: const char *) -Function 300: GenImageColor() (3 input parameters) +Function 301: GenImageColor() (3 input parameters) Name: GenImageColor Return type: Image Description: Generate image: plain color Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: color (type: Color) -Function 301: GenImageGradientLinear() (5 input parameters) +Function 302: GenImageGradientLinear() (5 input parameters) Name: GenImageGradientLinear Return type: Image Description: Generate image: linear gradient, direction in degrees [0..360], 0=Vertical gradient @@ -2835,7 +2844,7 @@ Function 301: GenImageGradientLinear() (5 input parameters) Param[3]: direction (type: int) Param[4]: start (type: Color) Param[5]: end (type: Color) -Function 302: GenImageGradientRadial() (5 input parameters) +Function 303: GenImageGradientRadial() (5 input parameters) Name: GenImageGradientRadial Return type: Image Description: Generate image: radial gradient @@ -2844,7 +2853,7 @@ Function 302: GenImageGradientRadial() (5 input parameters) Param[3]: density (type: float) Param[4]: inner (type: Color) Param[5]: outer (type: Color) -Function 303: GenImageGradientSquare() (5 input parameters) +Function 304: GenImageGradientSquare() (5 input parameters) Name: GenImageGradientSquare Return type: Image Description: Generate image: square gradient @@ -2853,7 +2862,7 @@ Function 303: GenImageGradientSquare() (5 input parameters) Param[3]: density (type: float) Param[4]: inner (type: Color) Param[5]: outer (type: Color) -Function 304: GenImageChecked() (6 input parameters) +Function 305: GenImageChecked() (6 input parameters) Name: GenImageChecked Return type: Image Description: Generate image: checked @@ -2863,14 +2872,14 @@ Function 304: GenImageChecked() (6 input parameters) Param[4]: checksY (type: int) Param[5]: col1 (type: Color) Param[6]: col2 (type: Color) -Function 305: GenImageWhiteNoise() (3 input parameters) +Function 306: GenImageWhiteNoise() (3 input parameters) Name: GenImageWhiteNoise Return type: Image Description: Generate image: white noise Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: factor (type: float) -Function 306: GenImagePerlinNoise() (5 input parameters) +Function 307: GenImagePerlinNoise() (5 input parameters) Name: GenImagePerlinNoise Return type: Image Description: Generate image: perlin noise @@ -2879,45 +2888,45 @@ Function 306: GenImagePerlinNoise() (5 input parameters) Param[3]: offsetX (type: int) Param[4]: offsetY (type: int) Param[5]: scale (type: float) -Function 307: GenImageCellular() (3 input parameters) +Function 308: GenImageCellular() (3 input parameters) Name: GenImageCellular Return type: Image Description: Generate image: cellular algorithm, bigger tileSize means bigger cells Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: tileSize (type: int) -Function 308: GenImageText() (3 input parameters) +Function 309: GenImageText() (3 input parameters) Name: GenImageText Return type: Image Description: Generate image: grayscale image from text data Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: text (type: const char *) -Function 309: ImageCopy() (1 input parameters) +Function 310: ImageCopy() (1 input parameters) Name: ImageCopy Return type: Image Description: Create an image duplicate (useful for transformations) Param[1]: image (type: Image) -Function 310: ImageFromImage() (2 input parameters) +Function 311: ImageFromImage() (2 input parameters) Name: ImageFromImage Return type: Image Description: Create an image from another image piece Param[1]: image (type: Image) Param[2]: rec (type: Rectangle) -Function 311: ImageFromChannel() (2 input parameters) +Function 312: ImageFromChannel() (2 input parameters) Name: ImageFromChannel Return type: Image Description: Create an image from a selected channel of another image (GRAYSCALE) Param[1]: image (type: Image) Param[2]: selectedChannel (type: int) -Function 312: ImageText() (3 input parameters) +Function 313: ImageText() (3 input parameters) Name: ImageText Return type: Image Description: Create an image from text (default font) Param[1]: text (type: const char *) Param[2]: fontSize (type: int) Param[3]: color (type: Color) -Function 313: ImageTextEx() (5 input parameters) +Function 314: ImageTextEx() (5 input parameters) Name: ImageTextEx Return type: Image Description: Create an image from text (custom sprite font) @@ -2926,76 +2935,76 @@ Function 313: ImageTextEx() (5 input parameters) Param[3]: fontSize (type: float) Param[4]: spacing (type: float) Param[5]: tint (type: Color) -Function 314: ImageFormat() (2 input parameters) +Function 315: ImageFormat() (2 input parameters) Name: ImageFormat Return type: void Description: Convert image data to desired format Param[1]: image (type: Image *) Param[2]: newFormat (type: int) -Function 315: ImageToPOT() (2 input parameters) +Function 316: ImageToPOT() (2 input parameters) Name: ImageToPOT Return type: void Description: Convert image to POT (power-of-two) Param[1]: image (type: Image *) Param[2]: fill (type: Color) -Function 316: ImageCrop() (2 input parameters) +Function 317: ImageCrop() (2 input parameters) Name: ImageCrop Return type: void Description: Crop an image to a defined rectangle Param[1]: image (type: Image *) Param[2]: crop (type: Rectangle) -Function 317: ImageAlphaCrop() (2 input parameters) +Function 318: ImageAlphaCrop() (2 input parameters) Name: ImageAlphaCrop Return type: void Description: Crop image depending on alpha value Param[1]: image (type: Image *) Param[2]: threshold (type: float) -Function 318: ImageAlphaClear() (3 input parameters) +Function 319: ImageAlphaClear() (3 input parameters) Name: ImageAlphaClear Return type: void Description: Clear alpha channel to desired color Param[1]: image (type: Image *) Param[2]: color (type: Color) Param[3]: threshold (type: float) -Function 319: ImageAlphaMask() (2 input parameters) +Function 320: ImageAlphaMask() (2 input parameters) Name: ImageAlphaMask Return type: void Description: Apply alpha mask to image Param[1]: image (type: Image *) Param[2]: alphaMask (type: Image) -Function 320: ImageAlphaPremultiply() (1 input parameters) +Function 321: ImageAlphaPremultiply() (1 input parameters) Name: ImageAlphaPremultiply Return type: void Description: Premultiply alpha channel Param[1]: image (type: Image *) -Function 321: ImageBlurGaussian() (2 input parameters) +Function 322: ImageBlurGaussian() (2 input parameters) Name: ImageBlurGaussian Return type: void Description: Apply Gaussian blur using a box blur approximation Param[1]: image (type: Image *) Param[2]: blurSize (type: int) -Function 322: ImageKernelConvolution() (3 input parameters) +Function 323: ImageKernelConvolution() (3 input parameters) Name: ImageKernelConvolution Return type: void Description: Apply custom square convolution kernel to image Param[1]: image (type: Image *) Param[2]: kernel (type: const float *) Param[3]: kernelSize (type: int) -Function 323: ImageResize() (3 input parameters) +Function 324: ImageResize() (3 input parameters) Name: ImageResize Return type: void Description: Resize image (Bicubic scaling algorithm) Param[1]: image (type: Image *) Param[2]: newWidth (type: int) Param[3]: newHeight (type: int) -Function 324: ImageResizeNN() (3 input parameters) +Function 325: ImageResizeNN() (3 input parameters) Name: ImageResizeNN Return type: void Description: Resize image (Nearest-Neighbor scaling algorithm) Param[1]: image (type: Image *) Param[2]: newWidth (type: int) Param[3]: newHeight (type: int) -Function 325: ImageResizeCanvas() (6 input parameters) +Function 326: ImageResizeCanvas() (6 input parameters) Name: ImageResizeCanvas Return type: void Description: Resize canvas and fill with color @@ -3005,12 +3014,12 @@ Function 325: ImageResizeCanvas() (6 input parameters) Param[4]: offsetX (type: int) Param[5]: offsetY (type: int) Param[6]: fill (type: Color) -Function 326: ImageMipmaps() (1 input parameters) +Function 327: ImageMipmaps() (1 input parameters) Name: ImageMipmaps Return type: void Description: Compute all mipmap levels for a provided image Param[1]: image (type: Image *) -Function 327: ImageDither() (5 input parameters) +Function 328: ImageDither() (5 input parameters) Name: ImageDither Return type: void Description: Dither image data to 16bpp or lower (Floyd-Steinberg dithering) @@ -3019,109 +3028,109 @@ Function 327: ImageDither() (5 input parameters) Param[3]: gBpp (type: int) Param[4]: bBpp (type: int) Param[5]: aBpp (type: int) -Function 328: ImageFlipVertical() (1 input parameters) +Function 329: ImageFlipVertical() (1 input parameters) Name: ImageFlipVertical Return type: void Description: Flip image vertically Param[1]: image (type: Image *) -Function 329: ImageFlipHorizontal() (1 input parameters) +Function 330: ImageFlipHorizontal() (1 input parameters) Name: ImageFlipHorizontal Return type: void Description: Flip image horizontally Param[1]: image (type: Image *) -Function 330: ImageRotate() (2 input parameters) +Function 331: ImageRotate() (2 input parameters) Name: ImageRotate Return type: void Description: Rotate image by input angle in degrees (-359 to 359) Param[1]: image (type: Image *) Param[2]: degrees (type: int) -Function 331: ImageRotateCW() (1 input parameters) +Function 332: ImageRotateCW() (1 input parameters) Name: ImageRotateCW Return type: void Description: Rotate image clockwise 90deg Param[1]: image (type: Image *) -Function 332: ImageRotateCCW() (1 input parameters) +Function 333: ImageRotateCCW() (1 input parameters) Name: ImageRotateCCW Return type: void Description: Rotate image counter-clockwise 90deg Param[1]: image (type: Image *) -Function 333: ImageColorTint() (2 input parameters) +Function 334: ImageColorTint() (2 input parameters) Name: ImageColorTint Return type: void Description: Modify image color: tint Param[1]: image (type: Image *) Param[2]: color (type: Color) -Function 334: ImageColorInvert() (1 input parameters) +Function 335: ImageColorInvert() (1 input parameters) Name: ImageColorInvert Return type: void Description: Modify image color: invert Param[1]: image (type: Image *) -Function 335: ImageColorGrayscale() (1 input parameters) +Function 336: ImageColorGrayscale() (1 input parameters) Name: ImageColorGrayscale Return type: void Description: Modify image color: grayscale Param[1]: image (type: Image *) -Function 336: ImageColorContrast() (2 input parameters) +Function 337: ImageColorContrast() (2 input parameters) Name: ImageColorContrast Return type: void Description: Modify image color: contrast (-100 to 100) Param[1]: image (type: Image *) Param[2]: contrast (type: float) -Function 337: ImageColorBrightness() (2 input parameters) +Function 338: ImageColorBrightness() (2 input parameters) Name: ImageColorBrightness Return type: void Description: Modify image color: brightness (-255 to 255) Param[1]: image (type: Image *) Param[2]: brightness (type: int) -Function 338: ImageColorReplace() (3 input parameters) +Function 339: ImageColorReplace() (3 input parameters) Name: ImageColorReplace Return type: void Description: Modify image color: replace color Param[1]: image (type: Image *) Param[2]: color (type: Color) Param[3]: replace (type: Color) -Function 339: LoadImageColors() (1 input parameters) +Function 340: LoadImageColors() (1 input parameters) Name: LoadImageColors Return type: Color * Description: Load color data from image as a Color array (RGBA - 32bit) Param[1]: image (type: Image) -Function 340: LoadImagePalette() (3 input parameters) +Function 341: LoadImagePalette() (3 input parameters) Name: LoadImagePalette Return type: Color * Description: Load colors palette from image as a Color array (RGBA - 32bit) Param[1]: image (type: Image) Param[2]: maxPaletteSize (type: int) Param[3]: colorCount (type: int *) -Function 341: UnloadImageColors() (1 input parameters) +Function 342: UnloadImageColors() (1 input parameters) Name: UnloadImageColors Return type: void Description: Unload color data loaded with LoadImageColors() Param[1]: colors (type: Color *) -Function 342: UnloadImagePalette() (1 input parameters) +Function 343: UnloadImagePalette() (1 input parameters) Name: UnloadImagePalette Return type: void Description: Unload colors palette loaded with LoadImagePalette() Param[1]: colors (type: Color *) -Function 343: GetImageAlphaBorder() (2 input parameters) +Function 344: GetImageAlphaBorder() (2 input parameters) Name: GetImageAlphaBorder Return type: Rectangle Description: Get image alpha border rectangle Param[1]: image (type: Image) Param[2]: threshold (type: float) -Function 344: GetImageColor() (3 input parameters) +Function 345: GetImageColor() (3 input parameters) Name: GetImageColor Return type: Color Description: Get image pixel color at (x, y) position Param[1]: image (type: Image) Param[2]: x (type: int) Param[3]: y (type: int) -Function 345: ImageClearBackground() (2 input parameters) +Function 346: ImageClearBackground() (2 input parameters) Name: ImageClearBackground Return type: void Description: Clear image background with given color Param[1]: dst (type: Image *) Param[2]: color (type: Color) -Function 346: ImageDrawPixel() (4 input parameters) +Function 347: ImageDrawPixel() (4 input parameters) Name: ImageDrawPixel Return type: void Description: Draw pixel within an image @@ -3129,14 +3138,14 @@ Function 346: ImageDrawPixel() (4 input parameters) Param[2]: posX (type: int) Param[3]: posY (type: int) Param[4]: color (type: Color) -Function 347: ImageDrawPixelV() (3 input parameters) +Function 348: ImageDrawPixelV() (3 input parameters) Name: ImageDrawPixelV Return type: void Description: Draw pixel within an image (Vector version) Param[1]: dst (type: Image *) Param[2]: position (type: Vector2) Param[3]: color (type: Color) -Function 348: ImageDrawLine() (6 input parameters) +Function 349: ImageDrawLine() (6 input parameters) Name: ImageDrawLine Return type: void Description: Draw line within an image @@ -3146,7 +3155,7 @@ Function 348: ImageDrawLine() (6 input parameters) Param[4]: endPosX (type: int) Param[5]: endPosY (type: int) Param[6]: color (type: Color) -Function 349: ImageDrawLineV() (4 input parameters) +Function 350: ImageDrawLineV() (4 input parameters) Name: ImageDrawLineV Return type: void Description: Draw line within an image (Vector version) @@ -3154,7 +3163,7 @@ Function 349: ImageDrawLineV() (4 input parameters) Param[2]: start (type: Vector2) Param[3]: end (type: Vector2) Param[4]: color (type: Color) -Function 350: ImageDrawLineEx() (5 input parameters) +Function 351: ImageDrawLineEx() (5 input parameters) Name: ImageDrawLineEx Return type: void Description: Draw a line defining thickness within an image @@ -3163,7 +3172,7 @@ Function 350: ImageDrawLineEx() (5 input parameters) Param[3]: end (type: Vector2) Param[4]: thick (type: int) Param[5]: color (type: Color) -Function 351: ImageDrawCircle() (5 input parameters) +Function 352: ImageDrawCircle() (5 input parameters) Name: ImageDrawCircle Return type: void Description: Draw a filled circle within an image @@ -3172,7 +3181,7 @@ Function 351: ImageDrawCircle() (5 input parameters) Param[3]: centerY (type: int) Param[4]: radius (type: int) Param[5]: color (type: Color) -Function 352: ImageDrawCircleV() (4 input parameters) +Function 353: ImageDrawCircleV() (4 input parameters) Name: ImageDrawCircleV Return type: void Description: Draw a filled circle within an image (Vector version) @@ -3180,7 +3189,7 @@ Function 352: ImageDrawCircleV() (4 input parameters) Param[2]: center (type: Vector2) Param[3]: radius (type: int) Param[4]: color (type: Color) -Function 353: ImageDrawCircleLines() (5 input parameters) +Function 354: ImageDrawCircleLines() (5 input parameters) Name: ImageDrawCircleLines Return type: void Description: Draw circle outline within an image @@ -3189,7 +3198,7 @@ Function 353: ImageDrawCircleLines() (5 input parameters) Param[3]: centerY (type: int) Param[4]: radius (type: int) Param[5]: color (type: Color) -Function 354: ImageDrawCircleLinesV() (4 input parameters) +Function 355: ImageDrawCircleLinesV() (4 input parameters) Name: ImageDrawCircleLinesV Return type: void Description: Draw circle outline within an image (Vector version) @@ -3197,7 +3206,7 @@ Function 354: ImageDrawCircleLinesV() (4 input parameters) Param[2]: center (type: Vector2) Param[3]: radius (type: int) Param[4]: color (type: Color) -Function 355: ImageDrawRectangle() (6 input parameters) +Function 356: ImageDrawRectangle() (6 input parameters) Name: ImageDrawRectangle Return type: void Description: Draw rectangle within an image @@ -3207,7 +3216,7 @@ Function 355: ImageDrawRectangle() (6 input parameters) Param[4]: width (type: int) Param[5]: height (type: int) Param[6]: color (type: Color) -Function 356: ImageDrawRectangleV() (4 input parameters) +Function 357: ImageDrawRectangleV() (4 input parameters) Name: ImageDrawRectangleV Return type: void Description: Draw rectangle within an image (Vector version) @@ -3215,14 +3224,14 @@ Function 356: ImageDrawRectangleV() (4 input parameters) Param[2]: position (type: Vector2) Param[3]: size (type: Vector2) Param[4]: color (type: Color) -Function 357: ImageDrawRectangleRec() (3 input parameters) +Function 358: ImageDrawRectangleRec() (3 input parameters) Name: ImageDrawRectangleRec Return type: void Description: Draw rectangle within an image Param[1]: dst (type: Image *) Param[2]: rec (type: Rectangle) Param[3]: color (type: Color) -Function 358: ImageDrawRectangleLines() (4 input parameters) +Function 359: ImageDrawRectangleLines() (4 input parameters) Name: ImageDrawRectangleLines Return type: void Description: Draw rectangle lines within an image @@ -3230,7 +3239,7 @@ Function 358: ImageDrawRectangleLines() (4 input parameters) Param[2]: rec (type: Rectangle) Param[3]: thick (type: int) Param[4]: color (type: Color) -Function 359: ImageDrawTriangle() (5 input parameters) +Function 360: ImageDrawTriangle() (5 input parameters) Name: ImageDrawTriangle Return type: void Description: Draw triangle within an image @@ -3239,7 +3248,7 @@ Function 359: ImageDrawTriangle() (5 input parameters) Param[3]: v2 (type: Vector2) Param[4]: v3 (type: Vector2) Param[5]: color (type: Color) -Function 360: ImageDrawTriangleEx() (7 input parameters) +Function 361: ImageDrawTriangleEx() (7 input parameters) Name: ImageDrawTriangleEx Return type: void Description: Draw triangle with interpolated colors within an image @@ -3250,7 +3259,7 @@ Function 360: ImageDrawTriangleEx() (7 input parameters) Param[5]: c1 (type: Color) Param[6]: c2 (type: Color) Param[7]: c3 (type: Color) -Function 361: ImageDrawTriangleLines() (5 input parameters) +Function 362: ImageDrawTriangleLines() (5 input parameters) Name: ImageDrawTriangleLines Return type: void Description: Draw triangle outline within an image @@ -3259,7 +3268,7 @@ Function 361: ImageDrawTriangleLines() (5 input parameters) Param[3]: v2 (type: Vector2) Param[4]: v3 (type: Vector2) Param[5]: color (type: Color) -Function 362: ImageDrawTriangleFan() (4 input parameters) +Function 363: ImageDrawTriangleFan() (4 input parameters) Name: ImageDrawTriangleFan Return type: void Description: Draw a triangle fan defined by points within an image (first vertex is the center) @@ -3267,7 +3276,7 @@ Function 362: ImageDrawTriangleFan() (4 input parameters) Param[2]: points (type: Vector2 *) Param[3]: pointCount (type: int) Param[4]: color (type: Color) -Function 363: ImageDrawTriangleStrip() (4 input parameters) +Function 364: ImageDrawTriangleStrip() (4 input parameters) Name: ImageDrawTriangleStrip Return type: void Description: Draw a triangle strip defined by points within an image @@ -3275,7 +3284,7 @@ Function 363: ImageDrawTriangleStrip() (4 input parameters) Param[2]: points (type: Vector2 *) Param[3]: pointCount (type: int) Param[4]: color (type: Color) -Function 364: ImageDraw() (5 input parameters) +Function 365: ImageDraw() (5 input parameters) Name: ImageDraw Return type: void Description: Draw a source image within a destination image (tint applied to source) @@ -3284,7 +3293,7 @@ Function 364: ImageDraw() (5 input parameters) Param[3]: srcRec (type: Rectangle) Param[4]: dstRec (type: Rectangle) Param[5]: tint (type: Color) -Function 365: ImageDrawText() (6 input parameters) +Function 366: ImageDrawText() (6 input parameters) Name: ImageDrawText Return type: void Description: Draw text (using default font) within an image (destination) @@ -3294,7 +3303,7 @@ Function 365: ImageDrawText() (6 input parameters) Param[4]: posY (type: int) Param[5]: fontSize (type: int) Param[6]: color (type: Color) -Function 366: ImageDrawTextEx() (7 input parameters) +Function 367: ImageDrawTextEx() (7 input parameters) Name: ImageDrawTextEx Return type: void Description: Draw text (custom sprite font) within an image (destination) @@ -3305,79 +3314,79 @@ Function 366: ImageDrawTextEx() (7 input parameters) Param[5]: fontSize (type: float) Param[6]: spacing (type: float) Param[7]: tint (type: Color) -Function 367: LoadTexture() (1 input parameters) +Function 368: LoadTexture() (1 input parameters) Name: LoadTexture Return type: Texture2D Description: Load texture from file into GPU memory (VRAM) Param[1]: fileName (type: const char *) -Function 368: LoadTextureFromImage() (1 input parameters) +Function 369: LoadTextureFromImage() (1 input parameters) Name: LoadTextureFromImage Return type: Texture2D Description: Load texture from image data Param[1]: image (type: Image) -Function 369: LoadTextureCubemap() (2 input parameters) +Function 370: LoadTextureCubemap() (2 input parameters) Name: LoadTextureCubemap Return type: TextureCubemap Description: Load cubemap from image, multiple image cubemap layouts supported Param[1]: image (type: Image) Param[2]: layout (type: int) -Function 370: LoadRenderTexture() (2 input parameters) +Function 371: LoadRenderTexture() (2 input parameters) Name: LoadRenderTexture Return type: RenderTexture2D Description: Load texture for rendering (framebuffer) Param[1]: width (type: int) Param[2]: height (type: int) -Function 371: IsTextureValid() (1 input parameters) +Function 372: IsTextureValid() (1 input parameters) Name: IsTextureValid Return type: bool Description: Check if a texture is valid (loaded in GPU) Param[1]: texture (type: Texture2D) -Function 372: UnloadTexture() (1 input parameters) +Function 373: UnloadTexture() (1 input parameters) Name: UnloadTexture Return type: void Description: Unload texture from GPU memory (VRAM) Param[1]: texture (type: Texture2D) -Function 373: IsRenderTextureValid() (1 input parameters) +Function 374: IsRenderTextureValid() (1 input parameters) Name: IsRenderTextureValid Return type: bool Description: Check if a render texture is valid (loaded in GPU) Param[1]: target (type: RenderTexture2D) -Function 374: UnloadRenderTexture() (1 input parameters) +Function 375: UnloadRenderTexture() (1 input parameters) Name: UnloadRenderTexture Return type: void Description: Unload render texture from GPU memory (VRAM) Param[1]: target (type: RenderTexture2D) -Function 375: UpdateTexture() (2 input parameters) +Function 376: UpdateTexture() (2 input parameters) Name: UpdateTexture Return type: void Description: Update GPU texture with new data Param[1]: texture (type: Texture2D) Param[2]: pixels (type: const void *) -Function 376: UpdateTextureRec() (3 input parameters) +Function 377: UpdateTextureRec() (3 input parameters) Name: UpdateTextureRec Return type: void Description: Update GPU texture rectangle with new data Param[1]: texture (type: Texture2D) Param[2]: rec (type: Rectangle) Param[3]: pixels (type: const void *) -Function 377: GenTextureMipmaps() (1 input parameters) +Function 378: GenTextureMipmaps() (1 input parameters) Name: GenTextureMipmaps Return type: void Description: Generate GPU mipmaps for a texture Param[1]: texture (type: Texture2D *) -Function 378: SetTextureFilter() (2 input parameters) +Function 379: SetTextureFilter() (2 input parameters) Name: SetTextureFilter Return type: void Description: Set texture scaling filter mode Param[1]: texture (type: Texture2D) Param[2]: filter (type: int) -Function 379: SetTextureWrap() (2 input parameters) +Function 380: SetTextureWrap() (2 input parameters) Name: SetTextureWrap Return type: void Description: Set texture wrapping mode Param[1]: texture (type: Texture2D) Param[2]: wrap (type: int) -Function 380: DrawTexture() (4 input parameters) +Function 381: DrawTexture() (4 input parameters) Name: DrawTexture Return type: void Description: Draw a Texture2D @@ -3385,14 +3394,14 @@ Function 380: DrawTexture() (4 input parameters) Param[2]: posX (type: int) Param[3]: posY (type: int) Param[4]: tint (type: Color) -Function 381: DrawTextureV() (3 input parameters) +Function 382: DrawTextureV() (3 input parameters) Name: DrawTextureV Return type: void Description: Draw a Texture2D with position defined as Vector2 Param[1]: texture (type: Texture2D) Param[2]: position (type: Vector2) Param[3]: tint (type: Color) -Function 382: DrawTextureEx() (5 input parameters) +Function 383: DrawTextureEx() (5 input parameters) Name: DrawTextureEx Return type: void Description: Draw a Texture2D with extended parameters @@ -3401,7 +3410,7 @@ Function 382: DrawTextureEx() (5 input parameters) Param[3]: rotation (type: float) Param[4]: scale (type: float) Param[5]: tint (type: Color) -Function 383: DrawTextureRec() (4 input parameters) +Function 384: DrawTextureRec() (4 input parameters) Name: DrawTextureRec Return type: void Description: Draw a part of a texture defined by a rectangle @@ -3409,7 +3418,7 @@ Function 383: DrawTextureRec() (4 input parameters) Param[2]: source (type: Rectangle) Param[3]: position (type: Vector2) Param[4]: tint (type: Color) -Function 384: DrawTexturePro() (6 input parameters) +Function 385: DrawTexturePro() (6 input parameters) Name: DrawTexturePro Return type: void Description: Draw a part of a texture defined by a rectangle with 'pro' parameters @@ -3419,7 +3428,7 @@ Function 384: DrawTexturePro() (6 input parameters) Param[4]: origin (type: Vector2) Param[5]: rotation (type: float) Param[6]: tint (type: Color) -Function 385: DrawTextureNPatch() (6 input parameters) +Function 386: DrawTextureNPatch() (6 input parameters) Name: DrawTextureNPatch Return type: void Description: Draws a texture (or part of it) that stretches or shrinks nicely @@ -3429,119 +3438,119 @@ Function 385: DrawTextureNPatch() (6 input parameters) Param[4]: origin (type: Vector2) Param[5]: rotation (type: float) Param[6]: tint (type: Color) -Function 386: ColorIsEqual() (2 input parameters) +Function 387: ColorIsEqual() (2 input parameters) Name: ColorIsEqual Return type: bool Description: Check if two colors are equal Param[1]: col1 (type: Color) Param[2]: col2 (type: Color) -Function 387: Fade() (2 input parameters) +Function 388: Fade() (2 input parameters) Name: Fade Return type: Color Description: Get color with alpha applied, alpha goes from 0.0f to 1.0f Param[1]: color (type: Color) Param[2]: alpha (type: float) -Function 388: ColorToInt() (1 input parameters) +Function 389: ColorToInt() (1 input parameters) Name: ColorToInt Return type: int Description: Get hexadecimal value for a Color (0xRRGGBBAA) Param[1]: color (type: Color) -Function 389: ColorNormalize() (1 input parameters) +Function 390: ColorNormalize() (1 input parameters) Name: ColorNormalize Return type: Vector4 Description: Get Color normalized as float [0..1] Param[1]: color (type: Color) -Function 390: ColorFromNormalized() (1 input parameters) +Function 391: ColorFromNormalized() (1 input parameters) Name: ColorFromNormalized Return type: Color Description: Get Color from normalized values [0..1] Param[1]: normalized (type: Vector4) -Function 391: ColorToHSV() (1 input parameters) +Function 392: ColorToHSV() (1 input parameters) Name: ColorToHSV Return type: Vector3 Description: Get HSV values for a Color, hue [0..360], saturation/value [0..1] Param[1]: color (type: Color) -Function 392: ColorFromHSV() (3 input parameters) +Function 393: ColorFromHSV() (3 input parameters) Name: ColorFromHSV Return type: Color Description: Get a Color from HSV values, hue [0..360], saturation/value [0..1] Param[1]: hue (type: float) Param[2]: saturation (type: float) Param[3]: value (type: float) -Function 393: ColorTint() (2 input parameters) +Function 394: ColorTint() (2 input parameters) Name: ColorTint Return type: Color Description: Get color multiplied with another color Param[1]: color (type: Color) Param[2]: tint (type: Color) -Function 394: ColorBrightness() (2 input parameters) +Function 395: ColorBrightness() (2 input parameters) Name: ColorBrightness Return type: Color Description: Get color with brightness correction, brightness factor goes from -1.0f to 1.0f Param[1]: color (type: Color) Param[2]: factor (type: float) -Function 395: ColorContrast() (2 input parameters) +Function 396: ColorContrast() (2 input parameters) Name: ColorContrast Return type: Color Description: Get color with contrast correction, contrast values between -1.0f and 1.0f Param[1]: color (type: Color) Param[2]: contrast (type: float) -Function 396: ColorAlpha() (2 input parameters) +Function 397: ColorAlpha() (2 input parameters) Name: ColorAlpha Return type: Color Description: Get color with alpha applied, alpha goes from 0.0f to 1.0f Param[1]: color (type: Color) Param[2]: alpha (type: float) -Function 397: ColorAlphaBlend() (3 input parameters) +Function 398: ColorAlphaBlend() (3 input parameters) Name: ColorAlphaBlend Return type: Color Description: Get src alpha-blended into dst color with tint Param[1]: dst (type: Color) Param[2]: src (type: Color) Param[3]: tint (type: Color) -Function 398: ColorLerp() (3 input parameters) +Function 399: ColorLerp() (3 input parameters) Name: ColorLerp Return type: Color Description: Get color lerp interpolation between two colors, factor [0.0f..1.0f] Param[1]: color1 (type: Color) Param[2]: color2 (type: Color) Param[3]: factor (type: float) -Function 399: GetColor() (1 input parameters) +Function 400: GetColor() (1 input parameters) Name: GetColor Return type: Color Description: Get Color structure from hexadecimal value Param[1]: hexValue (type: unsigned int) -Function 400: GetPixelColor() (2 input parameters) +Function 401: GetPixelColor() (2 input parameters) Name: GetPixelColor Return type: Color Description: Get Color from a source pixel pointer of certain format Param[1]: srcPtr (type: void *) Param[2]: format (type: int) -Function 401: SetPixelColor() (3 input parameters) +Function 402: SetPixelColor() (3 input parameters) Name: SetPixelColor Return type: void Description: Set color formatted into destination pixel pointer Param[1]: dstPtr (type: void *) Param[2]: color (type: Color) Param[3]: format (type: int) -Function 402: GetPixelDataSize() (3 input parameters) +Function 403: GetPixelDataSize() (3 input parameters) Name: GetPixelDataSize Return type: int Description: Get pixel data size in bytes for certain format Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: format (type: int) -Function 403: GetFontDefault() (0 input parameters) +Function 404: GetFontDefault() (0 input parameters) Name: GetFontDefault Return type: Font Description: Get the default Font No input parameters -Function 404: LoadFont() (1 input parameters) +Function 405: LoadFont() (1 input parameters) Name: LoadFont Return type: Font Description: Load font from file into GPU memory (VRAM) Param[1]: fileName (type: const char *) -Function 405: LoadFontEx() (4 input parameters) +Function 406: LoadFontEx() (4 input parameters) Name: LoadFontEx Return type: Font Description: Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character set, font size is provided in pixels height @@ -3549,14 +3558,14 @@ Function 405: LoadFontEx() (4 input parameters) Param[2]: fontSize (type: int) Param[3]: codepoints (type: int *) Param[4]: codepointCount (type: int) -Function 406: LoadFontFromImage() (3 input parameters) +Function 407: LoadFontFromImage() (3 input parameters) Name: LoadFontFromImage Return type: Font Description: Load font from Image (XNA style) Param[1]: image (type: Image) Param[2]: key (type: Color) Param[3]: firstChar (type: int) -Function 407: LoadFontFromMemory() (6 input parameters) +Function 408: LoadFontFromMemory() (6 input parameters) Name: LoadFontFromMemory Return type: Font Description: Load font from memory buffer, fileType refers to extension: i.e. '.ttf' @@ -3566,12 +3575,12 @@ Function 407: LoadFontFromMemory() (6 input parameters) Param[4]: fontSize (type: int) Param[5]: codepoints (type: int *) Param[6]: codepointCount (type: int) -Function 408: IsFontValid() (1 input parameters) +Function 409: IsFontValid() (1 input parameters) Name: IsFontValid Return type: bool Description: Check if a font is valid (font data loaded, WARNING: GPU texture not checked) Param[1]: font (type: Font) -Function 409: LoadFontData() (6 input parameters) +Function 410: LoadFontData() (6 input parameters) Name: LoadFontData Return type: GlyphInfo * Description: Load font data for further use @@ -3581,7 +3590,7 @@ Function 409: LoadFontData() (6 input parameters) Param[4]: codepoints (type: int *) Param[5]: codepointCount (type: int) Param[6]: type (type: int) -Function 410: GenImageFontAtlas() (6 input parameters) +Function 411: GenImageFontAtlas() (6 input parameters) Name: GenImageFontAtlas Return type: Image Description: Generate image font atlas using chars info @@ -3591,30 +3600,30 @@ Function 410: GenImageFontAtlas() (6 input parameters) Param[4]: fontSize (type: int) Param[5]: padding (type: int) Param[6]: packMethod (type: int) -Function 411: UnloadFontData() (2 input parameters) +Function 412: UnloadFontData() (2 input parameters) Name: UnloadFontData Return type: void Description: Unload font chars info data (RAM) Param[1]: glyphs (type: GlyphInfo *) Param[2]: glyphCount (type: int) -Function 412: UnloadFont() (1 input parameters) +Function 413: UnloadFont() (1 input parameters) Name: UnloadFont Return type: void Description: Unload font from GPU memory (VRAM) Param[1]: font (type: Font) -Function 413: ExportFontAsCode() (2 input parameters) +Function 414: ExportFontAsCode() (2 input parameters) Name: ExportFontAsCode Return type: bool Description: Export font as code file, returns true on success Param[1]: font (type: Font) Param[2]: fileName (type: const char *) -Function 414: DrawFPS() (2 input parameters) +Function 415: DrawFPS() (2 input parameters) Name: DrawFPS Return type: void Description: Draw current FPS Param[1]: posX (type: int) Param[2]: posY (type: int) -Function 415: DrawText() (5 input parameters) +Function 416: DrawText() (5 input parameters) Name: DrawText Return type: void Description: Draw text (using default font) @@ -3623,7 +3632,7 @@ Function 415: DrawText() (5 input parameters) Param[3]: posY (type: int) Param[4]: fontSize (type: int) Param[5]: color (type: Color) -Function 416: DrawTextEx() (6 input parameters) +Function 417: DrawTextEx() (6 input parameters) Name: DrawTextEx Return type: void Description: Draw text using font and additional parameters @@ -3633,7 +3642,7 @@ Function 416: DrawTextEx() (6 input parameters) Param[4]: fontSize (type: float) Param[5]: spacing (type: float) Param[6]: tint (type: Color) -Function 417: DrawTextPro() (8 input parameters) +Function 418: DrawTextPro() (8 input parameters) Name: DrawTextPro Return type: void Description: Draw text using Font and pro parameters (rotation) @@ -3645,7 +3654,7 @@ Function 417: DrawTextPro() (8 input parameters) Param[6]: fontSize (type: float) Param[7]: spacing (type: float) Param[8]: tint (type: Color) -Function 418: DrawTextCodepoint() (5 input parameters) +Function 419: DrawTextCodepoint() (5 input parameters) Name: DrawTextCodepoint Return type: void Description: Draw one character (codepoint) @@ -3654,7 +3663,7 @@ Function 418: DrawTextCodepoint() (5 input parameters) Param[3]: position (type: Vector2) Param[4]: fontSize (type: float) Param[5]: tint (type: Color) -Function 419: DrawTextCodepoints() (7 input parameters) +Function 420: DrawTextCodepoints() (7 input parameters) Name: DrawTextCodepoints Return type: void Description: Draw multiple character (codepoint) @@ -3665,18 +3674,18 @@ Function 419: DrawTextCodepoints() (7 input parameters) Param[5]: fontSize (type: float) Param[6]: spacing (type: float) Param[7]: tint (type: Color) -Function 420: SetTextLineSpacing() (1 input parameters) +Function 421: SetTextLineSpacing() (1 input parameters) Name: SetTextLineSpacing Return type: void Description: Set vertical line spacing when drawing with line-breaks Param[1]: spacing (type: int) -Function 421: MeasureText() (2 input parameters) +Function 422: MeasureText() (2 input parameters) Name: MeasureText Return type: int Description: Measure string width for default font Param[1]: text (type: const char *) Param[2]: fontSize (type: int) -Function 422: MeasureTextEx() (4 input parameters) +Function 423: MeasureTextEx() (4 input parameters) Name: MeasureTextEx Return type: Vector2 Description: Measure string size for Font @@ -3684,195 +3693,195 @@ Function 422: MeasureTextEx() (4 input parameters) Param[2]: text (type: const char *) Param[3]: fontSize (type: float) Param[4]: spacing (type: float) -Function 423: GetGlyphIndex() (2 input parameters) +Function 424: GetGlyphIndex() (2 input parameters) Name: GetGlyphIndex Return type: int Description: Get glyph index position in font for a codepoint (unicode character), fallback to '?' if not found Param[1]: font (type: Font) Param[2]: codepoint (type: int) -Function 424: GetGlyphInfo() (2 input parameters) +Function 425: GetGlyphInfo() (2 input parameters) Name: GetGlyphInfo Return type: GlyphInfo Description: Get glyph font info data for a codepoint (unicode character), fallback to '?' if not found Param[1]: font (type: Font) Param[2]: codepoint (type: int) -Function 425: GetGlyphAtlasRec() (2 input parameters) +Function 426: GetGlyphAtlasRec() (2 input parameters) Name: GetGlyphAtlasRec Return type: Rectangle Description: Get glyph rectangle in font atlas for a codepoint (unicode character), fallback to '?' if not found Param[1]: font (type: Font) Param[2]: codepoint (type: int) -Function 426: LoadUTF8() (2 input parameters) +Function 427: LoadUTF8() (2 input parameters) Name: LoadUTF8 Return type: char * Description: Load UTF-8 text encoded from codepoints array Param[1]: codepoints (type: const int *) Param[2]: length (type: int) -Function 427: UnloadUTF8() (1 input parameters) +Function 428: UnloadUTF8() (1 input parameters) Name: UnloadUTF8 Return type: void Description: Unload UTF-8 text encoded from codepoints array Param[1]: text (type: char *) -Function 428: LoadCodepoints() (2 input parameters) +Function 429: LoadCodepoints() (2 input parameters) Name: LoadCodepoints Return type: int * Description: Load all codepoints from a UTF-8 text string, codepoints count returned by parameter Param[1]: text (type: const char *) Param[2]: count (type: int *) -Function 429: UnloadCodepoints() (1 input parameters) +Function 430: UnloadCodepoints() (1 input parameters) Name: UnloadCodepoints Return type: void Description: Unload codepoints data from memory Param[1]: codepoints (type: int *) -Function 430: GetCodepointCount() (1 input parameters) +Function 431: GetCodepointCount() (1 input parameters) Name: GetCodepointCount Return type: int Description: Get total number of codepoints in a UTF-8 encoded string Param[1]: text (type: const char *) -Function 431: GetCodepoint() (2 input parameters) +Function 432: GetCodepoint() (2 input parameters) Name: GetCodepoint Return type: int Description: Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure Param[1]: text (type: const char *) Param[2]: codepointSize (type: int *) -Function 432: GetCodepointNext() (2 input parameters) +Function 433: GetCodepointNext() (2 input parameters) Name: GetCodepointNext Return type: int Description: Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure Param[1]: text (type: const char *) Param[2]: codepointSize (type: int *) -Function 433: GetCodepointPrevious() (2 input parameters) +Function 434: GetCodepointPrevious() (2 input parameters) Name: GetCodepointPrevious Return type: int Description: Get previous codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure Param[1]: text (type: const char *) Param[2]: codepointSize (type: int *) -Function 434: CodepointToUTF8() (2 input parameters) +Function 435: CodepointToUTF8() (2 input parameters) Name: CodepointToUTF8 Return type: const char * Description: Encode one codepoint into UTF-8 byte array (array length returned as parameter) Param[1]: codepoint (type: int) Param[2]: utf8Size (type: int *) -Function 435: TextCopy() (2 input parameters) +Function 436: TextCopy() (2 input parameters) Name: TextCopy Return type: int Description: Copy one string to another, returns bytes copied Param[1]: dst (type: char *) Param[2]: src (type: const char *) -Function 436: TextIsEqual() (2 input parameters) +Function 437: TextIsEqual() (2 input parameters) Name: TextIsEqual Return type: bool Description: Check if two text string are equal Param[1]: text1 (type: const char *) Param[2]: text2 (type: const char *) -Function 437: TextLength() (1 input parameters) +Function 438: TextLength() (1 input parameters) Name: TextLength Return type: unsigned int Description: Get text length, checks for '\0' ending Param[1]: text (type: const char *) -Function 438: TextFormat() (2 input parameters) +Function 439: TextFormat() (2 input parameters) Name: TextFormat Return type: const char * Description: Text formatting with variables (sprintf() style) Param[1]: text (type: const char *) Param[2]: args (type: ...) -Function 439: TextSubtext() (3 input parameters) +Function 440: TextSubtext() (3 input parameters) Name: TextSubtext Return type: const char * Description: Get a piece of a text string Param[1]: text (type: const char *) Param[2]: position (type: int) Param[3]: length (type: int) -Function 440: TextReplace() (3 input parameters) +Function 441: TextReplace() (3 input parameters) Name: TextReplace Return type: char * Description: Replace text string (WARNING: memory must be freed!) Param[1]: text (type: const char *) Param[2]: replace (type: const char *) Param[3]: by (type: const char *) -Function 441: TextInsert() (3 input parameters) +Function 442: TextInsert() (3 input parameters) Name: TextInsert Return type: char * Description: Insert text in a position (WARNING: memory must be freed!) Param[1]: text (type: const char *) Param[2]: insert (type: const char *) Param[3]: position (type: int) -Function 442: TextJoin() (3 input parameters) +Function 443: TextJoin() (3 input parameters) Name: TextJoin Return type: char * Description: Join text strings with delimiter Param[1]: textList (type: char **) Param[2]: count (type: int) Param[3]: delimiter (type: const char *) -Function 443: TextSplit() (3 input parameters) +Function 444: TextSplit() (3 input parameters) Name: TextSplit Return type: char ** Description: Split text into multiple strings Param[1]: text (type: const char *) Param[2]: delimiter (type: char) Param[3]: count (type: int *) -Function 444: TextAppend() (3 input parameters) +Function 445: TextAppend() (3 input parameters) Name: TextAppend Return type: void Description: Append text at specific position and move cursor! Param[1]: text (type: char *) Param[2]: append (type: const char *) Param[3]: position (type: int *) -Function 445: TextFindIndex() (2 input parameters) +Function 446: TextFindIndex() (2 input parameters) Name: TextFindIndex Return type: int Description: Find first text occurrence within a string Param[1]: text (type: const char *) Param[2]: find (type: const char *) -Function 446: TextToUpper() (1 input parameters) +Function 447: TextToUpper() (1 input parameters) Name: TextToUpper Return type: char * Description: Get upper case version of provided string Param[1]: text (type: const char *) -Function 447: TextToLower() (1 input parameters) +Function 448: TextToLower() (1 input parameters) Name: TextToLower Return type: char * Description: Get lower case version of provided string Param[1]: text (type: const char *) -Function 448: TextToPascal() (1 input parameters) +Function 449: TextToPascal() (1 input parameters) Name: TextToPascal Return type: char * Description: Get Pascal case notation version of provided string Param[1]: text (type: const char *) -Function 449: TextToSnake() (1 input parameters) +Function 450: TextToSnake() (1 input parameters) Name: TextToSnake Return type: char * Description: Get Snake case notation version of provided string Param[1]: text (type: const char *) -Function 450: TextToCamel() (1 input parameters) +Function 451: TextToCamel() (1 input parameters) Name: TextToCamel Return type: char * Description: Get Camel case notation version of provided string Param[1]: text (type: const char *) -Function 451: TextToInteger() (1 input parameters) +Function 452: TextToInteger() (1 input parameters) Name: TextToInteger Return type: int Description: Get integer value from text Param[1]: text (type: const char *) -Function 452: TextToFloat() (1 input parameters) +Function 453: TextToFloat() (1 input parameters) Name: TextToFloat Return type: float Description: Get float value from text Param[1]: text (type: const char *) -Function 453: DrawLine3D() (3 input parameters) +Function 454: DrawLine3D() (3 input parameters) Name: DrawLine3D Return type: void Description: Draw a line in 3D world space Param[1]: startPos (type: Vector3) Param[2]: endPos (type: Vector3) Param[3]: color (type: Color) -Function 454: DrawPoint3D() (2 input parameters) +Function 455: DrawPoint3D() (2 input parameters) Name: DrawPoint3D Return type: void Description: Draw a point in 3D space, actually a small line Param[1]: position (type: Vector3) Param[2]: color (type: Color) -Function 455: DrawCircle3D() (5 input parameters) +Function 456: DrawCircle3D() (5 input parameters) Name: DrawCircle3D Return type: void Description: Draw a circle in 3D world space @@ -3881,7 +3890,7 @@ Function 455: DrawCircle3D() (5 input parameters) Param[3]: rotationAxis (type: Vector3) Param[4]: rotationAngle (type: float) Param[5]: color (type: Color) -Function 456: DrawTriangle3D() (4 input parameters) +Function 457: DrawTriangle3D() (4 input parameters) Name: DrawTriangle3D Return type: void Description: Draw a color-filled triangle (vertex in counter-clockwise order!) @@ -3889,14 +3898,14 @@ Function 456: DrawTriangle3D() (4 input parameters) Param[2]: v2 (type: Vector3) Param[3]: v3 (type: Vector3) Param[4]: color (type: Color) -Function 457: DrawTriangleStrip3D() (3 input parameters) +Function 458: DrawTriangleStrip3D() (3 input parameters) Name: DrawTriangleStrip3D Return type: void Description: Draw a triangle strip defined by points Param[1]: points (type: const Vector3 *) Param[2]: pointCount (type: int) Param[3]: color (type: Color) -Function 458: DrawCube() (5 input parameters) +Function 459: DrawCube() (5 input parameters) Name: DrawCube Return type: void Description: Draw cube @@ -3905,14 +3914,14 @@ Function 458: DrawCube() (5 input parameters) Param[3]: height (type: float) Param[4]: length (type: float) Param[5]: color (type: Color) -Function 459: DrawCubeV() (3 input parameters) +Function 460: DrawCubeV() (3 input parameters) Name: DrawCubeV Return type: void Description: Draw cube (Vector version) Param[1]: position (type: Vector3) Param[2]: size (type: Vector3) Param[3]: color (type: Color) -Function 460: DrawCubeWires() (5 input parameters) +Function 461: DrawCubeWires() (5 input parameters) Name: DrawCubeWires Return type: void Description: Draw cube wires @@ -3921,21 +3930,21 @@ Function 460: DrawCubeWires() (5 input parameters) Param[3]: height (type: float) Param[4]: length (type: float) Param[5]: color (type: Color) -Function 461: DrawCubeWiresV() (3 input parameters) +Function 462: DrawCubeWiresV() (3 input parameters) Name: DrawCubeWiresV Return type: void Description: Draw cube wires (Vector version) Param[1]: position (type: Vector3) Param[2]: size (type: Vector3) Param[3]: color (type: Color) -Function 462: DrawSphere() (3 input parameters) +Function 463: DrawSphere() (3 input parameters) Name: DrawSphere Return type: void Description: Draw sphere Param[1]: centerPos (type: Vector3) Param[2]: radius (type: float) Param[3]: color (type: Color) -Function 463: DrawSphereEx() (5 input parameters) +Function 464: DrawSphereEx() (5 input parameters) Name: DrawSphereEx Return type: void Description: Draw sphere with extended parameters @@ -3944,7 +3953,7 @@ Function 463: DrawSphereEx() (5 input parameters) Param[3]: rings (type: int) Param[4]: slices (type: int) Param[5]: color (type: Color) -Function 464: DrawSphereWires() (5 input parameters) +Function 465: DrawSphereWires() (5 input parameters) Name: DrawSphereWires Return type: void Description: Draw sphere wires @@ -3953,7 +3962,7 @@ Function 464: DrawSphereWires() (5 input parameters) Param[3]: rings (type: int) Param[4]: slices (type: int) Param[5]: color (type: Color) -Function 465: DrawCylinder() (6 input parameters) +Function 466: DrawCylinder() (6 input parameters) Name: DrawCylinder Return type: void Description: Draw a cylinder/cone @@ -3963,7 +3972,7 @@ Function 465: DrawCylinder() (6 input parameters) Param[4]: height (type: float) Param[5]: slices (type: int) Param[6]: color (type: Color) -Function 466: DrawCylinderEx() (6 input parameters) +Function 467: DrawCylinderEx() (6 input parameters) Name: DrawCylinderEx Return type: void Description: Draw a cylinder with base at startPos and top at endPos @@ -3973,7 +3982,7 @@ Function 466: DrawCylinderEx() (6 input parameters) Param[4]: endRadius (type: float) Param[5]: sides (type: int) Param[6]: color (type: Color) -Function 467: DrawCylinderWires() (6 input parameters) +Function 468: DrawCylinderWires() (6 input parameters) Name: DrawCylinderWires Return type: void Description: Draw a cylinder/cone wires @@ -3983,7 +3992,7 @@ Function 467: DrawCylinderWires() (6 input parameters) Param[4]: height (type: float) Param[5]: slices (type: int) Param[6]: color (type: Color) -Function 468: DrawCylinderWiresEx() (6 input parameters) +Function 469: DrawCylinderWiresEx() (6 input parameters) Name: DrawCylinderWiresEx Return type: void Description: Draw a cylinder wires with base at startPos and top at endPos @@ -3993,7 +4002,7 @@ Function 468: DrawCylinderWiresEx() (6 input parameters) Param[4]: endRadius (type: float) Param[5]: sides (type: int) Param[6]: color (type: Color) -Function 469: DrawCapsule() (6 input parameters) +Function 470: DrawCapsule() (6 input parameters) Name: DrawCapsule Return type: void Description: Draw a capsule with the center of its sphere caps at startPos and endPos @@ -4003,7 +4012,7 @@ Function 469: DrawCapsule() (6 input parameters) Param[4]: slices (type: int) Param[5]: rings (type: int) Param[6]: color (type: Color) -Function 470: DrawCapsuleWires() (6 input parameters) +Function 471: DrawCapsuleWires() (6 input parameters) Name: DrawCapsuleWires Return type: void Description: Draw capsule wireframe with the center of its sphere caps at startPos and endPos @@ -4013,51 +4022,51 @@ Function 470: DrawCapsuleWires() (6 input parameters) Param[4]: slices (type: int) Param[5]: rings (type: int) Param[6]: color (type: Color) -Function 471: DrawPlane() (3 input parameters) +Function 472: DrawPlane() (3 input parameters) Name: DrawPlane Return type: void Description: Draw a plane XZ Param[1]: centerPos (type: Vector3) Param[2]: size (type: Vector2) Param[3]: color (type: Color) -Function 472: DrawRay() (2 input parameters) +Function 473: DrawRay() (2 input parameters) Name: DrawRay Return type: void Description: Draw a ray line Param[1]: ray (type: Ray) Param[2]: color (type: Color) -Function 473: DrawGrid() (2 input parameters) +Function 474: DrawGrid() (2 input parameters) Name: DrawGrid Return type: void Description: Draw a grid (centered at (0, 0, 0)) Param[1]: slices (type: int) Param[2]: spacing (type: float) -Function 474: LoadModel() (1 input parameters) +Function 475: LoadModel() (1 input parameters) Name: LoadModel Return type: Model Description: Load model from files (meshes and materials) Param[1]: fileName (type: const char *) -Function 475: LoadModelFromMesh() (1 input parameters) +Function 476: LoadModelFromMesh() (1 input parameters) Name: LoadModelFromMesh Return type: Model Description: Load model from generated mesh (default material) Param[1]: mesh (type: Mesh) -Function 476: IsModelValid() (1 input parameters) +Function 477: IsModelValid() (1 input parameters) Name: IsModelValid Return type: bool Description: Check if a model is valid (loaded in GPU, VAO/VBOs) Param[1]: model (type: Model) -Function 477: UnloadModel() (1 input parameters) +Function 478: UnloadModel() (1 input parameters) Name: UnloadModel Return type: void Description: Unload model (including meshes) from memory (RAM and/or VRAM) Param[1]: model (type: Model) -Function 478: GetModelBoundingBox() (1 input parameters) +Function 479: GetModelBoundingBox() (1 input parameters) Name: GetModelBoundingBox Return type: BoundingBox Description: Compute model bounding box limits (considers all meshes) Param[1]: model (type: Model) -Function 479: DrawModel() (4 input parameters) +Function 480: DrawModel() (4 input parameters) Name: DrawModel Return type: void Description: Draw a model (with texture if set) @@ -4065,7 +4074,7 @@ Function 479: DrawModel() (4 input parameters) Param[2]: position (type: Vector3) Param[3]: scale (type: float) Param[4]: tint (type: Color) -Function 480: DrawModelEx() (6 input parameters) +Function 481: DrawModelEx() (6 input parameters) Name: DrawModelEx Return type: void Description: Draw a model with extended parameters @@ -4075,7 +4084,7 @@ Function 480: DrawModelEx() (6 input parameters) Param[4]: rotationAngle (type: float) Param[5]: scale (type: Vector3) Param[6]: tint (type: Color) -Function 481: DrawModelWires() (4 input parameters) +Function 482: DrawModelWires() (4 input parameters) Name: DrawModelWires Return type: void Description: Draw a model wires (with texture if set) @@ -4083,7 +4092,7 @@ Function 481: DrawModelWires() (4 input parameters) Param[2]: position (type: Vector3) Param[3]: scale (type: float) Param[4]: tint (type: Color) -Function 482: DrawModelWiresEx() (6 input parameters) +Function 483: DrawModelWiresEx() (6 input parameters) Name: DrawModelWiresEx Return type: void Description: Draw a model wires (with texture if set) with extended parameters @@ -4093,7 +4102,7 @@ Function 482: DrawModelWiresEx() (6 input parameters) Param[4]: rotationAngle (type: float) Param[5]: scale (type: Vector3) Param[6]: tint (type: Color) -Function 483: DrawModelPoints() (4 input parameters) +Function 484: DrawModelPoints() (4 input parameters) Name: DrawModelPoints Return type: void Description: Draw a model as points @@ -4101,7 +4110,7 @@ Function 483: DrawModelPoints() (4 input parameters) Param[2]: position (type: Vector3) Param[3]: scale (type: float) Param[4]: tint (type: Color) -Function 484: DrawModelPointsEx() (6 input parameters) +Function 485: DrawModelPointsEx() (6 input parameters) Name: DrawModelPointsEx Return type: void Description: Draw a model as points with extended parameters @@ -4111,13 +4120,13 @@ Function 484: DrawModelPointsEx() (6 input parameters) Param[4]: rotationAngle (type: float) Param[5]: scale (type: Vector3) Param[6]: tint (type: Color) -Function 485: DrawBoundingBox() (2 input parameters) +Function 486: DrawBoundingBox() (2 input parameters) Name: DrawBoundingBox Return type: void Description: Draw bounding box (wires) Param[1]: box (type: BoundingBox) Param[2]: color (type: Color) -Function 486: DrawBillboard() (5 input parameters) +Function 487: DrawBillboard() (5 input parameters) Name: DrawBillboard Return type: void Description: Draw a billboard texture @@ -4126,7 +4135,7 @@ Function 486: DrawBillboard() (5 input parameters) Param[3]: position (type: Vector3) Param[4]: scale (type: float) Param[5]: tint (type: Color) -Function 487: DrawBillboardRec() (6 input parameters) +Function 488: DrawBillboardRec() (6 input parameters) Name: DrawBillboardRec Return type: void Description: Draw a billboard texture defined by source @@ -4136,7 +4145,7 @@ Function 487: DrawBillboardRec() (6 input parameters) Param[4]: position (type: Vector3) Param[5]: size (type: Vector2) Param[6]: tint (type: Color) -Function 488: DrawBillboardPro() (9 input parameters) +Function 489: DrawBillboardPro() (9 input parameters) Name: DrawBillboardPro Return type: void Description: Draw a billboard texture defined by source and rotation @@ -4149,13 +4158,13 @@ Function 488: DrawBillboardPro() (9 input parameters) Param[7]: origin (type: Vector2) Param[8]: rotation (type: float) Param[9]: tint (type: Color) -Function 489: UploadMesh() (2 input parameters) +Function 490: UploadMesh() (2 input parameters) Name: UploadMesh Return type: void Description: Upload mesh vertex data in GPU and provide VAO/VBO ids Param[1]: mesh (type: Mesh *) Param[2]: dynamic (type: bool) -Function 490: UpdateMeshBuffer() (5 input parameters) +Function 491: UpdateMeshBuffer() (5 input parameters) Name: UpdateMeshBuffer Return type: void Description: Update mesh vertex data in GPU for a specific buffer index @@ -4164,19 +4173,19 @@ Function 490: UpdateMeshBuffer() (5 input parameters) Param[3]: data (type: const void *) Param[4]: dataSize (type: int) Param[5]: offset (type: int) -Function 491: UnloadMesh() (1 input parameters) +Function 492: UnloadMesh() (1 input parameters) Name: UnloadMesh Return type: void Description: Unload mesh data from CPU and GPU Param[1]: mesh (type: Mesh) -Function 492: DrawMesh() (3 input parameters) +Function 493: DrawMesh() (3 input parameters) Name: DrawMesh Return type: void Description: Draw a 3d mesh with material and transform Param[1]: mesh (type: Mesh) Param[2]: material (type: Material) Param[3]: transform (type: Matrix) -Function 493: DrawMeshInstanced() (4 input parameters) +Function 494: DrawMeshInstanced() (4 input parameters) Name: DrawMeshInstanced Return type: void Description: Draw multiple mesh instances with material and different transforms @@ -4184,35 +4193,35 @@ Function 493: DrawMeshInstanced() (4 input parameters) Param[2]: material (type: Material) Param[3]: transforms (type: const Matrix *) Param[4]: instances (type: int) -Function 494: GetMeshBoundingBox() (1 input parameters) +Function 495: GetMeshBoundingBox() (1 input parameters) Name: GetMeshBoundingBox Return type: BoundingBox Description: Compute mesh bounding box limits Param[1]: mesh (type: Mesh) -Function 495: GenMeshTangents() (1 input parameters) +Function 496: GenMeshTangents() (1 input parameters) Name: GenMeshTangents Return type: void Description: Compute mesh tangents Param[1]: mesh (type: Mesh *) -Function 496: ExportMesh() (2 input parameters) +Function 497: ExportMesh() (2 input parameters) Name: ExportMesh Return type: bool Description: Export mesh data to file, returns true on success Param[1]: mesh (type: Mesh) Param[2]: fileName (type: const char *) -Function 497: ExportMeshAsCode() (2 input parameters) +Function 498: ExportMeshAsCode() (2 input parameters) Name: ExportMeshAsCode Return type: bool Description: Export mesh as code file (.h) defining multiple arrays of vertex attributes Param[1]: mesh (type: Mesh) Param[2]: fileName (type: const char *) -Function 498: GenMeshPoly() (2 input parameters) +Function 499: GenMeshPoly() (2 input parameters) Name: GenMeshPoly Return type: Mesh Description: Generate polygonal mesh Param[1]: sides (type: int) Param[2]: radius (type: float) -Function 499: GenMeshPlane() (4 input parameters) +Function 500: GenMeshPlane() (4 input parameters) Name: GenMeshPlane Return type: Mesh Description: Generate plane mesh (with subdivisions) @@ -4220,42 +4229,42 @@ Function 499: GenMeshPlane() (4 input parameters) Param[2]: length (type: float) Param[3]: resX (type: int) Param[4]: resZ (type: int) -Function 500: GenMeshCube() (3 input parameters) +Function 501: GenMeshCube() (3 input parameters) Name: GenMeshCube Return type: Mesh Description: Generate cuboid mesh Param[1]: width (type: float) Param[2]: height (type: float) Param[3]: length (type: float) -Function 501: GenMeshSphere() (3 input parameters) +Function 502: GenMeshSphere() (3 input parameters) Name: GenMeshSphere Return type: Mesh Description: Generate sphere mesh (standard sphere) Param[1]: radius (type: float) Param[2]: rings (type: int) Param[3]: slices (type: int) -Function 502: GenMeshHemiSphere() (3 input parameters) +Function 503: GenMeshHemiSphere() (3 input parameters) Name: GenMeshHemiSphere Return type: Mesh Description: Generate half-sphere mesh (no bottom cap) Param[1]: radius (type: float) Param[2]: rings (type: int) Param[3]: slices (type: int) -Function 503: GenMeshCylinder() (3 input parameters) +Function 504: GenMeshCylinder() (3 input parameters) Name: GenMeshCylinder Return type: Mesh Description: Generate cylinder mesh Param[1]: radius (type: float) Param[2]: height (type: float) Param[3]: slices (type: int) -Function 504: GenMeshCone() (3 input parameters) +Function 505: GenMeshCone() (3 input parameters) Name: GenMeshCone Return type: Mesh Description: Generate cone/pyramid mesh Param[1]: radius (type: float) Param[2]: height (type: float) Param[3]: slices (type: int) -Function 505: GenMeshTorus() (4 input parameters) +Function 506: GenMeshTorus() (4 input parameters) Name: GenMeshTorus Return type: Mesh Description: Generate torus mesh @@ -4263,7 +4272,7 @@ Function 505: GenMeshTorus() (4 input parameters) Param[2]: size (type: float) Param[3]: radSeg (type: int) Param[4]: sides (type: int) -Function 506: GenMeshKnot() (4 input parameters) +Function 507: GenMeshKnot() (4 input parameters) Name: GenMeshKnot Return type: Mesh Description: Generate trefoil knot mesh @@ -4271,91 +4280,91 @@ Function 506: GenMeshKnot() (4 input parameters) Param[2]: size (type: float) Param[3]: radSeg (type: int) Param[4]: sides (type: int) -Function 507: GenMeshHeightmap() (2 input parameters) +Function 508: GenMeshHeightmap() (2 input parameters) Name: GenMeshHeightmap Return type: Mesh Description: Generate heightmap mesh from image data Param[1]: heightmap (type: Image) Param[2]: size (type: Vector3) -Function 508: GenMeshCubicmap() (2 input parameters) +Function 509: GenMeshCubicmap() (2 input parameters) Name: GenMeshCubicmap Return type: Mesh Description: Generate cubes-based map mesh from image data Param[1]: cubicmap (type: Image) Param[2]: cubeSize (type: Vector3) -Function 509: LoadMaterials() (2 input parameters) +Function 510: LoadMaterials() (2 input parameters) Name: LoadMaterials Return type: Material * Description: Load materials from model file Param[1]: fileName (type: const char *) Param[2]: materialCount (type: int *) -Function 510: LoadMaterialDefault() (0 input parameters) +Function 511: LoadMaterialDefault() (0 input parameters) Name: LoadMaterialDefault Return type: Material Description: Load default material (Supports: DIFFUSE, SPECULAR, NORMAL maps) No input parameters -Function 511: IsMaterialValid() (1 input parameters) +Function 512: IsMaterialValid() (1 input parameters) Name: IsMaterialValid Return type: bool Description: Check if a material is valid (shader assigned, map textures loaded in GPU) Param[1]: material (type: Material) -Function 512: UnloadMaterial() (1 input parameters) +Function 513: UnloadMaterial() (1 input parameters) Name: UnloadMaterial Return type: void Description: Unload material from GPU memory (VRAM) Param[1]: material (type: Material) -Function 513: SetMaterialTexture() (3 input parameters) +Function 514: SetMaterialTexture() (3 input parameters) Name: SetMaterialTexture Return type: void Description: Set texture for a material map type (MATERIAL_MAP_DIFFUSE, MATERIAL_MAP_SPECULAR...) Param[1]: material (type: Material *) Param[2]: mapType (type: int) Param[3]: texture (type: Texture2D) -Function 514: SetModelMeshMaterial() (3 input parameters) +Function 515: SetModelMeshMaterial() (3 input parameters) Name: SetModelMeshMaterial Return type: void Description: Set material for a mesh Param[1]: model (type: Model *) Param[2]: meshId (type: int) Param[3]: materialId (type: int) -Function 515: LoadModelAnimations() (2 input parameters) +Function 516: LoadModelAnimations() (2 input parameters) Name: LoadModelAnimations Return type: ModelAnimation * Description: Load model animations from file Param[1]: fileName (type: const char *) Param[2]: animCount (type: int *) -Function 516: UpdateModelAnimation() (3 input parameters) +Function 517: UpdateModelAnimation() (3 input parameters) Name: UpdateModelAnimation Return type: void Description: Update model animation pose (CPU) Param[1]: model (type: Model) Param[2]: anim (type: ModelAnimation) Param[3]: frame (type: int) -Function 517: UpdateModelAnimationBones() (3 input parameters) +Function 518: UpdateModelAnimationBones() (3 input parameters) Name: UpdateModelAnimationBones Return type: void Description: Update model animation mesh bone matrices (GPU skinning) Param[1]: model (type: Model) Param[2]: anim (type: ModelAnimation) Param[3]: frame (type: int) -Function 518: UnloadModelAnimation() (1 input parameters) +Function 519: UnloadModelAnimation() (1 input parameters) Name: UnloadModelAnimation Return type: void Description: Unload animation data Param[1]: anim (type: ModelAnimation) -Function 519: UnloadModelAnimations() (2 input parameters) +Function 520: UnloadModelAnimations() (2 input parameters) Name: UnloadModelAnimations Return type: void Description: Unload animation array data Param[1]: animations (type: ModelAnimation *) Param[2]: animCount (type: int) -Function 520: IsModelAnimationValid() (2 input parameters) +Function 521: IsModelAnimationValid() (2 input parameters) Name: IsModelAnimationValid Return type: bool Description: Check model animation skeleton match Param[1]: model (type: Model) Param[2]: anim (type: ModelAnimation) -Function 521: CheckCollisionSpheres() (4 input parameters) +Function 522: CheckCollisionSpheres() (4 input parameters) Name: CheckCollisionSpheres Return type: bool Description: Check collision between two spheres @@ -4363,40 +4372,40 @@ Function 521: CheckCollisionSpheres() (4 input parameters) Param[2]: radius1 (type: float) Param[3]: center2 (type: Vector3) Param[4]: radius2 (type: float) -Function 522: CheckCollisionBoxes() (2 input parameters) +Function 523: CheckCollisionBoxes() (2 input parameters) Name: CheckCollisionBoxes Return type: bool Description: Check collision between two bounding boxes Param[1]: box1 (type: BoundingBox) Param[2]: box2 (type: BoundingBox) -Function 523: CheckCollisionBoxSphere() (3 input parameters) +Function 524: CheckCollisionBoxSphere() (3 input parameters) Name: CheckCollisionBoxSphere Return type: bool Description: Check collision between box and sphere Param[1]: box (type: BoundingBox) Param[2]: center (type: Vector3) Param[3]: radius (type: float) -Function 524: GetRayCollisionSphere() (3 input parameters) +Function 525: GetRayCollisionSphere() (3 input parameters) Name: GetRayCollisionSphere Return type: RayCollision Description: Get collision info between ray and sphere Param[1]: ray (type: Ray) Param[2]: center (type: Vector3) Param[3]: radius (type: float) -Function 525: GetRayCollisionBox() (2 input parameters) +Function 526: GetRayCollisionBox() (2 input parameters) Name: GetRayCollisionBox Return type: RayCollision Description: Get collision info between ray and box Param[1]: ray (type: Ray) Param[2]: box (type: BoundingBox) -Function 526: GetRayCollisionMesh() (3 input parameters) +Function 527: GetRayCollisionMesh() (3 input parameters) Name: GetRayCollisionMesh Return type: RayCollision Description: Get collision info between ray and mesh Param[1]: ray (type: Ray) Param[2]: mesh (type: Mesh) Param[3]: transform (type: Matrix) -Function 527: GetRayCollisionTriangle() (4 input parameters) +Function 528: GetRayCollisionTriangle() (4 input parameters) Name: GetRayCollisionTriangle Return type: RayCollision Description: Get collision info between ray and triangle @@ -4404,7 +4413,7 @@ Function 527: GetRayCollisionTriangle() (4 input parameters) Param[2]: p1 (type: Vector3) Param[3]: p2 (type: Vector3) Param[4]: p3 (type: Vector3) -Function 528: GetRayCollisionQuad() (5 input parameters) +Function 529: GetRayCollisionQuad() (5 input parameters) Name: GetRayCollisionQuad Return type: RayCollision Description: Get collision info between ray and quad @@ -4413,158 +4422,158 @@ Function 528: GetRayCollisionQuad() (5 input parameters) Param[3]: p2 (type: Vector3) Param[4]: p3 (type: Vector3) Param[5]: p4 (type: Vector3) -Function 529: InitAudioDevice() (0 input parameters) +Function 530: InitAudioDevice() (0 input parameters) Name: InitAudioDevice Return type: void Description: Initialize audio device and context No input parameters -Function 530: CloseAudioDevice() (0 input parameters) +Function 531: CloseAudioDevice() (0 input parameters) Name: CloseAudioDevice Return type: void Description: Close the audio device and context No input parameters -Function 531: IsAudioDeviceReady() (0 input parameters) +Function 532: IsAudioDeviceReady() (0 input parameters) Name: IsAudioDeviceReady Return type: bool Description: Check if audio device has been initialized successfully No input parameters -Function 532: SetMasterVolume() (1 input parameters) +Function 533: SetMasterVolume() (1 input parameters) Name: SetMasterVolume Return type: void Description: Set master volume (listener) Param[1]: volume (type: float) -Function 533: GetMasterVolume() (0 input parameters) +Function 534: GetMasterVolume() (0 input parameters) Name: GetMasterVolume Return type: float Description: Get master volume (listener) No input parameters -Function 534: LoadWave() (1 input parameters) +Function 535: LoadWave() (1 input parameters) Name: LoadWave Return type: Wave Description: Load wave data from file Param[1]: fileName (type: const char *) -Function 535: LoadWaveFromMemory() (3 input parameters) +Function 536: LoadWaveFromMemory() (3 input parameters) Name: LoadWaveFromMemory Return type: Wave Description: Load wave from memory buffer, fileType refers to extension: i.e. '.wav' Param[1]: fileType (type: const char *) Param[2]: fileData (type: const unsigned char *) Param[3]: dataSize (type: int) -Function 536: IsWaveValid() (1 input parameters) +Function 537: IsWaveValid() (1 input parameters) Name: IsWaveValid Return type: bool Description: Checks if wave data is valid (data loaded and parameters) Param[1]: wave (type: Wave) -Function 537: LoadSound() (1 input parameters) +Function 538: LoadSound() (1 input parameters) Name: LoadSound Return type: Sound Description: Load sound from file Param[1]: fileName (type: const char *) -Function 538: LoadSoundFromWave() (1 input parameters) +Function 539: LoadSoundFromWave() (1 input parameters) Name: LoadSoundFromWave Return type: Sound Description: Load sound from wave data Param[1]: wave (type: Wave) -Function 539: LoadSoundAlias() (1 input parameters) +Function 540: LoadSoundAlias() (1 input parameters) Name: LoadSoundAlias Return type: Sound Description: Create a new sound that shares the same sample data as the source sound, does not own the sound data Param[1]: source (type: Sound) -Function 540: IsSoundValid() (1 input parameters) +Function 541: IsSoundValid() (1 input parameters) Name: IsSoundValid Return type: bool Description: Checks if a sound is valid (data loaded and buffers initialized) Param[1]: sound (type: Sound) -Function 541: UpdateSound() (3 input parameters) +Function 542: UpdateSound() (3 input parameters) Name: UpdateSound Return type: void Description: Update sound buffer with new data Param[1]: sound (type: Sound) Param[2]: data (type: const void *) Param[3]: sampleCount (type: int) -Function 542: UnloadWave() (1 input parameters) +Function 543: UnloadWave() (1 input parameters) Name: UnloadWave Return type: void Description: Unload wave data Param[1]: wave (type: Wave) -Function 543: UnloadSound() (1 input parameters) +Function 544: UnloadSound() (1 input parameters) Name: UnloadSound Return type: void Description: Unload sound Param[1]: sound (type: Sound) -Function 544: UnloadSoundAlias() (1 input parameters) +Function 545: UnloadSoundAlias() (1 input parameters) Name: UnloadSoundAlias Return type: void Description: Unload a sound alias (does not deallocate sample data) Param[1]: alias (type: Sound) -Function 545: ExportWave() (2 input parameters) +Function 546: ExportWave() (2 input parameters) Name: ExportWave Return type: bool Description: Export wave data to file, returns true on success Param[1]: wave (type: Wave) Param[2]: fileName (type: const char *) -Function 546: ExportWaveAsCode() (2 input parameters) +Function 547: ExportWaveAsCode() (2 input parameters) Name: ExportWaveAsCode Return type: bool Description: Export wave sample data to code (.h), returns true on success Param[1]: wave (type: Wave) Param[2]: fileName (type: const char *) -Function 547: PlaySound() (1 input parameters) +Function 548: PlaySound() (1 input parameters) Name: PlaySound Return type: void Description: Play a sound Param[1]: sound (type: Sound) -Function 548: StopSound() (1 input parameters) +Function 549: StopSound() (1 input parameters) Name: StopSound Return type: void Description: Stop playing a sound Param[1]: sound (type: Sound) -Function 549: PauseSound() (1 input parameters) +Function 550: PauseSound() (1 input parameters) Name: PauseSound Return type: void Description: Pause a sound Param[1]: sound (type: Sound) -Function 550: ResumeSound() (1 input parameters) +Function 551: ResumeSound() (1 input parameters) Name: ResumeSound Return type: void Description: Resume a paused sound Param[1]: sound (type: Sound) -Function 551: IsSoundPlaying() (1 input parameters) +Function 552: IsSoundPlaying() (1 input parameters) Name: IsSoundPlaying Return type: bool Description: Check if a sound is currently playing Param[1]: sound (type: Sound) -Function 552: SetSoundVolume() (2 input parameters) +Function 553: SetSoundVolume() (2 input parameters) Name: SetSoundVolume Return type: void Description: Set volume for a sound (1.0 is max level) Param[1]: sound (type: Sound) Param[2]: volume (type: float) -Function 553: SetSoundPitch() (2 input parameters) +Function 554: SetSoundPitch() (2 input parameters) Name: SetSoundPitch Return type: void Description: Set pitch for a sound (1.0 is base level) Param[1]: sound (type: Sound) Param[2]: pitch (type: float) -Function 554: SetSoundPan() (2 input parameters) +Function 555: SetSoundPan() (2 input parameters) Name: SetSoundPan Return type: void Description: Set pan for a sound (0.5 is center) Param[1]: sound (type: Sound) Param[2]: pan (type: float) -Function 555: WaveCopy() (1 input parameters) +Function 556: WaveCopy() (1 input parameters) Name: WaveCopy Return type: Wave Description: Copy a wave to a new wave Param[1]: wave (type: Wave) -Function 556: WaveCrop() (3 input parameters) +Function 557: WaveCrop() (3 input parameters) Name: WaveCrop Return type: void Description: Crop a wave to defined frames range Param[1]: wave (type: Wave *) Param[2]: initFrame (type: int) Param[3]: finalFrame (type: int) -Function 557: WaveFormat() (4 input parameters) +Function 558: WaveFormat() (4 input parameters) Name: WaveFormat Return type: void Description: Convert wave data to desired format @@ -4572,203 +4581,203 @@ Function 557: WaveFormat() (4 input parameters) Param[2]: sampleRate (type: int) Param[3]: sampleSize (type: int) Param[4]: channels (type: int) -Function 558: LoadWaveSamples() (1 input parameters) +Function 559: LoadWaveSamples() (1 input parameters) Name: LoadWaveSamples Return type: float * Description: Load samples data from wave as a 32bit float data array Param[1]: wave (type: Wave) -Function 559: UnloadWaveSamples() (1 input parameters) +Function 560: UnloadWaveSamples() (1 input parameters) Name: UnloadWaveSamples Return type: void Description: Unload samples data loaded with LoadWaveSamples() Param[1]: samples (type: float *) -Function 560: LoadMusicStream() (1 input parameters) +Function 561: LoadMusicStream() (1 input parameters) Name: LoadMusicStream Return type: Music Description: Load music stream from file Param[1]: fileName (type: const char *) -Function 561: LoadMusicStreamFromMemory() (3 input parameters) +Function 562: LoadMusicStreamFromMemory() (3 input parameters) Name: LoadMusicStreamFromMemory Return type: Music Description: Load music stream from data Param[1]: fileType (type: const char *) Param[2]: data (type: const unsigned char *) Param[3]: dataSize (type: int) -Function 562: IsMusicValid() (1 input parameters) +Function 563: IsMusicValid() (1 input parameters) Name: IsMusicValid Return type: bool Description: Checks if a music stream is valid (context and buffers initialized) Param[1]: music (type: Music) -Function 563: UnloadMusicStream() (1 input parameters) +Function 564: UnloadMusicStream() (1 input parameters) Name: UnloadMusicStream Return type: void Description: Unload music stream Param[1]: music (type: Music) -Function 564: PlayMusicStream() (1 input parameters) +Function 565: PlayMusicStream() (1 input parameters) Name: PlayMusicStream Return type: void Description: Start music playing Param[1]: music (type: Music) -Function 565: IsMusicStreamPlaying() (1 input parameters) +Function 566: IsMusicStreamPlaying() (1 input parameters) Name: IsMusicStreamPlaying Return type: bool Description: Check if music is playing Param[1]: music (type: Music) -Function 566: UpdateMusicStream() (1 input parameters) +Function 567: UpdateMusicStream() (1 input parameters) Name: UpdateMusicStream Return type: void Description: Updates buffers for music streaming Param[1]: music (type: Music) -Function 567: StopMusicStream() (1 input parameters) +Function 568: StopMusicStream() (1 input parameters) Name: StopMusicStream Return type: void Description: Stop music playing Param[1]: music (type: Music) -Function 568: PauseMusicStream() (1 input parameters) +Function 569: PauseMusicStream() (1 input parameters) Name: PauseMusicStream Return type: void Description: Pause music playing Param[1]: music (type: Music) -Function 569: ResumeMusicStream() (1 input parameters) +Function 570: ResumeMusicStream() (1 input parameters) Name: ResumeMusicStream Return type: void Description: Resume playing paused music Param[1]: music (type: Music) -Function 570: SeekMusicStream() (2 input parameters) +Function 571: SeekMusicStream() (2 input parameters) Name: SeekMusicStream Return type: void Description: Seek music to a position (in seconds) Param[1]: music (type: Music) Param[2]: position (type: float) -Function 571: SetMusicVolume() (2 input parameters) +Function 572: SetMusicVolume() (2 input parameters) Name: SetMusicVolume Return type: void Description: Set volume for music (1.0 is max level) Param[1]: music (type: Music) Param[2]: volume (type: float) -Function 572: SetMusicPitch() (2 input parameters) +Function 573: SetMusicPitch() (2 input parameters) Name: SetMusicPitch Return type: void Description: Set pitch for a music (1.0 is base level) Param[1]: music (type: Music) Param[2]: pitch (type: float) -Function 573: SetMusicPan() (2 input parameters) +Function 574: SetMusicPan() (2 input parameters) Name: SetMusicPan Return type: void Description: Set pan for a music (0.5 is center) Param[1]: music (type: Music) Param[2]: pan (type: float) -Function 574: GetMusicTimeLength() (1 input parameters) +Function 575: GetMusicTimeLength() (1 input parameters) Name: GetMusicTimeLength Return type: float Description: Get music time length (in seconds) Param[1]: music (type: Music) -Function 575: GetMusicTimePlayed() (1 input parameters) +Function 576: GetMusicTimePlayed() (1 input parameters) Name: GetMusicTimePlayed Return type: float Description: Get current music time played (in seconds) Param[1]: music (type: Music) -Function 576: LoadAudioStream() (3 input parameters) +Function 577: LoadAudioStream() (3 input parameters) Name: LoadAudioStream Return type: AudioStream Description: Load audio stream (to stream raw audio pcm data) Param[1]: sampleRate (type: unsigned int) Param[2]: sampleSize (type: unsigned int) Param[3]: channels (type: unsigned int) -Function 577: IsAudioStreamValid() (1 input parameters) +Function 578: IsAudioStreamValid() (1 input parameters) Name: IsAudioStreamValid Return type: bool Description: Checks if an audio stream is valid (buffers initialized) Param[1]: stream (type: AudioStream) -Function 578: UnloadAudioStream() (1 input parameters) +Function 579: UnloadAudioStream() (1 input parameters) Name: UnloadAudioStream Return type: void Description: Unload audio stream and free memory Param[1]: stream (type: AudioStream) -Function 579: UpdateAudioStream() (3 input parameters) +Function 580: UpdateAudioStream() (3 input parameters) Name: UpdateAudioStream Return type: void Description: Update audio stream buffers with data Param[1]: stream (type: AudioStream) Param[2]: data (type: const void *) Param[3]: frameCount (type: int) -Function 580: IsAudioStreamProcessed() (1 input parameters) +Function 581: IsAudioStreamProcessed() (1 input parameters) Name: IsAudioStreamProcessed Return type: bool Description: Check if any audio stream buffers requires refill Param[1]: stream (type: AudioStream) -Function 581: PlayAudioStream() (1 input parameters) +Function 582: PlayAudioStream() (1 input parameters) Name: PlayAudioStream Return type: void Description: Play audio stream Param[1]: stream (type: AudioStream) -Function 582: PauseAudioStream() (1 input parameters) +Function 583: PauseAudioStream() (1 input parameters) Name: PauseAudioStream Return type: void Description: Pause audio stream Param[1]: stream (type: AudioStream) -Function 583: ResumeAudioStream() (1 input parameters) +Function 584: ResumeAudioStream() (1 input parameters) Name: ResumeAudioStream Return type: void Description: Resume audio stream Param[1]: stream (type: AudioStream) -Function 584: IsAudioStreamPlaying() (1 input parameters) +Function 585: IsAudioStreamPlaying() (1 input parameters) Name: IsAudioStreamPlaying Return type: bool Description: Check if audio stream is playing Param[1]: stream (type: AudioStream) -Function 585: StopAudioStream() (1 input parameters) +Function 586: StopAudioStream() (1 input parameters) Name: StopAudioStream Return type: void Description: Stop audio stream Param[1]: stream (type: AudioStream) -Function 586: SetAudioStreamVolume() (2 input parameters) +Function 587: SetAudioStreamVolume() (2 input parameters) Name: SetAudioStreamVolume Return type: void Description: Set volume for audio stream (1.0 is max level) Param[1]: stream (type: AudioStream) Param[2]: volume (type: float) -Function 587: SetAudioStreamPitch() (2 input parameters) +Function 588: SetAudioStreamPitch() (2 input parameters) Name: SetAudioStreamPitch Return type: void Description: Set pitch for audio stream (1.0 is base level) Param[1]: stream (type: AudioStream) Param[2]: pitch (type: float) -Function 588: SetAudioStreamPan() (2 input parameters) +Function 589: SetAudioStreamPan() (2 input parameters) Name: SetAudioStreamPan Return type: void Description: Set pan for audio stream (0.5 is centered) Param[1]: stream (type: AudioStream) Param[2]: pan (type: float) -Function 589: SetAudioStreamBufferSizeDefault() (1 input parameters) +Function 590: SetAudioStreamBufferSizeDefault() (1 input parameters) Name: SetAudioStreamBufferSizeDefault Return type: void Description: Default size for new audio streams Param[1]: size (type: int) -Function 590: SetAudioStreamCallback() (2 input parameters) +Function 591: SetAudioStreamCallback() (2 input parameters) Name: SetAudioStreamCallback Return type: void Description: Audio thread callback to request new data Param[1]: stream (type: AudioStream) Param[2]: callback (type: AudioCallback) -Function 591: AttachAudioStreamProcessor() (2 input parameters) +Function 592: AttachAudioStreamProcessor() (2 input parameters) Name: AttachAudioStreamProcessor Return type: void Description: Attach audio stream processor to stream, receives frames x 2 samples as 'float' (stereo) Param[1]: stream (type: AudioStream) Param[2]: processor (type: AudioCallback) -Function 592: DetachAudioStreamProcessor() (2 input parameters) +Function 593: DetachAudioStreamProcessor() (2 input parameters) Name: DetachAudioStreamProcessor Return type: void Description: Detach audio stream processor from stream Param[1]: stream (type: AudioStream) Param[2]: processor (type: AudioCallback) -Function 593: AttachAudioMixedProcessor() (1 input parameters) +Function 594: AttachAudioMixedProcessor() (1 input parameters) Name: AttachAudioMixedProcessor Return type: void Description: Attach audio stream processor to the entire audio pipeline, receives frames x 2 samples as 'float' (stereo) Param[1]: processor (type: AudioCallback) -Function 594: DetachAudioMixedProcessor() (1 input parameters) +Function 595: DetachAudioMixedProcessor() (1 input parameters) Name: DetachAudioMixedProcessor Return type: void Description: Detach audio stream processor from the entire audio pipeline diff --git a/parser/output/raylib_api.xml b/parser/output/raylib_api.xml index 73cf6404d012..c43c423fdce0 100644 --- a/parser/output/raylib_api.xml +++ b/parser/output/raylib_api.xml @@ -679,7 +679,7 @@ - + @@ -1621,6 +1621,13 @@ + + + + + + + From 1e6332e4dcefe73ba0dfd38460b7f64957341eaa Mon Sep 17 00:00:00 2001 From: Henry Wilder Date: Tue, 4 Mar 2025 12:14:11 -0500 Subject: [PATCH 09/16] Fix variable thickness --- examples/shapes/shapes_splines_drawing.c | 5 ++--- src/rshapes.c | 6 ++---- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/examples/shapes/shapes_splines_drawing.c b/examples/shapes/shapes_splines_drawing.c index 605011a78249..9382e1e27129 100644 --- a/examples/shapes/shapes_splines_drawing.c +++ b/examples/shapes/shapes_splines_drawing.c @@ -80,8 +80,7 @@ int main(void) // Spline config variables float splineThickness = 8.0f; - int splineTypeActive = SPLINE_LINEAR_VAR; // 0-Linear, 1-BSpline, 2-CatmullRom, 3-Bezier, 4-LinearVar, 5-BezierVar - // TODO: Change the default back to SPLINE_LINEAR when finished testing + int splineTypeActive = SPLINE_LINEAR; // 0-Linear, 1-BSpline, 2-CatmullRom, 3-Bezier, 4-LinearVar, 5-BezierVar bool splineTypeEditMode = false; bool splineHelpersActive = true; @@ -226,8 +225,8 @@ int main(void) float thicks[] = { 0.0f, splineThickness, + -splineThickness, splineThickness, - 0.0f, }; // Draw spline: variable-width linear diff --git a/src/rshapes.c b/src/rshapes.c index 8852fea59994..b66b172716e9 100644 --- a/src/rshapes.c +++ b/src/rshapes.c @@ -2144,10 +2144,9 @@ void DrawSplineSegmentLinearVar(Vector2 p1, Vector2 p2, const float* thicks, int point.x = p1.x*(1.0f - t) + p2.x*t; point.y = p1.y*(1.0f - t) + p2.y*t; - // TODO: Doesn't seem to be working properly for more than 3 distinct values float thick; { - float tMajor = t*(float)thickCount; + float tMajor = t*(float)thickCount/3.0f; int tIndex = (int)tMajor; float tMinor = tMajor - (float)tIndex; tIndex *= 3; @@ -2235,10 +2234,9 @@ void DrawSplineSegmentBezierCubicVar(Vector2 p1, Vector2 c2, Vector2 c3, Vector2 point.x = a*p1.x + b*c2.x + c*c3.x + d*p4.x; } - // TODO: Doesn't seem to be working properly for more than 3 distinct values float thick; { - float tMajor = t*(float)thickCount; + float tMajor = t*(float)thickCount/3.0f; int tIndex = (int)tMajor; float tMinor = tMajor - (float)tIndex; tIndex *= 3; From d91303aff83c523f78342d888e1a268d95bf03a2 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 30 Jul 2025 09:43:18 +0000 Subject: [PATCH 10/16] Update raylib_api.* by CI --- parser/output/raylib_api.txt | 4800 ++++++++++++++++++++++++++++++++++ parser/output/raylib_api.xml | 2 +- 2 files changed, 4801 insertions(+), 1 deletion(-) diff --git a/parser/output/raylib_api.txt b/parser/output/raylib_api.txt index e69de29bb2d1..80ec106dced0 100644 --- a/parser/output/raylib_api.txt +++ b/parser/output/raylib_api.txt @@ -0,0 +1,4800 @@ + +Defines found: 57 + +Define 001: RAYLIB_H + Name: RAYLIB_H + Type: GUARD + Value: + Description: +Define 002: RAYLIB_VERSION_MAJOR + Name: RAYLIB_VERSION_MAJOR + Type: INT + Value: 5 + Description: +Define 003: RAYLIB_VERSION_MINOR + Name: RAYLIB_VERSION_MINOR + Type: INT + Value: 6 + Description: +Define 004: RAYLIB_VERSION_PATCH + Name: RAYLIB_VERSION_PATCH + Type: INT + Value: 0 + Description: +Define 005: RAYLIB_VERSION + Name: RAYLIB_VERSION + Type: STRING + Value: "5.6-dev" + Description: +Define 006: __declspec(x) + Name: __declspec(x) + Type: MACRO + Value: __attribute__((x)) + Description: +Define 007: RLAPI + Name: RLAPI + Type: UNKNOWN + Value: __declspec(dllexport) + Description: We are building the library as a Win32 shared library (.dll) +Define 008: PI + Name: PI + Type: FLOAT + Value: 3.14159265358979323846 + Description: +Define 009: DEG2RAD + Name: DEG2RAD + Type: FLOAT_MATH + Value: (PI/180.0f) + Description: +Define 010: RAD2DEG + Name: RAD2DEG + Type: FLOAT_MATH + Value: (180.0f/PI) + Description: +Define 011: RL_MALLOC(sz) + Name: RL_MALLOC(sz) + Type: MACRO + Value: malloc(sz) + Description: +Define 012: RL_CALLOC(n,sz) + Name: RL_CALLOC(n,sz) + Type: MACRO + Value: calloc(n,sz) + Description: +Define 013: RL_REALLOC(ptr,sz) + Name: RL_REALLOC(ptr,sz) + Type: MACRO + Value: realloc(ptr,sz) + Description: +Define 014: RL_FREE(ptr) + Name: RL_FREE(ptr) + Type: MACRO + Value: free(ptr) + Description: +Define 015: CLITERAL(type) + Name: CLITERAL(type) + Type: MACRO + Value: type + Description: +Define 016: RL_COLOR_TYPE + Name: RL_COLOR_TYPE + Type: GUARD + Value: + Description: +Define 017: RL_RECTANGLE_TYPE + Name: RL_RECTANGLE_TYPE + Type: GUARD + Value: + Description: +Define 018: RL_VECTOR2_TYPE + Name: RL_VECTOR2_TYPE + Type: GUARD + Value: + Description: +Define 019: RL_VECTOR3_TYPE + Name: RL_VECTOR3_TYPE + Type: GUARD + Value: + Description: +Define 020: RL_VECTOR4_TYPE + Name: RL_VECTOR4_TYPE + Type: GUARD + Value: + Description: +Define 021: RL_QUATERNION_TYPE + Name: RL_QUATERNION_TYPE + Type: GUARD + Value: + Description: +Define 022: RL_MATRIX_TYPE + Name: RL_MATRIX_TYPE + Type: GUARD + Value: + Description: +Define 023: LIGHTGRAY + Name: LIGHTGRAY + Type: COLOR + Value: CLITERAL(Color){ 200, 200, 200, 255 } + Description: Light Gray +Define 024: GRAY + Name: GRAY + Type: COLOR + Value: CLITERAL(Color){ 130, 130, 130, 255 } + Description: Gray +Define 025: DARKGRAY + Name: DARKGRAY + Type: COLOR + Value: CLITERAL(Color){ 80, 80, 80, 255 } + Description: Dark Gray +Define 026: YELLOW + Name: YELLOW + Type: COLOR + Value: CLITERAL(Color){ 253, 249, 0, 255 } + Description: Yellow +Define 027: GOLD + Name: GOLD + Type: COLOR + Value: CLITERAL(Color){ 255, 203, 0, 255 } + Description: Gold +Define 028: ORANGE + Name: ORANGE + Type: COLOR + Value: CLITERAL(Color){ 255, 161, 0, 255 } + Description: Orange +Define 029: PINK + Name: PINK + Type: COLOR + Value: CLITERAL(Color){ 255, 109, 194, 255 } + Description: Pink +Define 030: RED + Name: RED + Type: COLOR + Value: CLITERAL(Color){ 230, 41, 55, 255 } + Description: Red +Define 031: MAROON + Name: MAROON + Type: COLOR + Value: CLITERAL(Color){ 190, 33, 55, 255 } + Description: Maroon +Define 032: GREEN + Name: GREEN + Type: COLOR + Value: CLITERAL(Color){ 0, 228, 48, 255 } + Description: Green +Define 033: LIME + Name: LIME + Type: COLOR + Value: CLITERAL(Color){ 0, 158, 47, 255 } + Description: Lime +Define 034: DARKGREEN + Name: DARKGREEN + Type: COLOR + Value: CLITERAL(Color){ 0, 117, 44, 255 } + Description: Dark Green +Define 035: SKYBLUE + Name: SKYBLUE + Type: COLOR + Value: CLITERAL(Color){ 102, 191, 255, 255 } + Description: Sky Blue +Define 036: BLUE + Name: BLUE + Type: COLOR + Value: CLITERAL(Color){ 0, 121, 241, 255 } + Description: Blue +Define 037: DARKBLUE + Name: DARKBLUE + Type: COLOR + Value: CLITERAL(Color){ 0, 82, 172, 255 } + Description: Dark Blue +Define 038: PURPLE + Name: PURPLE + Type: COLOR + Value: CLITERAL(Color){ 200, 122, 255, 255 } + Description: Purple +Define 039: VIOLET + Name: VIOLET + Type: COLOR + Value: CLITERAL(Color){ 135, 60, 190, 255 } + Description: Violet +Define 040: DARKPURPLE + Name: DARKPURPLE + Type: COLOR + Value: CLITERAL(Color){ 112, 31, 126, 255 } + Description: Dark Purple +Define 041: BEIGE + Name: BEIGE + Type: COLOR + Value: CLITERAL(Color){ 211, 176, 131, 255 } + Description: Beige +Define 042: BROWN + Name: BROWN + Type: COLOR + Value: CLITERAL(Color){ 127, 106, 79, 255 } + Description: Brown +Define 043: DARKBROWN + Name: DARKBROWN + Type: COLOR + Value: CLITERAL(Color){ 76, 63, 47, 255 } + Description: Dark Brown +Define 044: WHITE + Name: WHITE + Type: COLOR + Value: CLITERAL(Color){ 255, 255, 255, 255 } + Description: White +Define 045: BLACK + Name: BLACK + Type: COLOR + Value: CLITERAL(Color){ 0, 0, 0, 255 } + Description: Black +Define 046: BLANK + Name: BLANK + Type: COLOR + Value: CLITERAL(Color){ 0, 0, 0, 0 } + Description: Blank (Transparent) +Define 047: MAGENTA + Name: MAGENTA + Type: COLOR + Value: CLITERAL(Color){ 255, 0, 255, 255 } + Description: Magenta +Define 048: RAYWHITE + Name: RAYWHITE + Type: COLOR + Value: CLITERAL(Color){ 245, 245, 245, 255 } + Description: My own White (raylib logo) +Define 049: RL_BOOL_TYPE + Name: RL_BOOL_TYPE + Type: GUARD + Value: + Description: +Define 050: MOUSE_LEFT_BUTTON + Name: MOUSE_LEFT_BUTTON + Type: UNKNOWN + Value: MOUSE_BUTTON_LEFT + Description: +Define 051: MOUSE_RIGHT_BUTTON + Name: MOUSE_RIGHT_BUTTON + Type: UNKNOWN + Value: MOUSE_BUTTON_RIGHT + Description: +Define 052: MOUSE_MIDDLE_BUTTON + Name: MOUSE_MIDDLE_BUTTON + Type: UNKNOWN + Value: MOUSE_BUTTON_MIDDLE + Description: +Define 053: MATERIAL_MAP_DIFFUSE + Name: MATERIAL_MAP_DIFFUSE + Type: UNKNOWN + Value: MATERIAL_MAP_ALBEDO + Description: +Define 054: MATERIAL_MAP_SPECULAR + Name: MATERIAL_MAP_SPECULAR + Type: UNKNOWN + Value: MATERIAL_MAP_METALNESS + Description: +Define 055: SHADER_LOC_MAP_DIFFUSE + Name: SHADER_LOC_MAP_DIFFUSE + Type: UNKNOWN + Value: SHADER_LOC_MAP_ALBEDO + Description: +Define 056: SHADER_LOC_MAP_SPECULAR + Name: SHADER_LOC_MAP_SPECULAR + Type: UNKNOWN + Value: SHADER_LOC_MAP_METALNESS + Description: +Define 057: GetMouseRay + Name: GetMouseRay + Type: UNKNOWN + Value: GetScreenToWorldRay + Description: Compatibility hack for previous raylib versions + +Structures found: 34 + +Struct 01: Vector2 (2 fields) + Name: Vector2 + Description: Vector2, 2 components + Field[1]: float x // Vector x component + Field[2]: float y // Vector y component +Struct 02: Vector3 (3 fields) + Name: Vector3 + Description: Vector3, 3 components + Field[1]: float x // Vector x component + Field[2]: float y // Vector y component + Field[3]: float z // Vector z component +Struct 03: Vector4 (4 fields) + Name: Vector4 + Description: Vector4, 4 components + Field[1]: float x // Vector x component + Field[2]: float y // Vector y component + Field[3]: float z // Vector z component + Field[4]: float w // Vector w component +Struct 04: Matrix (16 fields) + Name: Matrix + Description: Matrix, 4x4 components, column major, OpenGL style, right-handed + Field[1]: float m0 // Matrix first row (4 components) + Field[2]: float m4 // Matrix first row (4 components) + Field[3]: float m8 // Matrix first row (4 components) + Field[4]: float m12 // Matrix first row (4 components) + Field[5]: float m1 // Matrix second row (4 components) + Field[6]: float m5 // Matrix second row (4 components) + Field[7]: float m9 // Matrix second row (4 components) + Field[8]: float m13 // Matrix second row (4 components) + Field[9]: float m2 // Matrix third row (4 components) + Field[10]: float m6 // Matrix third row (4 components) + Field[11]: float m10 // Matrix third row (4 components) + Field[12]: float m14 // Matrix third row (4 components) + Field[13]: float m3 // Matrix fourth row (4 components) + Field[14]: float m7 // Matrix fourth row (4 components) + Field[15]: float m11 // Matrix fourth row (4 components) + Field[16]: float m15 // Matrix fourth row (4 components) +Struct 05: Color (4 fields) + Name: Color + Description: Color, 4 components, R8G8B8A8 (32bit) + Field[1]: unsigned char r // Color red value + Field[2]: unsigned char g // Color green value + Field[3]: unsigned char b // Color blue value + Field[4]: unsigned char a // Color alpha value +Struct 06: Rectangle (4 fields) + Name: Rectangle + Description: Rectangle, 4 components + Field[1]: float x // Rectangle top-left corner position x + Field[2]: float y // Rectangle top-left corner position y + Field[3]: float width // Rectangle width + Field[4]: float height // Rectangle height +Struct 07: Image (5 fields) + Name: Image + Description: Image, pixel data stored in CPU memory (RAM) + Field[1]: void * data // Image raw data + Field[2]: int width // Image base width + Field[3]: int height // Image base height + Field[4]: int mipmaps // Mipmap levels, 1 by default + Field[5]: int format // Data format (PixelFormat type) +Struct 08: Texture (5 fields) + Name: Texture + Description: Texture, tex data stored in GPU memory (VRAM) + Field[1]: unsigned int id // OpenGL texture id + Field[2]: int width // Texture base width + Field[3]: int height // Texture base height + Field[4]: int mipmaps // Mipmap levels, 1 by default + Field[5]: int format // Data format (PixelFormat type) +Struct 09: RenderTexture (3 fields) + Name: RenderTexture + Description: RenderTexture, fbo for texture rendering + Field[1]: unsigned int id // OpenGL framebuffer object id + Field[2]: Texture texture // Color buffer attachment texture + Field[3]: Texture depth // Depth buffer attachment texture +Struct 10: NPatchInfo (6 fields) + Name: NPatchInfo + Description: NPatchInfo, n-patch layout info + Field[1]: Rectangle source // Texture source rectangle + Field[2]: int left // Left border offset + Field[3]: int top // Top border offset + Field[4]: int right // Right border offset + Field[5]: int bottom // Bottom border offset + Field[6]: int layout // Layout of the n-patch: 3x3, 1x3 or 3x1 +Struct 11: GlyphInfo (5 fields) + Name: GlyphInfo + Description: GlyphInfo, font characters glyphs info + Field[1]: int value // Character value (Unicode) + Field[2]: int offsetX // Character offset X when drawing + Field[3]: int offsetY // Character offset Y when drawing + Field[4]: int advanceX // Character advance position X + Field[5]: Image image // Character image data +Struct 12: Font (6 fields) + Name: Font + Description: Font, font texture and GlyphInfo array data + Field[1]: int baseSize // Base size (default chars height) + Field[2]: int glyphCount // Number of glyph characters + Field[3]: int glyphPadding // Padding around the glyph characters + Field[4]: Texture2D texture // Texture atlas containing the glyphs + Field[5]: Rectangle * recs // Rectangles in texture for the glyphs + Field[6]: GlyphInfo * glyphs // Glyphs info data +Struct 13: Camera3D (5 fields) + Name: Camera3D + Description: Camera, defines position/orientation in 3d space + Field[1]: Vector3 position // Camera position + Field[2]: Vector3 target // Camera target it looks-at + Field[3]: Vector3 up // Camera up vector (rotation over its axis) + Field[4]: float fovy // Camera field-of-view aperture in Y (degrees) in perspective, used as near plane width in orthographic + Field[5]: int projection // Camera projection: CAMERA_PERSPECTIVE or CAMERA_ORTHOGRAPHIC +Struct 14: Camera2D (4 fields) + Name: Camera2D + Description: Camera2D, defines position/orientation in 2d space + Field[1]: Vector2 offset // Camera offset (displacement from target) + Field[2]: Vector2 target // Camera target (rotation and zoom origin) + Field[3]: float rotation // Camera rotation in degrees + Field[4]: float zoom // Camera zoom (scaling), should be 1.0f by default +Struct 15: Mesh (17 fields) + Name: Mesh + Description: Mesh, vertex data and vao/vbo + Field[1]: int vertexCount // Number of vertices stored in arrays + Field[2]: int triangleCount // Number of triangles stored (indexed or not) + Field[3]: float * vertices // Vertex position (XYZ - 3 components per vertex) (shader-location = 0) + Field[4]: float * texcoords // Vertex texture coordinates (UV - 2 components per vertex) (shader-location = 1) + Field[5]: float * texcoords2 // Vertex texture second coordinates (UV - 2 components per vertex) (shader-location = 5) + Field[6]: float * normals // Vertex normals (XYZ - 3 components per vertex) (shader-location = 2) + Field[7]: float * tangents // Vertex tangents (XYZW - 4 components per vertex) (shader-location = 4) + Field[8]: unsigned char * colors // Vertex colors (RGBA - 4 components per vertex) (shader-location = 3) + Field[9]: unsigned short * indices // Vertex indices (in case vertex data comes indexed) + Field[10]: float * animVertices // Animated vertex positions (after bones transformations) + Field[11]: float * animNormals // Animated normals (after bones transformations) + Field[12]: unsigned char * boneIds // Vertex bone ids, max 255 bone ids, up to 4 bones influence by vertex (skinning) (shader-location = 6) + Field[13]: float * boneWeights // Vertex bone weight, up to 4 bones influence by vertex (skinning) (shader-location = 7) + Field[14]: Matrix * boneMatrices // Bones animated transformation matrices + Field[15]: int boneCount // Number of bones + Field[16]: unsigned int vaoId // OpenGL Vertex Array Object id + Field[17]: unsigned int * vboId // OpenGL Vertex Buffer Objects id (default vertex data) +Struct 16: Shader (2 fields) + Name: Shader + Description: Shader + Field[1]: unsigned int id // Shader program id + Field[2]: int * locs // Shader locations array (RL_MAX_SHADER_LOCATIONS) +Struct 17: MaterialMap (3 fields) + Name: MaterialMap + Description: MaterialMap + Field[1]: Texture2D texture // Material map texture + Field[2]: Color color // Material map color + Field[3]: float value // Material map value +Struct 18: Material (3 fields) + Name: Material + Description: Material, includes shader and maps + Field[1]: Shader shader // Material shader + Field[2]: MaterialMap * maps // Material maps array (MAX_MATERIAL_MAPS) + Field[3]: float[4] params // Material generic parameters (if required) +Struct 19: Transform (3 fields) + Name: Transform + Description: Transform, vertex transformation data + Field[1]: Vector3 translation // Translation + Field[2]: Quaternion rotation // Rotation + Field[3]: Vector3 scale // Scale +Struct 20: BoneInfo (2 fields) + Name: BoneInfo + Description: Bone, skeletal animation bone + Field[1]: char[32] name // Bone name + Field[2]: int parent // Bone parent +Struct 21: Model (9 fields) + Name: Model + Description: Model, meshes, materials and animation data + Field[1]: Matrix transform // Local transform matrix + Field[2]: int meshCount // Number of meshes + Field[3]: int materialCount // Number of materials + Field[4]: Mesh * meshes // Meshes array + Field[5]: Material * materials // Materials array + Field[6]: int * meshMaterial // Mesh material number + Field[7]: int boneCount // Number of bones + Field[8]: BoneInfo * bones // Bones information (skeleton) + Field[9]: Transform * bindPose // Bones base transformation (pose) +Struct 22: ModelAnimation (5 fields) + Name: ModelAnimation + Description: ModelAnimation + Field[1]: int boneCount // Number of bones + Field[2]: int frameCount // Number of animation frames + Field[3]: BoneInfo * bones // Bones information (skeleton) + Field[4]: Transform ** framePoses // Poses array by frame + Field[5]: char[32] name // Animation name +Struct 23: Ray (2 fields) + Name: Ray + Description: Ray, ray for raycasting + Field[1]: Vector3 position // Ray position (origin) + Field[2]: Vector3 direction // Ray direction (normalized) +Struct 24: RayCollision (4 fields) + Name: RayCollision + Description: RayCollision, ray hit information + Field[1]: bool hit // Did the ray hit something? + Field[2]: float distance // Distance to the nearest hit + Field[3]: Vector3 point // Point of the nearest hit + Field[4]: Vector3 normal // Surface normal of hit +Struct 25: BoundingBox (2 fields) + Name: BoundingBox + Description: BoundingBox + Field[1]: Vector3 min // Minimum vertex box-corner + Field[2]: Vector3 max // Maximum vertex box-corner +Struct 26: Wave (5 fields) + Name: Wave + Description: Wave, audio wave data + Field[1]: unsigned int frameCount // Total number of frames (considering channels) + Field[2]: unsigned int sampleRate // Frequency (samples per second) + Field[3]: unsigned int sampleSize // Bit depth (bits per sample): 8, 16, 32 (24 not supported) + Field[4]: unsigned int channels // Number of channels (1-mono, 2-stereo, ...) + Field[5]: void * data // Buffer data pointer +Struct 27: AudioStream (5 fields) + Name: AudioStream + Description: AudioStream, custom audio stream + Field[1]: rAudioBuffer * buffer // Pointer to internal data used by the audio system + Field[2]: rAudioProcessor * processor // Pointer to internal data processor, useful for audio effects + Field[3]: unsigned int sampleRate // Frequency (samples per second) + Field[4]: unsigned int sampleSize // Bit depth (bits per sample): 8, 16, 32 (24 not supported) + Field[5]: unsigned int channels // Number of channels (1-mono, 2-stereo, ...) +Struct 28: Sound (2 fields) + Name: Sound + Description: Sound + Field[1]: AudioStream stream // Audio stream + Field[2]: unsigned int frameCount // Total number of frames (considering channels) +Struct 29: Music (5 fields) + Name: Music + Description: Music, audio stream, anything longer than ~10 seconds should be streamed + Field[1]: AudioStream stream // Audio stream + Field[2]: unsigned int frameCount // Total number of frames (considering channels) + Field[3]: bool looping // Music looping enable + Field[4]: int ctxType // Type of music context (audio filetype) + Field[5]: void * ctxData // Audio context data, depends on type +Struct 30: VrDeviceInfo (9 fields) + Name: VrDeviceInfo + Description: VrDeviceInfo, Head-Mounted-Display device parameters + Field[1]: int hResolution // Horizontal resolution in pixels + Field[2]: int vResolution // Vertical resolution in pixels + Field[3]: float hScreenSize // Horizontal size in meters + Field[4]: float vScreenSize // Vertical size in meters + Field[5]: float eyeToScreenDistance // Distance between eye and display in meters + Field[6]: float lensSeparationDistance // Lens separation distance in meters + Field[7]: float interpupillaryDistance // IPD (distance between pupils) in meters + Field[8]: float[4] lensDistortionValues // Lens distortion constant parameters + Field[9]: float[4] chromaAbCorrection // Chromatic aberration correction parameters +Struct 31: VrStereoConfig (8 fields) + Name: VrStereoConfig + Description: VrStereoConfig, VR stereo rendering configuration for simulator + Field[1]: Matrix[2] projection // VR projection matrices (per eye) + Field[2]: Matrix[2] viewOffset // VR view offset matrices (per eye) + Field[3]: float[2] leftLensCenter // VR left lens center + Field[4]: float[2] rightLensCenter // VR right lens center + Field[5]: float[2] leftScreenCenter // VR left screen center + Field[6]: float[2] rightScreenCenter // VR right screen center + Field[7]: float[2] scale // VR distortion scale + Field[8]: float[2] scaleIn // VR distortion scale in +Struct 32: FilePathList (3 fields) + Name: FilePathList + Description: File path list + Field[1]: unsigned int capacity // Filepaths max entries + Field[2]: unsigned int count // Filepaths entries count + Field[3]: char ** paths // Filepaths entries +Struct 33: AutomationEvent (3 fields) + Name: AutomationEvent + Description: Automation event + Field[1]: unsigned int frame // Event frame + Field[2]: unsigned int type // Event type (AutomationEventType) + Field[3]: int[4] params // Event parameters (if required) +Struct 34: AutomationEventList (3 fields) + Name: AutomationEventList + Description: Automation event list + Field[1]: unsigned int capacity // Events max entries (MAX_AUTOMATION_EVENTS) + Field[2]: unsigned int count // Events entries count + Field[3]: AutomationEvent * events // Events entries + +Aliases found: 5 + +Alias 001: Quaternion + Type: Vector4 + Name: Quaternion + Description: Quaternion, 4 components (Vector4 alias) +Alias 002: Texture2D + Type: Texture + Name: Texture2D + Description: Texture2D, same as Texture +Alias 003: TextureCubemap + Type: Texture + Name: TextureCubemap + Description: TextureCubemap, same as Texture +Alias 004: RenderTexture2D + Type: RenderTexture + Name: RenderTexture2D + Description: RenderTexture2D, same as RenderTexture +Alias 005: Camera + Type: Camera3D + Name: Camera + Description: Camera type fallback, defaults to Camera3D + +Enums found: 21 + +Enum 01: ConfigFlags (16 values) + Name: ConfigFlags + Description: System/Window config flags + Value[FLAG_VSYNC_HINT]: 64 + Value[FLAG_FULLSCREEN_MODE]: 2 + Value[FLAG_WINDOW_RESIZABLE]: 4 + Value[FLAG_WINDOW_UNDECORATED]: 8 + Value[FLAG_WINDOW_HIDDEN]: 128 + Value[FLAG_WINDOW_MINIMIZED]: 512 + Value[FLAG_WINDOW_MAXIMIZED]: 1024 + Value[FLAG_WINDOW_UNFOCUSED]: 2048 + Value[FLAG_WINDOW_TOPMOST]: 4096 + Value[FLAG_WINDOW_ALWAYS_RUN]: 256 + Value[FLAG_WINDOW_TRANSPARENT]: 16 + Value[FLAG_WINDOW_HIGHDPI]: 8192 + Value[FLAG_WINDOW_MOUSE_PASSTHROUGH]: 16384 + Value[FLAG_BORDERLESS_WINDOWED_MODE]: 32768 + Value[FLAG_MSAA_4X_HINT]: 32 + Value[FLAG_INTERLACED_HINT]: 65536 +Enum 02: TraceLogLevel (8 values) + Name: TraceLogLevel + Description: Trace log level + Value[LOG_ALL]: 0 + Value[LOG_TRACE]: 1 + Value[LOG_DEBUG]: 2 + Value[LOG_INFO]: 3 + Value[LOG_WARNING]: 4 + Value[LOG_ERROR]: 5 + Value[LOG_FATAL]: 6 + Value[LOG_NONE]: 7 +Enum 03: KeyboardKey (110 values) + Name: KeyboardKey + Description: Keyboard keys (US keyboard layout) + Value[KEY_NULL]: 0 + Value[KEY_APOSTROPHE]: 39 + Value[KEY_COMMA]: 44 + Value[KEY_MINUS]: 45 + Value[KEY_PERIOD]: 46 + Value[KEY_SLASH]: 47 + Value[KEY_ZERO]: 48 + Value[KEY_ONE]: 49 + Value[KEY_TWO]: 50 + Value[KEY_THREE]: 51 + Value[KEY_FOUR]: 52 + Value[KEY_FIVE]: 53 + Value[KEY_SIX]: 54 + Value[KEY_SEVEN]: 55 + Value[KEY_EIGHT]: 56 + Value[KEY_NINE]: 57 + Value[KEY_SEMICOLON]: 59 + Value[KEY_EQUAL]: 61 + Value[KEY_A]: 65 + Value[KEY_B]: 66 + Value[KEY_C]: 67 + Value[KEY_D]: 68 + Value[KEY_E]: 69 + Value[KEY_F]: 70 + Value[KEY_G]: 71 + Value[KEY_H]: 72 + Value[KEY_I]: 73 + Value[KEY_J]: 74 + Value[KEY_K]: 75 + Value[KEY_L]: 76 + Value[KEY_M]: 77 + Value[KEY_N]: 78 + Value[KEY_O]: 79 + Value[KEY_P]: 80 + Value[KEY_Q]: 81 + Value[KEY_R]: 82 + Value[KEY_S]: 83 + Value[KEY_T]: 84 + Value[KEY_U]: 85 + Value[KEY_V]: 86 + Value[KEY_W]: 87 + Value[KEY_X]: 88 + Value[KEY_Y]: 89 + Value[KEY_Z]: 90 + Value[KEY_LEFT_BRACKET]: 91 + Value[KEY_BACKSLASH]: 92 + Value[KEY_RIGHT_BRACKET]: 93 + Value[KEY_GRAVE]: 96 + Value[KEY_SPACE]: 32 + Value[KEY_ESCAPE]: 256 + Value[KEY_ENTER]: 257 + Value[KEY_TAB]: 258 + Value[KEY_BACKSPACE]: 259 + Value[KEY_INSERT]: 260 + Value[KEY_DELETE]: 261 + Value[KEY_RIGHT]: 262 + Value[KEY_LEFT]: 263 + Value[KEY_DOWN]: 264 + Value[KEY_UP]: 265 + Value[KEY_PAGE_UP]: 266 + Value[KEY_PAGE_DOWN]: 267 + Value[KEY_HOME]: 268 + Value[KEY_END]: 269 + Value[KEY_CAPS_LOCK]: 280 + Value[KEY_SCROLL_LOCK]: 281 + Value[KEY_NUM_LOCK]: 282 + Value[KEY_PRINT_SCREEN]: 283 + Value[KEY_PAUSE]: 284 + Value[KEY_F1]: 290 + Value[KEY_F2]: 291 + Value[KEY_F3]: 292 + Value[KEY_F4]: 293 + Value[KEY_F5]: 294 + Value[KEY_F6]: 295 + Value[KEY_F7]: 296 + Value[KEY_F8]: 297 + Value[KEY_F9]: 298 + Value[KEY_F10]: 299 + Value[KEY_F11]: 300 + Value[KEY_F12]: 301 + Value[KEY_LEFT_SHIFT]: 340 + Value[KEY_LEFT_CONTROL]: 341 + Value[KEY_LEFT_ALT]: 342 + Value[KEY_LEFT_SUPER]: 343 + Value[KEY_RIGHT_SHIFT]: 344 + Value[KEY_RIGHT_CONTROL]: 345 + Value[KEY_RIGHT_ALT]: 346 + Value[KEY_RIGHT_SUPER]: 347 + Value[KEY_KB_MENU]: 348 + Value[KEY_KP_0]: 320 + Value[KEY_KP_1]: 321 + Value[KEY_KP_2]: 322 + Value[KEY_KP_3]: 323 + Value[KEY_KP_4]: 324 + Value[KEY_KP_5]: 325 + Value[KEY_KP_6]: 326 + Value[KEY_KP_7]: 327 + Value[KEY_KP_8]: 328 + Value[KEY_KP_9]: 329 + Value[KEY_KP_DECIMAL]: 330 + Value[KEY_KP_DIVIDE]: 331 + Value[KEY_KP_MULTIPLY]: 332 + Value[KEY_KP_SUBTRACT]: 333 + Value[KEY_KP_ADD]: 334 + Value[KEY_KP_ENTER]: 335 + Value[KEY_KP_EQUAL]: 336 + Value[KEY_BACK]: 4 + Value[KEY_MENU]: 5 + Value[KEY_VOLUME_UP]: 24 + Value[KEY_VOLUME_DOWN]: 25 +Enum 04: MouseButton (7 values) + Name: MouseButton + Description: Mouse buttons + Value[MOUSE_BUTTON_LEFT]: 0 + Value[MOUSE_BUTTON_RIGHT]: 1 + Value[MOUSE_BUTTON_MIDDLE]: 2 + Value[MOUSE_BUTTON_SIDE]: 3 + Value[MOUSE_BUTTON_EXTRA]: 4 + Value[MOUSE_BUTTON_FORWARD]: 5 + Value[MOUSE_BUTTON_BACK]: 6 +Enum 05: MouseCursor (11 values) + Name: MouseCursor + Description: Mouse cursor + Value[MOUSE_CURSOR_DEFAULT]: 0 + Value[MOUSE_CURSOR_ARROW]: 1 + Value[MOUSE_CURSOR_IBEAM]: 2 + Value[MOUSE_CURSOR_CROSSHAIR]: 3 + Value[MOUSE_CURSOR_POINTING_HAND]: 4 + Value[MOUSE_CURSOR_RESIZE_EW]: 5 + Value[MOUSE_CURSOR_RESIZE_NS]: 6 + Value[MOUSE_CURSOR_RESIZE_NWSE]: 7 + Value[MOUSE_CURSOR_RESIZE_NESW]: 8 + Value[MOUSE_CURSOR_RESIZE_ALL]: 9 + Value[MOUSE_CURSOR_NOT_ALLOWED]: 10 +Enum 06: GamepadButton (18 values) + Name: GamepadButton + Description: Gamepad buttons + Value[GAMEPAD_BUTTON_UNKNOWN]: 0 + Value[GAMEPAD_BUTTON_LEFT_FACE_UP]: 1 + Value[GAMEPAD_BUTTON_LEFT_FACE_RIGHT]: 2 + Value[GAMEPAD_BUTTON_LEFT_FACE_DOWN]: 3 + Value[GAMEPAD_BUTTON_LEFT_FACE_LEFT]: 4 + Value[GAMEPAD_BUTTON_RIGHT_FACE_UP]: 5 + Value[GAMEPAD_BUTTON_RIGHT_FACE_RIGHT]: 6 + Value[GAMEPAD_BUTTON_RIGHT_FACE_DOWN]: 7 + Value[GAMEPAD_BUTTON_RIGHT_FACE_LEFT]: 8 + Value[GAMEPAD_BUTTON_LEFT_TRIGGER_1]: 9 + Value[GAMEPAD_BUTTON_LEFT_TRIGGER_2]: 10 + Value[GAMEPAD_BUTTON_RIGHT_TRIGGER_1]: 11 + Value[GAMEPAD_BUTTON_RIGHT_TRIGGER_2]: 12 + Value[GAMEPAD_BUTTON_MIDDLE_LEFT]: 13 + Value[GAMEPAD_BUTTON_MIDDLE]: 14 + Value[GAMEPAD_BUTTON_MIDDLE_RIGHT]: 15 + Value[GAMEPAD_BUTTON_LEFT_THUMB]: 16 + Value[GAMEPAD_BUTTON_RIGHT_THUMB]: 17 +Enum 07: GamepadAxis (6 values) + Name: GamepadAxis + Description: Gamepad axes + Value[GAMEPAD_AXIS_LEFT_X]: 0 + Value[GAMEPAD_AXIS_LEFT_Y]: 1 + Value[GAMEPAD_AXIS_RIGHT_X]: 2 + Value[GAMEPAD_AXIS_RIGHT_Y]: 3 + Value[GAMEPAD_AXIS_LEFT_TRIGGER]: 4 + Value[GAMEPAD_AXIS_RIGHT_TRIGGER]: 5 +Enum 08: MaterialMapIndex (11 values) + Name: MaterialMapIndex + Description: Material map index + Value[MATERIAL_MAP_ALBEDO]: 0 + Value[MATERIAL_MAP_METALNESS]: 1 + Value[MATERIAL_MAP_NORMAL]: 2 + Value[MATERIAL_MAP_ROUGHNESS]: 3 + Value[MATERIAL_MAP_OCCLUSION]: 4 + Value[MATERIAL_MAP_EMISSION]: 5 + Value[MATERIAL_MAP_HEIGHT]: 6 + Value[MATERIAL_MAP_CUBEMAP]: 7 + Value[MATERIAL_MAP_IRRADIANCE]: 8 + Value[MATERIAL_MAP_PREFILTER]: 9 + Value[MATERIAL_MAP_BRDF]: 10 +Enum 09: ShaderLocationIndex (30 values) + Name: ShaderLocationIndex + Description: Shader location index + Value[SHADER_LOC_VERTEX_POSITION]: 0 + Value[SHADER_LOC_VERTEX_TEXCOORD01]: 1 + Value[SHADER_LOC_VERTEX_TEXCOORD02]: 2 + Value[SHADER_LOC_VERTEX_NORMAL]: 3 + Value[SHADER_LOC_VERTEX_TANGENT]: 4 + Value[SHADER_LOC_VERTEX_COLOR]: 5 + Value[SHADER_LOC_MATRIX_MVP]: 6 + Value[SHADER_LOC_MATRIX_VIEW]: 7 + Value[SHADER_LOC_MATRIX_PROJECTION]: 8 + Value[SHADER_LOC_MATRIX_MODEL]: 9 + Value[SHADER_LOC_MATRIX_NORMAL]: 10 + Value[SHADER_LOC_VECTOR_VIEW]: 11 + Value[SHADER_LOC_COLOR_DIFFUSE]: 12 + Value[SHADER_LOC_COLOR_SPECULAR]: 13 + Value[SHADER_LOC_COLOR_AMBIENT]: 14 + Value[SHADER_LOC_MAP_ALBEDO]: 15 + Value[SHADER_LOC_MAP_METALNESS]: 16 + Value[SHADER_LOC_MAP_NORMAL]: 17 + Value[SHADER_LOC_MAP_ROUGHNESS]: 18 + Value[SHADER_LOC_MAP_OCCLUSION]: 19 + Value[SHADER_LOC_MAP_EMISSION]: 20 + Value[SHADER_LOC_MAP_HEIGHT]: 21 + Value[SHADER_LOC_MAP_CUBEMAP]: 22 + Value[SHADER_LOC_MAP_IRRADIANCE]: 23 + Value[SHADER_LOC_MAP_PREFILTER]: 24 + Value[SHADER_LOC_MAP_BRDF]: 25 + Value[SHADER_LOC_VERTEX_BONEIDS]: 26 + Value[SHADER_LOC_VERTEX_BONEWEIGHTS]: 27 + Value[SHADER_LOC_BONE_MATRICES]: 28 + Value[SHADER_LOC_VERTEX_INSTANCE_TX]: 29 +Enum 10: ShaderUniformDataType (13 values) + Name: ShaderUniformDataType + Description: Shader uniform data type + Value[SHADER_UNIFORM_FLOAT]: 0 + Value[SHADER_UNIFORM_VEC2]: 1 + Value[SHADER_UNIFORM_VEC3]: 2 + Value[SHADER_UNIFORM_VEC4]: 3 + Value[SHADER_UNIFORM_INT]: 4 + Value[SHADER_UNIFORM_IVEC2]: 5 + Value[SHADER_UNIFORM_IVEC3]: 6 + Value[SHADER_UNIFORM_IVEC4]: 7 + Value[SHADER_UNIFORM_UINT]: 8 + Value[SHADER_UNIFORM_UIVEC2]: 9 + Value[SHADER_UNIFORM_UIVEC3]: 10 + Value[SHADER_UNIFORM_UIVEC4]: 11 + Value[SHADER_UNIFORM_SAMPLER2D]: 12 +Enum 11: ShaderAttributeDataType (4 values) + Name: ShaderAttributeDataType + Description: Shader attribute data types + Value[SHADER_ATTRIB_FLOAT]: 0 + Value[SHADER_ATTRIB_VEC2]: 1 + Value[SHADER_ATTRIB_VEC3]: 2 + Value[SHADER_ATTRIB_VEC4]: 3 +Enum 12: PixelFormat (24 values) + Name: PixelFormat + Description: Pixel formats + Value[PIXELFORMAT_UNCOMPRESSED_GRAYSCALE]: 1 + Value[PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA]: 2 + Value[PIXELFORMAT_UNCOMPRESSED_R5G6B5]: 3 + Value[PIXELFORMAT_UNCOMPRESSED_R8G8B8]: 4 + Value[PIXELFORMAT_UNCOMPRESSED_R5G5B5A1]: 5 + Value[PIXELFORMAT_UNCOMPRESSED_R4G4B4A4]: 6 + Value[PIXELFORMAT_UNCOMPRESSED_R8G8B8A8]: 7 + Value[PIXELFORMAT_UNCOMPRESSED_R32]: 8 + Value[PIXELFORMAT_UNCOMPRESSED_R32G32B32]: 9 + Value[PIXELFORMAT_UNCOMPRESSED_R32G32B32A32]: 10 + Value[PIXELFORMAT_UNCOMPRESSED_R16]: 11 + Value[PIXELFORMAT_UNCOMPRESSED_R16G16B16]: 12 + Value[PIXELFORMAT_UNCOMPRESSED_R16G16B16A16]: 13 + Value[PIXELFORMAT_COMPRESSED_DXT1_RGB]: 14 + Value[PIXELFORMAT_COMPRESSED_DXT1_RGBA]: 15 + Value[PIXELFORMAT_COMPRESSED_DXT3_RGBA]: 16 + Value[PIXELFORMAT_COMPRESSED_DXT5_RGBA]: 17 + Value[PIXELFORMAT_COMPRESSED_ETC1_RGB]: 18 + Value[PIXELFORMAT_COMPRESSED_ETC2_RGB]: 19 + Value[PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA]: 20 + Value[PIXELFORMAT_COMPRESSED_PVRT_RGB]: 21 + Value[PIXELFORMAT_COMPRESSED_PVRT_RGBA]: 22 + Value[PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA]: 23 + Value[PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA]: 24 +Enum 13: TextureFilter (6 values) + Name: TextureFilter + Description: Texture parameters: filter mode + Value[TEXTURE_FILTER_POINT]: 0 + Value[TEXTURE_FILTER_BILINEAR]: 1 + Value[TEXTURE_FILTER_TRILINEAR]: 2 + Value[TEXTURE_FILTER_ANISOTROPIC_4X]: 3 + Value[TEXTURE_FILTER_ANISOTROPIC_8X]: 4 + Value[TEXTURE_FILTER_ANISOTROPIC_16X]: 5 +Enum 14: TextureWrap (4 values) + Name: TextureWrap + Description: Texture parameters: wrap mode + Value[TEXTURE_WRAP_REPEAT]: 0 + Value[TEXTURE_WRAP_CLAMP]: 1 + Value[TEXTURE_WRAP_MIRROR_REPEAT]: 2 + Value[TEXTURE_WRAP_MIRROR_CLAMP]: 3 +Enum 15: CubemapLayout (5 values) + Name: CubemapLayout + Description: Cubemap layouts + Value[CUBEMAP_LAYOUT_AUTO_DETECT]: 0 + Value[CUBEMAP_LAYOUT_LINE_VERTICAL]: 1 + Value[CUBEMAP_LAYOUT_LINE_HORIZONTAL]: 2 + Value[CUBEMAP_LAYOUT_CROSS_THREE_BY_FOUR]: 3 + Value[CUBEMAP_LAYOUT_CROSS_FOUR_BY_THREE]: 4 +Enum 16: FontType (3 values) + Name: FontType + Description: Font type, defines generation method + Value[FONT_DEFAULT]: 0 + Value[FONT_BITMAP]: 1 + Value[FONT_SDF]: 2 +Enum 17: BlendMode (8 values) + Name: BlendMode + Description: Color blending modes (pre-defined) + Value[BLEND_ALPHA]: 0 + Value[BLEND_ADDITIVE]: 1 + Value[BLEND_MULTIPLIED]: 2 + Value[BLEND_ADD_COLORS]: 3 + Value[BLEND_SUBTRACT_COLORS]: 4 + Value[BLEND_ALPHA_PREMULTIPLY]: 5 + Value[BLEND_CUSTOM]: 6 + Value[BLEND_CUSTOM_SEPARATE]: 7 +Enum 18: Gesture (11 values) + Name: Gesture + Description: Gesture + Value[GESTURE_NONE]: 0 + Value[GESTURE_TAP]: 1 + Value[GESTURE_DOUBLETAP]: 2 + Value[GESTURE_HOLD]: 4 + Value[GESTURE_DRAG]: 8 + Value[GESTURE_SWIPE_RIGHT]: 16 + Value[GESTURE_SWIPE_LEFT]: 32 + Value[GESTURE_SWIPE_UP]: 64 + Value[GESTURE_SWIPE_DOWN]: 128 + Value[GESTURE_PINCH_IN]: 256 + Value[GESTURE_PINCH_OUT]: 512 +Enum 19: CameraMode (5 values) + Name: CameraMode + Description: Camera system modes + Value[CAMERA_CUSTOM]: 0 + Value[CAMERA_FREE]: 1 + Value[CAMERA_ORBITAL]: 2 + Value[CAMERA_FIRST_PERSON]: 3 + Value[CAMERA_THIRD_PERSON]: 4 +Enum 20: CameraProjection (2 values) + Name: CameraProjection + Description: Camera projection + Value[CAMERA_PERSPECTIVE]: 0 + Value[CAMERA_ORTHOGRAPHIC]: 1 +Enum 21: NPatchLayout (3 values) + Name: NPatchLayout + Description: N-patch layout + Value[NPATCH_NINE_PATCH]: 0 + Value[NPATCH_THREE_PATCH_VERTICAL]: 1 + Value[NPATCH_THREE_PATCH_HORIZONTAL]: 2 + +Callbacks found: 6 + +Callback 001: TraceLogCallback() (3 input parameters) + Name: TraceLogCallback + Return type: void + Description: Logging: Redirect trace log messages + Param[1]: logLevel (type: int) + Param[2]: text (type: const char *) + Param[3]: args (type: va_list) +Callback 002: LoadFileDataCallback() (2 input parameters) + Name: LoadFileDataCallback + Return type: unsigned char * + Description: FileIO: Load binary data + Param[1]: fileName (type: const char *) + Param[2]: dataSize (type: int *) +Callback 003: SaveFileDataCallback() (3 input parameters) + Name: SaveFileDataCallback + Return type: bool + Description: FileIO: Save binary data + Param[1]: fileName (type: const char *) + Param[2]: data (type: void *) + Param[3]: dataSize (type: int) +Callback 004: LoadFileTextCallback() (1 input parameters) + Name: LoadFileTextCallback + Return type: char * + Description: FileIO: Load text data + Param[1]: fileName (type: const char *) +Callback 005: SaveFileTextCallback() (2 input parameters) + Name: SaveFileTextCallback + Return type: bool + Description: FileIO: Save text data + Param[1]: fileName (type: const char *) + Param[2]: text (type: const char *) +Callback 006: AudioCallback() (2 input parameters) + Name: AudioCallback + Return type: void + Description: + Param[1]: bufferData (type: void *) + Param[2]: frames (type: unsigned int) + +Functions found: 597 + +Function 001: InitWindow() (3 input parameters) + Name: InitWindow + Return type: void + Description: Initialize window and OpenGL context + Param[1]: width (type: int) + Param[2]: height (type: int) + Param[3]: title (type: const char *) +Function 002: CloseWindow() (0 input parameters) + Name: CloseWindow + Return type: void + Description: Close window and unload OpenGL context + No input parameters +Function 003: WindowShouldClose() (0 input parameters) + Name: WindowShouldClose + Return type: bool + Description: Check if application should close (KEY_ESCAPE pressed or windows close icon clicked) + No input parameters +Function 004: IsWindowReady() (0 input parameters) + Name: IsWindowReady + Return type: bool + Description: Check if window has been initialized successfully + No input parameters +Function 005: IsWindowFullscreen() (0 input parameters) + Name: IsWindowFullscreen + Return type: bool + Description: Check if window is currently fullscreen + No input parameters +Function 006: IsWindowHidden() (0 input parameters) + Name: IsWindowHidden + Return type: bool + Description: Check if window is currently hidden + No input parameters +Function 007: IsWindowMinimized() (0 input parameters) + Name: IsWindowMinimized + Return type: bool + Description: Check if window is currently minimized + No input parameters +Function 008: IsWindowMaximized() (0 input parameters) + Name: IsWindowMaximized + Return type: bool + Description: Check if window is currently maximized + No input parameters +Function 009: IsWindowFocused() (0 input parameters) + Name: IsWindowFocused + Return type: bool + Description: Check if window is currently focused + No input parameters +Function 010: IsWindowResized() (0 input parameters) + Name: IsWindowResized + Return type: bool + Description: Check if window has been resized last frame + No input parameters +Function 011: IsWindowState() (1 input parameters) + Name: IsWindowState + Return type: bool + Description: Check if one specific window flag is enabled + Param[1]: flag (type: unsigned int) +Function 012: SetWindowState() (1 input parameters) + Name: SetWindowState + Return type: void + Description: Set window configuration state using flags + Param[1]: flags (type: unsigned int) +Function 013: ClearWindowState() (1 input parameters) + Name: ClearWindowState + Return type: void + Description: Clear window configuration state flags + Param[1]: flags (type: unsigned int) +Function 014: ToggleFullscreen() (0 input parameters) + Name: ToggleFullscreen + Return type: void + Description: Toggle window state: fullscreen/windowed, resizes monitor to match window resolution + No input parameters +Function 015: ToggleBorderlessWindowed() (0 input parameters) + Name: ToggleBorderlessWindowed + Return type: void + Description: Toggle window state: borderless windowed, resizes window to match monitor resolution + No input parameters +Function 016: MaximizeWindow() (0 input parameters) + Name: MaximizeWindow + Return type: void + Description: Set window state: maximized, if resizable + No input parameters +Function 017: MinimizeWindow() (0 input parameters) + Name: MinimizeWindow + Return type: void + Description: Set window state: minimized, if resizable + No input parameters +Function 018: RestoreWindow() (0 input parameters) + Name: RestoreWindow + Return type: void + Description: Restore window from being minimized/maximized + No input parameters +Function 019: SetWindowIcon() (1 input parameters) + Name: SetWindowIcon + Return type: void + Description: Set icon for window (single image, RGBA 32bit) + Param[1]: image (type: Image) +Function 020: SetWindowIcons() (2 input parameters) + Name: SetWindowIcons + Return type: void + Description: Set icon for window (multiple images, RGBA 32bit) + Param[1]: images (type: Image *) + Param[2]: count (type: int) +Function 021: SetWindowTitle() (1 input parameters) + Name: SetWindowTitle + Return type: void + Description: Set title for window + Param[1]: title (type: const char *) +Function 022: SetWindowPosition() (2 input parameters) + Name: SetWindowPosition + Return type: void + Description: Set window position on screen + Param[1]: x (type: int) + Param[2]: y (type: int) +Function 023: SetWindowMonitor() (1 input parameters) + Name: SetWindowMonitor + Return type: void + Description: Set monitor for the current window + Param[1]: monitor (type: int) +Function 024: SetWindowMinSize() (2 input parameters) + Name: SetWindowMinSize + Return type: void + Description: Set window minimum dimensions (for FLAG_WINDOW_RESIZABLE) + Param[1]: width (type: int) + Param[2]: height (type: int) +Function 025: SetWindowMaxSize() (2 input parameters) + Name: SetWindowMaxSize + Return type: void + Description: Set window maximum dimensions (for FLAG_WINDOW_RESIZABLE) + Param[1]: width (type: int) + Param[2]: height (type: int) +Function 026: SetWindowSize() (2 input parameters) + Name: SetWindowSize + Return type: void + Description: Set window dimensions + Param[1]: width (type: int) + Param[2]: height (type: int) +Function 027: SetWindowOpacity() (1 input parameters) + Name: SetWindowOpacity + Return type: void + Description: Set window opacity [0.0f..1.0f] + Param[1]: opacity (type: float) +Function 028: SetWindowFocused() (0 input parameters) + Name: SetWindowFocused + Return type: void + Description: Set window focused + No input parameters +Function 029: GetWindowHandle() (0 input parameters) + Name: GetWindowHandle + Return type: void * + Description: Get native window handle + No input parameters +Function 030: GetScreenWidth() (0 input parameters) + Name: GetScreenWidth + Return type: int + Description: Get current screen width + No input parameters +Function 031: GetScreenHeight() (0 input parameters) + Name: GetScreenHeight + Return type: int + Description: Get current screen height + No input parameters +Function 032: GetRenderWidth() (0 input parameters) + Name: GetRenderWidth + Return type: int + Description: Get current render width (it considers HiDPI) + No input parameters +Function 033: GetRenderHeight() (0 input parameters) + Name: GetRenderHeight + Return type: int + Description: Get current render height (it considers HiDPI) + No input parameters +Function 034: GetMonitorCount() (0 input parameters) + Name: GetMonitorCount + Return type: int + Description: Get number of connected monitors + No input parameters +Function 035: GetCurrentMonitor() (0 input parameters) + Name: GetCurrentMonitor + Return type: int + Description: Get current monitor where window is placed + No input parameters +Function 036: GetMonitorPosition() (1 input parameters) + Name: GetMonitorPosition + Return type: Vector2 + Description: Get specified monitor position + Param[1]: monitor (type: int) +Function 037: GetMonitorWidth() (1 input parameters) + Name: GetMonitorWidth + Return type: int + Description: Get specified monitor width (current video mode used by monitor) + Param[1]: monitor (type: int) +Function 038: GetMonitorHeight() (1 input parameters) + Name: GetMonitorHeight + Return type: int + Description: Get specified monitor height (current video mode used by monitor) + Param[1]: monitor (type: int) +Function 039: GetMonitorPhysicalWidth() (1 input parameters) + Name: GetMonitorPhysicalWidth + Return type: int + Description: Get specified monitor physical width in millimetres + Param[1]: monitor (type: int) +Function 040: GetMonitorPhysicalHeight() (1 input parameters) + Name: GetMonitorPhysicalHeight + Return type: int + Description: Get specified monitor physical height in millimetres + Param[1]: monitor (type: int) +Function 041: GetMonitorRefreshRate() (1 input parameters) + Name: GetMonitorRefreshRate + Return type: int + Description: Get specified monitor refresh rate + Param[1]: monitor (type: int) +Function 042: GetWindowPosition() (0 input parameters) + Name: GetWindowPosition + Return type: Vector2 + Description: Get window position XY on monitor + No input parameters +Function 043: GetWindowScaleDPI() (0 input parameters) + Name: GetWindowScaleDPI + Return type: Vector2 + Description: Get window scale DPI factor + No input parameters +Function 044: GetMonitorName() (1 input parameters) + Name: GetMonitorName + Return type: const char * + Description: Get the human-readable, UTF-8 encoded name of the specified monitor + Param[1]: monitor (type: int) +Function 045: SetClipboardText() (1 input parameters) + Name: SetClipboardText + Return type: void + Description: Set clipboard text content + Param[1]: text (type: const char *) +Function 046: GetClipboardText() (0 input parameters) + Name: GetClipboardText + Return type: const char * + Description: Get clipboard text content + No input parameters +Function 047: GetClipboardImage() (0 input parameters) + Name: GetClipboardImage + Return type: Image + Description: Get clipboard image content + No input parameters +Function 048: EnableEventWaiting() (0 input parameters) + Name: EnableEventWaiting + Return type: void + Description: Enable waiting for events on EndDrawing(), no automatic event polling + No input parameters +Function 049: DisableEventWaiting() (0 input parameters) + Name: DisableEventWaiting + Return type: void + Description: Disable waiting for events on EndDrawing(), automatic events polling + No input parameters +Function 050: ShowCursor() (0 input parameters) + Name: ShowCursor + Return type: void + Description: Shows cursor + No input parameters +Function 051: HideCursor() (0 input parameters) + Name: HideCursor + Return type: void + Description: Hides cursor + No input parameters +Function 052: IsCursorHidden() (0 input parameters) + Name: IsCursorHidden + Return type: bool + Description: Check if cursor is not visible + No input parameters +Function 053: EnableCursor() (0 input parameters) + Name: EnableCursor + Return type: void + Description: Enables cursor (unlock cursor) + No input parameters +Function 054: DisableCursor() (0 input parameters) + Name: DisableCursor + Return type: void + Description: Disables cursor (lock cursor) + No input parameters +Function 055: IsCursorOnScreen() (0 input parameters) + Name: IsCursorOnScreen + Return type: bool + Description: Check if cursor is on the screen + No input parameters +Function 056: ClearBackground() (1 input parameters) + Name: ClearBackground + Return type: void + Description: Set background color (framebuffer clear color) + Param[1]: color (type: Color) +Function 057: BeginDrawing() (0 input parameters) + Name: BeginDrawing + Return type: void + Description: Setup canvas (framebuffer) to start drawing + No input parameters +Function 058: EndDrawing() (0 input parameters) + Name: EndDrawing + Return type: void + Description: End canvas drawing and swap buffers (double buffering) + No input parameters +Function 059: BeginMode2D() (1 input parameters) + Name: BeginMode2D + Return type: void + Description: Begin 2D mode with custom camera (2D) + Param[1]: camera (type: Camera2D) +Function 060: EndMode2D() (0 input parameters) + Name: EndMode2D + Return type: void + Description: Ends 2D mode with custom camera + No input parameters +Function 061: BeginMode3D() (1 input parameters) + Name: BeginMode3D + Return type: void + Description: Begin 3D mode with custom camera (3D) + Param[1]: camera (type: Camera3D) +Function 062: EndMode3D() (0 input parameters) + Name: EndMode3D + Return type: void + Description: Ends 3D mode and returns to default 2D orthographic mode + No input parameters +Function 063: BeginTextureMode() (1 input parameters) + Name: BeginTextureMode + Return type: void + Description: Begin drawing to render texture + Param[1]: target (type: RenderTexture2D) +Function 064: EndTextureMode() (0 input parameters) + Name: EndTextureMode + Return type: void + Description: Ends drawing to render texture + No input parameters +Function 065: BeginShaderMode() (1 input parameters) + Name: BeginShaderMode + Return type: void + Description: Begin custom shader drawing + Param[1]: shader (type: Shader) +Function 066: EndShaderMode() (0 input parameters) + Name: EndShaderMode + Return type: void + Description: End custom shader drawing (use default shader) + No input parameters +Function 067: BeginBlendMode() (1 input parameters) + Name: BeginBlendMode + Return type: void + Description: Begin blending mode (alpha, additive, multiplied, subtract, custom) + Param[1]: mode (type: int) +Function 068: EndBlendMode() (0 input parameters) + Name: EndBlendMode + Return type: void + Description: End blending mode (reset to default: alpha blending) + No input parameters +Function 069: BeginScissorMode() (4 input parameters) + Name: BeginScissorMode + Return type: void + Description: Begin scissor mode (define screen area for following drawing) + Param[1]: x (type: int) + Param[2]: y (type: int) + Param[3]: width (type: int) + Param[4]: height (type: int) +Function 070: EndScissorMode() (0 input parameters) + Name: EndScissorMode + Return type: void + Description: End scissor mode + No input parameters +Function 071: BeginVrStereoMode() (1 input parameters) + Name: BeginVrStereoMode + Return type: void + Description: Begin stereo rendering (requires VR simulator) + Param[1]: config (type: VrStereoConfig) +Function 072: EndVrStereoMode() (0 input parameters) + Name: EndVrStereoMode + Return type: void + Description: End stereo rendering (requires VR simulator) + No input parameters +Function 073: LoadVrStereoConfig() (1 input parameters) + Name: LoadVrStereoConfig + Return type: VrStereoConfig + Description: Load VR stereo config for VR simulator device parameters + Param[1]: device (type: VrDeviceInfo) +Function 074: UnloadVrStereoConfig() (1 input parameters) + Name: UnloadVrStereoConfig + Return type: void + Description: Unload VR stereo config + Param[1]: config (type: VrStereoConfig) +Function 075: LoadShader() (2 input parameters) + Name: LoadShader + Return type: Shader + Description: Load shader from files and bind default locations + Param[1]: vsFileName (type: const char *) + Param[2]: fsFileName (type: const char *) +Function 076: LoadShaderFromMemory() (2 input parameters) + Name: LoadShaderFromMemory + Return type: Shader + Description: Load shader from code strings and bind default locations + Param[1]: vsCode (type: const char *) + Param[2]: fsCode (type: const char *) +Function 077: IsShaderValid() (1 input parameters) + Name: IsShaderValid + Return type: bool + Description: Check if a shader is valid (loaded on GPU) + Param[1]: shader (type: Shader) +Function 078: GetShaderLocation() (2 input parameters) + Name: GetShaderLocation + Return type: int + Description: Get shader uniform location + Param[1]: shader (type: Shader) + Param[2]: uniformName (type: const char *) +Function 079: GetShaderLocationAttrib() (2 input parameters) + Name: GetShaderLocationAttrib + Return type: int + Description: Get shader attribute location + Param[1]: shader (type: Shader) + Param[2]: attribName (type: const char *) +Function 080: SetShaderValue() (4 input parameters) + Name: SetShaderValue + Return type: void + Description: Set shader uniform value + Param[1]: shader (type: Shader) + Param[2]: locIndex (type: int) + Param[3]: value (type: const void *) + Param[4]: uniformType (type: int) +Function 081: SetShaderValueV() (5 input parameters) + Name: SetShaderValueV + Return type: void + Description: Set shader uniform value vector + Param[1]: shader (type: Shader) + Param[2]: locIndex (type: int) + Param[3]: value (type: const void *) + Param[4]: uniformType (type: int) + Param[5]: count (type: int) +Function 082: SetShaderValueMatrix() (3 input parameters) + Name: SetShaderValueMatrix + Return type: void + Description: Set shader uniform value (matrix 4x4) + Param[1]: shader (type: Shader) + Param[2]: locIndex (type: int) + Param[3]: mat (type: Matrix) +Function 083: SetShaderValueTexture() (3 input parameters) + Name: SetShaderValueTexture + Return type: void + Description: Set shader uniform value and bind the texture (sampler2d) + Param[1]: shader (type: Shader) + Param[2]: locIndex (type: int) + Param[3]: texture (type: Texture2D) +Function 084: UnloadShader() (1 input parameters) + Name: UnloadShader + Return type: void + Description: Unload shader from GPU memory (VRAM) + Param[1]: shader (type: Shader) +Function 085: GetScreenToWorldRay() (2 input parameters) + Name: GetScreenToWorldRay + Return type: Ray + Description: Get a ray trace from screen position (i.e mouse) + Param[1]: position (type: Vector2) + Param[2]: camera (type: Camera) +Function 086: GetScreenToWorldRayEx() (4 input parameters) + Name: GetScreenToWorldRayEx + Return type: Ray + Description: Get a ray trace from screen position (i.e mouse) in a viewport + Param[1]: position (type: Vector2) + Param[2]: camera (type: Camera) + Param[3]: width (type: int) + Param[4]: height (type: int) +Function 087: GetWorldToScreen() (2 input parameters) + Name: GetWorldToScreen + Return type: Vector2 + Description: Get the screen space position for a 3d world space position + Param[1]: position (type: Vector3) + Param[2]: camera (type: Camera) +Function 088: GetWorldToScreenEx() (4 input parameters) + Name: GetWorldToScreenEx + Return type: Vector2 + Description: Get size position for a 3d world space position + Param[1]: position (type: Vector3) + Param[2]: camera (type: Camera) + Param[3]: width (type: int) + Param[4]: height (type: int) +Function 089: GetWorldToScreen2D() (2 input parameters) + Name: GetWorldToScreen2D + Return type: Vector2 + Description: Get the screen space position for a 2d camera world space position + Param[1]: position (type: Vector2) + Param[2]: camera (type: Camera2D) +Function 090: GetScreenToWorld2D() (2 input parameters) + Name: GetScreenToWorld2D + Return type: Vector2 + Description: Get the world space position for a 2d camera screen space position + Param[1]: position (type: Vector2) + Param[2]: camera (type: Camera2D) +Function 091: GetCameraMatrix() (1 input parameters) + Name: GetCameraMatrix + Return type: Matrix + Description: Get camera transform matrix (view matrix) + Param[1]: camera (type: Camera) +Function 092: GetCameraMatrix2D() (1 input parameters) + Name: GetCameraMatrix2D + Return type: Matrix + Description: Get camera 2d transform matrix + Param[1]: camera (type: Camera2D) +Function 093: SetTargetFPS() (1 input parameters) + Name: SetTargetFPS + Return type: void + Description: Set target FPS (maximum) + Param[1]: fps (type: int) +Function 094: GetFrameTime() (0 input parameters) + Name: GetFrameTime + Return type: float + Description: Get time in seconds for last frame drawn (delta time) + No input parameters +Function 095: GetTime() (0 input parameters) + Name: GetTime + Return type: double + Description: Get elapsed time in seconds since InitWindow() + No input parameters +Function 096: GetFPS() (0 input parameters) + Name: GetFPS + Return type: int + Description: Get current FPS + No input parameters +Function 097: SwapScreenBuffer() (0 input parameters) + Name: SwapScreenBuffer + Return type: void + Description: Swap back buffer with front buffer (screen drawing) + No input parameters +Function 098: PollInputEvents() (0 input parameters) + Name: PollInputEvents + Return type: void + Description: Register all input events + No input parameters +Function 099: WaitTime() (1 input parameters) + Name: WaitTime + Return type: void + Description: Wait for some time (halt program execution) + Param[1]: seconds (type: double) +Function 100: SetRandomSeed() (1 input parameters) + Name: SetRandomSeed + Return type: void + Description: Set the seed for the random number generator + Param[1]: seed (type: unsigned int) +Function 101: GetRandomValue() (2 input parameters) + Name: GetRandomValue + Return type: int + Description: Get a random value between min and max (both included) + Param[1]: min (type: int) + Param[2]: max (type: int) +Function 102: LoadRandomSequence() (3 input parameters) + Name: LoadRandomSequence + Return type: int * + Description: Load random values sequence, no values repeated + Param[1]: count (type: unsigned int) + Param[2]: min (type: int) + Param[3]: max (type: int) +Function 103: UnloadRandomSequence() (1 input parameters) + Name: UnloadRandomSequence + Return type: void + Description: Unload random values sequence + Param[1]: sequence (type: int *) +Function 104: TakeScreenshot() (1 input parameters) + Name: TakeScreenshot + Return type: void + Description: Takes a screenshot of current screen (filename extension defines format) + Param[1]: fileName (type: const char *) +Function 105: SetConfigFlags() (1 input parameters) + Name: SetConfigFlags + Return type: void + Description: Setup init configuration flags (view FLAGS) + Param[1]: flags (type: unsigned int) +Function 106: OpenURL() (1 input parameters) + Name: OpenURL + Return type: void + Description: Open URL with default system browser (if available) + Param[1]: url (type: const char *) +Function 107: TraceLog() (3 input parameters) + Name: TraceLog + Return type: void + Description: Show trace log messages (LOG_DEBUG, LOG_INFO, LOG_WARNING, LOG_ERROR...) + Param[1]: logLevel (type: int) + Param[2]: text (type: const char *) + Param[3]: args (type: ...) +Function 108: SetTraceLogLevel() (1 input parameters) + Name: SetTraceLogLevel + Return type: void + Description: Set the current threshold (minimum) log level + Param[1]: logLevel (type: int) +Function 109: MemAlloc() (1 input parameters) + Name: MemAlloc + Return type: void * + Description: Internal memory allocator + Param[1]: size (type: unsigned int) +Function 110: MemRealloc() (2 input parameters) + Name: MemRealloc + Return type: void * + Description: Internal memory reallocator + Param[1]: ptr (type: void *) + Param[2]: size (type: unsigned int) +Function 111: MemFree() (1 input parameters) + Name: MemFree + Return type: void + Description: Internal memory free + Param[1]: ptr (type: void *) +Function 112: SetTraceLogCallback() (1 input parameters) + Name: SetTraceLogCallback + Return type: void + Description: Set custom trace log + Param[1]: callback (type: TraceLogCallback) +Function 113: SetLoadFileDataCallback() (1 input parameters) + Name: SetLoadFileDataCallback + Return type: void + Description: Set custom file binary data loader + Param[1]: callback (type: LoadFileDataCallback) +Function 114: SetSaveFileDataCallback() (1 input parameters) + Name: SetSaveFileDataCallback + Return type: void + Description: Set custom file binary data saver + Param[1]: callback (type: SaveFileDataCallback) +Function 115: SetLoadFileTextCallback() (1 input parameters) + Name: SetLoadFileTextCallback + Return type: void + Description: Set custom file text data loader + Param[1]: callback (type: LoadFileTextCallback) +Function 116: SetSaveFileTextCallback() (1 input parameters) + Name: SetSaveFileTextCallback + Return type: void + Description: Set custom file text data saver + Param[1]: callback (type: SaveFileTextCallback) +Function 117: LoadFileData() (2 input parameters) + Name: LoadFileData + Return type: unsigned char * + Description: Load file data as byte array (read) + Param[1]: fileName (type: const char *) + Param[2]: dataSize (type: int *) +Function 118: UnloadFileData() (1 input parameters) + Name: UnloadFileData + Return type: void + Description: Unload file data allocated by LoadFileData() + Param[1]: data (type: unsigned char *) +Function 119: SaveFileData() (3 input parameters) + Name: SaveFileData + Return type: bool + Description: Save data to file from byte array (write), returns true on success + Param[1]: fileName (type: const char *) + Param[2]: data (type: void *) + Param[3]: dataSize (type: int) +Function 120: ExportDataAsCode() (3 input parameters) + Name: ExportDataAsCode + Return type: bool + Description: Export data to code (.h), returns true on success + Param[1]: data (type: const unsigned char *) + Param[2]: dataSize (type: int) + Param[3]: fileName (type: const char *) +Function 121: LoadFileText() (1 input parameters) + Name: LoadFileText + Return type: char * + Description: Load text data from file (read), returns a '\0' terminated string + Param[1]: fileName (type: const char *) +Function 122: UnloadFileText() (1 input parameters) + Name: UnloadFileText + Return type: void + Description: Unload file text data allocated by LoadFileText() + Param[1]: text (type: char *) +Function 123: SaveFileText() (2 input parameters) + Name: SaveFileText + Return type: bool + Description: Save text data to file (write), string must be '\0' terminated, returns true on success + Param[1]: fileName (type: const char *) + Param[2]: text (type: const char *) +Function 124: FileExists() (1 input parameters) + Name: FileExists + Return type: bool + Description: Check if file exists + Param[1]: fileName (type: const char *) +Function 125: DirectoryExists() (1 input parameters) + Name: DirectoryExists + Return type: bool + Description: Check if a directory path exists + Param[1]: dirPath (type: const char *) +Function 126: IsFileExtension() (2 input parameters) + Name: IsFileExtension + Return type: bool + Description: Check file extension (including point: .png, .wav) + Param[1]: fileName (type: const char *) + Param[2]: ext (type: const char *) +Function 127: GetFileLength() (1 input parameters) + Name: GetFileLength + Return type: int + Description: Get file length in bytes (NOTE: GetFileSize() conflicts with windows.h) + Param[1]: fileName (type: const char *) +Function 128: GetFileExtension() (1 input parameters) + Name: GetFileExtension + Return type: const char * + Description: Get pointer to extension for a filename string (includes dot: '.png') + Param[1]: fileName (type: const char *) +Function 129: GetFileName() (1 input parameters) + Name: GetFileName + Return type: const char * + Description: Get pointer to filename for a path string + Param[1]: filePath (type: const char *) +Function 130: GetFileNameWithoutExt() (1 input parameters) + Name: GetFileNameWithoutExt + Return type: const char * + Description: Get filename string without extension (uses static string) + Param[1]: filePath (type: const char *) +Function 131: GetDirectoryPath() (1 input parameters) + Name: GetDirectoryPath + Return type: const char * + Description: Get full path for a given fileName with path (uses static string) + Param[1]: filePath (type: const char *) +Function 132: GetPrevDirectoryPath() (1 input parameters) + Name: GetPrevDirectoryPath + Return type: const char * + Description: Get previous directory path for a given path (uses static string) + Param[1]: dirPath (type: const char *) +Function 133: GetWorkingDirectory() (0 input parameters) + Name: GetWorkingDirectory + Return type: const char * + Description: Get current working directory (uses static string) + No input parameters +Function 134: GetApplicationDirectory() (0 input parameters) + Name: GetApplicationDirectory + Return type: const char * + Description: Get the directory of the running application (uses static string) + No input parameters +Function 135: MakeDirectory() (1 input parameters) + Name: MakeDirectory + Return type: int + Description: Create directories (including full path requested), returns 0 on success + Param[1]: dirPath (type: const char *) +Function 136: ChangeDirectory() (1 input parameters) + Name: ChangeDirectory + Return type: bool + Description: Change working directory, return true on success + Param[1]: dir (type: const char *) +Function 137: IsPathFile() (1 input parameters) + Name: IsPathFile + Return type: bool + Description: Check if a given path is a file or a directory + Param[1]: path (type: const char *) +Function 138: IsFileNameValid() (1 input parameters) + Name: IsFileNameValid + Return type: bool + Description: Check if fileName is valid for the platform/OS + Param[1]: fileName (type: const char *) +Function 139: LoadDirectoryFiles() (1 input parameters) + Name: LoadDirectoryFiles + Return type: FilePathList + Description: Load directory filepaths + Param[1]: dirPath (type: const char *) +Function 140: LoadDirectoryFilesEx() (3 input parameters) + Name: LoadDirectoryFilesEx + Return type: FilePathList + Description: Load directory filepaths with extension filtering and recursive directory scan. Use 'DIR' in the filter string to include directories in the result + Param[1]: basePath (type: const char *) + Param[2]: filter (type: const char *) + Param[3]: scanSubdirs (type: bool) +Function 141: UnloadDirectoryFiles() (1 input parameters) + Name: UnloadDirectoryFiles + Return type: void + Description: Unload filepaths + Param[1]: files (type: FilePathList) +Function 142: IsFileDropped() (0 input parameters) + Name: IsFileDropped + Return type: bool + Description: Check if a file has been dropped into window + No input parameters +Function 143: LoadDroppedFiles() (0 input parameters) + Name: LoadDroppedFiles + Return type: FilePathList + Description: Load dropped filepaths + No input parameters +Function 144: UnloadDroppedFiles() (1 input parameters) + Name: UnloadDroppedFiles + Return type: void + Description: Unload dropped filepaths + Param[1]: files (type: FilePathList) +Function 145: GetFileModTime() (1 input parameters) + Name: GetFileModTime + Return type: long + Description: Get file modification time (last write time) + Param[1]: fileName (type: const char *) +Function 146: CompressData() (3 input parameters) + Name: CompressData + Return type: unsigned char * + Description: Compress data (DEFLATE algorithm), memory must be MemFree() + Param[1]: data (type: const unsigned char *) + Param[2]: dataSize (type: int) + Param[3]: compDataSize (type: int *) +Function 147: DecompressData() (3 input parameters) + Name: DecompressData + Return type: unsigned char * + Description: Decompress data (DEFLATE algorithm), memory must be MemFree() + Param[1]: compData (type: const unsigned char *) + Param[2]: compDataSize (type: int) + Param[3]: dataSize (type: int *) +Function 148: EncodeDataBase64() (3 input parameters) + Name: EncodeDataBase64 + Return type: char * + Description: Encode data to Base64 string (includes NULL terminator), memory must be MemFree() + Param[1]: data (type: const unsigned char *) + Param[2]: dataSize (type: int) + Param[3]: outputSize (type: int *) +Function 149: DecodeDataBase64() (2 input parameters) + Name: DecodeDataBase64 + Return type: unsigned char * + Description: Decode Base64 string (expected NULL terminated), memory must be MemFree() + Param[1]: text (type: const char *) + Param[2]: outputSize (type: int *) +Function 150: ComputeCRC32() (2 input parameters) + Name: ComputeCRC32 + Return type: unsigned int + Description: Compute CRC32 hash code + Param[1]: data (type: unsigned char *) + Param[2]: dataSize (type: int) +Function 151: ComputeMD5() (2 input parameters) + Name: ComputeMD5 + Return type: unsigned int * + Description: Compute MD5 hash code, returns static int[4] (16 bytes) + Param[1]: data (type: unsigned char *) + Param[2]: dataSize (type: int) +Function 152: ComputeSHA1() (2 input parameters) + Name: ComputeSHA1 + Return type: unsigned int * + Description: Compute SHA1 hash code, returns static int[5] (20 bytes) + Param[1]: data (type: unsigned char *) + Param[2]: dataSize (type: int) +Function 153: LoadAutomationEventList() (1 input parameters) + Name: LoadAutomationEventList + Return type: AutomationEventList + Description: Load automation events list from file, NULL for empty list, capacity = MAX_AUTOMATION_EVENTS + Param[1]: fileName (type: const char *) +Function 154: UnloadAutomationEventList() (1 input parameters) + Name: UnloadAutomationEventList + Return type: void + Description: Unload automation events list from file + Param[1]: list (type: AutomationEventList) +Function 155: ExportAutomationEventList() (2 input parameters) + Name: ExportAutomationEventList + Return type: bool + Description: Export automation events list as text file + Param[1]: list (type: AutomationEventList) + Param[2]: fileName (type: const char *) +Function 156: SetAutomationEventList() (1 input parameters) + Name: SetAutomationEventList + Return type: void + Description: Set automation event list to record to + Param[1]: list (type: AutomationEventList *) +Function 157: SetAutomationEventBaseFrame() (1 input parameters) + Name: SetAutomationEventBaseFrame + Return type: void + Description: Set automation event internal base frame to start recording + Param[1]: frame (type: int) +Function 158: StartAutomationEventRecording() (0 input parameters) + Name: StartAutomationEventRecording + Return type: void + Description: Start recording automation events (AutomationEventList must be set) + No input parameters +Function 159: StopAutomationEventRecording() (0 input parameters) + Name: StopAutomationEventRecording + Return type: void + Description: Stop recording automation events + No input parameters +Function 160: PlayAutomationEvent() (1 input parameters) + Name: PlayAutomationEvent + Return type: void + Description: Play a recorded automation event + Param[1]: event (type: AutomationEvent) +Function 161: IsKeyPressed() (1 input parameters) + Name: IsKeyPressed + Return type: bool + Description: Check if a key has been pressed once + Param[1]: key (type: int) +Function 162: IsKeyPressedRepeat() (1 input parameters) + Name: IsKeyPressedRepeat + Return type: bool + Description: Check if a key has been pressed again + Param[1]: key (type: int) +Function 163: IsKeyDown() (1 input parameters) + Name: IsKeyDown + Return type: bool + Description: Check if a key is being pressed + Param[1]: key (type: int) +Function 164: IsKeyReleased() (1 input parameters) + Name: IsKeyReleased + Return type: bool + Description: Check if a key has been released once + Param[1]: key (type: int) +Function 165: IsKeyUp() (1 input parameters) + Name: IsKeyUp + Return type: bool + Description: Check if a key is NOT being pressed + Param[1]: key (type: int) +Function 166: GetKeyPressed() (0 input parameters) + Name: GetKeyPressed + Return type: int + Description: Get key pressed (keycode), call it multiple times for keys queued, returns 0 when the queue is empty + No input parameters +Function 167: GetCharPressed() (0 input parameters) + Name: GetCharPressed + Return type: int + Description: Get char pressed (unicode), call it multiple times for chars queued, returns 0 when the queue is empty + No input parameters +Function 168: GetKeyName() (1 input parameters) + Name: GetKeyName + Return type: const char * + Description: Get name of a QWERTY key on the current keyboard layout (eg returns string 'q' for KEY_A on an AZERTY keyboard) + Param[1]: key (type: int) +Function 169: SetExitKey() (1 input parameters) + Name: SetExitKey + Return type: void + Description: Set a custom key to exit program (default is ESC) + Param[1]: key (type: int) +Function 170: IsGamepadAvailable() (1 input parameters) + Name: IsGamepadAvailable + Return type: bool + Description: Check if a gamepad is available + Param[1]: gamepad (type: int) +Function 171: GetGamepadName() (1 input parameters) + Name: GetGamepadName + Return type: const char * + Description: Get gamepad internal name id + Param[1]: gamepad (type: int) +Function 172: IsGamepadButtonPressed() (2 input parameters) + Name: IsGamepadButtonPressed + Return type: bool + Description: Check if a gamepad button has been pressed once + Param[1]: gamepad (type: int) + Param[2]: button (type: int) +Function 173: IsGamepadButtonDown() (2 input parameters) + Name: IsGamepadButtonDown + Return type: bool + Description: Check if a gamepad button is being pressed + Param[1]: gamepad (type: int) + Param[2]: button (type: int) +Function 174: IsGamepadButtonReleased() (2 input parameters) + Name: IsGamepadButtonReleased + Return type: bool + Description: Check if a gamepad button has been released once + Param[1]: gamepad (type: int) + Param[2]: button (type: int) +Function 175: IsGamepadButtonUp() (2 input parameters) + Name: IsGamepadButtonUp + Return type: bool + Description: Check if a gamepad button is NOT being pressed + Param[1]: gamepad (type: int) + Param[2]: button (type: int) +Function 176: GetGamepadButtonPressed() (0 input parameters) + Name: GetGamepadButtonPressed + Return type: int + Description: Get the last gamepad button pressed + No input parameters +Function 177: GetGamepadAxisCount() (1 input parameters) + Name: GetGamepadAxisCount + Return type: int + Description: Get axis count for a gamepad + Param[1]: gamepad (type: int) +Function 178: GetGamepadAxisMovement() (2 input parameters) + Name: GetGamepadAxisMovement + Return type: float + Description: Get movement value for a gamepad axis + Param[1]: gamepad (type: int) + Param[2]: axis (type: int) +Function 179: SetGamepadMappings() (1 input parameters) + Name: SetGamepadMappings + Return type: int + Description: Set internal gamepad mappings (SDL_GameControllerDB) + Param[1]: mappings (type: const char *) +Function 180: SetGamepadVibration() (4 input parameters) + Name: SetGamepadVibration + Return type: void + Description: Set gamepad vibration for both motors (duration in seconds) + Param[1]: gamepad (type: int) + Param[2]: leftMotor (type: float) + Param[3]: rightMotor (type: float) + Param[4]: duration (type: float) +Function 181: IsMouseButtonPressed() (1 input parameters) + Name: IsMouseButtonPressed + Return type: bool + Description: Check if a mouse button has been pressed once + Param[1]: button (type: int) +Function 182: IsMouseButtonDown() (1 input parameters) + Name: IsMouseButtonDown + Return type: bool + Description: Check if a mouse button is being pressed + Param[1]: button (type: int) +Function 183: IsMouseButtonReleased() (1 input parameters) + Name: IsMouseButtonReleased + Return type: bool + Description: Check if a mouse button has been released once + Param[1]: button (type: int) +Function 184: IsMouseButtonUp() (1 input parameters) + Name: IsMouseButtonUp + Return type: bool + Description: Check if a mouse button is NOT being pressed + Param[1]: button (type: int) +Function 185: GetMouseX() (0 input parameters) + Name: GetMouseX + Return type: int + Description: Get mouse position X + No input parameters +Function 186: GetMouseY() (0 input parameters) + Name: GetMouseY + Return type: int + Description: Get mouse position Y + No input parameters +Function 187: GetMousePosition() (0 input parameters) + Name: GetMousePosition + Return type: Vector2 + Description: Get mouse position XY + No input parameters +Function 188: GetMouseDelta() (0 input parameters) + Name: GetMouseDelta + Return type: Vector2 + Description: Get mouse delta between frames + No input parameters +Function 189: SetMousePosition() (2 input parameters) + Name: SetMousePosition + Return type: void + Description: Set mouse position XY + Param[1]: x (type: int) + Param[2]: y (type: int) +Function 190: SetMouseOffset() (2 input parameters) + Name: SetMouseOffset + Return type: void + Description: Set mouse offset + Param[1]: offsetX (type: int) + Param[2]: offsetY (type: int) +Function 191: SetMouseScale() (2 input parameters) + Name: SetMouseScale + Return type: void + Description: Set mouse scaling + Param[1]: scaleX (type: float) + Param[2]: scaleY (type: float) +Function 192: GetMouseWheelMove() (0 input parameters) + Name: GetMouseWheelMove + Return type: float + Description: Get mouse wheel movement for X or Y, whichever is larger + No input parameters +Function 193: GetMouseWheelMoveV() (0 input parameters) + Name: GetMouseWheelMoveV + Return type: Vector2 + Description: Get mouse wheel movement for both X and Y + No input parameters +Function 194: SetMouseCursor() (1 input parameters) + Name: SetMouseCursor + Return type: void + Description: Set mouse cursor + Param[1]: cursor (type: int) +Function 195: GetTouchX() (0 input parameters) + Name: GetTouchX + Return type: int + Description: Get touch position X for touch point 0 (relative to screen size) + No input parameters +Function 196: GetTouchY() (0 input parameters) + Name: GetTouchY + Return type: int + Description: Get touch position Y for touch point 0 (relative to screen size) + No input parameters +Function 197: GetTouchPosition() (1 input parameters) + Name: GetTouchPosition + Return type: Vector2 + Description: Get touch position XY for a touch point index (relative to screen size) + Param[1]: index (type: int) +Function 198: GetTouchPointId() (1 input parameters) + Name: GetTouchPointId + Return type: int + Description: Get touch point identifier for given index + Param[1]: index (type: int) +Function 199: GetTouchPointCount() (0 input parameters) + Name: GetTouchPointCount + Return type: int + Description: Get number of touch points + No input parameters +Function 200: SetGesturesEnabled() (1 input parameters) + Name: SetGesturesEnabled + Return type: void + Description: Enable a set of gestures using flags + Param[1]: flags (type: unsigned int) +Function 201: IsGestureDetected() (1 input parameters) + Name: IsGestureDetected + Return type: bool + Description: Check if a gesture have been detected + Param[1]: gesture (type: unsigned int) +Function 202: GetGestureDetected() (0 input parameters) + Name: GetGestureDetected + Return type: int + Description: Get latest detected gesture + No input parameters +Function 203: GetGestureHoldDuration() (0 input parameters) + Name: GetGestureHoldDuration + Return type: float + Description: Get gesture hold time in seconds + No input parameters +Function 204: GetGestureDragVector() (0 input parameters) + Name: GetGestureDragVector + Return type: Vector2 + Description: Get gesture drag vector + No input parameters +Function 205: GetGestureDragAngle() (0 input parameters) + Name: GetGestureDragAngle + Return type: float + Description: Get gesture drag angle + No input parameters +Function 206: GetGesturePinchVector() (0 input parameters) + Name: GetGesturePinchVector + Return type: Vector2 + Description: Get gesture pinch delta + No input parameters +Function 207: GetGesturePinchAngle() (0 input parameters) + Name: GetGesturePinchAngle + Return type: float + Description: Get gesture pinch angle + No input parameters +Function 208: UpdateCamera() (2 input parameters) + Name: UpdateCamera + Return type: void + Description: Update camera position for selected mode + Param[1]: camera (type: Camera *) + Param[2]: mode (type: int) +Function 209: UpdateCameraPro() (4 input parameters) + Name: UpdateCameraPro + Return type: void + Description: Update camera movement/rotation + Param[1]: camera (type: Camera *) + Param[2]: movement (type: Vector3) + Param[3]: rotation (type: Vector3) + Param[4]: zoom (type: float) +Function 210: SetShapesTexture() (2 input parameters) + Name: SetShapesTexture + Return type: void + Description: Set texture and rectangle to be used on shapes drawing + Param[1]: texture (type: Texture2D) + Param[2]: source (type: Rectangle) +Function 211: GetShapesTexture() (0 input parameters) + Name: GetShapesTexture + Return type: Texture2D + Description: Get texture that is used for shapes drawing + No input parameters +Function 212: GetShapesTextureRectangle() (0 input parameters) + Name: GetShapesTextureRectangle + Return type: Rectangle + Description: Get texture source rectangle that is used for shapes drawing + No input parameters +Function 213: DrawPixel() (3 input parameters) + Name: DrawPixel + Return type: void + Description: Draw a pixel using geometry [Can be slow, use with care] + Param[1]: posX (type: int) + Param[2]: posY (type: int) + Param[3]: color (type: Color) +Function 214: DrawPixelV() (2 input parameters) + Name: DrawPixelV + Return type: void + Description: Draw a pixel using geometry (Vector version) [Can be slow, use with care] + Param[1]: position (type: Vector2) + Param[2]: color (type: Color) +Function 215: DrawLine() (5 input parameters) + Name: DrawLine + Return type: void + Description: Draw a line + Param[1]: startPosX (type: int) + Param[2]: startPosY (type: int) + Param[3]: endPosX (type: int) + Param[4]: endPosY (type: int) + Param[5]: color (type: Color) +Function 216: DrawLineV() (3 input parameters) + Name: DrawLineV + Return type: void + Description: Draw a line (using gl lines) + Param[1]: startPos (type: Vector2) + Param[2]: endPos (type: Vector2) + Param[3]: color (type: Color) +Function 217: DrawLineEx() (4 input parameters) + Name: DrawLineEx + Return type: void + Description: Draw a line (using triangles/quads) + Param[1]: startPos (type: Vector2) + Param[2]: endPos (type: Vector2) + Param[3]: thick (type: float) + Param[4]: color (type: Color) +Function 218: DrawLineStrip() (3 input parameters) + Name: DrawLineStrip + Return type: void + Description: Draw lines sequence (using gl lines) + Param[1]: points (type: const Vector2 *) + Param[2]: pointCount (type: int) + Param[3]: color (type: Color) +Function 219: DrawLineBezier() (4 input parameters) + Name: DrawLineBezier + Return type: void + Description: Draw line segment cubic-bezier in-out interpolation + Param[1]: startPos (type: Vector2) + Param[2]: endPos (type: Vector2) + Param[3]: thick (type: float) + Param[4]: color (type: Color) +Function 220: DrawCircle() (4 input parameters) + Name: DrawCircle + Return type: void + Description: Draw a color-filled circle + Param[1]: centerX (type: int) + Param[2]: centerY (type: int) + Param[3]: radius (type: float) + Param[4]: color (type: Color) +Function 221: DrawCircleSector() (6 input parameters) + Name: DrawCircleSector + Return type: void + Description: Draw a piece of a circle + Param[1]: center (type: Vector2) + Param[2]: radius (type: float) + Param[3]: startAngle (type: float) + Param[4]: endAngle (type: float) + Param[5]: segments (type: int) + Param[6]: color (type: Color) +Function 222: DrawCircleSectorLines() (6 input parameters) + Name: DrawCircleSectorLines + Return type: void + Description: Draw circle sector outline + Param[1]: center (type: Vector2) + Param[2]: radius (type: float) + Param[3]: startAngle (type: float) + Param[4]: endAngle (type: float) + Param[5]: segments (type: int) + Param[6]: color (type: Color) +Function 223: DrawCircleGradient() (5 input parameters) + Name: DrawCircleGradient + Return type: void + Description: Draw a gradient-filled circle + Param[1]: centerX (type: int) + Param[2]: centerY (type: int) + Param[3]: radius (type: float) + Param[4]: inner (type: Color) + Param[5]: outer (type: Color) +Function 224: DrawCircleV() (3 input parameters) + Name: DrawCircleV + Return type: void + Description: Draw a color-filled circle (Vector version) + Param[1]: center (type: Vector2) + Param[2]: radius (type: float) + Param[3]: color (type: Color) +Function 225: DrawCircleLines() (4 input parameters) + Name: DrawCircleLines + Return type: void + Description: Draw circle outline + Param[1]: centerX (type: int) + Param[2]: centerY (type: int) + Param[3]: radius (type: float) + Param[4]: color (type: Color) +Function 226: DrawCircleLinesV() (3 input parameters) + Name: DrawCircleLinesV + Return type: void + Description: Draw circle outline (Vector version) + Param[1]: center (type: Vector2) + Param[2]: radius (type: float) + Param[3]: color (type: Color) +Function 227: DrawEllipse() (5 input parameters) + Name: DrawEllipse + Return type: void + Description: Draw ellipse + Param[1]: centerX (type: int) + Param[2]: centerY (type: int) + Param[3]: radiusH (type: float) + Param[4]: radiusV (type: float) + Param[5]: color (type: Color) +Function 228: DrawEllipseV() (4 input parameters) + Name: DrawEllipseV + Return type: void + Description: Draw ellipse (Vector version) + Param[1]: center (type: Vector2) + Param[2]: radiusH (type: float) + Param[3]: radiusV (type: float) + Param[4]: color (type: Color) +Function 229: DrawEllipseLines() (5 input parameters) + Name: DrawEllipseLines + Return type: void + Description: Draw ellipse outline + Param[1]: centerX (type: int) + Param[2]: centerY (type: int) + Param[3]: radiusH (type: float) + Param[4]: radiusV (type: float) + Param[5]: color (type: Color) +Function 230: DrawEllipseLinesV() (4 input parameters) + Name: DrawEllipseLinesV + Return type: void + Description: Draw ellipse outline (Vector version) + Param[1]: center (type: Vector2) + Param[2]: radiusH (type: float) + Param[3]: radiusV (type: float) + Param[4]: color (type: Color) +Function 231: DrawRing() (7 input parameters) + Name: DrawRing + Return type: void + Description: Draw ring + Param[1]: center (type: Vector2) + Param[2]: innerRadius (type: float) + Param[3]: outerRadius (type: float) + Param[4]: startAngle (type: float) + Param[5]: endAngle (type: float) + Param[6]: segments (type: int) + Param[7]: color (type: Color) +Function 232: DrawRingLines() (7 input parameters) + Name: DrawRingLines + Return type: void + Description: Draw ring outline + Param[1]: center (type: Vector2) + Param[2]: innerRadius (type: float) + Param[3]: outerRadius (type: float) + Param[4]: startAngle (type: float) + Param[5]: endAngle (type: float) + Param[6]: segments (type: int) + Param[7]: color (type: Color) +Function 233: DrawRectangle() (5 input parameters) + Name: DrawRectangle + Return type: void + Description: Draw a color-filled rectangle + Param[1]: posX (type: int) + Param[2]: posY (type: int) + Param[3]: width (type: int) + Param[4]: height (type: int) + Param[5]: color (type: Color) +Function 234: DrawRectangleV() (3 input parameters) + Name: DrawRectangleV + Return type: void + Description: Draw a color-filled rectangle (Vector version) + Param[1]: position (type: Vector2) + Param[2]: size (type: Vector2) + Param[3]: color (type: Color) +Function 235: DrawRectangleRec() (2 input parameters) + Name: DrawRectangleRec + Return type: void + Description: Draw a color-filled rectangle + Param[1]: rec (type: Rectangle) + Param[2]: color (type: Color) +Function 236: DrawRectanglePro() (4 input parameters) + Name: DrawRectanglePro + Return type: void + Description: Draw a color-filled rectangle with pro parameters + Param[1]: rec (type: Rectangle) + Param[2]: origin (type: Vector2) + Param[3]: rotation (type: float) + Param[4]: color (type: Color) +Function 237: DrawRectangleGradientV() (6 input parameters) + Name: DrawRectangleGradientV + Return type: void + Description: Draw a vertical-gradient-filled rectangle + Param[1]: posX (type: int) + Param[2]: posY (type: int) + Param[3]: width (type: int) + Param[4]: height (type: int) + Param[5]: top (type: Color) + Param[6]: bottom (type: Color) +Function 238: DrawRectangleGradientH() (6 input parameters) + Name: DrawRectangleGradientH + Return type: void + Description: Draw a horizontal-gradient-filled rectangle + Param[1]: posX (type: int) + Param[2]: posY (type: int) + Param[3]: width (type: int) + Param[4]: height (type: int) + Param[5]: left (type: Color) + Param[6]: right (type: Color) +Function 239: DrawRectangleGradientEx() (5 input parameters) + Name: DrawRectangleGradientEx + Return type: void + Description: Draw a gradient-filled rectangle with custom vertex colors + Param[1]: rec (type: Rectangle) + Param[2]: topLeft (type: Color) + Param[3]: bottomLeft (type: Color) + Param[4]: bottomRight (type: Color) + Param[5]: topRight (type: Color) +Function 240: DrawRectangleLines() (5 input parameters) + Name: DrawRectangleLines + Return type: void + Description: Draw rectangle outline + Param[1]: posX (type: int) + Param[2]: posY (type: int) + Param[3]: width (type: int) + Param[4]: height (type: int) + Param[5]: color (type: Color) +Function 241: DrawRectangleLinesEx() (3 input parameters) + Name: DrawRectangleLinesEx + Return type: void + Description: Draw rectangle outline with extended parameters + Param[1]: rec (type: Rectangle) + Param[2]: lineThick (type: float) + Param[3]: color (type: Color) +Function 242: DrawRectangleRounded() (4 input parameters) + Name: DrawRectangleRounded + Return type: void + Description: Draw rectangle with rounded edges + Param[1]: rec (type: Rectangle) + Param[2]: roundness (type: float) + Param[3]: segments (type: int) + Param[4]: color (type: Color) +Function 243: DrawRectangleRoundedLines() (4 input parameters) + Name: DrawRectangleRoundedLines + Return type: void + Description: Draw rectangle lines with rounded edges + Param[1]: rec (type: Rectangle) + Param[2]: roundness (type: float) + Param[3]: segments (type: int) + Param[4]: color (type: Color) +Function 244: DrawRectangleRoundedLinesEx() (5 input parameters) + Name: DrawRectangleRoundedLinesEx + Return type: void + Description: Draw rectangle with rounded edges outline + Param[1]: rec (type: Rectangle) + Param[2]: roundness (type: float) + Param[3]: segments (type: int) + Param[4]: lineThick (type: float) + Param[5]: color (type: Color) +Function 245: DrawTriangle() (4 input parameters) + Name: DrawTriangle + Return type: void + Description: Draw a color-filled triangle (vertex in counter-clockwise order!) + Param[1]: v1 (type: Vector2) + Param[2]: v2 (type: Vector2) + Param[3]: v3 (type: Vector2) + Param[4]: color (type: Color) +Function 246: DrawTriangleLines() (4 input parameters) + Name: DrawTriangleLines + Return type: void + Description: Draw triangle outline (vertex in counter-clockwise order!) + Param[1]: v1 (type: Vector2) + Param[2]: v2 (type: Vector2) + Param[3]: v3 (type: Vector2) + Param[4]: color (type: Color) +Function 247: DrawTriangleFan() (3 input parameters) + Name: DrawTriangleFan + Return type: void + Description: Draw a triangle fan defined by points (first vertex is the center) + Param[1]: points (type: const Vector2 *) + Param[2]: pointCount (type: int) + Param[3]: color (type: Color) +Function 248: DrawTriangleStrip() (3 input parameters) + Name: DrawTriangleStrip + Return type: void + Description: Draw a triangle strip defined by points + Param[1]: points (type: const Vector2 *) + Param[2]: pointCount (type: int) + Param[3]: color (type: Color) +Function 249: DrawPoly() (5 input parameters) + Name: DrawPoly + Return type: void + Description: Draw a regular polygon (Vector version) + Param[1]: center (type: Vector2) + Param[2]: sides (type: int) + Param[3]: radius (type: float) + Param[4]: rotation (type: float) + Param[5]: color (type: Color) +Function 250: DrawPolyLines() (5 input parameters) + Name: DrawPolyLines + Return type: void + Description: Draw a polygon outline of n sides + Param[1]: center (type: Vector2) + Param[2]: sides (type: int) + Param[3]: radius (type: float) + Param[4]: rotation (type: float) + Param[5]: color (type: Color) +Function 251: DrawPolyLinesEx() (6 input parameters) + Name: DrawPolyLinesEx + Return type: void + Description: Draw a polygon outline of n sides with extended parameters + Param[1]: center (type: Vector2) + Param[2]: sides (type: int) + Param[3]: radius (type: float) + Param[4]: rotation (type: float) + Param[5]: lineThick (type: float) + Param[6]: color (type: Color) +Function 252: DrawSplineLinear() (4 input parameters) + Name: DrawSplineLinear + Return type: void + Description: Draw spline: Linear, minimum 2 points + Param[1]: points (type: const Vector2 *) + Param[2]: pointCount (type: int) + Param[3]: thick (type: float) + Param[4]: color (type: Color) +Function 253: DrawSplineBasis() (4 input parameters) + Name: DrawSplineBasis + Return type: void + Description: Draw spline: B-Spline, minimum 4 points + Param[1]: points (type: const Vector2 *) + Param[2]: pointCount (type: int) + Param[3]: thick (type: float) + Param[4]: color (type: Color) +Function 254: DrawSplineCatmullRom() (4 input parameters) + Name: DrawSplineCatmullRom + Return type: void + Description: Draw spline: Catmull-Rom, minimum 4 points + Param[1]: points (type: const Vector2 *) + Param[2]: pointCount (type: int) + Param[3]: thick (type: float) + Param[4]: color (type: Color) +Function 255: DrawSplineBezierQuadratic() (4 input parameters) + Name: DrawSplineBezierQuadratic + Return type: void + Description: Draw spline: Quadratic Bezier, minimum 3 points (1 control point): [p1, c2, p3, c4...] + Param[1]: points (type: const Vector2 *) + Param[2]: pointCount (type: int) + Param[3]: thick (type: float) + Param[4]: color (type: Color) +Function 256: DrawSplineBezierCubic() (4 input parameters) + Name: DrawSplineBezierCubic + Return type: void + Description: Draw spline: Cubic Bezier, minimum 4 points (2 control points): [p1, c2, c3, p4, c5, c6...] + Param[1]: points (type: const Vector2 *) + Param[2]: pointCount (type: int) + Param[3]: thick (type: float) + Param[4]: color (type: Color) +Function 257: DrawSplineSegmentLinear() (4 input parameters) + Name: DrawSplineSegmentLinear + Return type: void + Description: Draw spline segment: Linear, 2 points + Param[1]: p1 (type: Vector2) + Param[2]: p2 (type: Vector2) + Param[3]: thick (type: float) + Param[4]: color (type: Color) +Function 258: DrawSplineSegmentBasis() (6 input parameters) + Name: DrawSplineSegmentBasis + Return type: void + Description: Draw spline segment: B-Spline, 4 points + Param[1]: p1 (type: Vector2) + Param[2]: p2 (type: Vector2) + Param[3]: p3 (type: Vector2) + Param[4]: p4 (type: Vector2) + Param[5]: thick (type: float) + Param[6]: color (type: Color) +Function 259: DrawSplineSegmentCatmullRom() (6 input parameters) + Name: DrawSplineSegmentCatmullRom + Return type: void + Description: Draw spline segment: Catmull-Rom, 4 points + Param[1]: p1 (type: Vector2) + Param[2]: p2 (type: Vector2) + Param[3]: p3 (type: Vector2) + Param[4]: p4 (type: Vector2) + Param[5]: thick (type: float) + Param[6]: color (type: Color) +Function 260: DrawSplineSegmentBezierQuadratic() (5 input parameters) + Name: DrawSplineSegmentBezierQuadratic + Return type: void + Description: Draw spline segment: Quadratic Bezier, 2 points, 1 control point + Param[1]: p1 (type: Vector2) + Param[2]: c2 (type: Vector2) + Param[3]: p3 (type: Vector2) + Param[4]: thick (type: float) + Param[5]: color (type: Color) +Function 261: DrawSplineSegmentBezierCubic() (6 input parameters) + Name: DrawSplineSegmentBezierCubic + Return type: void + Description: Draw spline segment: Cubic Bezier, 2 points, 2 control points + Param[1]: p1 (type: Vector2) + Param[2]: c2 (type: Vector2) + Param[3]: c3 (type: Vector2) + Param[4]: p4 (type: Vector2) + Param[5]: thick (type: float) + Param[6]: color (type: Color) +Function 262: DrawSplineSegmentLinearVar() (5 input parameters) + Name: DrawSplineSegmentLinearVar + Return type: void + Description: Draw spline segment with variable thickness: Linear Bezier, 2 points + Param[1]: p1 (type: Vector2) + Param[2]: p2 (type: Vector2) + Param[3]: thicks (type: const float*) + Param[4]: thickCount (type: int) + Param[5]: color (type: Color) +Function 263: DrawSplineSegmentBezierCubicVar() (7 input parameters) + Name: DrawSplineSegmentBezierCubicVar + Return type: void + Description: Draw spline segment with variable thickness: Cubic Bezier, 2 points, 2 control points + Param[1]: p1 (type: Vector2) + Param[2]: c2 (type: Vector2) + Param[3]: c3 (type: Vector2) + Param[4]: p4 (type: Vector2) + Param[5]: thicks (type: const float*) + Param[6]: thickCount (type: int) + Param[7]: color (type: Color) +Function 264: GetSplinePointLinear() (3 input parameters) + Name: GetSplinePointLinear + Return type: Vector2 + Description: Get (evaluate) spline point: Linear + Param[1]: startPos (type: Vector2) + Param[2]: endPos (type: Vector2) + Param[3]: t (type: float) +Function 265: GetSplinePointBasis() (5 input parameters) + Name: GetSplinePointBasis + Return type: Vector2 + Description: Get (evaluate) spline point: B-Spline + Param[1]: p1 (type: Vector2) + Param[2]: p2 (type: Vector2) + Param[3]: p3 (type: Vector2) + Param[4]: p4 (type: Vector2) + Param[5]: t (type: float) +Function 266: GetSplinePointCatmullRom() (5 input parameters) + Name: GetSplinePointCatmullRom + Return type: Vector2 + Description: Get (evaluate) spline point: Catmull-Rom + Param[1]: p1 (type: Vector2) + Param[2]: p2 (type: Vector2) + Param[3]: p3 (type: Vector2) + Param[4]: p4 (type: Vector2) + Param[5]: t (type: float) +Function 267: GetSplinePointBezierQuad() (4 input parameters) + Name: GetSplinePointBezierQuad + Return type: Vector2 + Description: Get (evaluate) spline point: Quadratic Bezier + Param[1]: p1 (type: Vector2) + Param[2]: c2 (type: Vector2) + Param[3]: p3 (type: Vector2) + Param[4]: t (type: float) +Function 268: GetSplinePointBezierCubic() (5 input parameters) + Name: GetSplinePointBezierCubic + Return type: Vector2 + Description: Get (evaluate) spline point: Cubic Bezier + Param[1]: p1 (type: Vector2) + Param[2]: c2 (type: Vector2) + Param[3]: c3 (type: Vector2) + Param[4]: p4 (type: Vector2) + Param[5]: t (type: float) +Function 269: GetSplineVelocityLinear() (2 input parameters) + Name: GetSplineVelocityLinear + Return type: Vector2 + Description: Get (evaluate) spline velocity: Linear + Param[1]: startPos (type: Vector2) + Param[2]: endPos (type: Vector2) +Function 270: GetSplineVelocityBezierQuad() (4 input parameters) + Name: GetSplineVelocityBezierQuad + Return type: Vector2 + Description: Get (evaluate) spline velocity: Quadratic Bezier + Param[1]: startPos (type: Vector2) + Param[2]: controlPos (type: Vector2) + Param[3]: endPos (type: Vector2) + Param[4]: t (type: float) +Function 271: GetSplineVelocityBezierCubic() (5 input parameters) + Name: GetSplineVelocityBezierCubic + Return type: Vector2 + Description: Get (evaluate) spline velocity: Cubic Bezier + Param[1]: startPos (type: Vector2) + Param[2]: startControlPos (type: Vector2) + Param[3]: endControlPos (type: Vector2) + Param[4]: endPos (type: Vector2) + Param[5]: t (type: float) +Function 272: GetSplineAccelerationBezierQuad() (3 input parameters) + Name: GetSplineAccelerationBezierQuad + Return type: Vector2 + Description: Get (evaluate) spline acceleration: Quadratic Bezier + Param[1]: startPos (type: Vector2) + Param[2]: controlPos (type: Vector2) + Param[3]: endPos (type: Vector2) +Function 273: GetSplineAccelerationBezierCubic() (5 input parameters) + Name: GetSplineAccelerationBezierCubic + Return type: Vector2 + Description: Get (evaluate) spline acceleration: Cubic Bezier + Param[1]: startPos (type: Vector2) + Param[2]: startControlPos (type: Vector2) + Param[3]: endControlPos (type: Vector2) + Param[4]: endPos (type: Vector2) + Param[5]: t (type: float) +Function 274: GetSplineJoltBezierCubic() (4 input parameters) + Name: GetSplineJoltBezierCubic + Return type: Vector2 + Description: Get (evaluate) spline jolt: Cubic Bezier + Param[1]: startPos (type: Vector2) + Param[2]: startControlPos (type: Vector2) + Param[3]: endControlPos (type: Vector2) + Param[4]: endPos (type: Vector2) +Function 275: GetSplineBoundsBezierLinear() (2 input parameters) + Name: GetSplineBoundsBezierLinear + Return type: Rectangle + Description: Get (evaluate) spline bounds rectangle: Linear + Param[1]: startPos (type: Vector2) + Param[2]: endPos (type: Vector2) +Function 276: GetSplineBoundsBezierQuad() (3 input parameters) + Name: GetSplineBoundsBezierQuad + Return type: Rectangle + Description: Get (evaluate) spline bounds rectangle: Quadratic Bezier + Param[1]: startPos (type: Vector2) + Param[2]: controlPos (type: Vector2) + Param[3]: endPos (type: Vector2) +Function 277: GetSplineBoundsBezierCubic() (4 input parameters) + Name: GetSplineBoundsBezierCubic + Return type: Rectangle + Description: Get (evaluate) spline bounds rectangle: Cubic Bezier + Param[1]: startPos (type: Vector2) + Param[2]: startControlPos (type: Vector2) + Param[3]: endControlPos (type: Vector2) + Param[4]: endPos (type: Vector2) +Function 278: GetSplineCurvatureBezierCubic() (5 input parameters) + Name: GetSplineCurvatureBezierCubic + Return type: float + Description: Get (evaluate) spline curvature: Cubic Bezier + Param[1]: startPos (type: Vector2) + Param[2]: startControlPos (type: Vector2) + Param[3]: endControlPos (type: Vector2) + Param[4]: endPos (type: Vector2) + Param[5]: t (type: float) +Function 279: GetSplineNearestTLinear() (3 input parameters) + Name: GetSplineNearestTLinear + Return type: float + Description: Get (evaluate) nearest t value to point: Linear + Param[1]: startPos (type: Vector2) + Param[2]: endPos (type: Vector2) + Param[3]: point (type: Vector2) +Function 280: CheckCollisionRecs() (2 input parameters) + Name: CheckCollisionRecs + Return type: bool + Description: Check collision between two rectangles + Param[1]: rec1 (type: Rectangle) + Param[2]: rec2 (type: Rectangle) +Function 281: CheckCollisionCircles() (4 input parameters) + Name: CheckCollisionCircles + Return type: bool + Description: Check collision between two circles + Param[1]: center1 (type: Vector2) + Param[2]: radius1 (type: float) + Param[3]: center2 (type: Vector2) + Param[4]: radius2 (type: float) +Function 282: CheckCollisionCircleRec() (3 input parameters) + Name: CheckCollisionCircleRec + Return type: bool + Description: Check collision between circle and rectangle + Param[1]: center (type: Vector2) + Param[2]: radius (type: float) + Param[3]: rec (type: Rectangle) +Function 283: CheckCollisionCircleLine() (4 input parameters) + Name: CheckCollisionCircleLine + Return type: bool + Description: Check if circle collides with a line created betweeen two points [p1] and [p2] + Param[1]: center (type: Vector2) + Param[2]: radius (type: float) + Param[3]: p1 (type: Vector2) + Param[4]: p2 (type: Vector2) +Function 284: CheckCollisionPointRec() (2 input parameters) + Name: CheckCollisionPointRec + Return type: bool + Description: Check if point is inside rectangle + Param[1]: point (type: Vector2) + Param[2]: rec (type: Rectangle) +Function 285: CheckCollisionPointCircle() (3 input parameters) + Name: CheckCollisionPointCircle + Return type: bool + Description: Check if point is inside circle + Param[1]: point (type: Vector2) + Param[2]: center (type: Vector2) + Param[3]: radius (type: float) +Function 286: CheckCollisionPointTriangle() (4 input parameters) + Name: CheckCollisionPointTriangle + Return type: bool + Description: Check if point is inside a triangle + Param[1]: point (type: Vector2) + Param[2]: p1 (type: Vector2) + Param[3]: p2 (type: Vector2) + Param[4]: p3 (type: Vector2) +Function 287: CheckCollisionPointLine() (4 input parameters) + Name: CheckCollisionPointLine + Return type: bool + Description: Check if point belongs to line created between two points [p1] and [p2] with defined margin in pixels [threshold] + Param[1]: point (type: Vector2) + Param[2]: p1 (type: Vector2) + Param[3]: p2 (type: Vector2) + Param[4]: threshold (type: int) +Function 288: CheckCollisionPointPoly() (3 input parameters) + Name: CheckCollisionPointPoly + Return type: bool + Description: Check if point is within a polygon described by array of vertices + Param[1]: point (type: Vector2) + Param[2]: points (type: const Vector2 *) + Param[3]: pointCount (type: int) +Function 289: CheckCollisionLines() (5 input parameters) + Name: CheckCollisionLines + Return type: bool + Description: Check the collision between two lines defined by two points each, returns collision point by reference + Param[1]: startPos1 (type: Vector2) + Param[2]: endPos1 (type: Vector2) + Param[3]: startPos2 (type: Vector2) + Param[4]: endPos2 (type: Vector2) + Param[5]: collisionPoint (type: Vector2 *) +Function 290: GetCollisionRec() (2 input parameters) + Name: GetCollisionRec + Return type: Rectangle + Description: Get collision rectangle for two rectangles collision + Param[1]: rec1 (type: Rectangle) + Param[2]: rec2 (type: Rectangle) +Function 291: LoadImage() (1 input parameters) + Name: LoadImage + Return type: Image + Description: Load image from file into CPU memory (RAM) + Param[1]: fileName (type: const char *) +Function 292: LoadImageRaw() (5 input parameters) + Name: LoadImageRaw + Return type: Image + Description: Load image from RAW file data + Param[1]: fileName (type: const char *) + Param[2]: width (type: int) + Param[3]: height (type: int) + Param[4]: format (type: int) + Param[5]: headerSize (type: int) +Function 293: LoadImageAnim() (2 input parameters) + Name: LoadImageAnim + Return type: Image + Description: Load image sequence from file (frames appended to image.data) + Param[1]: fileName (type: const char *) + Param[2]: frames (type: int *) +Function 294: LoadImageAnimFromMemory() (4 input parameters) + Name: LoadImageAnimFromMemory + Return type: Image + Description: Load image sequence from memory buffer + Param[1]: fileType (type: const char *) + Param[2]: fileData (type: const unsigned char *) + Param[3]: dataSize (type: int) + Param[4]: frames (type: int *) +Function 295: LoadImageFromMemory() (3 input parameters) + Name: LoadImageFromMemory + Return type: Image + Description: Load image from memory buffer, fileType refers to extension: i.e. '.png' + Param[1]: fileType (type: const char *) + Param[2]: fileData (type: const unsigned char *) + Param[3]: dataSize (type: int) +Function 296: LoadImageFromTexture() (1 input parameters) + Name: LoadImageFromTexture + Return type: Image + Description: Load image from GPU texture data + Param[1]: texture (type: Texture2D) +Function 297: LoadImageFromScreen() (0 input parameters) + Name: LoadImageFromScreen + Return type: Image + Description: Load image from screen buffer and (screenshot) + No input parameters +Function 298: IsImageValid() (1 input parameters) + Name: IsImageValid + Return type: bool + Description: Check if an image is valid (data and parameters) + Param[1]: image (type: Image) +Function 299: UnloadImage() (1 input parameters) + Name: UnloadImage + Return type: void + Description: Unload image from CPU memory (RAM) + Param[1]: image (type: Image) +Function 300: ExportImage() (2 input parameters) + Name: ExportImage + Return type: bool + Description: Export image data to file, returns true on success + Param[1]: image (type: Image) + Param[2]: fileName (type: const char *) +Function 301: ExportImageToMemory() (3 input parameters) + Name: ExportImageToMemory + Return type: unsigned char * + Description: Export image to memory buffer + Param[1]: image (type: Image) + Param[2]: fileType (type: const char *) + Param[3]: fileSize (type: int *) +Function 302: ExportImageAsCode() (2 input parameters) + Name: ExportImageAsCode + Return type: bool + Description: Export image as code file defining an array of bytes, returns true on success + Param[1]: image (type: Image) + Param[2]: fileName (type: const char *) +Function 303: GenImageColor() (3 input parameters) + Name: GenImageColor + Return type: Image + Description: Generate image: plain color + Param[1]: width (type: int) + Param[2]: height (type: int) + Param[3]: color (type: Color) +Function 304: GenImageGradientLinear() (5 input parameters) + Name: GenImageGradientLinear + Return type: Image + Description: Generate image: linear gradient, direction in degrees [0..360], 0=Vertical gradient + Param[1]: width (type: int) + Param[2]: height (type: int) + Param[3]: direction (type: int) + Param[4]: start (type: Color) + Param[5]: end (type: Color) +Function 305: GenImageGradientRadial() (5 input parameters) + Name: GenImageGradientRadial + Return type: Image + Description: Generate image: radial gradient + Param[1]: width (type: int) + Param[2]: height (type: int) + Param[3]: density (type: float) + Param[4]: inner (type: Color) + Param[5]: outer (type: Color) +Function 306: GenImageGradientSquare() (5 input parameters) + Name: GenImageGradientSquare + Return type: Image + Description: Generate image: square gradient + Param[1]: width (type: int) + Param[2]: height (type: int) + Param[3]: density (type: float) + Param[4]: inner (type: Color) + Param[5]: outer (type: Color) +Function 307: GenImageChecked() (6 input parameters) + Name: GenImageChecked + Return type: Image + Description: Generate image: checked + Param[1]: width (type: int) + Param[2]: height (type: int) + Param[3]: checksX (type: int) + Param[4]: checksY (type: int) + Param[5]: col1 (type: Color) + Param[6]: col2 (type: Color) +Function 308: GenImageWhiteNoise() (3 input parameters) + Name: GenImageWhiteNoise + Return type: Image + Description: Generate image: white noise + Param[1]: width (type: int) + Param[2]: height (type: int) + Param[3]: factor (type: float) +Function 309: GenImagePerlinNoise() (5 input parameters) + Name: GenImagePerlinNoise + Return type: Image + Description: Generate image: perlin noise + Param[1]: width (type: int) + Param[2]: height (type: int) + Param[3]: offsetX (type: int) + Param[4]: offsetY (type: int) + Param[5]: scale (type: float) +Function 310: GenImageCellular() (3 input parameters) + Name: GenImageCellular + Return type: Image + Description: Generate image: cellular algorithm, bigger tileSize means bigger cells + Param[1]: width (type: int) + Param[2]: height (type: int) + Param[3]: tileSize (type: int) +Function 311: GenImageText() (3 input parameters) + Name: GenImageText + Return type: Image + Description: Generate image: grayscale image from text data + Param[1]: width (type: int) + Param[2]: height (type: int) + Param[3]: text (type: const char *) +Function 312: ImageCopy() (1 input parameters) + Name: ImageCopy + Return type: Image + Description: Create an image duplicate (useful for transformations) + Param[1]: image (type: Image) +Function 313: ImageFromImage() (2 input parameters) + Name: ImageFromImage + Return type: Image + Description: Create an image from another image piece + Param[1]: image (type: Image) + Param[2]: rec (type: Rectangle) +Function 314: ImageFromChannel() (2 input parameters) + Name: ImageFromChannel + Return type: Image + Description: Create an image from a selected channel of another image (GRAYSCALE) + Param[1]: image (type: Image) + Param[2]: selectedChannel (type: int) +Function 315: ImageText() (3 input parameters) + Name: ImageText + Return type: Image + Description: Create an image from text (default font) + Param[1]: text (type: const char *) + Param[2]: fontSize (type: int) + Param[3]: color (type: Color) +Function 316: ImageTextEx() (5 input parameters) + Name: ImageTextEx + Return type: Image + Description: Create an image from text (custom sprite font) + Param[1]: font (type: Font) + Param[2]: text (type: const char *) + Param[3]: fontSize (type: float) + Param[4]: spacing (type: float) + Param[5]: tint (type: Color) +Function 317: ImageFormat() (2 input parameters) + Name: ImageFormat + Return type: void + Description: Convert image data to desired format + Param[1]: image (type: Image *) + Param[2]: newFormat (type: int) +Function 318: ImageToPOT() (2 input parameters) + Name: ImageToPOT + Return type: void + Description: Convert image to POT (power-of-two) + Param[1]: image (type: Image *) + Param[2]: fill (type: Color) +Function 319: ImageCrop() (2 input parameters) + Name: ImageCrop + Return type: void + Description: Crop an image to a defined rectangle + Param[1]: image (type: Image *) + Param[2]: crop (type: Rectangle) +Function 320: ImageAlphaCrop() (2 input parameters) + Name: ImageAlphaCrop + Return type: void + Description: Crop image depending on alpha value + Param[1]: image (type: Image *) + Param[2]: threshold (type: float) +Function 321: ImageAlphaClear() (3 input parameters) + Name: ImageAlphaClear + Return type: void + Description: Clear alpha channel to desired color + Param[1]: image (type: Image *) + Param[2]: color (type: Color) + Param[3]: threshold (type: float) +Function 322: ImageAlphaMask() (2 input parameters) + Name: ImageAlphaMask + Return type: void + Description: Apply alpha mask to image + Param[1]: image (type: Image *) + Param[2]: alphaMask (type: Image) +Function 323: ImageAlphaPremultiply() (1 input parameters) + Name: ImageAlphaPremultiply + Return type: void + Description: Premultiply alpha channel + Param[1]: image (type: Image *) +Function 324: ImageBlurGaussian() (2 input parameters) + Name: ImageBlurGaussian + Return type: void + Description: Apply Gaussian blur using a box blur approximation + Param[1]: image (type: Image *) + Param[2]: blurSize (type: int) +Function 325: ImageKernelConvolution() (3 input parameters) + Name: ImageKernelConvolution + Return type: void + Description: Apply custom square convolution kernel to image + Param[1]: image (type: Image *) + Param[2]: kernel (type: const float *) + Param[3]: kernelSize (type: int) +Function 326: ImageResize() (3 input parameters) + Name: ImageResize + Return type: void + Description: Resize image (Bicubic scaling algorithm) + Param[1]: image (type: Image *) + Param[2]: newWidth (type: int) + Param[3]: newHeight (type: int) +Function 327: ImageResizeNN() (3 input parameters) + Name: ImageResizeNN + Return type: void + Description: Resize image (Nearest-Neighbor scaling algorithm) + Param[1]: image (type: Image *) + Param[2]: newWidth (type: int) + Param[3]: newHeight (type: int) +Function 328: ImageResizeCanvas() (6 input parameters) + Name: ImageResizeCanvas + Return type: void + Description: Resize canvas and fill with color + Param[1]: image (type: Image *) + Param[2]: newWidth (type: int) + Param[3]: newHeight (type: int) + Param[4]: offsetX (type: int) + Param[5]: offsetY (type: int) + Param[6]: fill (type: Color) +Function 329: ImageMipmaps() (1 input parameters) + Name: ImageMipmaps + Return type: void + Description: Compute all mipmap levels for a provided image + Param[1]: image (type: Image *) +Function 330: ImageDither() (5 input parameters) + Name: ImageDither + Return type: void + Description: Dither image data to 16bpp or lower (Floyd-Steinberg dithering) + Param[1]: image (type: Image *) + Param[2]: rBpp (type: int) + Param[3]: gBpp (type: int) + Param[4]: bBpp (type: int) + Param[5]: aBpp (type: int) +Function 331: ImageFlipVertical() (1 input parameters) + Name: ImageFlipVertical + Return type: void + Description: Flip image vertically + Param[1]: image (type: Image *) +Function 332: ImageFlipHorizontal() (1 input parameters) + Name: ImageFlipHorizontal + Return type: void + Description: Flip image horizontally + Param[1]: image (type: Image *) +Function 333: ImageRotate() (2 input parameters) + Name: ImageRotate + Return type: void + Description: Rotate image by input angle in degrees (-359 to 359) + Param[1]: image (type: Image *) + Param[2]: degrees (type: int) +Function 334: ImageRotateCW() (1 input parameters) + Name: ImageRotateCW + Return type: void + Description: Rotate image clockwise 90deg + Param[1]: image (type: Image *) +Function 335: ImageRotateCCW() (1 input parameters) + Name: ImageRotateCCW + Return type: void + Description: Rotate image counter-clockwise 90deg + Param[1]: image (type: Image *) +Function 336: ImageColorTint() (2 input parameters) + Name: ImageColorTint + Return type: void + Description: Modify image color: tint + Param[1]: image (type: Image *) + Param[2]: color (type: Color) +Function 337: ImageColorInvert() (1 input parameters) + Name: ImageColorInvert + Return type: void + Description: Modify image color: invert + Param[1]: image (type: Image *) +Function 338: ImageColorGrayscale() (1 input parameters) + Name: ImageColorGrayscale + Return type: void + Description: Modify image color: grayscale + Param[1]: image (type: Image *) +Function 339: ImageColorContrast() (2 input parameters) + Name: ImageColorContrast + Return type: void + Description: Modify image color: contrast (-100 to 100) + Param[1]: image (type: Image *) + Param[2]: contrast (type: float) +Function 340: ImageColorBrightness() (2 input parameters) + Name: ImageColorBrightness + Return type: void + Description: Modify image color: brightness (-255 to 255) + Param[1]: image (type: Image *) + Param[2]: brightness (type: int) +Function 341: ImageColorReplace() (3 input parameters) + Name: ImageColorReplace + Return type: void + Description: Modify image color: replace color + Param[1]: image (type: Image *) + Param[2]: color (type: Color) + Param[3]: replace (type: Color) +Function 342: LoadImageColors() (1 input parameters) + Name: LoadImageColors + Return type: Color * + Description: Load color data from image as a Color array (RGBA - 32bit) + Param[1]: image (type: Image) +Function 343: LoadImagePalette() (3 input parameters) + Name: LoadImagePalette + Return type: Color * + Description: Load colors palette from image as a Color array (RGBA - 32bit) + Param[1]: image (type: Image) + Param[2]: maxPaletteSize (type: int) + Param[3]: colorCount (type: int *) +Function 344: UnloadImageColors() (1 input parameters) + Name: UnloadImageColors + Return type: void + Description: Unload color data loaded with LoadImageColors() + Param[1]: colors (type: Color *) +Function 345: UnloadImagePalette() (1 input parameters) + Name: UnloadImagePalette + Return type: void + Description: Unload colors palette loaded with LoadImagePalette() + Param[1]: colors (type: Color *) +Function 346: GetImageAlphaBorder() (2 input parameters) + Name: GetImageAlphaBorder + Return type: Rectangle + Description: Get image alpha border rectangle + Param[1]: image (type: Image) + Param[2]: threshold (type: float) +Function 347: GetImageColor() (3 input parameters) + Name: GetImageColor + Return type: Color + Description: Get image pixel color at (x, y) position + Param[1]: image (type: Image) + Param[2]: x (type: int) + Param[3]: y (type: int) +Function 348: ImageClearBackground() (2 input parameters) + Name: ImageClearBackground + Return type: void + Description: Clear image background with given color + Param[1]: dst (type: Image *) + Param[2]: color (type: Color) +Function 349: ImageDrawPixel() (4 input parameters) + Name: ImageDrawPixel + Return type: void + Description: Draw pixel within an image + Param[1]: dst (type: Image *) + Param[2]: posX (type: int) + Param[3]: posY (type: int) + Param[4]: color (type: Color) +Function 350: ImageDrawPixelV() (3 input parameters) + Name: ImageDrawPixelV + Return type: void + Description: Draw pixel within an image (Vector version) + Param[1]: dst (type: Image *) + Param[2]: position (type: Vector2) + Param[3]: color (type: Color) +Function 351: ImageDrawLine() (6 input parameters) + Name: ImageDrawLine + Return type: void + Description: Draw line within an image + Param[1]: dst (type: Image *) + Param[2]: startPosX (type: int) + Param[3]: startPosY (type: int) + Param[4]: endPosX (type: int) + Param[5]: endPosY (type: int) + Param[6]: color (type: Color) +Function 352: ImageDrawLineV() (4 input parameters) + Name: ImageDrawLineV + Return type: void + Description: Draw line within an image (Vector version) + Param[1]: dst (type: Image *) + Param[2]: start (type: Vector2) + Param[3]: end (type: Vector2) + Param[4]: color (type: Color) +Function 353: ImageDrawLineEx() (5 input parameters) + Name: ImageDrawLineEx + Return type: void + Description: Draw a line defining thickness within an image + Param[1]: dst (type: Image *) + Param[2]: start (type: Vector2) + Param[3]: end (type: Vector2) + Param[4]: thick (type: int) + Param[5]: color (type: Color) +Function 354: ImageDrawCircle() (5 input parameters) + Name: ImageDrawCircle + Return type: void + Description: Draw a filled circle within an image + Param[1]: dst (type: Image *) + Param[2]: centerX (type: int) + Param[3]: centerY (type: int) + Param[4]: radius (type: int) + Param[5]: color (type: Color) +Function 355: ImageDrawCircleV() (4 input parameters) + Name: ImageDrawCircleV + Return type: void + Description: Draw a filled circle within an image (Vector version) + Param[1]: dst (type: Image *) + Param[2]: center (type: Vector2) + Param[3]: radius (type: int) + Param[4]: color (type: Color) +Function 356: ImageDrawCircleLines() (5 input parameters) + Name: ImageDrawCircleLines + Return type: void + Description: Draw circle outline within an image + Param[1]: dst (type: Image *) + Param[2]: centerX (type: int) + Param[3]: centerY (type: int) + Param[4]: radius (type: int) + Param[5]: color (type: Color) +Function 357: ImageDrawCircleLinesV() (4 input parameters) + Name: ImageDrawCircleLinesV + Return type: void + Description: Draw circle outline within an image (Vector version) + Param[1]: dst (type: Image *) + Param[2]: center (type: Vector2) + Param[3]: radius (type: int) + Param[4]: color (type: Color) +Function 358: ImageDrawRectangle() (6 input parameters) + Name: ImageDrawRectangle + Return type: void + Description: Draw rectangle within an image + Param[1]: dst (type: Image *) + Param[2]: posX (type: int) + Param[3]: posY (type: int) + Param[4]: width (type: int) + Param[5]: height (type: int) + Param[6]: color (type: Color) +Function 359: ImageDrawRectangleV() (4 input parameters) + Name: ImageDrawRectangleV + Return type: void + Description: Draw rectangle within an image (Vector version) + Param[1]: dst (type: Image *) + Param[2]: position (type: Vector2) + Param[3]: size (type: Vector2) + Param[4]: color (type: Color) +Function 360: ImageDrawRectangleRec() (3 input parameters) + Name: ImageDrawRectangleRec + Return type: void + Description: Draw rectangle within an image + Param[1]: dst (type: Image *) + Param[2]: rec (type: Rectangle) + Param[3]: color (type: Color) +Function 361: ImageDrawRectangleLines() (4 input parameters) + Name: ImageDrawRectangleLines + Return type: void + Description: Draw rectangle lines within an image + Param[1]: dst (type: Image *) + Param[2]: rec (type: Rectangle) + Param[3]: thick (type: int) + Param[4]: color (type: Color) +Function 362: ImageDrawTriangle() (5 input parameters) + Name: ImageDrawTriangle + Return type: void + Description: Draw triangle within an image + Param[1]: dst (type: Image *) + Param[2]: v1 (type: Vector2) + Param[3]: v2 (type: Vector2) + Param[4]: v3 (type: Vector2) + Param[5]: color (type: Color) +Function 363: ImageDrawTriangleEx() (7 input parameters) + Name: ImageDrawTriangleEx + Return type: void + Description: Draw triangle with interpolated colors within an image + Param[1]: dst (type: Image *) + Param[2]: v1 (type: Vector2) + Param[3]: v2 (type: Vector2) + Param[4]: v3 (type: Vector2) + Param[5]: c1 (type: Color) + Param[6]: c2 (type: Color) + Param[7]: c3 (type: Color) +Function 364: ImageDrawTriangleLines() (5 input parameters) + Name: ImageDrawTriangleLines + Return type: void + Description: Draw triangle outline within an image + Param[1]: dst (type: Image *) + Param[2]: v1 (type: Vector2) + Param[3]: v2 (type: Vector2) + Param[4]: v3 (type: Vector2) + Param[5]: color (type: Color) +Function 365: ImageDrawTriangleFan() (4 input parameters) + Name: ImageDrawTriangleFan + Return type: void + Description: Draw a triangle fan defined by points within an image (first vertex is the center) + Param[1]: dst (type: Image *) + Param[2]: points (type: const Vector2 *) + Param[3]: pointCount (type: int) + Param[4]: color (type: Color) +Function 366: ImageDrawTriangleStrip() (4 input parameters) + Name: ImageDrawTriangleStrip + Return type: void + Description: Draw a triangle strip defined by points within an image + Param[1]: dst (type: Image *) + Param[2]: points (type: const Vector2 *) + Param[3]: pointCount (type: int) + Param[4]: color (type: Color) +Function 367: ImageDraw() (5 input parameters) + Name: ImageDraw + Return type: void + Description: Draw a source image within a destination image (tint applied to source) + Param[1]: dst (type: Image *) + Param[2]: src (type: Image) + Param[3]: srcRec (type: Rectangle) + Param[4]: dstRec (type: Rectangle) + Param[5]: tint (type: Color) +Function 368: ImageDrawText() (6 input parameters) + Name: ImageDrawText + Return type: void + Description: Draw text (using default font) within an image (destination) + Param[1]: dst (type: Image *) + Param[2]: text (type: const char *) + Param[3]: posX (type: int) + Param[4]: posY (type: int) + Param[5]: fontSize (type: int) + Param[6]: color (type: Color) +Function 369: ImageDrawTextEx() (7 input parameters) + Name: ImageDrawTextEx + Return type: void + Description: Draw text (custom sprite font) within an image (destination) + Param[1]: dst (type: Image *) + Param[2]: font (type: Font) + Param[3]: text (type: const char *) + Param[4]: position (type: Vector2) + Param[5]: fontSize (type: float) + Param[6]: spacing (type: float) + Param[7]: tint (type: Color) +Function 370: LoadTexture() (1 input parameters) + Name: LoadTexture + Return type: Texture2D + Description: Load texture from file into GPU memory (VRAM) + Param[1]: fileName (type: const char *) +Function 371: LoadTextureFromImage() (1 input parameters) + Name: LoadTextureFromImage + Return type: Texture2D + Description: Load texture from image data + Param[1]: image (type: Image) +Function 372: LoadTextureCubemap() (2 input parameters) + Name: LoadTextureCubemap + Return type: TextureCubemap + Description: Load cubemap from image, multiple image cubemap layouts supported + Param[1]: image (type: Image) + Param[2]: layout (type: int) +Function 373: LoadRenderTexture() (2 input parameters) + Name: LoadRenderTexture + Return type: RenderTexture2D + Description: Load texture for rendering (framebuffer) + Param[1]: width (type: int) + Param[2]: height (type: int) +Function 374: IsTextureValid() (1 input parameters) + Name: IsTextureValid + Return type: bool + Description: Check if a texture is valid (loaded in GPU) + Param[1]: texture (type: Texture2D) +Function 375: UnloadTexture() (1 input parameters) + Name: UnloadTexture + Return type: void + Description: Unload texture from GPU memory (VRAM) + Param[1]: texture (type: Texture2D) +Function 376: IsRenderTextureValid() (1 input parameters) + Name: IsRenderTextureValid + Return type: bool + Description: Check if a render texture is valid (loaded in GPU) + Param[1]: target (type: RenderTexture2D) +Function 377: UnloadRenderTexture() (1 input parameters) + Name: UnloadRenderTexture + Return type: void + Description: Unload render texture from GPU memory (VRAM) + Param[1]: target (type: RenderTexture2D) +Function 378: UpdateTexture() (2 input parameters) + Name: UpdateTexture + Return type: void + Description: Update GPU texture with new data (pixels should be able to fill texture) + Param[1]: texture (type: Texture2D) + Param[2]: pixels (type: const void *) +Function 379: UpdateTextureRec() (3 input parameters) + Name: UpdateTextureRec + Return type: void + Description: Update GPU texture rectangle with new data (pixels and rec should fit in texture) + Param[1]: texture (type: Texture2D) + Param[2]: rec (type: Rectangle) + Param[3]: pixels (type: const void *) +Function 380: GenTextureMipmaps() (1 input parameters) + Name: GenTextureMipmaps + Return type: void + Description: Generate GPU mipmaps for a texture + Param[1]: texture (type: Texture2D *) +Function 381: SetTextureFilter() (2 input parameters) + Name: SetTextureFilter + Return type: void + Description: Set texture scaling filter mode + Param[1]: texture (type: Texture2D) + Param[2]: filter (type: int) +Function 382: SetTextureWrap() (2 input parameters) + Name: SetTextureWrap + Return type: void + Description: Set texture wrapping mode + Param[1]: texture (type: Texture2D) + Param[2]: wrap (type: int) +Function 383: DrawTexture() (4 input parameters) + Name: DrawTexture + Return type: void + Description: Draw a Texture2D + Param[1]: texture (type: Texture2D) + Param[2]: posX (type: int) + Param[3]: posY (type: int) + Param[4]: tint (type: Color) +Function 384: DrawTextureV() (3 input parameters) + Name: DrawTextureV + Return type: void + Description: Draw a Texture2D with position defined as Vector2 + Param[1]: texture (type: Texture2D) + Param[2]: position (type: Vector2) + Param[3]: tint (type: Color) +Function 385: DrawTextureEx() (5 input parameters) + Name: DrawTextureEx + Return type: void + Description: Draw a Texture2D with extended parameters + Param[1]: texture (type: Texture2D) + Param[2]: position (type: Vector2) + Param[3]: rotation (type: float) + Param[4]: scale (type: float) + Param[5]: tint (type: Color) +Function 386: DrawTextureRec() (4 input parameters) + Name: DrawTextureRec + Return type: void + Description: Draw a part of a texture defined by a rectangle + Param[1]: texture (type: Texture2D) + Param[2]: source (type: Rectangle) + Param[3]: position (type: Vector2) + Param[4]: tint (type: Color) +Function 387: DrawTexturePro() (6 input parameters) + Name: DrawTexturePro + Return type: void + Description: Draw a part of a texture defined by a rectangle with 'pro' parameters + Param[1]: texture (type: Texture2D) + Param[2]: source (type: Rectangle) + Param[3]: dest (type: Rectangle) + Param[4]: origin (type: Vector2) + Param[5]: rotation (type: float) + Param[6]: tint (type: Color) +Function 388: DrawTextureNPatch() (6 input parameters) + Name: DrawTextureNPatch + Return type: void + Description: Draws a texture (or part of it) that stretches or shrinks nicely + Param[1]: texture (type: Texture2D) + Param[2]: nPatchInfo (type: NPatchInfo) + Param[3]: dest (type: Rectangle) + Param[4]: origin (type: Vector2) + Param[5]: rotation (type: float) + Param[6]: tint (type: Color) +Function 389: ColorIsEqual() (2 input parameters) + Name: ColorIsEqual + Return type: bool + Description: Check if two colors are equal + Param[1]: col1 (type: Color) + Param[2]: col2 (type: Color) +Function 390: Fade() (2 input parameters) + Name: Fade + Return type: Color + Description: Get color with alpha applied, alpha goes from 0.0f to 1.0f + Param[1]: color (type: Color) + Param[2]: alpha (type: float) +Function 391: ColorToInt() (1 input parameters) + Name: ColorToInt + Return type: int + Description: Get hexadecimal value for a Color (0xRRGGBBAA) + Param[1]: color (type: Color) +Function 392: ColorNormalize() (1 input parameters) + Name: ColorNormalize + Return type: Vector4 + Description: Get Color normalized as float [0..1] + Param[1]: color (type: Color) +Function 393: ColorFromNormalized() (1 input parameters) + Name: ColorFromNormalized + Return type: Color + Description: Get Color from normalized values [0..1] + Param[1]: normalized (type: Vector4) +Function 394: ColorToHSV() (1 input parameters) + Name: ColorToHSV + Return type: Vector3 + Description: Get HSV values for a Color, hue [0..360], saturation/value [0..1] + Param[1]: color (type: Color) +Function 395: ColorFromHSV() (3 input parameters) + Name: ColorFromHSV + Return type: Color + Description: Get a Color from HSV values, hue [0..360], saturation/value [0..1] + Param[1]: hue (type: float) + Param[2]: saturation (type: float) + Param[3]: value (type: float) +Function 396: ColorTint() (2 input parameters) + Name: ColorTint + Return type: Color + Description: Get color multiplied with another color + Param[1]: color (type: Color) + Param[2]: tint (type: Color) +Function 397: ColorBrightness() (2 input parameters) + Name: ColorBrightness + Return type: Color + Description: Get color with brightness correction, brightness factor goes from -1.0f to 1.0f + Param[1]: color (type: Color) + Param[2]: factor (type: float) +Function 398: ColorContrast() (2 input parameters) + Name: ColorContrast + Return type: Color + Description: Get color with contrast correction, contrast values between -1.0f and 1.0f + Param[1]: color (type: Color) + Param[2]: contrast (type: float) +Function 399: ColorAlpha() (2 input parameters) + Name: ColorAlpha + Return type: Color + Description: Get color with alpha applied, alpha goes from 0.0f to 1.0f + Param[1]: color (type: Color) + Param[2]: alpha (type: float) +Function 400: ColorAlphaBlend() (3 input parameters) + Name: ColorAlphaBlend + Return type: Color + Description: Get src alpha-blended into dst color with tint + Param[1]: dst (type: Color) + Param[2]: src (type: Color) + Param[3]: tint (type: Color) +Function 401: ColorLerp() (3 input parameters) + Name: ColorLerp + Return type: Color + Description: Get color lerp interpolation between two colors, factor [0.0f..1.0f] + Param[1]: color1 (type: Color) + Param[2]: color2 (type: Color) + Param[3]: factor (type: float) +Function 402: GetColor() (1 input parameters) + Name: GetColor + Return type: Color + Description: Get Color structure from hexadecimal value + Param[1]: hexValue (type: unsigned int) +Function 403: GetPixelColor() (2 input parameters) + Name: GetPixelColor + Return type: Color + Description: Get Color from a source pixel pointer of certain format + Param[1]: srcPtr (type: void *) + Param[2]: format (type: int) +Function 404: SetPixelColor() (3 input parameters) + Name: SetPixelColor + Return type: void + Description: Set color formatted into destination pixel pointer + Param[1]: dstPtr (type: void *) + Param[2]: color (type: Color) + Param[3]: format (type: int) +Function 405: GetPixelDataSize() (3 input parameters) + Name: GetPixelDataSize + Return type: int + Description: Get pixel data size in bytes for certain format + Param[1]: width (type: int) + Param[2]: height (type: int) + Param[3]: format (type: int) +Function 406: GetFontDefault() (0 input parameters) + Name: GetFontDefault + Return type: Font + Description: Get the default Font + No input parameters +Function 407: LoadFont() (1 input parameters) + Name: LoadFont + Return type: Font + Description: Load font from file into GPU memory (VRAM) + Param[1]: fileName (type: const char *) +Function 408: LoadFontEx() (4 input parameters) + Name: LoadFontEx + Return type: Font + Description: Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character set, font size is provided in pixels height + Param[1]: fileName (type: const char *) + Param[2]: fontSize (type: int) + Param[3]: codepoints (type: int *) + Param[4]: codepointCount (type: int) +Function 409: LoadFontFromImage() (3 input parameters) + Name: LoadFontFromImage + Return type: Font + Description: Load font from Image (XNA style) + Param[1]: image (type: Image) + Param[2]: key (type: Color) + Param[3]: firstChar (type: int) +Function 410: LoadFontFromMemory() (6 input parameters) + Name: LoadFontFromMemory + Return type: Font + Description: Load font from memory buffer, fileType refers to extension: i.e. '.ttf' + Param[1]: fileType (type: const char *) + Param[2]: fileData (type: const unsigned char *) + Param[3]: dataSize (type: int) + Param[4]: fontSize (type: int) + Param[5]: codepoints (type: int *) + Param[6]: codepointCount (type: int) +Function 411: IsFontValid() (1 input parameters) + Name: IsFontValid + Return type: bool + Description: Check if a font is valid (font data loaded, WARNING: GPU texture not checked) + Param[1]: font (type: Font) +Function 412: LoadFontData() (6 input parameters) + Name: LoadFontData + Return type: GlyphInfo * + Description: Load font data for further use + Param[1]: fileData (type: const unsigned char *) + Param[2]: dataSize (type: int) + Param[3]: fontSize (type: int) + Param[4]: codepoints (type: int *) + Param[5]: codepointCount (type: int) + Param[6]: type (type: int) +Function 413: GenImageFontAtlas() (6 input parameters) + Name: GenImageFontAtlas + Return type: Image + Description: Generate image font atlas using chars info + Param[1]: glyphs (type: const GlyphInfo *) + Param[2]: glyphRecs (type: Rectangle **) + Param[3]: glyphCount (type: int) + Param[4]: fontSize (type: int) + Param[5]: padding (type: int) + Param[6]: packMethod (type: int) +Function 414: UnloadFontData() (2 input parameters) + Name: UnloadFontData + Return type: void + Description: Unload font chars info data (RAM) + Param[1]: glyphs (type: GlyphInfo *) + Param[2]: glyphCount (type: int) +Function 415: UnloadFont() (1 input parameters) + Name: UnloadFont + Return type: void + Description: Unload font from GPU memory (VRAM) + Param[1]: font (type: Font) +Function 416: ExportFontAsCode() (2 input parameters) + Name: ExportFontAsCode + Return type: bool + Description: Export font as code file, returns true on success + Param[1]: font (type: Font) + Param[2]: fileName (type: const char *) +Function 417: DrawFPS() (2 input parameters) + Name: DrawFPS + Return type: void + Description: Draw current FPS + Param[1]: posX (type: int) + Param[2]: posY (type: int) +Function 418: DrawText() (5 input parameters) + Name: DrawText + Return type: void + Description: Draw text (using default font) + Param[1]: text (type: const char *) + Param[2]: posX (type: int) + Param[3]: posY (type: int) + Param[4]: fontSize (type: int) + Param[5]: color (type: Color) +Function 419: DrawTextEx() (6 input parameters) + Name: DrawTextEx + Return type: void + Description: Draw text using font and additional parameters + Param[1]: font (type: Font) + Param[2]: text (type: const char *) + Param[3]: position (type: Vector2) + Param[4]: fontSize (type: float) + Param[5]: spacing (type: float) + Param[6]: tint (type: Color) +Function 420: DrawTextPro() (8 input parameters) + Name: DrawTextPro + Return type: void + Description: Draw text using Font and pro parameters (rotation) + Param[1]: font (type: Font) + Param[2]: text (type: const char *) + Param[3]: position (type: Vector2) + Param[4]: origin (type: Vector2) + Param[5]: rotation (type: float) + Param[6]: fontSize (type: float) + Param[7]: spacing (type: float) + Param[8]: tint (type: Color) +Function 421: DrawTextCodepoint() (5 input parameters) + Name: DrawTextCodepoint + Return type: void + Description: Draw one character (codepoint) + Param[1]: font (type: Font) + Param[2]: codepoint (type: int) + Param[3]: position (type: Vector2) + Param[4]: fontSize (type: float) + Param[5]: tint (type: Color) +Function 422: DrawTextCodepoints() (7 input parameters) + Name: DrawTextCodepoints + Return type: void + Description: Draw multiple character (codepoint) + Param[1]: font (type: Font) + Param[2]: codepoints (type: const int *) + Param[3]: codepointCount (type: int) + Param[4]: position (type: Vector2) + Param[5]: fontSize (type: float) + Param[6]: spacing (type: float) + Param[7]: tint (type: Color) +Function 423: SetTextLineSpacing() (1 input parameters) + Name: SetTextLineSpacing + Return type: void + Description: Set vertical line spacing when drawing with line-breaks + Param[1]: spacing (type: int) +Function 424: MeasureText() (2 input parameters) + Name: MeasureText + Return type: int + Description: Measure string width for default font + Param[1]: text (type: const char *) + Param[2]: fontSize (type: int) +Function 425: MeasureTextEx() (4 input parameters) + Name: MeasureTextEx + Return type: Vector2 + Description: Measure string size for Font + Param[1]: font (type: Font) + Param[2]: text (type: const char *) + Param[3]: fontSize (type: float) + Param[4]: spacing (type: float) +Function 426: GetGlyphIndex() (2 input parameters) + Name: GetGlyphIndex + Return type: int + Description: Get glyph index position in font for a codepoint (unicode character), fallback to '?' if not found + Param[1]: font (type: Font) + Param[2]: codepoint (type: int) +Function 427: GetGlyphInfo() (2 input parameters) + Name: GetGlyphInfo + Return type: GlyphInfo + Description: Get glyph font info data for a codepoint (unicode character), fallback to '?' if not found + Param[1]: font (type: Font) + Param[2]: codepoint (type: int) +Function 428: GetGlyphAtlasRec() (2 input parameters) + Name: GetGlyphAtlasRec + Return type: Rectangle + Description: Get glyph rectangle in font atlas for a codepoint (unicode character), fallback to '?' if not found + Param[1]: font (type: Font) + Param[2]: codepoint (type: int) +Function 429: LoadUTF8() (2 input parameters) + Name: LoadUTF8 + Return type: char * + Description: Load UTF-8 text encoded from codepoints array + Param[1]: codepoints (type: const int *) + Param[2]: length (type: int) +Function 430: UnloadUTF8() (1 input parameters) + Name: UnloadUTF8 + Return type: void + Description: Unload UTF-8 text encoded from codepoints array + Param[1]: text (type: char *) +Function 431: LoadCodepoints() (2 input parameters) + Name: LoadCodepoints + Return type: int * + Description: Load all codepoints from a UTF-8 text string, codepoints count returned by parameter + Param[1]: text (type: const char *) + Param[2]: count (type: int *) +Function 432: UnloadCodepoints() (1 input parameters) + Name: UnloadCodepoints + Return type: void + Description: Unload codepoints data from memory + Param[1]: codepoints (type: int *) +Function 433: GetCodepointCount() (1 input parameters) + Name: GetCodepointCount + Return type: int + Description: Get total number of codepoints in a UTF-8 encoded string + Param[1]: text (type: const char *) +Function 434: GetCodepoint() (2 input parameters) + Name: GetCodepoint + Return type: int + Description: Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure + Param[1]: text (type: const char *) + Param[2]: codepointSize (type: int *) +Function 435: GetCodepointNext() (2 input parameters) + Name: GetCodepointNext + Return type: int + Description: Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure + Param[1]: text (type: const char *) + Param[2]: codepointSize (type: int *) +Function 436: GetCodepointPrevious() (2 input parameters) + Name: GetCodepointPrevious + Return type: int + Description: Get previous codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure + Param[1]: text (type: const char *) + Param[2]: codepointSize (type: int *) +Function 437: CodepointToUTF8() (2 input parameters) + Name: CodepointToUTF8 + Return type: const char * + Description: Encode one codepoint into UTF-8 byte array (array length returned as parameter) + Param[1]: codepoint (type: int) + Param[2]: utf8Size (type: int *) +Function 438: TextCopy() (2 input parameters) + Name: TextCopy + Return type: int + Description: Copy one string to another, returns bytes copied + Param[1]: dst (type: char *) + Param[2]: src (type: const char *) +Function 439: TextIsEqual() (2 input parameters) + Name: TextIsEqual + Return type: bool + Description: Check if two text string are equal + Param[1]: text1 (type: const char *) + Param[2]: text2 (type: const char *) +Function 440: TextLength() (1 input parameters) + Name: TextLength + Return type: unsigned int + Description: Get text length, checks for '\0' ending + Param[1]: text (type: const char *) +Function 441: TextFormat() (2 input parameters) + Name: TextFormat + Return type: const char * + Description: Text formatting with variables (sprintf() style) + Param[1]: text (type: const char *) + Param[2]: args (type: ...) +Function 442: TextSubtext() (3 input parameters) + Name: TextSubtext + Return type: const char * + Description: Get a piece of a text string + Param[1]: text (type: const char *) + Param[2]: position (type: int) + Param[3]: length (type: int) +Function 443: TextReplace() (3 input parameters) + Name: TextReplace + Return type: char * + Description: Replace text string (WARNING: memory must be freed!) + Param[1]: text (type: const char *) + Param[2]: replace (type: const char *) + Param[3]: by (type: const char *) +Function 444: TextInsert() (3 input parameters) + Name: TextInsert + Return type: char * + Description: Insert text in a position (WARNING: memory must be freed!) + Param[1]: text (type: const char *) + Param[2]: insert (type: const char *) + Param[3]: position (type: int) +Function 445: TextJoin() (3 input parameters) + Name: TextJoin + Return type: char * + Description: Join text strings with delimiter + Param[1]: textList (type: char **) + Param[2]: count (type: int) + Param[3]: delimiter (type: const char *) +Function 446: TextSplit() (3 input parameters) + Name: TextSplit + Return type: char ** + Description: Split text into multiple strings + Param[1]: text (type: const char *) + Param[2]: delimiter (type: char) + Param[3]: count (type: int *) +Function 447: TextAppend() (3 input parameters) + Name: TextAppend + Return type: void + Description: Append text at specific position and move cursor! + Param[1]: text (type: char *) + Param[2]: append (type: const char *) + Param[3]: position (type: int *) +Function 448: TextFindIndex() (2 input parameters) + Name: TextFindIndex + Return type: int + Description: Find first text occurrence within a string + Param[1]: text (type: const char *) + Param[2]: find (type: const char *) +Function 449: TextToUpper() (1 input parameters) + Name: TextToUpper + Return type: char * + Description: Get upper case version of provided string + Param[1]: text (type: const char *) +Function 450: TextToLower() (1 input parameters) + Name: TextToLower + Return type: char * + Description: Get lower case version of provided string + Param[1]: text (type: const char *) +Function 451: TextToPascal() (1 input parameters) + Name: TextToPascal + Return type: char * + Description: Get Pascal case notation version of provided string + Param[1]: text (type: const char *) +Function 452: TextToSnake() (1 input parameters) + Name: TextToSnake + Return type: char * + Description: Get Snake case notation version of provided string + Param[1]: text (type: const char *) +Function 453: TextToCamel() (1 input parameters) + Name: TextToCamel + Return type: char * + Description: Get Camel case notation version of provided string + Param[1]: text (type: const char *) +Function 454: TextToInteger() (1 input parameters) + Name: TextToInteger + Return type: int + Description: Get integer value from text + Param[1]: text (type: const char *) +Function 455: TextToFloat() (1 input parameters) + Name: TextToFloat + Return type: float + Description: Get float value from text + Param[1]: text (type: const char *) +Function 456: DrawLine3D() (3 input parameters) + Name: DrawLine3D + Return type: void + Description: Draw a line in 3D world space + Param[1]: startPos (type: Vector3) + Param[2]: endPos (type: Vector3) + Param[3]: color (type: Color) +Function 457: DrawPoint3D() (2 input parameters) + Name: DrawPoint3D + Return type: void + Description: Draw a point in 3D space, actually a small line + Param[1]: position (type: Vector3) + Param[2]: color (type: Color) +Function 458: DrawCircle3D() (5 input parameters) + Name: DrawCircle3D + Return type: void + Description: Draw a circle in 3D world space + Param[1]: center (type: Vector3) + Param[2]: radius (type: float) + Param[3]: rotationAxis (type: Vector3) + Param[4]: rotationAngle (type: float) + Param[5]: color (type: Color) +Function 459: DrawTriangle3D() (4 input parameters) + Name: DrawTriangle3D + Return type: void + Description: Draw a color-filled triangle (vertex in counter-clockwise order!) + Param[1]: v1 (type: Vector3) + Param[2]: v2 (type: Vector3) + Param[3]: v3 (type: Vector3) + Param[4]: color (type: Color) +Function 460: DrawTriangleStrip3D() (3 input parameters) + Name: DrawTriangleStrip3D + Return type: void + Description: Draw a triangle strip defined by points + Param[1]: points (type: const Vector3 *) + Param[2]: pointCount (type: int) + Param[3]: color (type: Color) +Function 461: DrawCube() (5 input parameters) + Name: DrawCube + Return type: void + Description: Draw cube + Param[1]: position (type: Vector3) + Param[2]: width (type: float) + Param[3]: height (type: float) + Param[4]: length (type: float) + Param[5]: color (type: Color) +Function 462: DrawCubeV() (3 input parameters) + Name: DrawCubeV + Return type: void + Description: Draw cube (Vector version) + Param[1]: position (type: Vector3) + Param[2]: size (type: Vector3) + Param[3]: color (type: Color) +Function 463: DrawCubeWires() (5 input parameters) + Name: DrawCubeWires + Return type: void + Description: Draw cube wires + Param[1]: position (type: Vector3) + Param[2]: width (type: float) + Param[3]: height (type: float) + Param[4]: length (type: float) + Param[5]: color (type: Color) +Function 464: DrawCubeWiresV() (3 input parameters) + Name: DrawCubeWiresV + Return type: void + Description: Draw cube wires (Vector version) + Param[1]: position (type: Vector3) + Param[2]: size (type: Vector3) + Param[3]: color (type: Color) +Function 465: DrawSphere() (3 input parameters) + Name: DrawSphere + Return type: void + Description: Draw sphere + Param[1]: centerPos (type: Vector3) + Param[2]: radius (type: float) + Param[3]: color (type: Color) +Function 466: DrawSphereEx() (5 input parameters) + Name: DrawSphereEx + Return type: void + Description: Draw sphere with extended parameters + Param[1]: centerPos (type: Vector3) + Param[2]: radius (type: float) + Param[3]: rings (type: int) + Param[4]: slices (type: int) + Param[5]: color (type: Color) +Function 467: DrawSphereWires() (5 input parameters) + Name: DrawSphereWires + Return type: void + Description: Draw sphere wires + Param[1]: centerPos (type: Vector3) + Param[2]: radius (type: float) + Param[3]: rings (type: int) + Param[4]: slices (type: int) + Param[5]: color (type: Color) +Function 468: DrawCylinder() (6 input parameters) + Name: DrawCylinder + Return type: void + Description: Draw a cylinder/cone + Param[1]: position (type: Vector3) + Param[2]: radiusTop (type: float) + Param[3]: radiusBottom (type: float) + Param[4]: height (type: float) + Param[5]: slices (type: int) + Param[6]: color (type: Color) +Function 469: DrawCylinderEx() (6 input parameters) + Name: DrawCylinderEx + Return type: void + Description: Draw a cylinder with base at startPos and top at endPos + Param[1]: startPos (type: Vector3) + Param[2]: endPos (type: Vector3) + Param[3]: startRadius (type: float) + Param[4]: endRadius (type: float) + Param[5]: sides (type: int) + Param[6]: color (type: Color) +Function 470: DrawCylinderWires() (6 input parameters) + Name: DrawCylinderWires + Return type: void + Description: Draw a cylinder/cone wires + Param[1]: position (type: Vector3) + Param[2]: radiusTop (type: float) + Param[3]: radiusBottom (type: float) + Param[4]: height (type: float) + Param[5]: slices (type: int) + Param[6]: color (type: Color) +Function 471: DrawCylinderWiresEx() (6 input parameters) + Name: DrawCylinderWiresEx + Return type: void + Description: Draw a cylinder wires with base at startPos and top at endPos + Param[1]: startPos (type: Vector3) + Param[2]: endPos (type: Vector3) + Param[3]: startRadius (type: float) + Param[4]: endRadius (type: float) + Param[5]: sides (type: int) + Param[6]: color (type: Color) +Function 472: DrawCapsule() (6 input parameters) + Name: DrawCapsule + Return type: void + Description: Draw a capsule with the center of its sphere caps at startPos and endPos + Param[1]: startPos (type: Vector3) + Param[2]: endPos (type: Vector3) + Param[3]: radius (type: float) + Param[4]: slices (type: int) + Param[5]: rings (type: int) + Param[6]: color (type: Color) +Function 473: DrawCapsuleWires() (6 input parameters) + Name: DrawCapsuleWires + Return type: void + Description: Draw capsule wireframe with the center of its sphere caps at startPos and endPos + Param[1]: startPos (type: Vector3) + Param[2]: endPos (type: Vector3) + Param[3]: radius (type: float) + Param[4]: slices (type: int) + Param[5]: rings (type: int) + Param[6]: color (type: Color) +Function 474: DrawPlane() (3 input parameters) + Name: DrawPlane + Return type: void + Description: Draw a plane XZ + Param[1]: centerPos (type: Vector3) + Param[2]: size (type: Vector2) + Param[3]: color (type: Color) +Function 475: DrawRay() (2 input parameters) + Name: DrawRay + Return type: void + Description: Draw a ray line + Param[1]: ray (type: Ray) + Param[2]: color (type: Color) +Function 476: DrawGrid() (2 input parameters) + Name: DrawGrid + Return type: void + Description: Draw a grid (centered at (0, 0, 0)) + Param[1]: slices (type: int) + Param[2]: spacing (type: float) +Function 477: LoadModel() (1 input parameters) + Name: LoadModel + Return type: Model + Description: Load model from files (meshes and materials) + Param[1]: fileName (type: const char *) +Function 478: LoadModelFromMesh() (1 input parameters) + Name: LoadModelFromMesh + Return type: Model + Description: Load model from generated mesh (default material) + Param[1]: mesh (type: Mesh) +Function 479: IsModelValid() (1 input parameters) + Name: IsModelValid + Return type: bool + Description: Check if a model is valid (loaded in GPU, VAO/VBOs) + Param[1]: model (type: Model) +Function 480: UnloadModel() (1 input parameters) + Name: UnloadModel + Return type: void + Description: Unload model (including meshes) from memory (RAM and/or VRAM) + Param[1]: model (type: Model) +Function 481: GetModelBoundingBox() (1 input parameters) + Name: GetModelBoundingBox + Return type: BoundingBox + Description: Compute model bounding box limits (considers all meshes) + Param[1]: model (type: Model) +Function 482: DrawModel() (4 input parameters) + Name: DrawModel + Return type: void + Description: Draw a model (with texture if set) + Param[1]: model (type: Model) + Param[2]: position (type: Vector3) + Param[3]: scale (type: float) + Param[4]: tint (type: Color) +Function 483: DrawModelEx() (6 input parameters) + Name: DrawModelEx + Return type: void + Description: Draw a model with extended parameters + Param[1]: model (type: Model) + Param[2]: position (type: Vector3) + Param[3]: rotationAxis (type: Vector3) + Param[4]: rotationAngle (type: float) + Param[5]: scale (type: Vector3) + Param[6]: tint (type: Color) +Function 484: DrawModelWires() (4 input parameters) + Name: DrawModelWires + Return type: void + Description: Draw a model wires (with texture if set) + Param[1]: model (type: Model) + Param[2]: position (type: Vector3) + Param[3]: scale (type: float) + Param[4]: tint (type: Color) +Function 485: DrawModelWiresEx() (6 input parameters) + Name: DrawModelWiresEx + Return type: void + Description: Draw a model wires (with texture if set) with extended parameters + Param[1]: model (type: Model) + Param[2]: position (type: Vector3) + Param[3]: rotationAxis (type: Vector3) + Param[4]: rotationAngle (type: float) + Param[5]: scale (type: Vector3) + Param[6]: tint (type: Color) +Function 486: DrawModelPoints() (4 input parameters) + Name: DrawModelPoints + Return type: void + Description: Draw a model as points + Param[1]: model (type: Model) + Param[2]: position (type: Vector3) + Param[3]: scale (type: float) + Param[4]: tint (type: Color) +Function 487: DrawModelPointsEx() (6 input parameters) + Name: DrawModelPointsEx + Return type: void + Description: Draw a model as points with extended parameters + Param[1]: model (type: Model) + Param[2]: position (type: Vector3) + Param[3]: rotationAxis (type: Vector3) + Param[4]: rotationAngle (type: float) + Param[5]: scale (type: Vector3) + Param[6]: tint (type: Color) +Function 488: DrawBoundingBox() (2 input parameters) + Name: DrawBoundingBox + Return type: void + Description: Draw bounding box (wires) + Param[1]: box (type: BoundingBox) + Param[2]: color (type: Color) +Function 489: DrawBillboard() (5 input parameters) + Name: DrawBillboard + Return type: void + Description: Draw a billboard texture + Param[1]: camera (type: Camera) + Param[2]: texture (type: Texture2D) + Param[3]: position (type: Vector3) + Param[4]: scale (type: float) + Param[5]: tint (type: Color) +Function 490: DrawBillboardRec() (6 input parameters) + Name: DrawBillboardRec + Return type: void + Description: Draw a billboard texture defined by source + Param[1]: camera (type: Camera) + Param[2]: texture (type: Texture2D) + Param[3]: source (type: Rectangle) + Param[4]: position (type: Vector3) + Param[5]: size (type: Vector2) + Param[6]: tint (type: Color) +Function 491: DrawBillboardPro() (9 input parameters) + Name: DrawBillboardPro + Return type: void + Description: Draw a billboard texture defined by source and rotation + Param[1]: camera (type: Camera) + Param[2]: texture (type: Texture2D) + Param[3]: source (type: Rectangle) + Param[4]: position (type: Vector3) + Param[5]: up (type: Vector3) + Param[6]: size (type: Vector2) + Param[7]: origin (type: Vector2) + Param[8]: rotation (type: float) + Param[9]: tint (type: Color) +Function 492: UploadMesh() (2 input parameters) + Name: UploadMesh + Return type: void + Description: Upload mesh vertex data in GPU and provide VAO/VBO ids + Param[1]: mesh (type: Mesh *) + Param[2]: dynamic (type: bool) +Function 493: UpdateMeshBuffer() (5 input parameters) + Name: UpdateMeshBuffer + Return type: void + Description: Update mesh vertex data in GPU for a specific buffer index + Param[1]: mesh (type: Mesh) + Param[2]: index (type: int) + Param[3]: data (type: const void *) + Param[4]: dataSize (type: int) + Param[5]: offset (type: int) +Function 494: UnloadMesh() (1 input parameters) + Name: UnloadMesh + Return type: void + Description: Unload mesh data from CPU and GPU + Param[1]: mesh (type: Mesh) +Function 495: DrawMesh() (3 input parameters) + Name: DrawMesh + Return type: void + Description: Draw a 3d mesh with material and transform + Param[1]: mesh (type: Mesh) + Param[2]: material (type: Material) + Param[3]: transform (type: Matrix) +Function 496: DrawMeshInstanced() (4 input parameters) + Name: DrawMeshInstanced + Return type: void + Description: Draw multiple mesh instances with material and different transforms + Param[1]: mesh (type: Mesh) + Param[2]: material (type: Material) + Param[3]: transforms (type: const Matrix *) + Param[4]: instances (type: int) +Function 497: GetMeshBoundingBox() (1 input parameters) + Name: GetMeshBoundingBox + Return type: BoundingBox + Description: Compute mesh bounding box limits + Param[1]: mesh (type: Mesh) +Function 498: GenMeshTangents() (1 input parameters) + Name: GenMeshTangents + Return type: void + Description: Compute mesh tangents + Param[1]: mesh (type: Mesh *) +Function 499: ExportMesh() (2 input parameters) + Name: ExportMesh + Return type: bool + Description: Export mesh data to file, returns true on success + Param[1]: mesh (type: Mesh) + Param[2]: fileName (type: const char *) +Function 500: ExportMeshAsCode() (2 input parameters) + Name: ExportMeshAsCode + Return type: bool + Description: Export mesh as code file (.h) defining multiple arrays of vertex attributes + Param[1]: mesh (type: Mesh) + Param[2]: fileName (type: const char *) +Function 501: GenMeshPoly() (2 input parameters) + Name: GenMeshPoly + Return type: Mesh + Description: Generate polygonal mesh + Param[1]: sides (type: int) + Param[2]: radius (type: float) +Function 502: GenMeshPlane() (4 input parameters) + Name: GenMeshPlane + Return type: Mesh + Description: Generate plane mesh (with subdivisions) + Param[1]: width (type: float) + Param[2]: length (type: float) + Param[3]: resX (type: int) + Param[4]: resZ (type: int) +Function 503: GenMeshCube() (3 input parameters) + Name: GenMeshCube + Return type: Mesh + Description: Generate cuboid mesh + Param[1]: width (type: float) + Param[2]: height (type: float) + Param[3]: length (type: float) +Function 504: GenMeshSphere() (3 input parameters) + Name: GenMeshSphere + Return type: Mesh + Description: Generate sphere mesh (standard sphere) + Param[1]: radius (type: float) + Param[2]: rings (type: int) + Param[3]: slices (type: int) +Function 505: GenMeshHemiSphere() (3 input parameters) + Name: GenMeshHemiSphere + Return type: Mesh + Description: Generate half-sphere mesh (no bottom cap) + Param[1]: radius (type: float) + Param[2]: rings (type: int) + Param[3]: slices (type: int) +Function 506: GenMeshCylinder() (3 input parameters) + Name: GenMeshCylinder + Return type: Mesh + Description: Generate cylinder mesh + Param[1]: radius (type: float) + Param[2]: height (type: float) + Param[3]: slices (type: int) +Function 507: GenMeshCone() (3 input parameters) + Name: GenMeshCone + Return type: Mesh + Description: Generate cone/pyramid mesh + Param[1]: radius (type: float) + Param[2]: height (type: float) + Param[3]: slices (type: int) +Function 508: GenMeshTorus() (4 input parameters) + Name: GenMeshTorus + Return type: Mesh + Description: Generate torus mesh + Param[1]: radius (type: float) + Param[2]: size (type: float) + Param[3]: radSeg (type: int) + Param[4]: sides (type: int) +Function 509: GenMeshKnot() (4 input parameters) + Name: GenMeshKnot + Return type: Mesh + Description: Generate trefoil knot mesh + Param[1]: radius (type: float) + Param[2]: size (type: float) + Param[3]: radSeg (type: int) + Param[4]: sides (type: int) +Function 510: GenMeshHeightmap() (2 input parameters) + Name: GenMeshHeightmap + Return type: Mesh + Description: Generate heightmap mesh from image data + Param[1]: heightmap (type: Image) + Param[2]: size (type: Vector3) +Function 511: GenMeshCubicmap() (2 input parameters) + Name: GenMeshCubicmap + Return type: Mesh + Description: Generate cubes-based map mesh from image data + Param[1]: cubicmap (type: Image) + Param[2]: cubeSize (type: Vector3) +Function 512: LoadMaterials() (2 input parameters) + Name: LoadMaterials + Return type: Material * + Description: Load materials from model file + Param[1]: fileName (type: const char *) + Param[2]: materialCount (type: int *) +Function 513: LoadMaterialDefault() (0 input parameters) + Name: LoadMaterialDefault + Return type: Material + Description: Load default material (Supports: DIFFUSE, SPECULAR, NORMAL maps) + No input parameters +Function 514: IsMaterialValid() (1 input parameters) + Name: IsMaterialValid + Return type: bool + Description: Check if a material is valid (shader assigned, map textures loaded in GPU) + Param[1]: material (type: Material) +Function 515: UnloadMaterial() (1 input parameters) + Name: UnloadMaterial + Return type: void + Description: Unload material from GPU memory (VRAM) + Param[1]: material (type: Material) +Function 516: SetMaterialTexture() (3 input parameters) + Name: SetMaterialTexture + Return type: void + Description: Set texture for a material map type (MATERIAL_MAP_DIFFUSE, MATERIAL_MAP_SPECULAR...) + Param[1]: material (type: Material *) + Param[2]: mapType (type: int) + Param[3]: texture (type: Texture2D) +Function 517: SetModelMeshMaterial() (3 input parameters) + Name: SetModelMeshMaterial + Return type: void + Description: Set material for a mesh + Param[1]: model (type: Model *) + Param[2]: meshId (type: int) + Param[3]: materialId (type: int) +Function 518: LoadModelAnimations() (2 input parameters) + Name: LoadModelAnimations + Return type: ModelAnimation * + Description: Load model animations from file + Param[1]: fileName (type: const char *) + Param[2]: animCount (type: int *) +Function 519: UpdateModelAnimation() (3 input parameters) + Name: UpdateModelAnimation + Return type: void + Description: Update model animation pose (CPU) + Param[1]: model (type: Model) + Param[2]: anim (type: ModelAnimation) + Param[3]: frame (type: int) +Function 520: UpdateModelAnimationBones() (3 input parameters) + Name: UpdateModelAnimationBones + Return type: void + Description: Update model animation mesh bone matrices (GPU skinning) + Param[1]: model (type: Model) + Param[2]: anim (type: ModelAnimation) + Param[3]: frame (type: int) +Function 521: UnloadModelAnimation() (1 input parameters) + Name: UnloadModelAnimation + Return type: void + Description: Unload animation data + Param[1]: anim (type: ModelAnimation) +Function 522: UnloadModelAnimations() (2 input parameters) + Name: UnloadModelAnimations + Return type: void + Description: Unload animation array data + Param[1]: animations (type: ModelAnimation *) + Param[2]: animCount (type: int) +Function 523: IsModelAnimationValid() (2 input parameters) + Name: IsModelAnimationValid + Return type: bool + Description: Check model animation skeleton match + Param[1]: model (type: Model) + Param[2]: anim (type: ModelAnimation) +Function 524: CheckCollisionSpheres() (4 input parameters) + Name: CheckCollisionSpheres + Return type: bool + Description: Check collision between two spheres + Param[1]: center1 (type: Vector3) + Param[2]: radius1 (type: float) + Param[3]: center2 (type: Vector3) + Param[4]: radius2 (type: float) +Function 525: CheckCollisionBoxes() (2 input parameters) + Name: CheckCollisionBoxes + Return type: bool + Description: Check collision between two bounding boxes + Param[1]: box1 (type: BoundingBox) + Param[2]: box2 (type: BoundingBox) +Function 526: CheckCollisionBoxSphere() (3 input parameters) + Name: CheckCollisionBoxSphere + Return type: bool + Description: Check collision between box and sphere + Param[1]: box (type: BoundingBox) + Param[2]: center (type: Vector3) + Param[3]: radius (type: float) +Function 527: GetRayCollisionSphere() (3 input parameters) + Name: GetRayCollisionSphere + Return type: RayCollision + Description: Get collision info between ray and sphere + Param[1]: ray (type: Ray) + Param[2]: center (type: Vector3) + Param[3]: radius (type: float) +Function 528: GetRayCollisionBox() (2 input parameters) + Name: GetRayCollisionBox + Return type: RayCollision + Description: Get collision info between ray and box + Param[1]: ray (type: Ray) + Param[2]: box (type: BoundingBox) +Function 529: GetRayCollisionMesh() (3 input parameters) + Name: GetRayCollisionMesh + Return type: RayCollision + Description: Get collision info between ray and mesh + Param[1]: ray (type: Ray) + Param[2]: mesh (type: Mesh) + Param[3]: transform (type: Matrix) +Function 530: GetRayCollisionTriangle() (4 input parameters) + Name: GetRayCollisionTriangle + Return type: RayCollision + Description: Get collision info between ray and triangle + Param[1]: ray (type: Ray) + Param[2]: p1 (type: Vector3) + Param[3]: p2 (type: Vector3) + Param[4]: p3 (type: Vector3) +Function 531: GetRayCollisionQuad() (5 input parameters) + Name: GetRayCollisionQuad + Return type: RayCollision + Description: Get collision info between ray and quad + Param[1]: ray (type: Ray) + Param[2]: p1 (type: Vector3) + Param[3]: p2 (type: Vector3) + Param[4]: p3 (type: Vector3) + Param[5]: p4 (type: Vector3) +Function 532: InitAudioDevice() (0 input parameters) + Name: InitAudioDevice + Return type: void + Description: Initialize audio device and context + No input parameters +Function 533: CloseAudioDevice() (0 input parameters) + Name: CloseAudioDevice + Return type: void + Description: Close the audio device and context + No input parameters +Function 534: IsAudioDeviceReady() (0 input parameters) + Name: IsAudioDeviceReady + Return type: bool + Description: Check if audio device has been initialized successfully + No input parameters +Function 535: SetMasterVolume() (1 input parameters) + Name: SetMasterVolume + Return type: void + Description: Set master volume (listener) + Param[1]: volume (type: float) +Function 536: GetMasterVolume() (0 input parameters) + Name: GetMasterVolume + Return type: float + Description: Get master volume (listener) + No input parameters +Function 537: LoadWave() (1 input parameters) + Name: LoadWave + Return type: Wave + Description: Load wave data from file + Param[1]: fileName (type: const char *) +Function 538: LoadWaveFromMemory() (3 input parameters) + Name: LoadWaveFromMemory + Return type: Wave + Description: Load wave from memory buffer, fileType refers to extension: i.e. '.wav' + Param[1]: fileType (type: const char *) + Param[2]: fileData (type: const unsigned char *) + Param[3]: dataSize (type: int) +Function 539: IsWaveValid() (1 input parameters) + Name: IsWaveValid + Return type: bool + Description: Checks if wave data is valid (data loaded and parameters) + Param[1]: wave (type: Wave) +Function 540: LoadSound() (1 input parameters) + Name: LoadSound + Return type: Sound + Description: Load sound from file + Param[1]: fileName (type: const char *) +Function 541: LoadSoundFromWave() (1 input parameters) + Name: LoadSoundFromWave + Return type: Sound + Description: Load sound from wave data + Param[1]: wave (type: Wave) +Function 542: LoadSoundAlias() (1 input parameters) + Name: LoadSoundAlias + Return type: Sound + Description: Create a new sound that shares the same sample data as the source sound, does not own the sound data + Param[1]: source (type: Sound) +Function 543: IsSoundValid() (1 input parameters) + Name: IsSoundValid + Return type: bool + Description: Checks if a sound is valid (data loaded and buffers initialized) + Param[1]: sound (type: Sound) +Function 544: UpdateSound() (3 input parameters) + Name: UpdateSound + Return type: void + Description: Update sound buffer with new data (data and frame count should fit in sound) + Param[1]: sound (type: Sound) + Param[2]: data (type: const void *) + Param[3]: sampleCount (type: int) +Function 545: UnloadWave() (1 input parameters) + Name: UnloadWave + Return type: void + Description: Unload wave data + Param[1]: wave (type: Wave) +Function 546: UnloadSound() (1 input parameters) + Name: UnloadSound + Return type: void + Description: Unload sound + Param[1]: sound (type: Sound) +Function 547: UnloadSoundAlias() (1 input parameters) + Name: UnloadSoundAlias + Return type: void + Description: Unload a sound alias (does not deallocate sample data) + Param[1]: alias (type: Sound) +Function 548: ExportWave() (2 input parameters) + Name: ExportWave + Return type: bool + Description: Export wave data to file, returns true on success + Param[1]: wave (type: Wave) + Param[2]: fileName (type: const char *) +Function 549: ExportWaveAsCode() (2 input parameters) + Name: ExportWaveAsCode + Return type: bool + Description: Export wave sample data to code (.h), returns true on success + Param[1]: wave (type: Wave) + Param[2]: fileName (type: const char *) +Function 550: PlaySound() (1 input parameters) + Name: PlaySound + Return type: void + Description: Play a sound + Param[1]: sound (type: Sound) +Function 551: StopSound() (1 input parameters) + Name: StopSound + Return type: void + Description: Stop playing a sound + Param[1]: sound (type: Sound) +Function 552: PauseSound() (1 input parameters) + Name: PauseSound + Return type: void + Description: Pause a sound + Param[1]: sound (type: Sound) +Function 553: ResumeSound() (1 input parameters) + Name: ResumeSound + Return type: void + Description: Resume a paused sound + Param[1]: sound (type: Sound) +Function 554: IsSoundPlaying() (1 input parameters) + Name: IsSoundPlaying + Return type: bool + Description: Check if a sound is currently playing + Param[1]: sound (type: Sound) +Function 555: SetSoundVolume() (2 input parameters) + Name: SetSoundVolume + Return type: void + Description: Set volume for a sound (1.0 is max level) + Param[1]: sound (type: Sound) + Param[2]: volume (type: float) +Function 556: SetSoundPitch() (2 input parameters) + Name: SetSoundPitch + Return type: void + Description: Set pitch for a sound (1.0 is base level) + Param[1]: sound (type: Sound) + Param[2]: pitch (type: float) +Function 557: SetSoundPan() (2 input parameters) + Name: SetSoundPan + Return type: void + Description: Set pan for a sound (0.5 is center) + Param[1]: sound (type: Sound) + Param[2]: pan (type: float) +Function 558: WaveCopy() (1 input parameters) + Name: WaveCopy + Return type: Wave + Description: Copy a wave to a new wave + Param[1]: wave (type: Wave) +Function 559: WaveCrop() (3 input parameters) + Name: WaveCrop + Return type: void + Description: Crop a wave to defined frames range + Param[1]: wave (type: Wave *) + Param[2]: initFrame (type: int) + Param[3]: finalFrame (type: int) +Function 560: WaveFormat() (4 input parameters) + Name: WaveFormat + Return type: void + Description: Convert wave data to desired format + Param[1]: wave (type: Wave *) + Param[2]: sampleRate (type: int) + Param[3]: sampleSize (type: int) + Param[4]: channels (type: int) +Function 561: LoadWaveSamples() (1 input parameters) + Name: LoadWaveSamples + Return type: float * + Description: Load samples data from wave as a 32bit float data array + Param[1]: wave (type: Wave) +Function 562: UnloadWaveSamples() (1 input parameters) + Name: UnloadWaveSamples + Return type: void + Description: Unload samples data loaded with LoadWaveSamples() + Param[1]: samples (type: float *) +Function 563: LoadMusicStream() (1 input parameters) + Name: LoadMusicStream + Return type: Music + Description: Load music stream from file + Param[1]: fileName (type: const char *) +Function 564: LoadMusicStreamFromMemory() (3 input parameters) + Name: LoadMusicStreamFromMemory + Return type: Music + Description: Load music stream from data + Param[1]: fileType (type: const char *) + Param[2]: data (type: const unsigned char *) + Param[3]: dataSize (type: int) +Function 565: IsMusicValid() (1 input parameters) + Name: IsMusicValid + Return type: bool + Description: Checks if a music stream is valid (context and buffers initialized) + Param[1]: music (type: Music) +Function 566: UnloadMusicStream() (1 input parameters) + Name: UnloadMusicStream + Return type: void + Description: Unload music stream + Param[1]: music (type: Music) +Function 567: PlayMusicStream() (1 input parameters) + Name: PlayMusicStream + Return type: void + Description: Start music playing + Param[1]: music (type: Music) +Function 568: IsMusicStreamPlaying() (1 input parameters) + Name: IsMusicStreamPlaying + Return type: bool + Description: Check if music is playing + Param[1]: music (type: Music) +Function 569: UpdateMusicStream() (1 input parameters) + Name: UpdateMusicStream + Return type: void + Description: Updates buffers for music streaming + Param[1]: music (type: Music) +Function 570: StopMusicStream() (1 input parameters) + Name: StopMusicStream + Return type: void + Description: Stop music playing + Param[1]: music (type: Music) +Function 571: PauseMusicStream() (1 input parameters) + Name: PauseMusicStream + Return type: void + Description: Pause music playing + Param[1]: music (type: Music) +Function 572: ResumeMusicStream() (1 input parameters) + Name: ResumeMusicStream + Return type: void + Description: Resume playing paused music + Param[1]: music (type: Music) +Function 573: SeekMusicStream() (2 input parameters) + Name: SeekMusicStream + Return type: void + Description: Seek music to a position (in seconds) + Param[1]: music (type: Music) + Param[2]: position (type: float) +Function 574: SetMusicVolume() (2 input parameters) + Name: SetMusicVolume + Return type: void + Description: Set volume for music (1.0 is max level) + Param[1]: music (type: Music) + Param[2]: volume (type: float) +Function 575: SetMusicPitch() (2 input parameters) + Name: SetMusicPitch + Return type: void + Description: Set pitch for a music (1.0 is base level) + Param[1]: music (type: Music) + Param[2]: pitch (type: float) +Function 576: SetMusicPan() (2 input parameters) + Name: SetMusicPan + Return type: void + Description: Set pan for a music (0.5 is center) + Param[1]: music (type: Music) + Param[2]: pan (type: float) +Function 577: GetMusicTimeLength() (1 input parameters) + Name: GetMusicTimeLength + Return type: float + Description: Get music time length (in seconds) + Param[1]: music (type: Music) +Function 578: GetMusicTimePlayed() (1 input parameters) + Name: GetMusicTimePlayed + Return type: float + Description: Get current music time played (in seconds) + Param[1]: music (type: Music) +Function 579: LoadAudioStream() (3 input parameters) + Name: LoadAudioStream + Return type: AudioStream + Description: Load audio stream (to stream raw audio pcm data) + Param[1]: sampleRate (type: unsigned int) + Param[2]: sampleSize (type: unsigned int) + Param[3]: channels (type: unsigned int) +Function 580: IsAudioStreamValid() (1 input parameters) + Name: IsAudioStreamValid + Return type: bool + Description: Checks if an audio stream is valid (buffers initialized) + Param[1]: stream (type: AudioStream) +Function 581: UnloadAudioStream() (1 input parameters) + Name: UnloadAudioStream + Return type: void + Description: Unload audio stream and free memory + Param[1]: stream (type: AudioStream) +Function 582: UpdateAudioStream() (3 input parameters) + Name: UpdateAudioStream + Return type: void + Description: Update audio stream buffers with data + Param[1]: stream (type: AudioStream) + Param[2]: data (type: const void *) + Param[3]: frameCount (type: int) +Function 583: IsAudioStreamProcessed() (1 input parameters) + Name: IsAudioStreamProcessed + Return type: bool + Description: Check if any audio stream buffers requires refill + Param[1]: stream (type: AudioStream) +Function 584: PlayAudioStream() (1 input parameters) + Name: PlayAudioStream + Return type: void + Description: Play audio stream + Param[1]: stream (type: AudioStream) +Function 585: PauseAudioStream() (1 input parameters) + Name: PauseAudioStream + Return type: void + Description: Pause audio stream + Param[1]: stream (type: AudioStream) +Function 586: ResumeAudioStream() (1 input parameters) + Name: ResumeAudioStream + Return type: void + Description: Resume audio stream + Param[1]: stream (type: AudioStream) +Function 587: IsAudioStreamPlaying() (1 input parameters) + Name: IsAudioStreamPlaying + Return type: bool + Description: Check if audio stream is playing + Param[1]: stream (type: AudioStream) +Function 588: StopAudioStream() (1 input parameters) + Name: StopAudioStream + Return type: void + Description: Stop audio stream + Param[1]: stream (type: AudioStream) +Function 589: SetAudioStreamVolume() (2 input parameters) + Name: SetAudioStreamVolume + Return type: void + Description: Set volume for audio stream (1.0 is max level) + Param[1]: stream (type: AudioStream) + Param[2]: volume (type: float) +Function 590: SetAudioStreamPitch() (2 input parameters) + Name: SetAudioStreamPitch + Return type: void + Description: Set pitch for audio stream (1.0 is base level) + Param[1]: stream (type: AudioStream) + Param[2]: pitch (type: float) +Function 591: SetAudioStreamPan() (2 input parameters) + Name: SetAudioStreamPan + Return type: void + Description: Set pan for audio stream (0.5 is centered) + Param[1]: stream (type: AudioStream) + Param[2]: pan (type: float) +Function 592: SetAudioStreamBufferSizeDefault() (1 input parameters) + Name: SetAudioStreamBufferSizeDefault + Return type: void + Description: Default size for new audio streams + Param[1]: size (type: int) +Function 593: SetAudioStreamCallback() (2 input parameters) + Name: SetAudioStreamCallback + Return type: void + Description: Audio thread callback to request new data + Param[1]: stream (type: AudioStream) + Param[2]: callback (type: AudioCallback) +Function 594: AttachAudioStreamProcessor() (2 input parameters) + Name: AttachAudioStreamProcessor + Return type: void + Description: Attach audio stream processor to stream, receives frames x 2 samples as 'float' (stereo) + Param[1]: stream (type: AudioStream) + Param[2]: processor (type: AudioCallback) +Function 595: DetachAudioStreamProcessor() (2 input parameters) + Name: DetachAudioStreamProcessor + Return type: void + Description: Detach audio stream processor from stream + Param[1]: stream (type: AudioStream) + Param[2]: processor (type: AudioCallback) +Function 596: AttachAudioMixedProcessor() (1 input parameters) + Name: AttachAudioMixedProcessor + Return type: void + Description: Attach audio stream processor to the entire audio pipeline, receives frames x 2 samples as 'float' (stereo) + Param[1]: processor (type: AudioCallback) +Function 597: DetachAudioMixedProcessor() (1 input parameters) + Name: DetachAudioMixedProcessor + Return type: void + Description: Detach audio stream processor from the entire audio pipeline + Param[1]: processor (type: AudioCallback) diff --git a/parser/output/raylib_api.xml b/parser/output/raylib_api.xml index 5c03003a3d39..0def04e0ad14 100644 --- a/parser/output/raylib_api.xml +++ b/parser/output/raylib_api.xml @@ -679,7 +679,7 @@ - + From 3915469c785a415ad6c502ada297181d26c16f4a Mon Sep 17 00:00:00 2001 From: Amy Wilder Date: Sat, 2 Aug 2025 13:35:36 -0400 Subject: [PATCH 11/16] Make assignments consistent with equality checks --- examples/shapes/shapes_splines_drawing.c | 56 ++++++++++++------------ 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/examples/shapes/shapes_splines_drawing.c b/examples/shapes/shapes_splines_drawing.c index 239c67e32c89..11393e2335b7 100644 --- a/examples/shapes/shapes_splines_drawing.c +++ b/examples/shapes/shapes_splines_drawing.c @@ -23,7 +23,7 @@ #define MAX_SPLINE_POINTS 32 // Cubic Bezier spline control points -// NOTE: Every segment has two control points +// NOTE: Every segment has two control points typedef struct { Vector2 start; Vector2 end; @@ -59,17 +59,17 @@ int main(void) { 520.0f, 60.0f }, { 710.0f, 260.0f }, }; - - // Array required for spline bezier-cubic, + + // Array required for spline bezier-cubic, // including control points interleaved with start-end segment points Vector2 pointsInterleaved[3*(MAX_SPLINE_POINTS - 1) + 1] = { 0 }; - + int pointCount = 5; int selectedPoint = -1; int focusedPoint = -1; Vector2 *selectedControlPoint = NULL; Vector2 *focusedControlPoint = NULL; - + // Cubic Bezier control points initialization ControlPoint control[MAX_SPLINE_POINTS-1] = { 0 }; for (int i = 0; i < pointCount - 1; i++) @@ -81,9 +81,9 @@ int main(void) // Spline config variables float splineThickness = 8.0f; int splineTypeActive = SPLINE_LINEAR; // 0-Linear, 1-BSpline, 2-CatmullRom, 3-Bezier, 4-LinearVar, 5-BezierVar - bool splineTypeEditMode = false; + bool splineTypeEditMode = false; bool splineHelpersActive = true; - + SetTargetFPS(60); // Set our game to run at 60 frames-per-second //-------------------------------------------------------------------------------------- @@ -116,14 +116,14 @@ int main(void) } if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) selectedPoint = focusedPoint; } - + // Spline point movement logic if (selectedPoint >= 0) { points[selectedPoint] = GetMousePosition(); if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) selectedPoint = -1; } - + // Cubic Bezier spline control points logic if (((splineTypeActive == SPLINE_BEZIER) || (splineTypeActive == SPLINE_BEZIER_VAR)) && (focusedPoint == -1)) { @@ -146,7 +146,7 @@ int main(void) } if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) selectedControlPoint = focusedControlPoint; } - + // Spline control point movement logic if (selectedControlPoint != NULL) { @@ -154,14 +154,14 @@ int main(void) if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) selectedControlPoint = NULL; } } - + // Spline selection logic - if (IsKeyPressed(KEY_ONE)) splineTypeActive = 0; - else if (IsKeyPressed(KEY_TWO)) splineTypeActive = 1; - else if (IsKeyPressed(KEY_THREE)) splineTypeActive = 2; - else if (IsKeyPressed(KEY_FOUR)) splineTypeActive = 3; - else if (IsKeyPressed(KEY_FIVE)) splineTypeActive = 4; - else if (IsKeyPressed(KEY_SIX)) splineTypeActive = 5; + if (IsKeyPressed(KEY_ONE)) splineTypeActive = SPLINE_LINEAR; + else if (IsKeyPressed(KEY_TWO)) splineTypeActive = SPLINE_BASIS; + else if (IsKeyPressed(KEY_THREE)) splineTypeActive = SPLINE_CATMULLROM; + else if (IsKeyPressed(KEY_FOUR)) splineTypeActive = SPLINE_BEZIER; + else if (IsKeyPressed(KEY_FIVE)) splineTypeActive = SPLINE_LINEAR_VAR; + else if (IsKeyPressed(KEY_SIX)) splineTypeActive = SPLINE_BEZIER_VAR; // Clear selection when changing to a spline without control points if (IsKeyPressed(KEY_ONE) || IsKeyPressed(KEY_TWO) || IsKeyPressed(KEY_THREE)) selectedControlPoint = NULL; @@ -172,7 +172,7 @@ int main(void) BeginDrawing(); ClearBackground(RAYWHITE); - + if (splineTypeActive == SPLINE_LINEAR) { // Draw spline: linear @@ -195,7 +195,7 @@ int main(void) { // Draw spline: catmull-rom DrawSplineCatmullRom(points, pointCount, splineThickness, RED); // Provide connected points array - + /* for (int i = 0; i < (pointCount - 3); i++) { @@ -206,20 +206,20 @@ int main(void) } else if (splineTypeActive == SPLINE_BEZIER) { - // NOTE: Cubic-bezier spline requires the 2 control points of each segnment to be + // NOTE: Cubic-bezier spline requires the 2 control points of each segnment to be // provided interleaved with the start and end point of every segment - for (int i = 0; i < (pointCount - 1); i++) + for (int i = 0; i < (pointCount - 1); i++) { pointsInterleaved[3*i] = points[i]; pointsInterleaved[3*i + 1] = control[i].start; pointsInterleaved[3*i + 2] = control[i].end; } - + pointsInterleaved[3*(pointCount - 1)] = points[pointCount - 1]; // Draw spline: cubic-bezier (with control points) DrawSplineBezierCubic(pointsInterleaved, 3*(pointCount - 1) + 1, splineThickness, RED); - + /* for (int i = 0; i < 3*(pointCount - 1); i += 3) { @@ -252,15 +252,15 @@ int main(void) 0.0f, }; - // NOTE: Cubic-bezier spline requires the 2 control points of each segnment to be + // NOTE: Cubic-bezier spline requires the 2 control points of each segnment to be // provided interleaved with the start and end point of every segment - for (int i = 0; i < (pointCount - 1); i++) + for (int i = 0; i < (pointCount - 1); i++) { pointsInterleaved[3*i] = points[i]; pointsInterleaved[3*i + 1] = control[i].start; pointsInterleaved[3*i + 2] = control[i].end; } - + pointsInterleaved[3*(pointCount - 1)] = points[pointCount - 1]; // Draw spline: variable-width cubic-bezier (with control points) @@ -282,7 +282,7 @@ int main(void) else if (focusedControlPoint == &control[i].end) DrawCircleV(control[i].end, 8, GREEN); DrawLineEx(points[i], control[i].start, 1.0f, LIGHTGRAY); DrawLineEx(points[i + 1], control[i].end, 1.0f, LIGHTGRAY); - + // Draw spline control lines DrawLineV(points[i], control[i].start, GRAY); //DrawLineV(control[i].start, control[i].end, LIGHTGRAY); @@ -308,7 +308,7 @@ int main(void) // Check all possible UI states that require controls lock if (splineTypeEditMode || (selectedPoint != -1) || (selectedControlPoint != NULL)) GuiLock(); - + // Draw spline config GuiLabel((Rectangle){ 12, 62, 140, 24 }, TextFormat("Spline thickness: %i", (int)splineThickness)); GuiSliderBar((Rectangle){ 12, 60 + 24, 140, 16 }, NULL, NULL, &splineThickness, 1.0f, 40.0f); From 74792bc4967c8cec70b0c826eb147edac5642241 Mon Sep 17 00:00:00 2001 From: Amy Wilder Date: Sat, 2 Aug 2025 16:04:56 -0400 Subject: [PATCH 12/16] Add variable thickness helpers for SPLINE_LINEAR_VAR --- examples/shapes/shapes_splines_drawing.c | 78 ++++++++++++++++++------ 1 file changed, 58 insertions(+), 20 deletions(-) diff --git a/examples/shapes/shapes_splines_drawing.c b/examples/shapes/shapes_splines_drawing.c index 11393e2335b7..51fd7ec45748 100644 --- a/examples/shapes/shapes_splines_drawing.c +++ b/examples/shapes/shapes_splines_drawing.c @@ -14,6 +14,7 @@ ********************************************************************************************/ #include "raylib.h" +#include "raymath.h" #define RAYGUI_IMPLEMENTATION #include "raygui.h" // Required for UI controls @@ -21,6 +22,7 @@ #include // Required for: NULL #define MAX_SPLINE_POINTS 32 +#define SPLINE_THICK_COUNT 4 // Cubic Bezier spline control points // NOTE: Every segment has two control points @@ -60,6 +62,13 @@ int main(void) { 710.0f, 260.0f }, }; + float thicks[SPLINE_THICK_COUNT] = { + 0.0f, + 8.0f, + 8.0f, + 0.0f, + }; + // Array required for spline bezier-cubic, // including control points interleaved with start-end segment points Vector2 pointsInterleaved[3*(MAX_SPLINE_POINTS - 1) + 1] = { 0 }; @@ -71,7 +80,7 @@ int main(void) Vector2 *focusedControlPoint = NULL; // Cubic Bezier control points initialization - ControlPoint control[MAX_SPLINE_POINTS-1] = { 0 }; + ControlPoint control[MAX_SPLINE_POINTS - 1] = { 0 }; for (int i = 0; i < pointCount - 1; i++) { control[i].start = (Vector2){ points[i].x + 50, points[i].y }; @@ -230,28 +239,14 @@ int main(void) } else if (splineTypeActive == SPLINE_LINEAR_VAR) { - float thicks[] = { - 0.0f, - splineThickness, - -splineThickness, - splineThickness, - }; - // Draw spline: variable-width linear for (int i = 0; i < pointCount - 1; ++i) { - DrawSplineSegmentLinearVar(points[i], points[i+1], thicks, 4, RED); + DrawSplineSegmentLinearVar(points[i], points[i + 1], thicks, SPLINE_THICK_COUNT, RED); } } else if (splineTypeActive == SPLINE_BEZIER_VAR) { - float thicks[] = { - 0.0f, - splineThickness, - splineThickness, - 0.0f, - }; - // NOTE: Cubic-bezier spline requires the 2 control points of each segnment to be // provided interleaved with the start and end point of every segment for (int i = 0; i < (pointCount - 1); i++) @@ -266,7 +261,7 @@ int main(void) // Draw spline: variable-width cubic-bezier (with control points) for (int i = 0; i < pointCount - 1; ++i) { - DrawSplineSegmentBezierCubicVar(points[i], control[i].start, control[i].end, points[i+1], thicks, 4, RED); + DrawSplineSegmentBezierCubicVar(points[i], control[i].start, control[i].end, points[i + 1], thicks, SPLINE_THICK_COUNT, RED); } } @@ -304,16 +299,59 @@ int main(void) DrawText(TextFormat("[%.0f, %.0f]", points[i].x, points[i].y), (int)points[i].x, (int)points[i].y + 10, 10, BLACK); } + + if (splineTypeActive == SPLINE_LINEAR_VAR) + { + Vector2 thickAnchors[SPLINE_THICK_COUNT] = { 0 }; + Vector2 thickPoints[SPLINE_THICK_COUNT] = { 0 }; + + // Draw spline thickness helpers + for (int i = 0; i < pointCount - 1; i++) + { + Vector2 direction = Vector2Normalize(GetSplineVelocityLinear(points[i], points[i + 1])); + Vector2 perpendicular = (Vector2){ direction.y, -direction.x }; + + for (int j = 0; j < SPLINE_THICK_COUNT; j++) + { + Vector2 point = GetSplinePointLinear(points[i], points[i + 1], j/3.0f); + thickAnchors[j] = point; + thickPoints[j] = Vector2Add(point, Vector2Scale(perpendicular, thicks[j])); + } + + DrawLineV(thickPoints[0], thickPoints[1], GRAY); + DrawLineV(thickPoints[3], thickPoints[2], GRAY); + + for (int j = 0; j < SPLINE_THICK_COUNT; j++) + { + DrawCircleLinesV(thickPoints[j], 4.0f, PURPLE); + DrawLineV(Vector2Add(thickAnchors[j], Vector2Scale(perpendicular, 4.0f)), Vector2Subtract(thickAnchors[j], Vector2Scale(perpendicular, 4.0f)), GRAY); + } + + DrawLineV(points[i], points[i + 1], BROWN); + DrawSplineBezierCubic(thickPoints, SPLINE_THICK_COUNT, 1.0f, ORANGE); + } + } } // Check all possible UI states that require controls lock if (splineTypeEditMode || (selectedPoint != -1) || (selectedControlPoint != NULL)) GuiLock(); // Draw spline config - GuiLabel((Rectangle){ 12, 62, 140, 24 }, TextFormat("Spline thickness: %i", (int)splineThickness)); - GuiSliderBar((Rectangle){ 12, 60 + 24, 140, 16 }, NULL, NULL, &splineThickness, 1.0f, 40.0f); + if ((splineTypeActive == SPLINE_LINEAR_VAR) || (splineTypeActive == SPLINE_BEZIER_VAR)) + { + GuiLabel((Rectangle){ 12, 68 + 24, 200, 24 }, TextFormat("Spline thickness: %i, %i, %i, %i", (int)thicks[0], (int)thicks[1], (int)thicks[2], (int)thicks[3])); + GuiSlider((Rectangle){ 12, 68 + 24 + 30, 140, 16 }, NULL, NULL, &thicks[0], -40.0, 40.0f); + GuiSlider((Rectangle){ 12, 68 + 24 + 50, 140, 16 }, NULL, NULL, &thicks[1], -40.0, 40.0f); + GuiSlider((Rectangle){ 12, 68 + 24 + 70, 140, 16 }, NULL, NULL, &thicks[2], -40.0, 40.0f); + GuiSlider((Rectangle){ 12, 68 + 24 + 90, 140, 16 }, NULL, NULL, &thicks[3], -40.0, 40.0f); + } + else + { + GuiLabel((Rectangle){ 12, 68 + 24, 140, 24 }, TextFormat("Spline thickness: %i", (int)splineThickness)); + GuiSliderBar((Rectangle){ 12, 68 + 48, 140, 16 }, NULL, NULL, &splineThickness, 1.0f, 40.0f); + } - GuiCheckBox((Rectangle){ 12, 110, 20, 20 }, "Show point helpers", &splineHelpersActive); + GuiCheckBox((Rectangle){ 12, 68, 20, 20 }, "Show point helpers", &splineHelpersActive); if (splineTypeEditMode) GuiUnlock(); From ddf3bc9d2aca338c64e2aa679d23b402e994bd3a Mon Sep 17 00:00:00 2001 From: Amy Wilder Date: Sun, 3 Aug 2025 12:46:41 -0400 Subject: [PATCH 13/16] Add inverse point functions --- src/raylib.h | 4 ++++ src/rshapes.c | 24 ++++++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/src/raylib.h b/src/raylib.h index 8473fd5fe709..d588084cb82d 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1310,6 +1310,10 @@ RLAPI Vector2 GetSplinePointCatmullRom(Vector2 p1, Vector2 p2, Vector2 p3, Vecto RLAPI Vector2 GetSplinePointBezierQuad(Vector2 p1, Vector2 c2, Vector2 p3, float t); // Get (evaluate) spline point: Quadratic Bezier RLAPI Vector2 GetSplinePointBezierCubic(Vector2 p1, Vector2 c2, Vector2 c3, Vector2 p4, float t); // Get (evaluate) spline point: Cubic Bezier +// Spline inverse point functions, for evenly-spaced points on the curve +RLAPI void GetSplineControlBezierQuad(Vector2 startPos, Vector2 midPos, Vector2 endPos, Vector2 *controlPos); // Get (evaluate) spline control point: Quadratic Bezier +RLAPI void GetSplineControlBezierCubic(Vector2 startPos, Vector2 oneThirdsPos, Vector2 twoThirdsPos, Vector2 endPos, Vector2 *startControlPos, Vector2 *endControlPos); // Get (evaluate) spline control points: Cubic Bezier + // Spline segment slope evaluation functions, for a given t [0.0f .. 1.0f] RLAPI Vector2 GetSplineVelocityLinear(Vector2 startPos, Vector2 endPos); // Get (evaluate) spline velocity: Linear RLAPI Vector2 GetSplineVelocityBezierQuad(Vector2 startPos, Vector2 controlPos, Vector2 endPos, float t); // Get (evaluate) spline velocity: Quadratic Bezier diff --git a/src/rshapes.c b/src/rshapes.c index 8674917df586..976a2c69a189 100644 --- a/src/rshapes.c +++ b/src/rshapes.c @@ -2358,6 +2358,14 @@ Vector2 GetSplinePointBezierQuad(Vector2 startPos, Vector2 controlPos, Vector2 e return point; } +// Get spline control point given evenly-spaced points on that curve, Quadratic Bezier +// NOTE: Assumes startPos has 0 entry velocity and endPos has 0 exit velocity +void GetSplineControlBezierQuad(Vector2 startPos, Vector2 midPos, Vector2 endPos, Vector2 *controlPos) +{ + controlPos->y = 2.0f*midPos.y - 0.5f*(startPos.y + endPos.y); + controlPos->x = 2.0f*midPos.x - 0.5f*(startPos.x + endPos.x); +} + // Get spline point for a given t [0.0f .. 1.0f], Cubic Bezier Vector2 GetSplinePointBezierCubic(Vector2 startPos, Vector2 startControlPos, Vector2 endControlPos, Vector2 endPos, float t) { @@ -2374,6 +2382,22 @@ Vector2 GetSplinePointBezierCubic(Vector2 startPos, Vector2 startControlPos, Vec return point; } +// Get spline control points given evenly-spaced points on that curve, Cubic Bezier +// NOTE: Assumes startPos has 0 entry velocity and endPos has 0 exit velocity +void GetSplineControlBezierCubic(Vector2 startPos, Vector2 oneThirdsPos, Vector2 twoThirdsPos, Vector2 endPos, Vector2 *startControlPos, Vector2 *endControlPos) +{ + const float a = -5.0f/6.0f; + const float b = 3.0f; + const float c = -3.0f/2.0f; + const float d = 1.0f/3.0f; + + startControlPos->x = a*startPos.x + b*oneThirdsPos.x + c*twoThirdsPos.x + d*endPos.x; + startControlPos->y = a*startPos.y + b*oneThirdsPos.y + c*twoThirdsPos.y + d*endPos.y; + + endControlPos->x = a*endPos.x + b*twoThirdsPos.x + c*oneThirdsPos.x + d*startPos.x; + endControlPos->y = a*endPos.y + b*twoThirdsPos.y + c*oneThirdsPos.y + d*startPos.y; +} + // Get spline direction and speed, Linear Bezier // // Normalize to get the "forward" direction of the curve From 43293432011b1baa284739c061ce68bd0a2269bb Mon Sep 17 00:00:00 2001 From: Amy Wilder Date: Sun, 3 Aug 2025 13:17:13 -0400 Subject: [PATCH 14/16] Make thickness controls draggable --- examples/shapes/shapes_splines_drawing.c | 73 +++++++++++++++++++----- 1 file changed, 58 insertions(+), 15 deletions(-) diff --git a/examples/shapes/shapes_splines_drawing.c b/examples/shapes/shapes_splines_drawing.c index 51fd7ec45748..5be8571063e6 100644 --- a/examples/shapes/shapes_splines_drawing.c +++ b/examples/shapes/shapes_splines_drawing.c @@ -76,6 +76,8 @@ int main(void) int pointCount = 5; int selectedPoint = -1; int focusedPoint = -1; + int selectedThickPoint = -1; + int focusedThickPoint = -1; Vector2 *selectedControlPoint = NULL; Vector2 *focusedControlPoint = NULL; @@ -164,6 +166,44 @@ int main(void) } } + // Variable thickness control points logic + if ((splineTypeActive == SPLINE_LINEAR_VAR) && focusedPoint == -1) + { + // Spline thickness control point focus and selection logic + if (selectedThickPoint == -1) + { + focusedThickPoint = -1; + for (int i = 0; i < pointCount - 1; i++) + { + Vector2 direction = Vector2Normalize(GetSplineVelocityLinear(points[i], points[i + 1])); + Vector2 perpendicular = (Vector2){ direction.y, -direction.x }; + + for (int j = 0; j < SPLINE_THICK_COUNT; j++) + { + Vector2 point = Vector2Add(GetSplinePointLinear(points[i], points[i + 1], (float)j/(SPLINE_THICK_COUNT - 1)), Vector2Scale(perpendicular, thicks[j])); + if (CheckCollisionPointCircle(GetMousePosition(), point, 4.0f)) { + focusedThickPoint = i*SPLINE_THICK_COUNT + j; + break; + } + } + } + if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) selectedThickPoint = focusedThickPoint; + } + + if (selectedThickPoint >= 0) + { + int i = selectedThickPoint/SPLINE_THICK_COUNT; + int j = selectedThickPoint%SPLINE_THICK_COUNT; + Vector2 direction = Vector2Normalize(GetSplineVelocityLinear(points[i], points[i + 1])); + Vector2 perpendicular = (Vector2){ direction.y, -direction.x }; + + thicks[j] = Vector2DotProduct(perpendicular, Vector2Subtract(GetMousePosition(), points[i])); + if (thicks[j] > 40.0f) thicks[j] = 40.0f; + if (thicks[j] < -40.0f) thicks[j] = -40.0f; + if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) selectedThickPoint = -1; + } + } + // Spline selection logic if (IsKeyPressed(KEY_ONE)) splineTypeActive = SPLINE_LINEAR; else if (IsKeyPressed(KEY_TWO)) splineTypeActive = SPLINE_BASIS; @@ -300,41 +340,44 @@ int main(void) DrawText(TextFormat("[%.0f, %.0f]", points[i].x, points[i].y), (int)points[i].x, (int)points[i].y + 10, 10, BLACK); } + // Draw spline thickness helpers if (splineTypeActive == SPLINE_LINEAR_VAR) { - Vector2 thickAnchors[SPLINE_THICK_COUNT] = { 0 }; Vector2 thickPoints[SPLINE_THICK_COUNT] = { 0 }; - // Draw spline thickness helpers for (int i = 0; i < pointCount - 1; i++) { Vector2 direction = Vector2Normalize(GetSplineVelocityLinear(points[i], points[i + 1])); Vector2 perpendicular = (Vector2){ direction.y, -direction.x }; + DrawLineV(points[i], points[i + 1], BROWN); for (int j = 0; j < SPLINE_THICK_COUNT; j++) { - Vector2 point = GetSplinePointLinear(points[i], points[i + 1], j/3.0f); - thickAnchors[j] = point; - thickPoints[j] = Vector2Add(point, Vector2Scale(perpendicular, thicks[j])); + Vector2 anchor = GetSplinePointLinear(points[i], points[i + 1], (float)j/(SPLINE_THICK_COUNT - 1)); + thickPoints[j] = Vector2Add(anchor, Vector2Scale(perpendicular, thicks[j])); + DrawLineV( + Vector2Add(anchor, Vector2Scale(perpendicular, 4.0f)), + Vector2Subtract(anchor, Vector2Scale(perpendicular, 4.0f)), + GRAY); + DrawCircleLinesV(thickPoints[j], (((focusedThickPoint % SPLINE_THICK_COUNT) == j)? 6.0f : 4.0f), (((focusedThickPoint % SPLINE_THICK_COUNT) == j)? VIOLET : PURPLE)); } + DrawSplineBezierCubic(thickPoints, SPLINE_THICK_COUNT, 1.0f, ORANGE); DrawLineV(thickPoints[0], thickPoints[1], GRAY); DrawLineV(thickPoints[3], thickPoints[2], GRAY); - - for (int j = 0; j < SPLINE_THICK_COUNT; j++) - { - DrawCircleLinesV(thickPoints[j], 4.0f, PURPLE); - DrawLineV(Vector2Add(thickAnchors[j], Vector2Scale(perpendicular, 4.0f)), Vector2Subtract(thickAnchors[j], Vector2Scale(perpendicular, 4.0f)), GRAY); - } - - DrawLineV(points[i], points[i + 1], BROWN); - DrawSplineBezierCubic(thickPoints, SPLINE_THICK_COUNT, 1.0f, ORANGE); } } + else if (splineTypeActive == SPLINE_BEZIER_VAR) + { + // I tried and this isn't possible. + // A variable-thickness Bezier curve can potentially have more detail than can + // be expressed with another Bezier curve of the same degree. + // Example: https://www.desmos.com/calculator/qh31vr4rbf + } } // Check all possible UI states that require controls lock - if (splineTypeEditMode || (selectedPoint != -1) || (selectedControlPoint != NULL)) GuiLock(); + if (splineTypeEditMode || (selectedPoint != -1) || (selectedThickPoint != -1) || (selectedControlPoint != NULL)) GuiLock(); // Draw spline config if ((splineTypeActive == SPLINE_LINEAR_VAR) || (splineTypeActive == SPLINE_BEZIER_VAR)) From 7a4a725d856c2cfe2142e6652c9f1eb94b2e95d6 Mon Sep 17 00:00:00 2001 From: Amy Wilder Date: Sun, 3 Aug 2025 14:03:56 -0400 Subject: [PATCH 15/16] Make thickness controls draggable on SPLINE_BEZIER_VAR --- examples/shapes/shapes_splines_drawing.c | 209 ++++++++++++++--------- 1 file changed, 129 insertions(+), 80 deletions(-) diff --git a/examples/shapes/shapes_splines_drawing.c b/examples/shapes/shapes_splines_drawing.c index 5be8571063e6..f311017a00db 100644 --- a/examples/shapes/shapes_splines_drawing.c +++ b/examples/shapes/shapes_splines_drawing.c @@ -113,10 +113,79 @@ int main(void) pointCount++; } + focusedPoint = selectedPoint; + focusedThickPoint = selectedThickPoint; + focusedControlPoint = selectedControlPoint; + + // Variable thickness control points logic (thickness controls are smaller so they have higher priority) + if ((selectedThickPoint == -1) && (selectedPoint == -1) && (selectedControlPoint == NULL)) + { + if (splineTypeActive == SPLINE_LINEAR_VAR) + { + for (int i = 0; i < pointCount - 1; i++) + { + Vector2 direction = Vector2Normalize(GetSplineVelocityLinear(points[i], points[i + 1])); + Vector2 perpendicular = (Vector2){ direction.y, -direction.x }; + + for (int j = 0; j < SPLINE_THICK_COUNT; j++) + { + float t = (float)j/(SPLINE_THICK_COUNT - 1); + Vector2 point = Vector2Add(GetSplinePointLinear(points[i], points[i + 1], t), Vector2Scale(perpendicular, thicks[j])); + if (CheckCollisionPointCircle(GetMousePosition(), point, 4.0f)) { + focusedThickPoint = i*SPLINE_THICK_COUNT + j; + break; + } + } + } + } + else if (splineTypeActive == SPLINE_BEZIER_VAR) + { + for (int i = 0; i < pointCount - 1; i++) + { + for (int j = 0; j < SPLINE_THICK_COUNT; j++) + { + float t = (float)j/(SPLINE_THICK_COUNT - 1); + Vector2 direction = Vector2Normalize(GetSplineVelocityBezierCubic(points[i], control[i].start, control[i].end, points[i + 1], t)); + Vector2 perpendicular = (Vector2){ direction.y, -direction.x }; + Vector2 point = Vector2Add(GetSplinePointBezierCubic(points[i], control[i].start, control[i].end, points[i + 1], t), Vector2Scale(perpendicular, thicks[j])); + if (CheckCollisionPointCircle(GetMousePosition(), point, 4.0f)) { + focusedThickPoint = i*SPLINE_THICK_COUNT + j; + break; + } + } + } + } + if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) selectedThickPoint = focusedThickPoint; + } + + // Spline thickness movement logic + if (selectedThickPoint >= 0) + { + int i = selectedThickPoint/SPLINE_THICK_COUNT; + int j = selectedThickPoint%SPLINE_THICK_COUNT; + if (splineTypeActive == SPLINE_LINEAR_VAR) + { + Vector2 direction = Vector2Normalize(GetSplineVelocityLinear(points[i], points[i + 1])); + Vector2 perpendicular = (Vector2){ direction.y, -direction.x }; + + thicks[j] = Vector2DotProduct(perpendicular, Vector2Subtract(GetMousePosition(), points[i])); + } + else if (splineTypeActive == SPLINE_BEZIER_VAR) + { + float t = (float)j/(SPLINE_THICK_COUNT - 1); + Vector2 direction = Vector2Normalize(GetSplineVelocityBezierCubic(points[i], control[i].start, control[i].end, points[i + 1], t)); + Vector2 perpendicular = (Vector2){ direction.y, -direction.x }; + + thicks[j] = Vector2DotProduct(perpendicular, Vector2Subtract(GetMousePosition(), GetSplinePointBezierCubic(points[i], control[i].start, control[i].end, points[i + 1], t))); + } + if (thicks[j] > 40.0f) thicks[j] = 40.0f; + if (thicks[j] < -40.0f) thicks[j] = -40.0f; + if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) selectedThickPoint = -1; + } + // Spline point focus and selection logic - if ((selectedPoint == -1) && ((splineTypeActive != SPLINE_BEZIER) || (selectedControlPoint == NULL))) + if ((selectedPoint == -1) && (focusedThickPoint == -1) && (((splineTypeActive != SPLINE_BEZIER) && (splineTypeActive != SPLINE_BEZIER_VAR)) || (selectedControlPoint == NULL))) { - focusedPoint = -1; for (int i = 0; i < pointCount; i++) { if (CheckCollisionPointCircle(GetMousePosition(), points[i], 8.0f)) @@ -132,76 +201,41 @@ int main(void) if (selectedPoint >= 0) { points[selectedPoint] = GetMousePosition(); + if (points[selectedPoint].x < 0.0f) points[selectedPoint].x = 0.0f; + if (points[selectedPoint].x > screenWidth) points[selectedPoint].x = screenWidth; + if (points[selectedPoint].y < 0.0f) points[selectedPoint].y = 0.0f; + if (points[selectedPoint].y > screenHeight) points[selectedPoint].y = screenHeight; if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) selectedPoint = -1; } // Cubic Bezier spline control points logic - if (((splineTypeActive == SPLINE_BEZIER) || (splineTypeActive == SPLINE_BEZIER_VAR)) && (focusedPoint == -1)) + if (((splineTypeActive == SPLINE_BEZIER) || (splineTypeActive == SPLINE_BEZIER_VAR)) && (selectedControlPoint == NULL) && (focusedPoint == -1) && (selectedThickPoint == -1)) { - // Spline control point focus and selection logic - if (selectedControlPoint == NULL) + for (int i = 0; i < pointCount - 1; i++) { - focusedControlPoint = NULL; - for (int i = 0; i < pointCount - 1; i++) + if (CheckCollisionPointCircle(GetMousePosition(), control[i].start, 6.0f)) { - if (CheckCollisionPointCircle(GetMousePosition(), control[i].start, 6.0f)) - { - focusedControlPoint = &control[i].start; - break; - } - else if (CheckCollisionPointCircle(GetMousePosition(), control[i].end, 6.0f)) - { - focusedControlPoint = &control[i].end; - break; - } + focusedControlPoint = &control[i].start; + break; } - if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) selectedControlPoint = focusedControlPoint; - } - - // Spline control point movement logic - if (selectedControlPoint != NULL) - { - *selectedControlPoint = GetMousePosition(); - if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) selectedControlPoint = NULL; - } - } - - // Variable thickness control points logic - if ((splineTypeActive == SPLINE_LINEAR_VAR) && focusedPoint == -1) - { - // Spline thickness control point focus and selection logic - if (selectedThickPoint == -1) - { - focusedThickPoint = -1; - for (int i = 0; i < pointCount - 1; i++) + else if (CheckCollisionPointCircle(GetMousePosition(), control[i].end, 6.0f)) { - Vector2 direction = Vector2Normalize(GetSplineVelocityLinear(points[i], points[i + 1])); - Vector2 perpendicular = (Vector2){ direction.y, -direction.x }; - - for (int j = 0; j < SPLINE_THICK_COUNT; j++) - { - Vector2 point = Vector2Add(GetSplinePointLinear(points[i], points[i + 1], (float)j/(SPLINE_THICK_COUNT - 1)), Vector2Scale(perpendicular, thicks[j])); - if (CheckCollisionPointCircle(GetMousePosition(), point, 4.0f)) { - focusedThickPoint = i*SPLINE_THICK_COUNT + j; - break; - } - } + focusedControlPoint = &control[i].end; + break; } - if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) selectedThickPoint = focusedThickPoint; } + if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) selectedControlPoint = focusedControlPoint; + } - if (selectedThickPoint >= 0) - { - int i = selectedThickPoint/SPLINE_THICK_COUNT; - int j = selectedThickPoint%SPLINE_THICK_COUNT; - Vector2 direction = Vector2Normalize(GetSplineVelocityLinear(points[i], points[i + 1])); - Vector2 perpendicular = (Vector2){ direction.y, -direction.x }; - - thicks[j] = Vector2DotProduct(perpendicular, Vector2Subtract(GetMousePosition(), points[i])); - if (thicks[j] > 40.0f) thicks[j] = 40.0f; - if (thicks[j] < -40.0f) thicks[j] = -40.0f; - if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) selectedThickPoint = -1; - } + // Spline control point movement logic + if (selectedControlPoint != NULL) + { + *selectedControlPoint = GetMousePosition(); + if (selectedControlPoint->x < 0.0f) selectedControlPoint->x = 0.0f; + if (selectedControlPoint->x > screenWidth) selectedControlPoint->x = screenWidth; + if (selectedControlPoint->y < 0.0f) selectedControlPoint->y = 0.0f; + if (selectedControlPoint->y > screenHeight) selectedControlPoint->y = screenHeight; + if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) selectedControlPoint = NULL; } // Spline selection logic @@ -212,8 +246,11 @@ int main(void) else if (IsKeyPressed(KEY_FIVE)) splineTypeActive = SPLINE_LINEAR_VAR; else if (IsKeyPressed(KEY_SIX)) splineTypeActive = SPLINE_BEZIER_VAR; - // Clear selection when changing to a spline without control points - if (IsKeyPressed(KEY_ONE) || IsKeyPressed(KEY_TWO) || IsKeyPressed(KEY_THREE)) selectedControlPoint = NULL; + // Clear control point selection when changing to a spline without control points + if ((splineTypeActive != SPLINE_BEZIER) && (splineTypeActive != SPLINE_BEZIER_VAR)) selectedControlPoint = NULL; + + // Clear thickness selection when changing splines + if (IsKeyPressed(KEY_ONE) || IsKeyPressed(KEY_TWO) || IsKeyPressed(KEY_THREE) || IsKeyPressed(KEY_FOUR) || IsKeyPressed(KEY_FIVE) || IsKeyPressed(KEY_SIX)) selectedThickPoint = -1; //---------------------------------------------------------------------------------- // Draw @@ -347,32 +384,44 @@ int main(void) for (int i = 0; i < pointCount - 1; i++) { - Vector2 direction = Vector2Normalize(GetSplineVelocityLinear(points[i], points[i + 1])); - Vector2 perpendicular = (Vector2){ direction.y, -direction.x }; DrawLineV(points[i], points[i + 1], BROWN); + Vector2 direction = Vector2Normalize(GetSplineVelocityLinear(points[i], points[i + 1])); + Vector2 perpendicular = (Vector2){ direction.y, -direction.x }; for (int j = 0; j < SPLINE_THICK_COUNT; j++) { - Vector2 anchor = GetSplinePointLinear(points[i], points[i + 1], (float)j/(SPLINE_THICK_COUNT - 1)); + float t = (float)j/(SPLINE_THICK_COUNT - 1); + Vector2 anchor = GetSplinePointLinear(points[i], points[i + 1], t); thickPoints[j] = Vector2Add(anchor, Vector2Scale(perpendicular, thicks[j])); - DrawLineV( - Vector2Add(anchor, Vector2Scale(perpendicular, 4.0f)), - Vector2Subtract(anchor, Vector2Scale(perpendicular, 4.0f)), - GRAY); - DrawCircleLinesV(thickPoints[j], (((focusedThickPoint % SPLINE_THICK_COUNT) == j)? 6.0f : 4.0f), (((focusedThickPoint % SPLINE_THICK_COUNT) == j)? VIOLET : PURPLE)); + DrawLineV(anchor, thickPoints[j], SKYBLUE); + DrawCircleV(thickPoints[j], (((focusedThickPoint%SPLINE_THICK_COUNT) == j)? 6.0f : 4.0f), (((focusedThickPoint%SPLINE_THICK_COUNT) == j)? VIOLET : PURPLE)); } DrawSplineBezierCubic(thickPoints, SPLINE_THICK_COUNT, 1.0f, ORANGE); - DrawLineV(thickPoints[0], thickPoints[1], GRAY); - DrawLineV(thickPoints[3], thickPoints[2], GRAY); } } else if (splineTypeActive == SPLINE_BEZIER_VAR) { - // I tried and this isn't possible. - // A variable-thickness Bezier curve can potentially have more detail than can - // be expressed with another Bezier curve of the same degree. - // Example: https://www.desmos.com/calculator/qh31vr4rbf + for (int i = 0; i < pointCount - 1; i++) + { + DrawSplineSegmentBezierCubic(points[i], control[i].start, control[i].end, points[i + 1], 1.0f, BROWN); + + for (int j = 0; j < SPLINE_THICK_COUNT; j++) + { + float t = (float)j/(SPLINE_THICK_COUNT - 1); + Vector2 direction = Vector2Normalize(GetSplineVelocityBezierCubic(points[i], control[i].start, control[i].end, points[i + 1], t)); + Vector2 perpendicular = (Vector2){ direction.y, -direction.x }; + Vector2 anchor = GetSplinePointBezierCubic(points[i], control[i].start, control[i].end, points[i + 1], t); + Vector2 thickPoint = Vector2Add(anchor, Vector2Scale(perpendicular, thicks[j])); + DrawLineV(anchor, thickPoint, SKYBLUE); + DrawCircleV(thickPoint, (((focusedThickPoint%SPLINE_THICK_COUNT) == j)? 6.0f : 4.0f), (((focusedThickPoint%SPLINE_THICK_COUNT) == j)? VIOLET : PURPLE)); + } + + // I tried: outlining the thickness isn't possible. + // A variable-thickness Bezier curve can potentially have more detail than can + // be expressed with another Bezier curve of the same degree. + // Example: https://www.desmos.com/calculator/qh31vr4rbf + } } } @@ -383,10 +432,10 @@ int main(void) if ((splineTypeActive == SPLINE_LINEAR_VAR) || (splineTypeActive == SPLINE_BEZIER_VAR)) { GuiLabel((Rectangle){ 12, 68 + 24, 200, 24 }, TextFormat("Spline thickness: %i, %i, %i, %i", (int)thicks[0], (int)thicks[1], (int)thicks[2], (int)thicks[3])); - GuiSlider((Rectangle){ 12, 68 + 24 + 30, 140, 16 }, NULL, NULL, &thicks[0], -40.0, 40.0f); - GuiSlider((Rectangle){ 12, 68 + 24 + 50, 140, 16 }, NULL, NULL, &thicks[1], -40.0, 40.0f); - GuiSlider((Rectangle){ 12, 68 + 24 + 70, 140, 16 }, NULL, NULL, &thicks[2], -40.0, 40.0f); - GuiSlider((Rectangle){ 12, 68 + 24 + 90, 140, 16 }, NULL, NULL, &thicks[3], -40.0, 40.0f); + GuiSlider((Rectangle){ 12, 68 + 48, 140, 16 }, NULL, NULL, &thicks[0], -40.0, 40.0f); + GuiSlider((Rectangle){ 12, 68 + 48 + 20, 140, 16 }, NULL, NULL, &thicks[1], -40.0, 40.0f); + GuiSlider((Rectangle){ 12, 68 + 48 + 40, 140, 16 }, NULL, NULL, &thicks[2], -40.0, 40.0f); + GuiSlider((Rectangle){ 12, 68 + 48 + 60, 140, 16 }, NULL, NULL, &thicks[3], -40.0, 40.0f); } else { From 67e3ef0b05e8504654531734b821490952a7df6f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 3 Aug 2025 18:04:19 +0000 Subject: [PATCH 16/16] Update raylib_api.* by CI --- parser/output/raylib_api.json | 54 +++ parser/output/raylib_api.lua | 24 ++ parser/output/raylib_api.txt | 678 +++++++++++++++++----------------- parser/output/raylib_api.xml | 16 +- 4 files changed, 441 insertions(+), 331 deletions(-) diff --git a/parser/output/raylib_api.json b/parser/output/raylib_api.json index cac77ee8274d..8fdc47d6f5e1 100644 --- a/parser/output/raylib_api.json +++ b/parser/output/raylib_api.json @@ -6749,6 +6749,60 @@ } ] }, + { + "name": "GetSplineControlBezierQuad", + "description": "Get (evaluate) spline control point: Quadratic Bezier", + "returnType": "void", + "params": [ + { + "type": "Vector2", + "name": "startPos" + }, + { + "type": "Vector2", + "name": "midPos" + }, + { + "type": "Vector2", + "name": "endPos" + }, + { + "type": "Vector2 *", + "name": "controlPos" + } + ] + }, + { + "name": "GetSplineControlBezierCubic", + "description": "Get (evaluate) spline control points: Cubic Bezier", + "returnType": "void", + "params": [ + { + "type": "Vector2", + "name": "startPos" + }, + { + "type": "Vector2", + "name": "oneThirdsPos" + }, + { + "type": "Vector2", + "name": "twoThirdsPos" + }, + { + "type": "Vector2", + "name": "endPos" + }, + { + "type": "Vector2 *", + "name": "startControlPos" + }, + { + "type": "Vector2 *", + "name": "endControlPos" + } + ] + }, { "name": "GetSplineVelocityLinear", "description": "Get (evaluate) spline velocity: Linear", diff --git a/parser/output/raylib_api.lua b/parser/output/raylib_api.lua index 900011f2265c..519f36d5b6ba 100644 --- a/parser/output/raylib_api.lua +++ b/parser/output/raylib_api.lua @@ -5315,6 +5315,30 @@ return { {type = "float", name = "t"} } }, + { + name = "GetSplineControlBezierQuad", + description = "Get (evaluate) spline control point: Quadratic Bezier", + returnType = "void", + params = { + {type = "Vector2", name = "startPos"}, + {type = "Vector2", name = "midPos"}, + {type = "Vector2", name = "endPos"}, + {type = "Vector2 *", name = "controlPos"} + } + }, + { + name = "GetSplineControlBezierCubic", + description = "Get (evaluate) spline control points: Cubic Bezier", + returnType = "void", + params = { + {type = "Vector2", name = "startPos"}, + {type = "Vector2", name = "oneThirdsPos"}, + {type = "Vector2", name = "twoThirdsPos"}, + {type = "Vector2", name = "endPos"}, + {type = "Vector2 *", name = "startControlPos"}, + {type = "Vector2 *", name = "endControlPos"} + } + }, { name = "GetSplineVelocityLinear", description = "Get (evaluate) spline velocity: Linear", diff --git a/parser/output/raylib_api.txt b/parser/output/raylib_api.txt index 80ec106dced0..8bcfd0897ac1 100644 --- a/parser/output/raylib_api.txt +++ b/parser/output/raylib_api.txt @@ -993,7 +993,7 @@ Callback 006: AudioCallback() (2 input parameters) Param[1]: bufferData (type: void *) Param[2]: frames (type: unsigned int) -Functions found: 597 +Functions found: 599 Function 001: InitWindow() (3 input parameters) Name: InitWindow @@ -2606,13 +2606,31 @@ Function 268: GetSplinePointBezierCubic() (5 input parameters) Param[3]: c3 (type: Vector2) Param[4]: p4 (type: Vector2) Param[5]: t (type: float) -Function 269: GetSplineVelocityLinear() (2 input parameters) +Function 269: GetSplineControlBezierQuad() (4 input parameters) + Name: GetSplineControlBezierQuad + Return type: void + Description: Get (evaluate) spline control point: Quadratic Bezier + Param[1]: startPos (type: Vector2) + Param[2]: midPos (type: Vector2) + Param[3]: endPos (type: Vector2) + Param[4]: controlPos (type: Vector2 *) +Function 270: GetSplineControlBezierCubic() (6 input parameters) + Name: GetSplineControlBezierCubic + Return type: void + Description: Get (evaluate) spline control points: Cubic Bezier + Param[1]: startPos (type: Vector2) + Param[2]: oneThirdsPos (type: Vector2) + Param[3]: twoThirdsPos (type: Vector2) + Param[4]: endPos (type: Vector2) + Param[5]: startControlPos (type: Vector2 *) + Param[6]: endControlPos (type: Vector2 *) +Function 271: GetSplineVelocityLinear() (2 input parameters) Name: GetSplineVelocityLinear Return type: Vector2 Description: Get (evaluate) spline velocity: Linear Param[1]: startPos (type: Vector2) Param[2]: endPos (type: Vector2) -Function 270: GetSplineVelocityBezierQuad() (4 input parameters) +Function 272: GetSplineVelocityBezierQuad() (4 input parameters) Name: GetSplineVelocityBezierQuad Return type: Vector2 Description: Get (evaluate) spline velocity: Quadratic Bezier @@ -2620,7 +2638,7 @@ Function 270: GetSplineVelocityBezierQuad() (4 input parameters) Param[2]: controlPos (type: Vector2) Param[3]: endPos (type: Vector2) Param[4]: t (type: float) -Function 271: GetSplineVelocityBezierCubic() (5 input parameters) +Function 273: GetSplineVelocityBezierCubic() (5 input parameters) Name: GetSplineVelocityBezierCubic Return type: Vector2 Description: Get (evaluate) spline velocity: Cubic Bezier @@ -2629,14 +2647,14 @@ Function 271: GetSplineVelocityBezierCubic() (5 input parameters) Param[3]: endControlPos (type: Vector2) Param[4]: endPos (type: Vector2) Param[5]: t (type: float) -Function 272: GetSplineAccelerationBezierQuad() (3 input parameters) +Function 274: GetSplineAccelerationBezierQuad() (3 input parameters) Name: GetSplineAccelerationBezierQuad Return type: Vector2 Description: Get (evaluate) spline acceleration: Quadratic Bezier Param[1]: startPos (type: Vector2) Param[2]: controlPos (type: Vector2) Param[3]: endPos (type: Vector2) -Function 273: GetSplineAccelerationBezierCubic() (5 input parameters) +Function 275: GetSplineAccelerationBezierCubic() (5 input parameters) Name: GetSplineAccelerationBezierCubic Return type: Vector2 Description: Get (evaluate) spline acceleration: Cubic Bezier @@ -2645,7 +2663,7 @@ Function 273: GetSplineAccelerationBezierCubic() (5 input parameters) Param[3]: endControlPos (type: Vector2) Param[4]: endPos (type: Vector2) Param[5]: t (type: float) -Function 274: GetSplineJoltBezierCubic() (4 input parameters) +Function 276: GetSplineJoltBezierCubic() (4 input parameters) Name: GetSplineJoltBezierCubic Return type: Vector2 Description: Get (evaluate) spline jolt: Cubic Bezier @@ -2653,20 +2671,20 @@ Function 274: GetSplineJoltBezierCubic() (4 input parameters) Param[2]: startControlPos (type: Vector2) Param[3]: endControlPos (type: Vector2) Param[4]: endPos (type: Vector2) -Function 275: GetSplineBoundsBezierLinear() (2 input parameters) +Function 277: GetSplineBoundsBezierLinear() (2 input parameters) Name: GetSplineBoundsBezierLinear Return type: Rectangle Description: Get (evaluate) spline bounds rectangle: Linear Param[1]: startPos (type: Vector2) Param[2]: endPos (type: Vector2) -Function 276: GetSplineBoundsBezierQuad() (3 input parameters) +Function 278: GetSplineBoundsBezierQuad() (3 input parameters) Name: GetSplineBoundsBezierQuad Return type: Rectangle Description: Get (evaluate) spline bounds rectangle: Quadratic Bezier Param[1]: startPos (type: Vector2) Param[2]: controlPos (type: Vector2) Param[3]: endPos (type: Vector2) -Function 277: GetSplineBoundsBezierCubic() (4 input parameters) +Function 279: GetSplineBoundsBezierCubic() (4 input parameters) Name: GetSplineBoundsBezierCubic Return type: Rectangle Description: Get (evaluate) spline bounds rectangle: Cubic Bezier @@ -2674,7 +2692,7 @@ Function 277: GetSplineBoundsBezierCubic() (4 input parameters) Param[2]: startControlPos (type: Vector2) Param[3]: endControlPos (type: Vector2) Param[4]: endPos (type: Vector2) -Function 278: GetSplineCurvatureBezierCubic() (5 input parameters) +Function 280: GetSplineCurvatureBezierCubic() (5 input parameters) Name: GetSplineCurvatureBezierCubic Return type: float Description: Get (evaluate) spline curvature: Cubic Bezier @@ -2683,20 +2701,20 @@ Function 278: GetSplineCurvatureBezierCubic() (5 input parameters) Param[3]: endControlPos (type: Vector2) Param[4]: endPos (type: Vector2) Param[5]: t (type: float) -Function 279: GetSplineNearestTLinear() (3 input parameters) +Function 281: GetSplineNearestTLinear() (3 input parameters) Name: GetSplineNearestTLinear Return type: float Description: Get (evaluate) nearest t value to point: Linear Param[1]: startPos (type: Vector2) Param[2]: endPos (type: Vector2) Param[3]: point (type: Vector2) -Function 280: CheckCollisionRecs() (2 input parameters) +Function 282: CheckCollisionRecs() (2 input parameters) Name: CheckCollisionRecs Return type: bool Description: Check collision between two rectangles Param[1]: rec1 (type: Rectangle) Param[2]: rec2 (type: Rectangle) -Function 281: CheckCollisionCircles() (4 input parameters) +Function 283: CheckCollisionCircles() (4 input parameters) Name: CheckCollisionCircles Return type: bool Description: Check collision between two circles @@ -2704,14 +2722,14 @@ Function 281: CheckCollisionCircles() (4 input parameters) Param[2]: radius1 (type: float) Param[3]: center2 (type: Vector2) Param[4]: radius2 (type: float) -Function 282: CheckCollisionCircleRec() (3 input parameters) +Function 284: CheckCollisionCircleRec() (3 input parameters) Name: CheckCollisionCircleRec Return type: bool Description: Check collision between circle and rectangle Param[1]: center (type: Vector2) Param[2]: radius (type: float) Param[3]: rec (type: Rectangle) -Function 283: CheckCollisionCircleLine() (4 input parameters) +Function 285: CheckCollisionCircleLine() (4 input parameters) Name: CheckCollisionCircleLine Return type: bool Description: Check if circle collides with a line created betweeen two points [p1] and [p2] @@ -2719,20 +2737,20 @@ Function 283: CheckCollisionCircleLine() (4 input parameters) Param[2]: radius (type: float) Param[3]: p1 (type: Vector2) Param[4]: p2 (type: Vector2) -Function 284: CheckCollisionPointRec() (2 input parameters) +Function 286: CheckCollisionPointRec() (2 input parameters) Name: CheckCollisionPointRec Return type: bool Description: Check if point is inside rectangle Param[1]: point (type: Vector2) Param[2]: rec (type: Rectangle) -Function 285: CheckCollisionPointCircle() (3 input parameters) +Function 287: CheckCollisionPointCircle() (3 input parameters) Name: CheckCollisionPointCircle Return type: bool Description: Check if point is inside circle Param[1]: point (type: Vector2) Param[2]: center (type: Vector2) Param[3]: radius (type: float) -Function 286: CheckCollisionPointTriangle() (4 input parameters) +Function 288: CheckCollisionPointTriangle() (4 input parameters) Name: CheckCollisionPointTriangle Return type: bool Description: Check if point is inside a triangle @@ -2740,7 +2758,7 @@ Function 286: CheckCollisionPointTriangle() (4 input parameters) Param[2]: p1 (type: Vector2) Param[3]: p2 (type: Vector2) Param[4]: p3 (type: Vector2) -Function 287: CheckCollisionPointLine() (4 input parameters) +Function 289: CheckCollisionPointLine() (4 input parameters) Name: CheckCollisionPointLine Return type: bool Description: Check if point belongs to line created between two points [p1] and [p2] with defined margin in pixels [threshold] @@ -2748,14 +2766,14 @@ Function 287: CheckCollisionPointLine() (4 input parameters) Param[2]: p1 (type: Vector2) Param[3]: p2 (type: Vector2) Param[4]: threshold (type: int) -Function 288: CheckCollisionPointPoly() (3 input parameters) +Function 290: CheckCollisionPointPoly() (3 input parameters) Name: CheckCollisionPointPoly Return type: bool Description: Check if point is within a polygon described by array of vertices Param[1]: point (type: Vector2) Param[2]: points (type: const Vector2 *) Param[3]: pointCount (type: int) -Function 289: CheckCollisionLines() (5 input parameters) +Function 291: CheckCollisionLines() (5 input parameters) Name: CheckCollisionLines Return type: bool Description: Check the collision between two lines defined by two points each, returns collision point by reference @@ -2764,18 +2782,18 @@ Function 289: CheckCollisionLines() (5 input parameters) Param[3]: startPos2 (type: Vector2) Param[4]: endPos2 (type: Vector2) Param[5]: collisionPoint (type: Vector2 *) -Function 290: GetCollisionRec() (2 input parameters) +Function 292: GetCollisionRec() (2 input parameters) Name: GetCollisionRec Return type: Rectangle Description: Get collision rectangle for two rectangles collision Param[1]: rec1 (type: Rectangle) Param[2]: rec2 (type: Rectangle) -Function 291: LoadImage() (1 input parameters) +Function 293: LoadImage() (1 input parameters) Name: LoadImage Return type: Image Description: Load image from file into CPU memory (RAM) Param[1]: fileName (type: const char *) -Function 292: LoadImageRaw() (5 input parameters) +Function 294: LoadImageRaw() (5 input parameters) Name: LoadImageRaw Return type: Image Description: Load image from RAW file data @@ -2784,13 +2802,13 @@ Function 292: LoadImageRaw() (5 input parameters) Param[3]: height (type: int) Param[4]: format (type: int) Param[5]: headerSize (type: int) -Function 293: LoadImageAnim() (2 input parameters) +Function 295: LoadImageAnim() (2 input parameters) Name: LoadImageAnim Return type: Image Description: Load image sequence from file (frames appended to image.data) Param[1]: fileName (type: const char *) Param[2]: frames (type: int *) -Function 294: LoadImageAnimFromMemory() (4 input parameters) +Function 296: LoadImageAnimFromMemory() (4 input parameters) Name: LoadImageAnimFromMemory Return type: Image Description: Load image sequence from memory buffer @@ -2798,60 +2816,60 @@ Function 294: LoadImageAnimFromMemory() (4 input parameters) Param[2]: fileData (type: const unsigned char *) Param[3]: dataSize (type: int) Param[4]: frames (type: int *) -Function 295: LoadImageFromMemory() (3 input parameters) +Function 297: LoadImageFromMemory() (3 input parameters) Name: LoadImageFromMemory Return type: Image Description: Load image from memory buffer, fileType refers to extension: i.e. '.png' Param[1]: fileType (type: const char *) Param[2]: fileData (type: const unsigned char *) Param[3]: dataSize (type: int) -Function 296: LoadImageFromTexture() (1 input parameters) +Function 298: LoadImageFromTexture() (1 input parameters) Name: LoadImageFromTexture Return type: Image Description: Load image from GPU texture data Param[1]: texture (type: Texture2D) -Function 297: LoadImageFromScreen() (0 input parameters) +Function 299: LoadImageFromScreen() (0 input parameters) Name: LoadImageFromScreen Return type: Image Description: Load image from screen buffer and (screenshot) No input parameters -Function 298: IsImageValid() (1 input parameters) +Function 300: IsImageValid() (1 input parameters) Name: IsImageValid Return type: bool Description: Check if an image is valid (data and parameters) Param[1]: image (type: Image) -Function 299: UnloadImage() (1 input parameters) +Function 301: UnloadImage() (1 input parameters) Name: UnloadImage Return type: void Description: Unload image from CPU memory (RAM) Param[1]: image (type: Image) -Function 300: ExportImage() (2 input parameters) +Function 302: ExportImage() (2 input parameters) Name: ExportImage Return type: bool Description: Export image data to file, returns true on success Param[1]: image (type: Image) Param[2]: fileName (type: const char *) -Function 301: ExportImageToMemory() (3 input parameters) +Function 303: ExportImageToMemory() (3 input parameters) Name: ExportImageToMemory Return type: unsigned char * Description: Export image to memory buffer Param[1]: image (type: Image) Param[2]: fileType (type: const char *) Param[3]: fileSize (type: int *) -Function 302: ExportImageAsCode() (2 input parameters) +Function 304: ExportImageAsCode() (2 input parameters) Name: ExportImageAsCode Return type: bool Description: Export image as code file defining an array of bytes, returns true on success Param[1]: image (type: Image) Param[2]: fileName (type: const char *) -Function 303: GenImageColor() (3 input parameters) +Function 305: GenImageColor() (3 input parameters) Name: GenImageColor Return type: Image Description: Generate image: plain color Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: color (type: Color) -Function 304: GenImageGradientLinear() (5 input parameters) +Function 306: GenImageGradientLinear() (5 input parameters) Name: GenImageGradientLinear Return type: Image Description: Generate image: linear gradient, direction in degrees [0..360], 0=Vertical gradient @@ -2860,7 +2878,7 @@ Function 304: GenImageGradientLinear() (5 input parameters) Param[3]: direction (type: int) Param[4]: start (type: Color) Param[5]: end (type: Color) -Function 305: GenImageGradientRadial() (5 input parameters) +Function 307: GenImageGradientRadial() (5 input parameters) Name: GenImageGradientRadial Return type: Image Description: Generate image: radial gradient @@ -2869,7 +2887,7 @@ Function 305: GenImageGradientRadial() (5 input parameters) Param[3]: density (type: float) Param[4]: inner (type: Color) Param[5]: outer (type: Color) -Function 306: GenImageGradientSquare() (5 input parameters) +Function 308: GenImageGradientSquare() (5 input parameters) Name: GenImageGradientSquare Return type: Image Description: Generate image: square gradient @@ -2878,7 +2896,7 @@ Function 306: GenImageGradientSquare() (5 input parameters) Param[3]: density (type: float) Param[4]: inner (type: Color) Param[5]: outer (type: Color) -Function 307: GenImageChecked() (6 input parameters) +Function 309: GenImageChecked() (6 input parameters) Name: GenImageChecked Return type: Image Description: Generate image: checked @@ -2888,14 +2906,14 @@ Function 307: GenImageChecked() (6 input parameters) Param[4]: checksY (type: int) Param[5]: col1 (type: Color) Param[6]: col2 (type: Color) -Function 308: GenImageWhiteNoise() (3 input parameters) +Function 310: GenImageWhiteNoise() (3 input parameters) Name: GenImageWhiteNoise Return type: Image Description: Generate image: white noise Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: factor (type: float) -Function 309: GenImagePerlinNoise() (5 input parameters) +Function 311: GenImagePerlinNoise() (5 input parameters) Name: GenImagePerlinNoise Return type: Image Description: Generate image: perlin noise @@ -2904,45 +2922,45 @@ Function 309: GenImagePerlinNoise() (5 input parameters) Param[3]: offsetX (type: int) Param[4]: offsetY (type: int) Param[5]: scale (type: float) -Function 310: GenImageCellular() (3 input parameters) +Function 312: GenImageCellular() (3 input parameters) Name: GenImageCellular Return type: Image Description: Generate image: cellular algorithm, bigger tileSize means bigger cells Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: tileSize (type: int) -Function 311: GenImageText() (3 input parameters) +Function 313: GenImageText() (3 input parameters) Name: GenImageText Return type: Image Description: Generate image: grayscale image from text data Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: text (type: const char *) -Function 312: ImageCopy() (1 input parameters) +Function 314: ImageCopy() (1 input parameters) Name: ImageCopy Return type: Image Description: Create an image duplicate (useful for transformations) Param[1]: image (type: Image) -Function 313: ImageFromImage() (2 input parameters) +Function 315: ImageFromImage() (2 input parameters) Name: ImageFromImage Return type: Image Description: Create an image from another image piece Param[1]: image (type: Image) Param[2]: rec (type: Rectangle) -Function 314: ImageFromChannel() (2 input parameters) +Function 316: ImageFromChannel() (2 input parameters) Name: ImageFromChannel Return type: Image Description: Create an image from a selected channel of another image (GRAYSCALE) Param[1]: image (type: Image) Param[2]: selectedChannel (type: int) -Function 315: ImageText() (3 input parameters) +Function 317: ImageText() (3 input parameters) Name: ImageText Return type: Image Description: Create an image from text (default font) Param[1]: text (type: const char *) Param[2]: fontSize (type: int) Param[3]: color (type: Color) -Function 316: ImageTextEx() (5 input parameters) +Function 318: ImageTextEx() (5 input parameters) Name: ImageTextEx Return type: Image Description: Create an image from text (custom sprite font) @@ -2951,76 +2969,76 @@ Function 316: ImageTextEx() (5 input parameters) Param[3]: fontSize (type: float) Param[4]: spacing (type: float) Param[5]: tint (type: Color) -Function 317: ImageFormat() (2 input parameters) +Function 319: ImageFormat() (2 input parameters) Name: ImageFormat Return type: void Description: Convert image data to desired format Param[1]: image (type: Image *) Param[2]: newFormat (type: int) -Function 318: ImageToPOT() (2 input parameters) +Function 320: ImageToPOT() (2 input parameters) Name: ImageToPOT Return type: void Description: Convert image to POT (power-of-two) Param[1]: image (type: Image *) Param[2]: fill (type: Color) -Function 319: ImageCrop() (2 input parameters) +Function 321: ImageCrop() (2 input parameters) Name: ImageCrop Return type: void Description: Crop an image to a defined rectangle Param[1]: image (type: Image *) Param[2]: crop (type: Rectangle) -Function 320: ImageAlphaCrop() (2 input parameters) +Function 322: ImageAlphaCrop() (2 input parameters) Name: ImageAlphaCrop Return type: void Description: Crop image depending on alpha value Param[1]: image (type: Image *) Param[2]: threshold (type: float) -Function 321: ImageAlphaClear() (3 input parameters) +Function 323: ImageAlphaClear() (3 input parameters) Name: ImageAlphaClear Return type: void Description: Clear alpha channel to desired color Param[1]: image (type: Image *) Param[2]: color (type: Color) Param[3]: threshold (type: float) -Function 322: ImageAlphaMask() (2 input parameters) +Function 324: ImageAlphaMask() (2 input parameters) Name: ImageAlphaMask Return type: void Description: Apply alpha mask to image Param[1]: image (type: Image *) Param[2]: alphaMask (type: Image) -Function 323: ImageAlphaPremultiply() (1 input parameters) +Function 325: ImageAlphaPremultiply() (1 input parameters) Name: ImageAlphaPremultiply Return type: void Description: Premultiply alpha channel Param[1]: image (type: Image *) -Function 324: ImageBlurGaussian() (2 input parameters) +Function 326: ImageBlurGaussian() (2 input parameters) Name: ImageBlurGaussian Return type: void Description: Apply Gaussian blur using a box blur approximation Param[1]: image (type: Image *) Param[2]: blurSize (type: int) -Function 325: ImageKernelConvolution() (3 input parameters) +Function 327: ImageKernelConvolution() (3 input parameters) Name: ImageKernelConvolution Return type: void Description: Apply custom square convolution kernel to image Param[1]: image (type: Image *) Param[2]: kernel (type: const float *) Param[3]: kernelSize (type: int) -Function 326: ImageResize() (3 input parameters) +Function 328: ImageResize() (3 input parameters) Name: ImageResize Return type: void Description: Resize image (Bicubic scaling algorithm) Param[1]: image (type: Image *) Param[2]: newWidth (type: int) Param[3]: newHeight (type: int) -Function 327: ImageResizeNN() (3 input parameters) +Function 329: ImageResizeNN() (3 input parameters) Name: ImageResizeNN Return type: void Description: Resize image (Nearest-Neighbor scaling algorithm) Param[1]: image (type: Image *) Param[2]: newWidth (type: int) Param[3]: newHeight (type: int) -Function 328: ImageResizeCanvas() (6 input parameters) +Function 330: ImageResizeCanvas() (6 input parameters) Name: ImageResizeCanvas Return type: void Description: Resize canvas and fill with color @@ -3030,12 +3048,12 @@ Function 328: ImageResizeCanvas() (6 input parameters) Param[4]: offsetX (type: int) Param[5]: offsetY (type: int) Param[6]: fill (type: Color) -Function 329: ImageMipmaps() (1 input parameters) +Function 331: ImageMipmaps() (1 input parameters) Name: ImageMipmaps Return type: void Description: Compute all mipmap levels for a provided image Param[1]: image (type: Image *) -Function 330: ImageDither() (5 input parameters) +Function 332: ImageDither() (5 input parameters) Name: ImageDither Return type: void Description: Dither image data to 16bpp or lower (Floyd-Steinberg dithering) @@ -3044,109 +3062,109 @@ Function 330: ImageDither() (5 input parameters) Param[3]: gBpp (type: int) Param[4]: bBpp (type: int) Param[5]: aBpp (type: int) -Function 331: ImageFlipVertical() (1 input parameters) +Function 333: ImageFlipVertical() (1 input parameters) Name: ImageFlipVertical Return type: void Description: Flip image vertically Param[1]: image (type: Image *) -Function 332: ImageFlipHorizontal() (1 input parameters) +Function 334: ImageFlipHorizontal() (1 input parameters) Name: ImageFlipHorizontal Return type: void Description: Flip image horizontally Param[1]: image (type: Image *) -Function 333: ImageRotate() (2 input parameters) +Function 335: ImageRotate() (2 input parameters) Name: ImageRotate Return type: void Description: Rotate image by input angle in degrees (-359 to 359) Param[1]: image (type: Image *) Param[2]: degrees (type: int) -Function 334: ImageRotateCW() (1 input parameters) +Function 336: ImageRotateCW() (1 input parameters) Name: ImageRotateCW Return type: void Description: Rotate image clockwise 90deg Param[1]: image (type: Image *) -Function 335: ImageRotateCCW() (1 input parameters) +Function 337: ImageRotateCCW() (1 input parameters) Name: ImageRotateCCW Return type: void Description: Rotate image counter-clockwise 90deg Param[1]: image (type: Image *) -Function 336: ImageColorTint() (2 input parameters) +Function 338: ImageColorTint() (2 input parameters) Name: ImageColorTint Return type: void Description: Modify image color: tint Param[1]: image (type: Image *) Param[2]: color (type: Color) -Function 337: ImageColorInvert() (1 input parameters) +Function 339: ImageColorInvert() (1 input parameters) Name: ImageColorInvert Return type: void Description: Modify image color: invert Param[1]: image (type: Image *) -Function 338: ImageColorGrayscale() (1 input parameters) +Function 340: ImageColorGrayscale() (1 input parameters) Name: ImageColorGrayscale Return type: void Description: Modify image color: grayscale Param[1]: image (type: Image *) -Function 339: ImageColorContrast() (2 input parameters) +Function 341: ImageColorContrast() (2 input parameters) Name: ImageColorContrast Return type: void Description: Modify image color: contrast (-100 to 100) Param[1]: image (type: Image *) Param[2]: contrast (type: float) -Function 340: ImageColorBrightness() (2 input parameters) +Function 342: ImageColorBrightness() (2 input parameters) Name: ImageColorBrightness Return type: void Description: Modify image color: brightness (-255 to 255) Param[1]: image (type: Image *) Param[2]: brightness (type: int) -Function 341: ImageColorReplace() (3 input parameters) +Function 343: ImageColorReplace() (3 input parameters) Name: ImageColorReplace Return type: void Description: Modify image color: replace color Param[1]: image (type: Image *) Param[2]: color (type: Color) Param[3]: replace (type: Color) -Function 342: LoadImageColors() (1 input parameters) +Function 344: LoadImageColors() (1 input parameters) Name: LoadImageColors Return type: Color * Description: Load color data from image as a Color array (RGBA - 32bit) Param[1]: image (type: Image) -Function 343: LoadImagePalette() (3 input parameters) +Function 345: LoadImagePalette() (3 input parameters) Name: LoadImagePalette Return type: Color * Description: Load colors palette from image as a Color array (RGBA - 32bit) Param[1]: image (type: Image) Param[2]: maxPaletteSize (type: int) Param[3]: colorCount (type: int *) -Function 344: UnloadImageColors() (1 input parameters) +Function 346: UnloadImageColors() (1 input parameters) Name: UnloadImageColors Return type: void Description: Unload color data loaded with LoadImageColors() Param[1]: colors (type: Color *) -Function 345: UnloadImagePalette() (1 input parameters) +Function 347: UnloadImagePalette() (1 input parameters) Name: UnloadImagePalette Return type: void Description: Unload colors palette loaded with LoadImagePalette() Param[1]: colors (type: Color *) -Function 346: GetImageAlphaBorder() (2 input parameters) +Function 348: GetImageAlphaBorder() (2 input parameters) Name: GetImageAlphaBorder Return type: Rectangle Description: Get image alpha border rectangle Param[1]: image (type: Image) Param[2]: threshold (type: float) -Function 347: GetImageColor() (3 input parameters) +Function 349: GetImageColor() (3 input parameters) Name: GetImageColor Return type: Color Description: Get image pixel color at (x, y) position Param[1]: image (type: Image) Param[2]: x (type: int) Param[3]: y (type: int) -Function 348: ImageClearBackground() (2 input parameters) +Function 350: ImageClearBackground() (2 input parameters) Name: ImageClearBackground Return type: void Description: Clear image background with given color Param[1]: dst (type: Image *) Param[2]: color (type: Color) -Function 349: ImageDrawPixel() (4 input parameters) +Function 351: ImageDrawPixel() (4 input parameters) Name: ImageDrawPixel Return type: void Description: Draw pixel within an image @@ -3154,14 +3172,14 @@ Function 349: ImageDrawPixel() (4 input parameters) Param[2]: posX (type: int) Param[3]: posY (type: int) Param[4]: color (type: Color) -Function 350: ImageDrawPixelV() (3 input parameters) +Function 352: ImageDrawPixelV() (3 input parameters) Name: ImageDrawPixelV Return type: void Description: Draw pixel within an image (Vector version) Param[1]: dst (type: Image *) Param[2]: position (type: Vector2) Param[3]: color (type: Color) -Function 351: ImageDrawLine() (6 input parameters) +Function 353: ImageDrawLine() (6 input parameters) Name: ImageDrawLine Return type: void Description: Draw line within an image @@ -3171,7 +3189,7 @@ Function 351: ImageDrawLine() (6 input parameters) Param[4]: endPosX (type: int) Param[5]: endPosY (type: int) Param[6]: color (type: Color) -Function 352: ImageDrawLineV() (4 input parameters) +Function 354: ImageDrawLineV() (4 input parameters) Name: ImageDrawLineV Return type: void Description: Draw line within an image (Vector version) @@ -3179,7 +3197,7 @@ Function 352: ImageDrawLineV() (4 input parameters) Param[2]: start (type: Vector2) Param[3]: end (type: Vector2) Param[4]: color (type: Color) -Function 353: ImageDrawLineEx() (5 input parameters) +Function 355: ImageDrawLineEx() (5 input parameters) Name: ImageDrawLineEx Return type: void Description: Draw a line defining thickness within an image @@ -3188,7 +3206,7 @@ Function 353: ImageDrawLineEx() (5 input parameters) Param[3]: end (type: Vector2) Param[4]: thick (type: int) Param[5]: color (type: Color) -Function 354: ImageDrawCircle() (5 input parameters) +Function 356: ImageDrawCircle() (5 input parameters) Name: ImageDrawCircle Return type: void Description: Draw a filled circle within an image @@ -3197,7 +3215,7 @@ Function 354: ImageDrawCircle() (5 input parameters) Param[3]: centerY (type: int) Param[4]: radius (type: int) Param[5]: color (type: Color) -Function 355: ImageDrawCircleV() (4 input parameters) +Function 357: ImageDrawCircleV() (4 input parameters) Name: ImageDrawCircleV Return type: void Description: Draw a filled circle within an image (Vector version) @@ -3205,7 +3223,7 @@ Function 355: ImageDrawCircleV() (4 input parameters) Param[2]: center (type: Vector2) Param[3]: radius (type: int) Param[4]: color (type: Color) -Function 356: ImageDrawCircleLines() (5 input parameters) +Function 358: ImageDrawCircleLines() (5 input parameters) Name: ImageDrawCircleLines Return type: void Description: Draw circle outline within an image @@ -3214,7 +3232,7 @@ Function 356: ImageDrawCircleLines() (5 input parameters) Param[3]: centerY (type: int) Param[4]: radius (type: int) Param[5]: color (type: Color) -Function 357: ImageDrawCircleLinesV() (4 input parameters) +Function 359: ImageDrawCircleLinesV() (4 input parameters) Name: ImageDrawCircleLinesV Return type: void Description: Draw circle outline within an image (Vector version) @@ -3222,7 +3240,7 @@ Function 357: ImageDrawCircleLinesV() (4 input parameters) Param[2]: center (type: Vector2) Param[3]: radius (type: int) Param[4]: color (type: Color) -Function 358: ImageDrawRectangle() (6 input parameters) +Function 360: ImageDrawRectangle() (6 input parameters) Name: ImageDrawRectangle Return type: void Description: Draw rectangle within an image @@ -3232,7 +3250,7 @@ Function 358: ImageDrawRectangle() (6 input parameters) Param[4]: width (type: int) Param[5]: height (type: int) Param[6]: color (type: Color) -Function 359: ImageDrawRectangleV() (4 input parameters) +Function 361: ImageDrawRectangleV() (4 input parameters) Name: ImageDrawRectangleV Return type: void Description: Draw rectangle within an image (Vector version) @@ -3240,14 +3258,14 @@ Function 359: ImageDrawRectangleV() (4 input parameters) Param[2]: position (type: Vector2) Param[3]: size (type: Vector2) Param[4]: color (type: Color) -Function 360: ImageDrawRectangleRec() (3 input parameters) +Function 362: ImageDrawRectangleRec() (3 input parameters) Name: ImageDrawRectangleRec Return type: void Description: Draw rectangle within an image Param[1]: dst (type: Image *) Param[2]: rec (type: Rectangle) Param[3]: color (type: Color) -Function 361: ImageDrawRectangleLines() (4 input parameters) +Function 363: ImageDrawRectangleLines() (4 input parameters) Name: ImageDrawRectangleLines Return type: void Description: Draw rectangle lines within an image @@ -3255,7 +3273,7 @@ Function 361: ImageDrawRectangleLines() (4 input parameters) Param[2]: rec (type: Rectangle) Param[3]: thick (type: int) Param[4]: color (type: Color) -Function 362: ImageDrawTriangle() (5 input parameters) +Function 364: ImageDrawTriangle() (5 input parameters) Name: ImageDrawTriangle Return type: void Description: Draw triangle within an image @@ -3264,7 +3282,7 @@ Function 362: ImageDrawTriangle() (5 input parameters) Param[3]: v2 (type: Vector2) Param[4]: v3 (type: Vector2) Param[5]: color (type: Color) -Function 363: ImageDrawTriangleEx() (7 input parameters) +Function 365: ImageDrawTriangleEx() (7 input parameters) Name: ImageDrawTriangleEx Return type: void Description: Draw triangle with interpolated colors within an image @@ -3275,7 +3293,7 @@ Function 363: ImageDrawTriangleEx() (7 input parameters) Param[5]: c1 (type: Color) Param[6]: c2 (type: Color) Param[7]: c3 (type: Color) -Function 364: ImageDrawTriangleLines() (5 input parameters) +Function 366: ImageDrawTriangleLines() (5 input parameters) Name: ImageDrawTriangleLines Return type: void Description: Draw triangle outline within an image @@ -3284,7 +3302,7 @@ Function 364: ImageDrawTriangleLines() (5 input parameters) Param[3]: v2 (type: Vector2) Param[4]: v3 (type: Vector2) Param[5]: color (type: Color) -Function 365: ImageDrawTriangleFan() (4 input parameters) +Function 367: ImageDrawTriangleFan() (4 input parameters) Name: ImageDrawTriangleFan Return type: void Description: Draw a triangle fan defined by points within an image (first vertex is the center) @@ -3292,7 +3310,7 @@ Function 365: ImageDrawTriangleFan() (4 input parameters) Param[2]: points (type: const Vector2 *) Param[3]: pointCount (type: int) Param[4]: color (type: Color) -Function 366: ImageDrawTriangleStrip() (4 input parameters) +Function 368: ImageDrawTriangleStrip() (4 input parameters) Name: ImageDrawTriangleStrip Return type: void Description: Draw a triangle strip defined by points within an image @@ -3300,7 +3318,7 @@ Function 366: ImageDrawTriangleStrip() (4 input parameters) Param[2]: points (type: const Vector2 *) Param[3]: pointCount (type: int) Param[4]: color (type: Color) -Function 367: ImageDraw() (5 input parameters) +Function 369: ImageDraw() (5 input parameters) Name: ImageDraw Return type: void Description: Draw a source image within a destination image (tint applied to source) @@ -3309,7 +3327,7 @@ Function 367: ImageDraw() (5 input parameters) Param[3]: srcRec (type: Rectangle) Param[4]: dstRec (type: Rectangle) Param[5]: tint (type: Color) -Function 368: ImageDrawText() (6 input parameters) +Function 370: ImageDrawText() (6 input parameters) Name: ImageDrawText Return type: void Description: Draw text (using default font) within an image (destination) @@ -3319,7 +3337,7 @@ Function 368: ImageDrawText() (6 input parameters) Param[4]: posY (type: int) Param[5]: fontSize (type: int) Param[6]: color (type: Color) -Function 369: ImageDrawTextEx() (7 input parameters) +Function 371: ImageDrawTextEx() (7 input parameters) Name: ImageDrawTextEx Return type: void Description: Draw text (custom sprite font) within an image (destination) @@ -3330,79 +3348,79 @@ Function 369: ImageDrawTextEx() (7 input parameters) Param[5]: fontSize (type: float) Param[6]: spacing (type: float) Param[7]: tint (type: Color) -Function 370: LoadTexture() (1 input parameters) +Function 372: LoadTexture() (1 input parameters) Name: LoadTexture Return type: Texture2D Description: Load texture from file into GPU memory (VRAM) Param[1]: fileName (type: const char *) -Function 371: LoadTextureFromImage() (1 input parameters) +Function 373: LoadTextureFromImage() (1 input parameters) Name: LoadTextureFromImage Return type: Texture2D Description: Load texture from image data Param[1]: image (type: Image) -Function 372: LoadTextureCubemap() (2 input parameters) +Function 374: LoadTextureCubemap() (2 input parameters) Name: LoadTextureCubemap Return type: TextureCubemap Description: Load cubemap from image, multiple image cubemap layouts supported Param[1]: image (type: Image) Param[2]: layout (type: int) -Function 373: LoadRenderTexture() (2 input parameters) +Function 375: LoadRenderTexture() (2 input parameters) Name: LoadRenderTexture Return type: RenderTexture2D Description: Load texture for rendering (framebuffer) Param[1]: width (type: int) Param[2]: height (type: int) -Function 374: IsTextureValid() (1 input parameters) +Function 376: IsTextureValid() (1 input parameters) Name: IsTextureValid Return type: bool Description: Check if a texture is valid (loaded in GPU) Param[1]: texture (type: Texture2D) -Function 375: UnloadTexture() (1 input parameters) +Function 377: UnloadTexture() (1 input parameters) Name: UnloadTexture Return type: void Description: Unload texture from GPU memory (VRAM) Param[1]: texture (type: Texture2D) -Function 376: IsRenderTextureValid() (1 input parameters) +Function 378: IsRenderTextureValid() (1 input parameters) Name: IsRenderTextureValid Return type: bool Description: Check if a render texture is valid (loaded in GPU) Param[1]: target (type: RenderTexture2D) -Function 377: UnloadRenderTexture() (1 input parameters) +Function 379: UnloadRenderTexture() (1 input parameters) Name: UnloadRenderTexture Return type: void Description: Unload render texture from GPU memory (VRAM) Param[1]: target (type: RenderTexture2D) -Function 378: UpdateTexture() (2 input parameters) +Function 380: UpdateTexture() (2 input parameters) Name: UpdateTexture Return type: void Description: Update GPU texture with new data (pixels should be able to fill texture) Param[1]: texture (type: Texture2D) Param[2]: pixels (type: const void *) -Function 379: UpdateTextureRec() (3 input parameters) +Function 381: UpdateTextureRec() (3 input parameters) Name: UpdateTextureRec Return type: void Description: Update GPU texture rectangle with new data (pixels and rec should fit in texture) Param[1]: texture (type: Texture2D) Param[2]: rec (type: Rectangle) Param[3]: pixels (type: const void *) -Function 380: GenTextureMipmaps() (1 input parameters) +Function 382: GenTextureMipmaps() (1 input parameters) Name: GenTextureMipmaps Return type: void Description: Generate GPU mipmaps for a texture Param[1]: texture (type: Texture2D *) -Function 381: SetTextureFilter() (2 input parameters) +Function 383: SetTextureFilter() (2 input parameters) Name: SetTextureFilter Return type: void Description: Set texture scaling filter mode Param[1]: texture (type: Texture2D) Param[2]: filter (type: int) -Function 382: SetTextureWrap() (2 input parameters) +Function 384: SetTextureWrap() (2 input parameters) Name: SetTextureWrap Return type: void Description: Set texture wrapping mode Param[1]: texture (type: Texture2D) Param[2]: wrap (type: int) -Function 383: DrawTexture() (4 input parameters) +Function 385: DrawTexture() (4 input parameters) Name: DrawTexture Return type: void Description: Draw a Texture2D @@ -3410,14 +3428,14 @@ Function 383: DrawTexture() (4 input parameters) Param[2]: posX (type: int) Param[3]: posY (type: int) Param[4]: tint (type: Color) -Function 384: DrawTextureV() (3 input parameters) +Function 386: DrawTextureV() (3 input parameters) Name: DrawTextureV Return type: void Description: Draw a Texture2D with position defined as Vector2 Param[1]: texture (type: Texture2D) Param[2]: position (type: Vector2) Param[3]: tint (type: Color) -Function 385: DrawTextureEx() (5 input parameters) +Function 387: DrawTextureEx() (5 input parameters) Name: DrawTextureEx Return type: void Description: Draw a Texture2D with extended parameters @@ -3426,7 +3444,7 @@ Function 385: DrawTextureEx() (5 input parameters) Param[3]: rotation (type: float) Param[4]: scale (type: float) Param[5]: tint (type: Color) -Function 386: DrawTextureRec() (4 input parameters) +Function 388: DrawTextureRec() (4 input parameters) Name: DrawTextureRec Return type: void Description: Draw a part of a texture defined by a rectangle @@ -3434,7 +3452,7 @@ Function 386: DrawTextureRec() (4 input parameters) Param[2]: source (type: Rectangle) Param[3]: position (type: Vector2) Param[4]: tint (type: Color) -Function 387: DrawTexturePro() (6 input parameters) +Function 389: DrawTexturePro() (6 input parameters) Name: DrawTexturePro Return type: void Description: Draw a part of a texture defined by a rectangle with 'pro' parameters @@ -3444,7 +3462,7 @@ Function 387: DrawTexturePro() (6 input parameters) Param[4]: origin (type: Vector2) Param[5]: rotation (type: float) Param[6]: tint (type: Color) -Function 388: DrawTextureNPatch() (6 input parameters) +Function 390: DrawTextureNPatch() (6 input parameters) Name: DrawTextureNPatch Return type: void Description: Draws a texture (or part of it) that stretches or shrinks nicely @@ -3454,119 +3472,119 @@ Function 388: DrawTextureNPatch() (6 input parameters) Param[4]: origin (type: Vector2) Param[5]: rotation (type: float) Param[6]: tint (type: Color) -Function 389: ColorIsEqual() (2 input parameters) +Function 391: ColorIsEqual() (2 input parameters) Name: ColorIsEqual Return type: bool Description: Check if two colors are equal Param[1]: col1 (type: Color) Param[2]: col2 (type: Color) -Function 390: Fade() (2 input parameters) +Function 392: Fade() (2 input parameters) Name: Fade Return type: Color Description: Get color with alpha applied, alpha goes from 0.0f to 1.0f Param[1]: color (type: Color) Param[2]: alpha (type: float) -Function 391: ColorToInt() (1 input parameters) +Function 393: ColorToInt() (1 input parameters) Name: ColorToInt Return type: int Description: Get hexadecimal value for a Color (0xRRGGBBAA) Param[1]: color (type: Color) -Function 392: ColorNormalize() (1 input parameters) +Function 394: ColorNormalize() (1 input parameters) Name: ColorNormalize Return type: Vector4 Description: Get Color normalized as float [0..1] Param[1]: color (type: Color) -Function 393: ColorFromNormalized() (1 input parameters) +Function 395: ColorFromNormalized() (1 input parameters) Name: ColorFromNormalized Return type: Color Description: Get Color from normalized values [0..1] Param[1]: normalized (type: Vector4) -Function 394: ColorToHSV() (1 input parameters) +Function 396: ColorToHSV() (1 input parameters) Name: ColorToHSV Return type: Vector3 Description: Get HSV values for a Color, hue [0..360], saturation/value [0..1] Param[1]: color (type: Color) -Function 395: ColorFromHSV() (3 input parameters) +Function 397: ColorFromHSV() (3 input parameters) Name: ColorFromHSV Return type: Color Description: Get a Color from HSV values, hue [0..360], saturation/value [0..1] Param[1]: hue (type: float) Param[2]: saturation (type: float) Param[3]: value (type: float) -Function 396: ColorTint() (2 input parameters) +Function 398: ColorTint() (2 input parameters) Name: ColorTint Return type: Color Description: Get color multiplied with another color Param[1]: color (type: Color) Param[2]: tint (type: Color) -Function 397: ColorBrightness() (2 input parameters) +Function 399: ColorBrightness() (2 input parameters) Name: ColorBrightness Return type: Color Description: Get color with brightness correction, brightness factor goes from -1.0f to 1.0f Param[1]: color (type: Color) Param[2]: factor (type: float) -Function 398: ColorContrast() (2 input parameters) +Function 400: ColorContrast() (2 input parameters) Name: ColorContrast Return type: Color Description: Get color with contrast correction, contrast values between -1.0f and 1.0f Param[1]: color (type: Color) Param[2]: contrast (type: float) -Function 399: ColorAlpha() (2 input parameters) +Function 401: ColorAlpha() (2 input parameters) Name: ColorAlpha Return type: Color Description: Get color with alpha applied, alpha goes from 0.0f to 1.0f Param[1]: color (type: Color) Param[2]: alpha (type: float) -Function 400: ColorAlphaBlend() (3 input parameters) +Function 402: ColorAlphaBlend() (3 input parameters) Name: ColorAlphaBlend Return type: Color Description: Get src alpha-blended into dst color with tint Param[1]: dst (type: Color) Param[2]: src (type: Color) Param[3]: tint (type: Color) -Function 401: ColorLerp() (3 input parameters) +Function 403: ColorLerp() (3 input parameters) Name: ColorLerp Return type: Color Description: Get color lerp interpolation between two colors, factor [0.0f..1.0f] Param[1]: color1 (type: Color) Param[2]: color2 (type: Color) Param[3]: factor (type: float) -Function 402: GetColor() (1 input parameters) +Function 404: GetColor() (1 input parameters) Name: GetColor Return type: Color Description: Get Color structure from hexadecimal value Param[1]: hexValue (type: unsigned int) -Function 403: GetPixelColor() (2 input parameters) +Function 405: GetPixelColor() (2 input parameters) Name: GetPixelColor Return type: Color Description: Get Color from a source pixel pointer of certain format Param[1]: srcPtr (type: void *) Param[2]: format (type: int) -Function 404: SetPixelColor() (3 input parameters) +Function 406: SetPixelColor() (3 input parameters) Name: SetPixelColor Return type: void Description: Set color formatted into destination pixel pointer Param[1]: dstPtr (type: void *) Param[2]: color (type: Color) Param[3]: format (type: int) -Function 405: GetPixelDataSize() (3 input parameters) +Function 407: GetPixelDataSize() (3 input parameters) Name: GetPixelDataSize Return type: int Description: Get pixel data size in bytes for certain format Param[1]: width (type: int) Param[2]: height (type: int) Param[3]: format (type: int) -Function 406: GetFontDefault() (0 input parameters) +Function 408: GetFontDefault() (0 input parameters) Name: GetFontDefault Return type: Font Description: Get the default Font No input parameters -Function 407: LoadFont() (1 input parameters) +Function 409: LoadFont() (1 input parameters) Name: LoadFont Return type: Font Description: Load font from file into GPU memory (VRAM) Param[1]: fileName (type: const char *) -Function 408: LoadFontEx() (4 input parameters) +Function 410: LoadFontEx() (4 input parameters) Name: LoadFontEx Return type: Font Description: Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character set, font size is provided in pixels height @@ -3574,14 +3592,14 @@ Function 408: LoadFontEx() (4 input parameters) Param[2]: fontSize (type: int) Param[3]: codepoints (type: int *) Param[4]: codepointCount (type: int) -Function 409: LoadFontFromImage() (3 input parameters) +Function 411: LoadFontFromImage() (3 input parameters) Name: LoadFontFromImage Return type: Font Description: Load font from Image (XNA style) Param[1]: image (type: Image) Param[2]: key (type: Color) Param[3]: firstChar (type: int) -Function 410: LoadFontFromMemory() (6 input parameters) +Function 412: LoadFontFromMemory() (6 input parameters) Name: LoadFontFromMemory Return type: Font Description: Load font from memory buffer, fileType refers to extension: i.e. '.ttf' @@ -3591,12 +3609,12 @@ Function 410: LoadFontFromMemory() (6 input parameters) Param[4]: fontSize (type: int) Param[5]: codepoints (type: int *) Param[6]: codepointCount (type: int) -Function 411: IsFontValid() (1 input parameters) +Function 413: IsFontValid() (1 input parameters) Name: IsFontValid Return type: bool Description: Check if a font is valid (font data loaded, WARNING: GPU texture not checked) Param[1]: font (type: Font) -Function 412: LoadFontData() (6 input parameters) +Function 414: LoadFontData() (6 input parameters) Name: LoadFontData Return type: GlyphInfo * Description: Load font data for further use @@ -3606,7 +3624,7 @@ Function 412: LoadFontData() (6 input parameters) Param[4]: codepoints (type: int *) Param[5]: codepointCount (type: int) Param[6]: type (type: int) -Function 413: GenImageFontAtlas() (6 input parameters) +Function 415: GenImageFontAtlas() (6 input parameters) Name: GenImageFontAtlas Return type: Image Description: Generate image font atlas using chars info @@ -3616,30 +3634,30 @@ Function 413: GenImageFontAtlas() (6 input parameters) Param[4]: fontSize (type: int) Param[5]: padding (type: int) Param[6]: packMethod (type: int) -Function 414: UnloadFontData() (2 input parameters) +Function 416: UnloadFontData() (2 input parameters) Name: UnloadFontData Return type: void Description: Unload font chars info data (RAM) Param[1]: glyphs (type: GlyphInfo *) Param[2]: glyphCount (type: int) -Function 415: UnloadFont() (1 input parameters) +Function 417: UnloadFont() (1 input parameters) Name: UnloadFont Return type: void Description: Unload font from GPU memory (VRAM) Param[1]: font (type: Font) -Function 416: ExportFontAsCode() (2 input parameters) +Function 418: ExportFontAsCode() (2 input parameters) Name: ExportFontAsCode Return type: bool Description: Export font as code file, returns true on success Param[1]: font (type: Font) Param[2]: fileName (type: const char *) -Function 417: DrawFPS() (2 input parameters) +Function 419: DrawFPS() (2 input parameters) Name: DrawFPS Return type: void Description: Draw current FPS Param[1]: posX (type: int) Param[2]: posY (type: int) -Function 418: DrawText() (5 input parameters) +Function 420: DrawText() (5 input parameters) Name: DrawText Return type: void Description: Draw text (using default font) @@ -3648,7 +3666,7 @@ Function 418: DrawText() (5 input parameters) Param[3]: posY (type: int) Param[4]: fontSize (type: int) Param[5]: color (type: Color) -Function 419: DrawTextEx() (6 input parameters) +Function 421: DrawTextEx() (6 input parameters) Name: DrawTextEx Return type: void Description: Draw text using font and additional parameters @@ -3658,7 +3676,7 @@ Function 419: DrawTextEx() (6 input parameters) Param[4]: fontSize (type: float) Param[5]: spacing (type: float) Param[6]: tint (type: Color) -Function 420: DrawTextPro() (8 input parameters) +Function 422: DrawTextPro() (8 input parameters) Name: DrawTextPro Return type: void Description: Draw text using Font and pro parameters (rotation) @@ -3670,7 +3688,7 @@ Function 420: DrawTextPro() (8 input parameters) Param[6]: fontSize (type: float) Param[7]: spacing (type: float) Param[8]: tint (type: Color) -Function 421: DrawTextCodepoint() (5 input parameters) +Function 423: DrawTextCodepoint() (5 input parameters) Name: DrawTextCodepoint Return type: void Description: Draw one character (codepoint) @@ -3679,7 +3697,7 @@ Function 421: DrawTextCodepoint() (5 input parameters) Param[3]: position (type: Vector2) Param[4]: fontSize (type: float) Param[5]: tint (type: Color) -Function 422: DrawTextCodepoints() (7 input parameters) +Function 424: DrawTextCodepoints() (7 input parameters) Name: DrawTextCodepoints Return type: void Description: Draw multiple character (codepoint) @@ -3690,18 +3708,18 @@ Function 422: DrawTextCodepoints() (7 input parameters) Param[5]: fontSize (type: float) Param[6]: spacing (type: float) Param[7]: tint (type: Color) -Function 423: SetTextLineSpacing() (1 input parameters) +Function 425: SetTextLineSpacing() (1 input parameters) Name: SetTextLineSpacing Return type: void Description: Set vertical line spacing when drawing with line-breaks Param[1]: spacing (type: int) -Function 424: MeasureText() (2 input parameters) +Function 426: MeasureText() (2 input parameters) Name: MeasureText Return type: int Description: Measure string width for default font Param[1]: text (type: const char *) Param[2]: fontSize (type: int) -Function 425: MeasureTextEx() (4 input parameters) +Function 427: MeasureTextEx() (4 input parameters) Name: MeasureTextEx Return type: Vector2 Description: Measure string size for Font @@ -3709,195 +3727,195 @@ Function 425: MeasureTextEx() (4 input parameters) Param[2]: text (type: const char *) Param[3]: fontSize (type: float) Param[4]: spacing (type: float) -Function 426: GetGlyphIndex() (2 input parameters) +Function 428: GetGlyphIndex() (2 input parameters) Name: GetGlyphIndex Return type: int Description: Get glyph index position in font for a codepoint (unicode character), fallback to '?' if not found Param[1]: font (type: Font) Param[2]: codepoint (type: int) -Function 427: GetGlyphInfo() (2 input parameters) +Function 429: GetGlyphInfo() (2 input parameters) Name: GetGlyphInfo Return type: GlyphInfo Description: Get glyph font info data for a codepoint (unicode character), fallback to '?' if not found Param[1]: font (type: Font) Param[2]: codepoint (type: int) -Function 428: GetGlyphAtlasRec() (2 input parameters) +Function 430: GetGlyphAtlasRec() (2 input parameters) Name: GetGlyphAtlasRec Return type: Rectangle Description: Get glyph rectangle in font atlas for a codepoint (unicode character), fallback to '?' if not found Param[1]: font (type: Font) Param[2]: codepoint (type: int) -Function 429: LoadUTF8() (2 input parameters) +Function 431: LoadUTF8() (2 input parameters) Name: LoadUTF8 Return type: char * Description: Load UTF-8 text encoded from codepoints array Param[1]: codepoints (type: const int *) Param[2]: length (type: int) -Function 430: UnloadUTF8() (1 input parameters) +Function 432: UnloadUTF8() (1 input parameters) Name: UnloadUTF8 Return type: void Description: Unload UTF-8 text encoded from codepoints array Param[1]: text (type: char *) -Function 431: LoadCodepoints() (2 input parameters) +Function 433: LoadCodepoints() (2 input parameters) Name: LoadCodepoints Return type: int * Description: Load all codepoints from a UTF-8 text string, codepoints count returned by parameter Param[1]: text (type: const char *) Param[2]: count (type: int *) -Function 432: UnloadCodepoints() (1 input parameters) +Function 434: UnloadCodepoints() (1 input parameters) Name: UnloadCodepoints Return type: void Description: Unload codepoints data from memory Param[1]: codepoints (type: int *) -Function 433: GetCodepointCount() (1 input parameters) +Function 435: GetCodepointCount() (1 input parameters) Name: GetCodepointCount Return type: int Description: Get total number of codepoints in a UTF-8 encoded string Param[1]: text (type: const char *) -Function 434: GetCodepoint() (2 input parameters) +Function 436: GetCodepoint() (2 input parameters) Name: GetCodepoint Return type: int Description: Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure Param[1]: text (type: const char *) Param[2]: codepointSize (type: int *) -Function 435: GetCodepointNext() (2 input parameters) +Function 437: GetCodepointNext() (2 input parameters) Name: GetCodepointNext Return type: int Description: Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure Param[1]: text (type: const char *) Param[2]: codepointSize (type: int *) -Function 436: GetCodepointPrevious() (2 input parameters) +Function 438: GetCodepointPrevious() (2 input parameters) Name: GetCodepointPrevious Return type: int Description: Get previous codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure Param[1]: text (type: const char *) Param[2]: codepointSize (type: int *) -Function 437: CodepointToUTF8() (2 input parameters) +Function 439: CodepointToUTF8() (2 input parameters) Name: CodepointToUTF8 Return type: const char * Description: Encode one codepoint into UTF-8 byte array (array length returned as parameter) Param[1]: codepoint (type: int) Param[2]: utf8Size (type: int *) -Function 438: TextCopy() (2 input parameters) +Function 440: TextCopy() (2 input parameters) Name: TextCopy Return type: int Description: Copy one string to another, returns bytes copied Param[1]: dst (type: char *) Param[2]: src (type: const char *) -Function 439: TextIsEqual() (2 input parameters) +Function 441: TextIsEqual() (2 input parameters) Name: TextIsEqual Return type: bool Description: Check if two text string are equal Param[1]: text1 (type: const char *) Param[2]: text2 (type: const char *) -Function 440: TextLength() (1 input parameters) +Function 442: TextLength() (1 input parameters) Name: TextLength Return type: unsigned int Description: Get text length, checks for '\0' ending Param[1]: text (type: const char *) -Function 441: TextFormat() (2 input parameters) +Function 443: TextFormat() (2 input parameters) Name: TextFormat Return type: const char * Description: Text formatting with variables (sprintf() style) Param[1]: text (type: const char *) Param[2]: args (type: ...) -Function 442: TextSubtext() (3 input parameters) +Function 444: TextSubtext() (3 input parameters) Name: TextSubtext Return type: const char * Description: Get a piece of a text string Param[1]: text (type: const char *) Param[2]: position (type: int) Param[3]: length (type: int) -Function 443: TextReplace() (3 input parameters) +Function 445: TextReplace() (3 input parameters) Name: TextReplace Return type: char * Description: Replace text string (WARNING: memory must be freed!) Param[1]: text (type: const char *) Param[2]: replace (type: const char *) Param[3]: by (type: const char *) -Function 444: TextInsert() (3 input parameters) +Function 446: TextInsert() (3 input parameters) Name: TextInsert Return type: char * Description: Insert text in a position (WARNING: memory must be freed!) Param[1]: text (type: const char *) Param[2]: insert (type: const char *) Param[3]: position (type: int) -Function 445: TextJoin() (3 input parameters) +Function 447: TextJoin() (3 input parameters) Name: TextJoin Return type: char * Description: Join text strings with delimiter Param[1]: textList (type: char **) Param[2]: count (type: int) Param[3]: delimiter (type: const char *) -Function 446: TextSplit() (3 input parameters) +Function 448: TextSplit() (3 input parameters) Name: TextSplit Return type: char ** Description: Split text into multiple strings Param[1]: text (type: const char *) Param[2]: delimiter (type: char) Param[3]: count (type: int *) -Function 447: TextAppend() (3 input parameters) +Function 449: TextAppend() (3 input parameters) Name: TextAppend Return type: void Description: Append text at specific position and move cursor! Param[1]: text (type: char *) Param[2]: append (type: const char *) Param[3]: position (type: int *) -Function 448: TextFindIndex() (2 input parameters) +Function 450: TextFindIndex() (2 input parameters) Name: TextFindIndex Return type: int Description: Find first text occurrence within a string Param[1]: text (type: const char *) Param[2]: find (type: const char *) -Function 449: TextToUpper() (1 input parameters) +Function 451: TextToUpper() (1 input parameters) Name: TextToUpper Return type: char * Description: Get upper case version of provided string Param[1]: text (type: const char *) -Function 450: TextToLower() (1 input parameters) +Function 452: TextToLower() (1 input parameters) Name: TextToLower Return type: char * Description: Get lower case version of provided string Param[1]: text (type: const char *) -Function 451: TextToPascal() (1 input parameters) +Function 453: TextToPascal() (1 input parameters) Name: TextToPascal Return type: char * Description: Get Pascal case notation version of provided string Param[1]: text (type: const char *) -Function 452: TextToSnake() (1 input parameters) +Function 454: TextToSnake() (1 input parameters) Name: TextToSnake Return type: char * Description: Get Snake case notation version of provided string Param[1]: text (type: const char *) -Function 453: TextToCamel() (1 input parameters) +Function 455: TextToCamel() (1 input parameters) Name: TextToCamel Return type: char * Description: Get Camel case notation version of provided string Param[1]: text (type: const char *) -Function 454: TextToInteger() (1 input parameters) +Function 456: TextToInteger() (1 input parameters) Name: TextToInteger Return type: int Description: Get integer value from text Param[1]: text (type: const char *) -Function 455: TextToFloat() (1 input parameters) +Function 457: TextToFloat() (1 input parameters) Name: TextToFloat Return type: float Description: Get float value from text Param[1]: text (type: const char *) -Function 456: DrawLine3D() (3 input parameters) +Function 458: DrawLine3D() (3 input parameters) Name: DrawLine3D Return type: void Description: Draw a line in 3D world space Param[1]: startPos (type: Vector3) Param[2]: endPos (type: Vector3) Param[3]: color (type: Color) -Function 457: DrawPoint3D() (2 input parameters) +Function 459: DrawPoint3D() (2 input parameters) Name: DrawPoint3D Return type: void Description: Draw a point in 3D space, actually a small line Param[1]: position (type: Vector3) Param[2]: color (type: Color) -Function 458: DrawCircle3D() (5 input parameters) +Function 460: DrawCircle3D() (5 input parameters) Name: DrawCircle3D Return type: void Description: Draw a circle in 3D world space @@ -3906,7 +3924,7 @@ Function 458: DrawCircle3D() (5 input parameters) Param[3]: rotationAxis (type: Vector3) Param[4]: rotationAngle (type: float) Param[5]: color (type: Color) -Function 459: DrawTriangle3D() (4 input parameters) +Function 461: DrawTriangle3D() (4 input parameters) Name: DrawTriangle3D Return type: void Description: Draw a color-filled triangle (vertex in counter-clockwise order!) @@ -3914,14 +3932,14 @@ Function 459: DrawTriangle3D() (4 input parameters) Param[2]: v2 (type: Vector3) Param[3]: v3 (type: Vector3) Param[4]: color (type: Color) -Function 460: DrawTriangleStrip3D() (3 input parameters) +Function 462: DrawTriangleStrip3D() (3 input parameters) Name: DrawTriangleStrip3D Return type: void Description: Draw a triangle strip defined by points Param[1]: points (type: const Vector3 *) Param[2]: pointCount (type: int) Param[3]: color (type: Color) -Function 461: DrawCube() (5 input parameters) +Function 463: DrawCube() (5 input parameters) Name: DrawCube Return type: void Description: Draw cube @@ -3930,14 +3948,14 @@ Function 461: DrawCube() (5 input parameters) Param[3]: height (type: float) Param[4]: length (type: float) Param[5]: color (type: Color) -Function 462: DrawCubeV() (3 input parameters) +Function 464: DrawCubeV() (3 input parameters) Name: DrawCubeV Return type: void Description: Draw cube (Vector version) Param[1]: position (type: Vector3) Param[2]: size (type: Vector3) Param[3]: color (type: Color) -Function 463: DrawCubeWires() (5 input parameters) +Function 465: DrawCubeWires() (5 input parameters) Name: DrawCubeWires Return type: void Description: Draw cube wires @@ -3946,21 +3964,21 @@ Function 463: DrawCubeWires() (5 input parameters) Param[3]: height (type: float) Param[4]: length (type: float) Param[5]: color (type: Color) -Function 464: DrawCubeWiresV() (3 input parameters) +Function 466: DrawCubeWiresV() (3 input parameters) Name: DrawCubeWiresV Return type: void Description: Draw cube wires (Vector version) Param[1]: position (type: Vector3) Param[2]: size (type: Vector3) Param[3]: color (type: Color) -Function 465: DrawSphere() (3 input parameters) +Function 467: DrawSphere() (3 input parameters) Name: DrawSphere Return type: void Description: Draw sphere Param[1]: centerPos (type: Vector3) Param[2]: radius (type: float) Param[3]: color (type: Color) -Function 466: DrawSphereEx() (5 input parameters) +Function 468: DrawSphereEx() (5 input parameters) Name: DrawSphereEx Return type: void Description: Draw sphere with extended parameters @@ -3969,7 +3987,7 @@ Function 466: DrawSphereEx() (5 input parameters) Param[3]: rings (type: int) Param[4]: slices (type: int) Param[5]: color (type: Color) -Function 467: DrawSphereWires() (5 input parameters) +Function 469: DrawSphereWires() (5 input parameters) Name: DrawSphereWires Return type: void Description: Draw sphere wires @@ -3978,7 +3996,7 @@ Function 467: DrawSphereWires() (5 input parameters) Param[3]: rings (type: int) Param[4]: slices (type: int) Param[5]: color (type: Color) -Function 468: DrawCylinder() (6 input parameters) +Function 470: DrawCylinder() (6 input parameters) Name: DrawCylinder Return type: void Description: Draw a cylinder/cone @@ -3988,7 +4006,7 @@ Function 468: DrawCylinder() (6 input parameters) Param[4]: height (type: float) Param[5]: slices (type: int) Param[6]: color (type: Color) -Function 469: DrawCylinderEx() (6 input parameters) +Function 471: DrawCylinderEx() (6 input parameters) Name: DrawCylinderEx Return type: void Description: Draw a cylinder with base at startPos and top at endPos @@ -3998,7 +4016,7 @@ Function 469: DrawCylinderEx() (6 input parameters) Param[4]: endRadius (type: float) Param[5]: sides (type: int) Param[6]: color (type: Color) -Function 470: DrawCylinderWires() (6 input parameters) +Function 472: DrawCylinderWires() (6 input parameters) Name: DrawCylinderWires Return type: void Description: Draw a cylinder/cone wires @@ -4008,7 +4026,7 @@ Function 470: DrawCylinderWires() (6 input parameters) Param[4]: height (type: float) Param[5]: slices (type: int) Param[6]: color (type: Color) -Function 471: DrawCylinderWiresEx() (6 input parameters) +Function 473: DrawCylinderWiresEx() (6 input parameters) Name: DrawCylinderWiresEx Return type: void Description: Draw a cylinder wires with base at startPos and top at endPos @@ -4018,7 +4036,7 @@ Function 471: DrawCylinderWiresEx() (6 input parameters) Param[4]: endRadius (type: float) Param[5]: sides (type: int) Param[6]: color (type: Color) -Function 472: DrawCapsule() (6 input parameters) +Function 474: DrawCapsule() (6 input parameters) Name: DrawCapsule Return type: void Description: Draw a capsule with the center of its sphere caps at startPos and endPos @@ -4028,7 +4046,7 @@ Function 472: DrawCapsule() (6 input parameters) Param[4]: slices (type: int) Param[5]: rings (type: int) Param[6]: color (type: Color) -Function 473: DrawCapsuleWires() (6 input parameters) +Function 475: DrawCapsuleWires() (6 input parameters) Name: DrawCapsuleWires Return type: void Description: Draw capsule wireframe with the center of its sphere caps at startPos and endPos @@ -4038,51 +4056,51 @@ Function 473: DrawCapsuleWires() (6 input parameters) Param[4]: slices (type: int) Param[5]: rings (type: int) Param[6]: color (type: Color) -Function 474: DrawPlane() (3 input parameters) +Function 476: DrawPlane() (3 input parameters) Name: DrawPlane Return type: void Description: Draw a plane XZ Param[1]: centerPos (type: Vector3) Param[2]: size (type: Vector2) Param[3]: color (type: Color) -Function 475: DrawRay() (2 input parameters) +Function 477: DrawRay() (2 input parameters) Name: DrawRay Return type: void Description: Draw a ray line Param[1]: ray (type: Ray) Param[2]: color (type: Color) -Function 476: DrawGrid() (2 input parameters) +Function 478: DrawGrid() (2 input parameters) Name: DrawGrid Return type: void Description: Draw a grid (centered at (0, 0, 0)) Param[1]: slices (type: int) Param[2]: spacing (type: float) -Function 477: LoadModel() (1 input parameters) +Function 479: LoadModel() (1 input parameters) Name: LoadModel Return type: Model Description: Load model from files (meshes and materials) Param[1]: fileName (type: const char *) -Function 478: LoadModelFromMesh() (1 input parameters) +Function 480: LoadModelFromMesh() (1 input parameters) Name: LoadModelFromMesh Return type: Model Description: Load model from generated mesh (default material) Param[1]: mesh (type: Mesh) -Function 479: IsModelValid() (1 input parameters) +Function 481: IsModelValid() (1 input parameters) Name: IsModelValid Return type: bool Description: Check if a model is valid (loaded in GPU, VAO/VBOs) Param[1]: model (type: Model) -Function 480: UnloadModel() (1 input parameters) +Function 482: UnloadModel() (1 input parameters) Name: UnloadModel Return type: void Description: Unload model (including meshes) from memory (RAM and/or VRAM) Param[1]: model (type: Model) -Function 481: GetModelBoundingBox() (1 input parameters) +Function 483: GetModelBoundingBox() (1 input parameters) Name: GetModelBoundingBox Return type: BoundingBox Description: Compute model bounding box limits (considers all meshes) Param[1]: model (type: Model) -Function 482: DrawModel() (4 input parameters) +Function 484: DrawModel() (4 input parameters) Name: DrawModel Return type: void Description: Draw a model (with texture if set) @@ -4090,7 +4108,7 @@ Function 482: DrawModel() (4 input parameters) Param[2]: position (type: Vector3) Param[3]: scale (type: float) Param[4]: tint (type: Color) -Function 483: DrawModelEx() (6 input parameters) +Function 485: DrawModelEx() (6 input parameters) Name: DrawModelEx Return type: void Description: Draw a model with extended parameters @@ -4100,7 +4118,7 @@ Function 483: DrawModelEx() (6 input parameters) Param[4]: rotationAngle (type: float) Param[5]: scale (type: Vector3) Param[6]: tint (type: Color) -Function 484: DrawModelWires() (4 input parameters) +Function 486: DrawModelWires() (4 input parameters) Name: DrawModelWires Return type: void Description: Draw a model wires (with texture if set) @@ -4108,7 +4126,7 @@ Function 484: DrawModelWires() (4 input parameters) Param[2]: position (type: Vector3) Param[3]: scale (type: float) Param[4]: tint (type: Color) -Function 485: DrawModelWiresEx() (6 input parameters) +Function 487: DrawModelWiresEx() (6 input parameters) Name: DrawModelWiresEx Return type: void Description: Draw a model wires (with texture if set) with extended parameters @@ -4118,7 +4136,7 @@ Function 485: DrawModelWiresEx() (6 input parameters) Param[4]: rotationAngle (type: float) Param[5]: scale (type: Vector3) Param[6]: tint (type: Color) -Function 486: DrawModelPoints() (4 input parameters) +Function 488: DrawModelPoints() (4 input parameters) Name: DrawModelPoints Return type: void Description: Draw a model as points @@ -4126,7 +4144,7 @@ Function 486: DrawModelPoints() (4 input parameters) Param[2]: position (type: Vector3) Param[3]: scale (type: float) Param[4]: tint (type: Color) -Function 487: DrawModelPointsEx() (6 input parameters) +Function 489: DrawModelPointsEx() (6 input parameters) Name: DrawModelPointsEx Return type: void Description: Draw a model as points with extended parameters @@ -4136,13 +4154,13 @@ Function 487: DrawModelPointsEx() (6 input parameters) Param[4]: rotationAngle (type: float) Param[5]: scale (type: Vector3) Param[6]: tint (type: Color) -Function 488: DrawBoundingBox() (2 input parameters) +Function 490: DrawBoundingBox() (2 input parameters) Name: DrawBoundingBox Return type: void Description: Draw bounding box (wires) Param[1]: box (type: BoundingBox) Param[2]: color (type: Color) -Function 489: DrawBillboard() (5 input parameters) +Function 491: DrawBillboard() (5 input parameters) Name: DrawBillboard Return type: void Description: Draw a billboard texture @@ -4151,7 +4169,7 @@ Function 489: DrawBillboard() (5 input parameters) Param[3]: position (type: Vector3) Param[4]: scale (type: float) Param[5]: tint (type: Color) -Function 490: DrawBillboardRec() (6 input parameters) +Function 492: DrawBillboardRec() (6 input parameters) Name: DrawBillboardRec Return type: void Description: Draw a billboard texture defined by source @@ -4161,7 +4179,7 @@ Function 490: DrawBillboardRec() (6 input parameters) Param[4]: position (type: Vector3) Param[5]: size (type: Vector2) Param[6]: tint (type: Color) -Function 491: DrawBillboardPro() (9 input parameters) +Function 493: DrawBillboardPro() (9 input parameters) Name: DrawBillboardPro Return type: void Description: Draw a billboard texture defined by source and rotation @@ -4174,13 +4192,13 @@ Function 491: DrawBillboardPro() (9 input parameters) Param[7]: origin (type: Vector2) Param[8]: rotation (type: float) Param[9]: tint (type: Color) -Function 492: UploadMesh() (2 input parameters) +Function 494: UploadMesh() (2 input parameters) Name: UploadMesh Return type: void Description: Upload mesh vertex data in GPU and provide VAO/VBO ids Param[1]: mesh (type: Mesh *) Param[2]: dynamic (type: bool) -Function 493: UpdateMeshBuffer() (5 input parameters) +Function 495: UpdateMeshBuffer() (5 input parameters) Name: UpdateMeshBuffer Return type: void Description: Update mesh vertex data in GPU for a specific buffer index @@ -4189,19 +4207,19 @@ Function 493: UpdateMeshBuffer() (5 input parameters) Param[3]: data (type: const void *) Param[4]: dataSize (type: int) Param[5]: offset (type: int) -Function 494: UnloadMesh() (1 input parameters) +Function 496: UnloadMesh() (1 input parameters) Name: UnloadMesh Return type: void Description: Unload mesh data from CPU and GPU Param[1]: mesh (type: Mesh) -Function 495: DrawMesh() (3 input parameters) +Function 497: DrawMesh() (3 input parameters) Name: DrawMesh Return type: void Description: Draw a 3d mesh with material and transform Param[1]: mesh (type: Mesh) Param[2]: material (type: Material) Param[3]: transform (type: Matrix) -Function 496: DrawMeshInstanced() (4 input parameters) +Function 498: DrawMeshInstanced() (4 input parameters) Name: DrawMeshInstanced Return type: void Description: Draw multiple mesh instances with material and different transforms @@ -4209,35 +4227,35 @@ Function 496: DrawMeshInstanced() (4 input parameters) Param[2]: material (type: Material) Param[3]: transforms (type: const Matrix *) Param[4]: instances (type: int) -Function 497: GetMeshBoundingBox() (1 input parameters) +Function 499: GetMeshBoundingBox() (1 input parameters) Name: GetMeshBoundingBox Return type: BoundingBox Description: Compute mesh bounding box limits Param[1]: mesh (type: Mesh) -Function 498: GenMeshTangents() (1 input parameters) +Function 500: GenMeshTangents() (1 input parameters) Name: GenMeshTangents Return type: void Description: Compute mesh tangents Param[1]: mesh (type: Mesh *) -Function 499: ExportMesh() (2 input parameters) +Function 501: ExportMesh() (2 input parameters) Name: ExportMesh Return type: bool Description: Export mesh data to file, returns true on success Param[1]: mesh (type: Mesh) Param[2]: fileName (type: const char *) -Function 500: ExportMeshAsCode() (2 input parameters) +Function 502: ExportMeshAsCode() (2 input parameters) Name: ExportMeshAsCode Return type: bool Description: Export mesh as code file (.h) defining multiple arrays of vertex attributes Param[1]: mesh (type: Mesh) Param[2]: fileName (type: const char *) -Function 501: GenMeshPoly() (2 input parameters) +Function 503: GenMeshPoly() (2 input parameters) Name: GenMeshPoly Return type: Mesh Description: Generate polygonal mesh Param[1]: sides (type: int) Param[2]: radius (type: float) -Function 502: GenMeshPlane() (4 input parameters) +Function 504: GenMeshPlane() (4 input parameters) Name: GenMeshPlane Return type: Mesh Description: Generate plane mesh (with subdivisions) @@ -4245,42 +4263,42 @@ Function 502: GenMeshPlane() (4 input parameters) Param[2]: length (type: float) Param[3]: resX (type: int) Param[4]: resZ (type: int) -Function 503: GenMeshCube() (3 input parameters) +Function 505: GenMeshCube() (3 input parameters) Name: GenMeshCube Return type: Mesh Description: Generate cuboid mesh Param[1]: width (type: float) Param[2]: height (type: float) Param[3]: length (type: float) -Function 504: GenMeshSphere() (3 input parameters) +Function 506: GenMeshSphere() (3 input parameters) Name: GenMeshSphere Return type: Mesh Description: Generate sphere mesh (standard sphere) Param[1]: radius (type: float) Param[2]: rings (type: int) Param[3]: slices (type: int) -Function 505: GenMeshHemiSphere() (3 input parameters) +Function 507: GenMeshHemiSphere() (3 input parameters) Name: GenMeshHemiSphere Return type: Mesh Description: Generate half-sphere mesh (no bottom cap) Param[1]: radius (type: float) Param[2]: rings (type: int) Param[3]: slices (type: int) -Function 506: GenMeshCylinder() (3 input parameters) +Function 508: GenMeshCylinder() (3 input parameters) Name: GenMeshCylinder Return type: Mesh Description: Generate cylinder mesh Param[1]: radius (type: float) Param[2]: height (type: float) Param[3]: slices (type: int) -Function 507: GenMeshCone() (3 input parameters) +Function 509: GenMeshCone() (3 input parameters) Name: GenMeshCone Return type: Mesh Description: Generate cone/pyramid mesh Param[1]: radius (type: float) Param[2]: height (type: float) Param[3]: slices (type: int) -Function 508: GenMeshTorus() (4 input parameters) +Function 510: GenMeshTorus() (4 input parameters) Name: GenMeshTorus Return type: Mesh Description: Generate torus mesh @@ -4288,7 +4306,7 @@ Function 508: GenMeshTorus() (4 input parameters) Param[2]: size (type: float) Param[3]: radSeg (type: int) Param[4]: sides (type: int) -Function 509: GenMeshKnot() (4 input parameters) +Function 511: GenMeshKnot() (4 input parameters) Name: GenMeshKnot Return type: Mesh Description: Generate trefoil knot mesh @@ -4296,91 +4314,91 @@ Function 509: GenMeshKnot() (4 input parameters) Param[2]: size (type: float) Param[3]: radSeg (type: int) Param[4]: sides (type: int) -Function 510: GenMeshHeightmap() (2 input parameters) +Function 512: GenMeshHeightmap() (2 input parameters) Name: GenMeshHeightmap Return type: Mesh Description: Generate heightmap mesh from image data Param[1]: heightmap (type: Image) Param[2]: size (type: Vector3) -Function 511: GenMeshCubicmap() (2 input parameters) +Function 513: GenMeshCubicmap() (2 input parameters) Name: GenMeshCubicmap Return type: Mesh Description: Generate cubes-based map mesh from image data Param[1]: cubicmap (type: Image) Param[2]: cubeSize (type: Vector3) -Function 512: LoadMaterials() (2 input parameters) +Function 514: LoadMaterials() (2 input parameters) Name: LoadMaterials Return type: Material * Description: Load materials from model file Param[1]: fileName (type: const char *) Param[2]: materialCount (type: int *) -Function 513: LoadMaterialDefault() (0 input parameters) +Function 515: LoadMaterialDefault() (0 input parameters) Name: LoadMaterialDefault Return type: Material Description: Load default material (Supports: DIFFUSE, SPECULAR, NORMAL maps) No input parameters -Function 514: IsMaterialValid() (1 input parameters) +Function 516: IsMaterialValid() (1 input parameters) Name: IsMaterialValid Return type: bool Description: Check if a material is valid (shader assigned, map textures loaded in GPU) Param[1]: material (type: Material) -Function 515: UnloadMaterial() (1 input parameters) +Function 517: UnloadMaterial() (1 input parameters) Name: UnloadMaterial Return type: void Description: Unload material from GPU memory (VRAM) Param[1]: material (type: Material) -Function 516: SetMaterialTexture() (3 input parameters) +Function 518: SetMaterialTexture() (3 input parameters) Name: SetMaterialTexture Return type: void Description: Set texture for a material map type (MATERIAL_MAP_DIFFUSE, MATERIAL_MAP_SPECULAR...) Param[1]: material (type: Material *) Param[2]: mapType (type: int) Param[3]: texture (type: Texture2D) -Function 517: SetModelMeshMaterial() (3 input parameters) +Function 519: SetModelMeshMaterial() (3 input parameters) Name: SetModelMeshMaterial Return type: void Description: Set material for a mesh Param[1]: model (type: Model *) Param[2]: meshId (type: int) Param[3]: materialId (type: int) -Function 518: LoadModelAnimations() (2 input parameters) +Function 520: LoadModelAnimations() (2 input parameters) Name: LoadModelAnimations Return type: ModelAnimation * Description: Load model animations from file Param[1]: fileName (type: const char *) Param[2]: animCount (type: int *) -Function 519: UpdateModelAnimation() (3 input parameters) +Function 521: UpdateModelAnimation() (3 input parameters) Name: UpdateModelAnimation Return type: void Description: Update model animation pose (CPU) Param[1]: model (type: Model) Param[2]: anim (type: ModelAnimation) Param[3]: frame (type: int) -Function 520: UpdateModelAnimationBones() (3 input parameters) +Function 522: UpdateModelAnimationBones() (3 input parameters) Name: UpdateModelAnimationBones Return type: void Description: Update model animation mesh bone matrices (GPU skinning) Param[1]: model (type: Model) Param[2]: anim (type: ModelAnimation) Param[3]: frame (type: int) -Function 521: UnloadModelAnimation() (1 input parameters) +Function 523: UnloadModelAnimation() (1 input parameters) Name: UnloadModelAnimation Return type: void Description: Unload animation data Param[1]: anim (type: ModelAnimation) -Function 522: UnloadModelAnimations() (2 input parameters) +Function 524: UnloadModelAnimations() (2 input parameters) Name: UnloadModelAnimations Return type: void Description: Unload animation array data Param[1]: animations (type: ModelAnimation *) Param[2]: animCount (type: int) -Function 523: IsModelAnimationValid() (2 input parameters) +Function 525: IsModelAnimationValid() (2 input parameters) Name: IsModelAnimationValid Return type: bool Description: Check model animation skeleton match Param[1]: model (type: Model) Param[2]: anim (type: ModelAnimation) -Function 524: CheckCollisionSpheres() (4 input parameters) +Function 526: CheckCollisionSpheres() (4 input parameters) Name: CheckCollisionSpheres Return type: bool Description: Check collision between two spheres @@ -4388,40 +4406,40 @@ Function 524: CheckCollisionSpheres() (4 input parameters) Param[2]: radius1 (type: float) Param[3]: center2 (type: Vector3) Param[4]: radius2 (type: float) -Function 525: CheckCollisionBoxes() (2 input parameters) +Function 527: CheckCollisionBoxes() (2 input parameters) Name: CheckCollisionBoxes Return type: bool Description: Check collision between two bounding boxes Param[1]: box1 (type: BoundingBox) Param[2]: box2 (type: BoundingBox) -Function 526: CheckCollisionBoxSphere() (3 input parameters) +Function 528: CheckCollisionBoxSphere() (3 input parameters) Name: CheckCollisionBoxSphere Return type: bool Description: Check collision between box and sphere Param[1]: box (type: BoundingBox) Param[2]: center (type: Vector3) Param[3]: radius (type: float) -Function 527: GetRayCollisionSphere() (3 input parameters) +Function 529: GetRayCollisionSphere() (3 input parameters) Name: GetRayCollisionSphere Return type: RayCollision Description: Get collision info between ray and sphere Param[1]: ray (type: Ray) Param[2]: center (type: Vector3) Param[3]: radius (type: float) -Function 528: GetRayCollisionBox() (2 input parameters) +Function 530: GetRayCollisionBox() (2 input parameters) Name: GetRayCollisionBox Return type: RayCollision Description: Get collision info between ray and box Param[1]: ray (type: Ray) Param[2]: box (type: BoundingBox) -Function 529: GetRayCollisionMesh() (3 input parameters) +Function 531: GetRayCollisionMesh() (3 input parameters) Name: GetRayCollisionMesh Return type: RayCollision Description: Get collision info between ray and mesh Param[1]: ray (type: Ray) Param[2]: mesh (type: Mesh) Param[3]: transform (type: Matrix) -Function 530: GetRayCollisionTriangle() (4 input parameters) +Function 532: GetRayCollisionTriangle() (4 input parameters) Name: GetRayCollisionTriangle Return type: RayCollision Description: Get collision info between ray and triangle @@ -4429,7 +4447,7 @@ Function 530: GetRayCollisionTriangle() (4 input parameters) Param[2]: p1 (type: Vector3) Param[3]: p2 (type: Vector3) Param[4]: p3 (type: Vector3) -Function 531: GetRayCollisionQuad() (5 input parameters) +Function 533: GetRayCollisionQuad() (5 input parameters) Name: GetRayCollisionQuad Return type: RayCollision Description: Get collision info between ray and quad @@ -4438,158 +4456,158 @@ Function 531: GetRayCollisionQuad() (5 input parameters) Param[3]: p2 (type: Vector3) Param[4]: p3 (type: Vector3) Param[5]: p4 (type: Vector3) -Function 532: InitAudioDevice() (0 input parameters) +Function 534: InitAudioDevice() (0 input parameters) Name: InitAudioDevice Return type: void Description: Initialize audio device and context No input parameters -Function 533: CloseAudioDevice() (0 input parameters) +Function 535: CloseAudioDevice() (0 input parameters) Name: CloseAudioDevice Return type: void Description: Close the audio device and context No input parameters -Function 534: IsAudioDeviceReady() (0 input parameters) +Function 536: IsAudioDeviceReady() (0 input parameters) Name: IsAudioDeviceReady Return type: bool Description: Check if audio device has been initialized successfully No input parameters -Function 535: SetMasterVolume() (1 input parameters) +Function 537: SetMasterVolume() (1 input parameters) Name: SetMasterVolume Return type: void Description: Set master volume (listener) Param[1]: volume (type: float) -Function 536: GetMasterVolume() (0 input parameters) +Function 538: GetMasterVolume() (0 input parameters) Name: GetMasterVolume Return type: float Description: Get master volume (listener) No input parameters -Function 537: LoadWave() (1 input parameters) +Function 539: LoadWave() (1 input parameters) Name: LoadWave Return type: Wave Description: Load wave data from file Param[1]: fileName (type: const char *) -Function 538: LoadWaveFromMemory() (3 input parameters) +Function 540: LoadWaveFromMemory() (3 input parameters) Name: LoadWaveFromMemory Return type: Wave Description: Load wave from memory buffer, fileType refers to extension: i.e. '.wav' Param[1]: fileType (type: const char *) Param[2]: fileData (type: const unsigned char *) Param[3]: dataSize (type: int) -Function 539: IsWaveValid() (1 input parameters) +Function 541: IsWaveValid() (1 input parameters) Name: IsWaveValid Return type: bool Description: Checks if wave data is valid (data loaded and parameters) Param[1]: wave (type: Wave) -Function 540: LoadSound() (1 input parameters) +Function 542: LoadSound() (1 input parameters) Name: LoadSound Return type: Sound Description: Load sound from file Param[1]: fileName (type: const char *) -Function 541: LoadSoundFromWave() (1 input parameters) +Function 543: LoadSoundFromWave() (1 input parameters) Name: LoadSoundFromWave Return type: Sound Description: Load sound from wave data Param[1]: wave (type: Wave) -Function 542: LoadSoundAlias() (1 input parameters) +Function 544: LoadSoundAlias() (1 input parameters) Name: LoadSoundAlias Return type: Sound Description: Create a new sound that shares the same sample data as the source sound, does not own the sound data Param[1]: source (type: Sound) -Function 543: IsSoundValid() (1 input parameters) +Function 545: IsSoundValid() (1 input parameters) Name: IsSoundValid Return type: bool Description: Checks if a sound is valid (data loaded and buffers initialized) Param[1]: sound (type: Sound) -Function 544: UpdateSound() (3 input parameters) +Function 546: UpdateSound() (3 input parameters) Name: UpdateSound Return type: void Description: Update sound buffer with new data (data and frame count should fit in sound) Param[1]: sound (type: Sound) Param[2]: data (type: const void *) Param[3]: sampleCount (type: int) -Function 545: UnloadWave() (1 input parameters) +Function 547: UnloadWave() (1 input parameters) Name: UnloadWave Return type: void Description: Unload wave data Param[1]: wave (type: Wave) -Function 546: UnloadSound() (1 input parameters) +Function 548: UnloadSound() (1 input parameters) Name: UnloadSound Return type: void Description: Unload sound Param[1]: sound (type: Sound) -Function 547: UnloadSoundAlias() (1 input parameters) +Function 549: UnloadSoundAlias() (1 input parameters) Name: UnloadSoundAlias Return type: void Description: Unload a sound alias (does not deallocate sample data) Param[1]: alias (type: Sound) -Function 548: ExportWave() (2 input parameters) +Function 550: ExportWave() (2 input parameters) Name: ExportWave Return type: bool Description: Export wave data to file, returns true on success Param[1]: wave (type: Wave) Param[2]: fileName (type: const char *) -Function 549: ExportWaveAsCode() (2 input parameters) +Function 551: ExportWaveAsCode() (2 input parameters) Name: ExportWaveAsCode Return type: bool Description: Export wave sample data to code (.h), returns true on success Param[1]: wave (type: Wave) Param[2]: fileName (type: const char *) -Function 550: PlaySound() (1 input parameters) +Function 552: PlaySound() (1 input parameters) Name: PlaySound Return type: void Description: Play a sound Param[1]: sound (type: Sound) -Function 551: StopSound() (1 input parameters) +Function 553: StopSound() (1 input parameters) Name: StopSound Return type: void Description: Stop playing a sound Param[1]: sound (type: Sound) -Function 552: PauseSound() (1 input parameters) +Function 554: PauseSound() (1 input parameters) Name: PauseSound Return type: void Description: Pause a sound Param[1]: sound (type: Sound) -Function 553: ResumeSound() (1 input parameters) +Function 555: ResumeSound() (1 input parameters) Name: ResumeSound Return type: void Description: Resume a paused sound Param[1]: sound (type: Sound) -Function 554: IsSoundPlaying() (1 input parameters) +Function 556: IsSoundPlaying() (1 input parameters) Name: IsSoundPlaying Return type: bool Description: Check if a sound is currently playing Param[1]: sound (type: Sound) -Function 555: SetSoundVolume() (2 input parameters) +Function 557: SetSoundVolume() (2 input parameters) Name: SetSoundVolume Return type: void Description: Set volume for a sound (1.0 is max level) Param[1]: sound (type: Sound) Param[2]: volume (type: float) -Function 556: SetSoundPitch() (2 input parameters) +Function 558: SetSoundPitch() (2 input parameters) Name: SetSoundPitch Return type: void Description: Set pitch for a sound (1.0 is base level) Param[1]: sound (type: Sound) Param[2]: pitch (type: float) -Function 557: SetSoundPan() (2 input parameters) +Function 559: SetSoundPan() (2 input parameters) Name: SetSoundPan Return type: void Description: Set pan for a sound (0.5 is center) Param[1]: sound (type: Sound) Param[2]: pan (type: float) -Function 558: WaveCopy() (1 input parameters) +Function 560: WaveCopy() (1 input parameters) Name: WaveCopy Return type: Wave Description: Copy a wave to a new wave Param[1]: wave (type: Wave) -Function 559: WaveCrop() (3 input parameters) +Function 561: WaveCrop() (3 input parameters) Name: WaveCrop Return type: void Description: Crop a wave to defined frames range Param[1]: wave (type: Wave *) Param[2]: initFrame (type: int) Param[3]: finalFrame (type: int) -Function 560: WaveFormat() (4 input parameters) +Function 562: WaveFormat() (4 input parameters) Name: WaveFormat Return type: void Description: Convert wave data to desired format @@ -4597,203 +4615,203 @@ Function 560: WaveFormat() (4 input parameters) Param[2]: sampleRate (type: int) Param[3]: sampleSize (type: int) Param[4]: channels (type: int) -Function 561: LoadWaveSamples() (1 input parameters) +Function 563: LoadWaveSamples() (1 input parameters) Name: LoadWaveSamples Return type: float * Description: Load samples data from wave as a 32bit float data array Param[1]: wave (type: Wave) -Function 562: UnloadWaveSamples() (1 input parameters) +Function 564: UnloadWaveSamples() (1 input parameters) Name: UnloadWaveSamples Return type: void Description: Unload samples data loaded with LoadWaveSamples() Param[1]: samples (type: float *) -Function 563: LoadMusicStream() (1 input parameters) +Function 565: LoadMusicStream() (1 input parameters) Name: LoadMusicStream Return type: Music Description: Load music stream from file Param[1]: fileName (type: const char *) -Function 564: LoadMusicStreamFromMemory() (3 input parameters) +Function 566: LoadMusicStreamFromMemory() (3 input parameters) Name: LoadMusicStreamFromMemory Return type: Music Description: Load music stream from data Param[1]: fileType (type: const char *) Param[2]: data (type: const unsigned char *) Param[3]: dataSize (type: int) -Function 565: IsMusicValid() (1 input parameters) +Function 567: IsMusicValid() (1 input parameters) Name: IsMusicValid Return type: bool Description: Checks if a music stream is valid (context and buffers initialized) Param[1]: music (type: Music) -Function 566: UnloadMusicStream() (1 input parameters) +Function 568: UnloadMusicStream() (1 input parameters) Name: UnloadMusicStream Return type: void Description: Unload music stream Param[1]: music (type: Music) -Function 567: PlayMusicStream() (1 input parameters) +Function 569: PlayMusicStream() (1 input parameters) Name: PlayMusicStream Return type: void Description: Start music playing Param[1]: music (type: Music) -Function 568: IsMusicStreamPlaying() (1 input parameters) +Function 570: IsMusicStreamPlaying() (1 input parameters) Name: IsMusicStreamPlaying Return type: bool Description: Check if music is playing Param[1]: music (type: Music) -Function 569: UpdateMusicStream() (1 input parameters) +Function 571: UpdateMusicStream() (1 input parameters) Name: UpdateMusicStream Return type: void Description: Updates buffers for music streaming Param[1]: music (type: Music) -Function 570: StopMusicStream() (1 input parameters) +Function 572: StopMusicStream() (1 input parameters) Name: StopMusicStream Return type: void Description: Stop music playing Param[1]: music (type: Music) -Function 571: PauseMusicStream() (1 input parameters) +Function 573: PauseMusicStream() (1 input parameters) Name: PauseMusicStream Return type: void Description: Pause music playing Param[1]: music (type: Music) -Function 572: ResumeMusicStream() (1 input parameters) +Function 574: ResumeMusicStream() (1 input parameters) Name: ResumeMusicStream Return type: void Description: Resume playing paused music Param[1]: music (type: Music) -Function 573: SeekMusicStream() (2 input parameters) +Function 575: SeekMusicStream() (2 input parameters) Name: SeekMusicStream Return type: void Description: Seek music to a position (in seconds) Param[1]: music (type: Music) Param[2]: position (type: float) -Function 574: SetMusicVolume() (2 input parameters) +Function 576: SetMusicVolume() (2 input parameters) Name: SetMusicVolume Return type: void Description: Set volume for music (1.0 is max level) Param[1]: music (type: Music) Param[2]: volume (type: float) -Function 575: SetMusicPitch() (2 input parameters) +Function 577: SetMusicPitch() (2 input parameters) Name: SetMusicPitch Return type: void Description: Set pitch for a music (1.0 is base level) Param[1]: music (type: Music) Param[2]: pitch (type: float) -Function 576: SetMusicPan() (2 input parameters) +Function 578: SetMusicPan() (2 input parameters) Name: SetMusicPan Return type: void Description: Set pan for a music (0.5 is center) Param[1]: music (type: Music) Param[2]: pan (type: float) -Function 577: GetMusicTimeLength() (1 input parameters) +Function 579: GetMusicTimeLength() (1 input parameters) Name: GetMusicTimeLength Return type: float Description: Get music time length (in seconds) Param[1]: music (type: Music) -Function 578: GetMusicTimePlayed() (1 input parameters) +Function 580: GetMusicTimePlayed() (1 input parameters) Name: GetMusicTimePlayed Return type: float Description: Get current music time played (in seconds) Param[1]: music (type: Music) -Function 579: LoadAudioStream() (3 input parameters) +Function 581: LoadAudioStream() (3 input parameters) Name: LoadAudioStream Return type: AudioStream Description: Load audio stream (to stream raw audio pcm data) Param[1]: sampleRate (type: unsigned int) Param[2]: sampleSize (type: unsigned int) Param[3]: channels (type: unsigned int) -Function 580: IsAudioStreamValid() (1 input parameters) +Function 582: IsAudioStreamValid() (1 input parameters) Name: IsAudioStreamValid Return type: bool Description: Checks if an audio stream is valid (buffers initialized) Param[1]: stream (type: AudioStream) -Function 581: UnloadAudioStream() (1 input parameters) +Function 583: UnloadAudioStream() (1 input parameters) Name: UnloadAudioStream Return type: void Description: Unload audio stream and free memory Param[1]: stream (type: AudioStream) -Function 582: UpdateAudioStream() (3 input parameters) +Function 584: UpdateAudioStream() (3 input parameters) Name: UpdateAudioStream Return type: void Description: Update audio stream buffers with data Param[1]: stream (type: AudioStream) Param[2]: data (type: const void *) Param[3]: frameCount (type: int) -Function 583: IsAudioStreamProcessed() (1 input parameters) +Function 585: IsAudioStreamProcessed() (1 input parameters) Name: IsAudioStreamProcessed Return type: bool Description: Check if any audio stream buffers requires refill Param[1]: stream (type: AudioStream) -Function 584: PlayAudioStream() (1 input parameters) +Function 586: PlayAudioStream() (1 input parameters) Name: PlayAudioStream Return type: void Description: Play audio stream Param[1]: stream (type: AudioStream) -Function 585: PauseAudioStream() (1 input parameters) +Function 587: PauseAudioStream() (1 input parameters) Name: PauseAudioStream Return type: void Description: Pause audio stream Param[1]: stream (type: AudioStream) -Function 586: ResumeAudioStream() (1 input parameters) +Function 588: ResumeAudioStream() (1 input parameters) Name: ResumeAudioStream Return type: void Description: Resume audio stream Param[1]: stream (type: AudioStream) -Function 587: IsAudioStreamPlaying() (1 input parameters) +Function 589: IsAudioStreamPlaying() (1 input parameters) Name: IsAudioStreamPlaying Return type: bool Description: Check if audio stream is playing Param[1]: stream (type: AudioStream) -Function 588: StopAudioStream() (1 input parameters) +Function 590: StopAudioStream() (1 input parameters) Name: StopAudioStream Return type: void Description: Stop audio stream Param[1]: stream (type: AudioStream) -Function 589: SetAudioStreamVolume() (2 input parameters) +Function 591: SetAudioStreamVolume() (2 input parameters) Name: SetAudioStreamVolume Return type: void Description: Set volume for audio stream (1.0 is max level) Param[1]: stream (type: AudioStream) Param[2]: volume (type: float) -Function 590: SetAudioStreamPitch() (2 input parameters) +Function 592: SetAudioStreamPitch() (2 input parameters) Name: SetAudioStreamPitch Return type: void Description: Set pitch for audio stream (1.0 is base level) Param[1]: stream (type: AudioStream) Param[2]: pitch (type: float) -Function 591: SetAudioStreamPan() (2 input parameters) +Function 593: SetAudioStreamPan() (2 input parameters) Name: SetAudioStreamPan Return type: void Description: Set pan for audio stream (0.5 is centered) Param[1]: stream (type: AudioStream) Param[2]: pan (type: float) -Function 592: SetAudioStreamBufferSizeDefault() (1 input parameters) +Function 594: SetAudioStreamBufferSizeDefault() (1 input parameters) Name: SetAudioStreamBufferSizeDefault Return type: void Description: Default size for new audio streams Param[1]: size (type: int) -Function 593: SetAudioStreamCallback() (2 input parameters) +Function 595: SetAudioStreamCallback() (2 input parameters) Name: SetAudioStreamCallback Return type: void Description: Audio thread callback to request new data Param[1]: stream (type: AudioStream) Param[2]: callback (type: AudioCallback) -Function 594: AttachAudioStreamProcessor() (2 input parameters) +Function 596: AttachAudioStreamProcessor() (2 input parameters) Name: AttachAudioStreamProcessor Return type: void Description: Attach audio stream processor to stream, receives frames x 2 samples as 'float' (stereo) Param[1]: stream (type: AudioStream) Param[2]: processor (type: AudioCallback) -Function 595: DetachAudioStreamProcessor() (2 input parameters) +Function 597: DetachAudioStreamProcessor() (2 input parameters) Name: DetachAudioStreamProcessor Return type: void Description: Detach audio stream processor from stream Param[1]: stream (type: AudioStream) Param[2]: processor (type: AudioCallback) -Function 596: AttachAudioMixedProcessor() (1 input parameters) +Function 598: AttachAudioMixedProcessor() (1 input parameters) Name: AttachAudioMixedProcessor Return type: void Description: Attach audio stream processor to the entire audio pipeline, receives frames x 2 samples as 'float' (stereo) Param[1]: processor (type: AudioCallback) -Function 597: DetachAudioMixedProcessor() (1 input parameters) +Function 599: DetachAudioMixedProcessor() (1 input parameters) Name: DetachAudioMixedProcessor Return type: void Description: Detach audio stream processor from the entire audio pipeline diff --git a/parser/output/raylib_api.xml b/parser/output/raylib_api.xml index 0def04e0ad14..993b5595daa7 100644 --- a/parser/output/raylib_api.xml +++ b/parser/output/raylib_api.xml @@ -679,7 +679,7 @@ - + @@ -1681,6 +1681,20 @@ + + + + + + + + + + + + + +