raygui

Raygui immediate-mode GUI library bindings for Kit

Files

FileDescription
.editorconfigEditor formatting configuration
.gitignoreGit ignore rules for build artifacts and dependencies
.tool-versionsasdf tool versions (Zig, Kit)
LICENSEMIT license file
README.mdThis file
c/kit_raygui.cC FFI wrapper implementation
c/kit_raygui.hC FFI wrapper header
examples/basic-controls.kitBasic controls example
examples/controls-test-suite.kitComprehensive controls demo
examples/scroll-panel.kitScroll panel example
examples/style-selector.kitStyle selector example
kit.tomlPackage manifest with metadata and dependencies
src/raygui.kitMain raygui module
src/controls.kitControl functions (buttons, checkboxes, etc.)
src/containers.kitContainer controls (panels, groups)
src/advanced.kitAdvanced controls (list view, color picker)
src/style.kitStyle and theming functions
src/icons.kitIcon definitions and helpers
src/state.kitGUI state management
src/tooltips.kitTooltip functions
src/logging.kitLogging configuration
src/constants.kitConstants and enums
tests/constants.test.kitTests for constants

Dependencies

No Kit package dependencies.

System Dependencies:

  • raylib - Required for windowing and rendering

Install raylib via your package manager:

  • macOS: brew install raylib
  • Ubuntu: sudo apt install libraylib-dev
  • Fedora: sudo dnf install raylib-devel

Installation

kit add gitlab.com/kit-lang/packages/kit-raygui.git

Usage

import Kit.RayGUI as RayGUI
import Kit.Raylib as Raylib

main = fn =>
  # Initialize raylib window
  Raylib.init-window 800 450 "raygui - basic controls"
  Raylib.set-target-fps 60

  # Run game loop with initial state
  game-loop false 50.0 0

  Raylib.close-window

# state: checked? slider-val toggle-active
game-loop = fn(is-checked?, slider-val, toggle-active) =>
  if Raylib.window-should-close? then
    no-op
  else
    Raylib.begin-drawing
    Raylib.clear-background Raylib.raywhite

    # Button
    if RayGUI.button? 25.0 70.0 150.0 30.0 "Click Me!" then
      println "Button clicked!"

    # Checkbox
    cb = RayGUI.check-box 25.0 120.0 20.0 20.0 "Show Progress" is-checked?
    new-checked? = cb.checked?

    # Slider
    sl = RayGUI.slider 25.0 170.0 200.0 20.0 "0" "100" slider-val 0.0 100.0
    new-slider-val = sl.value

    # Toggle group
    tg = RayGUI.toggle-group 25.0 220.0 100.0 30.0 "Low;Medium;High" toggle-active
    new-toggle = tg.active

    # Progress bar
    if new-checked? then
      RayGUI.progress-bar 25.0 280.0 200.0 20.0 "" "" (new-slider-val / 100.0) 0.0 1.0

    # Status bar
    RayGUI.status-bar 0.0 420.0 800.0 30.0 "raygui basic controls example"

    Raylib.end-drawing
    game-loop new-checked? new-slider-val new-toggle

main

Development

Running Examples

Run examples with the interpreter:

kit run examples/basic-controls.kit --allow=ffi

Compile examples to a native binary:

kit build examples/basic-controls.kit -o basic-controls --allow=ffi && ./basic-controls

Running Tests

Run the test suite:

kit test --allow=ffi

Run the test suite with coverage:

kit test --allow=ffi --coverage

Running kit dev

Run the standard development workflow (format, check, test):

kit dev

This will:

  1. Format and check source files in src/
  2. Run tests in tests/ with coverage

Generating Documentation

Generate API documentation from doc comments:

kit doc

Note: Kit sources with doc comments (##) will generate HTML documents in docs/*.html

Cleaning Build Artifacts

Remove generated files, caches, and build artifacts:

kit task clean

Note: Defined in kit.toml.

Local Installation

To install this package locally for development:

kit install .

This installs the package to ~/.kit/packages/@kit/raygui/, making it available for import as Kit.RayGUI in other projects.

API Overview

The kit-raygui package provides immediate-mode GUI controls built on raylib:

Basic Controls

  • Button: button? x y width height text - Returns true if clicked
  • Label: label x y width height text - Static text display
  • Toggle: toggle x y width height text active - On/off switch
  • Toggle Group: toggle-group x y width height text active - Multiple toggle options
  • Toggle Slider: toggle-slider x y width height text active - Binary slider
  • Check Box: check-box x y width height text checked? - Boolean checkbox
  • Combo Box: combo-box x y width height text active - Dropdown selection
  • Dropdown Box: dropdown-box x y width height text active edit? - Dropdown with edit mode
  • Spinner: spinner x y width height text value min max edit? - Numeric input with arrows
  • Value Box: value-box x y width height text value min max edit? - Numeric input
  • Text Box: text-box x y width height text max-chars edit? - Single-line text input
  • Slider: slider x y width height text-left text-right value min max - Horizontal slider
  • Slider Bar: slider-bar x y width height text-left text-right value min max - Progress-style slider
  • Progress Bar: progress-bar x y width height text-left text-right value min max - Read-only progress

Containers

  • Panel: panel x y width height text - Bordered container
  • Group Box: group-box x y width height text - Titled container
  • Scroll Panel: scroll-panel x y width height text content-x content-y content-width content-height scroll-x scroll-y - Scrollable area
  • Tab Bar: tab-bar x y width height text active - Tabbed interface
  • Grid: grid x y width height text spacing subdivisions - Grid for layout

Advanced Controls

  • List View: list-view x y width height text scroll-index active - Scrollable list
  • Color Picker: color-picker x y width height text color - RGB color selector
  • Color Bar Alpha: color-bar-alpha x y width height text alpha - Alpha slider
  • Color Bar Hue: color-bar-hue x y width height text hue - Hue selector
  • Message Box: message-box x y width height title message buttons - Modal dialog
  • Text Input Box: text-input-box x y width height title message buttons text max-chars secret? - Input dialog

Styling

  • Load Style: load-style file-path - Load style from file
  • Load Style By Index: load-style-by-index index - Load built-in style
  • Get Style: get-style control property - Get style property
  • Set Style: set-style control property value - Set style property
  • Set State: set-state state - Set control state (normal, focused, pressed, disabled)

Icons

  • Icon Text: icon-text icon-id text - Combine icon with text
  • Get Icon Data: get-icon-data icon-id - Get icon pixel data
  • Draw Icon: draw-icon icon-id x y size color - Draw icon directly

Over 400 icons available via RayGUI.icon-* constants.

License

This package is released under the MIT License - see LICENSE for details.

raygui is developed by Ramon Santamaria and also released under the MIT License.

Exported Functions & Types

enable-tooltip

Enable tooltips for GUI controls.

-> Unit

disable-tooltip

Disable tooltips for GUI controls.

-> Unit

set-tooltip

Set tooltip text for the next control drawn. Call this before drawing the control you want to show a tooltip for.

String -> Unit

icon-text

Get text with icon id prepended (if available). Useful for buttons and labels with icons.

NonNegativeInt -> String -> String

set-icon-scale

Set default icon drawing size (1 = 16x16, 2 = 32x32, etc.).

PositiveInt -> Unit

draw-icon

Draw an icon at the specified position with given size and color. Color is a packed RGBA integer.

NonNegativeInt -> Int -> Int -> PositiveInt -> Int -> Unit

get-text-width

Get the width of the given text in pixels using the current GUI font.

String -> Int

icon-none

Int

icon-folder-file-open

Int

icon-file-save-classic

Int

icon-folder-open

Int

icon-folder-save

Int

icon-file-open

Int

icon-file-save

Int

icon-file-export

Int

icon-file-add

Int

icon-file-delete

Int

icon-filetype-text

Int

icon-filetype-audio

Int

icon-filetype-image

Int

icon-filetype-play

Int

icon-filetype-video

Int

icon-filetype-info

Int

icon-file-copy

Int

icon-file-cut

Int

icon-file-paste

Int

icon-cursor-hand

Int

icon-cursor-pointer

Int

icon-cursor-classic

Int

icon-pencil

Int

icon-pencil-big

Int

icon-brush-classic

Int

icon-brush-painter

Int

icon-water-drop

Int

icon-color-picker

Int

icon-rubber

Int

icon-color-bucket

Int

icon-text-t

Int

icon-text-a

Int

icon-scale

Int

icon-resize

Int

icon-filter-point

Int

icon-filter-bilinear

Int

icon-crop

Int

icon-crop-alpha

Int

icon-square-toggle

Int

icon-symmetry

Int

icon-symmetry-horizontal

Int

icon-symmetry-vertical

Int

icon-lens

Int

icon-lens-big

Int

icon-eye-on

Int

icon-eye-off

Int

icon-filter-top

Int

icon-filter

Int

icon-target-point

Int

icon-target-small

Int

icon-target-big

Int

icon-target-move

Int

icon-cursor-move

Int

icon-cursor-scale

Int

icon-cursor-scale-fill

Int

icon-cursor-scale-right

Int

icon-cursor-scale-left

Int

icon-undo

Int

icon-redo

Int

icon-reredo

Int

icon-mutate

Int

icon-rotate

Int

icon-repeat

Int

icon-shuffle

Int

icon-emptybox

Int

icon-target

Int

icon-target-small-fill

Int

icon-target-big-fill

Int

icon-target-move-fill

Int

icon-cursor-move-fill

Int

icon-cursor-scale-fill2

Int

icon-cursor-scale-right-fill

Int

icon-cursor-scale-left-fill

Int

icon-undo-fill

Int

icon-redo-fill

Int

icon-reredo-fill

Int

icon-mutate-fill

Int

icon-rotate-fill

Int

icon-repeat-fill

Int

icon-shuffle-fill

Int

icon-emptybox-small

Int

icon-box

Int

icon-box-top

Int

icon-box-top-right

Int

icon-box-right

Int

icon-box-bottom-right

Int

icon-box-bottom

Int

icon-box-bottom-left

Int

icon-box-left

Int

icon-box-top-left

Int

icon-box-center

Int

icon-box-circle-mask

Int

icon-pot

Int

icon-alpha-multiply

Int

icon-alpha-clear

Int

icon-dithering

Int

icon-mipmaps

Int

icon-box-grid

Int

icon-grid

Int

icon-box-corners-small

Int

icon-box-corners-big

Int

icon-four-boxes

Int

icon-grid-fill

Int

icon-box-multisize

Int

icon-zoom-small

Int

icon-zoom-medium

Int

icon-zoom-big

Int

icon-zoom-all

Int

icon-zoom-center

Int

icon-box-dots-small

Int

icon-box-dots-big

Int

icon-box-concentric

Int

icon-box-grid-big

Int

icon-ok-tick

Int

icon-cross

Int

icon-arrow-left

Int

icon-arrow-right

Int

icon-arrow-down

Int

icon-arrow-up

Int

icon-arrow-left-fill

Int

icon-arrow-right-fill

Int

icon-arrow-down-fill

Int

icon-arrow-up-fill

Int

icon-audio

Int

icon-fx

Int

icon-wave

Int

icon-wave-sinus

Int

icon-wave-square

Int

icon-wave-triangular

Int

icon-cross-small

Int

icon-player-previous

Int

icon-player-play-back

Int

icon-player-play

Int

icon-player-pause

Int

icon-player-stop

Int

icon-player-next

Int

icon-player-record

Int

icon-magnet

Int

icon-lock-close

Int

icon-lock-open

Int

icon-clock

Int

icon-tools

Int

icon-gear

Int

icon-gear-big

Int

icon-bin

Int

icon-hand-pointer

Int

icon-laser

Int

icon-coin

Int

icon-explosion

Int

icon-1up

Int

icon-player

Int

icon-player-jump

Int

icon-key

Int

icon-demon

Int

icon-text-popup

Int

icon-gear-ex

Int

icon-crack

Int

icon-crack-points

Int

icon-star

Int

icon-door

Int

icon-exit

Int

icon-mode-2d

Int

icon-mode-3d

Int

icon-cube

Int

icon-cube-face-top

Int

icon-cube-face-left

Int

icon-cube-face-front

Int

icon-cube-face-bottom

Int

icon-cube-face-right

Int

icon-cube-face-back

Int

icon-camera

Int

icon-special

Int

Int

Int

Int

Int

Int

icon-text-notes

Int

icon-notebook

Int

icon-suitcase

Int

icon-suitcase-zip

Int

icon-mailbox

Int

icon-monitor

Int

icon-printer

Int

icon-photo-camera

Int

icon-photo-camera-flash

Int

icon-house

Int

icon-heart

Int

icon-corner

Int

icon-vertical-bars

Int

icon-vertical-bars-fill

Int

icon-life-bars

Int

icon-info

Int

icon-crossline

Int

icon-help

Int

icon-filetype-alpha

Int

icon-filetype-home

Int

icon-layers-visible

Int

icon-layers

Int

icon-window

Int

icon-hidpi

Int

icon-filetype-binary

Int

icon-hex

Int

icon-shield

Int

icon-file-new

Int

icon-folder-add

Int

icon-alarm

Int

icon-cpu

Int

icon-rom

Int

icon-step-over

Int

icon-step-into

Int

icon-step-out

Int

icon-restart

Int

icon-breakpoint-on

Int

icon-breakpoint-off

Int

icon-burger-menu

Int

icon-case-sensitive

Int

icon-reg-exp

Int

icon-folder

Int

icon-file

Int

icon-sand-timer

Int

icon-warning

Int

icon-help-box

Int

icon-info-box

Int

window-box?

Draw a window box control with a title bar and close button. Returns true if the close button was clicked.

Float -> Float -> Float -> Float -> String -> Bool

group-box

Draw a group box control with a title. Used to visually group controls.

Float -> Float -> Float -> Float -> String -> Int

line

Draw a line separator with optional text.

Float -> Float -> Float -> Float -> String -> Int

panel

Draw a panel control. Used as a container background.

Float -> Float -> Float -> Float -> String -> Int

tab-bar

Draw a tab bar control. Returns {result: Int, active: Int}. Tabs text separated by semicolons: "Tab1;Tab2;Tab3". count is the number of tabs.

Float -> Float -> Float -> Float -> String -> PositiveInt -> NonNegativeInt -> {result: Int, active: Int}

scroll-panel

Draw a scroll panel control. Returns a record with scroll position, view rectangle, and interaction result. content-x/y/w/h define the scrollable content area. scroll-x/y are the current scroll offsets.

Float -> Float -> Float -> Float -> String -> Float -> Float -> Float -> Float -> Float -> Float -> {result: Int, scroll-x: Float, scroll-y: Float, view-x: Float, view-y: Float, view-w: Float, view-h: Float}

enable

Enable all GUI controls (global state).

-> Unit

disable

Disable all GUI controls (global state).

-> Unit

lock

Lock all GUI controls (global state).

-> Unit

unlock

Unlock all GUI controls (global state).

-> Unit

is-locked?

Check if GUI controls are locked.

-> Bool

set-alpha

Set GUI controls alpha (global state), useful for fade-in/fade-out.

Float -> Unit

set-state

Set GUI state (global state): normal, focused, pressed, disabled. Use constants from RayGUI.state-normal, state-focused, etc.

Int -> Unit

get-state

Get current GUI state.

-> Int

state-normal

Normal state - control is interactive

state-focused

Focused state - control has focus (mouse hover)

state-pressed

Pressed state - control is being pressed

state-disabled

Disabled state - control is not interactive

text-align-left

Text aligned to the left

text-align-center

Text aligned to the center

text-align-right

Text aligned to the right

text-align-top

Text aligned to the top

text-align-middle

Text aligned to the middle

text-align-bottom

Text aligned to the bottom

text-wrap-none

No text wrapping

text-wrap-char

Wrap text by character

text-wrap-word

Wrap text by word

control-default

Default control (global properties)

control-label

Label control

control-button

Button control

control-toggle

Toggle control (also toggle group)

control-slider

Slider control (also slider bar, toggle slider)

control-progressbar

Progress bar control

control-checkbox

Check box control

control-combobox

Combo box control

control-dropdownbox

Dropdown box control

control-textbox

Text box control (also text box multi)

control-valuebox

Value box control

control-reserved

Reserved control slot

control-listview

List view control

control-colorpicker

Color picker control

control-scrollbar

Scroll bar control

control-statusbar

Status bar control

border-color-normal

Control border color in normal state

base-color-normal

Control base color in normal state

text-color-normal

Control text color in normal state

border-color-focused

Control border color in focused state

base-color-focused

Control base color in focused state

text-color-focused

Control text color in focused state

border-color-pressed

Control border color in pressed state

base-color-pressed

Control base color in pressed state

text-color-pressed

Control text color in pressed state

border-color-disabled

Control border color in disabled state

base-color-disabled

Control base color in disabled state

text-color-disabled

Control text color in disabled state

border-width

Control border width

text-padding

Control text padding

text-alignment

Control text horizontal alignment

text-size

Text size (glyph max height)

text-spacing

Text spacing between glyphs

line-color

Line control color

background-color

Background color

text-line-spacing

Text spacing between lines

text-alignment-vertical

Text vertical alignment

text-wrap-mode

Text wrap mode

group-padding

Toggle group separation between toggles

slider-width

Slider size of internal bar

slider-padding

Slider/SliderBar internal bar padding

progress-padding

ProgressBar internal padding

check-padding

CheckBox internal check padding

combo-button-width

ComboBox right button width

combo-button-spacing

ComboBox button separation

arrow-padding

DropdownBox arrow padding from border

DropdownBox items separation

DropdownBox arrow hidden flag

DropdownBox roll up flag

text-readonly

TextBox read-only mode

spinner-button-width

Spinner left/right buttons width

spinner-button-spacing

Spinner buttons separation

list-items-height

ListView items height

list-items-spacing

ListView items separation

scrollbar-width

ListView scrollbar size

scrollbar-side

ListView scrollbar side (0=left, 1=right)

list-items-border-normal

ListView items border in normal state

list-items-border-width

ListView items border width

arrows-size

ScrollBar arrows size

arrows-visible

ScrollBar arrows visible

scroll-slider-padding

ScrollBar slider internal padding

scroll-slider-size

ScrollBar slider size

scroll-padding

ScrollBar scroll padding from arrows

scroll-speed

ScrollBar scrolling speed

color-selector-size

ColorPicker selector size

huebar-width

ColorPicker hue bar width

huebar-padding

ColorPicker hue bar padding from panel

huebar-selector-height

ColorPicker hue bar selector height

huebar-selector-overflow

ColorPicker hue bar selector overflow

scrollbar-left-side

Scrollbar left side constant

scrollbar-right-side

Scrollbar right side constant

list-view

Draw a list view control. Returns {result: Int, scroll-index: Int, active: Int}. Items text separated by semicolons: "Item1;Item2;Item3".

Float -> Float -> Float -> Float -> String -> NonNegativeInt -> NonNegativeInt -> {result: Int, scroll-index: Int, active: Int}

message-box

Draw a message box control. Returns clicked button index (0 = none, 1+ = button). Buttons text separated by semicolons: "Ok;Cancel".

Float -> Float -> Float -> Float -> String -> String -> NonEmptyString -> Int

color-picker

Draw a color picker control. Returns {result: Int, color: Int}. Color is a packed RGBA integer.

Float -> Float -> Float -> Float -> String -> Int -> {result: Int, color: Int}

color-panel

Draw a color panel control. Returns {result: Int, color: Int}. Color is a packed RGBA integer.

Float -> Float -> Float -> Float -> String -> Int -> {result: Int, color: Int}

color-bar-alpha

Draw a color bar for alpha control. Returns {result: Int, value: Float}.

Float -> Float -> Float -> Float -> String -> Float -> {result: Int, value: Float}

color-bar-hue

Draw a color bar for hue control. Returns {result: Int, value: Float}.

Float -> Float -> Float -> Float -> String -> Float -> {result: Int, value: Float}

color-picker-hsv

Draw a color picker with HSV values. Returns {result: Int, hue: Float, saturation: Float, value: Float}.

Float -> Float -> Float -> Float -> String -> Float -> Float -> Float -> {result: Int, hue: Float, saturation: Float, value: Float}

color-panel-hsv

Draw a color panel with HSV values. Returns {result: Int, hue: Float, saturation: Float, value: Float}.

Float -> Float -> Float -> Float -> String -> Float -> Float -> Float -> {result: Int, hue: Float, saturation: Float, value: Float}

grid

Draw a grid control. Returns {result: Int, mouse-cell-x: Float, mouse-cell-y: Float}.

Float -> Float -> Float -> Float -> String -> Float -> PositiveInt -> {result: Int, mouse-cell-x: Float, mouse-cell-y: Float}

text-input-box

Draw a text input box dialog. Returns {result: Int, text: String, secret-view-active?: Bool}. Buttons text separated by semicolons: "Ok;Cancel".

Float -> Float -> Float -> Float -> String -> String -> NonEmptyString -> String -> PositiveInt -> Bool -> {result: Int, text: String, secret-view-active?: Bool}

label

Draw a label control.

Float -> Float -> Float -> Float -> String -> Int

button?

Draw a button control. Returns true if clicked.

Float -> Float -> Float -> Float -> String -> Bool

label-button?

Draw a label that acts as a button. Returns true if clicked.

Float -> Float -> Float -> Float -> String -> Bool

status-bar

Draw a status bar control.

Float -> Float -> Float -> Float -> String -> Int

dummy-rec

Draw a dummy rectangle control (for layout testing).

Float -> Float -> Float -> Float -> String -> Int

toggle

Draw a toggle button. Returns {result: Int, active?: Bool}. Pass current active state; returns updated active state.

Float -> Float -> Float -> Float -> String -> Bool -> {result: Int, active?: Bool}

check-box

Draw a check box. Returns {result: Int, checked?: Bool}. Pass current checked state; returns updated checked state.

Float -> Float -> Float -> Float -> String -> Bool -> {result: Int, checked?: Bool}

toggle-group

Draw a toggle group. Returns {result: Int, active: Int}. Text items separated by semicolons: "Item1;Item2;Item3".

Float -> Float -> Float -> Float -> String -> NonNegativeInt -> {result: Int, active: Int}

toggle-slider

Draw a toggle slider. Returns {result: Int, active: Int}. Text items separated by semicolons: "Left;Right".

Float -> Float -> Float -> Float -> String -> NonNegativeInt -> {result: Int, active: Int}

combo-box

Draw a combo box. Returns {result: Int, active: Int}. Text items separated by semicolons: "Item1;Item2;Item3".

Float -> Float -> Float -> Float -> String -> NonNegativeInt -> {result: Int, active: Int}

Draw a dropdown box. Returns {result: Int, active: Int}. Text items separated by semicolons. edit-mode? controls if dropdown is open.

Float -> Float -> Float -> Float -> String -> NonNegativeInt -> Bool -> {result: Int, active: Int}

spinner

Draw a spinner control. Returns {result: Int, value: Int}.

Float -> Float -> Float -> Float -> String -> Int -> Int -> Int -> Bool -> {result: Int, value: Int}

value-box

Draw a value box control. Returns {result: Int, value: Int}.

Float -> Float -> Float -> Float -> String -> Int -> Int -> Int -> Bool -> {result: Int, value: Int}

text-box

Draw a text box control. Returns {result: Int, text: String}. text-size is the maximum number of characters.

Float -> Float -> Float -> Float -> String -> PositiveInt -> Bool -> {result: Int, text: String}

slider

Draw a slider control. Returns {result: Int, value: Float}. text-left and text-right are labels on each side of the slider.

Float -> Float -> Float -> Float -> String -> String -> Float -> Float -> Float -> {result: Int, value: Float}

slider-bar

Draw a slider bar control. Returns {result: Int, value: Float}.

Float -> Float -> Float -> Float -> String -> String -> Float -> Float -> Float -> {result: Int, value: Float}

progress-bar

Draw a progress bar control. Returns {result: Int, value: Float}.

Float -> Float -> Float -> Float -> String -> String -> Float -> Float -> Float -> {result: Int, value: Float}

set-style

Set one style property value. Use control constants (control-default, control-button, etc.) and property constants (border-color-normal, text-size, etc.).

Int -> Int -> Int -> Unit

get-style

Get one style property value.

Int -> Int -> Int

load-style

Load style from file (.rgs).

NonEmptyString -> Unit

load-style-default

Load default style (resets all properties to defaults).

-> Unit

load-style-by-index

Load an embedded style by combo-box index. Index mapping: 0=default, 1=Jungle, 2=Lavanda, 3=Dark, 4=Bluish, 5=Cyber, 6=Terminal, 7=Candy, 8=Cherry, 9=Ashes, 10=Enefete, 11=Sunny, 12=Amber.

NonNegativeInt -> Unit

log-all

Display all logs

Int

log-trace

Trace logging, intended for internal use only

Int

log-debug

Debug logging, used for internal debugging

Int

log-info

Info logging, used for program execution info

Int

log-warning

Warning logging, used on recoverable failures

Int

log-error

Error logging, used on unrecoverable failures

Int

log-fatal

Fatal logging, used to abort program

Int

log-none

Disable logging

Int

set-trace-log-level

Set the minimum log level to display.

NonNegativeInt -> Unit

set-trace-log-json

Set JSON format for trace log output. Outputs structured JSON lines with timestamp, level, message, and source.

-> Unit

set-trace-log-pretty

Set pretty format for trace log output. Outputs human-readable lines with ANSI colors and [raygui] tag.

-> Unit

set-trace-log-file

Set file output for trace log (JSON format, append mode). Call reset-trace-log to close the file when done.

NonEmptyString -> Unit

set-trace-log-no-op

Disable all trace log output (no-op callback).

-> Unit

reset-trace-log

Reset trace log to default raylib output. Closes any open log file.

-> Unit