DrawingImmediate

Draws transient primitives from a render-frame callback.

Paint Signal

DrawingImmediate.GetPaint(zIndex: number?) -> VoltSignal

GetPaint returns the signal for a Z index. Drawing functions may only be called while a paint callback is running.

local paint = DrawingImmediate.GetPaint(0)

paint:Connect(function()
    DrawingImmediate.Line(
        Vector2.new(20, 20),
        Vector2.new(220, 20),
        Color3.new(1, 1, 1),
        1,
        2
    )
end)

Functions

DrawingImmediate.Line(p1: Vector2, p2: Vector2, color: Color3, opacity: number, thickness: number) -> ()

DrawingImmediate.Circle(center: Vector2, radius: number, color: Color3, opacity: number, numSides: number, thickness: number) -> ()
DrawingImmediate.FilledCircle(center: Vector2, radius: number, color: Color3, opacity: number, numSides: number) -> ()

DrawingImmediate.Triangle(p1: Vector2, p2: Vector2, p3: Vector2, color: Color3, opacity: number, thickness: number) -> ()
DrawingImmediate.FilledTriangle(p1: Vector2, p2: Vector2, p3: Vector2, color: Color3, opacity: number) -> ()

DrawingImmediate.Rectangle(topLeft: Vector2, size: Vector2, color: Color3, opacity: number, rounding: number, thickness: number) -> ()
DrawingImmediate.FilledRectangle(topLeft: Vector2, size: Vector2, color: Color3, opacity: number, rounding: number) -> ()

DrawingImmediate.Quad(p1: Vector2, p2: Vector2, p3: Vector2, p4: Vector2, color: Color3, opacity: number, thickness: number) -> ()
DrawingImmediate.FilledQuad(p1: Vector2, p2: Vector2, p3: Vector2, p4: Vector2, color: Color3, opacity: number) -> ()

DrawingImmediate.Text(position: Vector2, font: DrawFont | number, fontSize: number, color: Color3, opacity: number, text: string, center: boolean) -> ()
DrawingImmediate.OutlinedText(position: Vector2, font: DrawFont | number, fontSize: number, color: Color3, opacity: number, outlineColor: Color3, outlineOpacity: number, text: string, center: boolean) -> ()

The numeric font form accepts a value from DrawingImmediate.Fonts, which is the same table as Drawing.Fonts.

Example

local paint = DrawingImmediate.GetPaint(10)

paint:Connect(function()
    DrawingImmediate.FilledRectangle(
        Vector2.new(24, 24),
        Vector2.new(180, 42),
        Color3.fromRGB(20, 20, 24),
        0.9,
        6
    )

    DrawingImmediate.Text(
        Vector2.new(34, 34),
        DrawingImmediate.Fonts.Monospace,
        16,
        Color3.new(1, 1, 1),
        1,
        "Volt",
        false
    )
end)