raylib

MoonBit bindings for raylib

moon add tonyfettes/raylib@0.4.0
Download zip
Version
0.4.0
License
MIT
Last updated
3 months ago
Downloads
4K
README

#tonyfettes/raylib

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

#Features

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

#Prerequisites

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

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

#Windows

Either of the following C compilers will work:

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

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

#Quick Start

#Install

Add the dependency to your project:

moon add tonyfettes/raylib

#Hello Window

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

Build and run:

moon run --target native main/

#Building Examples

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

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

#API Overview

Import tonyfettes/raylib and use the @raylib namespace:

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

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

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

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

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

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

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

#License

MIT

#
AudioBuffer

AudioBuffer, used in audio stream processor callbacks from C.

#
AudioStream

type AudioStream

AudioStream type, wrapping the internal FFI audio stream resource.

#
AudioStream::attach_processor

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

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

#
AudioStream::detach_processor

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

Detach audio stream processor from stream.

#
AudioStream::is_playing

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

Check if audio stream is playing.

#
AudioStream::is_processed

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

Check if any audio stream buffers requires refill.

#
AudioStream::is_valid

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

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

#
AudioStream::load

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

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

#
AudioStream::pause

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

Pause audio stream.

#
AudioStream::play

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

Play audio stream.

#
AudioStream::resume_

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

Resume audio stream.

#
AudioStream::set_pan

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

Set pan for audio stream (0.5 is centered).

#
AudioStream::set_pitch

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

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

#
AudioStream::set_volume

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

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

#
AudioStream::stop

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

Stop audio stream.

#
AudioStream::unload

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

Unload audio stream and free memory.

#
AudioStream::update

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

Update audio stream buffers with data.

#
AutomationEvent

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

Automation event with frame, type, and parameters.

#
AutomationEvent::from_bytes

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

Deserialize an AutomationEvent from a Bytes buffer.

#
AutomationEvent::to_bytes

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

Serialize an AutomationEvent to a Bytes buffer.

#
AutomationEventList

type AutomationEventList

#
AutomationEventList::count

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

Get the number of automation events in the list.

#
AutomationEventList::export_

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

Export automation events list as text file.

#
AutomationEventList::get

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

Get an automation event from the list by index.

#
AutomationEventList::load

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

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

#
AutomationEventList::set

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

Set automation event list to record to.

#
AutomationEventList::unload

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

Unload automation events list from file.

#
BoundingBox

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

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

#
BoundingBox::from_bytes

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

Deserialize BoundingBox from bytes.

#
BoundingBox::new

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

Create a new BoundingBox.

#
BoundingBox::to_bytes

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

Serialize BoundingBox to bytes.

#
Camera2D

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

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

#
Camera2D::from_bytes

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

Deserialize Camera2D from bytes.

#
Camera2D::new

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

Create a new Camera2D.

#
Camera2D::to_bytes

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

Serialize Camera2D to bytes.

#
Camera3D

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

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

#
Camera3D::from_bytes

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

Deserialize Camera3D from bytes.

#
Camera3D::new

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

Create a new Camera3D.

#
Camera3D::to_bytes

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

Serialize Camera3D to bytes.

#
Color

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

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

#
Color::from_bytes

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

Deserialize Color from bytes.

#
Color::new

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

Create a new Color from RGBA components.

#
Color::to_bytes

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

Serialize Color to bytes.

#
FilePathList

type FilePathList

#
FilePathList::count

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

Get the number of filepaths in the list.

#
FilePathList::load_dropped

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

Load dropped filepaths.

#
FloatArray

type FloatArray

#
FloatArray::free

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

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

#
FloatArray::length

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

Get the number of elements in this float array.

#
FloatArray::new

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

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

#
FloatArray::op_get

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

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

#
FloatArray::op_set

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

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

#
FloatArray::pointer

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

#
Font

type Font

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

#
Font::base_size

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

Get font base size (default chars height).

#
Font::draw_codepoint

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

Draw one character (codepoint).

#
Font::draw_codepoints

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

Draw multiple characters (codepoints).

#
Font::draw_text

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

Draw text using font and additional parameters.

#
Font::draw_text_pro

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

Draw text using font and pro parameters (rotation).

#
Font::export_as_code

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

Export font as code file, returns true on success.

#
Font::get_default

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

Get the default font.

#
Font::glyph_atlas_rec

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

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

#
Font::glyph_count

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

Get font number of glyph characters.

#
Font::glyph_index

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

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

#
Font::glyph_info

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

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

#
Font::glyph_padding

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

Get font glyph padding.

#
Font::is_valid

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

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

#
Font::load

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

Load font from file into GPU memory (VRAM).

#
Font::load_ex

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

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

#
Font::load_ex_codepoints

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

Load font from file with extended parameters and custom codepoints.

#
Font::load_from_atlas

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

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

#
Font::load_from_image

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

Load font from Image (XNA style).

#
Font::load_from_memory

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

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

#
Font::measure_text

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

Measure string size for font.

#
Font::new

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

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

#
Font::texture

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

Get font texture atlas.

#
Font::unload

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

Unload font from GPU memory (VRAM).

#
GlyphInfo

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

Font character glyph info data.
impl Show for GlyphInfo

#
GlyphInfo::from_bytes

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

Deserialize a GlyphInfo from a byte buffer.

#
GlyphInfo::new

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

Create a new GlyphInfo.

#
GlyphInfoArray

type GlyphInfoArray

Array of glyph info data for font characters.

#
GlyphInfoArray::count

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

Get the number of glyphs in the array.

#
GlyphInfoArray::gen_image_atlas

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

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

#
GlyphInfoArray::get

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

Get glyph info at the given index in the array.

#
GlyphInfoArray::load

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

Load font data for further use.

#
GlyphInfoArray::new

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

Allocate an empty GlyphInfoArray of the given size.

#
GlyphInfoArray::op_set

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

Set a glyph at the given index.

#
GlyphInfoArray::unload

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

Unload font chars info data (RAM).

#
Image

type Image

#
Image::adjust_brightness

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

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

#
Image::adjust_contrast

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

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

#
Image::alpha_border

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

Get image alpha border rectangle.

#
Image::alpha_clear

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

Clear alpha channel to desired color.

#
Image::alpha_crop

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

Crop image depending on alpha value.

#
Image::alpha_mask

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

Apply alpha mask to image.

#
Image::alpha_premultiply

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

Premultiply alpha channel.

#
Image::blur_gaussian

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

Apply Gaussian blur using a box blur approximation.

#
Image::clear_background

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

Clear image background with given color.

#
Image::color_grayscale

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

Modify image color: grayscale.

#
Image::color_invert

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

Modify image color: invert.

#
Image::color_replace

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

Modify image color: replace color.

#
Image::color_tint

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

Modify image color: tint.

#
Image::copy

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

Create an image duplicate (useful for transformations).

#
Image::crop

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

Crop an image to a defined rectangle.

#
Image::dither

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

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

#
Image::draw

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

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

#
Image::draw_circle

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

Draw a filled circle within an image.

#
Image::draw_circle_lines

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

Draw circle outline within an image.

#
Image::draw_circle_lines_v

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

Draw circle outline within an image (Vector version).

#
Image::draw_circle_v

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

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

#
Image::draw_line

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

Draw line within an image.

#
Image::draw_line_ex

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

Draw a line defining thickness within an image.

#
Image::draw_line_v

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

Draw line within an image (Vector version).

#
Image::draw_pixel

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

Draw pixel within an image.

#
Image::draw_pixel_v

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

Draw pixel within an image (Vector version).

#
Image::draw_rectangle

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

Draw rectangle within an image.

#
Image::draw_rectangle_lines

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

Draw rectangle lines within an image.

#
Image::draw_rectangle_rec

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

Draw rectangle within an image.

#
Image::draw_rectangle_v

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

Draw rectangle within an image (Vector version).

#
Image::draw_text

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

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

#
Image::draw_text_ex

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

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

#
Image::draw_triangle

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

Draw triangle within an image.

#
Image::draw_triangle_ex

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

Draw triangle with interpolated colors within an image.

#
Image::draw_triangle_fan

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

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

#
Image::draw_triangle_lines

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

Draw triangle outline within an image.

#
Image::draw_triangle_strip

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

Draw a triangle strip defined by points within an image.

#
Image::export_

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

Export image data to file, returns true on success.

#
Image::export_as_code

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

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

#
Image::export_to_memory

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

Export image to memory buffer.

#
Image::flip_horizontal

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

Flip image horizontally.

#
Image::flip_vertical

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

Flip image vertically.

#
Image::format

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

Get image data format.

#
Image::from_channel

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

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

#
Image::from_image

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

Create an image from another image piece.

#
Image::gen_cellular

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

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

#
Image::gen_checked

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

Generate image: checked.

#
Image::gen_color

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

Generate image: plain color.

#
Image::gen_gradient_linear

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

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

#
Image::gen_gradient_radial

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

Generate image: radial gradient.

#
Image::gen_gradient_square

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

Generate image: square gradient.

#
Image::gen_mipmaps

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

Compute all mipmap levels for a provided image.

#
Image::gen_perlin_noise

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

Generate image: perlin noise.

#
Image::gen_text

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

Generate image: grayscale image from text data.

#
Image::gen_white_noise

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

Generate image: white noise.

#
Image::get_color

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

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

#
Image::height

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

Get image height.

#
Image::is_valid

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

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

#
Image::kernel_convolution

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

Apply custom square convolution kernel to image.

#
Image::load

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

Load image from file into CPU memory (RAM).

#
Image::load_anim

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

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

#
Image::load_anim_from_memory

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

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

#
Image::load_colors

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

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

#
Image::load_from_memory

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

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

#
Image::load_from_screen

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

Load image from screen buffer (screenshot).

#
Image::load_from_texture

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

Load image from GPU texture data.

#
Image::load_palette

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

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

#
Image::load_raw

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

Load image from RAW file data.

#
Image::mipmaps

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

Get image mipmap levels.

#
Image::new

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

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

#
Image::resize

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

Resize image (Bicubic scaling algorithm).

#
Image::resize_canvas

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

Resize canvas and fill with color.

#
Image::resize_nn

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

Resize image (Nearest-Neighbor scaling algorithm).

#
Image::rotate

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

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

#
Image::rotate_ccw

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

Rotate image counter-clockwise 90deg.

#
Image::rotate_cw

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

Rotate image clockwise 90deg.

#
Image::set_format

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

Convert image data to desired format.

#
Image::text

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

Create an image from text (default font).

#
Image::text_ex

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

Create an image from text (custom sprite font).

#
Image::to_pot

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

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

#
Image::to_texture

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

Load texture from image data.

#
Image::to_texture_cubemap

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

Load cubemap from image, multiple image cubemap layouts supported.

#
Image::unload

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

Unload image from CPU memory (RAM).

#
Image::width

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

Get image width.

#
Material

type Material

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

#
Material::is_valid

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

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

#
Material::load_default

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

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

#
Material::maps

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

Get material maps array.

#
Material::set_map_color

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

Set color for a material map type.

#
Material::set_map_value

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

Set value for a material map type.

#
Material::set_shader

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

Set shader for a material.

#
Material::set_texture

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

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

#
Material::shader

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

Get shader assigned to the material.

#
Material::unload

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

Unload material from GPU memory (VRAM).

#
MaterialMap

type MaterialMap

Material map, contains texture, color, and value.

#
MaterialMap::color

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

Get material map color.

#
MaterialMap::set_color

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

Set material map color.

#
MaterialMap::set_texture

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

Set material map texture.

#
MaterialMap::set_value

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

Set material map value.

#
MaterialMap::texture

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

Get material map texture.

#
MaterialMap::value

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

Get material map value.

#
MaterialMapArray

type MaterialMapArray

Array of material maps, accessed by index.

#
MaterialMapArray::count

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

Get the number of material maps in the array.

#
MaterialMapArray::op_get

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

Get a material map by index.

#
MaterialMapArray::op_set

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

Set a material map at the given index.

#
MaterialsArray

type MaterialsArray

Array of materials loaded from a model file.

#
MaterialsArray::count

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

Get the number of materials in the array.

#
MaterialsArray::get

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

Get a material from the array by index.

#
MaterialsArray::load

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

Load materials from model file.

#
MaterialsArray::unload

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

Unload materials array data.

#
Matrix

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

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

#
Matrix::add

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

Add two matrices.

#
Matrix::decompose

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

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

#
Matrix::determinant

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

Compute matrix determinant.

#
Matrix::from_bytes

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

Deserialize Matrix from bytes.

#
Matrix::frustum

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

Get perspective projection matrix for a given view frustum.

#
Matrix::identity

fn Matrix::identity() -> Matrix

Get identity matrix.

#
Matrix::invert

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

Invert provided matrix.

#
Matrix::look_at

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

Get camera look-at matrix (view matrix).

#
Matrix::multiply

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

Get two matrix multiplication.

#
Matrix::ortho

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

Get orthographic projection matrix.

#
Matrix::perspective

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

Get perspective projection matrix.

#
Matrix::rotate

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

Create rotation matrix from axis and angle.

#
Matrix::rotate_x

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

Get x-rotation matrix.

#
Matrix::rotate_xyz

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

Get xyz-rotation matrix.

#
Matrix::rotate_y

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

Get y-rotation matrix.

#
Matrix::rotate_z

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

Get z-rotation matrix.

#
Matrix::rotate_zyx

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

Get zyx-rotation matrix.

#
Matrix::scale

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

Get scaling matrix.

#
Matrix::subtract

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

Subtract two matrices (left - right).

#
Matrix::to_bytes

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

Serialize Matrix to bytes.

#
Matrix::trace

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

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

#
Matrix::translate

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

Get translation matrix.

#
Matrix::transpose

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

Transposes provided matrix.

#
MatrixArray

type MatrixArray

#
MatrixArray::length

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

Get the number of elements in this matrix array.

#
MatrixArray::op_get

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

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

#
MatrixArray::op_set

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

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

#
Mesh

type Mesh

A mesh containing vertex data and GPU buffer IDs.

#
Mesh::bounding_box

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

Compute mesh bounding box limits.

#
Mesh::colors

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

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

#
Mesh::draw

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

Draw a 3D mesh with material and transform.

#
Mesh::draw_instanced

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

Draw multiple mesh instances with material and different transforms.

#
Mesh::export_

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

Export mesh data to file, returns true on success.

#
Mesh::export_as_code

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

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

#
Mesh::gen_cone

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

Generate cone/pyramid mesh.

#
Mesh::gen_cube

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

Generate cuboid mesh.

#
Mesh::gen_cubicmap

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

Generate cubes-based map mesh from image data.

#
Mesh::gen_cylinder

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

Generate cylinder mesh.

#
Mesh::gen_from_points

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

Generate a mesh from raw vertex positions and colors.

#
Mesh::gen_heightmap

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

Generate heightmap mesh from image data.

#
Mesh::gen_hemisphere

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

Generate half-sphere mesh (no bottom cap).

#
Mesh::gen_knot

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

Generate trefoil knot mesh.

#
Mesh::gen_plane

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

Generate plane mesh (with subdivisions).

#
Mesh::gen_poly

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

Generate polygonal mesh.

#
Mesh::gen_sphere

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

Generate sphere mesh (standard sphere).

#
Mesh::gen_tangents

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

Compute mesh tangents.

#
Mesh::gen_torus

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

Generate torus mesh.

#
Mesh::indices

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

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

#
Mesh::new

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

Create a new mesh from vertex data arrays.

#
Mesh::normals

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

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

#
Mesh::tangents

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

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

#
Mesh::texcoords

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

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

#
Mesh::texcoords2

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

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

#
Mesh::triangle_count

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

Get the number of triangles in the mesh.

#
Mesh::unload

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

Unload mesh data from CPU and GPU.

#
Mesh::update_buffer

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

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

#
Mesh::upload

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

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

#
Mesh::vertex_count

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

Get the number of vertices in the mesh.

#
Mesh::vertices

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

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

#
Model

type Model

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

#
Model::bind_pose_rotation

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

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

#
Model::bind_pose_translation

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

Get the bind pose translation for the given bone.

#
Model::bone_count

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

Get the number of bones in the model.

#
Model::bone_matrices

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

Get the current model bone transformation matrices, if available.

#
Model::bone_name

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

Get the name of the given bone.

#
Model::bone_parent

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

Get the parent bone index for the given bone.

#
Model::bounding_box

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

Compute model bounding box limits (considers all meshes).

#
Model::draw

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

Draw a model (with texture if set).

#
Model::draw_ex

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

Draw a model with extended parameters.

#
Model::draw_wires

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

Draw a model wires (with texture if set).

#
Model::draw_wires_ex

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

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

#
Model::is_animation_valid

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

Check model animation skeleton match.

#
Model::is_valid

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

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

#
Model::load

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

Load model from files (meshes and materials).

#
Model::load_from_mesh

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

Load model from generated mesh (default material).

#
Model::material

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

Get a material from the model by index.

#
Model::material_count

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

Get the number of materials in the model.

#
Model::mesh

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

Get a mesh from the model by index.

#
Model::mesh_count

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

Get the number of meshes in the model.

#
Model::set_material_shader

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

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

#
Model::set_material_texture

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

Set texture for a material map type in the model.

#
Model::set_mesh_material

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

Set material for a mesh.

#
Model::set_transform

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

Set the transform matrix for the model.

#
Model::transform

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

Get the transform matrix of the model.

#
Model::unload

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

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

#
Model::update_animation

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

Update model animation pose (CPU).

#
Model::update_animation_ex

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

Update model animation pose by blending two animations.

#
ModelAnimations

type ModelAnimations

Model animations array, loaded from file.

#
ModelAnimations::bone_count

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

Get the bone count for a specific animation.

#
ModelAnimations::count

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

Get the number of animations in the array.

#
ModelAnimations::frame_count

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

Get the frame count for a specific animation.

Deprecated: raylib 6.0 renamed model animation frames to keyframes.

#
ModelAnimations::frame_pose_rotation

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

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

Deprecated: raylib 6.0 renamed model animation frames to keyframes.

#
ModelAnimations::frame_pose_translation

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

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

Deprecated: raylib 6.0 renamed model animation frames to keyframes.

#
ModelAnimations::keyframe_count

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

Get the keyframe count for a specific animation.

#
ModelAnimations::keyframe_pose_rotation

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

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

#
ModelAnimations::keyframe_pose_translation

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

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

#
ModelAnimations::load

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

Load model animations from file.

#
ModelAnimations::unload

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

Unload animation array data.

#
Music

type Music

Music stream type, wrapping the internal FFI music resource.

#
Music::is_playing

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

Check if music is playing.

#
Music::is_valid

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

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

#
Music::load

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

Load music stream from file.

#
Music::load_from_memory

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

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

#
Music::pause

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

Pause music playing.

#
Music::play

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

Start music playing.

#
Music::resume_

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

Resume playing paused music.

#
Music::seek

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

Seek music to a position (in seconds).

#
Music::set_pan

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

Set pan for a music (0.5 is center).

#
Music::set_pitch

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

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

#
Music::set_volume

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

Set volume for music (1.0 is max level).

#
Music::stop

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

Stop music playing.

#
Music::time_length

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

Get music time length (in seconds).

#
Music::time_played

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

Get current music time played (in seconds).

#
Music::unload

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

Unload music stream.

#
Music::update

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

Updates buffers for music streaming.

#
NPatchInfo

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

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

#
NPatchInfo::from_bytes

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

Deserialize NPatchInfo from bytes.

#
NPatchInfo::new

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

Create a new NPatchInfo.

#
NPatchInfo::to_bytes

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

Serialize NPatchInfo to bytes.

#
Ray

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

Ray, ray for raycasting.
impl Show for Ray

#
Ray::from_bytes

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

Deserialize Ray from bytes.

#
Ray::new

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

Create a new Ray.

#
Ray::to_bytes

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

Serialize Ray to bytes.

#
RayCollision

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

RayCollision, ray hit information.

#
RayCollision::from_bytes

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

Deserialize RayCollision from bytes.

#
RayCollision::new

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

Create a new RayCollision.

#
Rectangle

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

Rectangle, 4 components.
impl Show for Rectangle

#
Rectangle::from_bytes

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

Deserialize Rectangle from bytes.

#
Rectangle::new

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

Create a new Rectangle.

#
Rectangle::to_bytes

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

Serialize Rectangle to bytes.

#
RenderTexture

type RenderTexture

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

#
RenderTexture::begin_mode

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

Begin drawing to render texture.

#
RenderTexture::depth

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

Get the depth buffer attachment texture.

#
RenderTexture::depth_id

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

Get the depth texture OpenGL id.

#
RenderTexture::draw_ex

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

Draw a render texture with extended parameters.

#
RenderTexture::draw_pro

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

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

#
RenderTexture::draw_rec

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

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

#
RenderTexture::fbo_id

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

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

#
RenderTexture::height

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

Get render texture height.

#
RenderTexture::id

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

Get the OpenGL framebuffer object id.

#
RenderTexture::is_valid

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

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

#
RenderTexture::load

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

Load texture for rendering (framebuffer).

#
RenderTexture::load_depth_tex

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

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

#
RenderTexture::load_shadowmap

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

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

#
RenderTexture::new

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

Create a new RenderTexture from raw OpenGL parameters.

#
RenderTexture::set_filter

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

Set render texture scaling filter mode.

#
RenderTexture::texture

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

Get the color buffer attachment texture.

#
RenderTexture::unload

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

Unload render texture from GPU memory (VRAM).

#
RenderTexture::unload_depth_tex

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

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

#
RenderTexture::unload_shadowmap

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

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

#
RenderTexture::width

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

Get render texture width.

#
Shader

type Shader

Shader program, includes vertex and fragment shaders.

#
Shader::begin_mode

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

Begin custom shader drawing.

#
Shader::get_location

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

Get shader uniform location.

#
Shader::get_location_attrib

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

Get shader attribute location.

#
Shader::id

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

Get shader program id (OpenGL handle).

#
Shader::is_valid

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

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

#
Shader::load

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

Load shader from files and bind default locations.

#
Shader::load_from_memory

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

Load shader from code strings and bind default locations.

#
Shader::set_locs

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

Set shader location index for a uniform.

#
Shader::set_value

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

Set shader uniform value.

#
Shader::set_value_matrix

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

Set shader uniform value (matrix 4x4).

#
Shader::set_value_texture

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

Set shader uniform value for texture (sampler2d).

#
Shader::set_value_v

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

Set shader uniform value vector.

#
Shader::unload

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

Unload shader from GPU memory (VRAM).

#
ShaderUniformData

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

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

#
ShaderUniformDataV

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

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

#
ShortArray

type ShortArray

#
ShortArray::free

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

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

#
ShortArray::length

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

Get the number of elements in this short array.

#
ShortArray::new

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

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

#
ShortArray::op_get

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

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

#
ShortArray::op_set

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

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

#
ShortArray::pointer

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

#
Sound

type Sound

Sound type, wrapping the internal FFI sound resource.

#
Sound::is_playing

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

Check if a sound is currently playing.

#
Sound::is_valid

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

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

#
Sound::load

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

Load sound from file.

#
Sound::load_alias

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

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

#
Sound::pause

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

Pause a sound.

#
Sound::play

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

Play a sound.

#
Sound::resume_

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

Resume a paused sound.

#
Sound::set_pan

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

Set pan for a sound (0.5 is center).

#
Sound::set_pitch

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

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

#
Sound::set_volume

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

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

#
Sound::stop

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

Stop playing a sound.

#
Sound::unload

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

Unload sound.

#
Sound::unload_alias

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

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

#
Sound::update

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

Update sound buffer with new data.

#
Texture

type Texture

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

#
Texture::draw

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

Draw a Texture2D.

#
Texture::draw_ex

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

Draw a Texture2D with extended parameters.

#
Texture::draw_npatch

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

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

#
Texture::draw_pro

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

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

#
Texture::draw_rec

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

Draw a part of a texture defined by a rectangle.

#
Texture::draw_v

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

Draw a Texture2D with position defined as Vector2.

#
Texture::format

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

Get texture data format (PixelFormat type).

#
Texture::from_id

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

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

#
Texture::gen_mipmaps

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

Generate GPU mipmaps for a texture.

#
Texture::get_shapes

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

Get texture that is used for shapes drawing.

#
Texture::height

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

Get texture base height.

#
Texture::id

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

Get the OpenGL texture id.

#
Texture::is_valid

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

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

#
Texture::load

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

Load texture from file into GPU memory (VRAM).

#
Texture::mipmaps

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

Get texture mipmap levels, 1 by default.

#
Texture::new

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

Create a new Texture from raw OpenGL parameters.

#
Texture::set_filter

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

Set texture scaling filter mode.

#
Texture::set_shapes

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

Set texture and rectangle to be used on shapes drawing.

#
Texture::set_wrap

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

Set texture wrapping mode.

#
Texture::unload

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

Unload texture from GPU memory (VRAM).

#
Texture::update

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

Update GPU texture with new data.

#
Texture::update_from_image_frame

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

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

#
Texture::update_rec

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

Update GPU texture rectangle with new data.

#
Texture::width

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

Get texture base width.

#
UByteArray

type UByteArray

#
UByteArray::free

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

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

#
UByteArray::length

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

Get the number of elements in this unsigned byte array.

#
UByteArray::new

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

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

#
UByteArray::op_get

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

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

#
UByteArray::op_set

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

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

#
UByteArray::pointer

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

#
UShortArray

type UShortArray

#
UShortArray::free

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

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

#
UShortArray::length

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

Get the number of elements in this unsigned short array.

#
UShortArray::new

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

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

#
UShortArray::op_get

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

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

#
UShortArray::op_set

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

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

#
UShortArray::pointer

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

#
Vector2

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

2D vector type.
impl Show for Vector2

#
Vector2::add

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

Add two vectors (v1 + v2).

#
Vector2::add_value

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

Add vector and float value.

#
Vector2::angle

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

Calculate angle between two vectors.

#
Vector2::clamp

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

Clamp vector between min and max vectors.

#
Vector2::clamp_value

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

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

#
Vector2::distance

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

Calculate distance between two vectors.

#
Vector2::distance_sqr

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

Calculate square distance between two vectors.

#
Vector2::divide

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

Divide vector by vector.

#
Vector2::dot_product

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

Calculate two vectors dot product.

#
Vector2::equals

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

Check whether two given vectors are almost equal.

#
Vector2::from_bytes

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

Deserialize Vector2 from bytes.

#
Vector2::invert

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

Invert the given vector.

#
Vector2::length

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

Calculate vector length.

#
Vector2::length_sqr

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

Calculate vector square length.

#
Vector2::lerp

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

Calculate linear interpolation between two vectors.

#
Vector2::line_angle

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

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

#
Vector2::max

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

Get max value for each pair of components.

#
Vector2::min

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

Get min value for each pair of components.

#
Vector2::move_towards

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

Move vector towards target.

#
Vector2::multiply

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

Multiply vector by vector.

#
Vector2::negate

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

Negate vector.

#
Vector2::new

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

Create a new Vector2.

#
Vector2::normalize

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

Normalize provided vector.

#
Vector2::one

fn Vector2::one() -> Vector2

Get Vector2 with components equal to one.

#
Vector2::reflect

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

Calculate reflected vector to normal.

#
Vector2::refract

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

Compute the direction of a refracted ray.

#
Vector2::rotate

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

Rotate vector by angle.

#
Vector2::scale

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

Scale vector (multiply by value).

#
Vector2::subtract

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

Subtract two vectors (v1 - v2).

#
Vector2::subtract_value

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

Subtract vector by float value.

#
Vector2::to_bytes

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

Serialize Vector2 to bytes.

#
Vector2::transform

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

Transforms a Vector2 by a given Matrix.

#
Vector2::zero

fn Vector2::zero() -> Vector2

Get Vector2 with components equal to zero.

#
Vector3

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

3D vector type.
impl Show for Vector3

#
Vector3::add

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

Add two vectors (v1 + v2).

#
Vector3::add_value

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

Add vector and float value.

#
Vector3::angle

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

Calculate angle between two vectors.

#
Vector3::barycenter

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

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

#
Vector3::clamp

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

Clamp vector between min and max vectors.

#
Vector3::cross_product

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

Calculate two vectors cross product.

#
Vector3::distance

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

Calculate distance between two vectors.

#
Vector3::distance_sqr

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

Calculate square distance between two vectors.

#
Vector3::dot_product

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

Calculate two vectors dot product.

#
Vector3::equals

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

Check whether two given vectors are almost equal.

#
Vector3::from_bytes

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

Deserialize Vector3 from bytes.

#
Vector3::invert

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

Invert the given vector.

#
Vector3::length

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

Calculate vector length.

#
Vector3::length_sqr

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

Calculate vector square length.

#
Vector3::lerp

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

Calculate linear interpolation between two vectors.

#
Vector3::max

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

Get max value for each pair of components.

#
Vector3::min

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

Get min value for each pair of components.

#
Vector3::move_towards

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

Move vector towards target.

#
Vector3::multiply

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

Multiply vector by vector.

#
Vector3::new

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

Create a new Vector3.

#
Vector3::normalize

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

Normalize provided vector.

#
Vector3::one

fn Vector3::one() -> Vector3

Get Vector3 with components equal to one.

#
Vector3::ortho_normalize

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

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

#
Vector3::perpendicular

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

Calculate one vector perpendicular to the given vector.

#
Vector3::project

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

Calculate the projection of the vector v1 on to v2.

#
Vector3::reflect

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

Calculate reflected vector to normal.

#
Vector3::refract

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

Compute the direction of a refracted ray.

#
Vector3::reject

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

Calculate the rejection of the vector v1 on to v2.

#
Vector3::rotate_by_axis_angle

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

Rotates a vector around an axis.

#
Vector3::rotate_by_quaternion

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

Transform a vector by quaternion rotation.

#
Vector3::scale

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

Scale vector by float value (multiply by value).

#
Vector3::subtract

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

Subtract two vectors (v1 - v2).

#
Vector3::subtract_value

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

Subtract vector by float value.

#
Vector3::to_bytes

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

Serialize Vector3 to bytes.

#
Vector3::transform

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

Transforms a Vector3 by a given Matrix.

#
Vector3::unproject

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

Projects a Vector3 from screen space into object space.

#
Vector3::zero

fn Vector3::zero() -> Vector3

Get Vector3 with components equal to zero.

#
Vector4

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

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

#
Vector4::add

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

Add two vectors (v1 + v2).

#
Vector4::add_value

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

Add vector and float value.

#
Vector4::divide

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

Divide vector by vector.

#
Vector4::equals

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

Check whether two given vectors are almost equal.

#
Vector4::from_bytes

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

Deserialize Vector4 from bytes.

#
Vector4::length

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

Calculate vector length.

#
Vector4::max

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

Get max value for each pair of components.

#
Vector4::min

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

Get min value for each pair of components.

#
Vector4::multiply

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

Multiply vector by vector.

#
Vector4::negate

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

Negate vector.

#
Vector4::new

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

Create a new Vector4.

#
Vector4::normalize

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

Normalize provided vector.

#
Vector4::one

fn Vector4::one() -> Vector4

Get Vector4 with components equal to one.

#
Vector4::quat_add

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

Add two quaternions.

#
Vector4::quat_add_value

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

Add quaternion and float value.

#
Vector4::quat_cubic_hermite_spline

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

Calculate quaternion cubic hermite spline interpolation.

#
Vector4::quat_divide

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

Divide two quaternions.

#
Vector4::quat_equals

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

Check whether two given quaternions are almost equal.

#
Vector4::quat_from_axis_angle

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

Get rotation quaternion for an angle and axis.

#
Vector4::quat_from_euler

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

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

#
Vector4::quat_from_matrix

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

Get a quaternion for a given rotation matrix.

#
Vector4::quat_from_vector3_to_vector3

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

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

#
Vector4::quat_identity

fn Vector4::quat_identity() -> Vector4

Get identity quaternion.

#
Vector4::quat_invert

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

Invert provided quaternion.

#
Vector4::quat_length

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

Compute the length of a quaternion.

#
Vector4::quat_lerp

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

Calculate linear interpolation between two quaternions.

#
Vector4::quat_multiply

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

Calculate two quaternion multiplication.

#
Vector4::quat_nlerp

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

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

#
Vector4::quat_normalize

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

Normalize provided quaternion.

#
Vector4::quat_scale

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

Scale quaternion by float value.

#
Vector4::quat_slerp

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

Calculate spherical linear interpolation between two quaternions.

#
Vector4::quat_subtract

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

Subtract two quaternions.

#
Vector4::quat_subtract_value

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

Subtract quaternion and float value.

#
Vector4::quat_to_axis_angle

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

Get the rotation angle and axis for a given quaternion.

#
Vector4::quat_to_euler

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

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

#
Vector4::quat_to_matrix

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

Get a matrix for a given quaternion.

#
Vector4::quat_transform

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

Transform a quaternion given a transformation matrix.

#
Vector4::scale

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

Scale vector by float value (multiply by value).

#
Vector4::subtract

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

Subtract two vectors (v1 - v2).

#
Vector4::subtract_value

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

Subtract vector by float value.

#
Vector4::to_bytes

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

Serialize Vector4 to bytes.

#
Vector4::zero

fn Vector4::zero() -> Vector4

Get Vector4 with components equal to zero.

#
VrDeviceInfo

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

Head-Mounted-Display device parameters.

#
VrDeviceInfo::new

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

Create a new VrDeviceInfo with the given parameters.

#
VrDeviceInfo::to_bytes

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

Serialize VrDeviceInfo to bytes for FFI passing.

#
VrStereoConfig

type VrStereoConfig

VR stereo rendering configuration for simulator.

#
VrStereoConfig::begin_mode

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

Begin stereo rendering (requires VR simulator).

#
VrStereoConfig::left_lens_center

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

Get VR left lens center.

#
VrStereoConfig::left_screen_center

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

Get VR left screen center.

#
VrStereoConfig::load

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

Load VR stereo config for VR simulator device parameters.

#
VrStereoConfig::right_lens_center

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

Get VR right lens center.

#
VrStereoConfig::right_screen_center

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

Get VR right screen center.

#
VrStereoConfig::scale

Get VR distortion scale.

#
VrStereoConfig::scale_in

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

Get VR distortion scale in.

#
VrStereoConfig::unload

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

Unload VR stereo config.

#
Wave

type Wave

Wave type, wrapping the internal FFI wave resource.

#
Wave::channels

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

Get wave channels count.

#
Wave::copy

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

Copy a wave to a new wave.

#
Wave::crop

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

Crop a wave to defined frames range.

#
Wave::data

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

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

#
Wave::export_

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

Export wave data to file, returns true on success.

#
Wave::export_as_code

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

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

#
Wave::format

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

Convert wave data to desired format.

#
Wave::frame_count

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

Get wave frame count.

#
Wave::is_valid

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

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

#
Wave::load

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

Load wave data from file.

#
Wave::load_from_memory

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

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

#
Wave::load_samples

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

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

#
Wave::load_sound

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

Load sound from wave data.

#
Wave::sample_rate

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

Get wave sample rate.

#
Wave::sample_size

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

Get wave sample size.

#
Wave::unload

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

Unload wave data.

#
WaveData

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

#
WaveSamples

pub struct WaveSamples {
// private fields
}

Wave samples data, wrapping a float array.

#
WaveSamples::length

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

Get the number of samples.

#
WaveSamples::op_get

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

Get sample value at index.

#
WaveSamples::op_set

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

Set sample value at index.

#
WaveSamples::unload

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

Unload samples data loaded with load_wave_samples.

#
BlendAdditive

let BlendAdditive : Int

Blend mode: additive blending

#
BlendAlpha

let BlendAlpha : Int

Blend mode: alpha blending (default)

#
BlendCustom

let BlendCustom : Int

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

#
BlendMultiplied

let BlendMultiplied : Int

Blend mode: multiplied blending

#
CameraCustom

let CameraCustom : Int

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

#
CameraFirstPerson

let CameraFirstPerson : Int

Camera first person mode.

#
CameraFree

let CameraFree : Int

Camera free mode.

#
CameraOrbital

let CameraOrbital : Int

Camera orbital mode, around target, zoom supported.

#
CameraOrthographic

let CameraOrthographic : Int

Orthographic projection.

#
CameraPerspective

let CameraPerspective : Int

Perspective projection.

#
CameraThirdPerson

let CameraThirdPerson : Int

Camera third person mode.

#
CubemapLayoutAutoDetect

let CubemapLayoutAutoDetect : Int

Cubemap layout: automatically detect layout type.

#
CubemapLayoutCrossFourByThree

let CubemapLayoutCrossFourByThree : Int

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

#
CubemapLayoutCrossThreeByFour

let CubemapLayoutCrossThreeByFour : Int

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

#
CubemapLayoutLineHorizontal

let CubemapLayoutLineHorizontal : Int

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

#
CubemapLayoutLineVertical

let CubemapLayoutLineVertical : Int

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

#
FlagBorderlessWindowedMode

let FlagBorderlessWindowedMode : Int

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

#
FlagFullscreenMode

let FlagFullscreenMode : Int

Config flag: set to run program in fullscreen.

#
FlagInterlacedHint

let FlagInterlacedHint : Int

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

#
FlagMsaa4xHint

let FlagMsaa4xHint : Int

Config flag: set to try enabling MSAA 4X.

#
FlagVsyncHint

let FlagVsyncHint : Int

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

#
FlagWindowAlwaysRun

let FlagWindowAlwaysRun : Int

Config flag: set to allow windows running while minimized.

#
FlagWindowHidden

let FlagWindowHidden : Int

Config flag: set to hide window.

#
FlagWindowHighdpi

let FlagWindowHighdpi : Int

Config flag: set to support HighDPI.

#
FlagWindowMaximized

let FlagWindowMaximized : Int

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

#
FlagWindowMinimized

let FlagWindowMinimized : Int

Config flag: set to minimize window (iconify).

#
FlagWindowMousePassthrough

let FlagWindowMousePassthrough : Int

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

#
FlagWindowResizable

let FlagWindowResizable : Int

Config flag: set to allow resizable window.

#
FlagWindowTopmost

let FlagWindowTopmost : Int

Config flag: set to window always on top.

#
FlagWindowTransparent

let FlagWindowTransparent : Int

Config flag: set to allow transparent framebuffer.

#
FlagWindowUndecorated

let FlagWindowUndecorated : Int

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

#
FlagWindowUnfocused

let FlagWindowUnfocused : Int

Config flag: set to window non focused.

#
FontBitmap

let FontBitmap : Int

Bitmap font generation, no anti-aliasing.

#
FontDefault

let FontDefault : Int

Default font generation, anti-aliased.

#
FontSdf

let FontSdf : Int

SDF font generation, requires external shader.

#
GamepadAxisLeftTrigger

let GamepadAxisLeftTrigger : Int

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

#
GamepadAxisLeftX

let GamepadAxisLeftX : Int

Gamepad axis: left stick X

#
GamepadAxisLeftY

let GamepadAxisLeftY : Int

Gamepad axis: left stick Y

#
GamepadAxisRightTrigger

let GamepadAxisRightTrigger : Int

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

#
GamepadAxisRightX

let GamepadAxisRightX : Int

Gamepad axis: right stick X

#
GamepadAxisRightY

let GamepadAxisRightY : Int

Gamepad axis: right stick Y

#
GamepadButtonLeftFaceDown

let GamepadButtonLeftFaceDown : Int

Gamepad button: left DPAD down

#
GamepadButtonLeftFaceLeft

let GamepadButtonLeftFaceLeft : Int

Gamepad button: left DPAD left

#
GamepadButtonLeftFaceRight

let GamepadButtonLeftFaceRight : Int

Gamepad button: left DPAD right

#
GamepadButtonLeftFaceUp

let GamepadButtonLeftFaceUp : Int

Gamepad button: left DPAD up

#
GamepadButtonLeftThumb

let GamepadButtonLeftThumb : Int

Gamepad button: joystick pressed button left

#
GamepadButtonLeftTrigger1

let GamepadButtonLeftTrigger1 : Int

Gamepad button: top/back trigger left (first)

#
GamepadButtonLeftTrigger2

let GamepadButtonLeftTrigger2 : Int

Gamepad button: top/back trigger left (second)

#
GamepadButtonMiddle

let GamepadButtonMiddle : Int

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

#
GamepadButtonMiddleLeft

let GamepadButtonMiddleLeft : Int

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

#
GamepadButtonMiddleRight

let GamepadButtonMiddleRight : Int

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

#
GamepadButtonRightFaceDown

let GamepadButtonRightFaceDown : Int

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

#
GamepadButtonRightFaceLeft

let GamepadButtonRightFaceLeft : Int

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

#
GamepadButtonRightFaceRight

let GamepadButtonRightFaceRight : Int

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

#
GamepadButtonRightFaceUp

let GamepadButtonRightFaceUp : Int

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

#
GamepadButtonRightThumb

let GamepadButtonRightThumb : Int

Gamepad button: joystick pressed button right

#
GamepadButtonRightTrigger1

let GamepadButtonRightTrigger1 : Int

Gamepad button: top/back trigger right (first)

#
GamepadButtonRightTrigger2

let GamepadButtonRightTrigger2 : Int

Gamepad button: top/back trigger right (second)

#
GamepadButtonUnknown

let GamepadButtonUnknown : Int

Gamepad button: unknown, just for error checking

#
GestureDoubletap

let GestureDoubletap : Int

Gesture: double tap

#
GestureDrag

let GestureDrag : Int

Gesture: drag

#
GestureHold

let GestureHold : Int

Gesture: hold

#
GestureNone

let GestureNone : Int

Gesture: no gesture

#
GesturePinchIn

let GesturePinchIn : Int

Gesture: pinch in

#
GesturePinchOut

let GesturePinchOut : Int

Gesture: pinch out

#
GestureSwipeDown

let GestureSwipeDown : Int

Gesture: swipe down

#
GestureSwipeLeft

let GestureSwipeLeft : Int

Gesture: swipe left

#
GestureSwipeRight

let GestureSwipeRight : Int

Gesture: swipe right

#
GestureSwipeUp

let GestureSwipeUp : Int

Gesture: swipe up

#
GestureTap

let GestureTap : Int

Gesture: tap

#
KeyA

let KeyA : Int

Key: A | a

#
KeyApostrophe

let KeyApostrophe : Int

Key: '

#
KeyB

let KeyB : Int

Key: B | b

#
KeyBackslash

let KeyBackslash : Int

Key: ''

#
KeyBackspace

let KeyBackspace : Int

Key: Backspace

#
KeyC

let KeyC : Int

Key: C | c

#
KeyCapsLock

let KeyCapsLock : Int

Key: Caps lock

#
KeyComma

let KeyComma : Int

Key: ,

#
KeyD

let KeyD : Int

Key: D | d

#
KeyDelete

let KeyDelete : Int

Key: Del

#
KeyDown

let KeyDown : Int

Key: Cursor down

#
KeyE

let KeyE : Int

Key: E | e

#
KeyEight

let KeyEight : Int

Key: 8

#
KeyEnd

let KeyEnd : Int

Key: End

#
KeyEnter

let KeyEnter : Int

Key: Enter

#
KeyEqual

let KeyEqual : Int

Key: =

#
KeyEscape

let KeyEscape : Int

Key: Esc

#
KeyF

let KeyF : Int

Key: F | f

#
KeyF1

let KeyF1 : Int

Key: F1

#
KeyF10

let KeyF10 : Int

Key: F10

#
KeyF11

let KeyF11 : Int

Key: F11

#
KeyF12

let KeyF12 : Int

Key: F12

#
KeyF2

let KeyF2 : Int

Key: F2

#
KeyF3

let KeyF3 : Int

Key: F3

#
KeyF4

let KeyF4 : Int

Key: F4

#
KeyF5

let KeyF5 : Int

Key: F5

#
KeyF6

let KeyF6 : Int

Key: F6

#
KeyF7

let KeyF7 : Int

Key: F7

#
KeyF8

let KeyF8 : Int

Key: F8

#
KeyF9

let KeyF9 : Int

Key: F9

#
KeyFive

let KeyFive : Int

Key: 5

#
KeyFour

let KeyFour : Int

Key: 4

#
KeyG

let KeyG : Int

Key: G | g

#
KeyGrave

let KeyGrave : Int

Key: `

#
KeyH

let KeyH : Int

Key: H | h

#
KeyHome

let KeyHome : Int

Key: Home

#
KeyI

let KeyI : Int

Key: I | i

#
KeyInsert

let KeyInsert : Int

Key: Ins

#
KeyJ

let KeyJ : Int

Key: J | j

#
KeyK

let KeyK : Int

Key: K | k

#
KeyKbMenu

let KeyKbMenu : Int

Key: KB menu

#
KeyKp0

let KeyKp0 : Int

Key: Keypad 0

#
KeyKp1

let KeyKp1 : Int

Key: Keypad 1

#
KeyKp2

let KeyKp2 : Int

Key: Keypad 2

#
KeyKp3

let KeyKp3 : Int

Key: Keypad 3

#
KeyKp4

let KeyKp4 : Int

Key: Keypad 4

#
KeyKp5

let KeyKp5 : Int

Key: Keypad 5

#
KeyKp6

let KeyKp6 : Int

Key: Keypad 6

#
KeyKp7

let KeyKp7 : Int

Key: Keypad 7

#
KeyKp8

let KeyKp8 : Int

Key: Keypad 8

#
KeyKp9

let KeyKp9 : Int

Key: Keypad 9

#
KeyL

let KeyL : Int

Key: L | l

#
KeyLeft

let KeyLeft : Int

Key: Cursor left

#
KeyLeftAlt

let KeyLeftAlt : Int

Key: Alt left

#
KeyLeftBracket

let KeyLeftBracket : Int

Key: [

#
KeyLeftControl

let KeyLeftControl : Int

Key: Control left

#
KeyLeftShift

let KeyLeftShift : Int

Key: Shift left

#
KeyLeftSuper

let KeyLeftSuper : Int

Key: Super left

#
KeyM

let KeyM : Int

Key: M | m

#
KeyMinus

let KeyMinus : Int

Key: -

#
KeyN

let KeyN : Int

Key: N | n

#
KeyNine

let KeyNine : Int

Key: 9

#
KeyNull

let KeyNull : Int

Key: NULL, used for no key pressed.

#
KeyNumLock

let KeyNumLock : Int

Key: Num lock

#
KeyO

let KeyO : Int

Key: O | o

#
KeyOne

let KeyOne : Int

Key: 1

#
KeyP

let KeyP : Int

Key: P | p

#
KeyPageDown

let KeyPageDown : Int

Key: Page down

#
KeyPageUp

let KeyPageUp : Int

Key: Page up

#
KeyPause

let KeyPause : Int

Key: Pause

#
KeyPeriod

let KeyPeriod : Int

Key: .

#
KeyPrintScreen

let KeyPrintScreen : Int

Key: Print screen

#
KeyQ

let KeyQ : Int

Key: Q | q

#
KeyR

let KeyR : Int

Key: R | r

#
KeyRight

let KeyRight : Int

Key: Cursor right

#
KeyRightAlt

let KeyRightAlt : Int

Key: Alt right

#
KeyRightBracket

let KeyRightBracket : Int

Key: ]

#
KeyRightControl

let KeyRightControl : Int

Key: Control right

#
KeyRightShift

let KeyRightShift : Int

Key: Shift right

#
KeyRightSuper

let KeyRightSuper : Int

Key: Super right

#
KeyS

let KeyS : Int

Key: S | s

#
KeyScrollLock

let KeyScrollLock : Int

Key: Scroll down

#
KeySemicolon

let KeySemicolon : Int

Key: ;

#
KeySeven

let KeySeven : Int

Key: 7

#
KeySix

let KeySix : Int

Key: 6

#
KeySlash

let KeySlash : Int

Key: /

#
KeySpace

let KeySpace : Int

Key: Space

#
KeyT

let KeyT : Int

Key: T | t

#
KeyTab

let KeyTab : Int

Key: Tab

#
KeyThree

let KeyThree : Int

Key: 3

#
KeyTwo

let KeyTwo : Int

Key: 2

#
KeyU

let KeyU : Int

Key: U | u

#
KeyUp

let KeyUp : Int

Key: Cursor up

#
KeyV

let KeyV : Int

Key: V | v

#
KeyW

let KeyW : Int

Key: W | w

#
KeyX

let KeyX : Int

Key: X | x

#
KeyY

let KeyY : Int

Key: Y | y

#
KeyZ

let KeyZ : Int

Key: Z | z

#
KeyZero

let KeyZero : Int

Key: 0

#
LogAll

let LogAll : Int

Trace log level: display all logs.

#
LogDebug

let LogDebug : Int

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

#
LogError

let LogError : Int

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

#
LogFatal

let LogFatal : Int

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

#
LogInfo

let LogInfo : Int

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

#
LogNone

let LogNone : Int

Trace log level: disable logging.

#
LogTrace

let LogTrace : Int

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

#
LogWarning

let LogWarning : Int

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

#
MaterialMapAlbedo

let MaterialMapAlbedo : Int

Albedo material map type (same as diffuse).

#
MaterialMapBrdf

let MaterialMapBrdf : Int

BRDF material map type.

#
MaterialMapCubemap

let MaterialMapCubemap : Int

Cubemap material map type (NOTE: Uses GL_TEXTURE_CUBE_MAP).

#
MaterialMapEmission

let MaterialMapEmission : Int

Emission material map type.

#
MaterialMapHeight

let MaterialMapHeight : Int

Heightmap material map type.

#
MaterialMapIrradiance

let MaterialMapIrradiance : Int

Irradiance material map type (NOTE: Uses GL_TEXTURE_CUBE_MAP).

#
MaterialMapMetalness

let MaterialMapMetalness : Int

Metalness material map type (same as specular).

#
MaterialMapNormal

let MaterialMapNormal : Int

Normal material map type.

#
MaterialMapOcclusion

let MaterialMapOcclusion : Int

Ambient occlusion material map type.

#
MaterialMapPrefilter

let MaterialMapPrefilter : Int

Prefilter material map type (NOTE: Uses GL_TEXTURE_CUBE_MAP).

#
MaterialMapRoughness

let MaterialMapRoughness : Int

Roughness material map type.

#
MouseButtonBack

let MouseButtonBack : Int

Mouse button: back (advanced mouse device)

#
MouseButtonExtra

let MouseButtonExtra : Int

Mouse button: extra (advanced mouse device)

#
MouseButtonForward

let MouseButtonForward : Int

Mouse button: forward (advanced mouse device)

#
MouseButtonLeft

let MouseButtonLeft : Int

Mouse button: left

#
MouseButtonMiddle

let MouseButtonMiddle : Int

Mouse button: middle (pressed wheel)

#
MouseButtonRight

let MouseButtonRight : Int

Mouse button: right

#
MouseButtonSide

let MouseButtonSide : Int

Mouse button: side (advanced mouse device)

#
MouseCursorArrow

let MouseCursorArrow : Int

Mouse cursor: arrow shape

#
MouseCursorCrosshair

let MouseCursorCrosshair : Int

Mouse cursor: cross shape

#
MouseCursorDefault

let MouseCursorDefault : Int

Mouse cursor: default pointer shape

#
MouseCursorIbeam

let MouseCursorIbeam : Int

Mouse cursor: text writing cursor shape

#
MouseCursorNotAllowed

let MouseCursorNotAllowed : Int

Mouse cursor: operation-not-allowed shape

#
MouseCursorPointingHand

let MouseCursorPointingHand : Int

Mouse cursor: pointing hand cursor

#
MouseCursorResizeAll

let MouseCursorResizeAll : Int

Mouse cursor: omnidirectional resize/move cursor shape

#
MouseCursorResizeEw

let MouseCursorResizeEw : Int

Mouse cursor: horizontal resize/move arrow shape

#
MouseCursorResizeNesw

let MouseCursorResizeNesw : Int

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

#
MouseCursorResizeNs

let MouseCursorResizeNs : Int

Mouse cursor: vertical resize/move arrow shape

#
MouseCursorResizeNwse

let MouseCursorResizeNwse : Int

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

#
NpatchNinePatch

let NpatchNinePatch : Int

Npatch layout: 3x3 tiles.

#
NpatchThreePatchHorizontal

let NpatchThreePatchHorizontal : Int

Npatch layout: 3x1 tiles.

#
NpatchThreePatchVertical

let NpatchThreePatchVertical : Int

Npatch layout: 1x3 tiles.

#
PixelformatUncompressedGrayAlpha

let PixelformatUncompressedGrayAlpha : Int

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

#
PixelformatUncompressedGrayscale

let PixelformatUncompressedGrayscale : Int

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

#
PixelformatUncompressedR32

let PixelformatUncompressedR32 : Int

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

#
PixelformatUncompressedR32g32b32

let PixelformatUncompressedR32g32b32 : Int

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

#
PixelformatUncompressedR32g32b32a32

let PixelformatUncompressedR32g32b32a32 : Int

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

#
PixelformatUncompressedR4g4b4a4

let PixelformatUncompressedR4g4b4a4 : Int

Pixel format: 16 bpp (4 bit alpha).

#
PixelformatUncompressedR5g5b5a1

let PixelformatUncompressedR5g5b5a1 : Int

Pixel format: 16 bpp (1 bit alpha).

#
PixelformatUncompressedR5g6b5

let PixelformatUncompressedR5g6b5 : Int

Pixel format: 16 bpp.

#
PixelformatUncompressedR8g8b8

let PixelformatUncompressedR8g8b8 : Int

Pixel format: 24 bpp.

#
PixelformatUncompressedR8g8b8a8

let PixelformatUncompressedR8g8b8a8 : Int

Pixel format: 32 bpp.

#
RlAttachmentColorChannel0

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

@deprecated Framebuffer attach type: color channel 0.

#
RlAttachmentColorChannel1

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

@deprecated Framebuffer attach type: color channel 1.

#
RlAttachmentColorChannel2

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

@deprecated Framebuffer attach type: color channel 2.

#
RlAttachmentColorChannel3

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

@deprecated Framebuffer attach type: color channel 3.

#
RlAttachmentCubemapNegativeX

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

@deprecated Framebuffer texture type: cubemap negative X.

#
RlAttachmentCubemapNegativeY

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

@deprecated Framebuffer texture type: cubemap negative Y.

#
RlAttachmentCubemapNegativeZ

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

@deprecated Framebuffer texture type: cubemap negative Z.

#
RlAttachmentCubemapPositiveX

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

@deprecated Framebuffer texture type: cubemap positive X.

#
RlAttachmentCubemapPositiveY

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

@deprecated Framebuffer texture type: cubemap positive Y.

#
RlAttachmentCubemapPositiveZ

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

@deprecated Framebuffer texture type: cubemap positive Z.

#
RlAttachmentDepth

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

@deprecated Framebuffer attach type: depth.

#
RlAttachmentRenderbuffer

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

@deprecated Framebuffer texture type: renderbuffer.

#
RlAttachmentStencil

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

@deprecated Framebuffer attach type: stencil.

#
RlAttachmentTexture2d

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

@deprecated Framebuffer texture type: texture 2D.

#
RlDrawFramebuffer

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

@deprecated Framebuffer target: draw framebuffer.

#
RlLines

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

@deprecated OpenGL draw mode: Lines.

#
RlQuads

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

@deprecated OpenGL draw mode: Quads.

#
RlReadFramebuffer

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

@deprecated Framebuffer target: read framebuffer.

#
RlTriangles

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

@deprecated OpenGL draw mode: Triangles.

#
ShaderLocBoneMatrices

let ShaderLocBoneMatrices : Int

Shader location: array of matrices uniform: boneMatrices

#
ShaderLocColorAmbient

let ShaderLocColorAmbient : Int

Shader location: vector uniform: ambient color

#
ShaderLocColorDiffuse

let ShaderLocColorDiffuse : Int

Shader location: vector uniform: diffuse color

#
ShaderLocColorSpecular

let ShaderLocColorSpecular : Int

Shader location: vector uniform: specular color

#
ShaderLocMapAlbedo

let ShaderLocMapAlbedo : Int

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

#
ShaderLocMapBrdf

let ShaderLocMapBrdf : Int

Shader location: sampler2d texture: brdf

#
ShaderLocMapCubemap

let ShaderLocMapCubemap : Int

Shader location: samplerCube texture: cubemap

#
ShaderLocMapEmission

let ShaderLocMapEmission : Int

Shader location: sampler2d texture: emission

#
ShaderLocMapHeight

let ShaderLocMapHeight : Int

Shader location: sampler2d texture: height

#
ShaderLocMapIrradiance

let ShaderLocMapIrradiance : Int

Shader location: samplerCube texture: irradiance

#
ShaderLocMapMetalness

let ShaderLocMapMetalness : Int

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

#
ShaderLocMapNormal

let ShaderLocMapNormal : Int

Shader location: sampler2d texture: normal

#
ShaderLocMapOcclusion

let ShaderLocMapOcclusion : Int

Shader location: sampler2d texture: occlusion

#
ShaderLocMapPrefilter

let ShaderLocMapPrefilter : Int

Shader location: samplerCube texture: prefilter

#
ShaderLocMapRoughness

let ShaderLocMapRoughness : Int

Shader location: sampler2d texture: roughness

#
ShaderLocMatrixModel

let ShaderLocMatrixModel : Int

Shader location: matrix uniform: model (transform)

#
ShaderLocMatrixMvp

let ShaderLocMatrixMvp : Int

Shader location: matrix uniform: model-view-projection

#
ShaderLocMatrixNormal

let ShaderLocMatrixNormal : Int

Shader location: matrix uniform: normal

#
ShaderLocMatrixProjection

let ShaderLocMatrixProjection : Int

Shader location: matrix uniform: projection

#
ShaderLocMatrixView

let ShaderLocMatrixView : Int

Shader location: matrix uniform: view (camera transform)

#
ShaderLocVectorView

let ShaderLocVectorView : Int

Shader location: vector uniform: view

#
ShaderLocVertexBoneids

let ShaderLocVertexBoneids : Int

Shader location: vertex attribute: boneIds

#
ShaderLocVertexBoneweights

let ShaderLocVertexBoneweights : Int

Shader location: vertex attribute: boneWeights

#
ShaderLocVertexColor

let ShaderLocVertexColor : Int

Shader location: vertex attribute: color

#
ShaderLocVertexNormal

let ShaderLocVertexNormal : Int

Shader location: vertex attribute: normal

#
ShaderLocVertexPosition

let ShaderLocVertexPosition : Int

Shader location: vertex attribute: position

#
ShaderLocVertexTangent

let ShaderLocVertexTangent : Int

Shader location: vertex attribute: tangent

#
ShaderLocVertexTexcoord01

let ShaderLocVertexTexcoord01 : Int

Shader location: vertex attribute: texcoord01

#
ShaderLocVertexTexcoord02

let ShaderLocVertexTexcoord02 : Int

Shader location: vertex attribute: texcoord02

#
ShaderUniformFloat

let ShaderUniformFloat : Int

Shader uniform type: float

#
ShaderUniformInt

let ShaderUniformInt : Int

Shader uniform type: int

#
ShaderUniformIvec2

let ShaderUniformIvec2 : Int

Shader uniform type: ivec2 (2 int)

#
ShaderUniformIvec3

let ShaderUniformIvec3 : Int

Shader uniform type: ivec3 (3 int)

#
ShaderUniformIvec4

let ShaderUniformIvec4 : Int

Shader uniform type: ivec4 (4 int)

#
ShaderUniformSampler2d

let ShaderUniformSampler2d : Int

Shader uniform type: sampler2d

#
ShaderUniformVec2

let ShaderUniformVec2 : Int

Shader uniform type: vec2 (2 float)

#
ShaderUniformVec3

let ShaderUniformVec3 : Int

Shader uniform type: vec3 (3 float)

#
ShaderUniformVec4

let ShaderUniformVec4 : Int

Shader uniform type: vec4 (4 float)

#
TextureFilterAnisotropic16x

let TextureFilterAnisotropic16x : Int

Texture filter: anisotropic filtering 16x.

#
TextureFilterAnisotropic4x

let TextureFilterAnisotropic4x : Int

Texture filter: anisotropic filtering 4x.

#
TextureFilterAnisotropic8x

let TextureFilterAnisotropic8x : Int

Texture filter: anisotropic filtering 8x.

#
TextureFilterBilinear

let TextureFilterBilinear : Int

Texture filter: linear filtering.

#
TextureFilterPoint

let TextureFilterPoint : Int

Texture filter: no filter, just pixel approximation.

#
TextureFilterTrilinear

let TextureFilterTrilinear : Int

Texture filter: trilinear filtering (linear with mipmaps).

#
TextureWrapClamp

let TextureWrapClamp : Int

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

#
TextureWrapMirrorClamp

let TextureWrapMirrorClamp : Int

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

#
TextureWrapMirrorRepeat

let TextureWrapMirrorRepeat : Int

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

#
TextureWrapRepeat

let TextureWrapRepeat : Int

Texture wrap: repeats texture in tiled mode.

#
attach_audio_mixed_processor

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

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

#
attach_music_stream_processor

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

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

#
audio_buffer_get_sample

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

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

#
audio_buffer_set_sample

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

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

#
begin_blend_mode

fn begin_blend_mode(mode : Int) -> Unit

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

#
begin_drawing

fn begin_drawing() -> Unit

Setup canvas (framebuffer) to start drawing.

#
begin_mode_2d

fn begin_mode_2d(camera : Camera2D) -> Unit

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

#
begin_mode_3d

fn begin_mode_3d(camera : Camera3D) -> Unit

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

#
begin_scissor_mode

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

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

#
beige

let beige : Color

Beige color.

#
black

let black : Color

Black color.

#
blank

let blank : Color

Blank color (fully transparent).

#
blue

let blue : Color

Blue color.

#
brown

let brown : Color

Brown color.

#
change_directory

fn change_directory(dir : String) -> Bool

Change working directory, return true on success.

#
check_collision_box_sphere

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

Check collision between box and sphere.

#
check_collision_boxes

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

Check collision between two bounding boxes.

#
check_collision_circle_line

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

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

#
check_collision_circle_rec

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

Check collision between circle and rectangle.

#
check_collision_circles

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

Check collision between two circles.

#
check_collision_lines

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

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

#
check_collision_point_circle

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

Check if point is inside circle.

#
check_collision_point_line

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

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

#
check_collision_point_poly

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

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

#
check_collision_point_rec

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

Check if point is inside rectangle.

#
check_collision_point_triangle

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

Check if point is inside a triangle.

#
check_collision_recs

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

Check collision between two rectangles.

#
check_collision_spheres

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

Check collision between two spheres.

#
clear_background

fn clear_background(color : Color) -> Unit

Set background color (framebuffer clear color).

#
clear_window_state

fn clear_window_state(flags : Int) -> Unit

Clear window configuration state flags.

#
close_audio_device

fn close_audio_device() -> Unit

Close the audio device and context.

#
close_window

fn close_window() -> Unit

Close window and unload OpenGL context.

#
codepoint_to_utf8

fn codepoint_to_utf8(codepoint : Int) -> Bytes

Encode one codepoint into UTF-8 byte array.

#
color_alpha

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

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

#
color_alpha_blend

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

Get src alpha-blended into dst color with tint.

#
color_brightness

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

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

#
color_contrast

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

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

#
color_from_hsv

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

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

#
color_from_normalized

fn color_from_normalized(normalized : Vector4) -> Color

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

#
color_is_equal

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

Check if two colors are equal.

#
color_lerp

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

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

#
color_normalize

fn color_normalize(color : Color) -> Vector4

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

#
color_tint

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

Get color multiplied with another color.

#
color_to_hsv

fn color_to_hsv(color : Color) -> Vector3

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

#
color_to_int

fn color_to_int(color : Color) -> Int

Get hexadecimal value for a Color (0xRRGGBBAA).

#
compress_data

fn compress_data(data : Bytes) -> Bytes

Compress data (DEFLATE algorithm).

#
compute_crc32

fn compute_crc32(data : Bytes) -> Int

Compute CRC32 hash code.

#
compute_md5

fn compute_md5(data : Bytes) -> Bytes

Compute MD5 hash code, returns 16 bytes.

#
compute_sha1

fn compute_sha1(data : Bytes) -> Bytes

Compute SHA1 hash code, returns 20 bytes.

#
darkblue

let darkblue : Color

Dark blue color.

#
darkbrown

let darkbrown : Color

Dark brown color.

#
darkgray

let darkgray : Color

Dark gray color.

#
darkgreen

let darkgreen : Color

Dark green color.

#
darkpurple

let darkpurple : Color

Dark purple color.

#
decode_data_base64

fn decode_data_base64(data : String) -> Bytes

Decode Base64 string data.

#
decompress_data

fn decompress_data(comp_data : Bytes) -> Bytes

Decompress data (DEFLATE algorithm).

#
detach_audio_mixed_processor

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

Detach audio stream processor from the entire audio pipeline.

#
detach_music_stream_processor

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

Detach audio stream processor from a music stream.

#
directory_exists

fn directory_exists(dir_path : String) -> Bool

Check if a directory path exists.

#
disable_cursor

fn disable_cursor() -> Unit

Disables cursor (lock cursor).

#
disable_event_waiting

fn disable_event_waiting() -> Unit

#
draw_billboard

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

Draw a billboard texture.

#
draw_billboard_pro

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

Draw a billboard texture defined by source and rotation.

#
draw_billboard_rec

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

Draw a billboard texture defined by source.

#
draw_bounding_box

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

Draw bounding box (wires).

#
draw_capsule

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

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

#
draw_capsule_wires

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

Draw capsule wireframe with the center of its sphere caps at startPos and endPos.

#
draw_circle

fn draw_circle(center_x : Int, center_y : Int, radius : Float, color : Color) -> Unit

Draw a color-filled circle.

#
draw_circle_3d

fn draw_circle_3d(center : Vector3, radius : Float, rot_axis : Vector3, rot_angle : Float, color : Color) -> Unit

Draw a circle in 3D world space.

#
draw_circle_gradient

fn draw_circle_gradient(center : Vector2, radius : Float, inner : Color, outer : Color) -> Unit

Draw a gradient-filled circle.

#
draw_circle_lines

fn draw_circle_lines(center_x : Int, center_y : Int, radius : Float, color : Color) -> Unit

Draw circle outline.

#
draw_circle_lines_v

fn draw_circle_lines_v(center : Vector2, radius : Float, color : Color) -> Unit

Draw circle outline (Vector version).

#
draw_circle_sector

fn draw_circle_sector(center : Vector2, radius : Float, start_angle : Float, end_angle : Float, segments : Int, color : Color) -> Unit

Draw a piece of a circle.

#
draw_circle_sector_lines

fn draw_circle_sector_lines(center : Vector2, radius : Float, start_angle : Float, end_angle : Float, segments : Int, color : Color) -> Unit

Draw circle sector outline.

#
draw_circle_v

fn draw_circle_v(center : Vector2, radius : Float, color : Color) -> Unit

Draw a color-filled circle (Vector version).

#
draw_cube

fn draw_cube(position : Vector3, width : Float, height : Float, length : Float, color : Color) -> Unit

Draw cube.

#
draw_cube_v

fn draw_cube_v(position : Vector3, size : Vector3, color : Color) -> Unit

Draw cube (Vector version).

#
draw_cube_wires

fn draw_cube_wires(position : Vector3, width : Float, height : Float, length : Float, color : Color) -> Unit

Draw cube wires.

#
draw_cube_wires_v

fn draw_cube_wires_v(position : Vector3, size : Vector3, color : Color) -> Unit

Draw cube wires (Vector version).

#
draw_cylinder

fn draw_cylinder(position : Vector3, radius_top : Float, radius_bottom : Float, height : Float, slices : Int, color : Color) -> Unit

Draw a cylinder/cone.

#
draw_cylinder_ex

fn draw_cylinder_ex(start_pos : Vector3, end_pos : Vector3, start_radius : Float, end_radius : Float, sides : Int, color : Color) -> Unit

Draw a cylinder with base at startPos and top at endPos.

#
draw_cylinder_wires

fn draw_cylinder_wires(position : Vector3, radius_top : Float, radius_bottom : Float, height : Float, slices : Int, color : Color) -> Unit

Draw a cylinder/cone wires.

#
draw_cylinder_wires_ex

fn draw_cylinder_wires_ex(start_pos : Vector3, end_pos : Vector3, start_radius : Float, end_radius : Float, sides : Int, color : Color) -> Unit

Draw a cylinder wires with base at startPos and top at endPos.

#
draw_ellipse

fn draw_ellipse(center_x : Int, center_y : Int, radius_h : Float, radius_v : Float, color : Color) -> Unit

Draw ellipse.

#
draw_ellipse_lines

fn draw_ellipse_lines(center_x : Int, center_y : Int, radius_h : Float, radius_v : Float, color : Color) -> Unit

Draw ellipse outline.

#
draw_fps

fn draw_fps(pos_x : Int, pos_y : Int) -> Unit

Draw current FPS.

#
draw_grid

fn draw_grid(slices : Int, spacing : Float) -> Unit

Draw a grid (centered at (0, 0, 0)).

#
draw_line

fn draw_line(start_x : Int, start_y : Int, end_x : Int, end_y : Int, color : Color) -> Unit

Draw a line.

#
draw_line_3d

fn draw_line_3d(start_pos : Vector3, end_pos : Vector3, color : Color) -> Unit

Draw a line in 3D world space.

#
draw_line_bezier

fn draw_line_bezier(start_pos : Vector2, end_pos : Vector2, thick : Float, color : Color) -> Unit

Draw line segment cubic-bezier in-out interpolation.

#
draw_line_ex

fn draw_line_ex(start_pos : Vector2, end_pos : Vector2, thick : Float, color : Color) -> Unit

Draw a line (using triangles/quads).

#
draw_line_strip

fn draw_line_strip(points : Array[Vector2], color : Color) -> Unit

Draw lines sequence (using gl lines).

#
draw_line_v

fn draw_line_v(start_pos : Vector2, end_pos : Vector2, color : Color) -> Unit

Draw a line (using gl lines).

#
draw_pixel

fn draw_pixel(pos_x : Int, pos_y : Int, color : Color) -> Unit

Draw a pixel using geometry. Can be slow, use with care.

#
draw_pixel_v

fn draw_pixel_v(position : Vector2, color : Color) -> Unit

Draw a pixel using geometry (Vector version). Can be slow, use with care.

#
draw_plane

fn draw_plane(center : Vector3, size : Vector2, color : Color) -> Unit

Draw a plane XZ.

#
draw_point_3d

fn draw_point_3d(position : Vector3, color : Color) -> Unit

Draw a point in 3D space, actually a small line.

#
draw_poly

fn draw_poly(center : Vector2, sides : Int, radius : Float, rotation : Float, color : Color) -> Unit

Draw a regular polygon (Vector version).

#
draw_poly_lines

fn draw_poly_lines(center : Vector2, sides : Int, radius : Float, rotation : Float, color : Color) -> Unit

Draw a polygon outline of n sides.

#
draw_poly_lines_ex

fn draw_poly_lines_ex(center : Vector2, sides : Int, radius : Float, rotation : Float, line_thick : Float, color : Color) -> Unit

Draw a polygon outline of n sides with extended parameters.

#
draw_ray

fn draw_ray(ray : Ray, color : Color) -> Unit

Draw a ray line.

#
draw_rectangle

fn draw_rectangle(pos_x : Int, pos_y : Int, width : Int, height : Int, color : Color) -> Unit

Draw a color-filled rectangle.

#
draw_rectangle_gradient_ex

fn draw_rectangle_gradient_ex(rec : Rectangle, top_left : Color, bottom_left : Color, top_right : Color, bottom_right : Color) -> Unit

Draw a gradient-filled rectangle with custom vertex colors.

#
draw_rectangle_gradient_h

fn draw_rectangle_gradient_h(pos_x : Int, pos_y : Int, width : Int, height : Int, left : Color, right : Color) -> Unit

Draw a horizontal-gradient-filled rectangle.

#
draw_rectangle_gradient_v

fn draw_rectangle_gradient_v(pos_x : Int, pos_y : Int, width : Int, height : Int, top : Color, bottom : Color) -> Unit

Draw a vertical-gradient-filled rectangle.

#
draw_rectangle_lines

fn draw_rectangle_lines(pos_x : Int, pos_y : Int, width : Int, height : Int, color : Color) -> Unit

Draw rectangle outline.

#
draw_rectangle_lines_ex

fn draw_rectangle_lines_ex(rec : Rectangle, line_thick : Float, color : Color) -> Unit

Draw rectangle outline with extended parameters.

#
draw_rectangle_pro

fn draw_rectangle_pro(rec : Rectangle, origin : Vector2, rotation : Float, color : Color) -> Unit

Draw a color-filled rectangle with pro parameters.

#
draw_rectangle_rec

fn draw_rectangle_rec(rec : Rectangle, color : Color) -> Unit

Draw a color-filled rectangle.

#
draw_rectangle_rounded

fn draw_rectangle_rounded(rec : Rectangle, roundness : Float, segments : Int, color : Color) -> Unit

Draw rectangle with rounded edges.

#
draw_rectangle_rounded_lines

fn draw_rectangle_rounded_lines(rec : Rectangle, roundness : Float, segments : Int, color : Color) -> Unit

Draw rectangle lines with rounded edges.

#
draw_rectangle_rounded_lines_ex

fn draw_rectangle_rounded_lines_ex(rec : Rectangle, roundness : Float, segments : Int, line_thick : Float, color : Color) -> Unit

Draw rectangle with rounded edges outline.

#
draw_rectangle_v

fn draw_rectangle_v(position : Vector2, size : Vector2, color : Color) -> Unit

Draw a color-filled rectangle (Vector version).

#
draw_ring

fn draw_ring(center : Vector2, inner_radius : Float, outer_radius : Float, start_angle : Float, end_angle : Float, segments : Int, color : Color) -> Unit

Draw ring.

#
draw_ring_lines

fn draw_ring_lines(center : Vector2, inner_radius : Float, outer_radius : Float, start_angle : Float, end_angle : Float, segments : Int, color : Color) -> Unit

Draw ring outline.

#
draw_sphere

fn draw_sphere(center : Vector3, radius : Float, color : Color) -> Unit

Draw sphere.

#
draw_sphere_ex

fn draw_sphere_ex(center : Vector3, radius : Float, rings : Int, slices : Int, color : Color) -> Unit

Draw sphere with extended parameters.

#
draw_sphere_wires

fn draw_sphere_wires(center : Vector3, radius : Float, rings : Int, slices : Int, color : Color) -> Unit

Draw sphere wires.

#
draw_spline_basis

fn draw_spline_basis(points : Array[Vector2], thick : Float, color : Color) -> Unit

Draw spline: B-Spline, minimum 4 points.

#
draw_spline_bezier_cubic

fn draw_spline_bezier_cubic(points : Array[Vector2], thick : Float, color : Color) -> Unit

Draw spline: Cubic Bezier, minimum 4 points (2 control points).

#
draw_spline_bezier_quadratic

fn draw_spline_bezier_quadratic(points : Array[Vector2], thick : Float, color : Color) -> Unit

Draw spline: Quadratic Bezier, minimum 3 points (1 control point).

#
draw_spline_catmull_rom

fn draw_spline_catmull_rom(points : Array[Vector2], thick : Float, color : Color) -> Unit

Draw spline: Catmull-Rom, minimum 4 points.

#
draw_spline_linear

fn draw_spline_linear(points : Array[Vector2], thick : Float, color : Color) -> Unit

Draw spline: Linear, minimum 2 points.

#
draw_spline_segment_basis

fn draw_spline_segment_basis(p1 : Vector2, p2 : Vector2, p3 : Vector2, p4 : Vector2, thick : Float, color : Color) -> Unit

Draw spline segment: B-Spline, 4 points.

#
draw_spline_segment_bezier_cubic

fn draw_spline_segment_bezier_cubic(p1 : Vector2, p2 : Vector2, p3 : Vector2, p4 : Vector2, thick : Float, color : Color) -> Unit

Draw spline segment: Cubic Bezier, 2 points, 2 control points.

#
draw_spline_segment_bezier_quadratic

fn draw_spline_segment_bezier_quadratic(p1 : Vector2, p2 : Vector2, p3 : Vector2, thick : Float, color : Color) -> Unit

Draw spline segment: Quadratic Bezier, 2 points, 1 control point.

#
draw_spline_segment_catmull_rom

fn draw_spline_segment_catmull_rom(p1 : Vector2, p2 : Vector2, p3 : Vector2, p4 : Vector2, thick : Float, color : Color) -> Unit

Draw spline segment: Catmull-Rom, 4 points.

#
draw_spline_segment_linear

fn draw_spline_segment_linear(p1 : Vector2, p2 : Vector2, thick : Float, color : Color) -> Unit

Draw spline segment: Linear, 2 points.

#
draw_text

fn draw_text(text : String, pos_x : Int, pos_y : Int, font_size : Int, color : Color) -> Unit

Draw text (using default font).

#
draw_triangle

fn draw_triangle(v1 : Vector2, v2 : Vector2, v3 : Vector2, color : Color) -> Unit

Draw a color-filled triangle (vertex in counter-clockwise order!).

#
draw_triangle_3d

fn draw_triangle_3d(v1 : Vector3, v2 : Vector3, v3 : Vector3, color : Color) -> Unit

Draw a color-filled triangle (vertex in counter-clockwise order!).

#
draw_triangle_fan

fn draw_triangle_fan(points : Array[Vector2], color : Color) -> Unit

Draw a triangle fan defined by points (first vertex is the center).

#
draw_triangle_lines

fn draw_triangle_lines(v1 : Vector2, v2 : Vector2, v3 : Vector2, color : Color) -> Unit

Draw triangle outline (vertex in counter-clockwise order!).

#
draw_triangle_strip

fn draw_triangle_strip(points : Array[Vector2], color : Color) -> Unit

Draw a triangle strip defined by points.

#
draw_triangle_strip_3d

fn draw_triangle_strip_3d(points : Array[Vector3], color : Color) -> Unit

Draw a triangle strip defined by points in 3D space.

#
enable_cursor

fn enable_cursor() -> Unit

Enables cursor (unlock cursor).

#
enable_event_waiting

fn enable_event_waiting() -> Unit

#
encode_data_base64

fn encode_data_base64(data : Bytes) -> String

Encode data to Base64 string.

#
end_blend_mode

fn end_blend_mode() -> Unit

End blending mode (reset to default: alpha blending).

#
end_drawing

fn end_drawing() -> Unit

End canvas drawing and swap buffers (double buffering).

#
end_mode_2d

fn end_mode_2d() -> Unit

Ends 2D mode with custom camera.

#
end_mode_3d

fn end_mode_3d() -> Unit

Ends 3D mode and returns to default 2D orthographic mode.

#
end_scissor_mode

fn end_scissor_mode() -> Unit

End scissor mode.

#
end_shader_mode

fn end_shader_mode() -> Unit

End custom shader drawing (use default shader).

#
end_texture_mode

fn end_texture_mode() -> Unit

Ends drawing to render texture.

#
end_vr_stereo_mode

fn end_vr_stereo_mode() -> Unit

End stereo rendering (requires VR simulator).

#
export_data_as_code

fn export_data_as_code(data : Bytes, data_size : Int, file_name : String) -> Bool

Export data to code (.h), returns true on success.

#
fade

fn fade(color : Color, alpha : Float) -> Color

Get color with alpha applied, alpha goes from 0.0 to 1.0.

#
file_exists

fn file_exists(file_name : String) -> Bool

Check if file exists.

#
file_path_list_get

fn file_path_list_get(files : FilePathList, index : Int) -> String

Get a filepath from the list by index.

#
gen_font_texture_mipmaps

#deprecated("Use font.texture().gen_mipmaps() instead")
fn gen_font_texture_mipmaps(font : Font) -> Unit

Generate mipmaps for font texture atlas.

#
get_application_directory

fn get_application_directory() -> String

Get the directory of the running application.

#
get_camera_matrix

fn get_camera_matrix(camera : Camera3D) -> Matrix

Get camera transform matrix (view matrix).

#
get_camera_matrix_2d

fn get_camera_matrix_2d(camera : Camera2D) -> Matrix

Get camera 2D transform matrix.

#
get_char_pressed

fn get_char_pressed() -> Int

Get char pressed (unicode), call it multiple times for chars queued, returns 0 when the queue is empty.

#
get_clipboard_image

fn get_clipboard_image() -> Image

Get clipboard image content.

#
get_clipboard_text

fn get_clipboard_text() -> String

Get clipboard text content.

#
get_codepoint

fn get_codepoint(text : String) -> (Int, Int)

Get next codepoint in a UTF-8 encoded string, returns (codepoint, byte_size).

#
get_codepoint_count

fn get_codepoint_count(text : String) -> Int

Get total number of codepoints in a UTF-8 encoded string.

#
get_codepoint_next

fn get_codepoint_next(text : String) -> (Int, Int)

Get next codepoint in a UTF-8 encoded string, returns (codepoint, byte_size).

#
get_codepoint_previous

fn get_codepoint_previous(text : String) -> (Int, Int)

Get previous codepoint in a UTF-8 encoded string, returns (codepoint, byte_size).

#
get_collision_rec

fn get_collision_rec(rec1 : Rectangle, rec2 : Rectangle) -> Rectangle

Get collision rectangle for two rectangles collision.

#
get_color

fn get_color(hex_value : Int) -> Color

Get Color structure from hexadecimal value.

#
get_current_monitor

fn get_current_monitor() -> Int

Get current monitor where window is placed.

#
get_directory_path

fn get_directory_path(file_path : String) -> String

Get full path for a given fileName with path.

#
get_file_extension

fn get_file_extension(file_name : String) -> String

Get pointer to extension for a filename string (includes dot: '.png').

#
get_file_length

fn get_file_length(file_name : String) -> Int

Get file length in bytes.

#
get_file_mod_time

fn get_file_mod_time(file_name : String) -> Int

Get file modification time (last write time).

#
get_file_name

fn get_file_name(file_path : String) -> String

Get filename for a path string.

#
get_file_name_without_ext

fn get_file_name_without_ext(file_path : String) -> String

Get filename string without extension.

#
get_fps

fn get_fps() -> Int

Get current FPS.

#
get_frame_time

fn get_frame_time() -> Float

Get time in seconds for last frame drawn (delta time).

#
get_gamepad_axis_count

fn get_gamepad_axis_count(gamepad : Int) -> Int

Get gamepad axis count for a gamepad.

#
get_gamepad_axis_movement

fn get_gamepad_axis_movement(gamepad : Int, axis : Int) -> Float

Get axis movement value for a gamepad axis.

#
get_gamepad_button_pressed

fn get_gamepad_button_pressed() -> Int

Get the last gamepad button pressed.

#
get_gamepad_name

fn get_gamepad_name(gamepad : Int) -> String

Get gamepad internal name id.

#
get_gesture_detected

fn get_gesture_detected() -> Int

Get latest detected gesture.

#
get_gesture_drag_angle

fn get_gesture_drag_angle() -> Float

Get gesture drag angle.

#
get_gesture_drag_vector

fn get_gesture_drag_vector() -> Vector2

Get gesture drag vector.

#
get_gesture_hold_duration

fn get_gesture_hold_duration() -> Float

Get gesture hold time in seconds.

#
get_gesture_pinch_angle

fn get_gesture_pinch_angle() -> Float

Get gesture pinch angle.

#
get_gesture_pinch_vector

fn get_gesture_pinch_vector() -> Vector2

Get gesture pinch delta.

#
get_key_pressed

fn get_key_pressed() -> Int

Get key pressed (keycode), call it multiple times for keys queued, returns 0 when the queue is empty.

#
get_master_volume

fn get_master_volume() -> Float

Get master volume (listener).

#
get_monitor_count

fn get_monitor_count() -> Int

Get number of connected monitors.

#
get_monitor_height

fn get_monitor_height(monitor : Int) -> Int

Get specified monitor height (current video mode used by monitor).

#
get_monitor_name

fn get_monitor_name(monitor : Int) -> String

Get the human-readable, UTF-8 encoded name of the specified monitor.

#
get_monitor_physical_height

fn get_monitor_physical_height(monitor : Int) -> Int

Get specified monitor physical height in millimetres.

#
get_monitor_physical_width

fn get_monitor_physical_width(monitor : Int) -> Int

Get specified monitor physical width in millimetres.

#
get_monitor_position

fn get_monitor_position(monitor : Int) -> Vector2

Get specified monitor position.

#
get_monitor_refresh_rate

fn get_monitor_refresh_rate(monitor : Int) -> Int

Get specified monitor refresh rate.

#
get_monitor_width

fn get_monitor_width(monitor : Int) -> Int

Get specified monitor width (current video mode used by monitor).

#
get_mouse_delta

fn get_mouse_delta() -> Vector2

Get mouse delta between frames.

#
get_mouse_position

fn get_mouse_position() -> Vector2

Get mouse position XY.

#
get_mouse_wheel_move

fn get_mouse_wheel_move() -> Float

Get mouse wheel movement for X or Y, whichever is larger.

#
get_mouse_wheel_move_v

fn get_mouse_wheel_move_v() -> Vector2

Get mouse wheel movement for both X and Y.

#
get_mouse_x

fn get_mouse_x() -> Int

Get mouse position X.

#
get_mouse_y

fn get_mouse_y() -> Int

Get mouse position Y.

#
get_pixel_data_size

fn get_pixel_data_size(width : Int, height : Int, format : Int) -> Int

Get pixel data size in bytes for certain format.

#
get_prev_directory_path

fn get_prev_directory_path(dir_path : String) -> String

Get previous directory path for a given path.

#
get_random_value

fn get_random_value(min : Int, max : Int) -> Int

Get a random value between min and max (both included).

#
get_ray_collision_box

fn get_ray_collision_box(ray : Ray, box_ : BoundingBox) -> RayCollision

Get collision info between ray and box.

#
get_ray_collision_mesh

fn get_ray_collision_mesh(ray : Ray, mesh : Mesh, transform : Matrix) -> RayCollision

Get collision info between ray and mesh.

#
get_ray_collision_quad

fn get_ray_collision_quad(ray : Ray, p1 : Vector3, p2 : Vector3, p3 : Vector3, p4 : Vector3) -> RayCollision

Get collision info between ray and quad.

#
get_ray_collision_sphere

fn get_ray_collision_sphere(ray : Ray, center : Vector3, radius : Float) -> RayCollision

Get collision info between ray and sphere.

#
get_ray_collision_triangle

fn get_ray_collision_triangle(ray : Ray, p1 : Vector3, p2 : Vector3, p3 : Vector3) -> RayCollision

Get collision info between ray and triangle.

#
get_render_height

fn get_render_height() -> Int

Get current render height (it considers HiDPI).

#
get_render_width

fn get_render_width() -> Int

Get current render width (it considers HiDPI).

#
get_screen_height

fn get_screen_height() -> Int

Get current screen height.

#
get_screen_to_world_2d

fn get_screen_to_world_2d(position : Vector2, camera : Camera2D) -> Vector2

Get the world space position for a 2D camera screen space position.

#
get_screen_to_world_ray

fn get_screen_to_world_ray(position : Vector2, camera : Camera3D) -> Ray

Get a ray trace from screen position (i.e mouse).

#
get_screen_to_world_ray_ex

fn get_screen_to_world_ray_ex(position : Vector2, camera : Camera3D, width : Int, height : Int) -> Ray

Get a ray trace from screen position (i.e mouse) in a viewport.

#
get_screen_width

fn get_screen_width() -> Int

Get current screen width.

#
get_shapes_texture_rectangle

fn get_shapes_texture_rectangle() -> Rectangle

Get texture source rectangle that is used for shapes drawing.

#
get_spline_point_basis

fn get_spline_point_basis(p1 : Vector2, p2 : Vector2, p3 : Vector2, p4 : Vector2, t : Float) -> Vector2

Get (evaluate) spline point: B-Spline.

#
get_spline_point_bezier_cubic

fn get_spline_point_bezier_cubic(start_pos : Vector2, start_control_pos : Vector2, end_control_pos : Vector2, end_pos : Vector2, t : Float) -> Vector2

Get (evaluate) spline point: Cubic Bezier.

#
get_spline_point_bezier_quad

fn get_spline_point_bezier_quad(start_pos : Vector2, control_pos : Vector2, end_pos : Vector2, t : Float) -> Vector2

Get (evaluate) spline point: Quadratic Bezier.

#
get_spline_point_catmull_rom

fn get_spline_point_catmull_rom(p1 : Vector2, p2 : Vector2, p3 : Vector2, p4 : Vector2, t : Float) -> Vector2

Get (evaluate) spline point: Catmull-Rom.

#
get_spline_point_linear

fn get_spline_point_linear(start_pos : Vector2, end_pos : Vector2, t : Float) -> Vector2

Get (evaluate) spline point: Linear.

#
get_time

fn get_time() -> Double

Get elapsed time in seconds since InitWindow().

#
get_touch_point_count

fn get_touch_point_count() -> Int

Get number of touch points.

#
get_touch_point_id

fn get_touch_point_id(index : Int) -> Int

Get touch point identifier for given index.

#
get_touch_position

fn get_touch_position(index : Int) -> Vector2

Get touch position XY for a touch point index (relative to screen size).

#
get_touch_x

fn get_touch_x() -> Int

Get touch position X for touch point 0 (relative to screen size).

#
get_touch_y

fn get_touch_y() -> Int

Get touch position Y for touch point 0 (relative to screen size).

#
get_window_position

fn get_window_position() -> Vector2

Get window position XY on monitor.

#
get_window_scale_dpi

fn get_window_scale_dpi() -> Vector2

Get window scale DPI factor.

#
get_working_directory

fn get_working_directory() -> String

Get current working directory.

#
get_world_to_screen

fn get_world_to_screen(position : Vector3, camera : Camera3D) -> Vector2

Get the screen space position for a 3D world space position.

#
get_world_to_screen_2d

fn get_world_to_screen_2d(position : Vector2, camera : Camera2D) -> Vector2

Get the screen space position for a 2D camera world space position.

#
get_world_to_screen_ex

fn get_world_to_screen_ex(position : Vector3, camera : Camera3D, width : Int, height : Int) -> Vector2

Get size position for a 3D world space position.

#
gold

let gold : Color

Gold color.

#
gray

let gray : Color

Gray color.

#
green

let green : Color

Green color.

#
hide_cursor

fn hide_cursor() -> Unit

Hides cursor.

#
init_audio_device

fn init_audio_device() -> Unit

Initialize audio device and context.

#
init_window

fn init_window(width : Int, height : Int, title : String) -> Unit

Initialize window and OpenGL context.

#
is_audio_device_ready

fn is_audio_device_ready() -> Bool

Check if audio device has been initialized successfully.

#
is_cursor_hidden

fn is_cursor_hidden() -> Bool

Check if cursor is not visible.

#
is_cursor_on_screen

fn is_cursor_on_screen() -> Bool

Check if cursor is on the screen.

#
is_file_dropped

fn is_file_dropped() -> Bool

Check if a file has been dropped into window.

#
is_file_extension

fn is_file_extension(file_name : String, ext : String) -> Bool

Check file extension (including point: .png, .wav).

#
is_file_name_valid

fn is_file_name_valid(file_name : String) -> Bool

Check if fileName is valid for the platform/OS.

#
is_gamepad_available

fn is_gamepad_available(gamepad : Int) -> Bool

Check if a gamepad is available.

#
is_gamepad_button_down

fn is_gamepad_button_down(gamepad : Int, button : Int) -> Bool

Check if a gamepad button is being pressed.

#
is_gamepad_button_pressed

fn is_gamepad_button_pressed(gamepad : Int, button : Int) -> Bool

Check if a gamepad button has been pressed once.

#
is_gamepad_button_released

fn is_gamepad_button_released(gamepad : Int, button : Int) -> Bool

Check if a gamepad button has been released once.

#
is_gamepad_button_up

fn is_gamepad_button_up(gamepad : Int, button : Int) -> Bool

Check if a gamepad button is NOT being pressed.

#
is_gesture_detected

fn is_gesture_detected(gesture : Int) -> Bool

Check if a gesture have been detected.

#
is_key_down

fn is_key_down(key : Int) -> Bool

Check if a key is being pressed.

#
is_key_pressed

fn is_key_pressed(key : Int) -> Bool

Check if a key has been pressed once.

#
is_key_pressed_repeat

fn is_key_pressed_repeat(key : Int) -> Bool

Check if a key has been pressed again.

#
is_key_released

fn is_key_released(key : Int) -> Bool

Check if a key has been released once.

#
is_key_up

fn is_key_up(key : Int) -> Bool

Check if a key is NOT being pressed.

#
is_mouse_button_down

fn is_mouse_button_down(button : Int) -> Bool

Check if a mouse button is being pressed.

#
is_mouse_button_pressed

fn is_mouse_button_pressed(button : Int) -> Bool

Check if a mouse button has been pressed once.

#
is_mouse_button_released

fn is_mouse_button_released(button : Int) -> Bool

Check if a mouse button has been released once.

#
is_mouse_button_up

fn is_mouse_button_up(button : Int) -> Bool

Check if a mouse button is NOT being pressed.

#
is_path_file

fn is_path_file(path : String) -> Bool

Check if a given path is a file or a directory.

#
is_window_focused

fn is_window_focused() -> Bool

Check if window is currently focused.

#
is_window_fullscreen

fn is_window_fullscreen() -> Bool

Check if window is currently fullscreen.

#
is_window_hidden

fn is_window_hidden() -> Bool

Check if window is currently hidden.

#
is_window_maximized

fn is_window_maximized() -> Bool

Check if window is currently maximized.

#
is_window_minimized

fn is_window_minimized() -> Bool

Check if window is currently minimized.

#
is_window_ready

fn is_window_ready() -> Bool

Check if window has been initialized successfully.

#
is_window_resized

fn is_window_resized() -> Bool

Check if window has been resized last frame.

#
is_window_state

fn is_window_state(flag : Int) -> Bool

Check if one specific window flag is enabled.

#
lightgray

let lightgray : Color

Light gray color.

#
lime

let lime : Color

Lime color.

#
load_codepoints

fn load_codepoints(text : String) -> Array[Int]

Load all codepoints from a UTF-8 text string.

#
load_directory_files

fn load_directory_files(dir_path : String) -> FilePathList

Load directory filepaths.

#
load_directory_files_ex

fn load_directory_files_ex(base_path : String, filter : String, scan_subdirs : Bool) -> FilePathList

Load directory filepaths with extension filtering and recursive directory scan.

#
load_file_data

fn load_file_data(file_name : String) -> Bytes

Load file data as byte array (read).

#
load_file_text

fn load_file_text(file_name : String) -> String

Load text data from file (read).

#
load_image_anim

#deprecated("Use Image::load_anim instead (returns (Image, Int) with frame count)")
fn load_image_anim(file_name : String) -> Image

Load image sequence from file (frames appended to image.data).

#
load_image_anim_from_memory

#deprecated("Use Image::load_anim_from_memory instead (returns (Image, Int) with frame count)")
fn load_image_anim_from_memory(file_type : String, file_data : Bytes, data_size : Int) -> Image

Load image sequence from memory buffer.

#
load_random_sequence

fn load_random_sequence(count : Int, min : Int, max : Int) -> Array[Int]

Load random values sequence, no values repeated.

#
load_utf8

fn load_utf8(codepoints : Array[Int]) -> Bytes

Load UTF-8 text encoded from codepoints array.

#
magenta

let magenta : Color

Magenta color.

#
make_directory

fn make_directory(dir_path : String) -> Int

Create directories (including full path requested), returns 0 on success.

#
maroon

let maroon : Color

Maroon color.

#
maximize_window

fn maximize_window() -> Unit

Set window state: maximized, if resizable.

#
measure_text

fn measure_text(text : String, font_size : Int) -> Int

Measure string width for default font.

#
minimize_window

fn minimize_window() -> Unit

Set window state: minimized, if resizable.

#
open_url

fn open_url(url : String) -> Unit

Open URL with default system browser (if available).

#
orange

let orange : Color

Orange color.

#
pink

let pink : Color

Pink color.

#
play_automation_event

fn play_automation_event(event : AutomationEvent) -> Unit

Play a recorded automation event.

#
poll_input_events

fn poll_input_events() -> Unit

#
purple

let purple : Color

Purple color.

#
raywhite

let raywhite : Color

Raylib white color (off-white).

#
red

let red : Color

Red color.

#
restore_window

fn restore_window() -> Unit

Set window state: not minimized/maximized.

#
rl_active_draw_buffers

#deprecated("Use @rl.active_draw_buffers from tonyfettes/raylib/rl instead")
fn rl_active_draw_buffers(count : Int) -> Unit

@deprecated Activate multiple draw color buffers.

#
rl_active_texture_slot

#deprecated("Use @rl.active_texture_slot from tonyfettes/raylib/rl instead")
fn rl_active_texture_slot(slot : Int) -> Unit

@deprecated Select and active a texture slot.

#
rl_begin

#deprecated("Use @rl.begin from tonyfettes/raylib/rl instead")
fn rl_begin(mode : Int) -> Unit

@deprecated Initialize drawing mode (how to organize vertex).

#
rl_bind_framebuffer

#deprecated("Use @rl.bind_framebuffer from tonyfettes/raylib/rl instead")
fn rl_bind_framebuffer(target : UInt, fbo : UInt) -> Unit

@deprecated Bind framebuffer (FBO).

#
rl_blit_framebuffer

#deprecated("Use @rl.blit_framebuffer from tonyfettes/raylib/rl instead")
fn rl_blit_framebuffer(src_x : Int, src_y : Int, src_w : Int, src_h : Int, dst_x : Int, dst_y : Int, dst_w : Int, dst_h : Int, buffer_mask : Int) -> Unit

@deprecated Blit active framebuffer to main framebuffer.

#
rl_check_render_batch_limit

#deprecated("Use @rl.check_render_batch_limit from tonyfettes/raylib/rl instead")
fn rl_check_render_batch_limit(v_count : Int) -> Bool

@deprecated Check internal buffer overflow for a given number of vertex.

#
rl_clear_screen_buffers

#deprecated("Use @rl.clear_screen_buffers from tonyfettes/raylib/rl instead")
fn rl_clear_screen_buffers() -> Unit

@deprecated Clear used screen buffers (color and depth).

#
rl_color4ub

#deprecated("Use @rl.color4ub from tonyfettes/raylib/rl instead")
fn rl_color4ub(r : Byte, g : Byte, b : Byte, a : Byte) -> Unit

@deprecated Define one vertex (color) - 4 byte.

#
rl_disable_backface_culling

#deprecated("Use @rl.disable_backface_culling from tonyfettes/raylib/rl instead")
fn rl_disable_backface_culling() -> Unit

@deprecated Disable backface culling.

#
rl_disable_color_blend

#deprecated("Use @rl.disable_color_blend from tonyfettes/raylib/rl instead")
fn rl_disable_color_blend() -> Unit

@deprecated Disable color blending.

#
rl_disable_depth_mask

#deprecated("Use @rl.disable_depth_mask from tonyfettes/raylib/rl instead")
fn rl_disable_depth_mask() -> Unit

@deprecated Disable depth write.

#
rl_disable_depth_test

#deprecated("Use @rl.disable_depth_test from tonyfettes/raylib/rl instead")
fn rl_disable_depth_test() -> Unit

@deprecated Disable depth test.

#
rl_disable_framebuffer

#deprecated("Use @rl.disable_framebuffer from tonyfettes/raylib/rl instead")
fn rl_disable_framebuffer() -> Unit

@deprecated Disable render texture (fbo), return to default framebuffer.

#
rl_disable_shader

#deprecated("Use @rl.disable_shader from tonyfettes/raylib/rl instead")
fn rl_disable_shader() -> Unit

@deprecated Disable shader program.

#
rl_disable_texture

#deprecated("Use @rl.disable_texture from tonyfettes/raylib/rl instead")
fn rl_disable_texture() -> Unit

@deprecated Disable texture.

#
rl_draw_render_batch_active

#deprecated("Use @rl.draw_render_batch_active from tonyfettes/raylib/rl instead")
fn rl_draw_render_batch_active() -> Unit

@deprecated Update and draw internal render batch.

#
rl_enable_backface_culling

#deprecated("Use @rl.enable_backface_culling from tonyfettes/raylib/rl instead")
fn rl_enable_backface_culling() -> Unit

@deprecated Enable backface culling.

#
rl_enable_color_blend

#deprecated("Use @rl.enable_color_blend from tonyfettes/raylib/rl instead")
fn rl_enable_color_blend() -> Unit

@deprecated Enable color blending.

#
rl_enable_depth_mask

#deprecated("Use @rl.enable_depth_mask from tonyfettes/raylib/rl instead")
fn rl_enable_depth_mask() -> Unit

@deprecated Enable depth write.

#
rl_enable_depth_test

#deprecated("Use @rl.enable_depth_test from tonyfettes/raylib/rl instead")
fn rl_enable_depth_test() -> Unit

@deprecated Enable depth test.

#
rl_enable_framebuffer

#deprecated("Use @rl.enable_framebuffer from tonyfettes/raylib/rl instead")
fn rl_enable_framebuffer(id : UInt) -> Unit

@deprecated Enable render texture (fbo).

#
rl_enable_shader

#deprecated("Use @rl.enable_shader from tonyfettes/raylib/rl instead")
fn rl_enable_shader(id : UInt) -> Unit

@deprecated Enable shader program.

#
rl_enable_texture

#deprecated("Use @rl.enable_texture from tonyfettes/raylib/rl instead")
fn rl_enable_texture(id : UInt) -> Unit

@deprecated Enable texture.

#
rl_end

#deprecated("Use @rl.end_ from tonyfettes/raylib/rl instead")
fn rl_end() -> Unit

@deprecated Finish vertex providing.

#
rl_framebuffer_attach

#deprecated("Use @rl.framebuffer_attach from tonyfettes/raylib/rl instead")
fn rl_framebuffer_attach(fbo_id : UInt, tex_id : UInt, attach_type : Int, tex_type : Int, mip_level : Int) -> Unit

@deprecated Attach texture/renderbuffer to a framebuffer.

#
rl_framebuffer_complete

#deprecated("Use @rl.framebuffer_complete from tonyfettes/raylib/rl instead")
fn rl_framebuffer_complete(id : UInt) -> Bool

@deprecated Verify framebuffer is complete.

#
rl_get_framebuffer_height

#deprecated("Use @rl.get_framebuffer_height from tonyfettes/raylib/rl instead")
fn rl_get_framebuffer_height() -> Int

@deprecated Get default framebuffer height.

#
rl_get_framebuffer_width

#deprecated("Use @rl.get_framebuffer_width from tonyfettes/raylib/rl instead")
fn rl_get_framebuffer_width() -> Int

@deprecated Get default framebuffer width.

#
rl_get_location_uniform

#deprecated("Use @rl.get_location_uniform from tonyfettes/raylib/rl instead")
fn rl_get_location_uniform(shader_id : UInt, uniform_name : String) -> Int

@deprecated Get shader location uniform.

#
rl_get_matrix_modelview

#deprecated("Use @rl.get_matrix_modelview from tonyfettes/raylib/rl instead")
fn rl_get_matrix_modelview() -> Matrix

@deprecated Get internal modelview matrix.

#
rl_get_matrix_projection

#deprecated("Use @rl.get_matrix_projection from tonyfettes/raylib/rl instead")
fn rl_get_matrix_projection() -> Matrix

@deprecated Get internal projection matrix.

#
rl_get_shader_id_default

#deprecated("Use @rl.get_shader_id_default from tonyfettes/raylib/rl instead")
fn rl_get_shader_id_default() -> UInt

@deprecated Get default shader id.

#
rl_load_draw_cube

#deprecated("Use @rl.load_draw_cube from tonyfettes/raylib/rl instead")
fn rl_load_draw_cube() -> Unit

@deprecated Load and draw a cube.

#
rl_load_draw_quad

#deprecated("Use @rl.load_draw_quad from tonyfettes/raylib/rl instead")
fn rl_load_draw_quad() -> Unit

@deprecated Load and draw a quad.

#
rl_load_framebuffer

#deprecated("Use @rl.load_framebuffer from tonyfettes/raylib/rl instead")
fn rl_load_framebuffer() -> UInt

@deprecated Load an empty framebuffer.

#
rl_load_texture

#deprecated("Use @rl.load_texture from tonyfettes/raylib/rl instead")
fn rl_load_texture(width : Int, height : Int, format : Int, mipmap_count : Int) -> UInt

@deprecated Load texture data.

#
rl_load_texture_depth

#deprecated("Use @rl.load_texture_depth from tonyfettes/raylib/rl instead")
fn rl_load_texture_depth(width : Int, height : Int, use_render_buffer : Bool) -> UInt

@deprecated Load depth texture/renderbuffer (to be attached to fbo).

#
rl_mult_matrixf

#deprecated("Use @rl.mult_matrixf from tonyfettes/raylib/rl instead")
fn rl_mult_matrixf(matf : Bytes) -> Unit

@deprecated Multiply the current matrix by another matrix.

#
rl_normal3f

#deprecated("Use @rl.normal3f from tonyfettes/raylib/rl instead")
fn rl_normal3f(x : Float, y : Float, z : Float) -> Unit

@deprecated Define one vertex (normal) - 3 float.

#
rl_pop_matrix

#deprecated("Use @rl.pop_matrix from tonyfettes/raylib/rl instead")
fn rl_pop_matrix() -> Unit

@deprecated Pop latest inserted matrix from stack.

#
rl_push_matrix

#deprecated("Use @rl.push_matrix from tonyfettes/raylib/rl instead")
fn rl_push_matrix() -> Unit

@deprecated Push the current matrix to stack.

#
rl_rotatef

#deprecated("Use @rl.rotatef from tonyfettes/raylib/rl instead")
fn rl_rotatef(angle : Float, x : Float, y : Float, z : Float) -> Unit

@deprecated Multiply the current matrix by a rotation matrix.

#
rl_scalef

#deprecated("Use @rl.scalef from tonyfettes/raylib/rl instead")
fn rl_scalef(x : Float, y : Float, z : Float) -> Unit

@deprecated Multiply the current matrix by a scaling matrix.

#
rl_set_blend_factors

#deprecated("Use @rl.set_blend_factors from tonyfettes/raylib/rl instead")
fn rl_set_blend_factors(gl_src_factor : Int, gl_dst_factor : Int, gl_equation : Int) -> Unit

@deprecated Set blending mode factor and equation (using OpenGL factors).

#
rl_set_blend_mode

#deprecated("Use @rl.set_blend_mode from tonyfettes/raylib/rl instead")
fn rl_set_blend_mode(mode : Int) -> Unit

@deprecated Set blending mode.

#
rl_set_texture

#deprecated("Use @rl.set_texture from tonyfettes/raylib/rl instead")
fn rl_set_texture(id : UInt) -> Unit

@deprecated Set current texture for render batch and check buffers limits.

#
rl_set_uniform

#deprecated("Use @rl.set_uniform from tonyfettes/raylib/rl instead")
fn rl_set_uniform(loc_index : Int, value : Bytes, uniform_type : Int, count : Int) -> Unit

@deprecated Set shader value uniform.

#
rl_set_uniform_sampler

#deprecated("Use @rl.set_uniform_sampler from tonyfettes/raylib/rl instead")
fn rl_set_uniform_sampler(loc_index : Int, texture_id : UInt) -> Unit

@deprecated Set shader value sampler.

#
rl_tex_coord2f

#deprecated("Use @rl.tex_coord2f from tonyfettes/raylib/rl instead")
fn rl_tex_coord2f(x : Float, y : Float) -> Unit

@deprecated Define one vertex (texture coordinate) - 2 float.

#
rl_translatef

#deprecated("Use @rl.translatef from tonyfettes/raylib/rl instead")
fn rl_translatef(x : Float, y : Float, z : Float) -> Unit

@deprecated Multiply the current matrix by a translation matrix.

#
rl_unload_framebuffer

#deprecated("Use @rl.unload_framebuffer from tonyfettes/raylib/rl instead")
fn rl_unload_framebuffer(id : UInt) -> Unit

@deprecated Delete framebuffer from GPU.

#
rl_unload_texture

#deprecated("Use @rl.unload_texture from tonyfettes/raylib/rl instead")
fn rl_unload_texture(id : UInt) -> Unit

@deprecated Unload texture from GPU memory.

#
rl_vertex2f

#deprecated("Use @rl.vertex2f from tonyfettes/raylib/rl instead")
fn rl_vertex2f(x : Float, y : Float) -> Unit

@deprecated Define one vertex (position) - 2 float.

#
rl_vertex3f

#deprecated("Use @rl.vertex3f from tonyfettes/raylib/rl instead")
fn rl_vertex3f(x : Float, y : Float, z : Float) -> Unit

@deprecated Define one vertex (position) - 3 float.

#
rl_viewport

#deprecated("Use @rl.viewport from tonyfettes/raylib/rl instead")
fn rl_viewport(x : Int, y : Int, width : Int, height : Int) -> Unit

@deprecated Set the viewport area.

#
save_file_data

fn save_file_data(file_name : String, data : Bytes, data_size : Int) -> Bool

Save data to file from byte array (write), returns true on success.

#
save_file_text

fn save_file_text(file_name : String, text : String) -> Bool

Save text data to file (write), returns true on success.

#
set_audio_stream_buffer_size_default

fn set_audio_stream_buffer_size_default(size : Int) -> Unit

Default size for new audio streams.

#
set_automation_event_base_frame

fn set_automation_event_base_frame(frame : Int) -> Unit

Set automation event internal base frame to start recording.

#
set_clipboard_text

fn set_clipboard_text(text : String) -> Unit

Set clipboard text content.

#
set_config_flags

fn set_config_flags(flags : Int) -> Unit

Setup init configuration flags (view FLAGS).

#
set_exit_key

fn set_exit_key(key : Int) -> Unit

Set a custom key to exit program (default is ESC).

#
set_font_texture_filter

#deprecated("Use font.texture().set_filter(filter) instead")
fn set_font_texture_filter(font : Font, filter : Int) -> Unit

Set texture filtering mode for font texture atlas.

#
set_gamepad_mappings

fn set_gamepad_mappings(mappings : String) -> Int

Set internal gamepad mappings (SDL_GameControllerDB).

#
set_gamepad_vibration

fn set_gamepad_vibration(gamepad : Int, left_motor : Float, right_motor : Float, duration : Float) -> Unit

#
set_gestures_enabled

fn set_gestures_enabled(flags : Int) -> Unit

Enable a set of gestures using flags.

#
set_master_volume

fn set_master_volume(volume : Float) -> Unit

Set master volume (listener).

#
set_mouse_cursor

fn set_mouse_cursor(cursor : Int) -> Unit

Set mouse cursor.

#
set_mouse_offset

fn set_mouse_offset(offset_x : Int, offset_y : Int) -> Unit

Set mouse offset.

#
set_mouse_position

fn set_mouse_position(x : Int, y : Int) -> Unit

Set mouse position XY.

#
set_mouse_scale

fn set_mouse_scale(scale_x : Float, scale_y : Float) -> Unit

Set mouse scaling.

#
set_random_seed

fn set_random_seed(seed : Int) -> Unit

Set the seed for the random number generator.

#
set_shader_value

#deprecated("Use Shader::set_value instead")
fn set_shader_value(shader : Shader, loc_index : Int, value : Bytes, uniform_type : Int) -> Unit

Set shader uniform value (deprecated, use Shader::set_value instead).

#
set_shader_value_v

#deprecated("Use Shader::set_value_v instead")
fn set_shader_value_v(shader : Shader, loc_index : Int, value : Bytes, uniform_type : Int, count : Int) -> Unit

Set shader uniform value vector (deprecated, use Shader::set_value_v instead).

#
set_target_fps

fn set_target_fps(fps : Int) -> Unit

Set target FPS (maximum).

#
set_text_line_spacing

fn set_text_line_spacing(spacing : Int) -> Unit

Set vertical line spacing when drawing with line-breaks.

#
set_trace_log_level

fn set_trace_log_level(log_level : Int) -> Unit

#
set_window_focused

fn set_window_focused() -> Unit

Set window focused.

#
set_window_icon

fn set_window_icon(image : Image) -> Unit

Set icon for window (single image, RGBA 32bit).

#
set_window_max_size

fn set_window_max_size(width : Int, height : Int) -> Unit

Set window maximum dimensions (for FLAG_WINDOW_RESIZABLE).

#
set_window_min_size

fn set_window_min_size(width : Int, height : Int) -> Unit

Set window minimum dimensions (for FLAG_WINDOW_RESIZABLE).

#
set_window_monitor

fn set_window_monitor(monitor : Int) -> Unit

#
set_window_opacity

fn set_window_opacity(opacity : Float) -> Unit

Set window opacity [0.0f..1.0f].

#
set_window_position

fn set_window_position(x : Int, y : Int) -> Unit

Set window position on screen.

#
set_window_size

fn set_window_size(width : Int, height : Int) -> Unit

Set window dimensions.

#
set_window_state

fn set_window_state(flags : Int) -> Unit

Set window configuration state using flags.

#
set_window_title

fn set_window_title(title : String) -> Unit

Set title for window.

#
show_cursor

fn show_cursor() -> Unit

Shows cursor.

#
skyblue

let skyblue : Color

Sky blue color.

#
start_automation_event_recording

fn start_automation_event_recording() -> Unit

Start recording automation events (AutomationEventList must be set).

#
stop_automation_event_recording

fn stop_automation_event_recording() -> Unit

Stop recording automation events.

#
swap_screen_buffer

fn swap_screen_buffer() -> Unit

#
take_screenshot

fn take_screenshot(file_name : String) -> Unit

Take a screenshot of current screen (filename extension defines format).

#
toggle_borderless_windowed

fn toggle_borderless_windowed() -> Unit

Toggle window state: borderless windowed, resizes window to match monitor resolution.

#
toggle_fullscreen

fn toggle_fullscreen() -> Unit

Toggle window state: fullscreen/windowed, resizes monitor to match window resolution.

#
trace_log

fn trace_log(log_level : Int, text : String) -> Unit

Show trace log messages (LOG_DEBUG, LOG_INFO, LOG_WARNING, LOG_ERROR...).

#
unload_directory_files

fn unload_directory_files(files : FilePathList) -> Unit

Unload filepaths loaded with load_directory_files.

#
unload_dropped_files

fn unload_dropped_files(files : FilePathList) -> Unit

Unload dropped filepaths.

#
update_camera

fn update_camera(camera : Camera3D, mode : Int) -> Camera3D

Update camera position for selected mode.

#
update_camera_pro

fn update_camera_pro(camera : Camera3D, movement : Vector3, rotation : Vector3, zoom : Float) -> Camera3D

Update camera movement/rotation.

#
upload_mesh

#deprecated("Use Mesh::upload instead")
fn upload_mesh(mesh : Mesh, dynamic : Int) -> Unit

Upload mesh vertex data in GPU and provide VAO/VBO ids.

#
violet

let violet : Color

Violet color.

#
vr_stereo_config_left_lens_center

#deprecated("Use VrStereoConfig::left_lens_center instead")
fn vr_stereo_config_left_lens_center(config : VrStereoConfig) -> Bytes

Get VR left lens center (deprecated: use VrStereoConfig::left_lens_center instead).

#
vr_stereo_config_left_screen_center

#deprecated("Use VrStereoConfig::left_screen_center instead")
fn vr_stereo_config_left_screen_center(config : VrStereoConfig) -> Bytes

Get VR left screen center (deprecated: use VrStereoConfig::left_screen_center instead).

#
vr_stereo_config_right_lens_center

#deprecated("Use VrStereoConfig::right_lens_center instead")
fn vr_stereo_config_right_lens_center(config : VrStereoConfig) -> Bytes

Get VR right lens center (deprecated: use VrStereoConfig::right_lens_center instead).

#
vr_stereo_config_right_screen_center

#deprecated("Use VrStereoConfig::right_screen_center instead")
fn vr_stereo_config_right_screen_center(config : VrStereoConfig) -> Bytes

Get VR right screen center (deprecated: use VrStereoConfig::right_screen_center instead).

#
vr_stereo_config_scale

#deprecated("Use VrStereoConfig::scale instead")
fn vr_stereo_config_scale(config : VrStereoConfig) -> Bytes

Get VR distortion scale (deprecated: use VrStereoConfig::scale instead).

#
vr_stereo_config_scale_in

#deprecated("Use VrStereoConfig::scale_in instead")
fn vr_stereo_config_scale_in(config : VrStereoConfig) -> Bytes

Get VR distortion scale in (deprecated: use VrStereoConfig::scale_in instead).

#
wait_time

fn wait_time(seconds : Double) -> Unit

#
white

let white : Color

White color.

#
window_should_close

fn window_should_close() -> Bool

Check if application should close (KEY_ESCAPE pressed or windows close icon clicked).

#
yellow

let yellow : Color

Yellow color.