Sign in

    raylib

    MoonBit bindings for raylib

    Download zip
    Version
    0.3.1
    License
    MIT
    Last updated
    6 months ago
    Downloads
    38

    #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.)
    • 329 included examples — ports of official raylib examples plus original games and demos
    • 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:

    # Build a specific example moon -C examples build --target native raylib_core_basic_window/ # Run a specific example moon -C examples run --target native raylib_demo/ # Run the bunnymark benchmark moon -C examples run --target native raylib_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

    AudioStream

    type AudioStream

    AudioStream::attach_processor

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

    AudioStream::detach_processor

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

    AudioStream::is_playing

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

    AudioStream::is_processed

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

    AudioStream::is_valid

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

    AudioStream::load

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

    AudioStream::pause

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

    AudioStream::play

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

    AudioStream::resume_

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

    AudioStream::set_pan

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

    AudioStream::set_pitch

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

    AudioStream::set_volume

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

    AudioStream::stop

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

    AudioStream::unload

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

    AudioStream::update

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

    AutomationEvent

    pub struct AutomationEvent {
    frame : Int
    type_ : Int
    params : FixedArray[Int]
    }

    AutomationEvent::from_bytes

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

    AutomationEvent::to_bytes

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

    AutomationEventList

    type AutomationEventList

    AutomationEventList::count

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

    AutomationEventList::export_

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

    AutomationEventList::get

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

    AutomationEventList::load

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

    AutomationEventList::set

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

    AutomationEventList::unload

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

    BoundingBox

    pub struct BoundingBox {
    min : Vector3
    max : Vector3
    }

    impl Eq for BoundingBox
    impl Show for BoundingBox

    BoundingBox::from_bytes

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

    BoundingBox::new

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

    BoundingBox::to_bytes

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

    Camera2D

    pub struct Camera2D {
    offset : Vector2
    target : Vector2
    rotation : Float
    zoom : Float
    }

    impl Eq for Camera2D
    impl Show for Camera2D

    Camera2D::from_bytes

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

    Camera2D::new

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

    Camera2D::to_bytes

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

    Camera3D

    pub struct Camera3D {
    position : Vector3
    target : Vector3
    up : Vector3
    fovy : Float
    projection : Int
    }

    impl Eq for Camera3D
    impl Show for Camera3D

    Camera3D::from_bytes

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

    Camera3D::new

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

    Camera3D::to_bytes

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

    Color

    pub struct Color {
    r : Byte
    g : Byte
    b : Byte
    a : Byte
    }

    impl Eq for Color
    impl Show for Color

    Color::from_bytes

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

    Color::new

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

    Color::to_bytes

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

    FilePathList

    type FilePathList

    FilePathList::count

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

    FilePathList::load_dropped

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

    FloatArray

    type FloatArray

    FloatArray::length

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

    FloatArray::op_get

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

    FloatArray::op_set

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

    Font

    type Font

    impl Default for Font

    Font::base_size

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

    Font::build_from_data

    #as_free_fn(build_font_from_data)
    fn Font::build_from_data(file_data : Bytes, data_size : Int, font_size : Int, font_type : Int, padding : Int, pack_method : Int) -> Font

    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

    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

    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

    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

    Font::export_as_code

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

    Font::get_default

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

    Font::glyph_atlas_rec

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

    Font::glyph_count

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

    Font::glyph_index

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

    Font::glyph_info

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

    Font::glyph_padding

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

    Font::is_valid

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

    Font::load

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

    Font::load_ex

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

    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

    Font::load_from_atlas

    #as_free_fn(load_font_from_atlas)
    fn Font::load_from_atlas(pixel_data : Bytes, pixel_data_size : Int, img_width : Int, img_height : Int, img_format : Int, base_size : Int, glyph_count : Int, font_type : Int, recs_data : Bytes, glyphs_data : Bytes) -> Font

    Font::load_from_image

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

    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

    Font::measure_text

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

    Font::texture

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

    Font::unload

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

    GlyphInfo

    pub struct GlyphInfo {
    value : Int
    offset_x : Int
    offset_y : Int
    advance_x : Int
    }

    impl Eq for GlyphInfo
    impl Show for GlyphInfo

    GlyphInfo::from_bytes

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

    GlyphInfoArray

    type GlyphInfoArray

    GlyphInfoArray::count

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

    GlyphInfoArray::gen_image_atlas

    #as_free_fn(gen_image_font_atlas)
    fn GlyphInfoArray::gen_image_atlas(self : GlyphInfoArray, font_size : Int, padding : Int, pack_method : Int) -> Image

    GlyphInfoArray::get

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

    GlyphInfoArray::load

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

    GlyphInfoArray::unload

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

    Image

    type Image

    Image::adjust_brightness

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

    Image::adjust_contrast

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

    Image::alpha_border

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

    Image::alpha_clear

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

    Image::alpha_crop

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

    Image::alpha_mask

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

    Image::alpha_premultiply

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

    Image::blur_gaussian

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

    Image::clear_background

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

    Image::color_grayscale

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

    Image::color_invert

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

    Image::color_replace

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

    Image::color_tint

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

    Image::copy

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

    Image::crop

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

    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

    Image::draw

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

    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

    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

    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

    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

    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

    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

    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

    Image::draw_pixel

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

    Image::draw_pixel_v

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

    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

    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

    Image::draw_rectangle_rec

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

    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

    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

    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

    Image::draw_triangle

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

    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

    Image::draw_triangle_fan

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

    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

    Image::draw_triangle_strip

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

    Image::export_

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

    Image::export_as_code

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

    Image::export_to_memory

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

    Image::flip_horizontal

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

    Image::flip_vertical

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

    Image::format

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

    Image::from_channel

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

    Image::from_image

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

    Image::gen_cellular

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

    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

    Image::gen_color

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

    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

    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

    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

    Image::gen_mipmaps

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

    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

    Image::gen_text

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

    Image::gen_white_noise

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

    Image::get_color

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

    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

    Image::is_valid

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

    Image::kernel_convolution

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

    Image::load

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

    Image::load_anim

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

    Image::load_anim_from_memory

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

    Image::load_colors

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

    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

    Image::load_from_screen

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

    Image::load_from_texture

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

    Image::load_palette

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

    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

    Image::mipmaps

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

    Image::resize

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

    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

    Image::resize_nn

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

    Image::rotate

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

    Image::rotate_ccw

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

    Image::rotate_cw

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

    Image::set_format

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

    Image::text

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

    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

    Image::to_pot

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

    Image::to_texture

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

    Image::to_texture_cubemap

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

    Image::unload

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

    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

    Material

    type Material

    impl Default for Material

    Material::is_valid

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

    Material::load_default

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

    Material::maps

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

    Material::set_map_color

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

    Material::set_map_value

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

    Material::set_shader

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

    Material::set_texture

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

    Material::shader

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

    Material::unload

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

    MaterialMap

    type MaterialMap

    MaterialMap::color

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

    MaterialMap::set_color

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

    MaterialMap::set_texture

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

    MaterialMap::set_value

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

    MaterialMap::texture

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

    MaterialMap::value

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

    MaterialMapArray

    type MaterialMapArray

    MaterialMapArray::count

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

    MaterialMapArray::op_get

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

    MaterialMapArray::op_set

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

    MaterialsArray

    type MaterialsArray

    MaterialsArray::count

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

    MaterialsArray::get

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

    MaterialsArray::load

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

    MaterialsArray::unload

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

    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
    }

    impl Eq for Matrix
    impl Show for Matrix

    Matrix::add

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

    Matrix::decompose

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

    Matrix::determinant

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

    Matrix::from_bytes

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

    Matrix::frustum

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

    Matrix::identity

    fn Matrix::identity() -> Matrix

    Matrix::invert

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

    Matrix::look_at

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

    Matrix::multiply

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

    Matrix::ortho

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

    Matrix::perspective

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

    Matrix::rotate

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

    Matrix::rotate_x

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

    Matrix::rotate_xyz

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

    Matrix::rotate_y

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

    Matrix::rotate_z

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

    Matrix::rotate_zyx

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

    Matrix::scale

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

    Matrix::subtract

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

    Matrix::to_bytes

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

    Matrix::trace

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

    Matrix::translate

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

    Matrix::transpose

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

    MatrixArray

    type MatrixArray

    MatrixArray::length

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

    MatrixArray::op_get

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

    MatrixArray::op_set

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

    Mesh

    type Mesh

    Mesh::bone_matrices

    #as_free_fn(get_mesh_bone_matrices)
    fn Mesh::bone_matrices(self : Mesh) -> MatrixArray?

    Mesh::bounding_box

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

    Mesh::colors

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

    Mesh::draw

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

    Mesh::draw_instanced

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

    Mesh::export_

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

    Mesh::export_as_code

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

    Mesh::gen_cone

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

    Mesh::gen_cube

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

    Mesh::gen_cubicmap

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

    Mesh::gen_cylinder

    #as_free_fn(gen_mesh_cylinder)
    fn Mesh::gen_cylinder(radius : Float, height : Float, slices : Int) -> 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

    Mesh::gen_heightmap

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

    Mesh::gen_hemisphere

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

    Mesh::gen_knot

    #as_free_fn(gen_mesh_knot)
    fn Mesh::gen_knot(radius : Float, size : Float, rad_seg : Int, sides : Int) -> 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

    Mesh::gen_poly

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

    Mesh::gen_sphere

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

    Mesh::gen_tangents

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

    Mesh::gen_torus

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

    Mesh::indices

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

    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

    Mesh::normals

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

    Mesh::tangents

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

    Mesh::texcoords

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

    Mesh::texcoords2

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

    Mesh::triangle_count

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

    Mesh::unload

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

    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

    Mesh::upload

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

    Mesh::vertex_count

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

    Mesh::vertices

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

    Model

    type Model

    Model::bind_pose_rotation

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

    Model::bind_pose_translation

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

    Model::bone_count

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

    Model::bone_name

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

    Model::bone_parent

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

    Model::bounding_box

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

    Model::draw

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

    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

    Model::draw_points

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

    Model::draw_points_ex

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

    Model::draw_wires

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

    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

    Model::is_animation_valid

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

    Model::is_valid

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

    Model::load

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

    Model::load_from_mesh

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

    Model::material

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

    Model::material_count

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

    Model::mesh

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

    Model::mesh_count

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

    Model::set_material_shader

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

    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

    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

    Model::set_transform

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

    Model::transform

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

    Model::unload

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

    Model::update_animation

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

    Model::update_animation_bones

    #as_free_fn(update_model_animation_bones)
    fn Model::update_animation_bones(self : Model, anims : ModelAnimations, index : Int, frame : Int) -> Unit

    ModelAnimations

    type ModelAnimations

    ModelAnimations::bone_count

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

    ModelAnimations::bone_parent

    #as_free_fn(get_model_animation_bone_parent)
    fn ModelAnimations::bone_parent(self : ModelAnimations, anim_index : Int, bone_index : Int) -> Int

    ModelAnimations::count

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

    ModelAnimations::frame_count

    #as_free_fn(get_model_animation_frame_count)
    fn ModelAnimations::frame_count(self : ModelAnimations, anim_index : Int) -> Int

    ModelAnimations::frame_pose_rotation

    #as_free_fn(get_model_animation_frame_pose_rotation)
    fn ModelAnimations::frame_pose_rotation(self : ModelAnimations, anim_index : Int, frame : Int, bone_index : Int) -> Vector4

    ModelAnimations::frame_pose_translation

    #as_free_fn(get_model_animation_frame_pose_translation)
    fn ModelAnimations::frame_pose_translation(self : ModelAnimations, anim_index : Int, frame : Int, bone_index : Int) -> Vector3

    ModelAnimations::load

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

    ModelAnimations::unload

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

    Music

    type Music

    Music::is_playing

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

    Music::is_valid

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

    Music::load

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

    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

    Music::pause

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

    Music::play

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

    Music::resume_

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

    Music::seek

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

    Music::set_pan

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

    Music::set_pitch

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

    Music::set_volume

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

    Music::stop

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

    Music::time_length

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

    Music::time_played

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

    Music::unload

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

    Music::update

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

    NPatchInfo

    pub struct NPatchInfo {
    source : Rectangle
    left : Int
    top : Int
    right : Int
    bottom : Int
    layout : Int
    }

    impl Eq for NPatchInfo
    impl Show for NPatchInfo

    NPatchInfo::from_bytes

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

    NPatchInfo::new

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

    NPatchInfo::to_bytes

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

    Ray

    pub struct Ray {
    position : Vector3
    direction : Vector3
    }

    impl Eq for Ray
    impl Show for Ray

    Ray::from_bytes

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

    Ray::new

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

    Ray::to_bytes

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

    RayCollision

    pub struct RayCollision {
    hit : Bool
    distance : Float
    point : Vector3
    normal : Vector3
    }

    impl Eq for RayCollision

    RayCollision::from_bytes

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

    RayCollision::new

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

    Rectangle

    pub struct Rectangle {
    x : Float
    y : Float
    width : Float
    height : Float
    }

    impl Eq for Rectangle
    impl Show for Rectangle

    Rectangle::from_bytes

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

    Rectangle::new

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

    Rectangle::to_bytes

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

    RenderTexture

    type RenderTexture

    RenderTexture::begin_mode

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

    RenderTexture::depth

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

    RenderTexture::depth_id

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

    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

    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

    RenderTexture::draw_rec

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

    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

    RenderTexture::height

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

    RenderTexture::id

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

    RenderTexture::is_valid

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

    RenderTexture::load

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

    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

    RenderTexture::set_filter

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

    RenderTexture::texture

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

    RenderTexture::unload

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

    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

    Shader

    type Shader

    Shader::begin_mode

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

    Shader::get_location

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

    Shader::get_location_attrib

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

    Shader::id

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

    Shader::is_valid

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

    Shader::load

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

    Shader::load_from_memory

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

    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

    Shader::set_value

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

    Shader::set_value_matrix

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

    Shader::set_value_texture

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

    Shader::set_value_v

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

    Shader::unload

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

    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)
    }

    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])
    }

    Sound

    type Sound

    Sound::is_playing

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

    Sound::is_valid

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

    Sound::load

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

    Sound::load_alias

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

    Sound::pause

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

    Sound::play

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

    Sound::resume_

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

    Sound::set_pan

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

    Sound::set_pitch

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

    Sound::set_volume

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

    Sound::stop

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

    Sound::unload

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

    Sound::unload_alias

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

    Sound::update

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

    Texture

    type Texture

    Texture::draw

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

    Texture::draw_ex

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

    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

    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

    Texture::draw_rec

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

    Texture::draw_v

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

    Texture::format

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

    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

    Texture::gen_mipmaps

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

    Texture::get_shapes

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

    Texture::height

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

    Texture::id

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

    Texture::is_valid

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

    Texture::load

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

    Texture::mipmaps

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

    Texture::new

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

    Texture::set_filter

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

    Texture::set_shapes

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

    Texture::set_wrap

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

    Texture::unload

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

    Texture::update

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

    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

    Texture::update_rec

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

    Texture::width

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

    UByteArray

    type UByteArray

    UByteArray::length

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

    UByteArray::op_get

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

    UByteArray::op_set

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

    UShortArray

    type UShortArray

    UShortArray::length

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

    UShortArray::op_get

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

    UShortArray::op_set

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

    Vector2

    pub struct Vector2 {
    x : Float
    y : Float
    }

    impl Eq for Vector2
    impl Show for Vector2

    Vector2::add

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

    Vector2::add_value

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

    Vector2::angle

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

    Vector2::clamp

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

    Vector2::clamp_value

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

    Vector2::distance

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

    Vector2::distance_sqr

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

    Vector2::divide

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

    Vector2::dot_product

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

    Vector2::equals

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

    Vector2::from_bytes

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

    Vector2::invert

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

    Vector2::length

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

    Vector2::length_sqr

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

    Vector2::lerp

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

    Vector2::line_angle

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

    Vector2::max

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

    Vector2::min

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

    Vector2::move_towards

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

    Vector2::multiply

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

    Vector2::negate

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

    Vector2::new

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

    Vector2::normalize

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

    Vector2::one

    fn Vector2::one() -> Vector2

    Vector2::reflect

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

    Vector2::refract

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

    Vector2::rotate

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

    Vector2::scale

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

    Vector2::subtract

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

    Vector2::subtract_value

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

    Vector2::to_bytes

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

    Vector2::transform

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

    Vector2::zero

    fn Vector2::zero() -> Vector2

    Vector3

    pub struct Vector3 {
    x : Float
    y : Float
    z : Float
    }

    impl Eq for Vector3
    impl Show for Vector3

    Vector3::add

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

    Vector3::add_value

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

    Vector3::angle

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

    Vector3::barycenter

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

    Vector3::clamp

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

    Vector3::cross_product

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

    Vector3::distance

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

    Vector3::distance_sqr

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

    Vector3::dot_product

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

    Vector3::equals

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

    Vector3::from_bytes

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

    Vector3::invert

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

    Vector3::length

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

    Vector3::length_sqr

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

    Vector3::lerp

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

    Vector3::max

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

    Vector3::min

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

    Vector3::move_towards

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

    Vector3::multiply

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

    Vector3::new

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

    Vector3::normalize

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

    Vector3::one

    fn Vector3::one() -> Vector3

    Vector3::ortho_normalize

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

    Vector3::perpendicular

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

    Vector3::project

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

    Vector3::reflect

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

    Vector3::refract

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

    Vector3::reject

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

    Vector3::rotate_by_axis_angle

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

    Vector3::rotate_by_quaternion

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

    Vector3::scale

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

    Vector3::subtract

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

    Vector3::subtract_value

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

    Vector3::to_bytes

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

    Vector3::transform

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

    Vector3::unproject

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

    Vector3::zero

    fn Vector3::zero() -> Vector3

    Vector4

    pub struct Vector4 {
    x : Float
    y : Float
    z : Float
    w : Float
    }

    impl Eq for Vector4
    impl Show for Vector4

    Vector4::add

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

    Vector4::add_value

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

    Vector4::divide

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

    Vector4::equals

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

    Vector4::from_bytes

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

    Vector4::length

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

    Vector4::max

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

    Vector4::min

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

    Vector4::multiply

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

    Vector4::negate

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

    Vector4::new

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

    Vector4::normalize

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

    Vector4::one

    fn Vector4::one() -> Vector4

    Vector4::quat_add

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

    Vector4::quat_add_value

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

    Vector4::quat_cubic_hermite_spline

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

    Vector4::quat_divide

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

    Vector4::quat_equals

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

    Vector4::quat_from_axis_angle

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

    Vector4::quat_from_euler

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

    Vector4::quat_from_matrix

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

    Vector4::quat_from_vector3_to_vector3

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

    Vector4::quat_identity

    fn Vector4::quat_identity() -> Vector4

    Vector4::quat_invert

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

    Vector4::quat_length

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

    Vector4::quat_lerp

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

    Vector4::quat_multiply

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

    Vector4::quat_nlerp

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

    Vector4::quat_normalize

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

    Vector4::quat_scale

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

    Vector4::quat_slerp

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

    Vector4::quat_subtract

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

    Vector4::quat_subtract_value

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

    Vector4::quat_to_axis_angle

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

    Vector4::quat_to_euler

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

    Vector4::quat_to_matrix

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

    Vector4::quat_transform

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

    Vector4::scale

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

    Vector4::subtract

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

    Vector4::subtract_value

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

    Vector4::to_bytes

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

    Vector4::zero

    fn Vector4::zero() -> Vector4

    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]
    }

    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

    VrDeviceInfo::to_bytes

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

    VrStereoConfig

    type VrStereoConfig

    VrStereoConfig::begin_mode

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

    VrStereoConfig::left_lens_center

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

    VrStereoConfig::left_screen_center

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

    VrStereoConfig::load

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

    VrStereoConfig::right_lens_center

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

    VrStereoConfig::right_screen_center

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

    VrStereoConfig::scale

    VrStereoConfig::scale_in

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

    VrStereoConfig::unload

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

    Wave

    type Wave

    Wave::channels

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

    Wave::copy

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

    Wave::crop

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

    Wave::export_

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

    Wave::export_as_code

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

    Wave::format

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

    Wave::frame_count

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

    Wave::is_valid

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

    Wave::load

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

    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

    Wave::load_samples

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

    Wave::load_sound

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

    Wave::sample_rate

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

    Wave::sample_size

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

    Wave::unload

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

    BlendAdditive

    let BlendAdditive : Int

    BlendAlpha

    let BlendAlpha : Int

    BlendCustom

    let BlendCustom : Int

    BlendMultiplied

    let BlendMultiplied : Int

    CameraCustom

    let CameraCustom : Int

    CameraFirstPerson

    let CameraFirstPerson : Int

    CameraFree

    let CameraFree : Int

    CameraOrbital

    let CameraOrbital : Int

    CameraOrthographic

    let CameraOrthographic : Int

    CameraPerspective

    let CameraPerspective : Int

    CameraThirdPerson

    let CameraThirdPerson : Int

    CubemapLayoutAutoDetect

    let CubemapLayoutAutoDetect : Int

    CubemapLayoutCrossFourByThree

    let CubemapLayoutCrossFourByThree : Int

    CubemapLayoutCrossThreeByFour

    let CubemapLayoutCrossThreeByFour : Int

    CubemapLayoutLineHorizontal

    let CubemapLayoutLineHorizontal : Int

    CubemapLayoutLineVertical

    let CubemapLayoutLineVertical : Int

    FlagBorderlessWindowedMode

    let FlagBorderlessWindowedMode : Int

    FlagFullscreenMode

    let FlagFullscreenMode : Int

    FlagInterlacedHint

    let FlagInterlacedHint : Int

    FlagMsaa4xHint

    let FlagMsaa4xHint : Int

    FlagVsyncHint

    let FlagVsyncHint : Int

    FlagWindowAlwaysRun

    let FlagWindowAlwaysRun : Int

    FlagWindowHidden

    let FlagWindowHidden : Int

    FlagWindowHighdpi

    let FlagWindowHighdpi : Int

    FlagWindowMaximized

    let FlagWindowMaximized : Int

    FlagWindowMinimized

    let FlagWindowMinimized : Int

    FlagWindowMousePassthrough

    let FlagWindowMousePassthrough : Int

    FlagWindowResizable

    let FlagWindowResizable : Int

    FlagWindowTopmost

    let FlagWindowTopmost : Int

    FlagWindowTransparent

    let FlagWindowTransparent : Int

    FlagWindowUndecorated

    let FlagWindowUndecorated : Int

    FlagWindowUnfocused

    let FlagWindowUnfocused : Int

    FontBitmap

    let FontBitmap : Int

    FontDefault

    let FontDefault : Int

    FontSdf

    let FontSdf : Int

    GamepadAxisLeftTrigger

    let GamepadAxisLeftTrigger : Int

    GamepadAxisLeftX

    let GamepadAxisLeftX : Int

    GamepadAxisLeftY

    let GamepadAxisLeftY : Int

    GamepadAxisRightTrigger

    let GamepadAxisRightTrigger : Int

    GamepadAxisRightX

    let GamepadAxisRightX : Int

    GamepadAxisRightY

    let GamepadAxisRightY : Int

    GamepadButtonLeftFaceDown

    let GamepadButtonLeftFaceDown : Int

    GamepadButtonLeftFaceLeft

    let GamepadButtonLeftFaceLeft : Int

    GamepadButtonLeftFaceRight

    let GamepadButtonLeftFaceRight : Int

    GamepadButtonLeftFaceUp

    let GamepadButtonLeftFaceUp : Int

    GamepadButtonLeftThumb

    let GamepadButtonLeftThumb : Int

    GamepadButtonLeftTrigger1

    let GamepadButtonLeftTrigger1 : Int

    GamepadButtonLeftTrigger2

    let GamepadButtonLeftTrigger2 : Int

    GamepadButtonMiddle

    let GamepadButtonMiddle : Int

    GamepadButtonMiddleLeft

    let GamepadButtonMiddleLeft : Int

    GamepadButtonMiddleRight

    let GamepadButtonMiddleRight : Int

    GamepadButtonRightFaceDown

    let GamepadButtonRightFaceDown : Int

    GamepadButtonRightFaceLeft

    let GamepadButtonRightFaceLeft : Int

    GamepadButtonRightFaceRight

    let GamepadButtonRightFaceRight : Int

    GamepadButtonRightFaceUp

    let GamepadButtonRightFaceUp : Int

    GamepadButtonRightThumb

    let GamepadButtonRightThumb : Int

    GamepadButtonRightTrigger1

    let GamepadButtonRightTrigger1 : Int

    GamepadButtonRightTrigger2

    let GamepadButtonRightTrigger2 : Int

    GamepadButtonUnknown

    let GamepadButtonUnknown : Int

    GestureDoubletap

    let GestureDoubletap : Int

    GestureDrag

    let GestureDrag : Int

    GestureHold

    let GestureHold : Int

    GestureNone

    let GestureNone : Int

    GesturePinchIn

    let GesturePinchIn : Int

    GesturePinchOut

    let GesturePinchOut : Int

    GestureSwipeDown

    let GestureSwipeDown : Int

    GestureSwipeLeft

    let GestureSwipeLeft : Int

    GestureSwipeRight

    let GestureSwipeRight : Int

    GestureSwipeUp

    let GestureSwipeUp : Int

    GestureTap

    let GestureTap : Int

    KeyA

    let KeyA : Int

    KeyApostrophe

    let KeyApostrophe : Int

    KeyB

    let KeyB : Int

    KeyBackslash

    let KeyBackslash : Int

    KeyBackspace

    let KeyBackspace : Int

    KeyC

    let KeyC : Int

    KeyCapsLock

    let KeyCapsLock : Int

    KeyComma

    let KeyComma : Int

    KeyD

    let KeyD : Int

    KeyDelete

    let KeyDelete : Int

    KeyDown

    let KeyDown : Int

    KeyE

    let KeyE : Int

    KeyEight

    let KeyEight : Int

    KeyEnd

    let KeyEnd : Int

    KeyEnter

    let KeyEnter : Int

    KeyEqual

    let KeyEqual : Int

    KeyEscape

    let KeyEscape : Int

    KeyF

    let KeyF : Int

    KeyF1

    let KeyF1 : Int

    KeyF10

    let KeyF10 : Int

    KeyF11

    let KeyF11 : Int

    KeyF12

    let KeyF12 : Int

    KeyF2

    let KeyF2 : Int

    KeyF3

    let KeyF3 : Int

    KeyF4

    let KeyF4 : Int

    KeyF5

    let KeyF5 : Int

    KeyF6

    let KeyF6 : Int

    KeyF7

    let KeyF7 : Int

    KeyF8

    let KeyF8 : Int

    KeyF9

    let KeyF9 : Int

    KeyFive

    let KeyFive : Int

    KeyFour

    let KeyFour : Int

    KeyG

    let KeyG : Int

    KeyGrave

    let KeyGrave : Int

    KeyH

    let KeyH : Int

    KeyHome

    let KeyHome : Int

    KeyI

    let KeyI : Int

    KeyInsert

    let KeyInsert : Int

    KeyJ

    let KeyJ : Int

    KeyK

    let KeyK : Int

    KeyKbMenu

    let KeyKbMenu : Int

    KeyKp0

    let KeyKp0 : Int

    KeyKp1

    let KeyKp1 : Int

    KeyKp2

    let KeyKp2 : Int

    KeyKp3

    let KeyKp3 : Int

    KeyKp4

    let KeyKp4 : Int

    KeyKp5

    let KeyKp5 : Int

    KeyKp6

    let KeyKp6 : Int

    KeyKp7

    let KeyKp7 : Int

    KeyKp8

    let KeyKp8 : Int

    KeyKp9

    let KeyKp9 : Int

    KeyL

    let KeyL : Int

    KeyLeft

    let KeyLeft : Int

    KeyLeftAlt

    let KeyLeftAlt : Int

    KeyLeftBracket

    let KeyLeftBracket : Int

    KeyLeftControl

    let KeyLeftControl : Int

    KeyLeftShift

    let KeyLeftShift : Int

    KeyLeftSuper

    let KeyLeftSuper : Int

    KeyM

    let KeyM : Int

    KeyMinus

    let KeyMinus : Int

    KeyN

    let KeyN : Int

    KeyNine

    let KeyNine : Int

    KeyNull

    let KeyNull : Int

    KeyNumLock

    let KeyNumLock : Int

    KeyO

    let KeyO : Int

    KeyOne

    let KeyOne : Int

    KeyP

    let KeyP : Int

    KeyPageDown

    let KeyPageDown : Int

    KeyPageUp

    let KeyPageUp : Int

    KeyPause

    let KeyPause : Int

    KeyPeriod

    let KeyPeriod : Int

    KeyPrintScreen

    let KeyPrintScreen : Int

    KeyQ

    let KeyQ : Int

    KeyR

    let KeyR : Int

    KeyRight

    let KeyRight : Int

    KeyRightAlt

    let KeyRightAlt : Int

    KeyRightBracket

    let KeyRightBracket : Int

    KeyRightControl

    let KeyRightControl : Int

    KeyRightShift

    let KeyRightShift : Int

    KeyRightSuper

    let KeyRightSuper : Int

    KeyS

    let KeyS : Int

    KeyScrollLock

    let KeyScrollLock : Int

    KeySemicolon

    let KeySemicolon : Int

    KeySeven

    let KeySeven : Int

    KeySix

    let KeySix : Int

    KeySlash

    let KeySlash : Int

    KeySpace

    let KeySpace : Int

    KeyT

    let KeyT : Int

    KeyTab

    let KeyTab : Int

    KeyThree

    let KeyThree : Int

    KeyTwo

    let KeyTwo : Int

    KeyU

    let KeyU : Int

    KeyUp

    let KeyUp : Int

    KeyV

    let KeyV : Int

    KeyW

    let KeyW : Int

    KeyX

    let KeyX : Int

    KeyY

    let KeyY : Int

    KeyZ

    let KeyZ : Int

    KeyZero

    let KeyZero : Int

    LogAll

    let LogAll : Int

    LogDebug

    let LogDebug : Int

    LogError

    let LogError : Int

    LogFatal

    let LogFatal : Int

    LogInfo

    let LogInfo : Int

    LogNone

    let LogNone : Int

    LogTrace

    let LogTrace : Int

    LogWarning

    let LogWarning : Int

    MaterialMapAlbedo

    let MaterialMapAlbedo : Int

    MaterialMapBrdf

    let MaterialMapBrdf : Int

    MaterialMapCubemap

    let MaterialMapCubemap : Int

    MaterialMapEmission

    let MaterialMapEmission : Int

    MaterialMapHeight

    let MaterialMapHeight : Int

    MaterialMapIrradiance

    let MaterialMapIrradiance : Int

    MaterialMapMetalness

    let MaterialMapMetalness : Int

    MaterialMapNormal

    let MaterialMapNormal : Int

    MaterialMapOcclusion

    let MaterialMapOcclusion : Int

    MaterialMapPrefilter

    let MaterialMapPrefilter : Int

    MaterialMapRoughness

    let MaterialMapRoughness : Int

    MouseButtonBack

    let MouseButtonBack : Int

    MouseButtonExtra

    let MouseButtonExtra : Int

    MouseButtonForward

    let MouseButtonForward : Int

    MouseButtonLeft

    let MouseButtonLeft : Int

    MouseButtonMiddle

    let MouseButtonMiddle : Int

    MouseButtonRight

    let MouseButtonRight : Int

    MouseButtonSide

    let MouseButtonSide : Int

    MouseCursorArrow

    let MouseCursorArrow : Int

    MouseCursorCrosshair

    let MouseCursorCrosshair : Int

    MouseCursorDefault

    let MouseCursorDefault : Int

    MouseCursorIbeam

    let MouseCursorIbeam : Int

    MouseCursorNotAllowed

    let MouseCursorNotAllowed : Int

    MouseCursorPointingHand

    let MouseCursorPointingHand : Int

    MouseCursorResizeAll

    let MouseCursorResizeAll : Int

    MouseCursorResizeEw

    let MouseCursorResizeEw : Int

    MouseCursorResizeNesw

    let MouseCursorResizeNesw : Int

    MouseCursorResizeNs

    let MouseCursorResizeNs : Int

    MouseCursorResizeNwse

    let MouseCursorResizeNwse : Int

    NpatchNinePatch

    let NpatchNinePatch : Int

    NpatchThreePatchHorizontal

    let NpatchThreePatchHorizontal : Int

    NpatchThreePatchVertical

    let NpatchThreePatchVertical : Int

    PixelformatUncompressedGrayAlpha

    let PixelformatUncompressedGrayAlpha : Int

    PixelformatUncompressedGrayscale

    let PixelformatUncompressedGrayscale : Int

    PixelformatUncompressedR32

    let PixelformatUncompressedR32 : Int

    PixelformatUncompressedR32g32b32

    let PixelformatUncompressedR32g32b32 : Int

    PixelformatUncompressedR32g32b32a32

    let PixelformatUncompressedR32g32b32a32 : Int

    PixelformatUncompressedR4g4b4a4

    let PixelformatUncompressedR4g4b4a4 : Int

    PixelformatUncompressedR5g5b5a1

    let PixelformatUncompressedR5g5b5a1 : Int

    PixelformatUncompressedR5g6b5

    let PixelformatUncompressedR5g6b5 : Int

    PixelformatUncompressedR8g8b8

    let PixelformatUncompressedR8g8b8 : Int

    PixelformatUncompressedR8g8b8a8

    let PixelformatUncompressedR8g8b8a8 : Int

    RlAttachmentColorChannel0

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

    RlAttachmentColorChannel1

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

    RlAttachmentColorChannel2

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

    RlAttachmentColorChannel3

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

    RlAttachmentCubemapNegativeX

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

    RlAttachmentCubemapNegativeY

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

    RlAttachmentCubemapNegativeZ

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

    RlAttachmentCubemapPositiveX

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

    RlAttachmentCubemapPositiveY

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

    RlAttachmentCubemapPositiveZ

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

    RlAttachmentDepth

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

    RlAttachmentRenderbuffer

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

    RlAttachmentStencil

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

    RlAttachmentTexture2d

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

    RlDrawFramebuffer

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

    RlLines

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

    RlQuads

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

    RlReadFramebuffer

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

    RlTriangles

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

    ShaderLocBoneMatrices

    let ShaderLocBoneMatrices : Int

    ShaderLocColorAmbient

    let ShaderLocColorAmbient : Int

    ShaderLocColorDiffuse

    let ShaderLocColorDiffuse : Int

    ShaderLocColorSpecular

    let ShaderLocColorSpecular : Int

    ShaderLocMapAlbedo

    let ShaderLocMapAlbedo : Int

    ShaderLocMapBrdf

    let ShaderLocMapBrdf : Int

    ShaderLocMapCubemap

    let ShaderLocMapCubemap : Int

    ShaderLocMapEmission

    let ShaderLocMapEmission : Int

    ShaderLocMapHeight

    let ShaderLocMapHeight : Int

    ShaderLocMapIrradiance

    let ShaderLocMapIrradiance : Int

    ShaderLocMapMetalness

    let ShaderLocMapMetalness : Int

    ShaderLocMapNormal

    let ShaderLocMapNormal : Int

    ShaderLocMapOcclusion

    let ShaderLocMapOcclusion : Int

    ShaderLocMapPrefilter

    let ShaderLocMapPrefilter : Int

    ShaderLocMapRoughness

    let ShaderLocMapRoughness : Int

    ShaderLocMatrixModel

    let ShaderLocMatrixModel : Int

    ShaderLocMatrixMvp

    let ShaderLocMatrixMvp : Int

    ShaderLocMatrixNormal

    let ShaderLocMatrixNormal : Int

    ShaderLocMatrixProjection

    let ShaderLocMatrixProjection : Int

    ShaderLocMatrixView

    let ShaderLocMatrixView : Int

    ShaderLocVectorView

    let ShaderLocVectorView : Int

    ShaderLocVertexBoneids

    let ShaderLocVertexBoneids : Int

    ShaderLocVertexBoneweights

    let ShaderLocVertexBoneweights : Int

    ShaderLocVertexColor

    let ShaderLocVertexColor : Int

    ShaderLocVertexNormal

    let ShaderLocVertexNormal : Int

    ShaderLocVertexPosition

    let ShaderLocVertexPosition : Int

    ShaderLocVertexTangent

    let ShaderLocVertexTangent : Int

    ShaderLocVertexTexcoord01

    let ShaderLocVertexTexcoord01 : Int

    ShaderLocVertexTexcoord02

    let ShaderLocVertexTexcoord02 : Int

    ShaderUniformFloat

    let ShaderUniformFloat : Int

    ShaderUniformInt

    let ShaderUniformInt : Int

    ShaderUniformIvec2

    let ShaderUniformIvec2 : Int

    ShaderUniformIvec3

    let ShaderUniformIvec3 : Int

    ShaderUniformIvec4

    let ShaderUniformIvec4 : Int

    ShaderUniformSampler2d

    let ShaderUniformSampler2d : Int

    ShaderUniformVec2

    let ShaderUniformVec2 : Int

    ShaderUniformVec3

    let ShaderUniformVec3 : Int

    ShaderUniformVec4

    let ShaderUniformVec4 : Int

    TextureFilterAnisotropic16x

    let TextureFilterAnisotropic16x : Int

    TextureFilterAnisotropic4x

    let TextureFilterAnisotropic4x : Int

    TextureFilterAnisotropic8x

    let TextureFilterAnisotropic8x : Int

    TextureFilterBilinear

    let TextureFilterBilinear : Int

    TextureFilterPoint

    let TextureFilterPoint : Int

    TextureFilterTrilinear

    let TextureFilterTrilinear : Int

    TextureWrapClamp

    let TextureWrapClamp : Int

    TextureWrapMirrorClamp

    let TextureWrapMirrorClamp : Int

    TextureWrapMirrorRepeat

    let TextureWrapMirrorRepeat : Int

    TextureWrapRepeat

    let TextureWrapRepeat : Int

    attach_audio_mixed_processor

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

    attach_music_stream_processor

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

    audio_buffer_get_sample

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

    audio_buffer_set_sample

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

    begin_blend_mode

    fn begin_blend_mode(mode : Int) -> Unit

    begin_drawing

    fn begin_drawing() -> Unit

    begin_mode_2d

    fn begin_mode_2d(camera : Camera2D) -> Unit

    begin_mode_3d

    fn begin_mode_3d(camera : Camera3D) -> Unit

    begin_scissor_mode

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

    beige

    let beige : Color

    black

    let black : Color

    blank

    let blank : Color

    blue

    let blue : Color

    brown

    let brown : Color

    change_directory

    fn change_directory(dir : String) -> Bool

    check_collision_box_sphere

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

    check_collision_boxes

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

    check_collision_circle_line

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

    check_collision_circle_rec

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

    check_collision_circles

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

    check_collision_lines

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

    check_collision_point_circle

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

    check_collision_point_line

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

    check_collision_point_poly

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

    check_collision_point_rec

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

    check_collision_point_triangle

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

    check_collision_recs

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

    check_collision_spheres

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

    clear_background

    fn clear_background(color : Color) -> Unit

    clear_window_state

    fn clear_window_state(flags : Int) -> Unit

    close_audio_device

    fn close_audio_device() -> Unit

    close_window

    fn close_window() -> Unit

    codepoint_to_utf8

    fn codepoint_to_utf8(codepoint : Int) -> Bytes

    color_alpha

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

    color_alpha_blend

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

    color_brightness

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

    color_contrast

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

    color_from_hsv

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

    color_from_normalized

    fn color_from_normalized(normalized : Vector4) -> Color

    color_is_equal

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

    color_lerp

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

    color_normalize

    fn color_normalize(color : Color) -> Vector4

    color_tint

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

    color_to_hsv

    fn color_to_hsv(color : Color) -> Vector3

    color_to_int

    fn color_to_int(color : Color) -> Int

    compress_data

    fn compress_data(data : Bytes) -> Bytes

    compute_crc32

    fn compute_crc32(data : Bytes) -> Int

    compute_md5

    fn compute_md5(data : Bytes) -> Bytes

    compute_sha1

    fn compute_sha1(data : Bytes) -> Bytes

    darkblue

    let darkblue : Color

    darkbrown

    let darkbrown : Color

    darkgray

    let darkgray : Color

    darkgreen

    let darkgreen : Color

    darkpurple

    let darkpurple : Color

    decode_data_base64

    fn decode_data_base64(data : String) -> Bytes

    decompress_data

    fn decompress_data(comp_data : Bytes) -> Bytes

    detach_audio_mixed_processor

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

    detach_music_stream_processor

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

    directory_exists

    fn directory_exists(dir_path : String) -> Bool

    disable_cursor

    fn disable_cursor() -> Unit

    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_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_billboard_rec

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

    draw_bounding_box

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

    draw_capsule

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

    draw_capsule_wires

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

    draw_circle

    fn draw_circle(center_x : Int, center_y : Int, radius : Float, color : Color) -> Unit

    draw_circle_3d

    fn draw_circle_3d(center : Vector3, radius : Float, rot_axis : Vector3, rot_angle : Float, color : Color) -> Unit

    draw_circle_gradient

    fn draw_circle_gradient(center_x : Int, center_y : Int, radius : Float, inner : Color, outer : Color) -> Unit

    draw_circle_lines

    fn draw_circle_lines(center_x : Int, center_y : Int, radius : Float, color : Color) -> Unit

    draw_circle_lines_v

    fn draw_circle_lines_v(center : Vector2, radius : Float, color : Color) -> Unit

    draw_circle_sector

    fn draw_circle_sector(center : Vector2, radius : Float, start_angle : Float, end_angle : Float, segments : Int, color : Color) -> Unit

    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_v

    fn draw_circle_v(center : Vector2, radius : Float, color : Color) -> Unit

    draw_cube

    fn draw_cube(position : Vector3, width : Float, height : Float, length : Float, color : Color) -> Unit

    draw_cube_v

    fn draw_cube_v(position : Vector3, size : Vector3, color : Color) -> Unit

    draw_cube_wires

    fn draw_cube_wires(position : Vector3, width : Float, height : Float, length : Float, color : Color) -> Unit

    draw_cube_wires_v

    fn draw_cube_wires_v(position : Vector3, size : Vector3, color : Color) -> Unit

    draw_cylinder

    fn draw_cylinder(position : Vector3, radius_top : Float, radius_bottom : Float, height : Float, slices : Int, color : Color) -> Unit

    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_cylinder_wires

    fn draw_cylinder_wires(position : Vector3, radius_top : Float, radius_bottom : Float, height : Float, slices : Int, color : Color) -> Unit

    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_ellipse

    fn draw_ellipse(center_x : Int, center_y : Int, radius_h : Float, radius_v : Float, color : Color) -> Unit

    draw_ellipse_lines

    fn draw_ellipse_lines(center_x : Int, center_y : Int, radius_h : Float, radius_v : Float, color : Color) -> Unit

    draw_fps

    fn draw_fps(pos_x : Int, pos_y : Int) -> Unit

    draw_grid

    fn draw_grid(slices : Int, spacing : Float) -> Unit

    draw_line

    fn draw_line(start_x : Int, start_y : Int, end_x : Int, end_y : Int, color : Color) -> Unit

    draw_line_3d

    fn draw_line_3d(start_pos : Vector3, end_pos : Vector3, color : Color) -> Unit

    draw_line_bezier

    fn draw_line_bezier(start_pos : Vector2, end_pos : Vector2, thick : Float, color : Color) -> Unit

    draw_line_ex

    fn draw_line_ex(start_pos : Vector2, end_pos : Vector2, thick : Float, color : Color) -> Unit

    draw_line_strip

    fn draw_line_strip(points : Array[Vector2], color : Color) -> Unit

    draw_line_v

    fn draw_line_v(start_pos : Vector2, end_pos : Vector2, color : Color) -> Unit

    draw_pixel

    fn draw_pixel(pos_x : Int, pos_y : Int, color : Color) -> Unit

    draw_pixel_v

    fn draw_pixel_v(position : Vector2, color : Color) -> Unit

    draw_plane

    fn draw_plane(center : Vector3, size : Vector2, color : Color) -> Unit

    draw_point_3d

    fn draw_point_3d(position : Vector3, color : Color) -> Unit

    draw_poly

    fn draw_poly(center : Vector2, sides : Int, radius : Float, rotation : Float, color : Color) -> Unit

    draw_poly_lines

    fn draw_poly_lines(center : Vector2, sides : Int, radius : Float, rotation : Float, color : Color) -> Unit

    draw_poly_lines_ex

    fn draw_poly_lines_ex(center : Vector2, sides : Int, radius : Float, rotation : Float, line_thick : Float, color : Color) -> Unit

    draw_ray

    fn draw_ray(ray : Ray, color : Color) -> Unit

    draw_rectangle

    fn draw_rectangle(pos_x : Int, pos_y : Int, width : Int, height : Int, color : Color) -> Unit

    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_rectangle_gradient_h

    fn draw_rectangle_gradient_h(pos_x : Int, pos_y : Int, width : Int, height : Int, left : Color, right : Color) -> Unit

    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_rectangle_lines

    fn draw_rectangle_lines(pos_x : Int, pos_y : Int, width : Int, height : Int, color : Color) -> Unit

    draw_rectangle_lines_ex

    fn draw_rectangle_lines_ex(rec : Rectangle, line_thick : Float, color : Color) -> Unit

    draw_rectangle_pro

    fn draw_rectangle_pro(rec : Rectangle, origin : Vector2, rotation : Float, color : Color) -> Unit

    draw_rectangle_rec

    fn draw_rectangle_rec(rec : Rectangle, color : Color) -> Unit

    draw_rectangle_rounded

    fn draw_rectangle_rounded(rec : Rectangle, roundness : Float, segments : Int, color : Color) -> Unit

    draw_rectangle_rounded_lines

    fn draw_rectangle_rounded_lines(rec : Rectangle, roundness : Float, segments : Int, color : Color) -> Unit

    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_v

    fn draw_rectangle_v(position : Vector2, size : Vector2, color : Color) -> Unit

    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_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_sphere

    fn draw_sphere(center : Vector3, radius : Float, color : Color) -> Unit

    draw_sphere_ex

    fn draw_sphere_ex(center : Vector3, radius : Float, rings : Int, slices : Int, color : Color) -> Unit

    draw_sphere_wires

    fn draw_sphere_wires(center : Vector3, radius : Float, rings : Int, slices : Int, color : Color) -> Unit

    draw_spline_basis

    fn draw_spline_basis(points : Array[Vector2], thick : Float, color : Color) -> Unit

    draw_spline_bezier_cubic

    fn draw_spline_bezier_cubic(points : Array[Vector2], thick : Float, color : Color) -> Unit

    draw_spline_bezier_quadratic

    fn draw_spline_bezier_quadratic(points : Array[Vector2], thick : Float, color : Color) -> Unit

    draw_spline_catmull_rom

    fn draw_spline_catmull_rom(points : Array[Vector2], thick : Float, color : Color) -> Unit

    draw_spline_linear

    fn draw_spline_linear(points : Array[Vector2], thick : Float, color : Color) -> Unit

    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_bezier_cubic

    fn draw_spline_segment_bezier_cubic(p1 : Vector2, p2 : Vector2, p3 : Vector2, p4 : Vector2, thick : Float, color : Color) -> Unit

    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_catmull_rom

    fn draw_spline_segment_catmull_rom(p1 : Vector2, p2 : Vector2, p3 : Vector2, p4 : Vector2, thick : Float, color : Color) -> Unit

    draw_spline_segment_linear

    fn draw_spline_segment_linear(p1 : Vector2, p2 : Vector2, thick : Float, color : Color) -> Unit

    draw_text

    fn draw_text(text : String, pos_x : Int, pos_y : Int, font_size : Int, color : Color) -> Unit

    draw_triangle

    fn draw_triangle(v1 : Vector2, v2 : Vector2, v3 : Vector2, color : Color) -> Unit

    draw_triangle_3d

    fn draw_triangle_3d(v1 : Vector3, v2 : Vector3, v3 : Vector3, color : Color) -> Unit

    draw_triangle_fan

    fn draw_triangle_fan(points : Array[Vector2], color : Color) -> Unit

    draw_triangle_lines

    fn draw_triangle_lines(v1 : Vector2, v2 : Vector2, v3 : Vector2, color : Color) -> Unit

    draw_triangle_strip

    fn draw_triangle_strip(points : Array[Vector2], color : Color) -> Unit

    draw_triangle_strip_3d

    fn draw_triangle_strip_3d(points : Array[Vector3], color : Color) -> Unit

    enable_cursor

    fn enable_cursor() -> Unit

    enable_event_waiting

    fn enable_event_waiting() -> Unit

    encode_data_base64

    fn encode_data_base64(data : Bytes) -> String

    end_blend_mode

    fn end_blend_mode() -> Unit

    end_drawing

    fn end_drawing() -> Unit

    end_mode_2d

    fn end_mode_2d() -> Unit

    end_mode_3d

    fn end_mode_3d() -> Unit

    end_scissor_mode

    fn end_scissor_mode() -> Unit

    end_shader_mode

    fn end_shader_mode() -> Unit

    end_texture_mode

    fn end_texture_mode() -> Unit

    end_vr_stereo_mode

    fn end_vr_stereo_mode() -> Unit

    export_data_as_code

    fn export_data_as_code(data : Bytes, data_size : Int, file_name : String) -> Bool

    fade

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

    file_exists

    fn file_exists(file_name : String) -> Bool

    file_path_list_get

    fn file_path_list_get(files : FilePathList, index : Int) -> String

    gen_font_texture_mipmaps

    #deprecated("Use font.texture().gen_mipmaps() instead")
    fn gen_font_texture_mipmaps(font : Font) -> Unit

    get_application_directory

    fn get_application_directory() -> String

    get_camera_matrix

    fn get_camera_matrix(camera : Camera3D) -> Matrix

    get_camera_matrix_2d

    fn get_camera_matrix_2d(camera : Camera2D) -> Matrix

    get_char_pressed

    fn get_char_pressed() -> Int

    get_clipboard_image

    fn get_clipboard_image() -> Image

    get_clipboard_text

    fn get_clipboard_text() -> String

    get_codepoint

    fn get_codepoint(text : String) -> (Int, Int)

    get_codepoint_count

    fn get_codepoint_count(text : String) -> Int

    get_codepoint_next

    fn get_codepoint_next(text : String) -> (Int, Int)

    get_codepoint_previous

    fn get_codepoint_previous(text : String) -> (Int, Int)

    get_collision_rec

    fn get_collision_rec(rec1 : Rectangle, rec2 : Rectangle) -> Rectangle

    get_color

    fn get_color(hex_value : Int) -> Color

    get_current_monitor

    fn get_current_monitor() -> Int

    get_directory_path

    fn get_directory_path(file_path : String) -> String

    get_file_extension

    fn get_file_extension(file_name : String) -> String

    get_file_length

    fn get_file_length(file_name : String) -> Int

    get_file_mod_time

    fn get_file_mod_time(file_name : String) -> Int

    get_file_name

    fn get_file_name(file_path : String) -> String

    get_file_name_without_ext

    fn get_file_name_without_ext(file_path : String) -> String

    get_fps

    fn get_fps() -> Int

    get_frame_time

    fn get_frame_time() -> Float

    get_gamepad_axis_count

    fn get_gamepad_axis_count(gamepad : Int) -> Int

    get_gamepad_axis_movement

    fn get_gamepad_axis_movement(gamepad : Int, axis : Int) -> Float

    get_gamepad_button_pressed

    fn get_gamepad_button_pressed() -> Int

    get_gamepad_name

    fn get_gamepad_name(gamepad : Int) -> String

    get_gesture_detected

    fn get_gesture_detected() -> Int

    get_gesture_drag_angle

    fn get_gesture_drag_angle() -> Float

    get_gesture_drag_vector

    fn get_gesture_drag_vector() -> Vector2

    get_gesture_hold_duration

    fn get_gesture_hold_duration() -> Float

    get_gesture_pinch_angle

    fn get_gesture_pinch_angle() -> Float

    get_gesture_pinch_vector

    fn get_gesture_pinch_vector() -> Vector2

    get_key_pressed

    fn get_key_pressed() -> Int

    get_master_volume

    fn get_master_volume() -> Float

    get_monitor_count

    fn get_monitor_count() -> Int

    get_monitor_height

    fn get_monitor_height(monitor : Int) -> Int

    get_monitor_name

    fn get_monitor_name(monitor : Int) -> String

    get_monitor_physical_height

    fn get_monitor_physical_height(monitor : Int) -> Int

    get_monitor_physical_width

    fn get_monitor_physical_width(monitor : Int) -> Int

    get_monitor_position

    fn get_monitor_position(monitor : Int) -> Vector2

    get_monitor_refresh_rate

    fn get_monitor_refresh_rate(monitor : Int) -> Int

    get_monitor_width

    fn get_monitor_width(monitor : Int) -> Int

    get_mouse_delta

    fn get_mouse_delta() -> Vector2

    get_mouse_position

    fn get_mouse_position() -> Vector2

    get_mouse_wheel_move

    fn get_mouse_wheel_move() -> Float

    get_mouse_wheel_move_v

    fn get_mouse_wheel_move_v() -> Vector2

    get_mouse_x

    fn get_mouse_x() -> Int

    get_mouse_y

    fn get_mouse_y() -> Int

    get_pixel_data_size

    fn get_pixel_data_size(width : Int, height : Int, format : Int) -> Int

    get_prev_directory_path

    fn get_prev_directory_path(dir_path : String) -> String

    get_random_value

    fn get_random_value(min : Int, max : Int) -> Int

    get_ray_collision_box

    fn get_ray_collision_box(ray : Ray, box_ : BoundingBox) -> RayCollision

    get_ray_collision_mesh

    fn get_ray_collision_mesh(ray : Ray, mesh : Mesh, transform : Matrix) -> RayCollision

    get_ray_collision_quad

    fn get_ray_collision_quad(ray : Ray, p1 : Vector3, p2 : Vector3, p3 : Vector3, p4 : Vector3) -> RayCollision

    get_ray_collision_sphere

    fn get_ray_collision_sphere(ray : Ray, center : Vector3, radius : Float) -> RayCollision

    get_ray_collision_triangle

    fn get_ray_collision_triangle(ray : Ray, p1 : Vector3, p2 : Vector3, p3 : Vector3) -> RayCollision

    get_render_height

    fn get_render_height() -> Int

    get_render_width

    fn get_render_width() -> Int

    get_screen_height

    fn get_screen_height() -> Int

    get_screen_to_world_2d

    fn get_screen_to_world_2d(position : Vector2, camera : Camera2D) -> Vector2

    get_screen_to_world_ray

    fn get_screen_to_world_ray(position : Vector2, camera : Camera3D) -> Ray

    get_screen_to_world_ray_ex

    fn get_screen_to_world_ray_ex(position : Vector2, camera : Camera3D, width : Int, height : Int) -> Ray

    get_screen_width

    fn get_screen_width() -> Int

    get_shapes_texture_rectangle

    fn get_shapes_texture_rectangle() -> Rectangle

    get_spline_point_basis

    fn get_spline_point_basis(p1 : Vector2, p2 : Vector2, p3 : Vector2, p4 : Vector2, t : Float) -> Vector2

    get_spline_point_bezier_cubic

    fn get_spline_point_bezier_cubic(p1 : Vector2, p2 : Vector2, p3 : Vector2, p4 : Vector2, t : Float) -> Vector2

    get_spline_point_bezier_quad

    fn get_spline_point_bezier_quad(p1 : Vector2, p2 : Vector2, p3 : Vector2, t : Float) -> Vector2

    get_spline_point_catmull_rom

    fn get_spline_point_catmull_rom(p1 : Vector2, p2 : Vector2, p3 : Vector2, p4 : Vector2, t : Float) -> Vector2

    get_spline_point_linear

    fn get_spline_point_linear(start_pos : Vector2, end_pos : Vector2, t : Float) -> Vector2

    get_time

    fn get_time() -> Double

    get_touch_point_count

    fn get_touch_point_count() -> Int

    get_touch_point_id

    fn get_touch_point_id(index : Int) -> Int

    get_touch_position

    fn get_touch_position(index : Int) -> Vector2

    get_touch_x

    fn get_touch_x() -> Int

    get_touch_y

    fn get_touch_y() -> Int

    get_window_position

    fn get_window_position() -> Vector2

    get_window_scale_dpi

    fn get_window_scale_dpi() -> Vector2

    get_working_directory

    fn get_working_directory() -> String

    get_world_to_screen

    fn get_world_to_screen(position : Vector3, camera : Camera3D) -> Vector2

    get_world_to_screen_2d

    fn get_world_to_screen_2d(position : Vector2, camera : Camera2D) -> Vector2

    get_world_to_screen_ex

    fn get_world_to_screen_ex(position : Vector3, camera : Camera3D, width : Int, height : Int) -> Vector2

    gold

    let gold : Color

    gray

    let gray : Color

    green

    let green : Color

    hide_cursor

    fn hide_cursor() -> Unit

    init_audio_device

    fn init_audio_device() -> Unit

    init_window

    fn init_window(width : Int, height : Int, title : String) -> Unit

    is_audio_device_ready

    fn is_audio_device_ready() -> Bool

    is_cursor_hidden

    fn is_cursor_hidden() -> Bool

    is_cursor_on_screen

    fn is_cursor_on_screen() -> Bool

    is_file_dropped

    fn is_file_dropped() -> Bool

    is_file_extension

    fn is_file_extension(file_name : String, ext : String) -> Bool

    is_file_name_valid

    fn is_file_name_valid(file_name : String) -> Bool

    is_gamepad_available

    fn is_gamepad_available(gamepad : Int) -> Bool

    is_gamepad_button_down

    fn is_gamepad_button_down(gamepad : Int, button : Int) -> Bool

    is_gamepad_button_pressed

    fn is_gamepad_button_pressed(gamepad : Int, button : Int) -> Bool

    is_gamepad_button_released

    fn is_gamepad_button_released(gamepad : Int, button : Int) -> Bool

    is_gamepad_button_up

    fn is_gamepad_button_up(gamepad : Int, button : Int) -> Bool

    is_gesture_detected

    fn is_gesture_detected(gesture : Int) -> Bool

    is_key_down

    fn is_key_down(key : Int) -> Bool

    is_key_pressed

    fn is_key_pressed(key : Int) -> Bool

    is_key_pressed_repeat

    fn is_key_pressed_repeat(key : Int) -> Bool

    is_key_released

    fn is_key_released(key : Int) -> Bool

    is_key_up

    fn is_key_up(key : Int) -> Bool

    is_mouse_button_down

    fn is_mouse_button_down(button : Int) -> Bool

    is_mouse_button_pressed

    fn is_mouse_button_pressed(button : Int) -> Bool

    is_mouse_button_released

    fn is_mouse_button_released(button : Int) -> Bool

    is_mouse_button_up

    fn is_mouse_button_up(button : Int) -> Bool

    is_path_file

    fn is_path_file(path : String) -> Bool

    is_window_focused

    fn is_window_focused() -> Bool

    is_window_fullscreen

    fn is_window_fullscreen() -> Bool

    is_window_hidden

    fn is_window_hidden() -> Bool

    is_window_maximized

    fn is_window_maximized() -> Bool

    is_window_minimized

    fn is_window_minimized() -> Bool

    is_window_ready

    fn is_window_ready() -> Bool

    is_window_resized

    fn is_window_resized() -> Bool

    is_window_state

    fn is_window_state(flag : Int) -> Bool

    lightgray

    let lightgray : Color

    lime

    let lime : Color

    load_codepoints

    fn load_codepoints(text : String) -> Array[Int]

    load_directory_files

    fn load_directory_files(dir_path : String) -> FilePathList

    load_directory_files_ex

    fn load_directory_files_ex(base_path : String, filter : String, scan_subdirs : Bool) -> FilePathList

    load_file_data

    fn load_file_data(file_name : String) -> Bytes

    load_file_text

    fn load_file_text(file_name : String) -> String

    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_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_random_sequence

    fn load_random_sequence(count : Int, min : Int, max : Int) -> Array[Int]

    load_utf8

    fn load_utf8(codepoints : Array[Int]) -> Bytes

    magenta

    let magenta : Color

    make_directory

    fn make_directory(dir_path : String) -> Int

    maroon

    let maroon : Color

    maximize_window

    fn maximize_window() -> Unit

    measure_text

    fn measure_text(text : String, font_size : Int) -> Int

    minimize_window

    fn minimize_window() -> Unit

    open_url

    fn open_url(url : String) -> Unit

    orange

    let orange : Color

    pink

    let pink : Color

    play_automation_event

    fn play_automation_event(event : AutomationEvent) -> Unit

    poll_input_events

    fn poll_input_events() -> Unit

    purple

    let purple : Color

    raywhite

    let raywhite : Color

    red

    let red : Color

    restore_window

    fn restore_window() -> Unit

    rl_active_draw_buffers

    #deprecated("Use @rl.active_draw_buffers from tonyfettes/raylib/rl instead")
    fn rl_active_draw_buffers(count : Int) -> Unit

    rl_active_texture_slot

    #deprecated("Use @rl.active_texture_slot from tonyfettes/raylib/rl instead")
    fn rl_active_texture_slot(slot : Int) -> Unit

    rl_begin

    #deprecated("Use @rl.begin from tonyfettes/raylib/rl instead")
    fn rl_begin(mode : Int) -> Unit

    rl_bind_framebuffer

    #deprecated("Use @rl.bind_framebuffer from tonyfettes/raylib/rl instead")
    fn rl_bind_framebuffer(target : UInt, fbo : UInt) -> Unit

    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

    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

    rl_clear_screen_buffers

    #deprecated("Use @rl.clear_screen_buffers from tonyfettes/raylib/rl instead")
    fn rl_clear_screen_buffers() -> Unit

    rl_color4ub

    #deprecated("Use @rl.color4ub from tonyfettes/raylib/rl instead")
    fn rl_color4ub(r : Byte, g : Byte, b : Byte, a : Byte) -> Unit

    rl_disable_backface_culling

    #deprecated("Use @rl.disable_backface_culling from tonyfettes/raylib/rl instead")
    fn rl_disable_backface_culling() -> Unit

    rl_disable_color_blend

    #deprecated("Use @rl.disable_color_blend from tonyfettes/raylib/rl instead")
    fn rl_disable_color_blend() -> Unit

    rl_disable_depth_mask

    #deprecated("Use @rl.disable_depth_mask from tonyfettes/raylib/rl instead")
    fn rl_disable_depth_mask() -> Unit

    rl_disable_depth_test

    #deprecated("Use @rl.disable_depth_test from tonyfettes/raylib/rl instead")
    fn rl_disable_depth_test() -> Unit

    rl_disable_framebuffer

    #deprecated("Use @rl.disable_framebuffer from tonyfettes/raylib/rl instead")
    fn rl_disable_framebuffer() -> Unit

    rl_disable_shader

    #deprecated("Use @rl.disable_shader from tonyfettes/raylib/rl instead")
    fn rl_disable_shader() -> Unit

    rl_disable_texture

    #deprecated("Use @rl.disable_texture from tonyfettes/raylib/rl instead")
    fn rl_disable_texture() -> Unit

    rl_draw_render_batch_active

    #deprecated("Use @rl.draw_render_batch_active from tonyfettes/raylib/rl instead")
    fn rl_draw_render_batch_active() -> Unit

    rl_enable_backface_culling

    #deprecated("Use @rl.enable_backface_culling from tonyfettes/raylib/rl instead")
    fn rl_enable_backface_culling() -> Unit

    rl_enable_color_blend

    #deprecated("Use @rl.enable_color_blend from tonyfettes/raylib/rl instead")
    fn rl_enable_color_blend() -> Unit

    rl_enable_depth_mask

    #deprecated("Use @rl.enable_depth_mask from tonyfettes/raylib/rl instead")
    fn rl_enable_depth_mask() -> Unit

    rl_enable_depth_test

    #deprecated("Use @rl.enable_depth_test from tonyfettes/raylib/rl instead")
    fn rl_enable_depth_test() -> Unit

    rl_enable_framebuffer

    #deprecated("Use @rl.enable_framebuffer from tonyfettes/raylib/rl instead")
    fn rl_enable_framebuffer(id : UInt) -> Unit

    rl_enable_shader

    #deprecated("Use @rl.enable_shader from tonyfettes/raylib/rl instead")
    fn rl_enable_shader(id : UInt) -> Unit

    rl_enable_texture

    #deprecated("Use @rl.enable_texture from tonyfettes/raylib/rl instead")
    fn rl_enable_texture(id : UInt) -> Unit

    rl_end

    #deprecated("Use @rl.end_ from tonyfettes/raylib/rl instead")
    fn rl_end() -> Unit

    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

    rl_framebuffer_complete

    #deprecated("Use @rl.framebuffer_complete from tonyfettes/raylib/rl instead")
    fn rl_framebuffer_complete(id : UInt) -> Bool

    rl_get_framebuffer_height

    #deprecated("Use @rl.get_framebuffer_height from tonyfettes/raylib/rl instead")
    fn rl_get_framebuffer_height() -> Int

    rl_get_framebuffer_width

    #deprecated("Use @rl.get_framebuffer_width from tonyfettes/raylib/rl instead")
    fn rl_get_framebuffer_width() -> Int

    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

    rl_get_matrix_modelview

    #deprecated("Use @rl.get_matrix_modelview from tonyfettes/raylib/rl instead")
    fn rl_get_matrix_modelview() -> Matrix

    rl_get_matrix_projection

    #deprecated("Use @rl.get_matrix_projection from tonyfettes/raylib/rl instead")
    fn rl_get_matrix_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

    rl_load_draw_cube

    #deprecated("Use @rl.load_draw_cube from tonyfettes/raylib/rl instead")
    fn rl_load_draw_cube() -> Unit

    rl_load_draw_quad

    #deprecated("Use @rl.load_draw_quad from tonyfettes/raylib/rl instead")
    fn rl_load_draw_quad() -> Unit

    rl_load_framebuffer

    #deprecated("Use @rl.load_framebuffer from tonyfettes/raylib/rl instead")
    fn rl_load_framebuffer() -> UInt

    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

    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

    rl_mult_matrixf

    #deprecated("Use @rl.mult_matrixf from tonyfettes/raylib/rl instead")
    fn rl_mult_matrixf(matf : Bytes) -> Unit

    rl_normal3f

    #deprecated("Use @rl.normal3f from tonyfettes/raylib/rl instead")
    fn rl_normal3f(x : Float, y : Float, z : Float) -> Unit

    rl_pop_matrix

    #deprecated("Use @rl.pop_matrix from tonyfettes/raylib/rl instead")
    fn rl_pop_matrix() -> Unit

    rl_push_matrix

    #deprecated("Use @rl.push_matrix from tonyfettes/raylib/rl instead")
    fn rl_push_matrix() -> Unit

    rl_rotatef

    #deprecated("Use @rl.rotatef from tonyfettes/raylib/rl instead")
    fn rl_rotatef(angle : Float, x : Float, y : Float, z : Float) -> Unit

    rl_scalef

    #deprecated("Use @rl.scalef from tonyfettes/raylib/rl instead")
    fn rl_scalef(x : Float, y : Float, z : Float) -> Unit

    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

    rl_set_blend_mode

    #deprecated("Use @rl.set_blend_mode from tonyfettes/raylib/rl instead")
    fn rl_set_blend_mode(mode : Int) -> Unit

    rl_set_texture

    #deprecated("Use @rl.set_texture from tonyfettes/raylib/rl instead")
    fn rl_set_texture(id : UInt) -> Unit

    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

    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

    rl_tex_coord2f

    #deprecated("Use @rl.tex_coord2f from tonyfettes/raylib/rl instead")
    fn rl_tex_coord2f(x : Float, y : Float) -> Unit

    rl_translatef

    #deprecated("Use @rl.translatef from tonyfettes/raylib/rl instead")
    fn rl_translatef(x : Float, y : Float, z : Float) -> Unit

    rl_unload_framebuffer

    #deprecated("Use @rl.unload_framebuffer from tonyfettes/raylib/rl instead")
    fn rl_unload_framebuffer(id : UInt) -> Unit

    rl_unload_texture

    #deprecated("Use @rl.unload_texture from tonyfettes/raylib/rl instead")
    fn rl_unload_texture(id : UInt) -> Unit

    rl_vertex2f

    #deprecated("Use @rl.vertex2f from tonyfettes/raylib/rl instead")
    fn rl_vertex2f(x : Float, y : Float) -> Unit

    rl_vertex3f

    #deprecated("Use @rl.vertex3f from tonyfettes/raylib/rl instead")
    fn rl_vertex3f(x : Float, y : Float, z : Float) -> Unit

    rl_viewport

    #deprecated("Use @rl.viewport from tonyfettes/raylib/rl instead")
    fn rl_viewport(x : Int, y : Int, width : Int, height : Int) -> Unit

    save_file_data

    fn save_file_data(file_name : String, data : Bytes, data_size : Int) -> Bool

    save_file_text

    fn save_file_text(file_name : String, text : String) -> Bool

    set_audio_stream_buffer_size_default

    fn set_audio_stream_buffer_size_default(size : Int) -> Unit

    set_automation_event_base_frame

    fn set_automation_event_base_frame(frame : Int) -> Unit

    set_clipboard_text

    fn set_clipboard_text(text : String) -> Unit

    set_config_flags

    fn set_config_flags(flags : Int) -> Unit

    set_exit_key

    fn set_exit_key(key : Int) -> Unit

    set_font_texture_filter

    #deprecated("Use font.texture().set_filter(filter) instead")
    fn set_font_texture_filter(font : Font, filter : Int) -> Unit

    set_gamepad_mappings

    fn set_gamepad_mappings(mappings : String) -> Int

    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

    set_master_volume

    fn set_master_volume(volume : Float) -> Unit

    set_mouse_cursor

    fn set_mouse_cursor(cursor : Int) -> Unit

    set_mouse_offset

    fn set_mouse_offset(offset_x : Int, offset_y : Int) -> Unit

    set_mouse_position

    fn set_mouse_position(x : Int, y : Int) -> Unit

    set_mouse_scale

    fn set_mouse_scale(scale_x : Float, scale_y : Float) -> Unit

    set_random_seed

    fn set_random_seed(seed : Int) -> Unit

    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_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_target_fps

    fn set_target_fps(fps : Int) -> Unit

    set_text_line_spacing

    fn set_text_line_spacing(spacing : Int) -> Unit

    set_trace_log_level

    fn set_trace_log_level(log_level : Int) -> Unit

    set_window_focused

    fn set_window_focused() -> Unit

    set_window_icon

    fn set_window_icon(image : Image) -> Unit

    set_window_max_size

    fn set_window_max_size(width : Int, height : Int) -> Unit

    set_window_min_size

    fn set_window_min_size(width : Int, height : Int) -> Unit

    set_window_monitor

    fn set_window_monitor(monitor : Int) -> Unit

    set_window_opacity

    fn set_window_opacity(opacity : Float) -> Unit

    set_window_position

    fn set_window_position(x : Int, y : Int) -> Unit

    set_window_size

    fn set_window_size(width : Int, height : Int) -> Unit

    set_window_state

    fn set_window_state(flags : Int) -> Unit

    set_window_title

    fn set_window_title(title : String) -> Unit

    show_cursor

    fn show_cursor() -> Unit

    skyblue

    let skyblue : Color

    start_automation_event_recording

    fn start_automation_event_recording() -> Unit

    stop_automation_event_recording

    fn stop_automation_event_recording() -> Unit

    swap_screen_buffer

    fn swap_screen_buffer() -> Unit

    take_screenshot

    fn take_screenshot(file_name : String) -> Unit

    toggle_borderless_windowed

    fn toggle_borderless_windowed() -> Unit

    toggle_fullscreen

    fn toggle_fullscreen() -> Unit

    trace_log

    fn trace_log(log_level : Int, text : String) -> Unit

    unload_directory_files

    fn unload_directory_files(files : FilePathList) -> Unit

    unload_dropped_files

    fn unload_dropped_files(files : FilePathList) -> Unit

    update_camera

    fn update_camera(camera : Camera3D, mode : Int) -> Camera3D

    update_camera_pro

    fn update_camera_pro(camera : Camera3D, movement : Vector3, rotation : Vector3, zoom : Float) -> Camera3D

    upload_mesh

    #deprecated("Use Mesh::upload instead")
    fn upload_mesh(mesh : Mesh, dynamic : Int) -> Unit

    violet

    let 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

    vr_stereo_config_left_screen_center

    #deprecated("Use VrStereoConfig::left_screen_center instead")
    fn vr_stereo_config_left_screen_center(config : VrStereoConfig) -> Bytes

    vr_stereo_config_right_lens_center

    #deprecated("Use VrStereoConfig::right_lens_center instead")
    fn vr_stereo_config_right_lens_center(config : VrStereoConfig) -> Bytes

    vr_stereo_config_right_screen_center

    #deprecated("Use VrStereoConfig::right_screen_center instead")
    fn vr_stereo_config_right_screen_center(config : VrStereoConfig) -> Bytes

    vr_stereo_config_scale

    #deprecated("Use VrStereoConfig::scale instead")
    fn vr_stereo_config_scale(config : VrStereoConfig) -> Bytes

    vr_stereo_config_scale_in

    #deprecated("Use VrStereoConfig::scale_in instead")
    fn vr_stereo_config_scale_in(config : VrStereoConfig) -> Bytes

    wait_time

    fn wait_time(seconds : Double) -> Unit

    white

    let white : Color

    window_should_close

    fn window_should_close() -> Bool

    yellow

    let yellow : Color