Logo Mibo

Draw Type

The unified fluent draw DSL. Chain members on the render buffer:

 buffer
   .BeginCamera(camera)
   .FillCircle(400f, 300f, 48f, Color.Blue)
   .Sprite(playerSprite)
   .EndCamera()
   .Text(font, "HP 100", Vector2(10f, 10f), 20f, layer = 1001<RenderLayer>)
 |> ignore
val ignore: value: 'T -> unit

Static members

Static member Description

Draw.addDirectionalLight (buffer, light)

Full Usage: Draw.addDirectionalLight (buffer, light)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B (requires (member AddDirectionalLight : ^B * Mibo.Elmish.Graphics3D.DirectionalLight3D -> Microsoft.FSharp.Core.unit))

Adds a directional light to the scene.

buffer : ^B
light : DirectionalLight3D
Returns: ^B

Draw.addDirectionalLight (buffer, lightCtx, direction, color, ?intensity, ?castsShadows, ?layer)

Full Usage: Draw.addDirectionalLight (buffer, lightCtx, direction, color, ?intensity, ?castsShadows, ?layer)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B, 'C (requires (member AddDirectionalLight : ^B * 'C * System.Numerics.Vector2 * Mibo.Color * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.bool * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit))

Adds a 2D directional light from parts.

buffer : ^B
lightCtx : 'C
direction : Vector2
color : Color
?intensity : float32
?castsShadows : bool
?layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Returns: ^B

Draw.addDirectionalLight (buffer, lightCtx, light, ?layer)

Full Usage: Draw.addDirectionalLight (buffer, lightCtx, light, ?layer)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B, 'C, 'L (requires (member AddDirectionalLightState : ^B * 'C * 'L * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit))

Adds a 2D directional light from the backend's light record.

buffer : ^B
lightCtx : 'C
light : 'L
?layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Returns: ^B

Draw.addOccluder (buffer, lightCtx, occluder, ?layer)

Full Usage: Draw.addOccluder (buffer, lightCtx, occluder, ?layer)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B, 'C, 'O (requires (member AddOccluder : ^B * 'C * 'O * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit))

Adds a shadow-casting occluder segment for this frame.

buffer : ^B
lightCtx : 'C
occluder : 'O
?layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Returns: ^B

Draw.addPointLight (buffer, light)

Full Usage: Draw.addPointLight (buffer, light)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B (requires (member AddPointLight : ^B * Mibo.Elmish.Graphics3D.PointLight3D -> Microsoft.FSharp.Core.unit))

Adds a point light to the scene.

buffer : ^B
light : PointLight3D
Returns: ^B

Draw.addPointLight (buffer, lightCtx, light, ?layer)

Full Usage: Draw.addPointLight (buffer, lightCtx, light, ?layer)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B, 'C, 'L (requires (member AddPointLight : ^B * 'C * 'L * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit))

Adds a 2D point light for this frame.

buffer : ^B
lightCtx : 'C
light : 'L
?layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Returns: ^B

Draw.addSpotLight (buffer, light)

Full Usage: Draw.addSpotLight (buffer, light)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B (requires (member AddSpotLight : ^B * Mibo.Elmish.Graphics3D.SpotLight3D -> Microsoft.FSharp.Core.unit))

Adds a spot light to the scene.

buffer : ^B
light : SpotLight3D
Returns: ^B

Draw.animatedModel (buffer, animModel, transform, ?pose)

Full Usage: Draw.animatedModel (buffer, animModel, transform, ?pose)

Parameters:
    buffer : ^B
    animModel : 'A
    transform : 'X
    ?pose : 'Pose

Returns: ^B
Modifiers: inline
Type parameters: ^B, 'A, 'X, 'Pose (requires (member AddAnimatedModel : ^B * 'A * 'X * 'Pose Microsoft.FSharp.Core.voption -> Microsoft.FSharp.Core.unit))

Draws an animated (skinned) model from the backend's animation state record. The witness derives the bone palette (MonoGame: from the state; raylib: applies it to the model). pose lets the caller share one pose evaluation between this draw and any number of bone queries / attachment draws (see attachedMesh). On raylib it is honored by the AnimatedModel witness (GPU skinning path) and ignored by the legacy Animation3DState witness (mutating path). When omitted, the witness computes the pose internally exactly as before.

buffer : ^B
animModel : 'A
transform : 'X
?pose : 'Pose
Returns: ^B

Draw.animatedModelInstanced (buffer, animModel, transforms, poses, ?material, ?colors)

Full Usage: Draw.animatedModelInstanced (buffer, animModel, transforms, poses, ?material, ?colors)

Parameters:
    buffer : ^B
    animModel : 'A
    transforms : 'X[]
    poses : 'Pose[]
    ?material : 'O
    ?colors : 'C[]

Returns: ^B
Modifiers: inline
Type parameters: ^B, 'A, 'X, 'Pose, 'O, 'C (requires (member AddAnimatedModelInstanced : ^B * 'A * 'X Microsoft.FSharp.Core.array * 'Pose Microsoft.FSharp.Core.array * 'O Microsoft.FSharp.Core.voption * 'C Microsoft.FSharp.Core.array Microsoft.FSharp.Core.voption -> Microsoft.FSharp.Core.unit))

Skinned + instanced: draws min(transforms.Length, poses.Length) instances of the same animated model in one draw call (per sub-mesh), each instance with its own world transform and pose. poses carries one caller-evaluated BonePose per instance — compute the poses once per frame and share them with bone queries / attachment draws (see animatedModel). material overrides the authored materials (MaterialOverride.All for a whole-model override, MaterialOverride.PerMesh for a per-sub-mesh resolver); colors tints each instance (MonoGame only — the raylib backend raises System.NotSupportedException). On the MonoGame OpenGL backend the draw falls back to per-instance skinned draws (no vertex texture fetch on that shader profile).

buffer : ^B
animModel : 'A
transforms : 'X[]
poses : 'Pose[]
?material : 'O
?colors : 'C[]
Returns: ^B

Draw.animatedModelWith (buffer, animModel, transform, material, ?pose)

Full Usage: Draw.animatedModelWith (buffer, animModel, transform, material, ?pose)

Parameters:
    buffer : ^B
    animModel : 'A
    transform : 'X
    material : 'Mat
    ?pose : 'Pose

Returns: ^B
Modifiers: inline
Type parameters: ^B, 'A, 'X, 'Mat, 'Pose (requires (member AddAnimatedModelWith : ^B * 'A * 'X * 'Mat * 'Pose Microsoft.FSharp.Core.voption -> Microsoft.FSharp.Core.unit))

Draws an animated model with a whole-model material override. pose shares one pose evaluation with bone queries and attachment draws — see animatedModel.

buffer : ^B
animModel : 'A
transform : 'X
material : 'Mat
?pose : 'Pose
Returns: ^B

Draw.animatedModelWithPerMesh (buffer, animModel, transform, resolver, ?pose)

Full Usage: Draw.animatedModelWithPerMesh (buffer, animModel, transform, resolver, ?pose)

Parameters:
    buffer : ^B
    animModel : 'A
    transform : 'X
    resolver : int -> 'Mat
    ?pose : 'Pose

Returns: ^B
Modifiers: inline
Type parameters: ^B, 'A, 'X, 'Mat, 'Pose (requires (member AddAnimatedModelWithPerMesh : ^B * 'A * 'X * Microsoft.FSharp.Core.int -> 'Mat * 'Pose Microsoft.FSharp.Core.voption -> Microsoft.FSharp.Core.unit))

Draws an animated model with a per-sub-mesh material resolver. pose shares one pose evaluation with bone queries and attachment draws — see animatedModel.

buffer : ^B
animModel : 'A
transform : 'X
resolver : int -> 'Mat
?pose : 'Pose
Returns: ^B

Draw.attachedMesh (buffer, animModel, bone, localTransform, mesh, material, transform, ?pose)

Full Usage: Draw.attachedMesh (buffer, animModel, bone, localTransform, mesh, material, transform, ?pose)

Parameters:
    buffer : ^B
    animModel : 'A
    bone : BoneRef
    localTransform : 'X
    mesh : 'M
    material : 'Mat
    transform : 'X
    ?pose : 'Pose

Returns: ^B
Modifiers: inline
Type parameters: ^B, 'A, 'X, 'M, 'Mat, 'Pose (requires (member AddAttachedMesh : ^B * 'A * Mibo.Animation.BoneRef * 'X * 'M * 'Mat * 'X * 'Pose Microsoft.FSharp.Core.voption -> Microsoft.FSharp.Core.unit))

Draws a static mesh parented to bone of the animated model animModel. The attachment's world transform is localTransform * boneWorld * transform (row-vector convention): it inherits the instance's full world transform including scale, and localTransform is the caller's grip offset/rotation/scale relative to the bone. An unknown bone is a no-op — no command is emitted. Pass the same pose given to animatedModel to avoid a second pose evaluation this frame.

The attachment mesh's vertices must be in model-root space. On MonoGame, mesh parts extracted from a content-pipeline Model are bone-local — bake the part's absolute bone transform (CopyAbsoluteBoneTransformsTo) into localTransform or the prop renders offset.

buffer : ^B
animModel : 'A
bone : BoneRef
localTransform : 'X
mesh : 'M
material : 'Mat
transform : 'X
?pose : 'Pose
Returns: ^B

Draw.beginCamera (buffer, camera, ?layer)

Full Usage: Draw.beginCamera (buffer, camera, ?layer)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B, 'C (requires (member AddBeginCamera : ^B * 'C * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit))

Begins a camera transform (2D or 3D — the buffer selects the witness).

buffer : ^B
camera : 'C
?layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Returns: ^B

Draw.beginCameraWith (buffer, config, ?layer)

Full Usage: Draw.beginCameraWith (buffer, config, ?layer)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B, 'C (requires (member AddBeginCameraConfig : ^B * 'C * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit))

Begins a camera with explicit rendering config (viewport, clear).

buffer : ^B
config : 'C
?layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Returns: ^B

Draw.beginEffect (buffer, shader)

Full Usage: Draw.beginEffect (buffer, shader)

Parameters:
    buffer : ^B
    shader : 'S

Returns: ^B
Modifiers: inline
Type parameters: ^B, 'S (requires (member AddBeginEffect : ^B * 'S -> Microsoft.FSharp.Core.unit))

Opens a per-group shading scope: draws until EndEffect are shaded by shader instead of the default PBR shader, inheriting the gathered scene data (camera, lights, shadow pass, bones, time).

buffer : ^B
shader : 'S
Returns: ^B

Draw.beginShader (buffer, shader, ?layer)

Full Usage: Draw.beginShader (buffer, shader, ?layer)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B, 'S (requires (member AddBeginShader : ^B * 'S * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit))

Begins a 2D shader/effect block.

buffer : ^B
shader : 'S
?layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Returns: ^B

Draw.beginTarget (buffer, target, ?layer)

Full Usage: Draw.beginTarget (buffer, target, ?layer)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B, 'T (requires (member AddBeginTarget : ^B * 'T * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit))

Begins rendering to a render target.

buffer : ^B
target : 'T
?layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Returns: ^B

Draw.bezier (buffer, start, control, finish, color, ?thickness, ?layer)

Full Usage: Draw.bezier (buffer, start, control, finish, color, ?thickness, ?layer)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B (requires (member AddLine : ^B * System.Numerics.Vector2 * System.Numerics.Vector2 * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddLineThick : ^B * System.Numerics.Vector2 * System.Numerics.Vector2 * Mibo.Color * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddBezier : ^B * System.Numerics.Vector2 * System.Numerics.Vector2 * System.Numerics.Vector2 * Mibo.Color * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit))

Quadratic bezier curve.

buffer : ^B
start : Vector2
control : Vector2
finish : Vector2
color : Color
?thickness : float32
?layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Returns: ^B

Draw.billboard (buffer, texture, position, size, color, ?rotation, ?sourceRect, ?blend)

Full Usage: Draw.billboard (buffer, texture, position, size, color, ?rotation, ?sourceRect, ?blend)

Parameters:
    buffer : ^B
    texture : 'T
    position : Vector3
    size : Vector2
    color : Color
    ?rotation : float32
    ?sourceRect : 'R
    ?blend : 'Blend

Returns: ^B
Modifiers: inline
Type parameters: ^B, 'T, 'R, 'Blend (requires (member AddBillboard : ^B * 'T * System.Numerics.Vector3 * System.Numerics.Vector2 * Mibo.Color * Microsoft.FSharp.Core.float32 * 'R * 'Blend Microsoft.FSharp.Core.voption -> Microsoft.FSharp.Core.unit))

Draws a billboard (camera-facing quad) with a texture. rotation spins the quad around the view axis, in degrees. sourceRect selects an atlas/flipbook sub-rectangle in pixels (an all-zero rect = full texture). blend overrides the blend mode (default: alpha blend); blended billboards draw in buffer order with no depth sorting.

buffer : ^B
texture : 'T
position : Vector3
size : Vector2
color : Color
?rotation : float32
?sourceRect : 'R
?blend : 'Blend
Returns: ^B

Draw.billboardBatch (buffer, textures, positions, sizes, colors, count, ?rotations, ?sourceRects, ?blend)

Full Usage: Draw.billboardBatch (buffer, textures, positions, sizes, colors, count, ?rotations, ?sourceRects, ?blend)

Parameters:
    buffer : ^B
    textures : 'T[]
    positions : 'P[]
    sizes : 'S[]
    colors : 'C[]
    count : int
    ?rotations : float32[]
    ?sourceRects : 'R[]
    ?blend : 'Blend

Returns: ^B
Modifiers: inline
Type parameters: ^B, 'T, 'P, 'S, 'C, 'R, 'Blend (requires (member AddBillboardBatch : ^B * 'T Microsoft.FSharp.Core.array * 'P Microsoft.FSharp.Core.array * 'S Microsoft.FSharp.Core.array * 'C Microsoft.FSharp.Core.array * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.float32 Microsoft.FSharp.Core.array * 'R Microsoft.FSharp.Core.array * 'Blend Microsoft.FSharp.Core.voption -> Microsoft.FSharp.Core.unit))

Draws multiple billboards in a single batch. All arrays are backend handles (XNA arrays on MonoGame) — no per-frame conversion. rotations and sourceRects are optional per-item arrays (null or shorter than count = no rotation / full texture for those items); see billboard for their semantics. blend overrides the blend mode for the whole batch (default: alpha blend). On MonoGame the batch draws with textures[0]; raylib honors per-item textures.

buffer : ^B
textures : 'T[]
positions : 'P[]
sizes : 'S[]
colors : 'C[]
count : int
?rotations : float32[]
?sourceRects : 'R[]
?blend : 'Blend
Returns: ^B

Draw.circleGradient (buffer, centerX, centerY, radius, inner, outer, ?layer)

Full Usage: Draw.circleGradient (buffer, centerX, centerY, radius, inner, outer, ?layer)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B (requires (member AddFillCircle : ^B * System.Numerics.Vector2 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddCircleOutline : ^B * System.Numerics.Vector2 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddCircleSector : ^B * System.Numerics.Vector2 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddCircleSectorOutline : ^B * System.Numerics.Vector2 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddCircleGradient : ^B * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.float32 * Mibo.Color * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit))

Radial gradient circle (int pixel center, matching the existing API).

buffer : ^B
centerX : int
centerY : int
radius : float32
inner : Color
outer : Color
?layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Returns: ^B

Draw.circleOutline (buffer, center, radius, color, ?layer)

Full Usage: Draw.circleOutline (buffer, center, radius, color, ?layer)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B (requires (member AddFillCircle : ^B * System.Numerics.Vector2 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddCircleOutline : ^B * System.Numerics.Vector2 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddCircleSector : ^B * System.Numerics.Vector2 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddCircleSectorOutline : ^B * System.Numerics.Vector2 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddCircleGradient : ^B * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.float32 * Mibo.Color * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit))

Circle outline.

buffer : ^B
center : Vector2
radius : float32
color : Color
?layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Returns: ^B

Draw.circleSector (buffer, center, radius, startAngle, endAngle, color, ?segments, ?layer)

Full Usage: Draw.circleSector (buffer, center, radius, startAngle, endAngle, color, ?segments, ?layer)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B (requires (member AddFillCircle : ^B * System.Numerics.Vector2 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddCircleOutline : ^B * System.Numerics.Vector2 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddCircleSector : ^B * System.Numerics.Vector2 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddCircleSectorOutline : ^B * System.Numerics.Vector2 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddCircleGradient : ^B * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.float32 * Mibo.Color * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit))

Filled circle sector (pie slice).

buffer : ^B
center : Vector2
radius : float32
startAngle : float32
endAngle : float32
color : Color
?segments : int
?layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Returns: ^B

Draw.circleSectorOutline (buffer, center, radius, startAngle, endAngle, color, ?segments, ?layer)

Full Usage: Draw.circleSectorOutline (buffer, center, radius, startAngle, endAngle, color, ?segments, ?layer)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B (requires (member AddFillCircle : ^B * System.Numerics.Vector2 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddCircleOutline : ^B * System.Numerics.Vector2 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddCircleSector : ^B * System.Numerics.Vector2 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddCircleSectorOutline : ^B * System.Numerics.Vector2 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddCircleGradient : ^B * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.float32 * Mibo.Color * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit))

Circle sector outline.

buffer : ^B
center : Vector2
radius : float32
startAngle : float32
endAngle : float32
color : Color
?segments : int
?layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Returns: ^B

Draw.clear (buffer, color, ?layer)

Full Usage: Draw.clear (buffer, color, ?layer)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B (requires (member AddClear : ^B * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit))

Clears the current framebuffer to the given color.

buffer : ^B
color : Color
?layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Returns: ^B

Draw.clearScissor (buffer, ?layer)

Full Usage: Draw.clearScissor (buffer, ?layer)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B (requires (member AddClearScissor : ^B * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit))

Disables scissor testing.

buffer : ^B
?layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Returns: ^B

Draw.disableShadows buffer

Full Usage: Draw.disableShadows buffer

Parameters:
    buffer : ^B

Returns: ^B
Modifiers: inline
Type parameters: ^B (requires (member AddDisableShadows3D : ^B -> Microsoft.FSharp.Core.unit))

Disables 3D shadow casting for subsequent geometry.

buffer : ^B
Returns: ^B

Draw.disableShadows (buffer, lightCtx, ?layer)

Full Usage: Draw.disableShadows (buffer, lightCtx, ?layer)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B, 'C (requires (member AddDisableShadows : ^B * 'C * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit))

Disables 2D shadow casting for subsequent draws.

buffer : ^B
lightCtx : 'C
?layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Returns: ^B

Draw.drawImmediate (buffer, action, ?layer)

Full Usage: Draw.drawImmediate (buffer, action, ?layer)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B, 'Ctx (requires (member AddDrawImmediate : ^B * 'Ctx -> Microsoft.FSharp.Core.unit * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit))

Runs a fully-custom draw. 2D: action is unit -> unit (batch is flushed, state restored). 3D: action receives the frame's SceneContext. The 3D witness ignores layer (3D has no layers).

buffer : ^B
action : 'Ctx -> unit
?layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Returns: ^B

Draw.drop buffer

Full Usage: Draw.drop buffer

Parameters:
    buffer : 'B

Modifiers: inline
Type parameters: 'B

Terminal function that discards the buffer, silencing the unused-value warning.

buffer : 'B

Draw.ellipseOutline (buffer, centerX, centerY, radiusH, radiusV, color, ?layer)

Full Usage: Draw.ellipseOutline (buffer, centerX, centerY, radiusH, radiusV, color, ?layer)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B (requires (member AddFillEllipse : ^B * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddEllipseOutline : ^B * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit))

Ellipse outline (int pixel center, matching the existing API).

buffer : ^B
centerX : int
centerY : int
radiusH : float32
radiusV : float32
color : Color
?layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Returns: ^B

Draw.enableShadows buffer

Full Usage: Draw.enableShadows buffer

Parameters:
    buffer : ^B

Returns: ^B
Modifiers: inline
Type parameters: ^B (requires (member AddEnableShadows3D : ^B -> Microsoft.FSharp.Core.unit))

Enables 3D shadow casting for subsequent geometry.

buffer : ^B
Returns: ^B

Draw.enableShadows (buffer, lightCtx, ?layer)

Full Usage: Draw.enableShadows (buffer, lightCtx, ?layer)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B, 'C (requires (member AddEnableShadows : ^B * 'C * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit))

Enables 2D shadow casting for subsequent draws.

buffer : ^B
lightCtx : 'C
?layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Returns: ^B

Draw.endCamera (buffer, ?layer)

Full Usage: Draw.endCamera (buffer, ?layer)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B (requires (member AddEndCamera : ^B * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit))

Ends the current camera transform.

buffer : ^B
?layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Returns: ^B

Draw.endEffect buffer

Full Usage: Draw.endEffect buffer

Parameters:
    buffer : ^B

Returns: ^B
Modifiers: inline
Type parameters: ^B (requires (member AddEndEffect : ^B -> Microsoft.FSharp.Core.unit))

Closes the shading scope opened by BeginEffect.

buffer : ^B
Returns: ^B

Draw.endLighting (buffer, lightCtx, ?layer)

Full Usage: Draw.endLighting (buffer, lightCtx, ?layer)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B, 'C (requires (member AddEndLighting : ^B * 'C * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit))

Ends the current lighting pass; sprites after this point are unlit.

buffer : ^B
lightCtx : 'C
?layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Returns: ^B

Draw.endShader (buffer, ?layer)

Full Usage: Draw.endShader (buffer, ?layer)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B (requires (member AddEndShader : ^B * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit))

Ends the current 2D shader block.

buffer : ^B
?layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Returns: ^B

Draw.endTarget (buffer, ?layer)

Full Usage: Draw.endTarget (buffer, ?layer)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B (requires (member AddEndTarget : ^B * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit))

Ends rendering to a render target.

buffer : ^B
?layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Returns: ^B

Draw.fillCircle (buffer, center, radius, color, ?layer)

Full Usage: Draw.fillCircle (buffer, center, radius, color, ?layer)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B (requires (member AddFillCircle : ^B * System.Numerics.Vector2 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddCircleOutline : ^B * System.Numerics.Vector2 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddCircleSector : ^B * System.Numerics.Vector2 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddCircleSectorOutline : ^B * System.Numerics.Vector2 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddCircleGradient : ^B * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.float32 * Mibo.Color * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit))

Filled circle.

buffer : ^B
center : Vector2
radius : float32
color : Color
?layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Returns: ^B

Draw.fillEllipse (buffer, centerX, centerY, radiusH, radiusV, color, ?layer)

Full Usage: Draw.fillEllipse (buffer, centerX, centerY, radiusH, radiusV, color, ?layer)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B (requires (member AddFillEllipse : ^B * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddEllipseOutline : ^B * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit))

Filled ellipse (int pixel center, matching the existing API).

buffer : ^B
centerX : int
centerY : int
radiusH : float32
radiusV : float32
color : Color
?layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Returns: ^B

Draw.fillPoly (buffer, center, sides, radius, rotation, color, ?layer)

Full Usage: Draw.fillPoly (buffer, center, sides, radius, rotation, color, ?layer)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B (requires (member AddTriangle : ^B * System.Numerics.Vector2 * System.Numerics.Vector2 * System.Numerics.Vector2 * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddFillPoly : ^B * System.Numerics.Vector2 * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddPolyOutline : ^B * System.Numerics.Vector2 * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit))

Filled regular polygon.

buffer : ^B
center : Vector2
sides : int
radius : float32
rotation : float32
color : Color
?layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Returns: ^B

Draw.fillRect (buffer, x, y, w, h, color, ?layer)

Full Usage: Draw.fillRect (buffer, x, y, w, h, color, ?layer)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B (requires (member AddFillRect : ^B * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddRectOutline : ^B * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddFillRectRounded : ^B * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddRectRoundedOutline : ^B * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddRectGradientV : ^B * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Mibo.Color * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddRectGradientH : ^B * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Mibo.Color * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddRectGradient : ^B * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Mibo.Color * Mibo.Color * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit))

Filled rectangle. Coordinates are float pixels (truncated toward zero on MonoGame).

buffer : ^B
x : float32
y : float32
w : float32
h : float32
color : Color
?layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Returns: ^B

Draw.fillRectRounded (buffer, x, y, w, h, color, ?roundness, ?segments, ?layer)

Full Usage: Draw.fillRectRounded (buffer, x, y, w, h, color, ?roundness, ?segments, ?layer)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B (requires (member AddFillRect : ^B * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddRectOutline : ^B * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddFillRectRounded : ^B * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddRectRoundedOutline : ^B * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddRectGradientV : ^B * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Mibo.Color * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddRectGradientH : ^B * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Mibo.Color * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddRectGradient : ^B * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Mibo.Color * Mibo.Color * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit))

Filled rounded rectangle.

buffer : ^B
x : float32
y : float32
w : float32
h : float32
color : Color
?roundness : float32
?segments : int
?layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Returns: ^B

Draw.fillRing (buffer, center, innerRadius, outerRadius, startAngle, endAngle, color, ?segments, ?layer)

Full Usage: Draw.fillRing (buffer, center, innerRadius, outerRadius, startAngle, endAngle, color, ?segments, ?layer)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B (requires (member AddFillRing : ^B * System.Numerics.Vector2 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddRingOutline : ^B * System.Numerics.Vector2 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit))

Filled ring / arc.

buffer : ^B
center : Vector2
innerRadius : float32
outerRadius : float32
startAngle : float32
endAngle : float32
color : Color
?segments : int
?layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Returns: ^B

Draw.instanced (buffer, mesh, transforms, material, instanceCount, ?colors)

Full Usage: Draw.instanced (buffer, mesh, transforms, material, instanceCount, ?colors)

Parameters:
    buffer : ^B
    mesh : 'M
    transforms : 'X[]
    material : 'Mat
    instanceCount : int
    ?colors : 'C[]

Returns: ^B
Modifiers: inline
Type parameters: ^B, 'M, 'X, 'Mat, 'C (requires (member AddDrawInstanced : ^B * 'M * 'X Microsoft.FSharp.Core.array * 'Mat * Microsoft.FSharp.Core.int * 'C Microsoft.FSharp.Core.array Microsoft.FSharp.Core.voption -> Microsoft.FSharp.Core.unit))

Draws many instances of the same mesh. Prefer over repeated Mesh calls. colors tints each instance (albedo × color.rgb, alpha × color.a); MonoGame only — the raylib backend raises System.NotSupportedException when colors are supplied.

buffer : ^B
mesh : 'M
transforms : 'X[]
material : 'Mat
instanceCount : int
?colors : 'C[]
Returns: ^B

Draw.instancedSlice (buffer, mesh, transforms, material, instanceCount, ?colors, ?vertexOffset, ?startIndex)

Full Usage: Draw.instancedSlice (buffer, mesh, transforms, material, instanceCount, ?colors, ?vertexOffset, ?startIndex)

Parameters:
    buffer : ^B
    mesh : 'M
    transforms : 'X[]
    material : 'Mat
    instanceCount : int
    ?colors : 'C[]
    ?vertexOffset : int
    ?startIndex : int

Returns: ^B
Modifiers: inline
Type parameters: ^B, 'M, 'X, 'Mat, 'C (requires (member AddDrawInstancedSlice : ^B * 'M * 'X Microsoft.FSharp.Core.array * 'Mat * Microsoft.FSharp.Core.int * 'C Microsoft.FSharp.Core.array Microsoft.FSharp.Core.voption * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int -> Microsoft.FSharp.Core.unit))

Draws many instances of a slice of a mesh within shared vertex/index buffers (MonoGame content-pipeline parts). vertexOffset/startIndex default to 0 — self-contained buffers (procedural primitives, raylib meshes) draw the whole mesh with the defaults. colors tints each instance (MonoGame only, see instanced).

MonoGame: when the mesh record wraps one part of a shared buffer, PrimitiveCount must hold that part's triangle count and Bounds that part's local-space bounding sphere — the draw is sized by PrimitiveCount and the shadow pass culls by Bounds, both taken from the record, never from the shared buffer.

buffer : ^B
mesh : 'M
transforms : 'X[]
material : 'Mat
instanceCount : int
?colors : 'C[]
?vertexOffset : int
?startIndex : int
Returns: ^B

Draw.line (buffer, start, finish, color, ?layer)

Full Usage: Draw.line (buffer, start, finish, color, ?layer)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B (requires (member AddLine : ^B * System.Numerics.Vector2 * System.Numerics.Vector2 * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddLineThick : ^B * System.Numerics.Vector2 * System.Numerics.Vector2 * Mibo.Color * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddBezier : ^B * System.Numerics.Vector2 * System.Numerics.Vector2 * System.Numerics.Vector2 * Mibo.Color * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit))

1-pixel line.

buffer : ^B
start : Vector2
finish : Vector2
color : Color
?layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Returns: ^B

Draw.line3D (buffer, start, finish, color)

Full Usage: Draw.line3D (buffer, start, finish, color)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B (requires (member AddLine3D : ^B * System.Numerics.Vector3 * System.Numerics.Vector3 * Mibo.Color -> Microsoft.FSharp.Core.unit))

Draws a 3D line between two points.

buffer : ^B
start : Vector3
finish : Vector3
color : Color
Returns: ^B

Draw.lineStrip (buffer, points, color, ?layer)

Full Usage: Draw.lineStrip (buffer, points, color, ?layer)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B, 'P (requires (member AddLineStrip : ^B * 'P Microsoft.FSharp.Core.array * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit))
Connected line segments. The point array is a backend handle
 (System.Numerics on raylib, XNA on MonoGame) — no per-frame conversion.
 Single-point members take System.Numerics and convert for free.
buffer : ^B
points : 'P[]
color : Color
?layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Returns: ^B

Draw.lineThick (buffer, start, finish, color, ?thickness, ?layer)

Full Usage: Draw.lineThick (buffer, start, finish, color, ?thickness, ?layer)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B (requires (member AddLine : ^B * System.Numerics.Vector2 * System.Numerics.Vector2 * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddLineThick : ^B * System.Numerics.Vector2 * System.Numerics.Vector2 * Mibo.Color * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddBezier : ^B * System.Numerics.Vector2 * System.Numerics.Vector2 * System.Numerics.Vector2 * Mibo.Color * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit))

Line with custom thickness.

buffer : ^B
start : Vector2
finish : Vector2
color : Color
?thickness : float32
?layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Returns: ^B

Draw.litAnimatedSprite (buffer, lightCtx, dest, animSprite, ?layer)

Full Usage: Draw.litAnimatedSprite (buffer, lightCtx, dest, animSprite, ?layer)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B, 'C, 'R, 'A (requires (member AddLitAnimatedSprite : ^B * 'C * 'R * 'A * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit))

Draws an animated sprite with the current lighting state.

buffer : ^B
lightCtx : 'C
dest : 'R
animSprite : 'A
?layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Returns: ^B

Draw.litSprite (buffer, lightCtx, sprite)

Full Usage: Draw.litSprite (buffer, lightCtx, sprite)

Parameters:
    buffer : ^B
    lightCtx : 'C
    sprite : 'S

Returns: ^B
Modifiers: inline
Type parameters: ^B, 'C, 'S (requires (member AddLitSprite : ^B * 'C * 'S -> Microsoft.FSharp.Core.unit))

Draws a sprite with the current lighting state.

buffer : ^B
lightCtx : 'C
sprite : 'S
Returns: ^B

Draw.mesh (buffer, mesh, transform, material)

Full Usage: Draw.mesh (buffer, mesh, transform, material)

Parameters:
    buffer : ^B
    mesh : 'M
    transform : 'X
    material : 'Mat

Returns: ^B
Modifiers: inline
Type parameters: ^B, 'M, 'X, 'Mat (requires (member AddDrawMesh : ^B * 'M * 'X * 'Mat -> Microsoft.FSharp.Core.unit))

Draws a mesh (raylib Mesh / MonoGame PrimitiveMesh) with a material.

buffer : ^B
mesh : 'M
transform : 'X
material : 'Mat
Returns: ^B

Draw.meshSlice (buffer, mesh, transform, material, ?vertexOffset, ?startIndex)

Full Usage: Draw.meshSlice (buffer, mesh, transform, material, ?vertexOffset, ?startIndex)

Parameters:
    buffer : ^B
    mesh : 'M
    transform : 'X
    material : 'Mat
    ?vertexOffset : int
    ?startIndex : int

Returns: ^B
Modifiers: inline
Type parameters: ^B, 'M, 'X, 'Mat (requires (member AddDrawMeshSlice : ^B * 'M * 'X * 'Mat * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int -> Microsoft.FSharp.Core.unit))

Draws a slice of a mesh within shared vertex/index buffers (MonoGame content-pipeline parts). vertexOffset/startIndex default to 0 — self-contained buffers (procedural primitives, raylib meshes) draw the whole mesh with the defaults.

MonoGame: when the mesh record wraps one part of a shared buffer, PrimitiveCount must hold that part's triangle count and Bounds that part's local-space bounding sphere — the draw is sized by PrimitiveCount and the shadow pass culls by Bounds, both taken from the record, never from the shared buffer.

buffer : ^B
mesh : 'M
transform : 'X
material : 'Mat
?vertexOffset : int
?startIndex : int
Returns: ^B

Draw.model (buffer, model, transform)

Full Usage: Draw.model (buffer, model, transform)

Parameters:
    buffer : ^B
    model : 'M
    transform : 'X

Returns: ^B
Modifiers: inline
Type parameters: ^B, 'M, 'X (requires (member AddDrawModel : ^B * 'M * 'X -> Microsoft.FSharp.Core.unit))

Draws a model with a world transform and its authored materials.

buffer : ^B
model : 'M
transform : 'X
Returns: ^B

Draw.modelWith (buffer, model, transform, material)

Full Usage: Draw.modelWith (buffer, model, transform, material)

Parameters:
    buffer : ^B
    model : 'M
    transform : 'X
    material : 'Mat

Returns: ^B
Modifiers: inline
Type parameters: ^B, 'M, 'X, 'Mat (requires (member AddDrawModelWith : ^B * 'M * 'X * 'Mat -> Microsoft.FSharp.Core.unit))

Draws a model with a whole-model material override.

buffer : ^B
model : 'M
transform : 'X
material : 'Mat
Returns: ^B

Draw.modelWithPerMesh (buffer, model, transform, resolver)

Full Usage: Draw.modelWithPerMesh (buffer, model, transform, resolver)

Parameters:
    buffer : ^B
    model : 'M
    transform : 'X
    resolver : int -> 'Mat

Returns: ^B
Modifiers: inline
Type parameters: ^B, 'M, 'X, 'Mat (requires (member AddDrawModelWithPerMesh : ^B * 'M * 'X * Microsoft.FSharp.Core.int -> 'Mat -> Microsoft.FSharp.Core.unit))

Draws a model with a per-sub-mesh material resolver.

buffer : ^B
model : 'M
transform : 'X
resolver : int -> 'Mat
Returns: ^B

Draw.particles (buffer, texture, particles, count, ?layer)

Full Usage: Draw.particles (buffer, texture, particles, count, ?layer)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B, 'T, 'P (requires (member AddParticles : ^B * 'T * 'P Microsoft.FSharp.Core.array * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit))

Adds a batched particle render command.

buffer : ^B
texture : 'T
particles : 'P[]
count : int
?layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Returns: ^B

Draw.polyOutline (buffer, center, sides, radius, rotation, color, ?thickness, ?layer)

Full Usage: Draw.polyOutline (buffer, center, sides, radius, rotation, color, ?thickness, ?layer)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B (requires (member AddTriangle : ^B * System.Numerics.Vector2 * System.Numerics.Vector2 * System.Numerics.Vector2 * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddFillPoly : ^B * System.Numerics.Vector2 * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddPolyOutline : ^B * System.Numerics.Vector2 * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit))

Regular polygon outline.

buffer : ^B
center : Vector2
sides : int
radius : float32
rotation : float32
color : Color
?thickness : float32
?layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Returns: ^B

Draw.postProcess (buffer, action)

Full Usage: Draw.postProcess (buffer, action)

Parameters:
    buffer : ^B
    action : 'Ctx -> unit

Returns: ^B
Modifiers: inline
Type parameters: ^B, 'Ctx (requires (member AddPostProcess : ^B * 'Ctx -> Microsoft.FSharp.Core.unit -> Microsoft.FSharp.Core.unit))

Enqueues a post-process pass. The action receives the backend's post-process context (2D or 3D) and runs once after the scene renders.

buffer : ^B
action : 'Ctx -> unit
Returns: ^B

Draw.postProcessWithDepth (buffer, action)

Full Usage: Draw.postProcessWithDepth (buffer, action)

Parameters:
    buffer : ^B
    action : 'Ctx -> unit

Returns: ^B
Modifiers: inline
Type parameters: ^B, 'Ctx (requires (member AddPostProcessWithDepth : ^B * 'Ctx -> Microsoft.FSharp.Core.unit -> Microsoft.FSharp.Core.unit))

Enqueues a post-process pass that needs camera-POV scene depth. 3D only — the 2D buffer has no witness.

buffer : ^B
action : 'Ctx -> unit
Returns: ^B

Draw.rectGradient (buffer, x, y, w, h, topLeft, bottomLeft, topRight, bottomRight, ?layer)

Full Usage: Draw.rectGradient (buffer, x, y, w, h, topLeft, bottomLeft, topRight, bottomRight, ?layer)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B (requires (member AddFillRect : ^B * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddRectOutline : ^B * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddFillRectRounded : ^B * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddRectRoundedOutline : ^B * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddRectGradientV : ^B * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Mibo.Color * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddRectGradientH : ^B * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Mibo.Color * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddRectGradient : ^B * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Mibo.Color * Mibo.Color * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit))

4-corner gradient rectangle.

buffer : ^B
x : float32
y : float32
w : float32
h : float32
topLeft : Color
bottomLeft : Color
topRight : Color
bottomRight : Color
?layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Returns: ^B

Draw.rectGradientH (buffer, x, y, w, h, left, right, ?layer)

Full Usage: Draw.rectGradientH (buffer, x, y, w, h, left, right, ?layer)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B (requires (member AddFillRect : ^B * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddRectOutline : ^B * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddFillRectRounded : ^B * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddRectRoundedOutline : ^B * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddRectGradientV : ^B * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Mibo.Color * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddRectGradientH : ^B * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Mibo.Color * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddRectGradient : ^B * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Mibo.Color * Mibo.Color * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit))

Horizontal gradient rectangle (int pixel coords, matching the existing API).

buffer : ^B
x : int
y : int
w : int
h : int
left : Color
right : Color
?layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Returns: ^B

Draw.rectGradientV (buffer, x, y, w, h, top, bottom, ?layer)

Full Usage: Draw.rectGradientV (buffer, x, y, w, h, top, bottom, ?layer)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B (requires (member AddFillRect : ^B * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddRectOutline : ^B * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddFillRectRounded : ^B * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddRectRoundedOutline : ^B * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddRectGradientV : ^B * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Mibo.Color * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddRectGradientH : ^B * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Mibo.Color * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddRectGradient : ^B * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Mibo.Color * Mibo.Color * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit))

Vertical gradient rectangle (int pixel coords, matching the existing API).

buffer : ^B
x : int
y : int
w : int
h : int
top : Color
bottom : Color
?layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Returns: ^B

Draw.rectOutline (buffer, x, y, w, h, color, ?thickness, ?layer)

Full Usage: Draw.rectOutline (buffer, x, y, w, h, color, ?thickness, ?layer)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B (requires (member AddFillRect : ^B * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddRectOutline : ^B * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddFillRectRounded : ^B * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddRectRoundedOutline : ^B * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddRectGradientV : ^B * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Mibo.Color * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddRectGradientH : ^B * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Mibo.Color * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddRectGradient : ^B * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Mibo.Color * Mibo.Color * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit))

Rectangle outline.

buffer : ^B
x : float32
y : float32
w : float32
h : float32
color : Color
?thickness : float32
?layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Returns: ^B

Draw.rectRoundedOutline (buffer, x, y, w, h, color, ?roundness, ?segments, ?thickness, ?layer)

Full Usage: Draw.rectRoundedOutline (buffer, x, y, w, h, color, ?roundness, ?segments, ?thickness, ?layer)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B (requires (member AddFillRect : ^B * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddRectOutline : ^B * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddFillRectRounded : ^B * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddRectRoundedOutline : ^B * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddRectGradientV : ^B * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Mibo.Color * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddRectGradientH : ^B * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Mibo.Color * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddRectGradient : ^B * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Mibo.Color * Mibo.Color * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit))

Rounded rectangle outline.

buffer : ^B
x : float32
y : float32
w : float32
h : float32
color : Color
?roundness : float32
?segments : int
?thickness : float32
?layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Returns: ^B

Draw.renderCellGridInstanced (buffer, ctx, grid, shaderForKey)

Full Usage: Draw.renderCellGridInstanced (buffer, ctx, grid, shaderForKey)

Parameters:
Returns: 'Buf
Modifiers: inline
Type parameters: ^Ctx, 'Buf, 'T, 'Key, 'S (requires (member RenderCellGridInstanced : ^Ctx * 'Buf * Mibo.Layout3D.CellGrid3D<'T> * 'Key -> Microsoft.FSharp.Core.ValueOption<'S> -> Microsoft.FSharp.Core.unit) and equality)

Renders a cell grid instanced, wrapping each key's draws in an effect scope when shaderForKey returns ValueSome.

buffer : 'Buf
ctx : ^Ctx
grid : CellGrid3D<'T>
shaderForKey : 'Key -> ValueOption<'S>
Returns: 'Buf

Draw.renderCellGridInstanced (buffer, ctx, grid)

Full Usage: Draw.renderCellGridInstanced (buffer, ctx, grid)

Parameters:
Returns: 'Buf
Modifiers: inline
Type parameters: ^Ctx, 'Buf, 'T (requires (member RenderCellGridInstanced : ^Ctx * 'Buf * Mibo.Layout3D.CellGrid3D<'T> -> Microsoft.FSharp.Core.unit))

Renders a cell grid instanced. If the context was built with the per-sub-mesh shader overload, each ValueSome sub-mesh is shaded by its own effect; otherwise the default PBR instanced path is used.

buffer : 'Buf
ctx : ^Ctx
grid : CellGrid3D<'T>
Returns: 'Buf

Draw.renderCellGridVolumeInstanced (buffer, ctx, bounds, grid, shaderForKey)

Full Usage: Draw.renderCellGridVolumeInstanced (buffer, ctx, bounds, grid, shaderForKey)

Parameters:
Returns: 'Buf
Modifiers: inline
Type parameters: ^Ctx, 'Buf, 'T, 'Key, 'S (requires (member RenderCellGridVolumeInstanced : ^Ctx * 'Buf * Mibo.Layout3D.BoundingBox * Mibo.Layout3D.CellGrid3D<'T> * 'Key -> Microsoft.FSharp.Core.ValueOption<'S> -> Microsoft.FSharp.Core.unit) and equality)

Like renderCellGridInstanced but restricted to a bounding volume, with per-key effect scoping.

buffer : 'Buf
ctx : ^Ctx
bounds : BoundingBox
grid : CellGrid3D<'T>
shaderForKey : 'Key -> ValueOption<'S>
Returns: 'Buf

Draw.renderCellGridVolumeInstanced (buffer, ctx, bounds, grid)

Full Usage: Draw.renderCellGridVolumeInstanced (buffer, ctx, bounds, grid)

Parameters:
Returns: 'Buf
Modifiers: inline
Type parameters: ^Ctx, 'Buf, 'T (requires (member RenderCellGridVolumeInstanced : ^Ctx * 'Buf * Mibo.Layout3D.BoundingBox * Mibo.Layout3D.CellGrid3D<'T> -> Microsoft.FSharp.Core.unit))

Like renderCellGridInstanced but restricted to a bounding volume.

buffer : 'Buf
ctx : ^Ctx
bounds : BoundingBox
grid : CellGrid3D<'T>
Returns: 'Buf

Draw.renderHexGridInstanced (buffer, ctx, grid, shaderForKey)

Full Usage: Draw.renderHexGridInstanced (buffer, ctx, grid, shaderForKey)

Parameters:
Returns: 'Buf
Modifiers: inline
Type parameters: ^Ctx, 'Buf, 'T, 'Key, 'S (requires (member RenderHexGridInstanced : ^Ctx * 'Buf * Mibo.Layout3D.HexGrid3D<'T> * 'Key -> Microsoft.FSharp.Core.ValueOption<'S> -> Microsoft.FSharp.Core.unit) and equality)

Renders a hex grid instanced, wrapping each key's draws in an effect scope when shaderForKey returns ValueSome.

buffer : 'Buf
ctx : ^Ctx
grid : HexGrid3D<'T>
shaderForKey : 'Key -> ValueOption<'S>
Returns: 'Buf

Draw.renderHexGridInstanced (buffer, ctx, grid)

Full Usage: Draw.renderHexGridInstanced (buffer, ctx, grid)

Parameters:
    buffer : 'Buf
    ctx : ^Ctx
    grid : HexGrid3D<'T>

Returns: 'Buf
Modifiers: inline
Type parameters: ^Ctx, 'Buf, 'T (requires (member RenderHexGridInstanced : ^Ctx * 'Buf * Mibo.Layout3D.HexGrid3D<'T> -> Microsoft.FSharp.Core.unit))
Renders a hex grid instanced. Per-sub-mesh shader scoping applies
 when the context was built with the triple overload.
buffer : 'Buf
ctx : ^Ctx
grid : HexGrid3D<'T>
Returns: 'Buf

Draw.renderHexGridVolumeInstanced (buffer, ctx, bounds, grid, shaderForKey)

Full Usage: Draw.renderHexGridVolumeInstanced (buffer, ctx, bounds, grid, shaderForKey)

Parameters:
Returns: 'Buf
Modifiers: inline
Type parameters: ^Ctx, 'Buf, 'T, 'Key, 'S (requires (member RenderHexGridVolumeInstanced : ^Ctx * 'Buf * Mibo.Layout3D.BoundingBox * Mibo.Layout3D.HexGrid3D<'T> * 'Key -> Microsoft.FSharp.Core.ValueOption<'S> -> Microsoft.FSharp.Core.unit) and equality)

Like renderHexGridInstanced but restricted to a bounding volume, with per-key effect scoping.

buffer : 'Buf
ctx : ^Ctx
bounds : BoundingBox
grid : HexGrid3D<'T>
shaderForKey : 'Key -> ValueOption<'S>
Returns: 'Buf

Draw.renderHexGridVolumeInstanced (buffer, ctx, bounds, grid)

Full Usage: Draw.renderHexGridVolumeInstanced (buffer, ctx, bounds, grid)

Parameters:
Returns: 'Buf
Modifiers: inline
Type parameters: ^Ctx, 'Buf, 'T (requires (member RenderHexGridVolumeInstanced : ^Ctx * 'Buf * Mibo.Layout3D.BoundingBox * Mibo.Layout3D.HexGrid3D<'T> -> Microsoft.FSharp.Core.unit))

Like renderHexGridInstanced but restricted to a bounding volume.

buffer : 'Buf
ctx : ^Ctx
bounds : BoundingBox
grid : HexGrid3D<'T>
Returns: 'Buf

Draw.ringOutline (buffer, center, innerRadius, outerRadius, startAngle, endAngle, color, ?segments, ?layer)

Full Usage: Draw.ringOutline (buffer, center, innerRadius, outerRadius, startAngle, endAngle, color, ?segments, ?layer)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B (requires (member AddFillRing : ^B * System.Numerics.Vector2 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddRingOutline : ^B * System.Numerics.Vector2 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit))

Ring / arc outline.

buffer : ^B
center : Vector2
innerRadius : float32
outerRadius : float32
startAngle : float32
endAngle : float32
color : Color
?segments : int
?layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Returns: ^B

Draw.setAmbient (buffer, lightCtx, color, ?layer)

Full Usage: Draw.setAmbient (buffer, lightCtx, color, ?layer)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B, 'C (requires (member AddSetAmbient : ^B * 'C * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit))

Sets the ambient light color for this frame.

buffer : ^B
lightCtx : 'C
color : Color
?layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Returns: ^B

Draw.setAmbientLight (buffer, light)

Full Usage: Draw.setAmbientLight (buffer, light)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B (requires (member AddSetAmbientLight : ^B * Mibo.Elmish.Graphics3D.AmbientLight3D -> Microsoft.FSharp.Core.unit))

Sets the ambient light for the scene.

buffer : ^B
light : AmbientLight3D
Returns: ^B

Draw.setBlend (buffer, mode, ?layer)

Full Usage: Draw.setBlend (buffer, mode, ?layer)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B, 'M (requires (member AddSetBlend : ^B * 'M * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit))

Sets the blending mode (backend handle: raylib BlendMode enum or MonoGame BlendMode DU).

buffer : ^B
mode : 'M
?layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Returns: ^B

Draw.setLineWidth (buffer, width, ?layer)

Full Usage: Draw.setLineWidth (buffer, width, ?layer)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B (requires (member AddSetLineWidth : ^B * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit))

Sets the line width for subsequent line draws.

buffer : ^B
width : float32
?layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Returns: ^B

Draw.setSamplerState (buffer, sampler, ?layer)

Full Usage: Draw.setSamplerState (buffer, sampler, ?layer)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B, 'S (requires (member AddSamplerState : ^B * 'S * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit))

Sets the sampler state (e.g. SamplerState.PointClamp) — stops tile-atlas bleeding. MonoGame only: the raylib buffer has no witness, so calling this there is a compile error.

buffer : ^B
sampler : 'S
?layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Returns: ^B

Draw.setScissor (buffer, x, y, w, h, ?layer)

Full Usage: Draw.setScissor (buffer, x, y, w, h, ?layer)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B (requires (member AddSetScissor : ^B * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit))

Enables scissor testing.

buffer : ^B
x : int
y : int
w : int
h : int
?layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Returns: ^B

Draw.setShadowOrigin (buffer, origin)

Full Usage: Draw.setShadowOrigin (buffer, origin)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B (requires (member AddSetShadowOrigin : ^B * System.Numerics.Vector3 -> Microsoft.FSharp.Core.unit))

Sets the shadow origin for this frame's shadow pass.

buffer : ^B
origin : Vector3
Returns: ^B

Draw.setViewport (buffer, x, y, w, h, ?layer)

Full Usage: Draw.setViewport (buffer, x, y, w, h, ?layer)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B (requires (member AddSetViewport : ^B * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit))

Sets the viewport rectangle.

buffer : ^B
x : int
y : int
w : int
h : int
?layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Returns: ^B

Draw.skinnedMesh (buffer, mesh, transform, material, bones)

Full Usage: Draw.skinnedMesh (buffer, mesh, transform, material, bones)

Parameters:
    buffer : ^B
    mesh : 'M
    transform : 'X
    material : 'Mat
    bones : 'Bones

Returns: ^B
Modifiers: inline
Type parameters: ^B, 'M, 'X, 'Mat, 'Bones (requires (member AddSkinnedMesh : ^B * 'M * 'X * 'Mat * 'Bones -> Microsoft.FSharp.Core.unit))

Draws a skinned mesh with an explicit bone palette and material. raylib only — MonoGame's skinned path goes through AnimatedModel; use animatedModel(..., pose) for the MonoGame explicit-palette path. bones carries the palette in plain System.Numerics row-major layout (bones[i] = InverseBindPose[i] * pose[i]), NOT pre-transposed — the raylib backend this member serves transposes at upload where the shader contract needs it.

buffer : ^B
mesh : 'M
transform : 'X
material : 'Mat
bones : 'Bones
Returns: ^B

Draw.sprite (buffer, state)

Full Usage: Draw.sprite (buffer, state)

Parameters:
    buffer : ^B
    state : 'S

Returns: ^B
Modifiers: inline
Type parameters: ^B, 'S (requires (member AddSpriteState : ^B * 'S -> Microsoft.FSharp.Core.unit))

Draws a sprite from the backend's SpriteState record.

buffer : ^B
state : 'S
Returns: ^B

Draw.text (buffer, font, text, position, size, ?tint, ?spacing, ?layer)

Full Usage: Draw.text (buffer, font, text, position, size, ?tint, ?spacing, ?layer)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B, 'F (requires (member AddText : ^B * 'F * Microsoft.FSharp.Core.string * System.Numerics.Vector2 * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit))

Draws text from parts. size maps to the backend's sizing model (raylib: font size in pixels; MonoGame: uniform scale). spacing is used by raylib and ignored by MonoGame.

buffer : ^B
font : 'F
text : string
position : Vector2
size : float32
?tint : Color
?spacing : float32
?layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Returns: ^B

Draw.text (buffer, state)

Full Usage: Draw.text (buffer, state)

Parameters:
    buffer : ^B
    state : 'S

Returns: ^B
Modifiers: inline
Type parameters: ^B, 'S (requires (member AddTextState : ^B * 'S -> Microsoft.FSharp.Core.unit))

Draws text from the backend's TextState record.

buffer : ^B
state : 'S
Returns: ^B

Draw.triangle (buffer, v1, v2, v3, color, ?layer)

Full Usage: Draw.triangle (buffer, v1, v2, v3, color, ?layer)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B (requires (member AddTriangle : ^B * System.Numerics.Vector2 * System.Numerics.Vector2 * System.Numerics.Vector2 * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddFillPoly : ^B * System.Numerics.Vector2 * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit) and (member AddPolyOutline : ^B * System.Numerics.Vector2 * Microsoft.FSharp.Core.int * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.float32 * Mibo.Color * Microsoft.FSharp.Core.float32 * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit))

Filled triangle from 3 vertices, in any winding order.

buffer : ^B
v1 : Vector2
v2 : Vector2
v3 : Vector2
color : Color
?layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Returns: ^B

Draw.triangleFan (buffer, points, color, ?layer)

Full Usage: Draw.triangleFan (buffer, points, color, ?layer)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B, 'P (requires (member AddTriangleFan : ^B * 'P Microsoft.FSharp.Core.array * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit))

Filled triangle fan, in any winding order; points[0] is the shared center. The rim auto-closes: the last rim vertex is connected back to points[1], so a full convex rim fills its polygon on every backend. Points array is a backend handle (see LineStrip).

buffer : ^B
points : 'P[]
color : Color
?layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Returns: ^B

Draw.triangleStrip (buffer, points, color, ?layer)

Full Usage: Draw.triangleStrip (buffer, points, color, ?layer)

Parameters:
Returns: ^B
Modifiers: inline
Type parameters: ^B, 'P (requires (member AddTriangleStrip : ^B * 'P Microsoft.FSharp.Core.array * Mibo.Color * Microsoft.FSharp.Core.int<Mibo.Elmish.Graphics2D.RenderLayer> -> Microsoft.FSharp.Core.unit))

Filled triangle strip from consecutive point pairs, in any winding order. Points array is a backend handle (see LineStrip).

buffer : ^B
points : 'P[]
color : Color
?layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Returns: ^B

Type something to start searching.