raylib

    MoonBit bindings for raylib

    Download zip
    Version
    0.4.0
    License
    MIT
    Last updated
    4 months ago
    Downloads
    4K

    #tonyfettes/raylib

    MoonBit bindings for raylib 5.5 — a simple and easy-to-use library to enjoy videogames programming.

    #Features

    • Native target support (macOS, Linux, Windows, Android)
    • Covers core, shapes, textures, text, models, shaders, and audio APIs
    • Automatic resource management via GC finalizers for opaque types (Image, Texture, Font, Sound, Music, Model, etc.)
    • 145 included examples — ports of official raylib examples organized by category
    • Platform-specific linking handled automatically via prebuild script

    #Prerequisites

    A C compiler is required because raylib's C sources are compiled from source as part of the build.

    PlatformC Compiler
    macOSXcode Command Line Tools (xcode-select --install)
    LinuxGCC or Clang (e.g., apt install build-essential)
    WindowsMSVC or MinGW-w64 (GCC) — see below
    AndroidAndroid NDK

    #Windows

    Either of the following C compilers will work:

    • MSVC — Install Visual Studio or the Build Tools for Visual Studio. Make sure to select the "Desktop development with C++" workload. The cl.exe compiler should be available in your PATH (use the "Developer Command Prompt" or "Developer PowerShell" that Visual Studio provides).

    • MinGW-w64 (GCC) — Install via MSYS2:
      1. Install MSYS2 and open the MSYS2 UCRT64 terminal
      2. Run pacman -S mingw-w64-ucrt-x86_64-gcc
      3. Add the MinGW bin directory to your system PATH (default: C:\msys64\ucrt64\bin)
      4. Verify in a new terminal: gcc --version

    #Quick Start

    #Install

    Add the dependency to your project:

    moon add tonyfettes/raylib

    #Hello Window

    fn main {
    @raylib.init_window(800, 450, "Hello Raylib")
    @raylib.set_target_fps(60)
    while not(@raylib.window_should_close()) {
    @raylib.begin_drawing()
    @raylib.clear_background(@raylib.raywhite)
    @raylib.draw_text("Hello, MoonBit!", 190, 200, 20, @raylib.lightgray)
    @raylib.end_drawing()
    }
    @raylib.close_window()
    }

    Build and run:

    moon run --target native main/

    #Building Examples

    Examples live in the examples/ directory as a separate module, organized by category (core/, shapes/, textures/, text/, models/, shaders/, audio/, others/):

    # Build a specific example moon -C examples build --target native core/core_basic_window/ # Run a specific example moon -C examples run --target native core/core_basic_window/ # Run the bunnymark benchmark moon -C examples run --target native textures/textures_bunnymark/

    #API Overview

    Import tonyfettes/raylib and use the @raylib namespace:

    // Window management
    @raylib.init_window(width, height, title)
    @raylib.close_window()
    @raylib.set_target_fps(60)

    // Drawing
    @raylib.begin_drawing()
    @raylib.end_drawing()
    @raylib.clear_background(@raylib.skyblue)

    // Shapes
    @raylib.draw_rectangle(x, y, width, height, @raylib.red)
    @raylib.draw_circle(x, y, radius, @raylib.blue)

    // Textures
    let texture = @raylib.load_texture("sprite.png")
    @raylib.draw_texture(texture, x, y, @raylib.white)

    // Input
    @raylib.is_key_pressed(@raylib.KeySpace)
    @raylib.is_mouse_button_down(@raylib.MouseButtonLeft)
    @raylib.get_mouse_position() // -> Vector2

    // Audio
    @raylib.init_audio_device()
    let sound = @raylib.load_sound("hit.wav")
    @raylib.play_sound(sound)

    // 3D
    @raylib.begin_mode_3d(camera)
    @raylib.draw_cube(position, width, height, length, @raylib.red)
    @raylib.end_mode_3d()

    #License

    MIT

    AudioBuffer

    AudioBuffer, used in audio stream processor callbacks from C.

    AudioStream

    type AudioStream

    AudioStream type, wrapping the internal FFI audio stream resource.

    AudioStream::attach_processor

    #as_free_fn(attach_audio_stream_processor)
    fn AudioStream::attach_processor(self : AudioStream, processor : FuncRef[(
    AudioBuffer
    , UInt) -> Unit]) -> Unit

    Attach audio stream processor to stream, receives the samples as floats.

    AudioStream::detach_processor

    #as_free_fn(detach_audio_stream_processor)
    fn AudioStream::detach_processor(self : AudioStream, processor : FuncRef[(
    AudioBuffer
    , UInt) -> Unit]) -> Unit

    Detach audio stream processor from stream.

    AudioStream::is_playing

    #as_free_fn(is_audio_stream_playing)
    fn AudioStream::is_playing(self : AudioStream) -> Bool

    Check if audio stream is playing.

    AudioStream::is_processed

    #as_free_fn(is_audio_stream_processed)
    fn AudioStream::is_processed(self : AudioStream) -> Bool

    Check if any audio stream buffers requires refill.

    AudioStream::is_valid

    #as_free_fn(is_audio_stream_valid)
    fn AudioStream::is_valid(self : AudioStream) -> Bool

    Check if an audio stream is valid (buffers initialized).

    AudioStream::load

    #as_free_fn(load_audio_stream)
    fn AudioStream::load(sample_rate : Int, sample_size : Int, channels : Int) -> AudioStream

    Load audio stream (to stream raw audio PCM data).

    AudioStream::pause

    #as_free_fn(pause_audio_stream)
    fn AudioStream::pause(self : AudioStream) -> Unit

    Pause audio stream.

    AudioStream::play

    #as_free_fn(play_audio_stream)
    fn AudioStream::play(self : AudioStream) -> Unit

    Play audio stream.

    AudioStream::resume_

    #as_free_fn(resume_audio_stream)
    fn AudioStream::resume_(self : AudioStream) -> Unit

    Resume audio stream.

    AudioStream::set_pan

    #as_free_fn(set_audio_stream_pan)
    fn AudioStream::set_pan(self : AudioStream, pan : Float) -> Unit

    Set pan for audio stream (0.5 is centered).

    AudioStream::set_pitch

    #as_free_fn(set_audio_stream_pitch)
    fn AudioStream::set_pitch(self : AudioStream, pitch : Float) -> Unit

    Set pitch for audio stream (1.0 is base level).

    AudioStream::set_volume

    #as_free_fn(set_audio_stream_volume)
    fn AudioStream::set_volume(self : AudioStream, volume : Float) -> Unit

    Set volume for audio stream (1.0 is max level).

    AudioStream::stop

    #as_free_fn(stop_audio_stream)
    fn AudioStream::stop(self : AudioStream) -> Unit

    Stop audio stream.

    AudioStream::unload

    #as_free_fn(unload_audio_stream)
    fn AudioStream::unload(self : AudioStream) -> Unit

    Unload audio stream and free memory.

    AudioStream::update

    #as_free_fn(update_audio_stream)
    fn AudioStream::update(self : AudioStream, data : Bytes, frame_count : Int) -> Unit

    Update audio stream buffers with data.

    AutomationEvent

    pub struct AutomationEvent {
    frame : Int
    type_ : Int
    params : FixedArray[Int]
    } derive(
    Debug
    )

    Automation event with frame, type, and parameters.

    AutomationEvent::from_bytes

    fn AutomationEvent::from_bytes(b : Bytes) -> AutomationEvent

    Deserialize an AutomationEvent from a Bytes buffer.

    AutomationEvent::to_bytes

    fn AutomationEvent::to_bytes(e : AutomationEvent) -> Bytes

    Serialize an AutomationEvent to a Bytes buffer.

    AutomationEventList

    type AutomationEventList

    AutomationEventList::count

    #as_free_fn(automation_event_list_count)
    fn AutomationEventList::count(self : AutomationEventList) -> Int

    Get the number of automation events in the list.

    AutomationEventList::export_

    #as_free_fn(export_automation_event_list)
    fn AutomationEventList::export_(self : AutomationEventList, file_name : String) -> Bool

    Export automation events list as text file.

    AutomationEventList::get

    #as_free_fn(automation_event_list_get)
    fn AutomationEventList::get(self : AutomationEventList, index : Int) -> AutomationEvent

    Get an automation event from the list by index.

    AutomationEventList::load

    #as_free_fn(load_automation_event_list)
    fn AutomationEventList::load(file_name : String) -> AutomationEventList

    Load automation events list from file, NULL for empty list, capacity = MAX_AUTOMATION_EVENTS.

    AutomationEventList::set

    #as_free_fn(set_automation_event_list)
    fn AutomationEventList::set(self : AutomationEventList) -> Unit

    Set automation event list to record to.

    AutomationEventList::unload

    #as_free_fn(unload_automation_event_list)
    fn AutomationEventList::unload(self : AutomationEventList) -> Unit

    Unload automation events list from file.

    BoundingBox

    pub struct BoundingBox {
    min : Vector3
    max : Vector3
    } derive(Eq,
    Debug
    )

    BoundingBox, defined by min and max vertex box-corners.
    impl Show for BoundingBox

    BoundingBox::from_bytes

    fn BoundingBox::from_bytes(b : Bytes) -> BoundingBox

    Deserialize BoundingBox from bytes.

    BoundingBox::new

    fn BoundingBox::new(min : Vector3, max : Vector3) -> BoundingBox

    Create a new BoundingBox.

    BoundingBox::to_bytes

    fn BoundingBox::to_bytes(bb : BoundingBox) -> Bytes

    Serialize BoundingBox to bytes.

    Camera2D

    pub struct Camera2D {
    offset : Vector2
    target : Vector2
    rotation : Float
    zoom : Float
    } derive(Eq,
    Debug
    )

    Camera2D, defines position/orientation in 2D space.
    impl Show for Camera2D

    Camera2D::from_bytes

    fn Camera2D::from_bytes(b : Bytes) -> Camera2D

    Deserialize Camera2D from bytes.

    Camera2D::new

    fn Camera2D::new(offset : Vector2, target : Vector2, rotation : Float, zoom : Float) -> Camera2D

    Create a new Camera2D.

    Camera2D::to_bytes

    fn Camera2D::to_bytes(c : Camera2D) -> Bytes

    Serialize Camera2D to bytes.

    Camera3D

    pub struct Camera3D {
    position : Vector3
    target : Vector3
    up : Vector3
    fovy : Float
    projection : Int
    } derive(Eq,
    Debug
    )

    Camera3D, defines position/orientation in 3D space.
    impl Show for Camera3D

    Camera3D::from_bytes

    fn Camera3D::from_bytes(b : Bytes) -> Camera3D

    Deserialize Camera3D from bytes.

    Camera3D::new

    fn Camera3D::new(position : Vector3, target : Vector3, up : Vector3, fovy : Float, projection : Int) -> Camera3D

    Create a new Camera3D.

    Camera3D::to_bytes

    fn Camera3D::to_bytes(c : Camera3D) -> Bytes

    Serialize Camera3D to bytes.

    Color

    pub struct Color {
    r : Byte
    g : Byte
    b : Byte
    a : Byte
    } derive(Eq,
    Debug
    )

    Color, 4 components, R8G8B8A8 (32bit).
    impl Show for Color

    Color::from_bytes

    fn Color::from_bytes(b : Bytes) -> Color

    Deserialize Color from bytes.

    Color::new

    fn Color::new(r : Int, g : Int, b : Int, a : Int) -> Color

    Create a new Color from RGBA components.

    Color::to_bytes

    fn Color::to_bytes(color : Color) -> Bytes

    Serialize Color to bytes.

    FilePathList

    type FilePathList

    FilePathList::count

    #as_free_fn(file_path_list_count)
    fn FilePathList::count(self : FilePathList) -> Int

    Get the number of filepaths in the list.

    FilePathList::load_dropped

    #as_free_fn(load_dropped_files)
    fn FilePathList::load_dropped() -> FilePathList

    Load dropped filepaths.

    FloatArray

    type FloatArray

    FloatArray::free

    fn FloatArray::free(self : FloatArray) -> Unit

    Free the underlying C memory. Only call on arrays created with new(), not on views into raylib-managed memory (e.g., from Mesh::vertices()).

    FloatArray::length

    fn FloatArray::length(self : FloatArray) -> Int

    Get the number of elements in this float array.

    FloatArray::new

    fn FloatArray::new(count : Int) -> FloatArray

    Allocate a zero-initialized float array with count elements. Must be freed with free() when no longer needed.

    FloatArray::op_get

    fn FloatArray::op_get(self : FloatArray, index : Int) -> Float

    Get the float value at the given index (bounds-checked).

    FloatArray::op_set

    fn FloatArray::op_set(self : FloatArray, index : Int, value : Float) -> Unit

    Set the float value at the given index (bounds-checked).

    FloatArray::pointer

    Get the raw FFI pointer for passing to low-level rlgl functions.

    Font

    type Font

    Font, font texture and GlyphInfo array data.
    impl Default for Font

    Font::base_size

    #as_free_fn(get_font_base_size)
    fn Font::base_size(self : Font) -> Int

    Get font base size (default chars height).

    Font::draw_codepoint

    #as_free_fn(draw_text_codepoint)
    fn Font::draw_codepoint(self : Font, codepoint : Int, position : Vector2, font_size : Float, tint : Color) -> Unit

    Draw one character (codepoint).

    Font::draw_codepoints

    #as_free_fn(draw_text_codepoints)
    fn Font::draw_codepoints(self : Font, codepoints : Array[Int], position : Vector2, font_size : Float, spacing : Float, tint : Color) -> Unit

    Draw multiple characters (codepoints).

    Font::draw_text

    #as_free_fn(draw_text_ex)
    fn Font::draw_text(self : Font, text : String, position : Vector2, font_size : Float, spacing : Float, tint : Color) -> Unit

    Draw text using font and additional parameters.

    Font::draw_text_pro

    #as_free_fn(draw_text_pro)
    fn Font::draw_text_pro(self : Font, text : String, position : Vector2, origin : Vector2, rotation : Float, font_size : Float, spacing : Float, tint : Color) -> Unit

    Draw text using font and pro parameters (rotation).

    Font::export_as_code

    #as_free_fn(export_font_as_code)
    fn Font::export_as_code(self : Font, file_name : String) -> Bool

    Export font as code file, returns true on success.

    Font::get_default

    #deprecated("Use Font::default() instead")
    #as_free_fn(get_font_default, deprecated="Use Font::default() instead")
    fn Font::get_default() -> Font

    Get the default font.

    Font::glyph_atlas_rec

    #as_free_fn(get_glyph_atlas_rec)
    fn Font::glyph_atlas_rec(self : Font, codepoint : Int) -> Rectangle

    Get glyph rectangle in font atlas for a codepoint, fallback to '?' if not found.

    Font::glyph_count

    #as_free_fn(get_font_glyph_count)
    fn Font::glyph_count(self : Font) -> Int

    Get font number of glyph characters.

    Font::glyph_index

    #as_free_fn(get_glyph_index)
    fn Font::glyph_index(self : Font, codepoint : Int) -> Int

    Get glyph index position in font for a codepoint, fallback to '?' if not found.

    Font::glyph_info

    #as_free_fn(get_glyph_info)
    fn Font::glyph_info(self : Font, codepoint : Int) -> GlyphInfo

    Get glyph font info data for a codepoint, fallback to '?' if not found.

    Font::glyph_padding

    #as_free_fn(get_font_glyph_padding)
    fn Font::glyph_padding(self : Font) -> Int

    Get font glyph padding.

    Font::is_valid

    #as_free_fn(is_font_valid)
    fn Font::is_valid(self : Font) -> Bool

    Check if a font is valid (font data loaded, WARNING: GPU texture not checked).

    Font::load

    #as_free_fn(load_font)
    fn Font::load(file_name : String) -> Font

    Load font from file into GPU memory (VRAM).

    Font::load_ex

    #as_free_fn(load_font_ex)
    fn Font::load_ex(file_name : String, font_size : Int) -> Font

    Load font from file with extended parameters, loading the default character set.

    Font::load_ex_codepoints

    #as_free_fn(load_font_ex_codepoints)
    fn Font::load_ex_codepoints(file_name : String, font_size : Int, codepoints : Array[Int]) -> Font

    Load font from file with extended parameters and custom codepoints.

    Font::load_from_atlas

    #deprecated("Use Font::new(...) instead")
    #as_free_fn(load_font_from_atlas, deprecated="Use Font::new(...) instead")
    fn Font::load_from_atlas(texture : Texture, base_size : Int, glyph_padding~ : Int, glyphs : GlyphInfoArray, recs : FixedArray[Rectangle]) -> Font

    Load font from texture atlas components. Deprecated: use Font::new(...) instead.

    Font::load_from_image

    #as_free_fn(load_font_from_image)
    fn Font::load_from_image(image : Image, key : Color, first_char : Int) -> Font

    Load font from Image (XNA style).

    Font::load_from_memory

    #as_free_fn(load_font_from_memory)
    fn Font::load_from_memory(file_type : String, file_data : Bytes, data_size : Int, font_size : Int) -> Font

    Load font from memory buffer, file_type refers to extension: i.e. '.ttf'.

    Font::measure_text

    #as_free_fn(measure_text_ex)
    fn Font::measure_text(self : Font, text : String, font_size : Float, spacing : Float) -> Vector2

    Measure string size for font.

    Font::new

    #as_free_fn(new_font)
    fn Font::new(texture : Texture, base_size : Int, glyph_padding~ : Int, glyphs : GlyphInfoArray, recs : FixedArray[Rectangle]) -> Font

    Construct a Font from its components. Copies the glyphs and recs data. The texture value is copied — caller should not unload it separately.

    Font::texture

    #as_free_fn(get_font_texture)
    fn Font::texture(self : Font) -> Texture

    Get font texture atlas.

    Font::unload

    #as_free_fn(unload_font)
    fn Font::unload(self : Font) -> Unit

    Unload font from GPU memory (VRAM).

    GlyphInfo

    pub struct GlyphInfo {
    value : Int
    offset_x : Int
    offset_y : Int
    advance_x : Int
    } derive(Eq,
    Debug
    )

    Font character glyph info data.
    impl Show for GlyphInfo

    GlyphInfo::from_bytes

    fn GlyphInfo::from_bytes(b : Bytes) -> GlyphInfo

    Deserialize a GlyphInfo from a byte buffer.

    GlyphInfo::new

    fn GlyphInfo::new(value : Int, offset_x : Int, offset_y : Int, advance_x : Int) -> GlyphInfo

    Create a new GlyphInfo.

    GlyphInfoArray

    type GlyphInfoArray

    Array of glyph info data for font characters.

    GlyphInfoArray::count

    #as_free_fn(glyph_info_array_count)
    fn GlyphInfoArray::count(self : GlyphInfoArray) -> Int

    Get the number of glyphs in the array.

    GlyphInfoArray::gen_image_atlas

    fn GlyphInfoArray::gen_image_atlas(self : GlyphInfoArray, font_size : Int, padding : Int, pack_method : Int) -> (Image, FixedArray[Rectangle])

    Generate image font atlas using chars info. Returns the atlas image and the glyph rectangle array.

    GlyphInfoArray::get

    #as_free_fn(glyph_info_array_get)
    fn GlyphInfoArray::get(self : GlyphInfoArray, index : Int) -> GlyphInfo

    Get glyph info at the given index in the array.

    GlyphInfoArray::load

    #as_free_fn(load_font_data)
    fn GlyphInfoArray::load(file_data : Bytes, data_size : Int, font_size : Int, font_type : Int) -> GlyphInfoArray

    Load font data for further use.

    GlyphInfoArray::new

    #as_free_fn(new_glyph_info_array)
    fn GlyphInfoArray::new(count : Int) -> GlyphInfoArray

    Allocate an empty GlyphInfoArray of the given size.

    GlyphInfoArray::op_set

    fn GlyphInfoArray::op_set(self : GlyphInfoArray, index : Int, info : GlyphInfo) -> Unit

    Set a glyph at the given index.

    GlyphInfoArray::unload

    #as_free_fn(unload_font_data)
    fn GlyphInfoArray::unload(self : GlyphInfoArray) -> Unit

    Unload font chars info data (RAM).

    Image

    type Image

    Image::adjust_brightness

    #as_free_fn(image_color_brightness)
    fn Image::adjust_brightness(self : Image, brightness : Int) -> Unit

    Modify image color: brightness (-255 to 255).

    Image::adjust_contrast

    #as_free_fn(image_color_contrast)
    fn Image::adjust_contrast(self : Image, contrast : Float) -> Unit

    Modify image color: contrast (-100 to 100).

    Image::alpha_border

    #as_free_fn(get_image_alpha_border)
    fn Image::alpha_border(self : Image, threshold : Float) -> Rectangle

    Get image alpha border rectangle.

    Image::alpha_clear

    #as_free_fn(image_alpha_clear)
    fn Image::alpha_clear(self : Image, color : Color, threshold : Float) -> Unit

    Clear alpha channel to desired color.

    Image::alpha_crop

    #as_free_fn(image_alpha_crop)
    fn Image::alpha_crop(self : Image, threshold : Float) -> Unit

    Crop image depending on alpha value.

    Image::alpha_mask

    #as_free_fn(image_alpha_mask)
    fn Image::alpha_mask(self : Image, alpha_mask : Image) -> Unit

    Apply alpha mask to image.

    Image::alpha_premultiply

    #as_free_fn(image_alpha_premultiply)
    fn Image::alpha_premultiply(self : Image) -> Unit

    Premultiply alpha channel.

    Image::blur_gaussian

    #as_free_fn(image_blur_gaussian)
    fn Image::blur_gaussian(self : Image, blur_size : Int) -> Unit

    Apply Gaussian blur using a box blur approximation.

    Image::clear_background

    #as_free_fn(image_clear_background)
    fn Image::clear_background(self : Image, color : Color) -> Unit

    Clear image background with given color.

    Image::color_grayscale

    #as_free_fn(image_color_grayscale)
    fn Image::color_grayscale(self : Image) -> Unit

    Modify image color: grayscale.

    Image::color_invert

    #as_free_fn(image_color_invert)
    fn Image::color_invert(self : Image) -> Unit

    Modify image color: invert.

    Image::color_replace

    #as_free_fn(image_color_replace)
    fn Image::color_replace(self : Image, color : Color, replace : Color) -> Unit

    Modify image color: replace color.

    Image::color_tint

    #as_free_fn(image_color_tint)
    fn Image::color_tint(self : Image, color : Color) -> Unit

    Modify image color: tint.

    Image::copy

    #as_free_fn(image_copy)
    fn Image::copy(self : Image) -> Image

    Create an image duplicate (useful for transformations).

    Image::crop

    #as_free_fn(image_crop)
    fn Image::crop(self : Image, crop : Rectangle) -> Unit

    Crop an image to a defined rectangle.

    Image::dither

    #as_free_fn(image_dither)
    fn Image::dither(self : Image, r_bpp : Int, g_bpp : Int, b_bpp : Int, a_bpp : Int) -> Unit

    Dither image data to 16bpp or lower (Floyd-Steinberg dithering).

    Image::draw

    #as_free_fn(image_draw)
    fn Image::draw(self : Image, src : Image, src_rec : Rectangle, dst_rec : Rectangle, tint : Color) -> Unit

    Draw a source image within a destination image (tint applied to source).

    Image::draw_circle

    #as_free_fn(image_draw_circle)
    fn Image::draw_circle(self : Image, center_x : Int, center_y : Int, radius : Int, color : Color) -> Unit

    Draw a filled circle within an image.

    Image::draw_circle_lines

    #as_free_fn(image_draw_circle_lines)
    fn Image::draw_circle_lines(self : Image, center_x : Int, center_y : Int, radius : Int, color : Color) -> Unit

    Draw circle outline within an image.

    Image::draw_circle_lines_v

    #as_free_fn(image_draw_circle_lines_v)
    fn Image::draw_circle_lines_v(self : Image, center : Vector2, radius : Int, color : Color) -> Unit

    Draw circle outline within an image (Vector version).

    Image::draw_circle_v

    #as_free_fn(image_draw_circle_v)
    fn Image::draw_circle_v(self : Image, center : Vector2, radius : Int, color : Color) -> Unit

    Draw a filled circle within an image (Vector version).

    Image::draw_line

    #as_free_fn(image_draw_line)
    fn Image::draw_line(self : Image, start_pos_x : Int, start_pos_y : Int, end_pos_x : Int, end_pos_y : Int, color : Color) -> Unit

    Draw line within an image.

    Image::draw_line_ex

    #as_free_fn(image_draw_line_ex)
    fn Image::draw_line_ex(self : Image, start : Vector2, end_ : Vector2, thick : Int, color : Color) -> Unit

    Draw a line defining thickness within an image.

    Image::draw_line_v

    #as_free_fn(image_draw_line_v)
    fn Image::draw_line_v(self : Image, start : Vector2, end_ : Vector2, color : Color) -> Unit

    Draw line within an image (Vector version).

    Image::draw_pixel

    #as_free_fn(image_draw_pixel)
    fn Image::draw_pixel(self : Image, pos_x : Int, pos_y : Int, color : Color) -> Unit

    Draw pixel within an image.

    Image::draw_pixel_v

    #as_free_fn(image_draw_pixel_v)
    fn Image::draw_pixel_v(self : Image, position : Vector2, color : Color) -> Unit

    Draw pixel within an image (Vector version).

    Image::draw_rectangle

    #as_free_fn(image_draw_rectangle)
    fn Image::draw_rectangle(self : Image, pos_x : Int, pos_y : Int, width : Int, height : Int, color : Color) -> Unit

    Draw rectangle within an image.

    Image::draw_rectangle_lines

    #as_free_fn(image_draw_rectangle_lines)
    fn Image::draw_rectangle_lines(self : Image, rec : Rectangle, thick : Int, color : Color) -> Unit

    Draw rectangle lines within an image.

    Image::draw_rectangle_rec

    #as_free_fn(image_draw_rectangle_rec)
    fn Image::draw_rectangle_rec(self : Image, rec : Rectangle, color : Color) -> Unit

    Draw rectangle within an image.

    Image::draw_rectangle_v

    #as_free_fn(image_draw_rectangle_v)
    fn Image::draw_rectangle_v(self : Image, position : Vector2, size : Vector2, color : Color) -> Unit

    Draw rectangle within an image (Vector version).

    Image::draw_text

    #as_free_fn(image_draw_text)
    fn Image::draw_text(self : Image, text : String, pos_x : Int, pos_y : Int, font_size : Int, color : Color) -> Unit

    Draw text (using default font) within an image (destination).

    Image::draw_text_ex

    #as_free_fn(image_draw_text_ex)
    fn Image::draw_text_ex(self : Image, font : Font, text : String, position : Vector2, font_size : Float, spacing : Float, tint : Color) -> Unit

    Draw text (custom sprite font) within an image (destination).

    Image::draw_triangle

    #as_free_fn(image_draw_triangle)
    fn Image::draw_triangle(self : Image, v1 : Vector2, v2 : Vector2, v3 : Vector2, color : Color) -> Unit

    Draw triangle within an image.

    Image::draw_triangle_ex

    #as_free_fn(image_draw_triangle_ex)
    fn Image::draw_triangle_ex(self : Image, v1 : Vector2, v2 : Vector2, v3 : Vector2, c1 : Color, c2 : Color, c3 : Color) -> Unit

    Draw triangle with interpolated colors within an image.

    Image::draw_triangle_fan

    #as_free_fn(image_draw_triangle_fan)
    fn Image::draw_triangle_fan(self : Image, points : Array[Vector2], color : Color) -> Unit

    Draw a triangle fan defined by points within an image (first vertex is the center).

    Image::draw_triangle_lines

    #as_free_fn(image_draw_triangle_lines)
    fn Image::draw_triangle_lines(self : Image, v1 : Vector2, v2 : Vector2, v3 : Vector2, color : Color) -> Unit

    Draw triangle outline within an image.

    Image::draw_triangle_strip

    #as_free_fn(image_draw_triangle_strip)
    fn Image::draw_triangle_strip(self : Image, points : Array[Vector2], color : Color) -> Unit

    Draw a triangle strip defined by points within an image.

    Image::export_

    #as_free_fn(export_image)
    fn Image::export_(self : Image, file_name : String) -> Bool

    Export image data to file, returns true on success.

    Image::export_as_code

    #as_free_fn(export_image_as_code)
    fn Image::export_as_code(self : Image, file_name : String) -> Bool

    Export image as code file defining an array of bytes, returns true on success.

    Image::export_to_memory

    #as_free_fn(export_image_to_memory)
    fn Image::export_to_memory(self : Image, file_type : String) -> Bytes

    Export image to memory buffer.

    Image::flip_horizontal

    #as_free_fn(image_flip_horizontal)
    fn Image::flip_horizontal(self : Image) -> Unit

    Flip image horizontally.

    Image::flip_vertical

    #as_free_fn(image_flip_vertical)
    fn Image::flip_vertical(self : Image) -> Unit

    Flip image vertically.

    Image::format

    #as_free_fn(get_image_format)
    fn Image::format(self : Image) -> Int

    Get image data format.

    Image::from_channel

    #as_free_fn(image_from_channel)
    fn Image::from_channel(self : Image, selected_channel : Int) -> Image

    Create an image from a selected channel of another image (GRAYSCALE).

    Image::from_image

    #as_free_fn(image_from_image)
    fn Image::from_image(self : Image, rec : Rectangle) -> Image

    Create an image from another image piece.

    Image::gen_cellular

    #as_free_fn(gen_image_cellular)
    fn Image::gen_cellular(width : Int, height : Int, tile_size : Int) -> Image

    Generate image: cellular algorithm, bigger tileSize means bigger cells.

    Image::gen_checked

    #as_free_fn(gen_image_checked)
    fn Image::gen_checked(width : Int, height : Int, checks_x : Int, checks_y : Int, col1 : Color, col2 : Color) -> Image

    Generate image: checked.

    Image::gen_color

    #as_free_fn(gen_image_color)
    fn Image::gen_color(width : Int, height : Int, color : Color) -> Image

    Generate image: plain color.

    Image::gen_gradient_linear

    #as_free_fn(gen_image_gradient_linear)
    fn Image::gen_gradient_linear(width : Int, height : Int, direction : Int, start : Color, end_ : Color) -> Image

    Generate image: linear gradient, direction in degrees [0..360], 0=Vertical gradient.

    Image::gen_gradient_radial

    #as_free_fn(gen_image_gradient_radial)
    fn Image::gen_gradient_radial(width : Int, height : Int, density : Float, inner : Color, outer : Color) -> Image

    Generate image: radial gradient.

    Image::gen_gradient_square

    #as_free_fn(gen_image_gradient_square)
    fn Image::gen_gradient_square(width : Int, height : Int, density : Float, inner : Color, outer : Color) -> Image

    Generate image: square gradient.

    Image::gen_mipmaps

    #as_free_fn(image_mipmaps)
    fn Image::gen_mipmaps(self : Image) -> Unit

    Compute all mipmap levels for a provided image.

    Image::gen_perlin_noise

    #as_free_fn(gen_image_perlin_noise)
    fn Image::gen_perlin_noise(width : Int, height : Int, offset_x : Int, offset_y : Int, scale : Float) -> Image

    Generate image: perlin noise.

    Image::gen_text

    #as_free_fn(gen_image_text)
    fn Image::gen_text(width : Int, height : Int, text : String) -> Image

    Generate image: grayscale image from text data.

    Image::gen_white_noise

    #as_free_fn(gen_image_white_noise)
    fn Image::gen_white_noise(width : Int, height : Int, factor : Float) -> Image

    Generate image: white noise.

    Image::get_color

    #as_free_fn(get_image_color)
    fn Image::get_color(self : Image, x : Int, y : Int) -> Color

    Get image pixel color at (x, y) position.

    Image::height

    #as_free_fn(image_height, deprecated="Use @raylib.Image::height() instead")
    #as_free_fn(get_image_height)
    fn Image::height(self : Image) -> Int

    Get image height.

    Image::is_valid

    #as_free_fn(is_image_valid)
    fn Image::is_valid(self : Image) -> Bool

    Check if an image is valid (data and parameters).

    Image::kernel_convolution

    #as_free_fn(image_kernel_convolution)
    fn Image::kernel_convolution(self : Image, kernel : Bytes, kernel_size : Int) -> Unit

    Apply custom square convolution kernel to image.

    Image::load

    #as_free_fn(load_image)
    fn Image::load(file_name : String) -> Image

    Load image from file into CPU memory (RAM).

    Image::load_anim

    fn Image::load_anim(file_name : String) -> (Image, Int)

    Load image sequence from file (frames appended to image.data). Returns the image and frame count.

    Image::load_anim_from_memory

    fn Image::load_anim_from_memory(file_type : String, file_data : Bytes, data_size : Int) -> (Image, Int)

    Load image sequence from memory buffer. Returns the image and frame count.

    Image::load_colors

    #as_free_fn(load_image_colors)
    fn Image::load_colors(self : Image) -> Bytes

    Load color data from image as a Color array (RGBA - 32bit).

    Image::load_from_memory

    #as_free_fn(load_image_from_memory)
    fn Image::load_from_memory(file_type : String, file_data : Bytes, data_size : Int) -> Image

    Load image from memory buffer, fileType refers to extension: i.e. '.png'.

    Image::load_from_screen

    #as_free_fn(load_image_from_screen)
    fn Image::load_from_screen() -> Image

    Load image from screen buffer (screenshot).

    Image::load_from_texture

    #as_free_fn(load_image_from_texture)
    fn Image::load_from_texture(texture : Texture) -> Image

    Load image from GPU texture data.

    Image::load_palette

    #as_free_fn(load_image_palette)
    fn Image::load_palette(self : Image, max_palette_size : Int) -> Bytes

    Load colors palette from image as a Color array (RGBA - 32bit).

    Image::load_raw

    #as_free_fn(load_image_raw)
    fn Image::load_raw(file_name : String, width : Int, height : Int, format : Int, header_size : Int) -> Image

    Load image from RAW file data.

    Image::mipmaps

    #as_free_fn(get_image_mipmaps)
    fn Image::mipmaps(self : Image) -> Int

    Get image mipmap levels.

    Image::new

    #as_free_fn(new_image)
    fn Image::new(pixel_data : Bytes, width : Int, height : Int, format : Int) -> Image

    Create an Image from raw pixel data in memory. Guards that pixel_data is large enough for the declared dimensions; returns an empty image if the buffer is too small.

    Image::resize

    #as_free_fn(image_resize)
    fn Image::resize(self : Image, new_width : Int, new_height : Int) -> Unit

    Resize image (Bicubic scaling algorithm).

    Image::resize_canvas

    #as_free_fn(image_resize_canvas)
    fn Image::resize_canvas(self : Image, new_width : Int, new_height : Int, offset_x : Int, offset_y : Int, fill : Color) -> Unit

    Resize canvas and fill with color.

    Image::resize_nn

    #as_free_fn(image_resize_nn)
    fn Image::resize_nn(self : Image, new_width : Int, new_height : Int) -> Unit

    Resize image (Nearest-Neighbor scaling algorithm).

    Image::rotate

    #as_free_fn(image_rotate)
    fn Image::rotate(self : Image, degrees : Int) -> Unit

    Rotate image by input angle in degrees (-359 to 359).

    Image::rotate_ccw

    #as_free_fn(image_rotate_ccw)
    fn Image::rotate_ccw(self : Image) -> Unit

    Rotate image counter-clockwise 90deg.

    Image::rotate_cw

    #as_free_fn(image_rotate_cw)
    fn Image::rotate_cw(self : Image) -> Unit

    Rotate image clockwise 90deg.

    Image::set_format

    #as_free_fn(image_format)
    fn Image::set_format(self : Image, new_format : Int) -> Unit

    Convert image data to desired format.

    Image::text

    #as_free_fn(image_text)
    fn Image::text(text : String, font_size : Int, color : Color) -> Image

    Create an image from text (default font).

    Image::text_ex

    #as_free_fn(image_text_ex)
    fn Image::text_ex(font : Font, text : String, font_size : Float, spacing : Float, tint : Color) -> Image

    Create an image from text (custom sprite font).

    Image::to_pot

    #as_free_fn(image_to_pot)
    fn Image::to_pot(self : Image, fill : Color) -> Unit

    Convert image to POT (power-of-two).

    Image::to_texture

    #as_free_fn(load_texture_from_image)
    fn Image::to_texture(self : Image) -> Texture

    Load texture from image data.

    Image::to_texture_cubemap

    #as_free_fn(load_texture_cubemap)
    fn Image::to_texture_cubemap(self : Image, layout : Int) -> Texture

    Load cubemap from image, multiple image cubemap layouts supported.

    Image::unload

    #as_free_fn(unload_image)
    fn Image::unload(self : Image) -> Unit

    Unload image from CPU memory (RAM).

    Image::width

    #as_free_fn(image_width, deprecated="Use @raylib.Image::width() instead")
    #as_free_fn(get_image_width)
    fn Image::width(self : Image) -> Int

    Get image width.

    Material

    type Material

    Material type, includes shader and maps.
    impl Default for Material

    Material::is_valid

    #as_free_fn(is_material_valid)
    fn Material::is_valid(self : Material) -> Bool

    Check if a material is valid (shader assigned, map textures loaded in GPU).

    Material::load_default

    #deprecated("Use Material::default() instead")
    #as_free_fn(load_material_default, deprecated="Use Material::default() instead")
    fn Material::load_default() -> Material

    Load default material (deprecated, use Material::default() instead).

    Material::maps

    #as_free_fn(get_material_maps)
    fn Material::maps(self : Material) -> MaterialMapArray

    Get material maps array.

    Material::set_map_color

    #as_free_fn(set_material_map_color)
    fn Material::set_map_color(self : Material, map_type : Int, color : Color) -> Unit

    Set color for a material map type.

    Material::set_map_value

    #as_free_fn(set_material_map_value)
    fn Material::set_map_value(self : Material, map_type : Int, value : Float) -> Unit

    Set value for a material map type.

    Material::set_shader

    #as_free_fn(set_material_shader)
    fn Material::set_shader(self : Material, shader : Shader) -> Unit

    Set shader for a material.

    Material::set_texture

    #as_free_fn(set_material_texture)
    fn Material::set_texture(self : Material, map_type : Int, texture : Texture) -> Unit

    Set texture for a material map type (MATERIAL_MAP_DIFFUSE, MATERIAL_MAP_SPECULAR...).

    Material::shader

    #as_free_fn(get_material_shader)
    fn Material::shader(self : Material) -> Shader

    Get shader assigned to the material.

    Material::unload

    #as_free_fn(unload_material)
    fn Material::unload(self : Material) -> Unit

    Unload material from GPU memory (VRAM).

    MaterialMap

    type MaterialMap

    Material map, contains texture, color, and value.

    MaterialMap::color

    fn MaterialMap::color(self : MaterialMap) -> Color

    Get material map color.

    MaterialMap::set_color

    fn MaterialMap::set_color(self : MaterialMap, color : Color) -> Unit

    Set material map color.

    MaterialMap::set_texture

    fn MaterialMap::set_texture(self : MaterialMap, texture : Texture) -> Unit

    Set material map texture.

    MaterialMap::set_value

    fn MaterialMap::set_value(self : MaterialMap, value : Float) -> Unit

    Set material map value.

    MaterialMap::texture

    fn MaterialMap::texture(self : MaterialMap) -> Texture

    Get material map texture.

    MaterialMap::value

    fn MaterialMap::value(self : MaterialMap) -> Float

    Get material map value.

    MaterialMapArray

    type MaterialMapArray

    Array of material maps, accessed by index.

    MaterialMapArray::count

    fn MaterialMapArray::count(self : MaterialMapArray) -> Int

    Get the number of material maps in the array.

    MaterialMapArray::op_get

    fn MaterialMapArray::op_get(self : MaterialMapArray, index : Int) -> MaterialMap

    Get a material map by index.

    MaterialMapArray::op_set

    fn MaterialMapArray::op_set(self : MaterialMapArray, index : Int, value : MaterialMap) -> Unit

    Set a material map at the given index.

    MaterialsArray

    type MaterialsArray

    Array of materials loaded from a model file.

    MaterialsArray::count

    #as_free_fn(materials_array_count)
    fn MaterialsArray::count(self : MaterialsArray) -> Int

    Get the number of materials in the array.

    MaterialsArray::get

    #as_free_fn(materials_array_get)
    fn MaterialsArray::get(self : MaterialsArray, index : Int) -> Material

    Get a material from the array by index.

    MaterialsArray::load

    #as_free_fn(load_materials)
    fn MaterialsArray::load(file_name : String) -> MaterialsArray

    Load materials from model file.

    MaterialsArray::unload

    #as_free_fn(unload_materials_array)
    fn MaterialsArray::unload(self : MaterialsArray) -> Unit

    Unload materials array data.

    Matrix

    pub struct Matrix {
    m0 : Float
    m1 : Float
    m2 : Float
    m3 : Float
    m4 : Float
    m5 : Float
    m6 : Float
    m7 : Float
    m8 : Float
    m9 : Float
    m10 : Float
    m11 : Float
    m12 : Float
    m13 : Float
    m14 : Float
    m15 : Float
    } derive(Eq,
    Debug
    )

    4x4 matrix type in column-major order, as used by OpenGL.
    impl Show for Matrix

    Matrix::add

    fn Matrix::add(left : Matrix, right : Matrix) -> Matrix

    Add two matrices.

    Matrix::decompose

    fn Matrix::decompose(mat : Matrix) -> (Vector3, Vector4, Vector3)

    Decompose a transformation matrix into its translation, rotation, and scale components.

    Matrix::determinant

    fn Matrix::determinant(mat : Matrix) -> Float

    Compute matrix determinant.

    Matrix::from_bytes

    fn Matrix::from_bytes(b : Bytes) -> Matrix

    Deserialize Matrix from bytes.

    Matrix::frustum

    fn Matrix::frustum(left : Double, right : Double, bottom : Double, top : Double, near_plane : Double, far_plane : Double) -> Matrix

    Get perspective projection matrix for a given view frustum.

    Matrix::identity

    fn Matrix::identity() -> Matrix

    Get identity matrix.

    Matrix::invert

    fn Matrix::invert(mat : Matrix) -> Matrix

    Invert provided matrix.

    Matrix::look_at

    fn Matrix::look_at(eye : Vector3, target : Vector3, up : Vector3) -> Matrix

    Get camera look-at matrix (view matrix).

    Matrix::multiply

    fn Matrix::multiply(left : Matrix, right : Matrix) -> Matrix

    Get two matrix multiplication.

    Matrix::ortho

    fn Matrix::ortho(left : Double, right : Double, bottom : Double, top : Double, near_plane : Double, far_plane : Double) -> Matrix

    Get orthographic projection matrix.

    Matrix::perspective

    fn Matrix::perspective(fov_y : Double, aspect : Double, near_plane : Double, far_plane : Double) -> Matrix

    Get perspective projection matrix.

    Matrix::rotate

    fn Matrix::rotate(axis : Vector3, angle : Float) -> Matrix

    Create rotation matrix from axis and angle.

    Matrix::rotate_x

    fn Matrix::rotate_x(angle : Float) -> Matrix

    Get x-rotation matrix.

    Matrix::rotate_xyz

    fn Matrix::rotate_xyz(angle : Vector3) -> Matrix

    Get xyz-rotation matrix.

    Matrix::rotate_y

    fn Matrix::rotate_y(angle : Float) -> Matrix

    Get y-rotation matrix.

    Matrix::rotate_z

    fn Matrix::rotate_z(angle : Float) -> Matrix

    Get z-rotation matrix.

    Matrix::rotate_zyx

    fn Matrix::rotate_zyx(angle : Vector3) -> Matrix

    Get zyx-rotation matrix.

    Matrix::scale

    fn Matrix::scale(x : Float, y : Float, z : Float) -> Matrix

    Get scaling matrix.

    Matrix::subtract

    fn Matrix::subtract(left : Matrix, right : Matrix) -> Matrix

    Subtract two matrices (left - right).

    Matrix::to_bytes

    fn Matrix::to_bytes(m : Matrix) -> Bytes

    Serialize Matrix to bytes.

    Matrix::trace

    fn Matrix::trace(mat : Matrix) -> Float

    Get the trace of the matrix (sum of the values along the diagonal).

    Matrix::translate

    fn Matrix::translate(x : Float, y : Float, z : Float) -> Matrix

    Get translation matrix.

    Matrix::transpose

    fn Matrix::transpose(mat : Matrix) -> Matrix

    Transposes provided matrix.

    MatrixArray

    type MatrixArray

    MatrixArray::length

    fn MatrixArray::length(self : MatrixArray) -> Int

    Get the number of elements in this matrix array.

    MatrixArray::op_get

    fn MatrixArray::op_get(self : MatrixArray, index : Int) -> Matrix

    Get the Matrix value at the given index (bounds-checked).

    MatrixArray::op_set

    fn MatrixArray::op_set(self : MatrixArray, index : Int, value : Matrix) -> Unit

    Set the Matrix value at the given index (bounds-checked).

    Mesh

    type Mesh

    A mesh containing vertex data and GPU buffer IDs.

    Mesh::bounding_box

    #as_free_fn(get_mesh_bounding_box)
    fn Mesh::bounding_box(self : Mesh) -> BoundingBox

    Compute mesh bounding box limits.

    Mesh::colors

    #as_free_fn(get_mesh_colors)
    fn Mesh::colors(self : Mesh) -> UByteArray?

    Get vertex colors array (4 bytes per vertex as RGBA), or None if not available.

    Mesh::draw

    #as_free_fn(draw_mesh)
    fn Mesh::draw(self : Mesh, material : Material, transform : Matrix) -> Unit

    Draw a 3D mesh with material and transform.

    Mesh::draw_instanced

    #as_free_fn(draw_mesh_instanced)
    fn Mesh::draw_instanced(self : Mesh, material : Material, transforms : Array[Matrix], instances : Int) -> Unit

    Draw multiple mesh instances with material and different transforms.

    Mesh::export_

    #as_free_fn(export_mesh)
    fn Mesh::export_(self : Mesh, file_name : String) -> Bool

    Export mesh data to file, returns true on success.

    Mesh::export_as_code

    #as_free_fn(export_mesh_as_code)
    fn Mesh::export_as_code(self : Mesh, file_name : String) -> Bool

    Export mesh as code file (.h) defining multiple arrays of vertex attributes.

    Mesh::gen_cone

    #as_free_fn(gen_mesh_cone)
    fn Mesh::gen_cone(radius : Float, height : Float, slices : Int) -> Mesh

    Generate cone/pyramid mesh.

    Mesh::gen_cube

    #as_free_fn(gen_mesh_cube)
    fn Mesh::gen_cube(width : Float, height : Float, length : Float) -> Mesh

    Generate cuboid mesh.

    Mesh::gen_cubicmap

    #as_free_fn(gen_mesh_cubicmap)
    fn Mesh::gen_cubicmap(cubicmap : Image, cube_size : Vector3) -> Mesh

    Generate cubes-based map mesh from image data.

    Mesh::gen_cylinder

    #as_free_fn(gen_mesh_cylinder)
    fn Mesh::gen_cylinder(radius : Float, height : Float, slices : Int) -> Mesh

    Generate cylinder mesh.

    Mesh::gen_from_points

    #as_free_fn(gen_mesh_from_points)
    fn Mesh::gen_from_points(vertices : Bytes, colors : Bytes, num_points : Int) -> Mesh

    Generate a mesh from raw vertex positions and colors.

    Mesh::gen_heightmap

    #as_free_fn(gen_mesh_heightmap)
    fn Mesh::gen_heightmap(heightmap : Image, size : Vector3) -> Mesh

    Generate heightmap mesh from image data.

    Mesh::gen_hemisphere

    #as_free_fn(gen_mesh_hemisphere)
    fn Mesh::gen_hemisphere(radius : Float, rings : Int, slices : Int) -> Mesh

    Generate half-sphere mesh (no bottom cap).

    Mesh::gen_knot

    #as_free_fn(gen_mesh_knot)
    fn Mesh::gen_knot(radius : Float, size : Float, rad_seg : Int, sides : Int) -> Mesh

    Generate trefoil knot mesh.

    Mesh::gen_plane

    #as_free_fn(gen_mesh_plane)
    fn Mesh::gen_plane(width : Float, length : Float, res_x : Int, res_z : Int) -> Mesh

    Generate plane mesh (with subdivisions).

    Mesh::gen_poly

    #as_free_fn(gen_mesh_poly)
    fn Mesh::gen_poly(sides : Int, radius : Float) -> Mesh

    Generate polygonal mesh.

    Mesh::gen_sphere

    #as_free_fn(gen_mesh_sphere)
    fn Mesh::gen_sphere(radius : Float, rings : Int, slices : Int) -> Mesh

    Generate sphere mesh (standard sphere).

    Mesh::gen_tangents

    #as_free_fn(gen_mesh_tangents)
    fn Mesh::gen_tangents(self : Mesh) -> Unit

    Compute mesh tangents.

    Mesh::gen_torus

    #as_free_fn(gen_mesh_torus)
    fn Mesh::gen_torus(radius : Float, size : Float, rad_seg : Int, sides : Int) -> Mesh

    Generate torus mesh.

    Mesh::indices

    #as_free_fn(get_mesh_indices)
    fn Mesh::indices(self : Mesh) -> UShortArray?

    Get vertex indices array (3 per triangle), or None if not available.

    Mesh::new

    fn Mesh::new(vertices : FixedArray[Float], texcoords? : FixedArray[Float], texcoords2? : FixedArray[Float], normals? : FixedArray[Float], tangents? : FixedArray[Float], colors? : FixedArray[Byte], indices? : FixedArray[UInt16]) -> Mesh

    Create a new mesh from vertex data arrays.

    Mesh::normals

    #as_free_fn(get_mesh_normals)
    fn Mesh::normals(self : Mesh) -> FloatArray?

    Get vertex normals array (3 floats per vertex), or None if not available.

    Mesh::tangents

    #as_free_fn(get_mesh_tangents)
    fn Mesh::tangents(self : Mesh) -> FloatArray?

    Get vertex tangents array (4 floats per vertex), or None if not available.

    Mesh::texcoords

    #as_free_fn(get_mesh_texcoords)
    fn Mesh::texcoords(self : Mesh) -> FloatArray?

    Get texture coordinates array (2 floats per vertex), or None if not available.

    Mesh::texcoords2

    #as_free_fn(get_mesh_texcoords2)
    fn Mesh::texcoords2(self : Mesh) -> FloatArray?

    Get second texture coordinates array (2 floats per vertex), or None if not available.

    Mesh::triangle_count

    #as_free_fn(get_mesh_triangle_count)
    fn Mesh::triangle_count(self : Mesh) -> Int

    Get the number of triangles in the mesh.

    Mesh::unload

    #as_free_fn(unload_mesh)
    fn Mesh::unload(self : Mesh) -> Unit

    Unload mesh data from CPU and GPU.

    Mesh::update_buffer

    #as_free_fn(update_mesh_buffer)
    fn Mesh::update_buffer(self : Mesh, index : Int, data : Bytes, data_size : Int, offset : Int) -> Unit

    Update mesh vertex data in GPU for a specific buffer index.

    Mesh::upload

    fn Mesh::upload(self : Mesh, dynamic : Bool) -> Unit

    Upload mesh vertex data in GPU and provide VAO/VBO ids.

    Mesh::vertex_count

    #as_free_fn(get_mesh_vertex_count)
    fn Mesh::vertex_count(self : Mesh) -> Int

    Get the number of vertices in the mesh.

    Mesh::vertices

    #as_free_fn(get_mesh_vertices)
    fn Mesh::vertices(self : Mesh) -> FloatArray?

    Get vertex positions array (3 floats per vertex), or None if not available.

    Model

    type Model

    A 3D model containing meshes, materials, and bone data.

    Model::bind_pose_rotation

    #as_free_fn(get_model_bind_pose_rotation)
    fn Model::bind_pose_rotation(self : Model, bone_index : Int) -> Vector4

    Get the bind pose rotation (quaternion) for the given bone.

    Model::bind_pose_translation

    #as_free_fn(get_model_bind_pose_translation)
    fn Model::bind_pose_translation(self : Model, bone_index : Int) -> Vector3

    Get the bind pose translation for the given bone.

    Model::bone_count

    #as_free_fn(get_model_bone_count)
    fn Model::bone_count(self : Model) -> Int

    Get the number of bones in the model.

    Model::bone_matrices

    #as_free_fn(get_model_bone_matrices)
    fn Model::bone_matrices(self : Model) -> MatrixArray?

    Get the current model bone transformation matrices, if available.

    Model::bone_name

    #as_free_fn(get_model_bone_name)
    fn Model::bone_name(self : Model, bone_index : Int) -> String

    Get the name of the given bone.

    Model::bone_parent

    #as_free_fn(get_model_bone_parent)
    fn Model::bone_parent(self : Model, bone_index : Int) -> Int

    Get the parent bone index for the given bone.

    Model::bounding_box

    #as_free_fn(get_model_bounding_box)
    fn Model::bounding_box(self : Model) -> BoundingBox

    Compute model bounding box limits (considers all meshes).

    Model::draw

    #as_free_fn(draw_model)
    fn Model::draw(self : Model, position : Vector3, scale : Float, tint : Color) -> Unit

    Draw a model (with texture if set).

    Model::draw_ex

    #as_free_fn(draw_model_ex)
    fn Model::draw_ex(self : Model, position : Vector3, rotation_axis : Vector3, rotation_angle : Float, scale : Vector3, tint : Color) -> Unit

    Draw a model with extended parameters.

    Model::draw_wires

    #as_free_fn(draw_model_wires)
    fn Model::draw_wires(self : Model, position : Vector3, scale : Float, tint : Color) -> Unit

    Draw a model wires (with texture if set).

    Model::draw_wires_ex

    #as_free_fn(draw_model_wires_ex)
    fn Model::draw_wires_ex(self : Model, position : Vector3, rotation_axis : Vector3, rotation_angle : Float, scale : Vector3, tint : Color) -> Unit

    Draw a model wires (with texture if set) with extended parameters.

    Model::is_animation_valid

    #as_free_fn(is_model_animation_valid)
    fn Model::is_animation_valid(self : Model, anims : ModelAnimations, index : Int) -> Bool

    Check model animation skeleton match.

    Model::is_valid

    #as_free_fn(is_model_valid)
    fn Model::is_valid(self : Model) -> Bool

    Check if a model is valid (loaded in GPU, VAO/VBOs).

    Model::load

    #as_free_fn(load_model)
    fn Model::load(file_name : String) -> Model

    Load model from files (meshes and materials).

    Model::load_from_mesh

    #as_free_fn(load_model_from_mesh)
    fn Model::load_from_mesh(mesh : Mesh) -> Model

    Load model from generated mesh (default material).

    Model::material

    #as_free_fn(get_model_material)
    fn Model::material(self : Model, index : Int) -> Material

    Get a material from the model by index.

    Model::material_count

    #as_free_fn(get_model_material_count)
    fn Model::material_count(self : Model) -> Int

    Get the number of materials in the model.

    Model::mesh

    #as_free_fn(get_model_mesh)
    fn Model::mesh(self : Model, index : Int) -> Mesh

    Get a mesh from the model by index.

    Model::mesh_count

    #as_free_fn(get_model_mesh_count)
    fn Model::mesh_count(self : Model) -> Int

    Get the number of meshes in the model.

    Model::set_material_shader

    #as_free_fn(set_model_material_shader)
    fn Model::set_material_shader(self : Model, material_index : Int, shader : Shader) -> Unit

    Set shader for a material in the model at the given index.

    Model::set_material_texture

    #as_free_fn(set_model_material_texture)
    fn Model::set_material_texture(self : Model, material_index : Int, map_type : Int, texture : Texture) -> Unit

    Set texture for a material map type in the model.

    Model::set_mesh_material

    #as_free_fn(set_model_mesh_material)
    fn Model::set_mesh_material(self : Model, mesh_id : Int, material_id : Int) -> Unit

    Set material for a mesh.

    Model::set_transform

    #as_free_fn(set_model_transform)
    fn Model::set_transform(self : Model, transform : Matrix) -> Unit

    Set the transform matrix for the model.

    Model::transform

    #as_free_fn(get_model_transform)
    fn Model::transform(self : Model) -> Matrix

    Get the transform matrix of the model.

    Model::unload

    #as_free_fn(unload_model)
    fn Model::unload(self : Model) -> Unit

    Unload model (including meshes) from memory (RAM and/or VRAM).

    Model::update_animation

    #as_free_fn(update_model_animation)
    fn Model::update_animation(self : Model, anims : ModelAnimations, index : Int, frame : Float) -> Unit

    Update model animation pose (CPU).

    Model::update_animation_ex

    #as_free_fn(update_model_animation_ex)
    fn Model::update_animation_ex(self : Model, anims_a : ModelAnimations, index_a : Int, frame_a : Float, anims_b : ModelAnimations, index_b : Int, frame_b : Float, blend : Float) -> Unit

    Update model animation pose by blending two animations.

    ModelAnimations

    type ModelAnimations

    Model animations array, loaded from file.

    ModelAnimations::bone_count

    #as_free_fn(get_model_animation_bone_count)
    fn ModelAnimations::bone_count(self : ModelAnimations, anim_index : Int) -> Int

    Get the bone count for a specific animation.

    ModelAnimations::count

    #as_free_fn(model_animations_count)
    fn ModelAnimations::count(self : ModelAnimations) -> Int

    Get the number of animations in the array.

    ModelAnimations::frame_count

    #deprecated("Use ModelAnimations::keyframe_count instead")
    #as_free_fn(get_model_animation_frame_count, deprecated="Use ModelAnimations::keyframe_count instead")
    fn ModelAnimations::frame_count(self : ModelAnimations, anim_index : Int) -> Int

    Get the frame count for a specific animation.

    Deprecated: raylib 6.0 renamed model animation frames to keyframes.

    ModelAnimations::frame_pose_rotation

    #deprecated("Use ModelAnimations::keyframe_pose_rotation instead")
    #as_free_fn(get_model_animation_frame_pose_rotation, deprecated="Use ModelAnimations::keyframe_pose_rotation instead")
    fn ModelAnimations::frame_pose_rotation(self : ModelAnimations, anim_index : Int, frame : Int, bone_index : Int) -> Vector4

    Get the rotation quaternion of a bone pose at a specific animation frame.

    Deprecated: raylib 6.0 renamed model animation frames to keyframes.

    ModelAnimations::frame_pose_translation

    #deprecated("Use ModelAnimations::keyframe_pose_translation instead")
    #as_free_fn(get_model_animation_frame_pose_translation, deprecated="Use ModelAnimations::keyframe_pose_translation instead")
    fn ModelAnimations::frame_pose_translation(self : ModelAnimations, anim_index : Int, frame : Int, bone_index : Int) -> Vector3

    Get the translation of a bone pose at a specific animation frame.

    Deprecated: raylib 6.0 renamed model animation frames to keyframes.

    ModelAnimations::keyframe_count

    #as_free_fn(get_model_animation_keyframe_count)
    fn ModelAnimations::keyframe_count(self : ModelAnimations, anim_index : Int) -> Int

    Get the keyframe count for a specific animation.

    ModelAnimations::keyframe_pose_rotation

    #as_free_fn(get_model_animation_keyframe_pose_rotation)
    fn ModelAnimations::keyframe_pose_rotation(self : ModelAnimations, anim_index : Int, keyframe : Int, bone_index : Int) -> Vector4

    Get the rotation quaternion of a bone pose at a specific animation keyframe.

    ModelAnimations::keyframe_pose_translation

    #as_free_fn(get_model_animation_keyframe_pose_translation)
    fn ModelAnimations::keyframe_pose_translation(self : ModelAnimations, anim_index : Int, keyframe : Int, bone_index : Int) -> Vector3

    Get the translation of a bone pose at a specific animation keyframe.

    ModelAnimations::load

    #as_free_fn(load_model_animations)
    fn ModelAnimations::load(file_name : String) -> ModelAnimations

    Load model animations from file.

    ModelAnimations::unload

    #as_free_fn(unload_model_animations)
    fn ModelAnimations::unload(self : ModelAnimations) -> Unit

    Unload animation array data.

    Music

    type Music

    Music stream type, wrapping the internal FFI music resource.

    Music::is_playing

    #as_free_fn(is_music_stream_playing)
    fn Music::is_playing(self : Music) -> Bool

    Check if music is playing.

    Music::is_valid

    #as_free_fn(is_music_valid)
    fn Music::is_valid(self : Music) -> Bool

    Check if a music stream is valid (context and buffers initialized).

    Music::load

    #as_free_fn(load_music_stream)
    fn Music::load(file_name : String) -> Music

    Load music stream from file.

    Music::load_from_memory

    #as_free_fn(load_music_stream_from_memory)
    fn Music::load_from_memory(file_type : String, data : Bytes, data_size : Int) -> Music

    Load music stream from memory buffer, file_type refers to extension (e.g. ".ogg").

    Music::pause

    #as_free_fn(pause_music_stream)
    fn Music::pause(self : Music) -> Unit

    Pause music playing.

    Music::play

    #as_free_fn(play_music_stream)
    fn Music::play(self : Music) -> Unit

    Start music playing.

    Music::resume_

    #as_free_fn(resume_music_stream)
    fn Music::resume_(self : Music) -> Unit

    Resume playing paused music.

    Music::seek

    #as_free_fn(seek_music_stream)
    fn Music::seek(self : Music, position : Float) -> Unit

    Seek music to a position (in seconds).

    Music::set_pan

    #as_free_fn(set_music_pan)
    fn Music::set_pan(self : Music, pan : Float) -> Unit

    Set pan for a music (0.5 is center).

    Music::set_pitch

    #as_free_fn(set_music_pitch)
    fn Music::set_pitch(self : Music, pitch : Float) -> Unit

    Set pitch for a music (1.0 is base level).

    Music::set_volume

    #as_free_fn(set_music_volume)
    fn Music::set_volume(self : Music, volume : Float) -> Unit

    Set volume for music (1.0 is max level).

    Music::stop

    #as_free_fn(stop_music_stream)
    fn Music::stop(self : Music) -> Unit

    Stop music playing.

    Music::time_length

    #as_free_fn(get_music_time_length)
    fn Music::time_length(self : Music) -> Float

    Get music time length (in seconds).

    Music::time_played

    #as_free_fn(get_music_time_played)
    fn Music::time_played(self : Music) -> Float

    Get current music time played (in seconds).

    Music::unload

    #as_free_fn(unload_music_stream)
    fn Music::unload(self : Music) -> Unit

    Unload music stream.

    Music::update

    #as_free_fn(update_music_stream)
    fn Music::update(self : Music) -> Unit

    Updates buffers for music streaming.

    NPatchInfo

    pub struct NPatchInfo {
    source : Rectangle
    left : Int
    top : Int
    right : Int
    bottom : Int
    layout : Int
    } derive(Eq,
    Debug
    )

    NPatchInfo, n-patch layout info.
    impl Show for NPatchInfo

    NPatchInfo::from_bytes

    fn NPatchInfo::from_bytes(b : Bytes) -> NPatchInfo

    Deserialize NPatchInfo from bytes.

    NPatchInfo::new

    fn NPatchInfo::new(source : Rectangle, left : Int, top : Int, right : Int, bottom : Int, layout : Int) -> NPatchInfo

    Create a new NPatchInfo.

    NPatchInfo::to_bytes

    fn NPatchInfo::to_bytes(n : NPatchInfo) -> Bytes

    Serialize NPatchInfo to bytes.

    Ray

    pub struct Ray {
    position : Vector3
    direction : Vector3
    } derive(Eq,
    Debug
    )

    Ray, ray for raycasting.
    impl Show for Ray

    Ray::from_bytes

    fn Ray::from_bytes(b : Bytes) -> Ray

    Deserialize Ray from bytes.

    Ray::new

    fn Ray::new(position : Vector3, direction : Vector3) -> Ray

    Create a new Ray.

    Ray::to_bytes

    fn Ray::to_bytes(r : Ray) -> Bytes

    Serialize Ray to bytes.

    RayCollision

    pub struct RayCollision {
    hit : Bool
    distance : Float
    point : Vector3
    normal : Vector3
    } derive(Eq,
    Debug
    )

    RayCollision, ray hit information.

    RayCollision::from_bytes

    fn RayCollision::from_bytes(b : Bytes) -> RayCollision

    Deserialize RayCollision from bytes.

    RayCollision::new

    fn RayCollision::new(hit : Bool, distance : Float, point : Vector3, normal : Vector3) -> RayCollision

    Create a new RayCollision.

    Rectangle

    pub struct Rectangle {
    x : Float
    y : Float
    width : Float
    height : Float
    } derive(Eq,
    Debug
    )

    Rectangle, 4 components.
    impl Show for Rectangle

    Rectangle::from_bytes

    fn Rectangle::from_bytes(b : Bytes) -> Rectangle

    Deserialize Rectangle from bytes.

    Rectangle::new

    fn Rectangle::new(x : Float, y : Float, width : Float, height : Float) -> Rectangle

    Create a new Rectangle.

    Rectangle::to_bytes

    fn Rectangle::to_bytes(r : Rectangle) -> Bytes

    Serialize Rectangle to bytes.

    RenderTexture

    type RenderTexture

    Render texture for offscreen rendering (framebuffer), wrapping the internal FFI type.

    RenderTexture::begin_mode

    #as_free_fn(begin_texture_mode)
    fn RenderTexture::begin_mode(self : RenderTexture) -> Unit

    Begin drawing to render texture.

    RenderTexture::depth

    #as_free_fn(get_render_texture_depth)
    fn RenderTexture::depth(self : RenderTexture) -> Texture

    Get the depth buffer attachment texture.

    RenderTexture::depth_id

    #as_free_fn(get_render_texture_depth_id)
    fn RenderTexture::depth_id(self : RenderTexture) -> UInt

    Get the depth texture OpenGL id.

    RenderTexture::draw_ex

    #as_free_fn(draw_render_texture_ex)
    fn RenderTexture::draw_ex(self : RenderTexture, position : Vector2, rotation : Float, scale : Float, tint : Color) -> Unit

    Draw a render texture with extended parameters.

    RenderTexture::draw_pro

    #as_free_fn(draw_render_texture_pro)
    fn RenderTexture::draw_pro(self : RenderTexture, source : Rectangle, dest : Rectangle, origin : Vector2, rotation : Float, tint : Color) -> Unit

    Draw a part of a render texture defined by a rectangle with 'pro' parameters.

    RenderTexture::draw_rec

    #as_free_fn(draw_render_texture_rec)
    fn RenderTexture::draw_rec(self : RenderTexture, source : Rectangle, position : Vector2, tint : Color) -> Unit

    Draw a part of a render texture defined by a rectangle.

    RenderTexture::fbo_id

    #deprecated("Use RenderTexture::id instead")
    #as_free_fn(get_render_texture_fbo_id, deprecated="Use RenderTexture::id instead")
    fn RenderTexture::fbo_id(self : RenderTexture) -> UInt

    Get the OpenGL framebuffer object id (deprecated: use RenderTexture::id instead).

    RenderTexture::height

    #as_free_fn(get_render_texture_height)
    fn RenderTexture::height(self : RenderTexture) -> Int

    Get render texture height.

    RenderTexture::id

    #as_free_fn(get_render_texture_id)
    fn RenderTexture::id(self : RenderTexture) -> UInt

    Get the OpenGL framebuffer object id.

    RenderTexture::is_valid

    #as_free_fn(is_render_texture_valid)
    fn RenderTexture::is_valid(self : RenderTexture) -> Bool

    Check if a render texture is valid (loaded in GPU).

    RenderTexture::load

    #as_free_fn(load_render_texture)
    fn RenderTexture::load(width : Int, height : Int) -> RenderTexture

    Load texture for rendering (framebuffer).

    RenderTexture::load_depth_tex

    #deprecated("Use RenderTexture::new with @rl helpers instead")
    #as_free_fn(load_render_texture_depth_tex, deprecated="Use RenderTexture::new with @rl helpers instead")
    fn RenderTexture::load_depth_tex(width : Int, height : Int) -> RenderTexture

    Load a render texture with a depth texture attachment. @deprecated Use RenderTexture::new with @rl.load_framebuffer, @rl.load_texture, @rl.load_texture_depth, and @rl.framebuffer_attach instead.

    RenderTexture::load_shadowmap

    #deprecated("Use RenderTexture::new with @rl helpers instead")
    #as_free_fn(load_shadowmap_render_texture, deprecated="Use RenderTexture::new with @rl helpers instead")
    fn RenderTexture::load_shadowmap(width : Int, height : Int) -> RenderTexture

    Load a depth-only shadowmap render texture. @deprecated Use RenderTexture::new with @rl.load_framebuffer, @rl.load_texture_depth, and @rl.framebuffer_attach instead.

    RenderTexture::new

    #as_free_fn(new_render_texture)
    fn RenderTexture::new(id : UInt, texture : Texture, depth : Texture) -> RenderTexture

    Create a new RenderTexture from raw OpenGL parameters.

    RenderTexture::set_filter

    #as_free_fn(set_render_texture_filter)
    fn RenderTexture::set_filter(self : RenderTexture, filter : Int) -> Unit

    Set render texture scaling filter mode.

    RenderTexture::texture

    #as_free_fn(get_render_texture_texture)
    fn RenderTexture::texture(self : RenderTexture) -> Texture

    Get the color buffer attachment texture.

    RenderTexture::unload

    #as_free_fn(unload_render_texture)
    fn RenderTexture::unload(self : RenderTexture) -> Unit

    Unload render texture from GPU memory (VRAM).

    RenderTexture::unload_depth_tex

    #deprecated("Use RenderTexture::unload instead")
    #as_free_fn(unload_render_texture_depth_tex, deprecated="Use RenderTexture::unload instead")
    fn RenderTexture::unload_depth_tex(self : RenderTexture) -> Unit

    Unload a depth-texture render texture. @deprecated Use RenderTexture::unload instead.

    RenderTexture::unload_shadowmap

    #deprecated("Use RenderTexture::unload instead")
    #as_free_fn(unload_shadowmap_render_texture, deprecated="Use RenderTexture::unload instead")
    fn RenderTexture::unload_shadowmap(self : RenderTexture) -> Unit

    Unload a shadowmap render texture. @deprecated Use RenderTexture::unload instead.

    RenderTexture::width

    #as_free_fn(get_render_texture_width)
    fn RenderTexture::width(self : RenderTexture) -> Int

    Get render texture width.

    Shader

    type Shader

    Shader program, includes vertex and fragment shaders.

    Shader::begin_mode

    #as_free_fn(begin_shader_mode)
    fn Shader::begin_mode(self : Shader) -> Unit

    Begin custom shader drawing.

    Shader::get_location

    #as_free_fn(get_shader_location)
    fn Shader::get_location(self : Shader, uniform_name : String) -> Int

    Get shader uniform location.

    Shader::get_location_attrib

    #as_free_fn(get_shader_location_attrib)
    fn Shader::get_location_attrib(self : Shader, attrib_name : String) -> Int

    Get shader attribute location.

    Shader::id

    #as_free_fn(get_shader_id)
    fn Shader::id(self : Shader) -> UInt

    Get shader program id (OpenGL handle).

    Shader::is_valid

    #as_free_fn(is_shader_valid)
    fn Shader::is_valid(self : Shader) -> Bool

    Check if a shader is valid (loaded on GPU).

    Shader::load

    #as_free_fn(load_shader)
    fn Shader::load(vs_file_name : String, fs_file_name : String) -> Shader

    Load shader from files and bind default locations.

    Shader::load_from_memory

    #as_free_fn(load_shader_from_memory)
    fn Shader::load_from_memory(vs_code : String, fs_code : String) -> Shader

    Load shader from code strings and bind default locations.

    Shader::set_locs

    #as_free_fn(set_shader_locs)
    #as_free_fn(set_shader_location, deprecated="Use Shader::set_locs or set_shader_locs instead")
    fn Shader::set_locs(self : Shader, loc_index : Int, loc_value : Int) -> Unit

    Set shader location index for a uniform.

    Shader::set_value

    fn Shader::set_value(self : Shader, loc_index : Int, value : ShaderUniformData) -> Unit

    Set shader uniform value.

    Shader::set_value_matrix

    #as_free_fn(set_shader_value_matrix)
    fn Shader::set_value_matrix(self : Shader, loc_index : Int, mat : Matrix) -> Unit

    Set shader uniform value (matrix 4x4).

    Shader::set_value_texture

    #as_free_fn(set_shader_value_texture)
    fn Shader::set_value_texture(self : Shader, loc_index : Int, texture : Texture) -> Unit

    Set shader uniform value for texture (sampler2d).

    Shader::set_value_v

    fn Shader::set_value_v(self : Shader, loc_index : Int, values : ShaderUniformDataV) -> Unit

    Set shader uniform value vector.

    Shader::unload

    #as_free_fn(unload_shader)
    fn Shader::unload(self : Shader) -> Unit

    Unload shader from GPU memory (VRAM).

    ShaderUniformData

    pub(all) enum ShaderUniformData {
    Float(Float)
    Vec2(Vector2)
    Vec3(Vector3)
    Vec4(Vector4)
    Int(Int)
    IVec2((Int, Int))
    IVec3((Int, Int, Int))
    IVec4((Int, Int, Int, Int))
    Sampler2D(Int)
    }

    Shader uniform data for a single value, tagged by type.

    ShaderUniformDataV

    pub(all) enum ShaderUniformDataV {
    Float(Array[Float])
    Vec2(Array[Vector2])
    Vec3(Array[Vector3])
    Vec4(Array[Vector4])
    Int(Array[Int])
    IVec2(Array[(Int, Int)])
    IVec3(Array[(Int, Int, Int)])
    IVec4(Array[(Int, Int, Int, Int)])
    Sampler2D(Array[Int])
    }

    Shader uniform data for an array of values (vector variant), tagged by type.

    ShortArray

    type ShortArray

    ShortArray::free

    fn ShortArray::free(self : ShortArray) -> Unit

    Free the underlying C memory. Only call on arrays created with new(), not on views into raylib-managed memory.

    ShortArray::length

    fn ShortArray::length(self : ShortArray) -> Int

    Get the number of elements in this short array.

    ShortArray::new

    fn ShortArray::new(count : Int) -> ShortArray

    Allocate a zero-initialized short array with count elements. Must be freed with free() when no longer needed.

    ShortArray::op_get

    fn ShortArray::op_get(self : ShortArray, index : Int) -> Int

    Get the signed short value at the given index (bounds-checked).

    ShortArray::op_set

    fn ShortArray::op_set(self : ShortArray, index : Int, value : Int) -> Unit

    Set the signed short value at the given index (bounds-checked, truncated to 16-bit).

    ShortArray::pointer

    Get the raw FFI pointer for passing to low-level rlgl functions.

    Sound

    type Sound

    Sound type, wrapping the internal FFI sound resource.

    Sound::is_playing

    #as_free_fn(is_sound_playing)
    fn Sound::is_playing(self : Sound) -> Bool

    Check if a sound is currently playing.

    Sound::is_valid

    #as_free_fn(is_sound_valid)
    fn Sound::is_valid(self : Sound) -> Bool

    Check if a sound is valid (data loaded and buffers initialized).

    Sound::load

    #as_free_fn(load_sound)
    fn Sound::load(file_name : String) -> Sound

    Load sound from file.

    Sound::load_alias

    #as_free_fn(load_sound_alias)
    fn Sound::load_alias(self : Sound) -> Sound

    Create a new sound that shares the same sample data as the source sound, does not own the sound data.

    Sound::pause

    #as_free_fn(pause_sound)
    fn Sound::pause(self : Sound) -> Unit

    Pause a sound.

    Sound::play

    #as_free_fn(play_sound)
    fn Sound::play(self : Sound) -> Unit

    Play a sound.

    Sound::resume_

    #as_free_fn(resume_sound)
    fn Sound::resume_(self : Sound) -> Unit

    Resume a paused sound.

    Sound::set_pan

    #as_free_fn(set_sound_pan)
    fn Sound::set_pan(self : Sound, pan : Float) -> Unit

    Set pan for a sound (0.5 is center).

    Sound::set_pitch

    #as_free_fn(set_sound_pitch)
    fn Sound::set_pitch(self : Sound, pitch : Float) -> Unit

    Set pitch for a sound (1.0 is base level).

    Sound::set_volume

    #as_free_fn(set_sound_volume)
    fn Sound::set_volume(self : Sound, volume : Float) -> Unit

    Set volume for a sound (1.0 is max level).

    Sound::stop

    #as_free_fn(stop_sound)
    fn Sound::stop(self : Sound) -> Unit

    Stop playing a sound.

    Sound::unload

    #as_free_fn(unload_sound)
    fn Sound::unload(self : Sound) -> Unit

    Unload sound.

    Sound::unload_alias

    #as_free_fn(unload_sound_alias)
    fn Sound::unload_alias(self : Sound) -> Unit

    Unload a sound alias (does not deallocate sample data).

    Sound::update

    #as_free_fn(update_sound)
    fn Sound::update(self : Sound, data : Bytes, sample_count : Int) -> Unit

    Update sound buffer with new data.

    Texture

    type Texture

    GPU-based texture, represented as an opaque wrapper around the internal FFI texture type.

    Texture::draw

    #as_free_fn(draw_texture)
    fn Texture::draw(self : Texture, pos_x : Int, pos_y : Int, tint : Color) -> Unit

    Draw a Texture2D.

    Texture::draw_ex

    #as_free_fn(draw_texture_ex)
    fn Texture::draw_ex(self : Texture, position : Vector2, rotation : Float, scale : Float, tint : Color) -> Unit

    Draw a Texture2D with extended parameters.

    Texture::draw_npatch

    #as_free_fn(draw_texture_npatch)
    fn Texture::draw_npatch(self : Texture, npatch_info : NPatchInfo, dest : Rectangle, origin : Vector2, rotation : Float, tint : Color) -> Unit

    Draw a texture (or part of it) that stretches or shrinks nicely.

    Texture::draw_pro

    #as_free_fn(draw_texture_pro)
    fn Texture::draw_pro(self : Texture, source : Rectangle, dest : Rectangle, origin : Vector2, rotation : Float, tint : Color) -> Unit

    Draw a part of a texture defined by a rectangle with 'pro' parameters.

    Texture::draw_rec

    #as_free_fn(draw_texture_rec)
    fn Texture::draw_rec(self : Texture, source : Rectangle, position : Vector2, tint : Color) -> Unit

    Draw a part of a texture defined by a rectangle.

    Texture::draw_v

    #as_free_fn(draw_texture_v)
    fn Texture::draw_v(self : Texture, position : Vector2, tint : Color) -> Unit

    Draw a Texture2D with position defined as Vector2.

    Texture::format

    #as_free_fn(get_texture_format)
    fn Texture::format(self : Texture) -> Int

    Get texture data format (PixelFormat type).

    Texture::from_id

    #deprecated("Use Texture::new instead")
    #as_free_fn(texture_from_id, deprecated="Use Texture::new instead")
    fn Texture::from_id(id : UInt, width : Int, height : Int) -> Texture

    Create a texture from an OpenGL texture id (deprecated: use Texture::new instead).

    Texture::gen_mipmaps

    #as_free_fn(gen_texture_mipmaps)
    fn Texture::gen_mipmaps(self : Texture) -> Unit

    Generate GPU mipmaps for a texture.

    Texture::get_shapes

    #as_free_fn(get_shapes_texture)
    fn Texture::get_shapes() -> Texture

    Get texture that is used for shapes drawing.

    Texture::height

    #as_free_fn(get_texture_height)
    fn Texture::height(self : Texture) -> Int

    Get texture base height.

    Texture::id

    #as_free_fn(get_texture_id)
    fn Texture::id(self : Texture) -> UInt

    Get the OpenGL texture id.

    Texture::is_valid

    #as_free_fn(is_texture_valid)
    fn Texture::is_valid(self : Texture) -> Bool

    Check if a texture is valid (loaded in GPU).

    Texture::load

    #as_free_fn(load_texture)
    fn Texture::load(file_name : String) -> Texture

    Load texture from file into GPU memory (VRAM).

    Texture::mipmaps

    #as_free_fn(get_texture_mipmaps)
    fn Texture::mipmaps(self : Texture) -> Int

    Get texture mipmap levels, 1 by default.

    Texture::new

    #as_free_fn(new_texture)
    fn Texture::new(id : UInt, width : Int, height : Int, mipmaps : Int, format : Int) -> Texture

    Create a new Texture from raw OpenGL parameters.

    Texture::set_filter

    #as_free_fn(set_texture_filter)
    fn Texture::set_filter(self : Texture, filter : Int) -> Unit

    Set texture scaling filter mode.

    Texture::set_shapes

    #as_free_fn(set_shapes_texture)
    fn Texture::set_shapes(self : Texture, source : Rectangle) -> Unit

    Set texture and rectangle to be used on shapes drawing.

    Texture::set_wrap

    #as_free_fn(set_texture_wrap)
    fn Texture::set_wrap(self : Texture, wrap : Int) -> Unit

    Set texture wrapping mode.

    Texture::unload

    #as_free_fn(unload_texture)
    fn Texture::unload(self : Texture) -> Unit

    Unload texture from GPU memory (VRAM).

    Texture::update

    #as_free_fn(update_texture)
    fn Texture::update(self : Texture, pixels : Bytes) -> Unit

    Update GPU texture with new data.

    Texture::update_from_image_frame

    #as_free_fn(update_texture_from_image_frame)
    fn Texture::update_from_image_frame(self : Texture, image : Image, frame : Int) -> Unit

    Update GPU texture with image data for a specific animation frame.

    Texture::update_rec

    #as_free_fn(update_texture_rec)
    fn Texture::update_rec(self : Texture, rec : Rectangle, pixels : Bytes) -> Unit

    Update GPU texture rectangle with new data.

    Texture::width

    #as_free_fn(get_texture_width)
    fn Texture::width(self : Texture) -> Int

    Get texture base width.

    UByteArray

    type UByteArray

    UByteArray::free

    fn UByteArray::free(self : UByteArray) -> Unit

    Free the underlying C memory. Only call on arrays created with new(), not on views into raylib-managed memory.

    UByteArray::length

    fn UByteArray::length(self : UByteArray) -> Int

    Get the number of elements in this unsigned byte array.

    UByteArray::new

    fn UByteArray::new(count : Int) -> UByteArray

    Allocate a zero-initialized unsigned byte array with count elements. Must be freed with free() when no longer needed.

    UByteArray::op_get

    fn UByteArray::op_get(self : UByteArray, index : Int) -> Int

    Get the unsigned byte value at the given index (bounds-checked).

    UByteArray::op_set

    fn UByteArray::op_set(self : UByteArray, index : Int, value : Byte) -> Unit

    Set the unsigned byte value at the given index (bounds-checked).

    UByteArray::pointer

    Get the raw FFI pointer for passing to low-level rlgl functions.

    UShortArray

    type UShortArray

    UShortArray::free

    fn UShortArray::free(self : UShortArray) -> Unit

    Free the underlying C memory. Only call on arrays created with new(), not on views into raylib-managed memory (e.g., from Mesh::indices()).

    UShortArray::length

    fn UShortArray::length(self : UShortArray) -> Int

    Get the number of elements in this unsigned short array.

    UShortArray::new

    fn UShortArray::new(count : Int) -> UShortArray

    Allocate a zero-initialized unsigned short array with count elements. Must be freed with free() when no longer needed.

    UShortArray::op_get

    fn UShortArray::op_get(self : UShortArray, index : Int) -> Int

    Get the unsigned short value at the given index (bounds-checked).

    UShortArray::op_set

    fn UShortArray::op_set(self : UShortArray, index : Int, value : UInt16) -> Unit

    Set the unsigned short value at the given index (bounds-checked).

    UShortArray::pointer

    Get the raw FFI pointer for passing to low-level rlgl functions.

    Vector2

    pub struct Vector2 {
    x : Float
    y : Float
    } derive(Eq,
    Debug
    )

    2D vector type.
    impl Show for Vector2

    Vector2::add

    fn Vector2::add(v1 : Vector2, v2 : Vector2) -> Vector2

    Add two vectors (v1 + v2).

    Vector2::add_value

    fn Vector2::add_value(v : Vector2, add : Float) -> Vector2

    Add vector and float value.

    Vector2::angle

    fn Vector2::angle(v1 : Vector2, v2 : Vector2) -> Float

    Calculate angle between two vectors.

    Vector2::clamp

    fn Vector2::clamp(v : Vector2, min : Vector2, max : Vector2) -> Vector2

    Clamp vector between min and max vectors.

    Vector2::clamp_value

    fn Vector2::clamp_value(v : Vector2, min : Float, max : Float) -> Vector2

    Clamp the magnitude of the vector between two min and max values.

    Vector2::distance

    fn Vector2::distance(v1 : Vector2, v2 : Vector2) -> Float

    Calculate distance between two vectors.

    Vector2::distance_sqr

    fn Vector2::distance_sqr(v1 : Vector2, v2 : Vector2) -> Float

    Calculate square distance between two vectors.

    Vector2::divide

    fn Vector2::divide(v1 : Vector2, v2 : Vector2) -> Vector2

    Divide vector by vector.

    Vector2::dot_product

    fn Vector2::dot_product(v1 : Vector2, v2 : Vector2) -> Float

    Calculate two vectors dot product.

    Vector2::equals

    fn Vector2::equals(p : Vector2, q : Vector2) -> Bool

    Check whether two given vectors are almost equal.

    Vector2::from_bytes

    fn Vector2::from_bytes(b : Bytes) -> Vector2

    Deserialize Vector2 from bytes.

    Vector2::invert

    fn Vector2::invert(v : Vector2) -> Vector2

    Invert the given vector.

    Vector2::length

    fn Vector2::length(v : Vector2) -> Float

    Calculate vector length.

    Vector2::length_sqr

    fn Vector2::length_sqr(v : Vector2) -> Float

    Calculate vector square length.

    Vector2::lerp

    fn Vector2::lerp(v1 : Vector2, v2 : Vector2, amount : Float) -> Vector2

    Calculate linear interpolation between two vectors.

    Vector2::line_angle

    fn Vector2::line_angle(start : Vector2, end_ : Vector2) -> Float

    Calculate angle defined by a line (from start to end).

    Vector2::max

    fn Vector2::max(v1 : Vector2, v2 : Vector2) -> Vector2

    Get max value for each pair of components.

    Vector2::min

    fn Vector2::min(v1 : Vector2, v2 : Vector2) -> Vector2

    Get min value for each pair of components.

    Vector2::move_towards

    fn Vector2::move_towards(v : Vector2, target : Vector2, max_distance : Float) -> Vector2

    Move vector towards target.

    Vector2::multiply

    fn Vector2::multiply(v1 : Vector2, v2 : Vector2) -> Vector2

    Multiply vector by vector.

    Vector2::negate

    fn Vector2::negate(v : Vector2) -> Vector2

    Negate vector.

    Vector2::new

    fn Vector2::new(x : Float, y : Float) -> Vector2

    Create a new Vector2.

    Vector2::normalize

    fn Vector2::normalize(v : Vector2) -> Vector2

    Normalize provided vector.

    Vector2::one

    fn Vector2::one() -> Vector2

    Get Vector2 with components equal to one.

    Vector2::reflect

    fn Vector2::reflect(v : Vector2, normal : Vector2) -> Vector2

    Calculate reflected vector to normal.

    Vector2::refract

    fn Vector2::refract(v : Vector2, n : Vector2, r : Float) -> Vector2

    Compute the direction of a refracted ray.

    Vector2::rotate

    fn Vector2::rotate(v : Vector2, angle : Float) -> Vector2

    Rotate vector by angle.

    Vector2::scale

    fn Vector2::scale(v : Vector2, scale : Float) -> Vector2

    Scale vector (multiply by value).

    Vector2::subtract

    fn Vector2::subtract(v1 : Vector2, v2 : Vector2) -> Vector2

    Subtract two vectors (v1 - v2).

    Vector2::subtract_value

    fn Vector2::subtract_value(v : Vector2, sub : Float) -> Vector2

    Subtract vector by float value.

    Vector2::to_bytes

    fn Vector2::to_bytes(v : Vector2) -> Bytes

    Serialize Vector2 to bytes.

    Vector2::transform

    fn Vector2::transform(v : Vector2, mat : Matrix) -> Vector2

    Transforms a Vector2 by a given Matrix.

    Vector2::zero

    fn Vector2::zero() -> Vector2

    Get Vector2 with components equal to zero.

    Vector3

    pub struct Vector3 {
    x : Float
    y : Float
    z : Float
    } derive(Eq,
    Debug
    )

    3D vector type.
    impl Show for Vector3

    Vector3::add

    fn Vector3::add(v1 : Vector3, v2 : Vector3) -> Vector3

    Add two vectors (v1 + v2).

    Vector3::add_value

    fn Vector3::add_value(v : Vector3, add : Float) -> Vector3

    Add vector and float value.

    Vector3::angle

    fn Vector3::angle(v1 : Vector3, v2 : Vector3) -> Float

    Calculate angle between two vectors.

    Vector3::barycenter

    fn Vector3::barycenter(p : Vector3, a : Vector3, b : Vector3, c : Vector3) -> Vector3

    Compute barycenter coordinates (u, v, w) for point p with respect to triangle (a, b, c).

    Vector3::clamp

    fn Vector3::clamp(v : Vector3, min : Vector3, max : Vector3) -> Vector3

    Clamp vector between min and max vectors.

    Vector3::cross_product

    fn Vector3::cross_product(v1 : Vector3, v2 : Vector3) -> Vector3

    Calculate two vectors cross product.

    Vector3::distance

    fn Vector3::distance(v1 : Vector3, v2 : Vector3) -> Float

    Calculate distance between two vectors.

    Vector3::distance_sqr

    fn Vector3::distance_sqr(v1 : Vector3, v2 : Vector3) -> Float

    Calculate square distance between two vectors.

    Vector3::dot_product

    fn Vector3::dot_product(v1 : Vector3, v2 : Vector3) -> Float

    Calculate two vectors dot product.

    Vector3::equals

    fn Vector3::equals(p : Vector3, q : Vector3) -> Bool

    Check whether two given vectors are almost equal.

    Vector3::from_bytes

    fn Vector3::from_bytes(b : Bytes) -> Vector3

    Deserialize Vector3 from bytes.

    Vector3::invert

    fn Vector3::invert(v : Vector3) -> Vector3

    Invert the given vector.

    Vector3::length

    fn Vector3::length(v : Vector3) -> Float

    Calculate vector length.

    Vector3::length_sqr

    fn Vector3::length_sqr(v : Vector3) -> Float

    Calculate vector square length.

    Vector3::lerp

    fn Vector3::lerp(v1 : Vector3, v2 : Vector3, amount : Float) -> Vector3

    Calculate linear interpolation between two vectors.

    Vector3::max

    fn Vector3::max(v1 : Vector3, v2 : Vector3) -> Vector3

    Get max value for each pair of components.

    Vector3::min

    fn Vector3::min(v1 : Vector3, v2 : Vector3) -> Vector3

    Get min value for each pair of components.

    Vector3::move_towards

    fn Vector3::move_towards(v : Vector3, target : Vector3, max_distance : Float) -> Vector3

    Move vector towards target.

    Vector3::multiply

    fn Vector3::multiply(v1 : Vector3, v2 : Vector3) -> Vector3

    Multiply vector by vector.

    Vector3::new

    fn Vector3::new(x : Float, y : Float, z : Float) -> Vector3

    Create a new Vector3.

    Vector3::normalize

    fn Vector3::normalize(v : Vector3) -> Vector3

    Normalize provided vector.

    Vector3::one

    fn Vector3::one() -> Vector3

    Get Vector3 with components equal to one.

    Vector3::ortho_normalize

    fn Vector3::ortho_normalize(v1 : Vector3, v2 : Vector3) -> (Vector3, Vector3)

    Orthonormalize provided vectors. Makes vectors normalized and orthogonal to each other.

    Vector3::perpendicular

    fn Vector3::perpendicular(v : Vector3) -> Vector3

    Calculate one vector perpendicular to the given vector.

    Vector3::project

    fn Vector3::project(v1 : Vector3, v2 : Vector3) -> Vector3

    Calculate the projection of the vector v1 on to v2.

    Vector3::reflect

    fn Vector3::reflect(v : Vector3, normal : Vector3) -> Vector3

    Calculate reflected vector to normal.

    Vector3::refract

    fn Vector3::refract(v : Vector3, n : Vector3, r : Float) -> Vector3

    Compute the direction of a refracted ray.

    Vector3::reject

    fn Vector3::reject(v1 : Vector3, v2 : Vector3) -> Vector3

    Calculate the rejection of the vector v1 on to v2.

    Vector3::rotate_by_axis_angle

    fn Vector3::rotate_by_axis_angle(v : Vector3, axis : Vector3, angle : Float) -> Vector3

    Rotates a vector around an axis.

    Vector3::rotate_by_quaternion

    fn Vector3::rotate_by_quaternion(v : Vector3, q : Vector4) -> Vector3

    Transform a vector by quaternion rotation.

    Vector3::scale

    fn Vector3::scale(v : Vector3, scalar : Float) -> Vector3

    Scale vector by float value (multiply by value).

    Vector3::subtract

    fn Vector3::subtract(v1 : Vector3, v2 : Vector3) -> Vector3

    Subtract two vectors (v1 - v2).

    Vector3::subtract_value

    fn Vector3::subtract_value(v : Vector3, sub : Float) -> Vector3

    Subtract vector by float value.

    Vector3::to_bytes

    fn Vector3::to_bytes(v : Vector3) -> Bytes

    Serialize Vector3 to bytes.

    Vector3::transform

    fn Vector3::transform(v : Vector3, mat : Matrix) -> Vector3

    Transforms a Vector3 by a given Matrix.

    Vector3::unproject

    fn Vector3::unproject(source : Vector3, projection : Matrix, view : Matrix) -> Vector3

    Projects a Vector3 from screen space into object space.

    Vector3::zero

    fn Vector3::zero() -> Vector3

    Get Vector3 with components equal to zero.

    Vector4

    pub struct Vector4 {
    x : Float
    y : Float
    z : Float
    w : Float
    } derive(Eq,
    Debug
    )

    4D vector type (also used as Quaternion).
    impl Show for Vector4

    Vector4::add

    fn Vector4::add(v1 : Vector4, v2 : Vector4) -> Vector4

    Add two vectors (v1 + v2).

    Vector4::add_value

    fn Vector4::add_value(v : Vector4, add : Float) -> Vector4

    Add vector and float value.

    Vector4::divide

    fn Vector4::divide(v1 : Vector4, v2 : Vector4) -> Vector4

    Divide vector by vector.

    Vector4::equals

    fn Vector4::equals(p : Vector4, q : Vector4) -> Bool

    Check whether two given vectors are almost equal.

    Vector4::from_bytes

    fn Vector4::from_bytes(b : Bytes) -> Vector4

    Deserialize Vector4 from bytes.

    Vector4::length

    fn Vector4::length(v : Vector4) -> Float

    Calculate vector length.

    Vector4::max

    fn Vector4::max(v1 : Vector4, v2 : Vector4) -> Vector4

    Get max value for each pair of components.

    Vector4::min

    fn Vector4::min(v1 : Vector4, v2 : Vector4) -> Vector4

    Get min value for each pair of components.

    Vector4::multiply

    fn Vector4::multiply(v1 : Vector4, v2 : Vector4) -> Vector4

    Multiply vector by vector.

    Vector4::negate

    fn Vector4::negate(v : Vector4) -> Vector4

    Negate vector.

    Vector4::new

    fn Vector4::new(x : Float, y : Float, z : Float, w : Float) -> Vector4

    Create a new Vector4.

    Vector4::normalize

    fn Vector4::normalize(v : Vector4) -> Vector4

    Normalize provided vector.

    Vector4::one

    fn Vector4::one() -> Vector4

    Get Vector4 with components equal to one.

    Vector4::quat_add

    fn Vector4::quat_add(q1 : Vector4, q2 : Vector4) -> Vector4

    Add two quaternions.

    Vector4::quat_add_value

    fn Vector4::quat_add_value(q : Vector4, add : Float) -> Vector4

    Add quaternion and float value.

    Vector4::quat_cubic_hermite_spline

    fn Vector4::quat_cubic_hermite_spline(q1 : Vector4, out_tangent1 : Vector4, q2 : Vector4, in_tangent2 : Vector4, t : Float) -> Vector4

    Calculate quaternion cubic hermite spline interpolation.

    Vector4::quat_divide

    fn Vector4::quat_divide(q1 : Vector4, q2 : Vector4) -> Vector4

    Divide two quaternions.

    Vector4::quat_equals

    fn Vector4::quat_equals(p : Vector4, q : Vector4) -> Bool

    Check whether two given quaternions are almost equal.

    Vector4::quat_from_axis_angle

    fn Vector4::quat_from_axis_angle(axis : Vector3, angle : Float) -> Vector4

    Get rotation quaternion for an angle and axis.

    Vector4::quat_from_euler

    fn Vector4::quat_from_euler(pitch : Float, yaw : Float, roll : Float) -> Vector4

    Get the quaternion equivalent to Euler angles (pitch, yaw, roll).

    Vector4::quat_from_matrix

    fn Vector4::quat_from_matrix(mat : Matrix) -> Vector4

    Get a quaternion for a given rotation matrix.

    Vector4::quat_from_vector3_to_vector3

    fn Vector4::quat_from_vector3_to_vector3(from_ : Vector3, to : Vector3) -> Vector4

    Calculate quaternion based on the rotation from one vector to another.

    Vector4::quat_identity

    fn Vector4::quat_identity() -> Vector4

    Get identity quaternion.

    Vector4::quat_invert

    fn Vector4::quat_invert(q : Vector4) -> Vector4

    Invert provided quaternion.

    Vector4::quat_length

    fn Vector4::quat_length(q : Vector4) -> Float

    Compute the length of a quaternion.

    Vector4::quat_lerp

    fn Vector4::quat_lerp(q1 : Vector4, q2 : Vector4, amount : Float) -> Vector4

    Calculate linear interpolation between two quaternions.

    Vector4::quat_multiply

    fn Vector4::quat_multiply(q1 : Vector4, q2 : Vector4) -> Vector4

    Calculate two quaternion multiplication.

    Vector4::quat_nlerp

    fn Vector4::quat_nlerp(q1 : Vector4, q2 : Vector4, amount : Float) -> Vector4

    Calculate slerp-optimized interpolation between two quaternions (normalized lerp).

    Vector4::quat_normalize

    fn Vector4::quat_normalize(q : Vector4) -> Vector4

    Normalize provided quaternion.

    Vector4::quat_scale

    fn Vector4::quat_scale(q : Vector4, mul : Float) -> Vector4

    Scale quaternion by float value.

    Vector4::quat_slerp

    fn Vector4::quat_slerp(q1 : Vector4, q2 : Vector4, amount : Float) -> Vector4

    Calculate spherical linear interpolation between two quaternions.

    Vector4::quat_subtract

    fn Vector4::quat_subtract(q1 : Vector4, q2 : Vector4) -> Vector4

    Subtract two quaternions.

    Vector4::quat_subtract_value

    fn Vector4::quat_subtract_value(q : Vector4, sub : Float) -> Vector4

    Subtract quaternion and float value.

    Vector4::quat_to_axis_angle

    fn Vector4::quat_to_axis_angle(q : Vector4) -> (Vector3, Float)

    Get the rotation angle and axis for a given quaternion.

    Vector4::quat_to_euler

    fn Vector4::quat_to_euler(q : Vector4) -> Vector3

    Get the Euler angles equivalent to quaternion (roll, pitch, yaw).

    Vector4::quat_to_matrix

    fn Vector4::quat_to_matrix(q : Vector4) -> Matrix

    Get a matrix for a given quaternion.

    Vector4::quat_transform

    fn Vector4::quat_transform(q : Vector4, mat : Matrix) -> Vector4

    Transform a quaternion given a transformation matrix.

    Vector4::scale

    fn Vector4::scale(v : Vector4, scalar : Float) -> Vector4

    Scale vector by float value (multiply by value).

    Vector4::subtract

    fn Vector4::subtract(v1 : Vector4, v2 : Vector4) -> Vector4

    Subtract two vectors (v1 - v2).

    Vector4::subtract_value

    fn Vector4::subtract_value(v : Vector4, sub : Float) -> Vector4

    Subtract vector by float value.

    Vector4::to_bytes

    fn Vector4::to_bytes(v : Vector4) -> Bytes

    Serialize Vector4 to bytes.

    Vector4::zero

    fn Vector4::zero() -> Vector4

    Get Vector4 with components equal to zero.

    VrDeviceInfo

    pub struct VrDeviceInfo {
    h_resolution : Int
    v_resolution : Int
    h_screen_size : Float
    v_screen_size : Float
    eye_to_screen_distance : Float
    lens_separation_distance : Float
    interpupillary_distance : Float
    lens_distortion_values : FixedArray[Float]
    chroma_ab_correction : FixedArray[Float]
    } derive(
    Debug
    )

    Head-Mounted-Display device parameters.

    VrDeviceInfo::new

    fn VrDeviceInfo::new(h_resolution : Int, v_resolution : Int, h_screen_size : Float, v_screen_size : Float, eye_to_screen_distance : Float, lens_separation_distance : Float, interpupillary_distance : Float, lens_distortion_values : FixedArray[Float], chroma_ab_correction : FixedArray[Float]) -> VrDeviceInfo

    Create a new VrDeviceInfo with the given parameters.

    VrDeviceInfo::to_bytes

    fn VrDeviceInfo::to_bytes(info : VrDeviceInfo) -> Bytes

    Serialize VrDeviceInfo to bytes for FFI passing.

    VrStereoConfig

    type VrStereoConfig

    VR stereo rendering configuration for simulator.

    VrStereoConfig::begin_mode

    #as_free_fn(begin_vr_stereo_mode)
    fn VrStereoConfig::begin_mode(self : VrStereoConfig) -> Unit

    Begin stereo rendering (requires VR simulator).

    VrStereoConfig::left_lens_center

    fn VrStereoConfig::left_lens_center(self : VrStereoConfig) -> Vector2

    Get VR left lens center.

    VrStereoConfig::left_screen_center

    fn VrStereoConfig::left_screen_center(self : VrStereoConfig) -> Vector2

    Get VR left screen center.

    VrStereoConfig::load

    #as_free_fn(load_vr_stereo_config)
    fn VrStereoConfig::load(device : VrDeviceInfo) -> VrStereoConfig

    Load VR stereo config for VR simulator device parameters.

    VrStereoConfig::right_lens_center

    fn VrStereoConfig::right_lens_center(self : VrStereoConfig) -> Vector2

    Get VR right lens center.

    VrStereoConfig::right_screen_center

    fn VrStereoConfig::right_screen_center(self : VrStereoConfig) -> Vector2

    Get VR right screen center.

    VrStereoConfig::scale

    Get VR distortion scale.

    VrStereoConfig::scale_in

    fn VrStereoConfig::scale_in(self : VrStereoConfig) -> Vector2

    Get VR distortion scale in.

    VrStereoConfig::unload

    #as_free_fn(unload_vr_stereo_config)
    fn VrStereoConfig::unload(self : VrStereoConfig) -> Unit

    Unload VR stereo config.

    Wave

    type Wave

    Wave type, wrapping the internal FFI wave resource.

    Wave::channels

    #as_free_fn(get_wave_channels)
    fn Wave::channels(self : Wave) -> Int

    Get wave channels count.

    Wave::copy

    #as_free_fn(wave_copy)
    fn Wave::copy(self : Wave) -> Wave

    Copy a wave to a new wave.

    Wave::crop

    #as_free_fn(wave_crop)
    fn Wave::crop(self : Wave, init_frame : Int, final_frame : Int) -> Unit

    Crop a wave to defined frames range.

    Wave::data

    #as_free_fn(get_wave_data)
    fn Wave::data(self : Wave) -> WaveData

    Get wave data as a zero-copy view into the internal buffer. Returns Float, Short, or UByte depending on sample_size() (32, 16, or 8).

    Wave::export_

    #as_free_fn(export_wave)
    fn Wave::export_(self : Wave, file_name : String) -> Bool

    Export wave data to file, returns true on success.

    Wave::export_as_code

    #as_free_fn(export_wave_as_code)
    fn Wave::export_as_code(self : Wave, file_name : String) -> Bool

    Export wave sample data to code (.h), returns true on success.

    Wave::format

    #as_free_fn(wave_format)
    fn Wave::format(self : Wave, sample_rate : Int, sample_size : Int, channels : Int) -> Unit

    Convert wave data to desired format.

    Wave::frame_count

    #as_free_fn(get_wave_frame_count)
    fn Wave::frame_count(self : Wave) -> Int

    Get wave frame count.

    Wave::is_valid

    #as_free_fn(is_wave_valid)
    fn Wave::is_valid(self : Wave) -> Bool

    Check if wave data is valid (data loaded and parameters).

    Wave::load

    #as_free_fn(load_wave)
    fn Wave::load(file_name : String) -> Wave

    Load wave data from file.

    Wave::load_from_memory

    #as_free_fn(load_wave_from_memory)
    fn Wave::load_from_memory(file_type : String, file_data : Bytes, data_size : Int) -> Wave

    Load wave from memory buffer, file_type refers to extension (e.g. ".wav").

    Wave::load_samples

    #as_free_fn(load_wave_samples)
    fn Wave::load_samples(self : Wave) -> WaveSamples

    Load samples data from wave as a 32-bit float data array.

    Wave::load_sound

    #as_free_fn(load_sound_from_wave)
    fn Wave::load_sound(self : Wave) -> Sound

    Load sound from wave data.

    Wave::sample_rate

    #as_free_fn(get_wave_sample_rate)
    fn Wave::sample_rate(self : Wave) -> Int

    Get wave sample rate.

    Wave::sample_size

    #as_free_fn(get_wave_sample_size)
    fn Wave::sample_size(self : Wave) -> Int

    Get wave sample size.

    Wave::unload

    #as_free_fn(unload_wave)
    fn Wave::unload(self : Wave) -> Unit

    Unload wave data.

    WaveData

    pub enum WaveData {
    Float(FloatArray)
    Short(ShortArray)
    UByte(UByteArray)
    }

    WaveSamples

    pub struct WaveSamples {
    // private fields
    }

    Wave samples data, wrapping a float array.

    WaveSamples::length

    fn WaveSamples::length(self : WaveSamples) -> Int

    Get the number of samples.

    WaveSamples::op_get

    fn WaveSamples::op_get(self : WaveSamples, index : Int) -> Float

    Get sample value at index.

    WaveSamples::op_set

    fn WaveSamples::op_set(self : WaveSamples, index : Int, value : Float) -> Unit

    Set sample value at index.

    WaveSamples::unload

    #as_free_fn(unload_wave_samples)
    fn WaveSamples::unload(self : WaveSamples) -> Unit

    Unload samples data loaded with load_wave_samples.

    BlendAdditive

    let BlendAdditive : Int

    Blend mode: additive blending

    BlendAlpha

    let BlendAlpha : Int

    Blend mode: alpha blending (default)

    BlendCustom

    let BlendCustom : Int

    Blend mode: custom blending using src/dst factors (use rlSetBlendFactors())

    BlendMultiplied

    let BlendMultiplied : Int

    Blend mode: multiplied blending

    CameraCustom

    let CameraCustom : Int

    Custom camera mode, controlled by user (UpdateCamera() does nothing).

    CameraFirstPerson

    let CameraFirstPerson : Int

    Camera first person mode.

    CameraFree

    let CameraFree : Int

    Camera free mode.

    CameraOrbital

    let CameraOrbital : Int

    Camera orbital mode, around target, zoom supported.

    CameraOrthographic

    let CameraOrthographic : Int

    Orthographic projection.

    CameraPerspective

    let CameraPerspective : Int

    Perspective projection.

    CameraThirdPerson

    let CameraThirdPerson : Int

    Camera third person mode.

    CubemapLayoutAutoDetect

    let CubemapLayoutAutoDetect : Int

    Cubemap layout: automatically detect layout type.

    CubemapLayoutCrossFourByThree

    let CubemapLayoutCrossFourByThree : Int

    Cubemap layout: layout is defined by a 4x3 cross with cubemap faces.

    CubemapLayoutCrossThreeByFour

    let CubemapLayoutCrossThreeByFour : Int

    Cubemap layout: layout is defined by a 3x4 cross with cubemap faces.

    CubemapLayoutLineHorizontal

    let CubemapLayoutLineHorizontal : Int

    Cubemap layout: layout is defined by a horizontal line with faces.

    CubemapLayoutLineVertical

    let CubemapLayoutLineVertical : Int

    Cubemap layout: layout is defined by a vertical line with faces.

    FlagBorderlessWindowedMode

    let FlagBorderlessWindowedMode : Int

    Config flag: set to run program in borderless windowed mode.

    FlagFullscreenMode

    let FlagFullscreenMode : Int

    Config flag: set to run program in fullscreen.

    FlagInterlacedHint

    let FlagInterlacedHint : Int

    Config flag: set to try enabling interlaced video format (for V3D).

    FlagMsaa4xHint

    let FlagMsaa4xHint : Int

    Config flag: set to try enabling MSAA 4X.

    FlagVsyncHint

    let FlagVsyncHint : Int

    Config flag: set to try enabling V-Sync on GPU.

    FlagWindowAlwaysRun

    let FlagWindowAlwaysRun : Int

    Config flag: set to allow windows running while minimized.

    FlagWindowHidden

    let FlagWindowHidden : Int

    Config flag: set to hide window.

    FlagWindowHighdpi

    let FlagWindowHighdpi : Int

    Config flag: set to support HighDPI.

    FlagWindowMaximized

    let FlagWindowMaximized : Int

    Config flag: set to maximize window (expanded to monitor).

    FlagWindowMinimized

    let FlagWindowMinimized : Int

    Config flag: set to minimize window (iconify).

    FlagWindowMousePassthrough

    let FlagWindowMousePassthrough : Int

    Config flag: set to support mouse passthrough, only supported when FLAG_WINDOW_UNDECORATED.

    FlagWindowResizable

    let FlagWindowResizable : Int

    Config flag: set to allow resizable window.

    FlagWindowTopmost

    let FlagWindowTopmost : Int

    Config flag: set to window always on top.

    FlagWindowTransparent

    let FlagWindowTransparent : Int

    Config flag: set to allow transparent framebuffer.

    FlagWindowUndecorated

    let FlagWindowUndecorated : Int

    Config flag: set to disable window decoration (frame and buttons).

    FlagWindowUnfocused

    let FlagWindowUnfocused : Int

    Config flag: set to window non focused.

    FontBitmap

    let FontBitmap : Int

    Bitmap font generation, no anti-aliasing.

    FontDefault

    let FontDefault : Int

    Default font generation, anti-aliased.

    FontSdf

    let FontSdf : Int

    SDF font generation, requires external shader.

    GamepadAxisLeftTrigger

    let GamepadAxisLeftTrigger : Int

    Gamepad axis: back trigger left, pressure level: [1..-1]

    GamepadAxisLeftX

    let GamepadAxisLeftX : Int

    Gamepad axis: left stick X

    GamepadAxisLeftY

    let GamepadAxisLeftY : Int

    Gamepad axis: left stick Y

    GamepadAxisRightTrigger

    let GamepadAxisRightTrigger : Int

    Gamepad axis: back trigger right, pressure level: [1..-1]

    GamepadAxisRightX

    let GamepadAxisRightX : Int

    Gamepad axis: right stick X

    GamepadAxisRightY

    let GamepadAxisRightY : Int

    Gamepad axis: right stick Y

    GamepadButtonLeftFaceDown

    let GamepadButtonLeftFaceDown : Int

    Gamepad button: left DPAD down

    GamepadButtonLeftFaceLeft

    let GamepadButtonLeftFaceLeft : Int

    Gamepad button: left DPAD left

    GamepadButtonLeftFaceRight

    let GamepadButtonLeftFaceRight : Int

    Gamepad button: left DPAD right

    GamepadButtonLeftFaceUp

    let GamepadButtonLeftFaceUp : Int

    Gamepad button: left DPAD up

    GamepadButtonLeftThumb

    let GamepadButtonLeftThumb : Int

    Gamepad button: joystick pressed button left

    GamepadButtonLeftTrigger1

    let GamepadButtonLeftTrigger1 : Int

    Gamepad button: top/back trigger left (first)

    GamepadButtonLeftTrigger2

    let GamepadButtonLeftTrigger2 : Int

    Gamepad button: top/back trigger left (second)

    GamepadButtonMiddle

    let GamepadButtonMiddle : Int

    Gamepad button: center buttons, middle one (i.e. PS3: PS, Xbox: XBOX)

    GamepadButtonMiddleLeft

    let GamepadButtonMiddleLeft : Int

    Gamepad button: center buttons, left one (i.e. PS3: Select)

    GamepadButtonMiddleRight

    let GamepadButtonMiddleRight : Int

    Gamepad button: center buttons, right one (i.e. PS3: Start)

    GamepadButtonRightFaceDown

    let GamepadButtonRightFaceDown : Int

    Gamepad button: right button down (i.e. PS3: Cross, Xbox: A)

    GamepadButtonRightFaceLeft

    let GamepadButtonRightFaceLeft : Int

    Gamepad button: right button left (i.e. PS3: Square, Xbox: X)

    GamepadButtonRightFaceRight

    let GamepadButtonRightFaceRight : Int

    Gamepad button: right button right (i.e. PS3: Circle, Xbox: B)

    GamepadButtonRightFaceUp

    let GamepadButtonRightFaceUp : Int

    Gamepad button: right button up (i.e. PS3: Triangle, Xbox: Y)

    GamepadButtonRightThumb

    let GamepadButtonRightThumb : Int

    Gamepad button: joystick pressed button right

    GamepadButtonRightTrigger1

    let GamepadButtonRightTrigger1 : Int

    Gamepad button: top/back trigger right (first)

    GamepadButtonRightTrigger2

    let GamepadButtonRightTrigger2 : Int

    Gamepad button: top/back trigger right (second)

    GamepadButtonUnknown

    let GamepadButtonUnknown : Int

    Gamepad button: unknown, just for error checking

    GestureDoubletap

    let GestureDoubletap : Int

    Gesture: double tap

    GestureDrag

    let GestureDrag : Int

    Gesture: drag

    GestureHold

    let GestureHold : Int

    Gesture: hold

    GestureNone

    let GestureNone : Int

    Gesture: no gesture

    GesturePinchIn

    let GesturePinchIn : Int

    Gesture: pinch in

    GesturePinchOut

    let GesturePinchOut : Int

    Gesture: pinch out

    GestureSwipeDown

    let GestureSwipeDown : Int

    Gesture: swipe down

    GestureSwipeLeft

    let GestureSwipeLeft : Int

    Gesture: swipe left

    GestureSwipeRight

    let GestureSwipeRight : Int

    Gesture: swipe right

    GestureSwipeUp

    let GestureSwipeUp : Int

    Gesture: swipe up

    GestureTap

    let GestureTap : Int

    Gesture: tap

    KeyA

    let KeyA : Int

    Key: A | a

    KeyApostrophe

    let KeyApostrophe : Int

    Key: '

    KeyB

    let KeyB : Int

    Key: B | b

    KeyBackslash

    let KeyBackslash : Int

    Key: ''

    KeyBackspace

    let KeyBackspace : Int

    Key: Backspace

    KeyC

    let KeyC : Int

    Key: C | c

    KeyCapsLock

    let KeyCapsLock : Int

    Key: Caps lock

    KeyComma

    let KeyComma : Int

    Key: ,

    KeyD

    let KeyD : Int

    Key: D | d

    KeyDelete

    let KeyDelete : Int

    Key: Del

    KeyDown

    let KeyDown : Int

    Key: Cursor down

    KeyE

    let KeyE : Int

    Key: E | e

    KeyEight

    let KeyEight : Int

    Key: 8

    KeyEnd

    let KeyEnd : Int

    Key: End

    KeyEnter

    let KeyEnter : Int

    Key: Enter

    KeyEqual

    let KeyEqual : Int

    Key: =

    KeyEscape

    let KeyEscape : Int

    Key: Esc

    KeyF

    let KeyF : Int

    Key: F | f

    KeyF1

    let KeyF1 : Int

    Key: F1

    KeyF10

    let KeyF10 : Int

    Key: F10

    KeyF11

    let KeyF11 : Int

    Key: F11

    KeyF12

    let KeyF12 : Int

    Key: F12

    KeyF2

    let KeyF2 : Int

    Key: F2

    KeyF3

    let KeyF3 : Int

    Key: F3

    KeyF4

    let KeyF4 : Int

    Key: F4

    KeyF5

    let KeyF5 : Int

    Key: F5

    KeyF6

    let KeyF6 : Int

    Key: F6

    KeyF7

    let KeyF7 : Int

    Key: F7

    KeyF8

    let KeyF8 : Int

    Key: F8

    KeyF9

    let KeyF9 : Int

    Key: F9

    KeyFive

    let KeyFive : Int

    Key: 5

    KeyFour

    let KeyFour : Int

    Key: 4

    KeyG

    let KeyG : Int

    Key: G | g

    KeyGrave

    let KeyGrave : Int

    Key: `

    KeyH

    let KeyH : Int

    Key: H | h

    KeyHome

    let KeyHome : Int

    Key: Home

    KeyI

    let KeyI : Int

    Key: I | i

    KeyInsert

    let KeyInsert : Int

    Key: Ins

    KeyJ

    let KeyJ : Int

    Key: J | j

    KeyK

    let KeyK : Int

    Key: K | k

    KeyKbMenu

    let KeyKbMenu : Int

    Key: KB menu

    KeyKp0

    let KeyKp0 : Int

    Key: Keypad 0

    KeyKp1

    let KeyKp1 : Int

    Key: Keypad 1

    KeyKp2

    let KeyKp2 : Int

    Key: Keypad 2

    KeyKp3

    let KeyKp3 : Int

    Key: Keypad 3

    KeyKp4

    let KeyKp4 : Int

    Key: Keypad 4

    KeyKp5

    let KeyKp5 : Int

    Key: Keypad 5

    KeyKp6

    let KeyKp6 : Int

    Key: Keypad 6

    KeyKp7

    let KeyKp7 : Int

    Key: Keypad 7

    KeyKp8

    let KeyKp8 : Int

    Key: Keypad 8

    KeyKp9

    let KeyKp9 : Int

    Key: Keypad 9

    KeyL

    let KeyL : Int

    Key: L | l

    KeyLeft

    let KeyLeft : Int

    Key: Cursor left

    KeyLeftAlt

    let KeyLeftAlt : Int

    Key: Alt left

    KeyLeftBracket

    let KeyLeftBracket : Int

    Key: [

    KeyLeftControl

    let KeyLeftControl : Int

    Key: Control left

    KeyLeftShift

    let KeyLeftShift : Int

    Key: Shift left

    KeyLeftSuper

    let KeyLeftSuper : Int

    Key: Super left

    KeyM

    let KeyM : Int

    Key: M | m

    KeyMinus

    let KeyMinus : Int

    Key: -

    KeyN

    let KeyN : Int

    Key: N | n

    KeyNine

    let KeyNine : Int

    Key: 9

    KeyNull

    let KeyNull : Int

    Key: NULL, used for no key pressed.

    KeyNumLock

    let KeyNumLock : Int

    Key: Num lock

    KeyO

    let KeyO : Int

    Key: O | o

    KeyOne

    let KeyOne : Int

    Key: 1

    KeyP

    let KeyP : Int

    Key: P | p

    KeyPageDown

    let KeyPageDown : Int

    Key: Page down

    KeyPageUp

    let KeyPageUp : Int

    Key: Page up

    KeyPause

    let KeyPause : Int

    Key: Pause

    KeyPeriod

    let KeyPeriod : Int

    Key: .

    KeyPrintScreen

    let KeyPrintScreen : Int

    Key: Print screen

    KeyQ

    let KeyQ : Int

    Key: Q | q

    KeyR

    let KeyR : Int

    Key: R | r

    KeyRight

    let KeyRight : Int

    Key: Cursor right

    KeyRightAlt

    let KeyRightAlt : Int

    Key: Alt right

    KeyRightBracket

    let KeyRightBracket : Int

    Key: ]

    KeyRightControl

    let KeyRightControl : Int

    Key: Control right

    KeyRightShift

    let KeyRightShift : Int

    Key: Shift right

    KeyRightSuper

    let KeyRightSuper : Int

    Key: Super right

    KeyS

    let KeyS : Int

    Key: S | s

    KeyScrollLock

    let KeyScrollLock : Int

    Key: Scroll down

    KeySemicolon

    let KeySemicolon : Int

    Key: ;

    KeySeven

    let KeySeven : Int

    Key: 7

    KeySix

    let KeySix : Int

    Key: 6

    KeySlash

    let KeySlash : Int

    Key: /

    KeySpace

    let KeySpace : Int

    Key: Space

    KeyT

    let KeyT : Int

    Key: T | t

    KeyTab

    let KeyTab : Int

    Key: Tab

    KeyThree

    let KeyThree : Int

    Key: 3

    KeyTwo

    let KeyTwo : Int

    Key: 2

    KeyU

    let KeyU : Int

    Key: U | u

    KeyUp

    let KeyUp : Int

    Key: Cursor up

    KeyV

    let KeyV : Int

    Key: V | v

    KeyW

    let KeyW : Int

    Key: W | w

    KeyX

    let KeyX : Int

    Key: X | x

    KeyY

    let KeyY : Int

    Key: Y | y

    KeyZ

    let KeyZ : Int

    Key: Z | z

    KeyZero

    let KeyZero : Int

    Key: 0

    LogAll

    let LogAll : Int

    Trace log level: display all logs.

    LogDebug

    let LogDebug : Int

    Trace log level: debug logging, used for internal debugging.

    LogError

    let LogError : Int

    Trace log level: error logging, used on unrecoverable failures.

    LogFatal

    let LogFatal : Int

    Trace log level: fatal logging, used to abort program.

    LogInfo

    let LogInfo : Int

    Trace log level: info logging, used for program execution info.

    LogNone

    let LogNone : Int

    Trace log level: disable logging.

    LogTrace

    let LogTrace : Int

    Trace log level: trace logging, intended for internal use only.

    LogWarning

    let LogWarning : Int

    Trace log level: warning logging, used on recoverable failures.

    MaterialMapAlbedo

    let MaterialMapAlbedo : Int

    Albedo material map type (same as diffuse).

    MaterialMapBrdf

    let MaterialMapBrdf : Int

    BRDF material map type.

    MaterialMapCubemap

    let MaterialMapCubemap : Int

    Cubemap material map type (NOTE: Uses GL_TEXTURE_CUBE_MAP).

    MaterialMapEmission

    let MaterialMapEmission : Int

    Emission material map type.

    MaterialMapHeight

    let MaterialMapHeight : Int

    Heightmap material map type.

    MaterialMapIrradiance

    let MaterialMapIrradiance : Int

    Irradiance material map type (NOTE: Uses GL_TEXTURE_CUBE_MAP).

    MaterialMapMetalness

    let MaterialMapMetalness : Int

    Metalness material map type (same as specular).

    MaterialMapNormal

    let MaterialMapNormal : Int

    Normal material map type.

    MaterialMapOcclusion

    let MaterialMapOcclusion : Int

    Ambient occlusion material map type.

    MaterialMapPrefilter

    let MaterialMapPrefilter : Int

    Prefilter material map type (NOTE: Uses GL_TEXTURE_CUBE_MAP).

    MaterialMapRoughness

    let MaterialMapRoughness : Int

    Roughness material map type.

    MouseButtonBack

    let MouseButtonBack : Int

    Mouse button: back (advanced mouse device)

    MouseButtonExtra

    let MouseButtonExtra : Int

    Mouse button: extra (advanced mouse device)

    MouseButtonForward

    let MouseButtonForward : Int

    Mouse button: forward (advanced mouse device)

    MouseButtonLeft

    let MouseButtonLeft : Int

    Mouse button: left

    MouseButtonMiddle

    let MouseButtonMiddle : Int

    Mouse button: middle (pressed wheel)

    MouseButtonRight

    let MouseButtonRight : Int

    Mouse button: right

    MouseButtonSide

    let MouseButtonSide : Int

    Mouse button: side (advanced mouse device)

    MouseCursorArrow

    let MouseCursorArrow : Int

    Mouse cursor: arrow shape

    MouseCursorCrosshair

    let MouseCursorCrosshair : Int

    Mouse cursor: cross shape

    MouseCursorDefault

    let MouseCursorDefault : Int

    Mouse cursor: default pointer shape

    MouseCursorIbeam

    let MouseCursorIbeam : Int

    Mouse cursor: text writing cursor shape

    MouseCursorNotAllowed

    let MouseCursorNotAllowed : Int

    Mouse cursor: operation-not-allowed shape

    MouseCursorPointingHand

    let MouseCursorPointingHand : Int

    Mouse cursor: pointing hand cursor

    MouseCursorResizeAll

    let MouseCursorResizeAll : Int

    Mouse cursor: omnidirectional resize/move cursor shape

    MouseCursorResizeEw

    let MouseCursorResizeEw : Int

    Mouse cursor: horizontal resize/move arrow shape

    MouseCursorResizeNesw

    let MouseCursorResizeNesw : Int

    Mouse cursor: top-right to bottom-left diagonal resize/move arrow shape

    MouseCursorResizeNs

    let MouseCursorResizeNs : Int

    Mouse cursor: vertical resize/move arrow shape

    MouseCursorResizeNwse

    let MouseCursorResizeNwse : Int

    Mouse cursor: top-left to bottom-right diagonal resize/move arrow shape

    NpatchNinePatch

    let NpatchNinePatch : Int

    Npatch layout: 3x3 tiles.

    NpatchThreePatchHorizontal

    let NpatchThreePatchHorizontal : Int

    Npatch layout: 3x1 tiles.

    NpatchThreePatchVertical

    let NpatchThreePatchVertical : Int

    Npatch layout: 1x3 tiles.

    PixelformatUncompressedGrayAlpha

    let PixelformatUncompressedGrayAlpha : Int

    Pixel format: 8*2 bpp (2 channels).

    PixelformatUncompressedGrayscale

    let PixelformatUncompressedGrayscale : Int

    Pixel format: 8 bit per pixel (no alpha).

    PixelformatUncompressedR32

    let PixelformatUncompressedR32 : Int

    Pixel format: 32 bpp (1 channel - float).

    PixelformatUncompressedR32g32b32

    let PixelformatUncompressedR32g32b32 : Int

    Pixel format: 32*3 bpp (3 channels - float).

    PixelformatUncompressedR32g32b32a32

    let PixelformatUncompressedR32g32b32a32 : Int

    Pixel format: 32*4 bpp (4 channels - float).

    PixelformatUncompressedR4g4b4a4

    let PixelformatUncompressedR4g4b4a4 : Int

    Pixel format: 16 bpp (4 bit alpha).

    PixelformatUncompressedR5g5b5a1

    let PixelformatUncompressedR5g5b5a1 : Int

    Pixel format: 16 bpp (1 bit alpha).

    PixelformatUncompressedR5g6b5

    let PixelformatUncompressedR5g6b5 : Int

    Pixel format: 16 bpp.

    PixelformatUncompressedR8g8b8

    let PixelformatUncompressedR8g8b8 : Int

    Pixel format: 24 bpp.

    PixelformatUncompressedR8g8b8a8

    let PixelformatUncompressedR8g8b8a8 : Int

    Pixel format: 32 bpp.

    RlAttachmentColorChannel0

    #deprecated("Use @rl.AttachmentColorChannel0 from tonyfettes/raylib/rl instead")
    let RlAttachmentColorChannel0 : Int

    @deprecated Framebuffer attach type: color channel 0.

    RlAttachmentColorChannel1

    #deprecated("Use @rl.AttachmentColorChannel1 from tonyfettes/raylib/rl instead")
    let RlAttachmentColorChannel1 : Int

    @deprecated Framebuffer attach type: color channel 1.

    RlAttachmentColorChannel2

    #deprecated("Use @rl.AttachmentColorChannel2 from tonyfettes/raylib/rl instead")
    let RlAttachmentColorChannel2 : Int

    @deprecated Framebuffer attach type: color channel 2.

    RlAttachmentColorChannel3

    #deprecated("Use @rl.AttachmentColorChannel3 from tonyfettes/raylib/rl instead")
    let RlAttachmentColorChannel3 : Int

    @deprecated Framebuffer attach type: color channel 3.

    RlAttachmentCubemapNegativeX

    #deprecated("Use @rl.AttachmentCubemapNegativeX from tonyfettes/raylib/rl instead")
    let RlAttachmentCubemapNegativeX : Int

    @deprecated Framebuffer texture type: cubemap negative X.

    RlAttachmentCubemapNegativeY

    #deprecated("Use @rl.AttachmentCubemapNegativeY from tonyfettes/raylib/rl instead")
    let RlAttachmentCubemapNegativeY : Int

    @deprecated Framebuffer texture type: cubemap negative Y.

    RlAttachmentCubemapNegativeZ

    #deprecated("Use @rl.AttachmentCubemapNegativeZ from tonyfettes/raylib/rl instead")
    let RlAttachmentCubemapNegativeZ : Int

    @deprecated Framebuffer texture type: cubemap negative Z.

    RlAttachmentCubemapPositiveX

    #deprecated("Use @rl.AttachmentCubemapPositiveX from tonyfettes/raylib/rl instead")
    let RlAttachmentCubemapPositiveX : Int

    @deprecated Framebuffer texture type: cubemap positive X.

    RlAttachmentCubemapPositiveY

    #deprecated("Use @rl.AttachmentCubemapPositiveY from tonyfettes/raylib/rl instead")
    let RlAttachmentCubemapPositiveY : Int

    @deprecated Framebuffer texture type: cubemap positive Y.

    RlAttachmentCubemapPositiveZ

    #deprecated("Use @rl.AttachmentCubemapPositiveZ from tonyfettes/raylib/rl instead")
    let RlAttachmentCubemapPositiveZ : Int

    @deprecated Framebuffer texture type: cubemap positive Z.

    RlAttachmentDepth

    #deprecated("Use @rl.AttachmentDepth from tonyfettes/raylib/rl instead")
    let RlAttachmentDepth : Int

    @deprecated Framebuffer attach type: depth.

    RlAttachmentRenderbuffer

    #deprecated("Use @rl.AttachmentRenderbuffer from tonyfettes/raylib/rl instead")
    let RlAttachmentRenderbuffer : Int

    @deprecated Framebuffer texture type: renderbuffer.

    RlAttachmentStencil

    #deprecated("Use @rl.AttachmentStencil from tonyfettes/raylib/rl instead")
    let RlAttachmentStencil : Int

    @deprecated Framebuffer attach type: stencil.

    RlAttachmentTexture2d

    #deprecated("Use @rl.AttachmentTexture2d from tonyfettes/raylib/rl instead")
    let RlAttachmentTexture2d : Int

    @deprecated Framebuffer texture type: texture 2D.

    RlDrawFramebuffer

    #deprecated("Use @rl.DrawFramebuffer from tonyfettes/raylib/rl instead")
    let RlDrawFramebuffer : UInt

    @deprecated Framebuffer target: draw framebuffer.

    RlLines

    #deprecated("Use @rl.Lines from tonyfettes/raylib/rl instead")
    let RlLines : Int

    @deprecated OpenGL draw mode: Lines.

    RlQuads

    #deprecated("Use @rl.Quads from tonyfettes/raylib/rl instead")
    let RlQuads : Int

    @deprecated OpenGL draw mode: Quads.

    RlReadFramebuffer

    #deprecated("Use @rl.ReadFramebuffer from tonyfettes/raylib/rl instead")
    let RlReadFramebuffer : UInt

    @deprecated Framebuffer target: read framebuffer.

    RlTriangles

    #deprecated("Use @rl.Triangles from tonyfettes/raylib/rl instead")
    let RlTriangles : Int

    @deprecated OpenGL draw mode: Triangles.

    ShaderLocBoneMatrices

    let ShaderLocBoneMatrices : Int

    Shader location: array of matrices uniform: boneMatrices

    ShaderLocColorAmbient

    let ShaderLocColorAmbient : Int

    Shader location: vector uniform: ambient color

    ShaderLocColorDiffuse

    let ShaderLocColorDiffuse : Int

    Shader location: vector uniform: diffuse color

    ShaderLocColorSpecular

    let ShaderLocColorSpecular : Int

    Shader location: vector uniform: specular color

    ShaderLocMapAlbedo

    let ShaderLocMapAlbedo : Int

    Shader location: sampler2d texture: albedo (same as: SHADER_LOC_MAP_DIFFUSE)

    ShaderLocMapBrdf

    let ShaderLocMapBrdf : Int

    Shader location: sampler2d texture: brdf

    ShaderLocMapCubemap

    let ShaderLocMapCubemap : Int

    Shader location: samplerCube texture: cubemap

    ShaderLocMapEmission

    let ShaderLocMapEmission : Int

    Shader location: sampler2d texture: emission

    ShaderLocMapHeight

    let ShaderLocMapHeight : Int

    Shader location: sampler2d texture: height

    ShaderLocMapIrradiance

    let ShaderLocMapIrradiance : Int

    Shader location: samplerCube texture: irradiance

    ShaderLocMapMetalness

    let ShaderLocMapMetalness : Int

    Shader location: sampler2d texture: metalness (same as: SHADER_LOC_MAP_SPECULAR)

    ShaderLocMapNormal

    let ShaderLocMapNormal : Int

    Shader location: sampler2d texture: normal

    ShaderLocMapOcclusion

    let ShaderLocMapOcclusion : Int

    Shader location: sampler2d texture: occlusion

    ShaderLocMapPrefilter

    let ShaderLocMapPrefilter : Int

    Shader location: samplerCube texture: prefilter

    ShaderLocMapRoughness

    let ShaderLocMapRoughness : Int

    Shader location: sampler2d texture: roughness

    ShaderLocMatrixModel

    let ShaderLocMatrixModel : Int

    Shader location: matrix uniform: model (transform)

    ShaderLocMatrixMvp

    let ShaderLocMatrixMvp : Int

    Shader location: matrix uniform: model-view-projection

    ShaderLocMatrixNormal

    let ShaderLocMatrixNormal : Int

    Shader location: matrix uniform: normal

    ShaderLocMatrixProjection

    let ShaderLocMatrixProjection : Int

    Shader location: matrix uniform: projection

    ShaderLocMatrixView

    let ShaderLocMatrixView : Int

    Shader location: matrix uniform: view (camera transform)

    ShaderLocVectorView

    let ShaderLocVectorView : Int

    Shader location: vector uniform: view

    ShaderLocVertexBoneids

    let ShaderLocVertexBoneids : Int

    Shader location: vertex attribute: boneIds

    ShaderLocVertexBoneweights

    let ShaderLocVertexBoneweights : Int

    Shader location: vertex attribute: boneWeights

    ShaderLocVertexColor

    let ShaderLocVertexColor : Int

    Shader location: vertex attribute: color

    ShaderLocVertexNormal

    let ShaderLocVertexNormal : Int

    Shader location: vertex attribute: normal

    ShaderLocVertexPosition

    let ShaderLocVertexPosition : Int

    Shader location: vertex attribute: position

    ShaderLocVertexTangent

    let ShaderLocVertexTangent : Int

    Shader location: vertex attribute: tangent

    ShaderLocVertexTexcoord01

    let ShaderLocVertexTexcoord01 : Int

    Shader location: vertex attribute: texcoord01

    ShaderLocVertexTexcoord02

    let ShaderLocVertexTexcoord02 : Int

    Shader location: vertex attribute: texcoord02

    ShaderUniformFloat

    let ShaderUniformFloat : Int

    Shader uniform type: float

    ShaderUniformInt

    let ShaderUniformInt : Int

    Shader uniform type: int

    ShaderUniformIvec2

    let ShaderUniformIvec2 : Int

    Shader uniform type: ivec2 (2 int)

    ShaderUniformIvec3

    let ShaderUniformIvec3 : Int

    Shader uniform type: ivec3 (3 int)

    ShaderUniformIvec4

    let ShaderUniformIvec4 : Int

    Shader uniform type: ivec4 (4 int)

    ShaderUniformSampler2d

    let ShaderUniformSampler2d : Int

    Shader uniform type: sampler2d

    ShaderUniformVec2

    let ShaderUniformVec2 : Int

    Shader uniform type: vec2 (2 float)

    ShaderUniformVec3

    let ShaderUniformVec3 : Int

    Shader uniform type: vec3 (3 float)

    ShaderUniformVec4

    let ShaderUniformVec4 : Int

    Shader uniform type: vec4 (4 float)

    TextureFilterAnisotropic16x

    let TextureFilterAnisotropic16x : Int

    Texture filter: anisotropic filtering 16x.

    TextureFilterAnisotropic4x

    let TextureFilterAnisotropic4x : Int

    Texture filter: anisotropic filtering 4x.

    TextureFilterAnisotropic8x

    let TextureFilterAnisotropic8x : Int

    Texture filter: anisotropic filtering 8x.

    TextureFilterBilinear

    let TextureFilterBilinear : Int

    Texture filter: linear filtering.

    TextureFilterPoint

    let TextureFilterPoint : Int

    Texture filter: no filter, just pixel approximation.

    TextureFilterTrilinear

    let TextureFilterTrilinear : Int

    Texture filter: trilinear filtering (linear with mipmaps).

    TextureWrapClamp

    let TextureWrapClamp : Int

    Texture wrap: clamps texture to edge pixel in tiled mode.

    TextureWrapMirrorClamp

    let TextureWrapMirrorClamp : Int

    Texture wrap: mirrors and clamps to border the texture in tiled mode.

    TextureWrapMirrorRepeat

    let TextureWrapMirrorRepeat : Int

    Texture wrap: mirrors and repeats the texture in tiled mode.

    TextureWrapRepeat

    let TextureWrapRepeat : Int

    Texture wrap: repeats texture in tiled mode.

    attach_audio_mixed_processor

    fn attach_audio_mixed_processor(processor : FuncRef[(
    AudioBuffer
    , UInt) -> Unit]) -> Unit

    Attach audio stream processor to the entire audio pipeline, receives the samples as 'float'.

    attach_music_stream_processor

    fn attach_music_stream_processor(music : Music, processor : FuncRef[(
    AudioBuffer
    , UInt) -> Unit]) -> Unit

    Attach audio stream processor to a music stream, receives the samples as floats.

    audio_buffer_get_sample

    fn audio_buffer_get_sample(buffer :
    AudioBuffer
    , index : UInt) -> Float

    Get a sample value from an audio buffer at the given index.

    audio_buffer_set_sample

    fn audio_buffer_set_sample(buffer :
    AudioBuffer
    , index : UInt, value : Float) -> Unit

    Set a sample value in an audio buffer at the given index.

    begin_blend_mode

    fn begin_blend_mode(mode : Int) -> Unit

    Begin blending mode (alpha, additive, multiplied, subtract, custom).

    begin_drawing

    fn begin_drawing() -> Unit

    Setup canvas (framebuffer) to start drawing.

    begin_mode_2d

    fn begin_mode_2d(camera : Camera2D) -> Unit

    Begin 2D mode with custom camera (2D).

    begin_mode_3d

    fn begin_mode_3d(camera : Camera3D) -> Unit

    Begin 3D mode with custom camera (3D).

    begin_scissor_mode

    fn begin_scissor_mode(x : Int, y : Int, width : Int, height : Int) -> Unit

    Begin scissor mode (define screen area for following drawing).

    beige

    let beige : Color

    Beige color.

    black

    let black : Color

    Black color.

    blank

    let blank : Color

    Blank color (fully transparent).

    blue

    let blue : Color

    Blue color.

    brown

    let brown : Color

    Brown color.

    change_directory

    fn change_directory(dir : String) -> Bool

    Change working directory, return true on success.

    check_collision_box_sphere

    fn check_collision_box_sphere(box_ : BoundingBox, center : Vector3, radius : Float) -> Bool

    Check collision between box and sphere.

    check_collision_boxes

    fn check_collision_boxes(box1 : BoundingBox, box2 : BoundingBox) -> Bool

    Check collision between two bounding boxes.

    check_collision_circle_line

    fn check_collision_circle_line(center : Vector2, radius : Float, p1 : Vector2, p2 : Vector2) -> Bool

    Check if circle collides with a line created between two points.

    check_collision_circle_rec

    fn check_collision_circle_rec(center : Vector2, radius : Float, rec : Rectangle) -> Bool

    Check collision between circle and rectangle.

    check_collision_circles

    fn check_collision_circles(center1 : Vector2, radius1 : Float, center2 : Vector2, radius2 : Float) -> Bool

    Check collision between two circles.

    check_collision_lines

    fn check_collision_lines(start_pos1 : Vector2, end_pos1 : Vector2, start_pos2 : Vector2, end_pos2 : Vector2) -> Vector2?

    Check the collision between two lines defined by two points each, returns collision point.

    check_collision_point_circle

    fn check_collision_point_circle(point : Vector2, center : Vector2, radius : Float) -> Bool

    Check if point is inside circle.

    check_collision_point_line

    fn check_collision_point_line(point : Vector2, p1 : Vector2, p2 : Vector2, threshold : Int) -> Bool

    Check if point belongs to line created between two points with defined margin in pixels.

    check_collision_point_poly

    fn check_collision_point_poly(point : Vector2, points : Array[Vector2]) -> Bool

    Check if point is within a polygon described by array of vertices.

    check_collision_point_rec

    fn check_collision_point_rec(point : Vector2, rec : Rectangle) -> Bool

    Check if point is inside rectangle.

    check_collision_point_triangle

    fn check_collision_point_triangle(point : Vector2, p1 : Vector2, p2 : Vector2, p3 : Vector2) -> Bool

    Check if point is inside a triangle.

    check_collision_recs

    fn check_collision_recs(rec1 : Rectangle, rec2 : Rectangle) -> Bool

    Check collision between two rectangles.

    check_collision_spheres

    fn check_collision_spheres(center1 : Vector3, radius1 : Float, center2 : Vector3, radius2 : Float) -> Bool

    Check collision between two spheres.

    clear_background

    fn clear_background(color : Color) -> Unit

    Set background color (framebuffer clear color).

    clear_window_state

    fn clear_window_state(flags : Int) -> Unit

    Clear window configuration state flags.

    close_audio_device

    fn close_audio_device() -> Unit

    Close the audio device and context.

    close_window

    fn close_window() -> Unit

    Close window and unload OpenGL context.

    codepoint_to_utf8

    fn codepoint_to_utf8(codepoint : Int) -> Bytes

    Encode one codepoint into UTF-8 byte array.

    color_alpha

    fn color_alpha(color : Color, alpha : Float) -> Color

    Get color with alpha applied, alpha goes from 0.0 to 1.0.

    color_alpha_blend

    fn color_alpha_blend(dst : Color, src : Color, tint : Color) -> Color

    Get src alpha-blended into dst color with tint.

    color_brightness

    fn color_brightness(color : Color, factor : Float) -> Color

    Get color with brightness correction, brightness factor goes from -1.0 to 1.0.

    color_contrast

    fn color_contrast(color : Color, contrast : Float) -> Color

    Get color with contrast correction, contrast values between -1.0 and 1.0.

    color_from_hsv

    fn color_from_hsv(hue : Float, saturation : Float, value : Float) -> Color

    Get a Color from HSV values, hue [0..360], saturation/value [0..1].

    color_from_normalized

    fn color_from_normalized(normalized : Vector4) -> Color

    Get Color from normalized values [0..1].

    color_is_equal

    fn color_is_equal(col1 : Color, col2 : Color) -> Bool

    Check if two colors are equal.

    color_lerp

    fn color_lerp(color1 : Color, color2 : Color, factor : Float) -> Color

    Get color lerp interpolation between two colors, factor [0.0..1.0].

    color_normalize

    fn color_normalize(color : Color) -> Vector4

    Get Color normalized as float [0..1].

    color_tint

    fn color_tint(color : Color, tint : Color) -> Color

    Get color multiplied with another color.

    color_to_hsv

    fn color_to_hsv(color : Color) -> Vector3

    Get HSV values for a Color, hue [0..360], saturation/value [0..1].

    color_to_int

    fn color_to_int(color : Color) -> Int

    Get hexadecimal value for a Color (0xRRGGBBAA).

    compress_data

    fn compress_data(data : Bytes) -> Bytes

    Compress data (DEFLATE algorithm).

    compute_crc32

    fn compute_crc32(data : Bytes) -> Int

    Compute CRC32 hash code.

    compute_md5

    fn compute_md5(data : Bytes) -> Bytes

    Compute MD5 hash code, returns 16 bytes.

    compute_sha1

    fn compute_sha1(data : Bytes) -> Bytes

    Compute SHA1 hash code, returns 20 bytes.

    darkblue

    let darkblue : Color

    Dark blue color.

    darkbrown

    let darkbrown : Color

    Dark brown color.

    darkgray

    let darkgray : Color

    Dark gray color.

    darkgreen

    let darkgreen : Color

    Dark green color.

    darkpurple

    let darkpurple : Color

    Dark purple color.

    decode_data_base64

    fn decode_data_base64(data : String) -> Bytes

    Decode Base64 string data.

    decompress_data

    fn decompress_data(comp_data : Bytes) -> Bytes

    Decompress data (DEFLATE algorithm).

    detach_audio_mixed_processor

    fn detach_audio_mixed_processor(processor : FuncRef[(
    AudioBuffer
    , UInt) -> Unit]) -> Unit

    Detach audio stream processor from the entire audio pipeline.

    detach_music_stream_processor

    fn detach_music_stream_processor(music : Music, processor : FuncRef[(
    AudioBuffer
    , UInt) -> Unit]) -> Unit

    Detach audio stream processor from a music stream.

    directory_exists

    fn directory_exists(dir_path : String) -> Bool

    Check if a directory path exists.

    disable_cursor

    fn disable_cursor() -> Unit

    Disables cursor (lock cursor).

    disable_event_waiting

    fn disable_event_waiting() -> Unit

    draw_billboard

    fn draw_billboard(camera : Camera3D, texture : Texture, position : Vector3, scale : Float, tint : Color) -> Unit

    Draw a billboard texture.

    draw_billboard_pro

    fn draw_billboard_pro(camera : Camera3D, texture : Texture, source : Rectangle, position : Vector3, up : Vector3, size : Vector2, origin : Vector2, rotation : Float, tint : Color) -> Unit

    Draw a billboard texture defined by source and rotation.

    draw_billboard_rec

    fn draw_billboard_rec(camera : Camera3D, texture : Texture, source : Rectangle, position : Vector3, size : Vector2, tint : Color) -> Unit

    Draw a billboard texture defined by source.

    draw_bounding_box

    fn draw_bounding_box(box_ : BoundingBox, color : Color) -> Unit

    Draw bounding box (wires).

    draw_capsule

    fn draw_capsule(start_pos : Vector3, end_pos : Vector3, radius : Float, slices : Int, rings : Int, color : Color) -> Unit

    Draw a capsule with the center of its sphere caps at startPos and endPos.

    draw_capsule_wires

    fn draw_capsule_wires(start_pos : Vector3, end_pos : Vector3, radius : Float, slices : Int, rings : Int, color : Color) -> Unit

    Draw capsule wireframe with the center of its sphere caps at startPos and endPos.

    draw_circle

    fn draw_circle(center_x : Int, center_y : Int, radius : Float, color : Color) -> Unit

    Draw a color-filled circle.

    draw_circle_3d

    fn draw_circle_3d(center : Vector3, radius : Float, rot_axis : Vector3, rot_angle : Float, color : Color) -> Unit

    Draw a circle in 3D world space.

    draw_circle_gradient

    fn draw_circle_gradient(center : Vector2, radius : Float, inner : Color, outer : Color) -> Unit

    Draw a gradient-filled circle.

    draw_circle_lines

    fn draw_circle_lines(center_x : Int, center_y : Int, radius : Float, color : Color) -> Unit

    Draw circle outline.

    draw_circle_lines_v

    fn draw_circle_lines_v(center : Vector2, radius : Float, color : Color) -> Unit

    Draw circle outline (Vector version).

    draw_circle_sector

    fn draw_circle_sector(center : Vector2, radius : Float, start_angle : Float, end_angle : Float, segments : Int, color : Color) -> Unit

    Draw a piece of a circle.

    draw_circle_sector_lines

    fn draw_circle_sector_lines(center : Vector2, radius : Float, start_angle : Float, end_angle : Float, segments : Int, color : Color) -> Unit

    Draw circle sector outline.

    draw_circle_v

    fn draw_circle_v(center : Vector2, radius : Float, color : Color) -> Unit

    Draw a color-filled circle (Vector version).

    draw_cube

    fn draw_cube(position : Vector3, width : Float, height : Float, length : Float, color : Color) -> Unit

    Draw cube.

    draw_cube_v

    fn draw_cube_v(position : Vector3, size : Vector3, color : Color) -> Unit

    Draw cube (Vector version).

    draw_cube_wires

    fn draw_cube_wires(position : Vector3, width : Float, height : Float, length : Float, color : Color) -> Unit

    Draw cube wires.

    draw_cube_wires_v

    fn draw_cube_wires_v(position : Vector3, size : Vector3, color : Color) -> Unit

    Draw cube wires (Vector version).

    draw_cylinder

    fn draw_cylinder(position : Vector3, radius_top : Float, radius_bottom : Float, height : Float, slices : Int, color : Color) -> Unit

    Draw a cylinder/cone.

    draw_cylinder_ex

    fn draw_cylinder_ex(start_pos : Vector3, end_pos : Vector3, start_radius : Float, end_radius : Float, sides : Int, color : Color) -> Unit

    Draw a cylinder with base at startPos and top at endPos.

    draw_cylinder_wires

    fn draw_cylinder_wires(position : Vector3, radius_top : Float, radius_bottom : Float, height : Float, slices : Int, color : Color) -> Unit

    Draw a cylinder/cone wires.

    draw_cylinder_wires_ex

    fn draw_cylinder_wires_ex(start_pos : Vector3, end_pos : Vector3, start_radius : Float, end_radius : Float, sides : Int, color : Color) -> Unit

    Draw a cylinder wires with base at startPos and top at endPos.

    draw_ellipse

    fn draw_ellipse(center_x : Int, center_y : Int, radius_h : Float, radius_v : Float, color : Color) -> Unit

    Draw ellipse.

    draw_ellipse_lines

    fn draw_ellipse_lines(center_x : Int, center_y : Int, radius_h : Float, radius_v : Float, color : Color) -> Unit

    Draw ellipse outline.

    draw_fps

    fn draw_fps(pos_x : Int, pos_y : Int) -> Unit

    Draw current FPS.

    draw_grid

    fn draw_grid(slices : Int, spacing : Float) -> Unit

    Draw a grid (centered at (0, 0, 0)).

    draw_line

    fn draw_line(start_x : Int, start_y : Int, end_x : Int, end_y : Int, color : Color) -> Unit

    Draw a line.

    draw_line_3d

    fn draw_line_3d(start_pos : Vector3, end_pos : Vector3, color : Color) -> Unit

    Draw a line in 3D world space.

    draw_line_bezier

    fn draw_line_bezier(start_pos : Vector2, end_pos : Vector2, thick : Float, color : Color) -> Unit

    Draw line segment cubic-bezier in-out interpolation.

    draw_line_ex

    fn draw_line_ex(start_pos : Vector2, end_pos : Vector2, thick : Float, color : Color) -> Unit

    Draw a line (using triangles/quads).

    draw_line_strip

    fn draw_line_strip(points : Array[Vector2], color : Color) -> Unit

    Draw lines sequence (using gl lines).

    draw_line_v

    fn draw_line_v(start_pos : Vector2, end_pos : Vector2, color : Color) -> Unit

    Draw a line (using gl lines).

    draw_pixel

    fn draw_pixel(pos_x : Int, pos_y : Int, color : Color) -> Unit

    Draw a pixel using geometry. Can be slow, use with care.

    draw_pixel_v

    fn draw_pixel_v(position : Vector2, color : Color) -> Unit

    Draw a pixel using geometry (Vector version). Can be slow, use with care.

    draw_plane

    fn draw_plane(center : Vector3, size : Vector2, color : Color) -> Unit

    Draw a plane XZ.

    draw_point_3d

    fn draw_point_3d(position : Vector3, color : Color) -> Unit

    Draw a point in 3D space, actually a small line.

    draw_poly

    fn draw_poly(center : Vector2, sides : Int, radius : Float, rotation : Float, color : Color) -> Unit

    Draw a regular polygon (Vector version).

    draw_poly_lines

    fn draw_poly_lines(center : Vector2, sides : Int, radius : Float, rotation : Float, color : Color) -> Unit

    Draw a polygon outline of n sides.

    draw_poly_lines_ex

    fn draw_poly_lines_ex(center : Vector2, sides : Int, radius : Float, rotation : Float, line_thick : Float, color : Color) -> Unit

    Draw a polygon outline of n sides with extended parameters.

    draw_ray

    fn draw_ray(ray : Ray, color : Color) -> Unit

    Draw a ray line.

    draw_rectangle

    fn draw_rectangle(pos_x : Int, pos_y : Int, width : Int, height : Int, color : Color) -> Unit

    Draw a color-filled rectangle.

    draw_rectangle_gradient_ex

    fn draw_rectangle_gradient_ex(rec : Rectangle, top_left : Color, bottom_left : Color, top_right : Color, bottom_right : Color) -> Unit

    Draw a gradient-filled rectangle with custom vertex colors.

    draw_rectangle_gradient_h

    fn draw_rectangle_gradient_h(pos_x : Int, pos_y : Int, width : Int, height : Int, left : Color, right : Color) -> Unit

    Draw a horizontal-gradient-filled rectangle.

    draw_rectangle_gradient_v

    fn draw_rectangle_gradient_v(pos_x : Int, pos_y : Int, width : Int, height : Int, top : Color, bottom : Color) -> Unit

    Draw a vertical-gradient-filled rectangle.

    draw_rectangle_lines

    fn draw_rectangle_lines(pos_x : Int, pos_y : Int, width : Int, height : Int, color : Color) -> Unit

    Draw rectangle outline.

    draw_rectangle_lines_ex

    fn draw_rectangle_lines_ex(rec : Rectangle, line_thick : Float, color : Color) -> Unit

    Draw rectangle outline with extended parameters.

    draw_rectangle_pro

    fn draw_rectangle_pro(rec : Rectangle, origin : Vector2, rotation : Float, color : Color) -> Unit

    Draw a color-filled rectangle with pro parameters.

    draw_rectangle_rec

    fn draw_rectangle_rec(rec : Rectangle, color : Color) -> Unit

    Draw a color-filled rectangle.

    draw_rectangle_rounded

    fn draw_rectangle_rounded(rec : Rectangle, roundness : Float, segments : Int, color : Color) -> Unit

    Draw rectangle with rounded edges.

    draw_rectangle_rounded_lines

    fn draw_rectangle_rounded_lines(rec : Rectangle, roundness : Float, segments : Int, color : Color) -> Unit

    Draw rectangle lines with rounded edges.

    draw_rectangle_rounded_lines_ex

    fn draw_rectangle_rounded_lines_ex(rec : Rectangle, roundness : Float, segments : Int, line_thick : Float, color : Color) -> Unit

    Draw rectangle with rounded edges outline.

    draw_rectangle_v

    fn draw_rectangle_v(position : Vector2, size : Vector2, color : Color) -> Unit

    Draw a color-filled rectangle (Vector version).

    draw_ring

    fn draw_ring(center : Vector2, inner_radius : Float, outer_radius : Float, start_angle : Float, end_angle : Float, segments : Int, color : Color) -> Unit

    Draw ring.

    draw_ring_lines

    fn draw_ring_lines(center : Vector2, inner_radius : Float, outer_radius : Float, start_angle : Float, end_angle : Float, segments : Int, color : Color) -> Unit

    Draw ring outline.

    draw_sphere

    fn draw_sphere(center : Vector3, radius : Float, color : Color) -> Unit

    Draw sphere.

    draw_sphere_ex

    fn draw_sphere_ex(center : Vector3, radius : Float, rings : Int, slices : Int, color : Color) -> Unit

    Draw sphere with extended parameters.

    draw_sphere_wires

    fn draw_sphere_wires(center : Vector3, radius : Float, rings : Int, slices : Int, color : Color) -> Unit

    Draw sphere wires.

    draw_spline_basis

    fn draw_spline_basis(points : Array[Vector2], thick : Float, color : Color) -> Unit

    Draw spline: B-Spline, minimum 4 points.

    draw_spline_bezier_cubic

    fn draw_spline_bezier_cubic(points : Array[Vector2], thick : Float, color : Color) -> Unit

    Draw spline: Cubic Bezier, minimum 4 points (2 control points).

    draw_spline_bezier_quadratic

    fn draw_spline_bezier_quadratic(points : Array[Vector2], thick : Float, color : Color) -> Unit

    Draw spline: Quadratic Bezier, minimum 3 points (1 control point).

    draw_spline_catmull_rom

    fn draw_spline_catmull_rom(points : Array[Vector2], thick : Float, color : Color) -> Unit

    Draw spline: Catmull-Rom, minimum 4 points.

    draw_spline_linear

    fn draw_spline_linear(points : Array[Vector2], thick : Float, color : Color) -> Unit

    Draw spline: Linear, minimum 2 points.

    draw_spline_segment_basis

    fn draw_spline_segment_basis(p1 : Vector2, p2 : Vector2, p3 : Vector2, p4 : Vector2, thick : Float, color : Color) -> Unit

    Draw spline segment: B-Spline, 4 points.

    draw_spline_segment_bezier_cubic

    fn draw_spline_segment_bezier_cubic(p1 : Vector2, p2 : Vector2, p3 : Vector2, p4 : Vector2, thick : Float, color : Color) -> Unit

    Draw spline segment: Cubic Bezier, 2 points, 2 control points.

    draw_spline_segment_bezier_quadratic

    fn draw_spline_segment_bezier_quadratic(p1 : Vector2, p2 : Vector2, p3 : Vector2, thick : Float, color : Color) -> Unit

    Draw spline segment: Quadratic Bezier, 2 points, 1 control point.

    draw_spline_segment_catmull_rom

    fn draw_spline_segment_catmull_rom(p1 : Vector2, p2 : Vector2, p3 : Vector2, p4 : Vector2, thick : Float, color : Color) -> Unit

    Draw spline segment: Catmull-Rom, 4 points.

    draw_spline_segment_linear

    fn draw_spline_segment_linear(p1 : Vector2, p2 : Vector2, thick : Float, color : Color) -> Unit

    Draw spline segment: Linear, 2 points.

    draw_text

    fn draw_text(text : String, pos_x : Int, pos_y : Int, font_size : Int, color : Color) -> Unit

    Draw text (using default font).

    draw_triangle

    fn draw_triangle(v1 : Vector2, v2 : Vector2, v3 : Vector2, color : Color) -> Unit

    Draw a color-filled triangle (vertex in counter-clockwise order!).

    draw_triangle_3d

    fn draw_triangle_3d(v1 : Vector3, v2 : Vector3, v3 : Vector3, color : Color) -> Unit

    Draw a color-filled triangle (vertex in counter-clockwise order!).

    draw_triangle_fan

    fn draw_triangle_fan(points : Array[Vector2], color : Color) -> Unit

    Draw a triangle fan defined by points (first vertex is the center).

    draw_triangle_lines

    fn draw_triangle_lines(v1 : Vector2, v2 : Vector2, v3 : Vector2, color : Color) -> Unit

    Draw triangle outline (vertex in counter-clockwise order!).

    draw_triangle_strip

    fn draw_triangle_strip(points : Array[Vector2], color : Color) -> Unit

    Draw a triangle strip defined by points.

    draw_triangle_strip_3d

    fn draw_triangle_strip_3d(points : Array[Vector3], color : Color) -> Unit

    Draw a triangle strip defined by points in 3D space.

    enable_cursor

    fn enable_cursor() -> Unit

    Enables cursor (unlock cursor).

    enable_event_waiting

    fn enable_event_waiting() -> Unit

    encode_data_base64

    fn encode_data_base64(data : Bytes) -> String

    Encode data to Base64 string.

    end_blend_mode

    fn end_blend_mode() -> Unit

    End blending mode (reset to default: alpha blending).

    end_drawing

    fn end_drawing() -> Unit

    End canvas drawing and swap buffers (double buffering).

    end_mode_2d

    fn end_mode_2d() -> Unit

    Ends 2D mode with custom camera.

    end_mode_3d

    fn end_mode_3d() -> Unit

    Ends 3D mode and returns to default 2D orthographic mode.

    end_scissor_mode

    fn end_scissor_mode() -> Unit

    End scissor mode.

    end_shader_mode

    fn end_shader_mode() -> Unit

    End custom shader drawing (use default shader).

    end_texture_mode

    fn end_texture_mode() -> Unit

    Ends drawing to render texture.

    end_vr_stereo_mode

    fn end_vr_stereo_mode() -> Unit

    End stereo rendering (requires VR simulator).

    export_data_as_code

    fn export_data_as_code(data : Bytes, data_size : Int, file_name : String) -> Bool

    Export data to code (.h), returns true on success.

    fade

    fn fade(color : Color, alpha : Float) -> Color

    Get color with alpha applied, alpha goes from 0.0 to 1.0.

    file_exists

    fn file_exists(file_name : String) -> Bool

    Check if file exists.

    file_path_list_get

    fn file_path_list_get(files : FilePathList, index : Int) -> String

    Get a filepath from the list by index.

    gen_font_texture_mipmaps

    #deprecated("Use font.texture().gen_mipmaps() instead")
    fn gen_font_texture_mipmaps(font : Font) -> Unit

    Generate mipmaps for font texture atlas.

    get_application_directory

    fn get_application_directory() -> String

    Get the directory of the running application.

    get_camera_matrix

    fn get_camera_matrix(camera : Camera3D) -> Matrix

    Get camera transform matrix (view matrix).

    get_camera_matrix_2d

    fn get_camera_matrix_2d(camera : Camera2D) -> Matrix

    Get camera 2D transform matrix.

    get_char_pressed

    fn get_char_pressed() -> Int

    Get char pressed (unicode), call it multiple times for chars queued, returns 0 when the queue is empty.

    get_clipboard_image

    fn get_clipboard_image() -> Image

    Get clipboard image content.

    get_clipboard_text

    fn get_clipboard_text() -> String

    Get clipboard text content.

    get_codepoint

    fn get_codepoint(text : String) -> (Int, Int)

    Get next codepoint in a UTF-8 encoded string, returns (codepoint, byte_size).

    get_codepoint_count

    fn get_codepoint_count(text : String) -> Int

    Get total number of codepoints in a UTF-8 encoded string.

    get_codepoint_next

    fn get_codepoint_next(text : String) -> (Int, Int)

    Get next codepoint in a UTF-8 encoded string, returns (codepoint, byte_size).

    get_codepoint_previous

    fn get_codepoint_previous(text : String) -> (Int, Int)

    Get previous codepoint in a UTF-8 encoded string, returns (codepoint, byte_size).

    get_collision_rec

    fn get_collision_rec(rec1 : Rectangle, rec2 : Rectangle) -> Rectangle

    Get collision rectangle for two rectangles collision.

    get_color

    fn get_color(hex_value : Int) -> Color

    Get Color structure from hexadecimal value.

    get_current_monitor

    fn get_current_monitor() -> Int

    Get current monitor where window is placed.

    get_directory_path

    fn get_directory_path(file_path : String) -> String

    Get full path for a given fileName with path.

    get_file_extension

    fn get_file_extension(file_name : String) -> String

    Get pointer to extension for a filename string (includes dot: '.png').

    get_file_length

    fn get_file_length(file_name : String) -> Int

    Get file length in bytes.

    get_file_mod_time

    fn get_file_mod_time(file_name : String) -> Int

    Get file modification time (last write time).

    get_file_name

    fn get_file_name(file_path : String) -> String

    Get filename for a path string.

    get_file_name_without_ext

    fn get_file_name_without_ext(file_path : String) -> String

    Get filename string without extension.

    get_fps

    fn get_fps() -> Int

    Get current FPS.

    get_frame_time

    fn get_frame_time() -> Float

    Get time in seconds for last frame drawn (delta time).

    get_gamepad_axis_count

    fn get_gamepad_axis_count(gamepad : Int) -> Int

    Get gamepad axis count for a gamepad.

    get_gamepad_axis_movement

    fn get_gamepad_axis_movement(gamepad : Int, axis : Int) -> Float

    Get axis movement value for a gamepad axis.

    get_gamepad_button_pressed

    fn get_gamepad_button_pressed() -> Int

    Get the last gamepad button pressed.

    get_gamepad_name

    fn get_gamepad_name(gamepad : Int) -> String

    Get gamepad internal name id.

    get_gesture_detected

    fn get_gesture_detected() -> Int

    Get latest detected gesture.

    get_gesture_drag_angle

    fn get_gesture_drag_angle() -> Float

    Get gesture drag angle.

    get_gesture_drag_vector

    fn get_gesture_drag_vector() -> Vector2

    Get gesture drag vector.

    get_gesture_hold_duration

    fn get_gesture_hold_duration() -> Float

    Get gesture hold time in seconds.

    get_gesture_pinch_angle

    fn get_gesture_pinch_angle() -> Float

    Get gesture pinch angle.

    get_gesture_pinch_vector

    fn get_gesture_pinch_vector() -> Vector2

    Get gesture pinch delta.

    get_key_pressed

    fn get_key_pressed() -> Int

    Get key pressed (keycode), call it multiple times for keys queued, returns 0 when the queue is empty.

    get_master_volume

    fn get_master_volume() -> Float

    Get master volume (listener).

    get_monitor_count

    fn get_monitor_count() -> Int

    Get number of connected monitors.

    get_monitor_height

    fn get_monitor_height(monitor : Int) -> Int

    Get specified monitor height (current video mode used by monitor).

    get_monitor_name

    fn get_monitor_name(monitor : Int) -> String

    Get the human-readable, UTF-8 encoded name of the specified monitor.

    get_monitor_physical_height

    fn get_monitor_physical_height(monitor : Int) -> Int

    Get specified monitor physical height in millimetres.

    get_monitor_physical_width

    fn get_monitor_physical_width(monitor : Int) -> Int

    Get specified monitor physical width in millimetres.

    get_monitor_position

    fn get_monitor_position(monitor : Int) -> Vector2

    Get specified monitor position.

    get_monitor_refresh_rate

    fn get_monitor_refresh_rate(monitor : Int) -> Int

    Get specified monitor refresh rate.

    get_monitor_width

    fn get_monitor_width(monitor : Int) -> Int

    Get specified monitor width (current video mode used by monitor).

    get_mouse_delta

    fn get_mouse_delta() -> Vector2

    Get mouse delta between frames.

    get_mouse_position

    fn get_mouse_position() -> Vector2

    Get mouse position XY.

    get_mouse_wheel_move

    fn get_mouse_wheel_move() -> Float

    Get mouse wheel movement for X or Y, whichever is larger.

    get_mouse_wheel_move_v

    fn get_mouse_wheel_move_v() -> Vector2

    Get mouse wheel movement for both X and Y.

    get_mouse_x

    fn get_mouse_x() -> Int

    Get mouse position X.

    get_mouse_y

    fn get_mouse_y() -> Int

    Get mouse position Y.

    get_pixel_data_size

    fn get_pixel_data_size(width : Int, height : Int, format : Int) -> Int

    Get pixel data size in bytes for certain format.

    get_prev_directory_path

    fn get_prev_directory_path(dir_path : String) -> String

    Get previous directory path for a given path.

    get_random_value

    fn get_random_value(min : Int, max : Int) -> Int

    Get a random value between min and max (both included).

    get_ray_collision_box

    fn get_ray_collision_box(ray : Ray, box_ : BoundingBox) -> RayCollision

    Get collision info between ray and box.

    get_ray_collision_mesh

    fn get_ray_collision_mesh(ray : Ray, mesh : Mesh, transform : Matrix) -> RayCollision

    Get collision info between ray and mesh.

    get_ray_collision_quad

    fn get_ray_collision_quad(ray : Ray, p1 : Vector3, p2 : Vector3, p3 : Vector3, p4 : Vector3) -> RayCollision

    Get collision info between ray and quad.

    get_ray_collision_sphere

    fn get_ray_collision_sphere(ray : Ray, center : Vector3, radius : Float) -> RayCollision

    Get collision info between ray and sphere.

    get_ray_collision_triangle

    fn get_ray_collision_triangle(ray : Ray, p1 : Vector3, p2 : Vector3, p3 : Vector3) -> RayCollision

    Get collision info between ray and triangle.

    get_render_height

    fn get_render_height() -> Int

    Get current render height (it considers HiDPI).

    get_render_width

    fn get_render_width() -> Int

    Get current render width (it considers HiDPI).

    get_screen_height

    fn get_screen_height() -> Int

    Get current screen height.

    get_screen_to_world_2d

    fn get_screen_to_world_2d(position : Vector2, camera : Camera2D) -> Vector2

    Get the world space position for a 2D camera screen space position.

    get_screen_to_world_ray

    fn get_screen_to_world_ray(position : Vector2, camera : Camera3D) -> Ray

    Get a ray trace from screen position (i.e mouse).

    get_screen_to_world_ray_ex

    fn get_screen_to_world_ray_ex(position : Vector2, camera : Camera3D, width : Int, height : Int) -> Ray

    Get a ray trace from screen position (i.e mouse) in a viewport.

    get_screen_width

    fn get_screen_width() -> Int

    Get current screen width.

    get_shapes_texture_rectangle

    fn get_shapes_texture_rectangle() -> Rectangle

    Get texture source rectangle that is used for shapes drawing.

    get_spline_point_basis

    fn get_spline_point_basis(p1 : Vector2, p2 : Vector2, p3 : Vector2, p4 : Vector2, t : Float) -> Vector2

    Get (evaluate) spline point: B-Spline.

    get_spline_point_bezier_cubic

    fn get_spline_point_bezier_cubic(start_pos : Vector2, start_control_pos : Vector2, end_control_pos : Vector2, end_pos : Vector2, t : Float) -> Vector2

    Get (evaluate) spline point: Cubic Bezier.

    get_spline_point_bezier_quad

    fn get_spline_point_bezier_quad(start_pos : Vector2, control_pos : Vector2, end_pos : Vector2, t : Float) -> Vector2

    Get (evaluate) spline point: Quadratic Bezier.

    get_spline_point_catmull_rom

    fn get_spline_point_catmull_rom(p1 : Vector2, p2 : Vector2, p3 : Vector2, p4 : Vector2, t : Float) -> Vector2

    Get (evaluate) spline point: Catmull-Rom.

    get_spline_point_linear

    fn get_spline_point_linear(start_pos : Vector2, end_pos : Vector2, t : Float) -> Vector2

    Get (evaluate) spline point: Linear.

    get_time

    fn get_time() -> Double

    Get elapsed time in seconds since InitWindow().

    get_touch_point_count

    fn get_touch_point_count() -> Int

    Get number of touch points.

    get_touch_point_id

    fn get_touch_point_id(index : Int) -> Int

    Get touch point identifier for given index.

    get_touch_position

    fn get_touch_position(index : Int) -> Vector2

    Get touch position XY for a touch point index (relative to screen size).

    get_touch_x

    fn get_touch_x() -> Int

    Get touch position X for touch point 0 (relative to screen size).

    get_touch_y

    fn get_touch_y() -> Int

    Get touch position Y for touch point 0 (relative to screen size).

    get_window_position

    fn get_window_position() -> Vector2

    Get window position XY on monitor.

    get_window_scale_dpi

    fn get_window_scale_dpi() -> Vector2

    Get window scale DPI factor.

    get_working_directory

    fn get_working_directory() -> String

    Get current working directory.

    get_world_to_screen

    fn get_world_to_screen(position : Vector3, camera : Camera3D) -> Vector2

    Get the screen space position for a 3D world space position.

    get_world_to_screen_2d

    fn get_world_to_screen_2d(position : Vector2, camera : Camera2D) -> Vector2

    Get the screen space position for a 2D camera world space position.

    get_world_to_screen_ex

    fn get_world_to_screen_ex(position : Vector3, camera : Camera3D, width : Int, height : Int) -> Vector2

    Get size position for a 3D world space position.

    gold

    let gold : Color

    Gold color.

    gray

    let gray : Color

    Gray color.

    green

    let green : Color

    Green color.

    hide_cursor

    fn hide_cursor() -> Unit

    Hides cursor.

    init_audio_device

    fn init_audio_device() -> Unit

    Initialize audio device and context.

    init_window

    fn init_window(width : Int, height : Int, title : String) -> Unit

    Initialize window and OpenGL context.

    is_audio_device_ready

    fn is_audio_device_ready() -> Bool

    Check if audio device has been initialized successfully.

    is_cursor_hidden

    fn is_cursor_hidden() -> Bool

    Check if cursor is not visible.

    is_cursor_on_screen

    fn is_cursor_on_screen() -> Bool

    Check if cursor is on the screen.

    is_file_dropped

    fn is_file_dropped() -> Bool

    Check if a file has been dropped into window.

    is_file_extension

    fn is_file_extension(file_name : String, ext : String) -> Bool

    Check file extension (including point: .png, .wav).

    is_file_name_valid

    fn is_file_name_valid(file_name : String) -> Bool

    Check if fileName is valid for the platform/OS.

    is_gamepad_available

    fn is_gamepad_available(gamepad : Int) -> Bool

    Check if a gamepad is available.

    is_gamepad_button_down

    fn is_gamepad_button_down(gamepad : Int, button : Int) -> Bool

    Check if a gamepad button is being pressed.

    is_gamepad_button_pressed

    fn is_gamepad_button_pressed(gamepad : Int, button : Int) -> Bool

    Check if a gamepad button has been pressed once.

    is_gamepad_button_released

    fn is_gamepad_button_released(gamepad : Int, button : Int) -> Bool

    Check if a gamepad button has been released once.

    is_gamepad_button_up

    fn is_gamepad_button_up(gamepad : Int, button : Int) -> Bool

    Check if a gamepad button is NOT being pressed.

    is_gesture_detected

    fn is_gesture_detected(gesture : Int) -> Bool

    Check if a gesture have been detected.

    is_key_down

    fn is_key_down(key : Int) -> Bool

    Check if a key is being pressed.

    is_key_pressed

    fn is_key_pressed(key : Int) -> Bool

    Check if a key has been pressed once.

    is_key_pressed_repeat

    fn is_key_pressed_repeat(key : Int) -> Bool

    Check if a key has been pressed again.

    is_key_released

    fn is_key_released(key : Int) -> Bool

    Check if a key has been released once.

    is_key_up

    fn is_key_up(key : Int) -> Bool

    Check if a key is NOT being pressed.

    is_mouse_button_down

    fn is_mouse_button_down(button : Int) -> Bool

    Check if a mouse button is being pressed.

    is_mouse_button_pressed

    fn is_mouse_button_pressed(button : Int) -> Bool

    Check if a mouse button has been pressed once.

    is_mouse_button_released

    fn is_mouse_button_released(button : Int) -> Bool

    Check if a mouse button has been released once.

    is_mouse_button_up

    fn is_mouse_button_up(button : Int) -> Bool

    Check if a mouse button is NOT being pressed.

    is_path_file

    fn is_path_file(path : String) -> Bool

    Check if a given path is a file or a directory.

    is_window_focused

    fn is_window_focused() -> Bool

    Check if window is currently focused.

    is_window_fullscreen

    fn is_window_fullscreen() -> Bool

    Check if window is currently fullscreen.

    is_window_hidden

    fn is_window_hidden() -> Bool

    Check if window is currently hidden.

    is_window_maximized

    fn is_window_maximized() -> Bool

    Check if window is currently maximized.

    is_window_minimized

    fn is_window_minimized() -> Bool

    Check if window is currently minimized.

    is_window_ready

    fn is_window_ready() -> Bool

    Check if window has been initialized successfully.

    is_window_resized

    fn is_window_resized() -> Bool

    Check if window has been resized last frame.

    is_window_state

    fn is_window_state(flag : Int) -> Bool

    Check if one specific window flag is enabled.

    lightgray

    let lightgray : Color

    Light gray color.

    lime

    let lime : Color

    Lime color.

    load_codepoints

    fn load_codepoints(text : String) -> Array[Int]

    Load all codepoints from a UTF-8 text string.

    load_directory_files

    fn load_directory_files(dir_path : String) -> FilePathList

    Load directory filepaths.

    load_directory_files_ex

    fn load_directory_files_ex(base_path : String, filter : String, scan_subdirs : Bool) -> FilePathList

    Load directory filepaths with extension filtering and recursive directory scan.

    load_file_data

    fn load_file_data(file_name : String) -> Bytes

    Load file data as byte array (read).

    load_file_text

    fn load_file_text(file_name : String) -> String

    Load text data from file (read).

    load_image_anim

    #deprecated("Use Image::load_anim instead (returns (Image, Int) with frame count)")
    fn load_image_anim(file_name : String) -> Image

    Load image sequence from file (frames appended to image.data).

    load_image_anim_from_memory

    #deprecated("Use Image::load_anim_from_memory instead (returns (Image, Int) with frame count)")
    fn load_image_anim_from_memory(file_type : String, file_data : Bytes, data_size : Int) -> Image

    Load image sequence from memory buffer.

    load_random_sequence

    fn load_random_sequence(count : Int, min : Int, max : Int) -> Array[Int]

    Load random values sequence, no values repeated.

    load_utf8

    fn load_utf8(codepoints : Array[Int]) -> Bytes

    Load UTF-8 text encoded from codepoints array.

    magenta

    let magenta : Color

    Magenta color.

    make_directory

    fn make_directory(dir_path : String) -> Int

    Create directories (including full path requested), returns 0 on success.

    maroon

    let maroon : Color

    Maroon color.

    maximize_window

    fn maximize_window() -> Unit

    Set window state: maximized, if resizable.

    measure_text

    fn measure_text(text : String, font_size : Int) -> Int

    Measure string width for default font.

    minimize_window

    fn minimize_window() -> Unit

    Set window state: minimized, if resizable.

    open_url

    fn open_url(url : String) -> Unit

    Open URL with default system browser (if available).

    orange

    let orange : Color

    Orange color.

    pink

    let pink : Color

    Pink color.

    play_automation_event

    fn play_automation_event(event : AutomationEvent) -> Unit

    Play a recorded automation event.

    poll_input_events

    fn poll_input_events() -> Unit

    purple

    let purple : Color

    Purple color.

    raywhite

    let raywhite : Color

    Raylib white color (off-white).

    red

    let red : Color

    Red color.

    restore_window

    fn restore_window() -> Unit

    Set window state: not minimized/maximized.

    rl_active_draw_buffers

    #deprecated("Use @rl.active_draw_buffers from tonyfettes/raylib/rl instead")
    fn rl_active_draw_buffers(count : Int) -> Unit

    @deprecated Activate multiple draw color buffers.

    rl_active_texture_slot

    #deprecated("Use @rl.active_texture_slot from tonyfettes/raylib/rl instead")
    fn rl_active_texture_slot(slot : Int) -> Unit

    @deprecated Select and active a texture slot.

    rl_begin

    #deprecated("Use @rl.begin from tonyfettes/raylib/rl instead")
    fn rl_begin(mode : Int) -> Unit

    @deprecated Initialize drawing mode (how to organize vertex).

    rl_bind_framebuffer

    #deprecated("Use @rl.bind_framebuffer from tonyfettes/raylib/rl instead")
    fn rl_bind_framebuffer(target : UInt, fbo : UInt) -> Unit

    @deprecated Bind framebuffer (FBO).

    rl_blit_framebuffer

    #deprecated("Use @rl.blit_framebuffer from tonyfettes/raylib/rl instead")
    fn rl_blit_framebuffer(src_x : Int, src_y : Int, src_w : Int, src_h : Int, dst_x : Int, dst_y : Int, dst_w : Int, dst_h : Int, buffer_mask : Int) -> Unit

    @deprecated Blit active framebuffer to main framebuffer.

    rl_check_render_batch_limit

    #deprecated("Use @rl.check_render_batch_limit from tonyfettes/raylib/rl instead")
    fn rl_check_render_batch_limit(v_count : Int) -> Bool

    @deprecated Check internal buffer overflow for a given number of vertex.

    rl_clear_screen_buffers

    #deprecated("Use @rl.clear_screen_buffers from tonyfettes/raylib/rl instead")
    fn rl_clear_screen_buffers() -> Unit

    @deprecated Clear used screen buffers (color and depth).

    rl_color4ub

    #deprecated("Use @rl.color4ub from tonyfettes/raylib/rl instead")
    fn rl_color4ub(r : Byte, g : Byte, b : Byte, a : Byte) -> Unit

    @deprecated Define one vertex (color) - 4 byte.

    rl_disable_backface_culling

    #deprecated("Use @rl.disable_backface_culling from tonyfettes/raylib/rl instead")
    fn rl_disable_backface_culling() -> Unit

    @deprecated Disable backface culling.

    rl_disable_color_blend

    #deprecated("Use @rl.disable_color_blend from tonyfettes/raylib/rl instead")
    fn rl_disable_color_blend() -> Unit

    @deprecated Disable color blending.

    rl_disable_depth_mask

    #deprecated("Use @rl.disable_depth_mask from tonyfettes/raylib/rl instead")
    fn rl_disable_depth_mask() -> Unit

    @deprecated Disable depth write.

    rl_disable_depth_test

    #deprecated("Use @rl.disable_depth_test from tonyfettes/raylib/rl instead")
    fn rl_disable_depth_test() -> Unit

    @deprecated Disable depth test.

    rl_disable_framebuffer

    #deprecated("Use @rl.disable_framebuffer from tonyfettes/raylib/rl instead")
    fn rl_disable_framebuffer() -> Unit

    @deprecated Disable render texture (fbo), return to default framebuffer.

    rl_disable_shader

    #deprecated("Use @rl.disable_shader from tonyfettes/raylib/rl instead")
    fn rl_disable_shader() -> Unit

    @deprecated Disable shader program.

    rl_disable_texture

    #deprecated("Use @rl.disable_texture from tonyfettes/raylib/rl instead")
    fn rl_disable_texture() -> Unit

    @deprecated Disable texture.

    rl_draw_render_batch_active

    #deprecated("Use @rl.draw_render_batch_active from tonyfettes/raylib/rl instead")
    fn rl_draw_render_batch_active() -> Unit

    @deprecated Update and draw internal render batch.

    rl_enable_backface_culling

    #deprecated("Use @rl.enable_backface_culling from tonyfettes/raylib/rl instead")
    fn rl_enable_backface_culling() -> Unit

    @deprecated Enable backface culling.

    rl_enable_color_blend

    #deprecated("Use @rl.enable_color_blend from tonyfettes/raylib/rl instead")
    fn rl_enable_color_blend() -> Unit

    @deprecated Enable color blending.

    rl_enable_depth_mask

    #deprecated("Use @rl.enable_depth_mask from tonyfettes/raylib/rl instead")
    fn rl_enable_depth_mask() -> Unit

    @deprecated Enable depth write.

    rl_enable_depth_test

    #deprecated("Use @rl.enable_depth_test from tonyfettes/raylib/rl instead")
    fn rl_enable_depth_test() -> Unit

    @deprecated Enable depth test.

    rl_enable_framebuffer

    #deprecated("Use @rl.enable_framebuffer from tonyfettes/raylib/rl instead")
    fn rl_enable_framebuffer(id : UInt) -> Unit

    @deprecated Enable render texture (fbo).

    rl_enable_shader

    #deprecated("Use @rl.enable_shader from tonyfettes/raylib/rl instead")
    fn rl_enable_shader(id : UInt) -> Unit

    @deprecated Enable shader program.

    rl_enable_texture

    #deprecated("Use @rl.enable_texture from tonyfettes/raylib/rl instead")
    fn rl_enable_texture(id : UInt) -> Unit

    @deprecated Enable texture.

    rl_end

    #deprecated("Use @rl.end_ from tonyfettes/raylib/rl instead")
    fn rl_end() -> Unit

    @deprecated Finish vertex providing.

    rl_framebuffer_attach

    #deprecated("Use @rl.framebuffer_attach from tonyfettes/raylib/rl instead")
    fn rl_framebuffer_attach(fbo_id : UInt, tex_id : UInt, attach_type : Int, tex_type : Int, mip_level : Int) -> Unit

    @deprecated Attach texture/renderbuffer to a framebuffer.

    rl_framebuffer_complete

    #deprecated("Use @rl.framebuffer_complete from tonyfettes/raylib/rl instead")
    fn rl_framebuffer_complete(id : UInt) -> Bool

    @deprecated Verify framebuffer is complete.

    rl_get_framebuffer_height

    #deprecated("Use @rl.get_framebuffer_height from tonyfettes/raylib/rl instead")
    fn rl_get_framebuffer_height() -> Int

    @deprecated Get default framebuffer height.

    rl_get_framebuffer_width

    #deprecated("Use @rl.get_framebuffer_width from tonyfettes/raylib/rl instead")
    fn rl_get_framebuffer_width() -> Int

    @deprecated Get default framebuffer width.

    rl_get_location_uniform

    #deprecated("Use @rl.get_location_uniform from tonyfettes/raylib/rl instead")
    fn rl_get_location_uniform(shader_id : UInt, uniform_name : String) -> Int

    @deprecated Get shader location uniform.

    rl_get_matrix_modelview

    #deprecated("Use @rl.get_matrix_modelview from tonyfettes/raylib/rl instead")
    fn rl_get_matrix_modelview() -> Matrix

    @deprecated Get internal modelview matrix.

    rl_get_matrix_projection

    #deprecated("Use @rl.get_matrix_projection from tonyfettes/raylib/rl instead")
    fn rl_get_matrix_projection() -> Matrix

    @deprecated Get internal projection matrix.

    rl_get_shader_id_default

    #deprecated("Use @rl.get_shader_id_default from tonyfettes/raylib/rl instead")
    fn rl_get_shader_id_default() -> UInt

    @deprecated Get default shader id.

    rl_load_draw_cube

    #deprecated("Use @rl.load_draw_cube from tonyfettes/raylib/rl instead")
    fn rl_load_draw_cube() -> Unit

    @deprecated Load and draw a cube.

    rl_load_draw_quad

    #deprecated("Use @rl.load_draw_quad from tonyfettes/raylib/rl instead")
    fn rl_load_draw_quad() -> Unit

    @deprecated Load and draw a quad.

    rl_load_framebuffer

    #deprecated("Use @rl.load_framebuffer from tonyfettes/raylib/rl instead")
    fn rl_load_framebuffer() -> UInt

    @deprecated Load an empty framebuffer.

    rl_load_texture

    #deprecated("Use @rl.load_texture from tonyfettes/raylib/rl instead")
    fn rl_load_texture(width : Int, height : Int, format : Int, mipmap_count : Int) -> UInt

    @deprecated Load texture data.

    rl_load_texture_depth

    #deprecated("Use @rl.load_texture_depth from tonyfettes/raylib/rl instead")
    fn rl_load_texture_depth(width : Int, height : Int, use_render_buffer : Bool) -> UInt

    @deprecated Load depth texture/renderbuffer (to be attached to fbo).

    rl_mult_matrixf

    #deprecated("Use @rl.mult_matrixf from tonyfettes/raylib/rl instead")
    fn rl_mult_matrixf(matf : Bytes) -> Unit

    @deprecated Multiply the current matrix by another matrix.

    rl_normal3f

    #deprecated("Use @rl.normal3f from tonyfettes/raylib/rl instead")
    fn rl_normal3f(x : Float, y : Float, z : Float) -> Unit

    @deprecated Define one vertex (normal) - 3 float.

    rl_pop_matrix

    #deprecated("Use @rl.pop_matrix from tonyfettes/raylib/rl instead")
    fn rl_pop_matrix() -> Unit

    @deprecated Pop latest inserted matrix from stack.

    rl_push_matrix

    #deprecated("Use @rl.push_matrix from tonyfettes/raylib/rl instead")
    fn rl_push_matrix() -> Unit

    @deprecated Push the current matrix to stack.

    rl_rotatef

    #deprecated("Use @rl.rotatef from tonyfettes/raylib/rl instead")
    fn rl_rotatef(angle : Float, x : Float, y : Float, z : Float) -> Unit

    @deprecated Multiply the current matrix by a rotation matrix.

    rl_scalef

    #deprecated("Use @rl.scalef from tonyfettes/raylib/rl instead")
    fn rl_scalef(x : Float, y : Float, z : Float) -> Unit

    @deprecated Multiply the current matrix by a scaling matrix.

    rl_set_blend_factors

    #deprecated("Use @rl.set_blend_factors from tonyfettes/raylib/rl instead")
    fn rl_set_blend_factors(gl_src_factor : Int, gl_dst_factor : Int, gl_equation : Int) -> Unit

    @deprecated Set blending mode factor and equation (using OpenGL factors).

    rl_set_blend_mode

    #deprecated("Use @rl.set_blend_mode from tonyfettes/raylib/rl instead")
    fn rl_set_blend_mode(mode : Int) -> Unit

    @deprecated Set blending mode.

    rl_set_texture

    #deprecated("Use @rl.set_texture from tonyfettes/raylib/rl instead")
    fn rl_set_texture(id : UInt) -> Unit

    @deprecated Set current texture for render batch and check buffers limits.

    rl_set_uniform

    #deprecated("Use @rl.set_uniform from tonyfettes/raylib/rl instead")
    fn rl_set_uniform(loc_index : Int, value : Bytes, uniform_type : Int, count : Int) -> Unit

    @deprecated Set shader value uniform.

    rl_set_uniform_sampler

    #deprecated("Use @rl.set_uniform_sampler from tonyfettes/raylib/rl instead")
    fn rl_set_uniform_sampler(loc_index : Int, texture_id : UInt) -> Unit

    @deprecated Set shader value sampler.

    rl_tex_coord2f

    #deprecated("Use @rl.tex_coord2f from tonyfettes/raylib/rl instead")
    fn rl_tex_coord2f(x : Float, y : Float) -> Unit

    @deprecated Define one vertex (texture coordinate) - 2 float.

    rl_translatef

    #deprecated("Use @rl.translatef from tonyfettes/raylib/rl instead")
    fn rl_translatef(x : Float, y : Float, z : Float) -> Unit

    @deprecated Multiply the current matrix by a translation matrix.

    rl_unload_framebuffer

    #deprecated("Use @rl.unload_framebuffer from tonyfettes/raylib/rl instead")
    fn rl_unload_framebuffer(id : UInt) -> Unit

    @deprecated Delete framebuffer from GPU.

    rl_unload_texture

    #deprecated("Use @rl.unload_texture from tonyfettes/raylib/rl instead")
    fn rl_unload_texture(id : UInt) -> Unit

    @deprecated Unload texture from GPU memory.

    rl_vertex2f

    #deprecated("Use @rl.vertex2f from tonyfettes/raylib/rl instead")
    fn rl_vertex2f(x : Float, y : Float) -> Unit

    @deprecated Define one vertex (position) - 2 float.

    rl_vertex3f

    #deprecated("Use @rl.vertex3f from tonyfettes/raylib/rl instead")
    fn rl_vertex3f(x : Float, y : Float, z : Float) -> Unit

    @deprecated Define one vertex (position) - 3 float.

    rl_viewport

    #deprecated("Use @rl.viewport from tonyfettes/raylib/rl instead")
    fn rl_viewport(x : Int, y : Int, width : Int, height : Int) -> Unit

    @deprecated Set the viewport area.

    save_file_data

    fn save_file_data(file_name : String, data : Bytes, data_size : Int) -> Bool

    Save data to file from byte array (write), returns true on success.

    save_file_text

    fn save_file_text(file_name : String, text : String) -> Bool

    Save text data to file (write), returns true on success.

    set_audio_stream_buffer_size_default

    fn set_audio_stream_buffer_size_default(size : Int) -> Unit

    Default size for new audio streams.

    set_automation_event_base_frame

    fn set_automation_event_base_frame(frame : Int) -> Unit

    Set automation event internal base frame to start recording.

    set_clipboard_text

    fn set_clipboard_text(text : String) -> Unit

    Set clipboard text content.

    set_config_flags

    fn set_config_flags(flags : Int) -> Unit

    Setup init configuration flags (view FLAGS).

    set_exit_key

    fn set_exit_key(key : Int) -> Unit

    Set a custom key to exit program (default is ESC).

    set_font_texture_filter

    #deprecated("Use font.texture().set_filter(filter) instead")
    fn set_font_texture_filter(font : Font, filter : Int) -> Unit

    Set texture filtering mode for font texture atlas.

    set_gamepad_mappings

    fn set_gamepad_mappings(mappings : String) -> Int

    Set internal gamepad mappings (SDL_GameControllerDB).

    set_gamepad_vibration

    fn set_gamepad_vibration(gamepad : Int, left_motor : Float, right_motor : Float, duration : Float) -> Unit

    set_gestures_enabled

    fn set_gestures_enabled(flags : Int) -> Unit

    Enable a set of gestures using flags.

    set_master_volume

    fn set_master_volume(volume : Float) -> Unit

    Set master volume (listener).

    set_mouse_cursor

    fn set_mouse_cursor(cursor : Int) -> Unit

    Set mouse cursor.

    set_mouse_offset

    fn set_mouse_offset(offset_x : Int, offset_y : Int) -> Unit

    Set mouse offset.

    set_mouse_position

    fn set_mouse_position(x : Int, y : Int) -> Unit

    Set mouse position XY.

    set_mouse_scale

    fn set_mouse_scale(scale_x : Float, scale_y : Float) -> Unit

    Set mouse scaling.

    set_random_seed

    fn set_random_seed(seed : Int) -> Unit

    Set the seed for the random number generator.

    set_shader_value

    #deprecated("Use Shader::set_value instead")
    fn set_shader_value(shader : Shader, loc_index : Int, value : Bytes, uniform_type : Int) -> Unit

    Set shader uniform value (deprecated, use Shader::set_value instead).

    set_shader_value_v

    #deprecated("Use Shader::set_value_v instead")
    fn set_shader_value_v(shader : Shader, loc_index : Int, value : Bytes, uniform_type : Int, count : Int) -> Unit

    Set shader uniform value vector (deprecated, use Shader::set_value_v instead).

    set_target_fps

    fn set_target_fps(fps : Int) -> Unit

    Set target FPS (maximum).

    set_text_line_spacing

    fn set_text_line_spacing(spacing : Int) -> Unit

    Set vertical line spacing when drawing with line-breaks.

    set_trace_log_level

    fn set_trace_log_level(log_level : Int) -> Unit

    set_window_focused

    fn set_window_focused() -> Unit

    Set window focused.

    set_window_icon

    fn set_window_icon(image : Image) -> Unit

    Set icon for window (single image, RGBA 32bit).

    set_window_max_size

    fn set_window_max_size(width : Int, height : Int) -> Unit

    Set window maximum dimensions (for FLAG_WINDOW_RESIZABLE).

    set_window_min_size

    fn set_window_min_size(width : Int, height : Int) -> Unit

    Set window minimum dimensions (for FLAG_WINDOW_RESIZABLE).

    set_window_monitor

    fn set_window_monitor(monitor : Int) -> Unit

    set_window_opacity

    fn set_window_opacity(opacity : Float) -> Unit

    Set window opacity [0.0f..1.0f].

    set_window_position

    fn set_window_position(x : Int, y : Int) -> Unit

    Set window position on screen.

    set_window_size

    fn set_window_size(width : Int, height : Int) -> Unit

    Set window dimensions.

    set_window_state

    fn set_window_state(flags : Int) -> Unit

    Set window configuration state using flags.

    set_window_title

    fn set_window_title(title : String) -> Unit

    Set title for window.

    show_cursor

    fn show_cursor() -> Unit

    Shows cursor.

    skyblue

    let skyblue : Color

    Sky blue color.

    start_automation_event_recording

    fn start_automation_event_recording() -> Unit

    Start recording automation events (AutomationEventList must be set).

    stop_automation_event_recording

    fn stop_automation_event_recording() -> Unit

    Stop recording automation events.

    swap_screen_buffer

    fn swap_screen_buffer() -> Unit

    take_screenshot

    fn take_screenshot(file_name : String) -> Unit

    Take a screenshot of current screen (filename extension defines format).

    toggle_borderless_windowed

    fn toggle_borderless_windowed() -> Unit

    Toggle window state: borderless windowed, resizes window to match monitor resolution.

    toggle_fullscreen

    fn toggle_fullscreen() -> Unit

    Toggle window state: fullscreen/windowed, resizes monitor to match window resolution.

    trace_log

    fn trace_log(log_level : Int, text : String) -> Unit

    Show trace log messages (LOG_DEBUG, LOG_INFO, LOG_WARNING, LOG_ERROR...).

    unload_directory_files

    fn unload_directory_files(files : FilePathList) -> Unit

    Unload filepaths loaded with load_directory_files.

    unload_dropped_files

    fn unload_dropped_files(files : FilePathList) -> Unit

    Unload dropped filepaths.

    update_camera

    fn update_camera(camera : Camera3D, mode : Int) -> Camera3D

    Update camera position for selected mode.

    update_camera_pro

    fn update_camera_pro(camera : Camera3D, movement : Vector3, rotation : Vector3, zoom : Float) -> Camera3D

    Update camera movement/rotation.

    upload_mesh

    #deprecated("Use Mesh::upload instead")
    fn upload_mesh(mesh : Mesh, dynamic : Int) -> Unit

    Upload mesh vertex data in GPU and provide VAO/VBO ids.

    violet

    let violet : Color

    Violet color.

    vr_stereo_config_left_lens_center

    #deprecated("Use VrStereoConfig::left_lens_center instead")
    fn vr_stereo_config_left_lens_center(config : VrStereoConfig) -> Bytes

    Get VR left lens center (deprecated: use VrStereoConfig::left_lens_center instead).

    vr_stereo_config_left_screen_center

    #deprecated("Use VrStereoConfig::left_screen_center instead")
    fn vr_stereo_config_left_screen_center(config : VrStereoConfig) -> Bytes

    Get VR left screen center (deprecated: use VrStereoConfig::left_screen_center instead).

    vr_stereo_config_right_lens_center

    #deprecated("Use VrStereoConfig::right_lens_center instead")
    fn vr_stereo_config_right_lens_center(config : VrStereoConfig) -> Bytes

    Get VR right lens center (deprecated: use VrStereoConfig::right_lens_center instead).

    vr_stereo_config_right_screen_center

    #deprecated("Use VrStereoConfig::right_screen_center instead")
    fn vr_stereo_config_right_screen_center(config : VrStereoConfig) -> Bytes

    Get VR right screen center (deprecated: use VrStereoConfig::right_screen_center instead).

    vr_stereo_config_scale

    #deprecated("Use VrStereoConfig::scale instead")
    fn vr_stereo_config_scale(config : VrStereoConfig) -> Bytes

    Get VR distortion scale (deprecated: use VrStereoConfig::scale instead).

    vr_stereo_config_scale_in

    #deprecated("Use VrStereoConfig::scale_in instead")
    fn vr_stereo_config_scale_in(config : VrStereoConfig) -> Bytes

    Get VR distortion scale in (deprecated: use VrStereoConfig::scale_in instead).

    wait_time

    fn wait_time(seconds : Double) -> Unit

    white

    let white : Color

    White color.

    window_should_close

    fn window_should_close() -> Bool

    Check if application should close (KEY_ESCAPE pressed or windows close icon clicked).

    yellow

    let yellow : Color

    Yellow color.