Skip to content

GUI

Reference for the gui API.

Functions

gui.push_clip

Pushes a clip rect.

lua
---@param pos vec2
---@param scale vec2
function gui.push_clip(pos, scale): nil

gui.pop_clip

Pops a clip rect.

lua
function gui.pop_clip(): nil

gui.line

Draws a 2D line.

lua
---@param from vec2
---@param to vec2
---@param thickness number
---@param color color
function gui.line(from, to, thickness, color): nil

gui.circle

Draws a circle.

lua
---@param pos vec2
---@param radius number
---@param color color
function gui.circle(pos, radius, color): nil

gui.image

Draws an image.

lua
---@param texture texture
---@param pos vec2
---@param scale vec2
---@param color color
function gui.image(texture, pos, scale, color): nil

gui.image_rounded

Draws a rounded image.

lua
---@param texture texture
---@param pos vec2
---@param scale vec2
---@param color color
---@param rounding number
---@param flags gui.rounding|integer
function gui.image_rounded(texture, pos, scale, color, rounding?, flags?): nil

gui.image_rotated

Draws a rotated image.

lua
---@param texture texture
---@param pos vec2
---@param scale vec2
---@param color color
---@param degrees number
function gui.image_rotated(texture, pos, scale, color, degrees): nil

gui.rebuild

Rebuild the font atlas.

lua
function gui.rebuild(): nil

gui.load_image

Loads an image.

lua
---@param path string
function gui.load_image(path): texture

gui.load_font

Loads a font.

lua
---@param path string
---@param scale number
function gui.load_font(path, scale): font

gui.text

Creates an instance of text.

lua
---@param str string
function gui.text(str): text

gui.rect

Creates an instance of rect.

lua
---@param pos vec2
---@param scale vec2
function gui.rect(pos, scale): rect

gui.text_size

Gets the width and height of some text.

lua
---@param text string
---@param scale number
---@param options? { wrap: number, font: font }
function gui.text_size(text, scale, options?): vec2

Types

text

lua
function text:draw(): text
function text:get_size(): vec2

---@param pos vec2
function text:position(pos): text

---@param color color
function text:color(color): text

---@param wrap number
function text:wrap(wrap): text

---@param scale number
function text:scale(scale): text

---@param justify gui.justify
function text:justify(justify): text

---@param font font
function text:font(font): text

rect

lua
function rect:draw(): rect
function rect:filled(): rect

---@param color color
function rect:color(color): rect

---@param thickness number
---@param color color
function rect:outline(thickness, color): rect

---@param rounding number
---@param flags? gui.rounding|integer
function rect:rounding(rounding, flags?): rect

---@param upr_left color
---@param upr_right color
---@param bot_right color
---@param bot_left color
function rect:multicolors(upr_left, upr_right, bot_right, bot_left): rect

color

FieldType
rinteger
ginteger
binteger
rfnumber
gfnumber
bfnumber

texture

FieldType
scalevec2
namestring
pathstring

font

FieldType
scalenumber
pathstring

Constants

justify

lua
gui.justify.left
gui.justify.center
gui.justify.right

rounding

lua
gui.rounding.top_left
gui.rounding.top_right
gui.rounding.bottom_left
gui.rounding.bottom_right

Examples

lua
util.create_thread(function()
  gui.rect(vec2(100.0, 100.0), vec2(100.0, 100.0))
    :filled()
    :color(color(255, 255, 255, 100))
    :draw()

  gui.text('test')
    :position(vec2(100.0, 100.0))
    :color(color(255, 255, 255, 100))
    :draw()
end)