Draw Module
Pipe-friendly drawing DSL. Each function takes a RenderBuffer2D as its last argument, adds the corresponding command, and returns the buffer for chaining.
Commands are built via Command2D and added to the buffer. Partial application of styling parameters (layer, color, thickness) is supported — bind them once and reuse across multiple draw calls.
Usage:
buffer
|> Draw.beginCamera 0<RenderLayer> worldCamera
|> Draw.fillRect (10<RenderLayer>, Color.Red) groundRect
|> Draw.fillCircle (10<RenderLayer>, Color.Blue) (center, radius)
|> Draw.line (5<RenderLayer>, Color.Green) (p1, p2)
|> Draw.endCamera 1000<RenderLayer>
|> Draw.drop
Functions and values
| Function or value |
Description
|
Full Usage:
beginCamera layer camera buffer
Parameters:
int<MeasureProduct<RenderLayer, MeasureOne>>
camera : Camera2D
buffer : RenderBuffer2D
Returns: RenderBuffer2D
Modifiers: inline |
Begins a 2D camera transform. (layer) can be partially applied.
|
Full Usage:
beginCameraWith layer config buffer
Parameters:
int<MeasureProduct<RenderLayer, MeasureOne>>
config : Camera2DConfig
buffer : RenderBuffer2D
Returns: RenderBuffer2D
Modifiers: inline |
Begins a 2D camera with explicit rendering config (viewport, clear). (layer) can be partially applied.
|
Full Usage:
beginShader layer shader buffer
Parameters:
int<MeasureProduct<RenderLayer, MeasureOne>>
shader : Shader
buffer : RenderBuffer2D
Returns: RenderBuffer2D
Modifiers: inline |
Begins a shader mode. (layer) can be partially applied.
|
Full Usage:
beginTarget layer target buffer
Parameters:
int<MeasureProduct<RenderLayer, MeasureOne>>
target : RenderTexture2D
buffer : RenderBuffer2D
Returns: RenderBuffer2D
Modifiers: inline |
Begins rendering to a render texture. (layer) can be partially applied.
|
Full Usage:
bezier (layer, color, thickness) (start, control, finish) buffer
Parameters:
int<MeasureProduct<RenderLayer, MeasureOne>>
color : Color
thickness : float32
start : Vector2
control : Vector2
finish : Vector2
buffer : RenderBuffer2D
Returns: RenderBuffer2D
Modifiers: inline |
Quadratic bezier curve. (layer, color, thickness) can be partially applied.
|
Full Usage:
circleGradient layer (centerX, centerY, radius, inner, outer) buffer
Parameters:
int<MeasureProduct<RenderLayer, MeasureOne>>
centerX : int
centerY : int
radius : float32
inner : Color
outer : Color
buffer : RenderBuffer2D
Returns: RenderBuffer2D
Modifiers: inline |
Gradient circle. (layer) can be partially applied.
|
Full Usage:
circleOutline (layer, color) (center, radius) buffer
Parameters:
int<MeasureProduct<RenderLayer, MeasureOne>>
color : Color
center : Vector2
radius : float32
buffer : RenderBuffer2D
Returns: RenderBuffer2D
Modifiers: inline |
Circle outline. (layer, color) can be partially applied.
|
Full Usage:
circleSector (layer, color) (center, radius, startAngle, endAngle, segments) buffer
Parameters:
int<MeasureProduct<RenderLayer, MeasureOne>>
color : Color
center : Vector2
radius : float32
startAngle : float32
endAngle : float32
segments : int
buffer : RenderBuffer2D
Returns: RenderBuffer2D
Modifiers: inline |
Filled circle sector (pie slice). (layer, color) can be partially applied.
|
Full Usage:
circleSectorOutline (layer, color) (center, radius, startAngle, endAngle, segments) buffer
Parameters:
int<MeasureProduct<RenderLayer, MeasureOne>>
color : Color
center : Vector2
radius : float32
startAngle : float32
endAngle : float32
segments : int
buffer : RenderBuffer2D
Returns: RenderBuffer2D
Modifiers: inline |
Circle sector outline. (layer, color) can be partially applied.
|
Full Usage:
clear layer color buffer
Parameters:
int<MeasureProduct<RenderLayer, MeasureOne>>
color : Color
buffer : RenderBuffer2D
Returns: RenderBuffer2D
Modifiers: inline |
Clears the current framebuffer to the given color.
|
Full Usage:
clearScissor layer buffer
Parameters:
int<MeasureProduct<RenderLayer, MeasureOne>>
buffer : RenderBuffer2D
Returns: RenderBuffer2D
Modifiers: inline |
Disables scissor testing.
|
Full Usage:
disableShadows layer lightCtx buffer
Parameters:
int<MeasureProduct<RenderLayer, MeasureOne>>
lightCtx : LightContext2D
buffer : RenderBuffer2D
Returns: RenderBuffer2D
Modifiers: inline |
Disables shadow casting for the given light context. (layer) can be partially applied.
|
Full Usage:
drawImmediate layer action buffer
Parameters:
int<MeasureProduct<RenderLayer, MeasureOne>>
action : unit -> unit
buffer : RenderBuffer2D
Returns: RenderBuffer2D
Modifiers: inline |
Flushes raylib's batch, exits camera/shader, runs action, restores state. (layer) can be partially applied.
|
|
Terminal function that discards the buffer, silencing the unused-value warning. Does nothing.
|
Full Usage:
ellipseOutline (layer, color) (centerX, centerY, radiusH, radiusV) buffer
Parameters:
int<MeasureProduct<RenderLayer, MeasureOne>>
color : Color
centerX : int
centerY : int
radiusH : float32
radiusV : float32
buffer : RenderBuffer2D
Returns: RenderBuffer2D
Modifiers: inline |
Ellipse outline. (layer, color) can be partially applied.
|
Full Usage:
enableShadows layer lightCtx buffer
Parameters:
int<MeasureProduct<RenderLayer, MeasureOne>>
lightCtx : LightContext2D
buffer : RenderBuffer2D
Returns: RenderBuffer2D
Modifiers: inline |
Enables shadow casting for the given light context. (layer) can be partially applied.
|
Full Usage:
endCamera layer buffer
Parameters:
int<MeasureProduct<RenderLayer, MeasureOne>>
buffer : RenderBuffer2D
Returns: RenderBuffer2D
Modifiers: inline |
Ends the current 2D camera transform.
|
Full Usage:
endShader layer buffer
Parameters:
int<MeasureProduct<RenderLayer, MeasureOne>>
buffer : RenderBuffer2D
Returns: RenderBuffer2D
Modifiers: inline |
Ends the current shader mode.
|
Full Usage:
endTarget layer buffer
Parameters:
int<MeasureProduct<RenderLayer, MeasureOne>>
buffer : RenderBuffer2D
Returns: RenderBuffer2D
Modifiers: inline |
Ends rendering to a render texture.
|
Full Usage:
fillCircle (layer, color) (center, radius) buffer
Parameters:
int<MeasureProduct<RenderLayer, MeasureOne>>
color : Color
center : Vector2
radius : float32
buffer : RenderBuffer2D
Returns: RenderBuffer2D
Modifiers: inline |
Filled circle. (layer, color) can be partially applied.
|
Full Usage:
fillEllipse (layer, color) (centerX, centerY, radiusH, radiusV) buffer
Parameters:
int<MeasureProduct<RenderLayer, MeasureOne>>
color : Color
centerX : int
centerY : int
radiusH : float32
radiusV : float32
buffer : RenderBuffer2D
Returns: RenderBuffer2D
Modifiers: inline |
Filled ellipse. (layer, color) can be partially applied.
|
Full Usage:
fillPoly (layer, color) (center, sides, radius, rotation) buffer
Parameters:
int<MeasureProduct<RenderLayer, MeasureOne>>
color : Color
center : Vector2
sides : int
radius : float32
rotation : float32
buffer : RenderBuffer2D
Returns: RenderBuffer2D
Modifiers: inline |
Filled regular polygon. (layer, color) can be partially applied.
|
Full Usage:
fillRect (layer, color) rect buffer
Parameters:
int<MeasureProduct<RenderLayer, MeasureOne>>
color : Color
rect : Rectangle
buffer : RenderBuffer2D
Returns: RenderBuffer2D
Modifiers: inline |
Filled rectangle. (layer, color) can be partially applied.
|
Full Usage:
fillRectRounded (layer, color, roundness, segments) rect buffer
Parameters:
int<MeasureProduct<RenderLayer, MeasureOne>>
color : Color
roundness : float32
segments : int
rect : Rectangle
buffer : RenderBuffer2D
Returns: RenderBuffer2D
Modifiers: inline |
Filled rounded rectangle. (layer, color, roundness, segments) can be partially applied.
|
Full Usage:
fillRing (layer, color) (center, innerR, outerR, startAngle, endAngle, segments) buffer
Parameters:
int<MeasureProduct<RenderLayer, MeasureOne>>
color : Color
center : Vector2
innerR : float32
outerR : float32
startAngle : float32
endAngle : float32
segments : int
buffer : RenderBuffer2D
Returns: RenderBuffer2D
Modifiers: inline |
Filled ring / arc. (layer, color) can be partially applied.
|
Full Usage:
line (layer, color) (start, finish) buffer
Parameters:
int<MeasureProduct<RenderLayer, MeasureOne>>
color : Color
start : Vector2
finish : Vector2
buffer : RenderBuffer2D
Returns: RenderBuffer2D
Modifiers: inline |
1-pixel line. (layer, color) can be partially applied.
|
Full Usage:
lineStrip (layer, color) points buffer
Parameters:
int<MeasureProduct<RenderLayer, MeasureOne>>
color : Color
points : Vector2[]
buffer : RenderBuffer2D
Returns: RenderBuffer2D
Modifiers: inline |
Connected line segments. (layer, color) can be partially applied.
|
Full Usage:
lineThick (layer, color, thickness) (start, finish) buffer
Parameters:
int<MeasureProduct<RenderLayer, MeasureOne>>
color : Color
thickness : float32
start : Vector2
finish : Vector2
buffer : RenderBuffer2D
Returns: RenderBuffer2D
Modifiers: inline |
Line with custom thickness. (layer, color, thickness) can be partially applied.
|
Full Usage:
polyOutline (layer, color, thickness) (center, sides, radius, rotation) buffer
Parameters:
int<MeasureProduct<RenderLayer, MeasureOne>>
color : Color
thickness : float32
center : Vector2
sides : int
radius : float32
rotation : float32
buffer : RenderBuffer2D
Returns: RenderBuffer2D
Modifiers: inline |
Regular polygon outline with thickness. (layer, color, thickness) can be partially applied.
|
Full Usage:
rectGradient layer (rect, tl, bl, tr, br) buffer
Parameters:
int<MeasureProduct<RenderLayer, MeasureOne>>
rect : Rectangle
tl : Color
bl : Color
tr : Color
br : Color
buffer : RenderBuffer2D
Returns: RenderBuffer2D
Modifiers: inline |
4-corner gradient rectangle. (layer) can be partially applied.
|
Full Usage:
rectGradientH layer (x, y, w, h, left, right) buffer
Parameters:
int<MeasureProduct<RenderLayer, MeasureOne>>
x : int
y : int
w : int
h : int
left : Color
right : Color
buffer : RenderBuffer2D
Returns: RenderBuffer2D
Modifiers: inline |
Horizontal gradient rectangle. (layer) can be partially applied.
|
Full Usage:
rectGradientV layer (x, y, w, h, top, bottom) buffer
Parameters:
int<MeasureProduct<RenderLayer, MeasureOne>>
x : int
y : int
w : int
h : int
top : Color
bottom : Color
buffer : RenderBuffer2D
Returns: RenderBuffer2D
Modifiers: inline |
Vertical gradient rectangle. (layer) can be partially applied.
|
Full Usage:
rectOutline (layer, color, thickness) rect buffer
Parameters:
int<MeasureProduct<RenderLayer, MeasureOne>>
color : Color
thickness : float32
rect : Rectangle
buffer : RenderBuffer2D
Returns: RenderBuffer2D
Modifiers: inline |
Rectangle outline with thickness. (layer, color, thickness) can be partially applied.
|
Full Usage:
rectRoundedOutline (layer, color, roundness, segments, thickness) rect buffer
Parameters:
int<MeasureProduct<RenderLayer, MeasureOne>>
color : Color
roundness : float32
segments : int
thickness : float32
rect : Rectangle
buffer : RenderBuffer2D
Returns: RenderBuffer2D
Modifiers: inline |
Rounded rectangle outline with thickness. (layer, color, roundness, segments, thickness) can be partially applied.
|
Full Usage:
ringOutline (layer, color) (center, innerR, outerR, startAngle, endAngle, segments) buffer
Parameters:
int<MeasureProduct<RenderLayer, MeasureOne>>
color : Color
center : Vector2
innerR : float32
outerR : float32
startAngle : float32
endAngle : float32
segments : int
buffer : RenderBuffer2D
Returns: RenderBuffer2D
Modifiers: inline |
Ring / arc outline. (layer, color) can be partially applied.
|
Full Usage:
setBlend layer mode buffer
Parameters:
int<MeasureProduct<RenderLayer, MeasureOne>>
mode : BlendMode
buffer : RenderBuffer2D
Returns: RenderBuffer2D
Modifiers: inline |
Sets the blending mode. (layer) can be partially applied.
|
Full Usage:
setLineWidth layer width buffer
Parameters:
int<MeasureProduct<RenderLayer, MeasureOne>>
width : float32
buffer : RenderBuffer2D
Returns: RenderBuffer2D
Modifiers: inline |
Sets the line width for subsequent line draws. (layer) can be partially applied.
|
Full Usage:
setScissor layer (x, y, w, h) buffer
Parameters:
int<MeasureProduct<RenderLayer, MeasureOne>>
x : int
y : int
w : int
h : int
buffer : RenderBuffer2D
Returns: RenderBuffer2D
Modifiers: inline |
Enables scissor testing. (layer) can be partially applied.
|
Full Usage:
setViewport layer (x, y, w, h) buffer
Parameters:
int<MeasureProduct<RenderLayer, MeasureOne>>
x : int
y : int
w : int
h : int
buffer : RenderBuffer2D
Returns: RenderBuffer2D
Modifiers: inline |
Sets the viewport rectangle. (layer) can be partially applied.
|
Full Usage:
sprite state buffer
Parameters:
SpriteState
buffer : RenderBuffer2D
Returns: RenderBuffer2D
Modifiers: inline |
Draws a sprite from a pre-configured SpriteState.
|
Full Usage:
text state buffer
Parameters:
TextState
buffer : RenderBuffer2D
Returns: RenderBuffer2D
Modifiers: inline |
Draws text from a pre-configured TextState.
|
Full Usage:
triangle (layer, color) (v1, v2, v3) buffer
Parameters:
int<MeasureProduct<RenderLayer, MeasureOne>>
color : Color
v1 : Vector2
v2 : Vector2
v3 : Vector2
buffer : RenderBuffer2D
Returns: RenderBuffer2D
Modifiers: inline |
Filled triangle from 3 vertices. (layer, color) can be partially applied.
|
Full Usage:
triangleFan (layer, color) points buffer
Parameters:
int<MeasureProduct<RenderLayer, MeasureOne>>
color : Color
points : Vector2[]
buffer : RenderBuffer2D
Returns: RenderBuffer2D
Modifiers: inline |
Filled triangle fan. (layer, color) can be partially applied.
|
Full Usage:
triangleStrip (layer, color) points buffer
Parameters:
int<MeasureProduct<RenderLayer, MeasureOne>>
color : Color
points : Vector2[]
buffer : RenderBuffer2D
Returns: RenderBuffer2D
Modifiers: inline |
Filled triangle strip. (layer, color) can be partially applied.
|
Mibo.Raylib