Module Raylib_shapes

Basic Shapes Drawing Functions (Module: shapes)

val set_shapes_texture : Raylib_core.Texture.t -> Raylib_core.Rectangle.t -> unit

set_shapes_texture texture source Set texture and rectangle to be used on shapes drawing

val get_shapes_texture : unit -> Raylib_core.Texture.t

get_shapes_texture () Get texture that is used for shapes drawing

val get_shapes_texture_rectangle : unit -> Raylib_core.Rectangle.t

get_shapes_texture_rectangle () Get texture source rectangle that is used for shapes drawing

val draw_pixel : int -> int -> Raylib_core.Color.t -> unit

draw_pixel pos_x pos_y color Draw a pixel using geometry Can be slow, use with care

val draw_pixel_v : Raylib_core.Vector2.t -> Raylib_core.Color.t -> unit

draw_pixel_v position color Draw a pixel using geometry (Vector version) Can be slow, use with care

val draw_line : int -> int -> int -> int -> Raylib_core.Color.t -> unit

draw_line start_pos_x start_pos_y end_pos_x end_pos_y color Draw a line

draw_line_v start_pos end_pos color Draw a line (using gl lines)

val draw_line_ex : Raylib_core.Vector2.t -> Raylib_core.Vector2.t -> float -> Raylib_core.Color.t -> unit

draw_line_ex start_pos end_pos thick color Draw a line (using triangles/quads)

val draw_line_strip : Raylib_core.Vector2.t Raylib_core.ptr -> int -> Raylib_core.Color.t -> unit

draw_line_strip points point_count color Draw lines sequence (using gl lines)

val draw_line_bezier : Raylib_core.Vector2.t -> Raylib_core.Vector2.t -> float -> Raylib_core.Color.t -> unit

draw_line_bezier start_pos end_pos thick color Draw line segment cubic-bezier in-out interpolation

val draw_line_dashed : Raylib_core.Vector2.t -> Raylib_core.Vector2.t -> int -> int -> Raylib_core.Color.t -> unit

draw_line_dashed start_pos end_pos dash_size space_size color Draw a dashed line

val draw_circle : int -> int -> float -> Raylib_core.Color.t -> unit

draw_circle center_x center_y radius color Draw a color-filled circle

val draw_circle_v : Raylib_core.Vector2.t -> float -> Raylib_core.Color.t -> unit

draw_circle_v center radius color Draw a color-filled circle (Vector version)

val draw_circle_gradient : Raylib_core.Vector2.t -> float -> Raylib_core.Color.t -> Raylib_core.Color.t -> unit

draw_circle_gradient center radius inner outer Draw a gradient-filled circle

val draw_circle_sector : Raylib_core.Vector2.t -> float -> float -> float -> int -> Raylib_core.Color.t -> unit

draw_circle_sector center radius start_angle end_angle segments color Draw a piece of a circle

val draw_circle_sector_lines : Raylib_core.Vector2.t -> float -> float -> float -> int -> Raylib_core.Color.t -> unit

draw_circle_sector_lines center radius start_angle end_angle segments color Draw circle sector outline

val draw_circle_lines : int -> int -> float -> Raylib_core.Color.t -> unit

draw_circle_lines center_x center_y radius color Draw circle outline

val draw_circle_lines_v : Raylib_core.Vector2.t -> float -> Raylib_core.Color.t -> unit

draw_circle_lines_v center radius color Draw circle outline (Vector version)

val draw_ellipse : int -> int -> float -> float -> Raylib_core.Color.t -> unit

draw_ellipse center_x center_y radius_h radius_v color Draw ellipse

val draw_ellipse_v : Raylib_core.Vector2.t -> float -> float -> Raylib_core.Color.t -> unit

draw_ellipse_v center radius_h radius_v color Draw ellipse (Vector version)

val draw_ellipse_lines : int -> int -> float -> float -> Raylib_core.Color.t -> unit

draw_ellipse_lines center_x center_y radius_h radius_v color Draw ellipse outline

val draw_ellipse_lines_v : Raylib_core.Vector2.t -> float -> float -> Raylib_core.Color.t -> unit

draw_ellipse_lines_v center radius_h radius_v color Draw ellipse outline (Vector version)

val draw_ring : Raylib_core.Vector2.t -> float -> float -> float -> float -> int -> Raylib_core.Color.t -> unit

draw_ring center inner_radius outer_radius start_angle end_angle segments color Draw ring

val draw_ring_lines : Raylib_core.Vector2.t -> float -> float -> float -> float -> int -> Raylib_core.Color.t -> unit

draw_ring_lines center inner_radius outer_radius start_angle end_angle segments color Draw ring outline

val draw_rectangle : int -> int -> int -> int -> Raylib_core.Color.t -> unit

draw_rectangle pos_x pos_y width height color Draw a color-filled rectangle

draw_rectangle_v position size color Draw a color-filled rectangle (Vector version)

val draw_rectangle_rec : Raylib_core.Rectangle.t -> Raylib_core.Color.t -> unit

draw_rectangle_rec rec color Draw a color-filled rectangle

val draw_rectangle_pro : Raylib_core.Rectangle.t -> Raylib_core.Vector2.t -> float -> Raylib_core.Color.t -> unit

draw_rectangle_pro rec origin rotation color Draw a color-filled rectangle with pro parameters

val draw_rectangle_gradient_v : int -> int -> int -> int -> Raylib_core.Color.t -> Raylib_core.Color.t -> unit

draw_rectangle_gradient_v pos_x pos_y width height top bottom Draw a vertical-gradient-filled rectangle

val draw_rectangle_gradient_h : int -> int -> int -> int -> Raylib_core.Color.t -> Raylib_core.Color.t -> unit

draw_rectangle_gradient_h pos_x pos_y width height left right Draw a horizontal-gradient-filled rectangle

draw_rectangle_gradient_ex rec top_left bottom_left bottom_right top_right Draw a gradient-filled rectangle with custom vertex colors

val draw_rectangle_lines : int -> int -> int -> int -> Raylib_core.Color.t -> unit

draw_rectangle_lines pos_x pos_y width height color Draw rectangle outline

val draw_rectangle_lines_ex : Raylib_core.Rectangle.t -> float -> Raylib_core.Color.t -> unit

draw_rectangle_lines_ex rec line_thick color Draw rectangle outline with extended parameters

val draw_rectangle_rounded : Raylib_core.Rectangle.t -> float -> int -> Raylib_core.Color.t -> unit

draw_rectangle_rounded rec roundness segments color Draw rectangle with rounded edges

val draw_rectangle_rounded_lines : Raylib_core.Rectangle.t -> float -> int -> Raylib_core.Color.t -> unit

draw_rectangle_rounded_lines rec roundness segments color Draw rectangle lines with rounded edges

val draw_rectangle_rounded_lines_ex : Raylib_core.Rectangle.t -> float -> int -> float -> Raylib_core.Color.t -> unit

draw_rectangle_rounded_lines_ex rec roundness segments line_thick color Draw rectangle with rounded edges outline

draw_triangle v1 v2 v3 color Draw a color-filled triangle (vertex in counter-clockwise order!)

draw_triangle_lines v1 v2 v3 color Draw triangle outline (vertex in counter-clockwise order!)

val draw_triangle_fan : Raylib_core.Vector2.t Raylib_core.ptr -> int -> Raylib_core.Color.t -> unit

draw_triangle_fan points point_count color Draw a triangle fan defined by points (first vertex is the center)

val draw_triangle_strip : Raylib_core.Vector2.t Raylib_core.ptr -> int -> Raylib_core.Color.t -> unit

draw_triangle_strip points point_count color Draw a triangle strip defined by points

val draw_poly : Raylib_core.Vector2.t -> int -> float -> float -> Raylib_core.Color.t -> unit

draw_poly center sides radius rotation color Draw a regular polygon (Vector version)

val draw_poly_lines : Raylib_core.Vector2.t -> int -> float -> float -> Raylib_core.Color.t -> unit

draw_poly_lines center sides radius rotation color Draw a polygon outline of n sides

val draw_poly_lines_ex : Raylib_core.Vector2.t -> int -> float -> float -> float -> Raylib_core.Color.t -> unit

draw_poly_lines_ex center sides radius rotation line_thick color Draw a polygon outline of n sides with extended parameters

val draw_spline_linear : Raylib_core.Vector2.t Raylib_core.ptr -> int -> float -> Raylib_core.Color.t -> unit

draw_spline_linear points point_count thick color Draw spline: Linear, minimum 2 points

val draw_spline_basis : Raylib_core.Vector2.t Raylib_core.ptr -> int -> float -> Raylib_core.Color.t -> unit

draw_spline_basis points point_count thick color Draw spline: B-Spline, minimum 4 points

val draw_spline_catmull_rom : Raylib_core.Vector2.t Raylib_core.ptr -> int -> float -> Raylib_core.Color.t -> unit

draw_spline_catmull_rom points point_count thick color Draw spline: Catmull-Rom, minimum 4 points

val draw_spline_bezier_quadratic : Raylib_core.Vector2.t Raylib_core.ptr -> int -> float -> Raylib_core.Color.t -> unit

draw_spline_bezier_quadratic points point_count thick color Draw spline: Quadratic Bezier, minimum 3 points (1 control point): p1, c2, p3, c4...

val draw_spline_bezier_cubic : Raylib_core.Vector2.t Raylib_core.ptr -> int -> float -> Raylib_core.Color.t -> unit

draw_spline_bezier_cubic points point_count thick color Draw spline: Cubic Bezier, minimum 4 points (2 control points): p1, c2, c3, p4, c5, c6...

val draw_spline_segment_linear : Raylib_core.Vector2.t -> Raylib_core.Vector2.t -> float -> Raylib_core.Color.t -> unit

draw_spline_segment_linear p1 p2 thick color Draw spline segment: Linear, 2 points

draw_spline_segment_basis p1 p2 p3 p4 thick color Draw spline segment: B-Spline, 4 points

val draw_spline_segment_catmull_rom : Raylib_core.Vector2.t -> Raylib_core.Vector2.t -> Raylib_core.Vector2.t -> Raylib_core.Vector2.t -> float -> Raylib_core.Color.t -> unit

draw_spline_segment_catmull_rom p1 p2 p3 p4 thick color Draw spline segment: Catmull-Rom, 4 points

val draw_spline_segment_bezier_quadratic : Raylib_core.Vector2.t -> Raylib_core.Vector2.t -> Raylib_core.Vector2.t -> float -> Raylib_core.Color.t -> unit

draw_spline_segment_bezier_quadratic p1 c2 p3 thick color Draw spline segment: Quadratic Bezier, 2 points, 1 control point

val draw_spline_segment_bezier_cubic : Raylib_core.Vector2.t -> Raylib_core.Vector2.t -> Raylib_core.Vector2.t -> Raylib_core.Vector2.t -> float -> Raylib_core.Color.t -> unit

draw_spline_segment_bezier_cubic p1 c2 c3 p4 thick color Draw spline segment: Cubic Bezier, 2 points, 2 control points

val get_spline_point_linear : Raylib_core.Vector2.t -> Raylib_core.Vector2.t -> float -> Raylib_core.Vector2.t

get_spline_point_linear start_pos end_pos t Get (evaluate) spline point: Linear

get_spline_point_basis p1 p2 p3 p4 t Get (evaluate) spline point: B-Spline

get_spline_point_catmull_rom p1 p2 p3 p4 t Get (evaluate) spline point: Catmull-Rom

val get_spline_point_bezier_quad : Raylib_core.Vector2.t -> Raylib_core.Vector2.t -> Raylib_core.Vector2.t -> float -> Raylib_core.Vector2.t

get_spline_point_bezier_quad p1 c2 p3 t Get (evaluate) spline point: Quadratic Bezier

get_spline_point_bezier_cubic p1 c2 c3 p4 t Get (evaluate) spline point: Cubic Bezier

Basic shapes collision detection functions

val check_collision_recs : Raylib_core.Rectangle.t -> Raylib_core.Rectangle.t -> bool

check_collision_recs rec1 rec2 Check collision between two rectangles

val check_collision_circles : Raylib_core.Vector2.t -> float -> Raylib_core.Vector2.t -> float -> bool

check_collision_circles center1 radius1 center2 radius2 Check collision between two circles

val check_collision_circle_rec : Raylib_core.Vector2.t -> float -> Raylib_core.Rectangle.t -> bool

check_collision_circle_rec center radius rec Check collision between circle and rectangle

val check_collision_circle_line : Raylib_core.Vector2.t -> float -> Raylib_core.Vector2.t -> Raylib_core.Vector2.t -> bool

check_collision_circle_line center radius p1 p2 Check if circle collides with a line created betweeen two points p1 and p2

val check_collision_point_rec : Raylib_core.Vector2.t -> Raylib_core.Rectangle.t -> bool

check_collision_point_rec point rec Check if point is inside rectangle

val check_collision_point_circle : Raylib_core.Vector2.t -> Raylib_core.Vector2.t -> float -> bool

check_collision_point_circle point center radius Check if point is inside circle

val check_collision_point_triangle : Raylib_core.Vector2.t -> Raylib_core.Vector2.t -> Raylib_core.Vector2.t -> Raylib_core.Vector2.t -> bool

check_collision_point_triangle point p1 p2 p3 Check if point is inside a triangle

val check_collision_point_line : Raylib_core.Vector2.t -> Raylib_core.Vector2.t -> Raylib_core.Vector2.t -> int -> bool

check_collision_point_line point p1 p2 threshold Check if point belongs to line created between two points p1 and p2 with defined margin in pixels threshold

val check_collision_point_poly : Raylib_core.Vector2.t -> Raylib_core.Vector2.t Raylib_core.ptr -> int -> bool

check_collision_point_poly point points point_count Check if point is within a polygon described by array of vertices

check_collision_lines start_pos1 end_pos1 start_pos2 end_pos2 collision_point Check the collision between two lines defined by two points each, returns collision point by reference

get_collision_rec rec1 rec2 Get collision rectangle for two rectangles collision