package vendor:raylib

Overview

Package vendor:raylib implements bindings for version 4.5 of the raylib library (https://www.raylib.com/)

*********************************************************************************************
*
*   raylib v4.5 - A simple and easy-to-use library to enjoy videogames programming (www.raylib.com)
*
*   FEATURES:
*       - NO external dependencies, all required libraries included with raylib
*       - Multiplatform: Windows, Linux, FreeBSD, OpenBSD, NetBSD, DragonFly,
*                        MacOS, Haiku, Android, Raspberry Pi, DRM native, HTML5.
*       - Written in plain C code (C99) in PascalCase/camelCase notation
*       - Hardware accelerated with OpenGL (1.1, 2.1, 3.3, 4.3 or ES2 - choose at compile)
*       - Unique OpenGL abstraction layer (usable as standalone module): [rlgl]
*       - Multiple Fonts formats supported (TTF, XNA fonts, AngelCode fonts)
*       - Outstanding texture formats support, including compressed formats (DXT, ETC, ASTC)
*       - Full 3d support for 3d Shapes, Models, Billboards, Heightmaps and more!
*       - Flexible Materials system, supporting classic maps and PBR maps
*       - Animated 3D models supported (skeletal bones animation) (IQM)
*       - Shaders support, including Model shaders and Postprocessing shaders
*       - Powerful math module for Vector, Matrix and Quaternion operations: [raymath]
*       - Audio loading and playing with streaming support (WAV, OGG, MP3, FLAC, XM, MOD)
*       - VR stereo rendering with configurable HMD device parameters
*       - Bindings to multiple programming languages available!
*
*   NOTES:
*       - One default Font is loaded on InitWindow()->LoadFontDefault() [core, text]
*       - One default Texture2D is loaded on rlglInit(), 1x1 white pixel R8G8B8A8 [rlgl] (OpenGL 3.3 or ES2)
*       - One default Shader is loaded on rlglInit()->rlLoadShaderDefault() [rlgl] (OpenGL 3.3 or ES2)
*       - One default RenderBatch is loaded on rlglInit()->rlLoadRenderBatch() [rlgl] (OpenGL 3.3 or ES2)
*
*   DEPENDENCIES (included):
*       [rcore] rglfw (Camilla Löwy - github.com/glfw/glfw) for window/context management and input (PLATFORM_DESKTOP)
*       [rlgl] glad (David Herberth - github.com/Dav1dde/glad) for OpenGL 3.3 extensions loading (PLATFORM_DESKTOP)
*       [raudio] miniaudio (David Reid - github.com/mackron/miniaudio) for audio device/context management
*
*   OPTIONAL DEPENDENCIES (included):
*       [rcore] msf_gif (Miles Fogle) for GIF recording
*       [rcore] sinfl (Micha Mettke) for DEFLATE decompression algorithm
*       [rcore] sdefl (Micha Mettke) for DEFLATE compression algorithm
*       [rtextures] stb_image (Sean Barret) for images loading (BMP, TGA, PNG, JPEG, HDR...)
*       [rtextures] stb_image_write (Sean Barret) for image writing (BMP, TGA, PNG, JPG)
*       [rtextures] stb_image_resize (Sean Barret) for image resizing algorithms
*       [rtext] stb_truetype (Sean Barret) for ttf fonts loading
*       [rtext] stb_rect_pack (Sean Barret) for rectangles packing
*       [rmodels] par_shapes (Philip Rideout) for parametric 3d shapes generation
*       [rmodels] tinyobj_loader_c (Syoyo Fujita) for models loading (OBJ, MTL)
*       [rmodels] cgltf (Johannes Kuhlmann) for models loading (glTF)
*       [rmodels] Model3D (bzt) for models loading (M3D, https://bztsrc.gitlab.io/model3d)
*       [raudio] dr_wav (David Reid) for WAV audio file loading
*       [raudio] dr_flac (David Reid) for FLAC audio file loading
*       [raudio] dr_mp3 (David Reid) for MP3 audio file loading
*       [raudio] stb_vorbis (Sean Barret) for OGG audio loading
*       [raudio] jar_xm (Joshua Reisenauer) for XM audio module loading
*       [raudio] jar_mod (Joshua Reisenauer) for MOD audio module loading
*
*
*   LICENSE: zlib/libpng
*
*   raylib is licensed under an unmodified zlib/libpng license, which is an OSI-certified,
*   BSD-like license that allows static linking with closed source software:
*
*   Copyright (c) 2013-2023 Ramon Santamaria (@raysan5)
*
*   This software is provided "as-is", without any express or implied warranty. In no event
*   will the authors be held liable for any damages arising from the use of this software.
*
*   Permission is granted to anyone to use this software for any purpose, including commercial
*   applications, and to alter it and redistribute it freely, subject to the following restrictions:
*
*     1. The origin of this software must not be misrepresented; you must not claim that you
*     wrote the original software. If you use this software in a product, an acknowledgment
*     in the product documentation would be appreciated but is not required.
*
*     2. Altered source versions must be plainly marked as such, and must not be misrepresented
*     as being the original software.
*
*     3. This notice may not be removed or altered from any source distribution.
*
*********************************************************************************************

Index

Types (74)
Constants (109)
Variables (0)

This section is empty.

Procedures (692)
Procedure Groups (0)

This section is empty.

Types

AudioCallback ¶

AudioCallback :: proc "cdecl" (bufferData: rawptr, frames: u32)

AudioStream ¶

AudioStream :: struct {
	buffer:     rawptr,
	// Pointer to internal data used by the audio system
	processor:  rawptr,
	// Pointer to internal data processor, useful for audio effects
	sampleRate: u32,
	// Frequency (samples per second)
	sampleSize: u32,
	// Bit depth (bits per sample): 8, 16, 32 (24 not supported)
	channels:   u32,
}
 

Audio stream type NOTE: Actual structs are defined internally in raudio module

BlendMode ¶

BlendMode :: enum i32 {
	ALPHA             = 0, // Blend textures considering alpha (default)
	ADDITIVE,              // Blend textures adding colors
	MULTIPLIED,            // Blend textures multiplying colors
	ADD_COLORS,            // Blend textures adding colors (alternative)
	SUBTRACT_COLORS,       // Blend textures subtracting colors (alternative)
	ALPHA_PREMULTIPLY,     // Blend premultiplied textures considering alpha
	CUSTOM,                // Blend textures using custom src/dst factors (use rlSetBlendFactors())
	CUSTOM_SEPARATE,       // Blend textures using custom rgb/alpha separate src/dst factors (use rlSetBlendFactorsSeparate())
}
 

Color blending modes (pre-defined)

BoneInfo ¶

BoneInfo :: struct {
	name:   [32]u8 "fmt:\"s,0\"",
	// Bone name
	parent: i32,
}
 

Bone information

BoundingBox ¶

BoundingBox :: struct {
	min: linalg.Vector3f32,
	// Minimum vertex box-corner
	max: linalg.Vector3f32,
}
 

Bounding box type

Camera ¶

Camera :: Camera3D
 

Camera type fallback, defaults to Camera3D

Camera2D ¶

Camera2D :: struct {
	offset:   linalg.Vector2f32,
	// Camera offset (displacement from target)
	target:   linalg.Vector2f32,
	// Camera target (rotation and zoom origin)
	rotation: f32,
	// Camera rotation in degrees
	zoom:     f32,
}
 

Camera2D type, defines a 2d camera

Camera3D ¶

Camera3D :: struct {
	position:   linalg.Vector3f32,
	// Camera position
	target:     linalg.Vector3f32,
	// Camera target it looks-at
	up:         linalg.Vector3f32,
	// Camera up vector (rotation over its axis)
	fovy:       f32,
	// Camera field-of-view apperture in Y (degrees) in perspective, used as near plane width in orthographic
	projection: CameraProjection,
}
 

Camera type, defines a camera position/orientation in 3d space

CameraMode ¶

CameraMode :: enum i32 {
	CUSTOM       = 0, // Custom camera
	FREE,             // Free camera
	ORBITAL,          // Orbital camera
	FIRST_PERSON,     // First person camera
	THIRD_PERSON,     // Third person camera
}
 

Camera system modes

CameraProjection ¶

CameraProjection :: enum i32 {
	PERSPECTIVE  = 0, // Perspective projection
	ORTHOGRAPHIC,     // Orthographic projection
}
 

Camera projection

Color ¶

Color :: struct {
	r,
	g,
	b,
	a: u8,
}
 

Color, 4 components, R8G8B8A8 (32bit)

ConfigFlag ¶

ConfigFlag :: enum i32 {
	VSYNC_HINT               = 6,  // Set to try enabling V-Sync on GPU
	FULLSCREEN_MODE          = 1,  // Set to run program in fullscreen
	WINDOW_RESIZABLE         = 2,  // Set to allow resizable window
	WINDOW_UNDECORATED       = 3,  // Set to disable window decoration (frame and buttons)
	WINDOW_HIDDEN            = 7,  // Set to hide window
	WINDOW_MINIMIZED         = 9,  // Set to minimize window (iconify)
	WINDOW_MAXIMIZED         = 10, // Set to maximize window (expanded to monitor)
	WINDOW_UNFOCUSED         = 11, // Set to window non focused
	WINDOW_TOPMOST           = 12, // Set to window always on top
	WINDOW_ALWAYS_RUN        = 8,  // Set to allow windows running while minimized
	WINDOW_TRANSPARENT       = 4,  // Set to allow transparent framebuffer
	WINDOW_HIGHDPI           = 13, // Set to support HighDPI
	WINDOW_MOUSE_PASSTHROUGH = 14, // Set to support mouse passthrough, only supported when FLAG_WINDOW_UNDECORATED
	MSAA_4X_HINT             = 5,  // Set to try enabling MSAA 4X
	INTERLACED_HINT          = 16, // Set to try enabling interlaced video format (for V3D)
}
 

---------------------------------------------------------------------------------- Enumerators Definition ---------------------------------------------------------------------------------- System/Window config flags NOTE: Every bit registers one state (use it with bit masks) By default all flags are set to 0

ConfigFlags ¶

ConfigFlags :: distinct bit_set[ConfigFlag; i32]

CubemapLayout ¶

CubemapLayout :: enum i32 {
	AUTO_DETECT         = 0, // Automatically detect layout type
	LINE_VERTICAL,           // Layout is defined by a vertical line with faces
	LINE_HORIZONTAL,         // Layout is defined by an horizontal line with faces
	CROSS_THREE_BY_FOUR,     // Layout is defined by a 3x4 cross with cubemap faces
	CROSS_FOUR_BY_THREE,     // Layout is defined by a 4x3 cross with cubemap faces
	PANORAMA,                // Layout is defined by a panorama image (equirectangular map)
}
 

Cubemap layouts

CullMode ¶

CullMode :: enum i32 {
	FRONT = 0, 
	BACK, 
}

DrawCall ¶

DrawCall :: struct {
	mode:            i32,
	// Drawing mode: LINES, TRIANGLES, QUADS
	vertexCount:     i32,
	// Number of vertex of the draw
	vertexAlignment: i32,
	// Number of vertex required for index alignment (LINES, TRIANGLES)
	textureId:       u32,
}
 

Draw call type NOTE: Only texture changes register a new draw, other state-change-related elements are not used at this moment (vaoId, shaderId, matrices), raylib just forces a batch draw call if any of those state-change happens (this is done in core module)

FilePathList ¶

FilePathList :: struct {
	capacity: u32,
	// Filepaths max entries
	count:    u32,
	// Filepaths entries count
	paths:    [^]cstring,
}
 

File path list

Font ¶

Font :: struct {
	baseSize:     i32,
	// Base size (default chars height)
	charsCount:   i32,
	// Number of characters
	charsPadding: i32,
	// Padding around the chars
	texture:      Texture,
	// Characters texture atlas
	recs:         [^]Rectangle,
	// Characters rectangles in texture
	chars:        [^]GlyphInfo,
}
 

Font type, includes texture and charSet array data

FontType ¶

FontType :: enum i32 {
	DEFAULT = 0, // Default font generation, anti-aliased
	BITMAP,      // Bitmap font generation, no anti-aliasing
	SDF,         // SDF font generation, requires external shader
}
 

Font type, defines generation method

FramebufferAttachTextureType ¶

FramebufferAttachTextureType :: enum i32 {
	CUBEMAP_POSITIVE_X = 0,   // Framebuffer texture attachment type: cubemap, +X side
	CUBEMAP_NEGATIVE_X,       // Framebuffer texture attachment type: cubemap, -X side
	CUBEMAP_POSITIVE_Y,       // Framebuffer texture attachment type: cubemap, +Y side
	CUBEMAP_NEGATIVE_Y,       // Framebuffer texture attachment type: cubemap, -Y side
	CUBEMAP_POSITIVE_Z,       // Framebuffer texture attachment type: cubemap, +Z side
	CUBEMAP_NEGATIVE_Z,       // Framebuffer texture attachment type: cubemap, -Z side
	TEXTURE2D          = 100, // Framebuffer texture attachment type: texture2d
	RENDERBUFFER       = 200, // Framebuffer texture attachment type: renderbuffer
}
 

Framebuffer texture attachment type

FramebufferAttachType ¶

FramebufferAttachType :: enum i32 {
	COLOR_CHANNEL0 = 0,   // Framebuffer attachment type: color 0
	COLOR_CHANNEL1,       // Framebuffer attachment type: color 1
	COLOR_CHANNEL2,       // Framebuffer attachment type: color 2
	COLOR_CHANNEL3,       // Framebuffer attachment type: color 3
	COLOR_CHANNEL4,       // Framebuffer attachment type: color 4
	COLOR_CHANNEL5,       // Framebuffer attachment type: color 5
	COLOR_CHANNEL6,       // Framebuffer attachment type: color 6
	COLOR_CHANNEL7,       // Framebuffer attachment type: color 7
	DEPTH          = 100, // Framebuffer attachment type: depth
	STENCIL        = 200, // Framebuffer attachment type: stencil
}
 

Framebuffer attachment type NOTE: By default up to 8 color channels defined, but it can be more

GamepadAxis ¶

GamepadAxis :: enum i32 {
	LEFT_X        = 0, // Gamepad left stick X axis
	LEFT_Y        = 1, // Gamepad left stick Y axis
	RIGHT_X       = 2, // Gamepad right stick X axis
	RIGHT_Y       = 3, // Gamepad right stick Y axis
	LEFT_TRIGGER  = 4, // Gamepad back trigger left, pressure level: [1..-1]
	RIGHT_TRIGGER = 5, // Gamepad back trigger right, pressure level: [1..-1]
}
 

Gamepad axis

GamepadButton ¶

GamepadButton :: enum i32 {
	UNKNOWN          = 0, // Unknown button, just for error checking
	LEFT_FACE_UP,         // Gamepad left DPAD up button
	LEFT_FACE_RIGHT,      // Gamepad left DPAD right button
	LEFT_FACE_DOWN,       // Gamepad left DPAD down button
	LEFT_FACE_LEFT,       // Gamepad left DPAD left button
	RIGHT_FACE_UP,        // Gamepad right button up (i.e. PS3: Triangle, Xbox: Y)
	RIGHT_FACE_RIGHT,     // Gamepad right button right (i.e. PS3: Square, Xbox: X)
	RIGHT_FACE_DOWN,      // Gamepad right button down (i.e. PS3: Cross, Xbox: A)
	RIGHT_FACE_LEFT,      // Gamepad right button left (i.e. PS3: Circle, Xbox: B)
	LEFT_TRIGGER_1,       // Gamepad top/back trigger left (first), it could be a trailing button
	LEFT_TRIGGER_2,       // Gamepad top/back trigger left (second), it could be a trailing button
	RIGHT_TRIGGER_1,      // Gamepad top/back trigger right (one), it could be a trailing button
	RIGHT_TRIGGER_2,      // Gamepad top/back trigger right (second), it could be a trailing button
	MIDDLE_LEFT,          // Gamepad center buttons, left one (i.e. PS3: Select)
	MIDDLE,               // Gamepad center buttons, middle one (i.e. PS3: PS, Xbox: XBOX)
	MIDDLE_RIGHT,         // Gamepad center buttons, right one (i.e. PS3: Start)
	LEFT_THUMB,           // Gamepad joystick pressed button left
	RIGHT_THUMB,          // Gamepad joystick pressed button right
}
 

Gamepad buttons

Gesture ¶

Gesture :: enum i32 {
	TAP         = 0, // Tap gesture
	DOUBLETAP   = 1, // Double tap gesture
	HOLD        = 2, // Hold gesture
	DRAG        = 3, // Drag gesture
	SWIPE_RIGHT = 4, // Swipe right gesture
	SWIPE_LEFT  = 5, // Swipe left gesture
	SWIPE_UP    = 6, // Swipe up gesture
	SWIPE_DOWN  = 7, // Swipe down gesture
	PINCH_IN    = 8, // Pinch in gesture
	PINCH_OUT   = 9, // Pinch out gesture
}
 

Gestures NOTE: It could be used as flags to enable only some gestures

Gestures ¶

Gestures :: distinct bit_set[Gesture; i32]

GlVersion ¶

GlVersion :: enum i32 {
	OPENGL_11    = 1, // OpenGL 1.1
	OPENGL_21,        // OpenGL 2.1 (GLSL 120)
	OPENGL_33,        // OpenGL 3.3 (GLSL 330)
	OPENGL_43,        // OpenGL 4.3 (using GLSL 330)
	OPENGL_ES_20,     // OpenGL ES 2.0 (GLSL 100)
}
 

OpenGL version

GlyphInfo ¶

GlyphInfo :: struct {
	value:    rune,
	// Character value (Unicode)
	offsetX:  i32,
	// Character offset X when drawing
	offsetY:  i32,
	// Character offset Y when drawing
	advanceX: i32,
	// Character advance position X
	image:    Image,
}
 

Font character info

Image ¶

Image :: struct {
	data:    rawptr,
	// Image raw data
	width:   i32,
	// Image base width
	height:  i32,
	// Image base height
	mipmaps: i32,
	// Mipmap levels, 1 by default
	format:  PixelFormat,
}
 

Image type, bpp always RGBA (32bit) NOTE: Data stored in CPU memory (RAM)

KeyboardKey ¶

KeyboardKey :: enum i32 {
	KEY_NULL      = 0,   // Key: NULL, used for no key pressed
	// Alphanumeric keys
	APOSTROPHE    = 39,  // Key: '
	COMMA         = 44,  // Key: ,
	MINUS         = 45,  // Key: -
	PERIOD        = 46,  // Key: .
	SLASH         = 47,  // Key: /
	ZERO          = 48,  // Key: 0
	ONE           = 49,  // Key: 1
	TWO           = 50,  // Key: 2
	THREE         = 51,  // Key: 3
	FOUR          = 52,  // Key: 4
	FIVE          = 53,  // Key: 5
	SIX           = 54,  // Key: 6
	SEVEN         = 55,  // Key: 7
	EIGHT         = 56,  // Key: 8
	NINE          = 57,  // Key: 9
	SEMICOLON     = 59,  // Key: ;
	EQUAL         = 61,  // Key: =
	A             = 65,  // Key: A | a
	B             = 66,  // Key: B | b
	C             = 67,  // Key: C | c
	D             = 68,  // Key: D | d
	E             = 69,  // Key: E | e
	F             = 70,  // Key: F | f
	G             = 71,  // Key: G | g
	H             = 72,  // Key: H | h
	I             = 73,  // Key: I | i
	J             = 74,  // Key: J | j
	K             = 75,  // Key: K | k
	L             = 76,  // Key: L | l
	M             = 77,  // Key: M | m
	N             = 78,  // Key: N | n
	O             = 79,  // Key: O | o
	P             = 80,  // Key: P | p
	Q             = 81,  // Key: Q | q
	R             = 82,  // Key: R | r
	S             = 83,  // Key: S | s
	T             = 84,  // Key: T | t
	U             = 85,  // Key: U | u
	V             = 86,  // Key: V | v
	W             = 87,  // Key: W | w
	X             = 88,  // Key: X | x
	Y             = 89,  // Key: Y | y
	Z             = 90,  // Key: Z | z
	LEFT_BRACKET  = 91,  // Key: [
	BACKSLASH     = 92,  // Key: '\'
	RIGHT_BRACKET = 93,  // Key: ]
	GRAVE         = 96,  // Key: `
	// Function keys
	SPACE         = 32,  // Key: Space
	ESCAPE        = 256, // Key: Esc
	ENTER         = 257, // Key: Enter
	TAB           = 258, // Key: Tab
	BACKSPACE     = 259, // Key: Backspace
	INSERT        = 260, // Key: Ins
	DELETE        = 261, // Key: Del
	RIGHT         = 262, // Key: Cursor right
	LEFT          = 263, // Key: Cursor left
	DOWN          = 264, // Key: Cursor down
	UP            = 265, // Key: Cursor up
	PAGE_UP       = 266, // Key: Page up
	PAGE_DOWN     = 267, // Key: Page down
	HOME          = 268, // Key: Home
	END           = 269, // Key: End
	CAPS_LOCK     = 280, // Key: Caps lock
	SCROLL_LOCK   = 281, // Key: Scroll down
	NUM_LOCK      = 282, // Key: Num lock
	PRINT_SCREEN  = 283, // Key: Print screen
	PAUSE         = 284, // Key: Pause
	F1            = 290, // Key: F1
	F2            = 291, // Key: F2
	F3            = 292, // Key: F3
	F4            = 293, // Key: F4
	F5            = 294, // Key: F5
	F6            = 295, // Key: F6
	F7            = 296, // Key: F7
	F8            = 297, // Key: F8
	F9            = 298, // Key: F9
	F10           = 299, // Key: F10
	F11           = 300, // Key: F11
	F12           = 301, // Key: F12
	LEFT_SHIFT    = 340, // Key: Shift left
	LEFT_CONTROL  = 341, // Key: Control left
	LEFT_ALT      = 342, // Key: Alt left
	LEFT_SUPER    = 343, // Key: Super left
	RIGHT_SHIFT   = 344, // Key: Shift right
	RIGHT_CONTROL = 345, // Key: Control right
	RIGHT_ALT     = 346, // Key: Alt right
	RIGHT_SUPER   = 347, // Key: Super right
	KB_MENU       = 348, // Key: KB menu
	// Keypad keys
	KP_0          = 320, // Key: Keypad 0
	KP_1          = 321, // Key: Keypad 1
	KP_2          = 322, // Key: Keypad 2
	KP_3          = 323, // Key: Keypad 3
	KP_4          = 324, // Key: Keypad 4
	KP_5          = 325, // Key: Keypad 5
	KP_6          = 326, // Key: Keypad 6
	KP_7          = 327, // Key: Keypad 7
	KP_8          = 328, // Key: Keypad 8
	KP_9          = 329, // Key: Keypad 9
	KP_DECIMAL    = 330, // Key: Keypad .
	KP_DIVIDE     = 331, // Key: Keypad /
	KP_MULTIPLY   = 332, // Key: Keypad *
	KP_SUBTRACT   = 333, // Key: Keypad -
	KP_ADD        = 334, // Key: Keypad +
	KP_ENTER      = 335, // Key: Keypad Enter
	KP_EQUAL      = 336, // Key: Keypad =
	// Android key buttons
	BACK          = 4,   // Key: Android back button
	MENU          = 82,  // Key: Android menu button
	VOLUME_UP     = 24,  // Key: Android volume up button
	VOLUME_DOWN   = 25,  // Key: Android volume down button
}
 

Keyboard keys (US keyboard layout) NOTE: Use GetKeyPressed() to allow redefining required keys for alternative layouts

LoadFileDataCallback ¶

LoadFileDataCallback :: proc "cdecl" (fileName: cstring, bytesRead: ^u32) -> [^]u8
 

FileIO: Load binary data

LoadFileTextCallback ¶

LoadFileTextCallback :: proc "cdecl" (fileName: cstring) -> [^]u8
 

FileIO: Load text data

Material ¶

Material :: struct {
	shader: Shader,
	// Material shader
	maps:   [^]MaterialMap,
	// Material maps array (MAX_MATERIAL_MAPS)
	params: [4]f32,
}
 

Material type (generic)

MaterialMap ¶

MaterialMap :: struct {
	texture: Texture,
	// Material map texture
	color:   Color,
	// Material map color
	value:   f32,
}
 

Material texture map

MaterialMapIndex ¶

MaterialMapIndex :: enum i32 {
	ALBEDO     = 0, // Albedo material (same as: MATERIAL_MAP_DIFFUSE)
	METALNESS,      // Metalness material (same as: MATERIAL_MAP_SPECULAR)
	NORMAL,         // Normal material
	ROUGHNESS,      // Roughness material
	OCCLUSION,      // Ambient occlusion material
	EMISSION,       // Emission material
	HEIGHT,         // Heightmap material
	CUBEMAP,        // Cubemap material (NOTE: Uses GL_TEXTURE_CUBE_MAP)
	IRRADIANCE,     // Irradiance material (NOTE: Uses GL_TEXTURE_CUBE_MAP)
	PREFILTER,      // Prefilter material (NOTE: Uses GL_TEXTURE_CUBE_MAP)
	BRDF,           // Brdf material
}
 

Material map index

Matrix ¶

Matrix :: linalg.Matrix4x4f32
 

Matrix type (OpenGL style 4x4 - right handed, column major)

Mesh ¶

Mesh :: struct {
	vertexCount:   i32,
	// Number of vertices stored in arrays
	triangleCount: i32,
	// Default vertex data
	vertices:      [^]f32,
	// Vertex position (XYZ - 3 components per vertex) (shader-location = 0)
	texcoords:     [^]f32,
	// Vertex texture coordinates (UV - 2 components per vertex) (shader-location = 1)
	texcoords2:    [^]f32,
	// Vertex second texture coordinates (useful for lightmaps) (shader-location = 5)
	normals:       [^]f32,
	// Vertex normals (XYZ - 3 components per vertex) (shader-location = 2)
	tangents:      [^]f32,
	// Vertex tangents (XYZW - 4 components per vertex) (shader-location = 4)
	colors:        [^]u8,
	// Vertex colors (RGBA - 4 components per vertex) (shader-location = 3)
	indices:       [^]u16,
	// Animation vertex data
	animVertices:  [^]f32,
	// Animated vertex positions (after bones transformations)
	animNormals:   [^]f32,
	// Animated normals (after bones transformations)
	boneIds:       [^]u8,
	// Vertex bone ids, up to 4 bones influence by vertex (skinning)
	boneWeights:   [^]f32,
	// OpenGL identifiers
	vaoId:         u32,
	// OpenGL Vertex Array Object id
	vboId:         [^]u32,
}
 

Vertex data definning a mesh NOTE: Data stored in CPU memory (and GPU)

Model ¶

Model :: struct {
	transform:     linalg.Matrix4x4f32,
	// Local transform matrix
	meshCount:     i32,
	// Number of meshes
	materialCount: i32,
	// Number of materials
	meshes:        [^]Mesh,
	// Meshes array
	materials:     [^]Material,
	// Materials array
	meshMaterial:  [^]i32,
	// Animation data
	boneCount:     i32,
	// Number of bones
	bones:         [^]BoneInfo,
	// Bones information (skeleton)
	bindPose:      [^]Transform,
}
 

Model type

ModelAnimation ¶

ModelAnimation :: struct {
	boneCount:  i32,
	// Number of bones
	frameCount: i32,
	// Number of animation frames
	bones:      [^]BoneInfo,
	// Bones information (skeleton)
	framePoses: [^][^]Transform,
}
 

Model animation

MouseButton ¶

MouseButton :: enum i32 {
	LEFT    = 0, // Mouse button left
	RIGHT   = 1, // Mouse button right
	MIDDLE  = 2, // Mouse button middle (pressed wheel)
	SIDE    = 3, // Mouse button side (advanced mouse device)
	EXTRA   = 4, // Mouse button extra (advanced mouse device)
	FORWARD = 5, // Mouse button fordward (advanced mouse device)
	BACK    = 6, // Mouse button back (advanced mouse device)
}
 

Mouse buttons

MouseCursor ¶

MouseCursor :: enum i32 {
	DEFAULT       = 0,  // Default pointer shape
	ARROW         = 1,  // Arrow shape
	IBEAM         = 2,  // Text writing cursor shape
	CROSSHAIR     = 3,  // Cross shape
	POINTING_HAND = 4,  // Pointing hand cursor
	RESIZE_EW     = 5,  // Horizontal resize/move arrow shape
	RESIZE_NS     = 6,  // Vertical resize/move arrow shape
	RESIZE_NWSE   = 7,  // Top-left to bottom-right diagonal resize/move arrow shape
	RESIZE_NESW   = 8,  // The top-right to bottom-left diagonal resize/move arrow shape
	RESIZE_ALL    = 9,  // The omnidirectional resize/move cursor shape
	NOT_ALLOWED   = 10, // The operation-not-allowed shape
}
 

Mouse cursor

Music ¶

Music :: struct {
	stream:     AudioStream,
	// Audio stream
	frameCount: u32,
	// Total number of frames (considering channels)
	looping:    bool,
	// Music looping enable
	ctxType:    i32,
	// Type of music context (audio filetype)
	ctxData:    rawptr,
}
 

Music stream type (audio file streaming from memory) NOTE: Anything longer than ~10 seconds should be streamed

NPatchInfo ¶

NPatchInfo :: struct {
	source: Rectangle,
	// Texture source rectangle
	left:   i32,
	// Left border offset
	top:    i32,
	// Top border offset
	right:  i32,
	// Right border offset
	bottom: i32,
	// Bottom border offset
	layout: NPatchLayout,
}
 

N-Patch layout info

NPatchLayout ¶

NPatchLayout :: enum i32 {
	NINE_PATCH             = 0, // Npatch layout: 3x3 tiles
	THREE_PATCH_VERTICAL,       // Npatch layout: 1x3 tiles
	THREE_PATCH_HORIZONTAL,     // Npatch layout: 3x1 tiles
}
 

N-patch layout

PixelFormat ¶

PixelFormat :: enum i32 {
	UNKNOWN                   = 0, 
	UNCOMPRESSED_GRAYSCALE    = 1, // 8 bit per pixel (no alpha)
	UNCOMPRESSED_GRAY_ALPHA,       // 8*2 bpp (2 channels)
	UNCOMPRESSED_R5G6B5,           // 16 bpp
	UNCOMPRESSED_R8G8B8,           // 24 bpp
	UNCOMPRESSED_R5G5B5A1,         // 16 bpp (1 bit alpha)
	UNCOMPRESSED_R4G4B4A4,         // 16 bpp (4 bit alpha)
	UNCOMPRESSED_R8G8B8A8,         // 32 bpp
	UNCOMPRESSED_R32,              // 32 bpp (1 channel - float)
	UNCOMPRESSED_R32G32B32,        // 32*3 bpp (3 channels - float)
	UNCOMPRESSED_R32G32B32A32,     // 32*4 bpp (4 channels - float)
	COMPRESSED_DXT1_RGB,           // 4 bpp (no alpha)
	COMPRESSED_DXT1_RGBA,          // 4 bpp (1 bit alpha)
	COMPRESSED_DXT3_RGBA,          // 8 bpp
	COMPRESSED_DXT5_RGBA,          // 8 bpp
	COMPRESSED_ETC1_RGB,           // 4 bpp
	COMPRESSED_ETC2_RGB,           // 4 bpp
	COMPRESSED_ETC2_EAC_RGBA,      // 8 bpp
	COMPRESSED_PVRT_RGB,           // 4 bpp
	COMPRESSED_PVRT_RGBA,          // 4 bpp
	COMPRESSED_ASTC_4x4_RGBA,      // 8 bpp
	COMPRESSED_ASTC_8x8_RGBA,      // 2 bpp
}
 

Pixel formats NOTE: Support depends on OpenGL version and platform

Quaternion ¶

Quaternion :: linalg.Quaternionf32
 

Quaternion type

Ray ¶

Ray :: struct {
	position:  linalg.Vector3f32,
	// Ray position (origin)
	direction: linalg.Vector3f32,
}
 

Ray type (useful for raycast)

RayCollision ¶

RayCollision :: struct {
	hit:      bool,
	// Did the ray hit something?
	distance: f32,
	// Distance to nearest hit
	point:    linalg.Vector3f32,
	// Point of nearest hit
	normal:   linalg.Vector3f32,
}
 

RayCollision, ray hit information

Rectangle ¶

Rectangle :: struct {
	x:      f32,
	// Rectangle top-left corner position x
	y:      f32,
	// Rectangle top-left corner position y
	width:  f32,
	// Rectangle width
	height: f32,
}
 

Rectangle type

RenderBatch ¶

RenderBatch :: struct {
	bufferCount:   i32,
	// Number of vertex buffers (multi-buffering support)
	currentBuffer: i32,
	// Current buffer tracking in case of multi-buffering
	vertexBuffer:  [^]VertexBuffer,
	// Dynamic buffer(s) for vertex data
	draws:         [^]DrawCall,
	// Draw calls array, depends on textureId
	drawCounter:   i32,
	// Draw calls counter
	currentDepth:  f32,
}
 

RenderBatch type

RenderTexture ¶

RenderTexture :: struct {
	id:      u32,
	// OpenGL framebuffer object id
	texture: Texture,
	// Color buffer attachment texture
	depth:   Texture,
}
 

RenderTexture type, for texture rendering

RenderTexture2D ¶

RenderTexture2D :: RenderTexture
 

RenderTexture2D type, same as RenderTexture

SaveFileDataCallback ¶

SaveFileDataCallback :: proc "cdecl" (fileName: cstring, data: rawptr, bytesToWrite: u32) -> bool
 

FileIO: Save binary data

SaveFileTextCallback ¶

SaveFileTextCallback :: proc "cdecl" (fileName: cstring, text: cstring) -> bool
 

FileIO: Save text data

Shader ¶

Shader :: struct {
	id:   u32,
	// Shader program id
	locs: [^]i32,
}
 

Shader type (generic)

ShaderAttributeDataType ¶

ShaderAttributeDataType :: enum i32 {
	FLOAT = 0, // Shader attribute type: float
	VEC2,      // Shader attribute type: vec2 (2 float)
	VEC3,      // Shader attribute type: vec3 (3 float)
	VEC4,      // Shader attribute type: vec4 (4 float)
}
 

Shader attribute data types

ShaderLocationIndex ¶

ShaderLocationIndex :: enum i32 {
	VERTEX_POSITION   = 0, // Shader location: vertex attribute: position
	VERTEX_TEXCOORD01,     // Shader location: vertex attribute: texcoord01
	VERTEX_TEXCOORD02,     // Shader location: vertex attribute: texcoord02
	VERTEX_NORMAL,         // Shader location: vertex attribute: normal
	VERTEX_TANGENT,        // Shader location: vertex attribute: tangent
	VERTEX_COLOR,          // Shader location: vertex attribute: color
	MATRIX_MVP,            // Shader location: matrix uniform: model-view-projection
	MATRIX_VIEW,           // Shader location: matrix uniform: view (camera transform)
	MATRIX_PROJECTION,     // Shader location: matrix uniform: projection
	MATRIX_MODEL,          // Shader location: matrix uniform: model (transform)
	MATRIX_NORMAL,         // Shader location: matrix uniform: normal
	VECTOR_VIEW,           // Shader location: vector uniform: view
	COLOR_DIFFUSE,         // Shader location: vector uniform: diffuse color
	COLOR_SPECULAR,        // Shader location: vector uniform: specular color
	COLOR_AMBIENT,         // Shader location: vector uniform: ambient color
	MAP_ALBEDO,            // Shader location: sampler2d texture: albedo (same as: SHADER_LOC_MAP_DIFFUSE)
	MAP_METALNESS,         // Shader location: sampler2d texture: metalness (same as: SHADER_LOC_MAP_SPECULAR)
	MAP_NORMAL,            // Shader location: sampler2d texture: normal
	MAP_ROUGHNESS,         // Shader location: sampler2d texture: roughness
	MAP_OCCLUSION,         // Shader location: sampler2d texture: occlusion
	MAP_EMISSION,          // Shader location: sampler2d texture: emission
	MAP_HEIGHT,            // Shader location: sampler2d texture: height
	MAP_CUBEMAP,           // Shader location: samplerCube texture: cubemap
	MAP_IRRADIANCE,        // Shader location: samplerCube texture: irradiance
	MAP_PREFILTER,         // Shader location: samplerCube texture: prefilter
	MAP_BRDF,              // Shader location: sampler2d texture: brdf
}
 

Shader location index

ShaderUniformDataType ¶

ShaderUniformDataType :: enum i32 {
	FLOAT     = 0, // Shader uniform type: float
	VEC2,          // Shader uniform type: vec2 (2 float)
	VEC3,          // Shader uniform type: vec3 (3 float)
	VEC4,          // Shader uniform type: vec4 (4 float)
	INT,           // Shader uniform type: int
	IVEC2,         // Shader uniform type: ivec2 (2 int)
	IVEC3,         // Shader uniform type: ivec3 (3 int)
	IVEC4,         // Shader uniform type: ivec4 (4 int)
	SAMPLER2D,     // Shader uniform type: sampler2d
}
 

Shader uniform data type

Sound ¶

Sound :: struct {
	stream:     AudioStream,
	// Audio stream
	frameCount: u32,
}
 

Sound source type

Texture ¶

Texture :: struct {
	id:      u32,
	// OpenGL texture id
	width:   i32,
	// Texture base width
	height:  i32,
	// Texture base height
	mipmaps: i32,
	// Mipmap levels, 1 by default
	format:  PixelFormat,
}
 

Texture type NOTE: Data stored in GPU memory

Texture2D ¶

Texture2D :: Texture
 

Texture2D type, same as Texture

TextureCubemap ¶

TextureCubemap :: Texture
 

TextureCubemap type, actually, same as Texture

TextureFilter ¶

TextureFilter :: enum i32 {
	POINT           = 0, // No filter, just pixel approximation
	BILINEAR,            // Linear filtering
	TRILINEAR,           // Trilinear filtering (linear with mipmaps)
	ANISOTROPIC_4X,      // Anisotropic filtering 4x
	ANISOTROPIC_8X,      // Anisotropic filtering 8x
	ANISOTROPIC_16X,     // Anisotropic filtering 16x
}
 

Texture parameters: filter mode NOTE 1: Filtering considers mipmaps if available in the texture NOTE 2: Filter is accordingly set for minification and magnification

TextureWrap ¶

TextureWrap :: enum i32 {
	REPEAT        = 0, // Repeats texture in tiled mode
	CLAMP,             // Clamps texture to edge pixel in tiled mode
	MIRROR_REPEAT,     // Mirrors and repeats the texture in tiled mode
	MIRROR_CLAMP,      // Mirrors and clamps to border the texture in tiled mode
}
 

Texture parameters: wrap mode

TraceLogCallback ¶

TraceLogCallback :: proc "cdecl" (logLevel: TraceLogLevel, text: cstring, args: libc.va_list)
 

Callbacks to hook some internal functions WARNING: This callbacks are intended for advance users

TraceLogLevel ¶

TraceLogLevel :: enum i32 {
	ALL     = 0, // Display all logs
	TRACE,       // Trace logging, intended for internal use only
	DEBUG,       // Debug logging, used for internal debugging, it should be disabled on release builds
	INFO,        // Info logging, used for program execution info
	WARNING,     // Warning logging, used on recoverable failures
	ERROR,       // Error logging, used on unrecoverable failures
	FATAL,       // Fatal logging, used to abort program: exit(EXIT_FAILURE)
	NONE,        // Disable logging
}
 

Trace log level

Transform ¶

Transform :: struct {
	translation: linalg.Vector3f32,
	// Translation
	rotation:    linalg.Quaternionf32,
	// Rotation
	scale:       linalg.Vector3f32,
}
 

Transformation properties

Vector2 ¶

Vector2 :: linalg.Vector2f32
 

Vector2 type

Vector3 ¶

Vector3 :: linalg.Vector3f32
 

Vector3 type

Vector4 ¶

Vector4 :: linalg.Vector4f32
 

Vector4 type

VertexBuffer ¶

VertexBuffer :: struct {
	elementCount: i32,
	// Number of elements in the buffer (QUADS)
	vertices:     [^]f32,
	// Vertex position (XYZ - 3 components per vertex) (shader-location = 0)
	texcoords:    [^]f32,
	// Vertex texture coordinates (UV - 2 components per vertex) (shader-location = 1)
	colors:       [^]u8,
	// Vertex colors (RGBA - 4 components per vertex) (shader-location = 3)
	indices:      [^]u32,
	// Vertex indices (in case vertex data comes indexed) (6 indices per quad)
	vaoId:        u32,
	// OpenGL Vertex Array Object id
	vboId:        [4]u32,
}
 

Dynamic vertex buffers (position + texcoords + colors + indices arrays)

VertexBufferIndexType ¶

VertexBufferIndexType :: u32

VrDeviceInfo ¶

VrDeviceInfo :: struct {
	hResolution:            i32,
	// Horizontal resolution in pixels
	vResolution:            i32,
	// Vertical resolution in pixels
	hScreenSize:            f32,
	// Horizontal size in meters
	vScreenSize:            f32,
	// Vertical size in meters
	vScreenCenter:          f32,
	// Screen center in meters
	eyeToScreenDistance:    f32,
	// Distance between eye and display in meters
	lensSeparationDistance: f32,
	// Lens separation distance in meters
	interpupillaryDistance: f32,
	// IPD (distance between pupils) in meters
	lensDistortionValues:   [4]f32,
	// Lens distortion constant parameters
	chromaAbCorrection:     [4]f32,
}
 

Head-Mounted-Display device parameters

VrStereoConfig ¶

VrStereoConfig :: struct {
	projection:        [2]linalg.Matrix4x4f32,
	// VR projection matrices (per eye)
	viewOffset:        [2]linalg.Matrix4x4f32,
	// VR view offset matrices (per eye)
	leftLensCenter:    [2]f32,
	// VR left lens center
	rightLensCenter:   [2]f32,
	// VR right lens center
	leftScreenCenter:  [2]f32,
	// VR left screen center
	rightScreenCenter: [2]f32,
	// VR right screen center
	scale:             [2]f32,
	// VR distortion scale
	scaleIn:           [2]f32,
}
 

VR Stereo rendering configuration for simulator

Wave ¶

Wave :: struct {
	frameCount: u32,
	// Total number of frames (considering channels)
	sampleRate: u32,
	// Frequency (samples per second)
	sampleSize: u32,
	// Bit depth (bits per sample): 8, 16, 32 (24 not supported)
	channels:   u32,
	// Number of channels (1-mono, 2-stereo)
	data:       rawptr,
}
 

Wave type, defines audio wave data

Constants

BEIGE ¶

BEIGE :: Color{211, 176, 131, 255}
 

Beige

BLACK ¶

BLACK :: Color{0, 0, 0, 255}
 

Black

BLANK ¶

BLANK :: Color{0, 0, 0, 0}
 

Blank (Transparent)

BLUE ¶

BLUE :: Color{0, 121, 241, 255}
 

Blue

BROWN ¶

BROWN :: Color{127, 106, 79, 255}
 

Brown

DARKBLUE ¶

DARKBLUE :: Color{0, 82, 172, 255}
 

Dark Blue

DARKBROWN ¶

DARKBROWN :: Color{76, 63, 47, 255}
 

Dark Brown

DARKGRAY ¶

DARKGRAY :: Color{80, 80, 80, 255}
 

Dark Gray

DARKGREEN ¶

DARKGREEN :: Color{0, 117, 44, 255}
 

Dark Green

DARKPURPLE ¶

DARKPURPLE :: Color{112, 31, 126, 255}
 

Dark Purple

DEG2RAD ¶

DEG2RAD :: PI / 180.0

GOLD ¶

GOLD :: Color{255, 203, 0, 255}
 

Gold

GRAY ¶

GRAY :: Color{130, 130, 130, 255}
 

Gray

GREEN ¶

GREEN :: Color{0, 228, 48, 255}
 

Green

LIGHTGRAY ¶

LIGHTGRAY :: Color{200, 200, 200, 255}
 

Some Basic Colors NOTE: Custom raylib color palette for amazing visuals on WHITE background

LIME ¶

LIME :: Color{0, 158, 47, 255}
 

Lime

MAGENTA ¶

MAGENTA :: Color{255, 0, 255, 255}
 

Magenta

MAROON ¶

MAROON :: Color{190, 33, 55, 255}
 

Maroon

MAX_TEXTFORMAT_BUFFERS ¶

MAX_TEXTFORMAT_BUFFERS :: #config(RAYLIB_MAX_TEXTFORMAT_BUFFERS, 4)

MAX_TEXT_BUFFER_LENGTH ¶

MAX_TEXT_BUFFER_LENGTH :: #config(RAYLIB_MAX_TEXT_BUFFER_LENGTH, 1024)

ORANGE ¶

ORANGE :: Color{255, 161, 0, 255}
 

Orange

PI ¶

PI :: 3.14159265358979323846

PINK ¶

PINK :: Color{255, 109, 194, 255}
 

Pink

PURPLE ¶

PURPLE :: Color{200, 122, 255, 255}
 

Purple

RAD2DEG ¶

RAD2DEG :: 180.0 / PI

RAYWHITE ¶

RAYWHITE :: Color{245, 245, 245, 255}
 

My own White (raylib logo)

RED ¶

RED :: Color{230, 41, 55, 255}
 

Red

RL_BLEND_COLOR ¶

RL_BLEND_COLOR :: 0x8005
 

GL_BLEND_COLOR

RL_BLEND_DST_ALPHA ¶

RL_BLEND_DST_ALPHA :: 0x80CA
 

GL_BLEND_DST_ALPHA

RL_BLEND_DST_RGB ¶

RL_BLEND_DST_RGB :: 0x80C8
 

GL_BLEND_DST_RGB

RL_BLEND_EQUATION ¶

RL_BLEND_EQUATION :: 0x8009
 

GL_BLEND_EQUATION

RL_BLEND_EQUATION_ALPHA ¶

RL_BLEND_EQUATION_ALPHA :: 0x883D
 

GL_BLEND_EQUATION_ALPHA

RL_BLEND_EQUATION_RGB ¶

RL_BLEND_EQUATION_RGB :: 0x8009
 

GL_BLEND_EQUATION_RGB // (Same as BLEND_EQUATION)

RL_BLEND_SRC_ALPHA ¶

RL_BLEND_SRC_ALPHA :: 0x80CB
 

GL_BLEND_SRC_ALPHA

RL_BLEND_SRC_RGB ¶

RL_BLEND_SRC_RGB :: 0x80C9
 

GL_BLEND_SRC_RGB

RL_COMPUTE_SHADER ¶

RL_COMPUTE_SHADER :: 0x91B9
 

GL_COMPUTE_SHADER

RL_CONSTANT_ALPHA ¶

RL_CONSTANT_ALPHA :: 0x8003
 

GL_CONSTANT_ALPHA

RL_CONSTANT_COLOR ¶

RL_CONSTANT_COLOR :: 0x8001
 

GL_CONSTANT_COLOR

RL_CULL_DISTANCE_FAR ¶

RL_CULL_DISTANCE_FAR :: 1000.0
 

Default far cull distance

RL_CULL_DISTANCE_NEAR ¶

RL_CULL_DISTANCE_NEAR :: 0.01
 

Projection matrix culling

RL_DEFAULT_BATCH_BUFFERS ¶

RL_DEFAULT_BATCH_BUFFERS :: 1
 

Default number of batch buffers (multi-buffering)

RL_DEFAULT_BATCH_BUFFER_ELEMENTS ¶

RL_DEFAULT_BATCH_BUFFER_ELEMENTS :: 8192
 

This is the maximum amount of elements (quads) per batch NOTE: Be careful with text, every letter maps to a quad

RL_DEFAULT_BATCH_DRAWCALLS ¶

RL_DEFAULT_BATCH_DRAWCALLS :: 256
 

Default number of batch draw calls (by state changes: mode, texture)

RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS ¶

RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS :: 4
 

Maximum number of additional textures that can be activated on batch drawing (SetShaderValueTexture())

RL_DST_ALPHA ¶

RL_DST_ALPHA :: 0x0304
 

GL_DST_ALPHA

RL_DST_COLOR ¶

RL_DST_COLOR :: 0x0306
 

GL_DST_COLOR

RL_DYNAMIC_COPY ¶

RL_DYNAMIC_COPY :: 0x88EA
 

GL_DYNAMIC_COPY

RL_DYNAMIC_DRAW ¶

RL_DYNAMIC_DRAW :: 0x88E8
 

GL_DYNAMIC_DRAW

RL_DYNAMIC_READ ¶

RL_DYNAMIC_READ :: 0x88E9
 

GL_DYNAMIC_READ

RL_FLOAT ¶

RL_FLOAT :: 0x1406
 

GL_FLOAT

RL_FRAGMENT_SHADER ¶

RL_FRAGMENT_SHADER :: 0x8B30
 

GL Shader type

RL_FUNC_ADD ¶

RL_FUNC_ADD :: 0x8006
 

GL blending functions/equations

RL_FUNC_REVERSE_SUBTRACT ¶

RL_FUNC_REVERSE_SUBTRACT :: 0x800B
 

GL_FUNC_REVERSE_SUBTRACT

RL_FUNC_SUBTRACT ¶

RL_FUNC_SUBTRACT :: 0x800A
 

GL_FUNC_SUBTRACT

RL_GRAPHICS_API_OPENGL_11 ¶

RL_GRAPHICS_API_OPENGL_11 :: false

RL_GRAPHICS_API_OPENGL_21 ¶

RL_GRAPHICS_API_OPENGL_21 :: true

RL_GRAPHICS_API_OPENGL_33 ¶

RL_GRAPHICS_API_OPENGL_33 :: RL_GRAPHICS_API_OPENGL_21
 

default currently

RL_GRAPHICS_API_OPENGL_43 ¶

RL_GRAPHICS_API_OPENGL_43 :: false

RL_GRAPHICS_API_OPENGL_ES2 ¶

RL_GRAPHICS_API_OPENGL_ES2 :: false

RL_LINES ¶

RL_LINES :: 0x0001
 

Primitive assembly draw modes

RL_MAX ¶

RL_MAX :: 0x8008
 

GL_MAX

RL_MAX_MATRIX_STACK_SIZE ¶

RL_MAX_MATRIX_STACK_SIZE :: 32
 

Internal Matrix stack

RL_MAX_SHADER_LOCATIONS ¶

RL_MAX_SHADER_LOCATIONS :: 32
 

Shader limits

RL_MIN ¶

RL_MIN :: 0x8007
 

GL_MIN

RL_MODELVIEW ¶

RL_MODELVIEW :: 0x1700
 

Matrix modes (equivalent to OpenGL)

RL_ONE ¶

RL_ONE :: 1
 

GL_ONE

RL_ONE_MINUS_CONSTANT_ALPHA ¶

RL_ONE_MINUS_CONSTANT_ALPHA :: 0x8004
 

GL_ONE_MINUS_CONSTANT_ALPHA

RL_ONE_MINUS_CONSTANT_COLOR ¶

RL_ONE_MINUS_CONSTANT_COLOR :: 0x8002
 

GL_ONE_MINUS_CONSTANT_COLOR

RL_ONE_MINUS_DST_ALPHA ¶

RL_ONE_MINUS_DST_ALPHA :: 0x0305
 

GL_ONE_MINUS_DST_ALPHA

RL_ONE_MINUS_DST_COLOR ¶

RL_ONE_MINUS_DST_COLOR :: 0x0307
 

GL_ONE_MINUS_DST_COLOR

RL_ONE_MINUS_SRC_ALPHA ¶

RL_ONE_MINUS_SRC_ALPHA :: 0x0303
 

GL_ONE_MINUS_SRC_ALPHA

RL_ONE_MINUS_SRC_COLOR ¶

RL_ONE_MINUS_SRC_COLOR :: 0x0301
 

GL_ONE_MINUS_SRC_COLOR

RL_PROJECTION ¶

RL_PROJECTION :: 0x1701
 

GL_PROJECTION

RL_QUADS ¶

RL_QUADS :: 0x0007
 

GL_QUADS

RL_SRC_ALPHA ¶

RL_SRC_ALPHA :: 0x0302
 

GL_SRC_ALPHA

RL_SRC_ALPHA_SATURATE ¶

RL_SRC_ALPHA_SATURATE :: 0x0308
 

GL_SRC_ALPHA_SATURATE

RL_SRC_COLOR ¶

RL_SRC_COLOR :: 0x0300
 

GL_SRC_COLOR

RL_STATIC_COPY ¶

RL_STATIC_COPY :: 0x88E6
 

GL_STATIC_COPY

RL_STATIC_DRAW ¶

RL_STATIC_DRAW :: 0x88E4
 

GL_STATIC_DRAW

RL_STATIC_READ ¶

RL_STATIC_READ :: 0x88E5
 

GL_STATIC_READ

RL_STREAM_COPY ¶

RL_STREAM_COPY :: 0x88E2
 

GL_STREAM_COPY

RL_STREAM_DRAW ¶

RL_STREAM_DRAW :: 0x88E0
 

Buffer usage hint

RL_STREAM_READ ¶

RL_STREAM_READ :: 0x88E1
 

GL_STREAM_READ

RL_TEXTURE ¶

RL_TEXTURE :: 0x1702
 

GL_TEXTURE

RL_TEXTURE_FILTER_ANISOTROPIC ¶

RL_TEXTURE_FILTER_ANISOTROPIC :: 0x3000
 

Anisotropic filter (custom identifier)

RL_TEXTURE_FILTER_LINEAR ¶

RL_TEXTURE_FILTER_LINEAR :: 0x2601
 

GL_LINEAR

RL_TEXTURE_FILTER_LINEAR_MIP_NEAREST ¶

RL_TEXTURE_FILTER_LINEAR_MIP_NEAREST :: 0x2701
 

GL_LINEAR_MIPMAP_NEAREST

RL_TEXTURE_FILTER_MIP_LINEAR ¶

RL_TEXTURE_FILTER_MIP_LINEAR :: 0x2703
 

GL_LINEAR_MIPMAP_LINEAR

RL_TEXTURE_FILTER_MIP_NEAREST ¶

RL_TEXTURE_FILTER_MIP_NEAREST :: 0x2700
 

GL_NEAREST_MIPMAP_NEAREST

RL_TEXTURE_FILTER_NEAREST ¶

RL_TEXTURE_FILTER_NEAREST :: 0x2600
 

GL_NEAREST

RL_TEXTURE_FILTER_NEAREST_MIP_LINEAR ¶

RL_TEXTURE_FILTER_NEAREST_MIP_LINEAR :: 0x2702
 

GL_NEAREST_MIPMAP_LINEAR

RL_TEXTURE_MAG_FILTER ¶

RL_TEXTURE_MAG_FILTER :: 0x2800
 

GL_TEXTURE_MAG_FILTER

RL_TEXTURE_MIN_FILTER ¶

RL_TEXTURE_MIN_FILTER :: 0x2801
 

GL_TEXTURE_MIN_FILTER

RL_TEXTURE_WRAP_CLAMP ¶

RL_TEXTURE_WRAP_CLAMP :: 0x812F
 

GL_CLAMP_TO_EDGE

RL_TEXTURE_WRAP_MIRROR_CLAMP ¶

RL_TEXTURE_WRAP_MIRROR_CLAMP :: 0x8742
 

GL_MIRROR_CLAMP_EXT

RL_TEXTURE_WRAP_MIRROR_REPEAT ¶

RL_TEXTURE_WRAP_MIRROR_REPEAT :: 0x8370
 

GL_MIRRORED_REPEAT

RL_TEXTURE_WRAP_REPEAT ¶

RL_TEXTURE_WRAP_REPEAT :: 0x2901
 

GL_REPEAT

RL_TEXTURE_WRAP_S ¶

RL_TEXTURE_WRAP_S :: 0x2802
 

Texture parameters (equivalent to OpenGL defines)

RL_TEXTURE_WRAP_T ¶

RL_TEXTURE_WRAP_T :: 0x2803
 

GL_TEXTURE_WRAP_T

RL_TRIANGLES ¶

RL_TRIANGLES :: 0x0004
 

GL_TRIANGLES

RL_UNSIGNED_BYTE ¶

RL_UNSIGNED_BYTE :: 0x1401
 

GL equivalent data types

RL_VERTEX_SHADER ¶

RL_VERTEX_SHADER :: 0x8B31
 

GL_VERTEX_SHADER

RL_ZERO ¶

RL_ZERO :: 0
 

GL blending factors

SKYBLUE ¶

SKYBLUE :: Color{102, 191, 255, 255}
 

Sky Blue

USE_LINALG ¶

USE_LINALG :: #config(RAYLIB_USE_LINALG, true)

VERSION ¶

VERSION :: "4.5"

VIOLET ¶

VIOLET :: Color{135, 60, 190, 255}
 

Violet

WHITE ¶

WHITE :: Color{255, 255, 255, 255}
 

White

YELLOW ¶

YELLOW :: Color{253, 249, 0, 255}
 

Yellow

Variables

This section is empty.

Procedures

AttachAudioMixedProcessor ¶

AttachAudioMixedProcessor :: proc "cdecl" (processor: AudioCallback) ---
 

Attach audio stream processor to the entire audio pipeline

AttachAudioStreamProcessor ¶

AttachAudioStreamProcessor :: proc "cdecl" (stream: AudioStream, processor: AudioCallback) ---
 

Attach audio stream processor to stream

BeginBlendMode ¶

BeginBlendMode :: proc "cdecl" (mode: BlendMode) ---
 

Begin blending mode (alpha, additive, multiplied)

BeginDrawing ¶

BeginDrawing :: proc "cdecl" () ---
 

Setup canvas (framebuffer) to start drawing

BeginMode2D ¶

BeginMode2D :: proc "cdecl" (camera: Camera2D) ---
 

Initialize 2D mode with custom camera (2D)

BeginMode3D ¶

BeginMode3D :: proc "cdecl" (camera: Camera3D) ---
 

Initializes 3D mode with custom camera (3D)

BeginScissorMode ¶

BeginScissorMode :: proc "cdecl" (x, y, width, height: i32) ---
 

Begin scissor mode (define screen area for following drawing)

BeginShaderMode ¶

BeginShaderMode :: proc "cdecl" (shader: Shader) ---
 

Begin custom shader drawing

BeginTextureMode ¶

BeginTextureMode :: proc "cdecl" (target: RenderTexture) ---
 

Initializes render texture for drawing

BeginVrStereoMode ¶

BeginVrStereoMode :: proc "cdecl" (config: VrStereoConfig) ---
 

Begin stereo rendering (requires VR simulator)

ChangeDirectory ¶

ChangeDirectory :: proc "cdecl" (dir: cstring) -> bool ---
 

Change working directory, return true on success

CheckCollisionBoxSphere ¶

CheckCollisionBoxSphere :: proc "cdecl" (box: BoundingBox, center: linalg.Vector3f32, radius: f32) -> bool ---
 

Check collision between box and sphere

CheckCollisionBoxes ¶

CheckCollisionBoxes :: proc "cdecl" (box1, box2: BoundingBox) -> bool ---
 

Check collision between two bounding boxes

CheckCollisionCircleRec ¶

CheckCollisionCircleRec :: proc "cdecl" (center: linalg.Vector2f32, radius: f32, rec: Rectangle) -> bool ---
 

Check collision between circle and rectangle

CheckCollisionCircles ¶

CheckCollisionCircles :: proc "cdecl" (center1: linalg.Vector2f32, radius1: f32, center2: linalg.Vector2f32, radius2: f32) -> bool ---
 

Check collision between two circles

CheckCollisionLines ¶

CheckCollisionLines :: proc "cdecl" (startPos1, endPos1, startPos2, endPos2: linalg.Vector2f32, collisionPoint: [^]linalg.Vector2f32) -> bool ---
 

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

CheckCollisionPointCircle ¶

CheckCollisionPointCircle :: proc "cdecl" (point, center: linalg.Vector2f32, radius: f32) -> bool ---
 

Check if point is inside circle

CheckCollisionPointLine ¶

CheckCollisionPointLine :: proc "cdecl" (point: linalg.Vector2f32, p1, p2: linalg.Vector2f32, threshold: i32) -> bool ---
 

Check if point belongs to line created between two points [p1] and [p2] with defined margin in pixels [threshold]

CheckCollisionPointPoly ¶

CheckCollisionPointPoly :: proc "cdecl" (point: linalg.Vector2f32, points: [^]linalg.Vector2f32, pointCount: i32) -> bool ---
 

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

CheckCollisionPointRec ¶

CheckCollisionPointRec :: proc "cdecl" (point: linalg.Vector2f32, rec: Rectangle) -> bool ---
 

Check if point is inside rectangle

CheckCollisionPointTriangle ¶

CheckCollisionPointTriangle :: proc "cdecl" (point: linalg.Vector2f32, p1, p2, p3: linalg.Vector2f32) -> bool ---
 

Check if point is inside a triangle

CheckCollisionRecs ¶

CheckCollisionRecs :: proc "cdecl" (rec1, rec2: Rectangle) -> bool ---
 

Basic shapes collision detection functions

CheckCollisionSpheres ¶

CheckCollisionSpheres :: proc "cdecl" (center1: linalg.Vector3f32, radius1: f32, center2: linalg.Vector3f32, radius2: f32) -> bool ---
 

Check collision between two spheres

ClearBackground ¶

ClearBackground :: proc "cdecl" (color: Color) ---
 

Set background color (framebuffer clear color)

ClearWindowState ¶

ClearWindowState :: proc "cdecl" (flags: ConfigFlags) ---
 

Clear window configuration state flags

CloseAudioDevice ¶

CloseAudioDevice :: proc "cdecl" () ---
 

Close the audio device and context

CloseWindow ¶

CloseWindow :: proc "cdecl" () ---
 

Close window and unload OpenGL context

CodepointToUTF8 ¶

CodepointToUTF8 :: proc "cdecl" (codepoint: rune, utf8Size: ^i32) -> cstring ---
 

Encode one codepoint into UTF-8 byte array (array length returned as parameter)

ColorAlpha ¶

ColorAlpha :: proc "cdecl" (color: Color, alpha: f32) -> Color ---
 

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

ColorAlphaBlend ¶

ColorAlphaBlend :: proc "cdecl" (dst, src, tint: Color) -> Color ---
 

Get src alpha-blended into dst color with tint

ColorBrightness ¶

ColorBrightness :: proc "cdecl" (color: Color, factor: f32) -> Color ---
 

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

ColorContrast ¶

ColorContrast :: proc "cdecl" (color: Color, contrast: f32) -> Color ---
 

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

ColorFromHSV ¶

ColorFromHSV :: proc "cdecl" (hue, saturation, value: f32) -> Color ---
 

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

ColorFromNormalized ¶

ColorFromNormalized :: proc "cdecl" (normalized: linalg.Vector4f32) -> Color ---
 

Get Color from normalized values [0..1]

ColorNormalize ¶

ColorNormalize :: proc "cdecl" (color: Color) -> linalg.Vector4f32 ---
 

Get Color normalized as float [0..1]

ColorTint ¶

ColorTint :: proc "cdecl" (color, tint: Color) -> Color ---
 

Get color multiplied with another color

ColorToHSV ¶

ColorToHSV :: proc "cdecl" (color: Color) -> linalg.Vector3f32 ---
 

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

ColorToInt ¶

ColorToInt :: proc "cdecl" (color: Color) -> u32 ---
 

Get hexadecimal value for a Color

CompressData ¶

CompressData :: proc "cdecl" (data: rawptr, dataSize: i32, compDataSize: ^i32) -> [^]u8 ---
 

Compress data (DEFLATE algorithm), memory must be MemFree()

DecodeDataBase64 ¶

DecodeDataBase64 :: proc "cdecl" (data: rawptr, outputSize: ^i32) -> [^]u8 ---
 

Decode Base64 string data, memory must be MemFree()

DecompressData ¶

DecompressData :: proc "cdecl" (compData: rawptr, compDataSize: i32, dataSize: ^i32) -> [^]u8 ---
 

Decompress data (DEFLATE algorithm), memory must be MemFree()

DetachAudioMixedProcessor ¶

DetachAudioMixedProcessor :: proc "cdecl" (processor: AudioCallback) ---
 

Detach audio stream processor from the entire audio pipeline

DetachAudioStreamProcessor ¶

DetachAudioStreamProcessor :: proc "cdecl" (stream: AudioStream, processor: AudioCallback) ---
 

Detach audio stream processor from stream

DirectoryExists ¶

DirectoryExists :: proc "cdecl" (dirPath: cstring) -> bool ---
 

Check if a directory path exists

DisableCursor ¶

DisableCursor :: proc "cdecl" () ---
 

Disables cursor (lock cursor)

DisableEventWaiting ¶

DisableEventWaiting :: proc "cdecl" () ---
 

Disable waiting for events on EndDrawing(), automatic events polling

DrawBillboard ¶

DrawBillboard :: proc "cdecl" (camera: Camera3D, texture: Texture, position: linalg.Vector3f32, size: f32, tint: Color) ---
 

Draw a billboard texture

DrawBillboardPro ¶

DrawBillboardPro :: proc "cdecl" (
	camera:   Camera3D, 
	texture:  Texture, 
	source:   Rectangle, 
	position: linalg.Vector3f32, 
	up:       linalg.Vector3f32, 
	size:     linalg.Vector2f32, 
	origin:   linalg.Vector2f32, 
	rotation: f32, 
	tint:     Color, 
) ---
 

Draw a billboard texture defined by source and rotation

DrawBillboardRec ¶

DrawBillboardRec :: proc "cdecl" (
	camera:   Camera3D, 
	texture:  Texture, 
	source:   Rectangle, 
	position: linalg.Vector3f32, 
	size:     linalg.Vector2f32, 
	tint:     Color, 
) ---
 

Draw a billboard texture defined by source

DrawBoundingBox ¶

DrawBoundingBox :: proc "cdecl" (box: BoundingBox, color: Color) ---
 

Draw bounding box (wires)

DrawCapsule ¶

DrawCapsule :: proc "cdecl" (
	startPos, endPos: linalg.Vector3f32, 
	radius:           f32, 
	slices, rings:    i32, 
	color:            Color, 
) ---
 

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

DrawCapsuleWires ¶

DrawCapsuleWires :: proc "cdecl" (
	startPos, endPos: linalg.Vector3f32, 
	radius:           f32, 
	slices, rings:    i32, 
	color:            Color, 
) ---
 

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

DrawCircle ¶

DrawCircle :: proc "cdecl" (centerX, centerY: i32, radius: f32, color: Color) ---
 

Draw a color-filled circle

DrawCircle3D ¶

DrawCircle3D :: proc "cdecl" (center: linalg.Vector3f32, radius: f32, rotationAxis: linalg.Vector3f32, rotationAngle: f32, color: Color) ---
 

Draw a circle in 3D world space

DrawCircleGradient ¶

DrawCircleGradient :: proc "cdecl" (centerX, centerY: i32, radius: f32, color1, color2: Color) ---
 

Draw a gradient-filled circle

DrawCircleLines ¶

DrawCircleLines :: proc "cdecl" (centerX, centerY: i32, radius: f32, color: Color) ---
 

Draw circle outline

DrawCircleSector ¶

DrawCircleSector :: proc "cdecl" (
	center:               linalg.Vector2f32, 
	radius:               f32, 
	startAngle, endAngle: f32, 
	segments:             i32, 
	color:                Color, 
) ---
 

Draw a piece of a circle

DrawCircleSectorLines ¶

DrawCircleSectorLines :: proc "cdecl" (
	center:               linalg.Vector2f32, 
	radius:               f32, 
	startAngle, endAngle: f32, 
	segments:             i32, 
	color:                Color, 
) ---
 

Draw circle sector outline

DrawCircleV ¶

DrawCircleV :: proc "cdecl" (center: linalg.Vector2f32, radius: f32, color: Color) ---
 

Draw a color-filled circle (Vector version)

DrawCube ¶

DrawCube :: proc "cdecl" (position: linalg.Vector3f32, width, height, length: f32, color: Color) ---
 

Draw cube

DrawCubeV ¶

DrawCubeV :: proc "cdecl" (position: linalg.Vector3f32, size: linalg.Vector3f32, color: Color) ---
 

Draw cube (Vector version)

DrawCubeWires ¶

DrawCubeWires :: proc "cdecl" (position: linalg.Vector3f32, width, height, length: f32, color: Color) ---
 

Draw cube wires

DrawCubeWiresV ¶

DrawCubeWiresV :: proc "cdecl" (position: linalg.Vector3f32, size: linalg.Vector3f32, color: Color) ---
 

Draw cube wires (Vector version)

DrawCylinder ¶

DrawCylinder :: proc "cdecl" (
	position:                linalg.Vector3f32, 
	radiusTop, radiusBottom: f32, 
	height:                  f32, 
	slices:                  i32, 
	color:                   Color, 
) ---
 

Draw a cylinder/cone

DrawCylinderEx ¶

DrawCylinderEx :: proc "cdecl" (
	startPos, endPos:       linalg.Vector3f32, 
	startRadius, endRadius: f32, 
	sides:                  i32, 
	color:                  Color, 
) ---
 

Draw a cylinder with base at startPos and top at endPos

DrawCylinderWires ¶

DrawCylinderWires :: proc "cdecl" (
	position:                linalg.Vector3f32, 
	radiusTop, radiusBottom: f32, 
	height:                  f32, 
	slices:                  i32, 
	color:                   Color, 
) ---
 

Draw a cylinder/cone wires

DrawCylinderWiresEx ¶

DrawCylinderWiresEx :: proc "cdecl" (
	startPos, endPos:       linalg.Vector3f32, 
	startRadius, endRadius: f32, 
	sides:                  i32, 
	color:                  Color, 
) ---
 

Draw a cylinder wires with base at startPos and top at endPos

DrawEllipse ¶

DrawEllipse :: proc "cdecl" (centerX, centerY: i32, radiusH, radiusV: f32, color: Color) ---
 

Draw ellipse

DrawEllipseLines ¶

DrawEllipseLines :: proc "cdecl" (centerX, centerY: i32, radiusH, radiusV: f32, color: Color) ---
 

Draw ellipse outline

DrawFPS ¶

DrawFPS :: proc "cdecl" (posX, posY: i32) ---
 

Draw current FPS

DrawGrid ¶

DrawGrid :: proc "cdecl" (slices: i32, spacing: f32) ---
 

Draw a grid (centered at (0, 0, 0))

DrawLine ¶

DrawLine :: proc "cdecl" (startPosX, startPosY, endPosX, endPosY: i32, color: Color) ---
 

Draw a line

DrawLine3D ¶

DrawLine3D :: proc "cdecl" (startPos, endPos: linalg.Vector3f32, color: Color) ---
 

Draw a line in 3D world space

DrawLineBezier ¶

DrawLineBezier :: proc "cdecl" (startPos, endPos: linalg.Vector2f32, thick: f32, color: Color) ---
 

Draw a line using cubic-bezier curves in-out

DrawLineBezierCubic ¶

DrawLineBezierCubic :: proc "cdecl" (
	startPos, endPos:               linalg.Vector2f32, 
	startControlPos, endControlPos: linalg.Vector2f32, 
	thick:                          f32, 
	color:                          Color, 
) ---
 

Draw line using cubic bezier curves with 2 control points

DrawLineBezierQuad ¶

DrawLineBezierQuad :: proc "cdecl" (startPos, endPos: linalg.Vector2f32, controlPos: linalg.Vector2f32, thick: f32, color: Color) ---
 

Draw line using quadratic bezier curves with a control point

DrawLineEx ¶

DrawLineEx :: proc "cdecl" (startPos, endPos: linalg.Vector2f32, thick: f32, color: Color) ---
 

Draw a line defining thickness

DrawLineStrip ¶

DrawLineStrip :: proc "cdecl" (points: [^]linalg.Vector2f32, pointCount: i32, color: Color) ---
 

Draw lines sequence

DrawLineV ¶

DrawLineV :: proc "cdecl" (startPos, endPos: linalg.Vector2f32, color: Color) ---
 

Draw a line (Vector version)

DrawMesh ¶

DrawMesh :: proc "cdecl" (mesh: Mesh, material: Material, transform: linalg.Matrix4x4f32) ---
 

Draw a 3d mesh with material and transform

DrawMeshInstanced ¶

DrawMeshInstanced :: proc "cdecl" (mesh: Mesh, material: Material, transforms: [^]linalg.Matrix4x4f32, instances: i32) ---
 

Draw multiple mesh instances with material and different transforms

DrawModel ¶

DrawModel :: proc "cdecl" (model: Model, position: linalg.Vector3f32, scale: f32, tint: Color) ---
 

Draw a model (with texture if set)

DrawModelEx ¶

DrawModelEx :: proc "cdecl" (
	model:         Model, 
	position:      linalg.Vector3f32, 
	rotationAxis:  linalg.Vector3f32, 
	rotationAngle: f32, 
	scale:         linalg.Vector3f32, 
	tint:          Color, 
) ---
 

Draw a model with extended parameters

DrawModelWires ¶

DrawModelWires :: proc "cdecl" (model: Model, position: linalg.Vector3f32, scale: f32, tint: Color) ---
 

Draw a model wires (with texture if set)

DrawModelWiresEx ¶

DrawModelWiresEx :: proc "cdecl" (
	model:         Model, 
	position:      linalg.Vector3f32, 
	rotationAxis:  linalg.Vector3f32, 
	rotationAngle: f32, 
	scale:         linalg.Vector3f32, 
	tint:          Color, 
) ---
 

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

DrawPixel ¶

DrawPixel :: proc "cdecl" (posX, posY: i32, color: Color) ---
 

Draw a pixel

DrawPixelV ¶

DrawPixelV :: proc "cdecl" (position: linalg.Vector2f32, color: Color) ---
 

Draw a pixel (Vector version)

DrawPlane ¶

DrawPlane :: proc "cdecl" (centerPos: linalg.Vector3f32, size: linalg.Vector2f32, color: Color) ---
 

Draw a plane XZ

DrawPoint3D ¶

DrawPoint3D :: proc "cdecl" (position: linalg.Vector3f32, color: Color) ---
 

Draw a point in 3D space, actually a small line

DrawPoly ¶

DrawPoly :: proc "cdecl" (center: linalg.Vector2f32, sides: i32, radius: f32, rotation: f32, color: Color) ---
 

Draw a regular polygon (Vector version)

DrawPolyLines ¶

DrawPolyLines :: proc "cdecl" (center: linalg.Vector2f32, sides: i32, radius: f32, rotation: f32, color: Color) ---
 

Draw a polygon outline of n sides

DrawPolyLinesEx ¶

DrawPolyLinesEx :: proc "cdecl" (
	center:    linalg.Vector2f32, 
	sides:     i32, 
	radius:    f32, 
	rotation:  f32, 
	lineThick: f32, 
	color:     Color, 
) ---
 

Draw a polygon outline of n sides with extended parameters

DrawRay ¶

DrawRay :: proc "cdecl" (ray: Ray, color: Color) ---
 

Draw a ray line

DrawRectangle ¶

DrawRectangle :: proc "cdecl" (posX, posY: i32, width, height: i32, color: Color) ---
 

Draw a color-filled rectangle

DrawRectangleGradientEx ¶

DrawRectangleGradientEx :: proc "cdecl" (rec: Rectangle, col1, col2, col3, col4: Color) ---
 

Draw a gradient-filled rectangle with custom vertex colors

DrawRectangleGradientH ¶

DrawRectangleGradientH :: proc "cdecl" (
	posX, posY:    i32, 
	width, height: i32, 
	color1, 
	color2:        Color, 
) ---
 

Draw a horizontal-gradient-filled rectangle

DrawRectangleGradientV ¶

DrawRectangleGradientV :: proc "cdecl" (
	posX, posY:    i32, 
	width, height: i32, 
	color1, 
	color2:        Color, 
) ---
 

Draw a vertical-gradient-filled rectangle

DrawRectangleLines ¶

DrawRectangleLines :: proc "cdecl" (posX, posY: i32, width, height: i32, color: Color) ---
 

Draw rectangle outline

DrawRectangleLinesEx ¶

DrawRectangleLinesEx :: proc "cdecl" (rec: Rectangle, lineThick: f32, color: Color) ---
 

Draw rectangle outline with extended parameters

DrawRectanglePro ¶

DrawRectanglePro :: proc "cdecl" (rec: Rectangle, origin: linalg.Vector2f32, rotation: f32, color: Color) ---
 

Draw a color-filled rectangle with pro parameters

DrawRectangleRec ¶

DrawRectangleRec :: proc "cdecl" (rec: Rectangle, color: Color) ---
 

Draw a color-filled rectangle

DrawRectangleRounded ¶

DrawRectangleRounded :: proc "cdecl" (rec: Rectangle, roundness: f32, segments: i32, color: Color) ---
 

Draw rectangle with rounded edges

DrawRectangleRoundedLines ¶

DrawRectangleRoundedLines :: proc "cdecl" (rec: Rectangle, roundness: f32, segments: i32, lineThick: f32, color: Color) ---
 

Draw rectangle with rounded edges outline

DrawRectangleV ¶

DrawRectangleV :: proc "cdecl" (position: linalg.Vector2f32, size: linalg.Vector2f32, color: Color) ---
 

Draw a color-filled rectangle (Vector version)

DrawRing ¶

DrawRing :: proc "cdecl" (
	center:                   linalg.Vector2f32, 
	innerRadius, outerRadius: f32, 
	startAngle, endAngle:     f32, 
	segments:                 i32, 
	color:                    Color, 
) ---
 

Draw ring

DrawRingLines ¶

DrawRingLines :: proc "cdecl" (
	center:                   linalg.Vector2f32, 
	innerRadius, outerRadius: f32, 
	startAngle, endAngle:     f32, 
	segments:                 i32, 
	color:                    Color, 
) ---
 

Draw ring outline

DrawSphere ¶

DrawSphere :: proc "cdecl" (centerPos: linalg.Vector3f32, radius: f32, color: Color) ---
 

Draw sphere

DrawSphereEx ¶

DrawSphereEx :: proc "cdecl" (centerPos: linalg.Vector3f32, radius: f32, rings, slices: i32, color: Color) ---
 

Draw sphere with extended parameters

DrawSphereWires ¶

DrawSphereWires :: proc "cdecl" (centerPos: linalg.Vector3f32, radius: f32, rings, slices: i32, color: Color) ---
 

Draw sphere wires

DrawText ¶

DrawText :: proc "cdecl" (text: cstring, posX, posY: i32, fontSize: i32, color: Color) ---
 

Draw text (using default font)

DrawTextCodepoint ¶

DrawTextCodepoint :: proc "cdecl" (font: Font, codepoint: rune, position: linalg.Vector2f32, fontSize: f32, tint: Color) ---
 

Draw one character (codepoint)

DrawTextCodepoints ¶

DrawTextCodepoints :: proc "cdecl" (
	font:       Font, 
	codepoints: [^]rune, 
	count:      i32, 
	position:   linalg.Vector2f32, 
	fontSize:   f32, 
	spacing:    f32, 
	tint:       Color, 
) ---
 

Draw multiple character (codepoint)

DrawTextEx ¶

DrawTextEx :: proc "cdecl" (
	font:     Font, 
	text:     cstring, 
	position: linalg.Vector2f32, 
	fontSize: f32, 
	spacing:  f32, 
	tint:     Color, 
) ---
 

Draw text using font and additional parameters

DrawTextPro ¶

DrawTextPro :: proc "cdecl" (
	font:             Font, 
	text:             cstring, 
	position, origin: linalg.Vector2f32, 
	rotation:         f32, 
	fontSize:         f32, 
	spacing:          f32, 
	tint:             Color, 
) ---
 

Draw text using Font and pro parameters (rotation)

DrawTexture ¶

DrawTexture :: proc "cdecl" (texture: Texture, posX, posY: i32, tint: Color) ---
 

Texture drawing functions

DrawTextureEx ¶

DrawTextureEx :: proc "cdecl" (texture: Texture, position: linalg.Vector2f32, rotation: f32, scale: f32, tint: Color) ---
 

Draw a Texture2D with extended parameters

DrawTextureNPatch ¶

DrawTextureNPatch :: proc "cdecl" (
	texture:    Texture, 
	nPatchInfo: NPatchInfo, 
	dest:       Rectangle, 
	origin:     linalg.Vector2f32, 
	rotation:   f32, 
	tint:       Color, 
) ---
 

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

DrawTexturePro ¶

DrawTexturePro :: proc "cdecl" (
	texture:      Texture, 
	source, dest: Rectangle, 
	origin:       linalg.Vector2f32, 
	rotation:     f32, 
	tint:         Color, 
) ---
 

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

DrawTextureRec ¶

DrawTextureRec :: proc "cdecl" (texture: Texture, source: Rectangle, position: linalg.Vector2f32, tint: Color) ---
 

Draw a part of a texture defined by a rectangle

DrawTextureV ¶

DrawTextureV :: proc "cdecl" (texture: Texture, position: linalg.Vector2f32, tint: Color) ---
 

Draw a Texture2D with position defined as Vector2

DrawTriangle ¶

DrawTriangle :: proc "cdecl" (v1, v2, v3: linalg.Vector2f32, color: Color) ---
 

Draw a color-filled triangle (vertex in counter-clockwise order!)

DrawTriangle3D ¶

DrawTriangle3D :: proc "cdecl" (v1, v2, v3: linalg.Vector3f32, color: Color) ---
 

Draw a color-filled triangle (vertex in counter-clockwise order!)

DrawTriangleFan ¶

DrawTriangleFan :: proc "cdecl" (points: [^]linalg.Vector2f32, pointCount: i32, color: Color) ---
 

Draw a triangle fan defined by points (first vertex is the center)

DrawTriangleLines ¶

DrawTriangleLines :: proc "cdecl" (v1, v2, v3: linalg.Vector2f32, color: Color) ---
 

Draw triangle outline (vertex in counter-clockwise order!)

DrawTriangleStrip ¶

DrawTriangleStrip :: proc "cdecl" (points: [^]linalg.Vector2f32, pointCount: i32, color: Color) ---
 

Draw a triangle strip defined by points

DrawTriangleStrip3D ¶

DrawTriangleStrip3D :: proc "cdecl" (points: [^]linalg.Vector3f32, pointCount: i32, color: Color) ---
 

Draw a triangle strip defined by points

EaseBackIn ¶

EaseBackIn :: proc "odin" (t, b, c, d: f32) -> f32 {…}
 

Back Easing functions

EaseBackInOut ¶

EaseBackInOut :: proc "odin" (t, b, c, d: f32) -> f32 {…}

EaseBackOut ¶

EaseBackOut :: proc "odin" (t, b, c, d: f32) -> f32 {…}

EaseBounceIn ¶

EaseBounceIn :: proc "odin" (t, b, c, d: f32) -> f32 {…}

EaseBounceInOut ¶

EaseBounceInOut :: proc "odin" (t, b, c, d: f32) -> f32 {…}

EaseBounceOut ¶

EaseBounceOut :: proc "odin" (t, b, c, d: f32) -> f32 {…}
 

Bounce Easing functions

EaseCircIn ¶

EaseCircIn :: proc "odin" (t, b, c, d: f32) -> f32 {…}
 

Circular Easing functions

EaseCircInOut ¶

EaseCircInOut :: proc "odin" (t, b, c, d: f32) -> f32 {…}

EaseCircOut ¶

EaseCircOut :: proc "odin" (t, b, c, d: f32) -> f32 {…}

EaseCubicIn ¶

EaseCubicIn :: proc "odin" (t, b, c, d: f32) -> f32 {…}
 

Cubic Easing functions

EaseCubicInOut ¶

EaseCubicInOut :: proc "odin" (t, b, c, d: f32) -> f32 {…}

EaseCubicOut ¶

EaseCubicOut :: proc "odin" (t, b, c, d: f32) -> f32 {…}

EaseElasticIn ¶

EaseElasticIn :: proc "odin" (t, b, c, d: f32) -> f32 {…}
 

Elastic Easing functions

EaseElasticInOut ¶

EaseElasticInOut :: proc "odin" (t, b, c, d: f32) -> f32 {…}

EaseElasticOut ¶

EaseElasticOut :: proc "odin" (t, b, c, d: f32) -> f32 {…}

EaseExpoIn ¶

EaseExpoIn :: proc "odin" (t, b, c, d: f32) -> f32 {…}
 

Exponential Easing functions

EaseExpoInOut ¶

EaseExpoInOut :: proc "odin" (t, b, c, d: f32) -> f32 {…}

EaseExpoOut ¶

EaseExpoOut :: proc "odin" (t, b, c, d: f32) -> f32 {…}

EaseLinearIn ¶

EaseLinearIn :: proc "odin" (t, b, c, d: f32) -> f32 {…}

EaseLinearInOut ¶

EaseLinearInOut :: proc "odin" (t, b, c, d: f32) -> f32 {…}

EaseLinearNone ¶

EaseLinearNone :: proc "odin" (t, b, c, d: f32) -> f32 {…}

EaseLinearOut ¶

EaseLinearOut :: proc "odin" (t, b, c, d: f32) -> f32 {…}

EaseQuadIn ¶

EaseQuadIn :: proc "odin" (t, b, c, d: f32) -> f32 {…}
 

Quadratic Easing functions

EaseQuadInOut ¶

EaseQuadInOut :: proc "odin" (t, b, c, d: f32) -> f32 {…}

EaseQuadOut ¶

EaseQuadOut :: proc "odin" (t, b, c, d: f32) -> f32 {…}

EaseSineIn ¶

EaseSineIn :: proc "odin" (t, b, c, d: f32) -> f32 {…}
 

Sine Easing functions

EaseSineInOut ¶

EaseSineInOut :: proc "odin" (t, b, c, d: f32) -> f32 {…}

EaseSineOut ¶

EaseSineOut :: proc "odin" (t, b, c, d: f32) -> f32 {…}

EnableCursor ¶

EnableCursor :: proc "cdecl" () ---
 

Enables cursor (unlock cursor)

EnableEventWaiting ¶

EnableEventWaiting :: proc "cdecl" () ---
 

Enable waiting for events on EndDrawing(), no automatic event polling

EncodeDataBase64 ¶

EncodeDataBase64 :: proc "cdecl" (data: rawptr, dataSize: i32, outputSize: ^i32) -> [^]u8 ---
 

Encode data to Base64 string, memory must be MemFree()

EndBlendMode ¶

EndBlendMode :: proc "cdecl" () ---
 

End blending mode (reset to default: alpha blending)

EndDrawing ¶

EndDrawing :: proc "cdecl" () ---
 

End canvas drawing and swap buffers (double buffering)

EndMode2D ¶

EndMode2D :: proc "cdecl" () ---
 

Ends 2D mode with custom camera

EndMode3D ¶

EndMode3D :: proc "cdecl" () ---
 

Ends 3D mode and returns to default 2D orthographic mode

EndScissorMode ¶

EndScissorMode :: proc "cdecl" () ---
 

End scissor mode

EndShaderMode ¶

EndShaderMode :: proc "cdecl" () ---
 

End custom shader drawing (use default shader)

EndTextureMode ¶

EndTextureMode :: proc "cdecl" () ---
 

Ends drawing to render texture

EndVrStereoMode ¶

EndVrStereoMode :: proc "cdecl" () ---
 

End stereo rendering (requires VR simulator)

ExportDataAsCode ¶

ExportDataAsCode :: proc "cdecl" (data: rawptr, size: u32, fileName: cstring) -> bool ---
 

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

ExportFontAsCode ¶

ExportFontAsCode :: proc "cdecl" (font: Font, fileName: cstring) -> bool ---
 

Export font as code file, returns true on success

ExportImage ¶

ExportImage :: proc "cdecl" (image: Image, fileName: cstring) -> bool ---
 

Export image data to file, returns true on success

ExportImageAsCode ¶

ExportImageAsCode :: proc "cdecl" (image: Image, fileName: cstring) -> bool ---
 

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

ExportMesh ¶

ExportMesh :: proc "cdecl" (mesh: Mesh, fileName: cstring) -> bool ---
 

Export mesh data to file, returns true on success

ExportWave ¶

ExportWave :: proc "cdecl" (wave: Wave, fileName: cstring) -> bool ---
 

Export wave data to file, returns true on success

ExportWaveAsCode ¶

ExportWaveAsCode :: proc "cdecl" (wave: Wave, fileName: cstring) -> bool ---
 

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

Fade ¶

Fade :: proc "cdecl" (color: Color, alpha: f32) -> Color ---
 

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

FileExists ¶

FileExists :: proc "cdecl" (fileName: cstring) -> bool ---
 

Check if file exists

GenImageCellular ¶

GenImageCellular :: proc "cdecl" (width, height: i32, tileSize: i32) -> Image ---
 

Generate image: cellular algorithm, bigger tileSize means bigger cells

GenImageChecked ¶

GenImageChecked :: proc "cdecl" (
	width, height:    i32, 
	checksX, checksY: i32, 
	col1, 
	col2:             Color, 
) -> Image ---
 

Generate image: checked

GenImageColor ¶

GenImageColor :: proc "cdecl" (width, height: i32, color: Color) -> Image ---
 

Generate image: plain color

GenImageFontAtlas ¶

GenImageFontAtlas :: proc "cdecl" (
	chars:      [^]GlyphInfo, 
	recs:       ^[^]Rectangle, 
	glyphCount: i32, 
	fontSize:   i32, 
	padding:    i32, 
	packMethod: i32, 
) -> Image ---
 

Generate image font atlas using chars info

GenImageGradientH ¶

GenImageGradientH :: proc "cdecl" (width, height: i32, left, right: Color) -> Image ---
 

Generate image: horizontal gradient

GenImageGradientRadial ¶

GenImageGradientRadial :: proc "cdecl" (width, height: i32, density: f32, inner, outer: Color) -> Image ---
 

Generate image: radial gradient

GenImageGradientV ¶

GenImageGradientV :: proc "cdecl" (width, height: i32, top, bottom: Color) -> Image ---
 

Generate image: vertical gradient

GenImagePerlinNoise ¶

GenImagePerlinNoise :: proc "cdecl" (width, height: i32, offsetX, offsetY: i32, scale: f32) -> Image ---
 

Generate image: perlin noise

GenImageText ¶

GenImageText :: proc "cdecl" (width, height: i32, text: cstring) -> Image ---
 

Generate image: grayscale image from text data

GenImageWhiteNoise ¶

GenImageWhiteNoise :: proc "cdecl" (width, height: i32, factor: f32) -> Image ---
 

Generate image: white noise

GenMeshCone ¶

GenMeshCone :: proc "cdecl" (radius, height: f32, slices: i32) -> Mesh ---
 

Generate cone/pyramid mesh

GenMeshCube ¶

GenMeshCube :: proc "cdecl" (width, height, length: f32) -> Mesh ---
 

Generate cuboid mesh

GenMeshCubicmap ¶

GenMeshCubicmap :: proc "cdecl" (cubicmap: Image, cubeSize: linalg.Vector3f32) -> Mesh ---
 

Generate cubes-based map mesh from image data

GenMeshCylinder ¶

GenMeshCylinder :: proc "cdecl" (radius, height: f32, slices: i32) -> Mesh ---
 

Generate cylinder mesh

GenMeshHeightmap ¶

GenMeshHeightmap :: proc "cdecl" (heightmap: Image, size: linalg.Vector3f32) -> Mesh ---
 

Generate heightmap mesh from image data

GenMeshHemiSphere ¶

GenMeshHemiSphere :: proc "cdecl" (radius: f32, rings, slices: i32) -> Mesh ---
 

Generate half-sphere mesh (no bottom cap)

GenMeshKnot ¶

GenMeshKnot :: proc "cdecl" (radius, size: f32, radSeg, sides: i32) -> Mesh ---
 

Generate trefoil knot mesh

GenMeshPlane ¶

GenMeshPlane :: proc "cdecl" (width, lengthL: f32, resX, resZ: i32) -> Mesh ---
 

Generate plane mesh (with subdivisions)

GenMeshPoly ¶

GenMeshPoly :: proc "cdecl" (sides: i32, radius: f32) -> Mesh ---
 

Generate polygonal mesh

GenMeshSphere ¶

GenMeshSphere :: proc "cdecl" (radius: f32, rings, slices: i32) -> Mesh ---
 

Generate sphere mesh (standard sphere)

GenMeshTangents ¶

GenMeshTangents :: proc "cdecl" (mesh: ^Mesh) ---
 

Compute mesh tangents

GenMeshTorus ¶

GenMeshTorus :: proc "cdecl" (radius, size: f32, radSeg, sides: i32) -> Mesh ---
 

Generate torus mesh

GenTextureMipmaps ¶

GenTextureMipmaps :: proc "cdecl" (texture: ^Texture) ---
 

Generate GPU mipmaps for a texture

GetApplicationDirectory ¶

GetApplicationDirectory :: proc "cdecl" () -> cstring ---
 

Get the directory if the running application (uses static string)

GetCameraMatrix ¶

GetCameraMatrix :: proc "cdecl" (camera: Camera3D) -> linalg.Matrix4x4f32 ---
 

Get camera transform matrix (view matrix)

GetCameraMatrix2D ¶

GetCameraMatrix2D :: proc "cdecl" (camera: Camera2D) -> linalg.Matrix4x4f32 ---
 

Get camera 2d transform matrix

GetCharPressed ¶

GetCharPressed :: proc "cdecl" () -> rune ---
 

Get char pressed (unicode), call it multiple times for chars queued

GetClipboardText ¶

GetClipboardText :: proc "cdecl" () -> cstring ---
 

Get clipboard text content

GetCodepoint ¶

GetCodepoint :: proc "cdecl" (text: cstring, codepointSize: ^i32) -> rune ---
 

Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure

GetCodepointCount ¶

GetCodepointCount :: proc "cdecl" (text: cstring) -> i32 ---
 

Get total number of codepoints in a UTF-8 encoded string

GetCodepointNext ¶

GetCodepointNext :: proc "cdecl" (text: cstring, codepointSize: ^i32) -> rune ---
 

Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure

GetCodepointPrevious ¶

GetCodepointPrevious :: proc "cdecl" (text: cstring, codepointSize: ^i32) -> rune ---
 

Get previous codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure

GetCollisionRec ¶

GetCollisionRec :: proc "cdecl" (rec1, rec2: Rectangle) -> Rectangle ---
 

Get collision rectangle for two rectangles collision

GetColor ¶

GetColor :: proc "cdecl" (hexValue: u32) -> Color ---
 

Get Color structure from hexadecimal value

GetCurrentMonitor ¶

GetCurrentMonitor :: proc "cdecl" () -> i32 ---
 

Get current connected monitor

GetDirectoryPath ¶

GetDirectoryPath :: proc "cdecl" (filePath: cstring) -> cstring ---
 

Get full path for a given fileName with path (uses static string)

GetFPS ¶

GetFPS :: proc "cdecl" () -> i32 ---
 

Returns current FPS

GetFileExtension ¶

GetFileExtension :: proc "cdecl" (fileName: cstring) -> cstring ---
 

Get pointer to extension for a filename string (includes dot: '.png')

GetFileLength ¶

GetFileLength :: proc "cdecl" (fileName: cstring) -> i32 ---
 

Get file length in bytes (NOTE: GetFileSize() conflicts with windows.h)

GetFileModTime ¶

GetFileModTime :: proc "cdecl" (fileName: cstring) -> i32 ---
 

Get file modification time (last write time)

GetFileName ¶

GetFileName :: proc "cdecl" (filePath: cstring) -> cstring ---
 

Get pointer to filename for a path string

GetFileNameWithoutExt ¶

GetFileNameWithoutExt :: proc "cdecl" (filePath: cstring) -> cstring ---
 

Get filename string without extension (uses static string)

GetFontDefault ¶

GetFontDefault :: proc "cdecl" () -> Font ---
 

Get the default Font

GetFrameTime ¶

GetFrameTime :: proc "cdecl" () -> f32 ---
 

Returns time in seconds for last frame drawn (delta time)

GetGamepadAxisCount ¶

GetGamepadAxisCount :: proc "cdecl" (gamepad: i32) -> i32 ---
 

Get gamepad axis count for a gamepad

GetGamepadAxisMovement ¶

GetGamepadAxisMovement :: proc "cdecl" (gamepad: i32, axis: GamepadAxis) -> f32 ---
 

Get axis movement value for a gamepad axis

GetGamepadButtonPressed ¶

GetGamepadButtonPressed :: proc "cdecl" () -> GamepadButton ---
 

Get the last gamepad button pressed

GetGamepadName ¶

GetGamepadName :: proc "cdecl" (gamepad: i32) -> cstring ---
 

Get gamepad internal name id

GetGestureDetected ¶

GetGestureDetected :: proc "cdecl" () -> Gesture ---
 

Get latest detected gesture

GetGestureDragAngle ¶

GetGestureDragAngle :: proc "cdecl" () -> f32 ---
 

Get gesture drag angle

GetGestureDragVector ¶

GetGestureDragVector :: proc "cdecl" () -> linalg.Vector2f32 ---
 

Get gesture drag vector

GetGestureHoldDuration ¶

GetGestureHoldDuration :: proc "cdecl" () -> f32 ---
 

Get gesture hold time in milliseconds

GetGesturePinchAngle ¶

GetGesturePinchAngle :: proc "cdecl" () -> f32 ---
 

Get gesture pinch angle

GetGesturePinchVector ¶

GetGesturePinchVector :: proc "cdecl" () -> linalg.Vector2f32 ---
 

Get gesture pinch delta

GetGlyphAtlasRec ¶

GetGlyphAtlasRec :: proc "cdecl" (font: Font, codepoint: rune) -> Rectangle ---
 

Get glyph rectangle in font atlas for a codepoint (unicode character), fallback to '?' if not found

GetGlyphIndex ¶

GetGlyphIndex :: proc "cdecl" (font: Font, codepoint: rune) -> i32 ---
 

Get glyph index position in font for a codepoint (unicode character), fallback to '?' if not found

GetGlyphInfo ¶

GetGlyphInfo :: proc "cdecl" (font: Font, codepoint: rune) -> GlyphInfo ---
 

Get glyph font info data for a codepoint (unicode character), fallback to '?' if not found

GetImageAlphaBorder ¶

GetImageAlphaBorder :: proc "cdecl" (image: Image, threshold: f32) -> Rectangle ---
 

Get image alpha border rectangle

GetImageColor ¶

GetImageColor :: proc "cdecl" (image: Image, x, y: i32) -> Color ---
 

Get image pixel color at (x, y) position

GetKeyPressed ¶

GetKeyPressed :: proc "cdecl" () -> KeyboardKey ---
 

Get key pressed (keycode), call it multiple times for keys queued

GetMeshBoundingBox ¶

GetMeshBoundingBox :: proc "cdecl" (mesh: Mesh) -> BoundingBox ---
 

Compute mesh bounding box limits

GetModelBoundingBox ¶

GetModelBoundingBox :: proc "cdecl" (model: Model) -> BoundingBox ---
 

Compute model bounding box limits (considers all meshes)

GetMonitorCount ¶

GetMonitorCount :: proc "cdecl" () -> i32 ---
 

Get number of connected monitors

GetMonitorHeight ¶

GetMonitorHeight :: proc "cdecl" (monitor: i32) -> i32 ---
 

Get specified monitor height (current video mode used by monitor)

GetMonitorName ¶

GetMonitorName :: proc "cdecl" (monitor: i32) -> cstring ---
 

Get the human-readable, UTF-8 encoded name of the primary monitor

GetMonitorPhysicalHeight ¶

GetMonitorPhysicalHeight :: proc "cdecl" (monitor: i32) -> i32 ---
 

Get specified monitor physical height in millimetres

GetMonitorPhysicalWidth ¶

GetMonitorPhysicalWidth :: proc "cdecl" (monitor: i32) -> i32 ---
 

Get specified monitor physical width in millimetres

GetMonitorPosition ¶

GetMonitorPosition :: proc "cdecl" (monitor: i32) -> linalg.Vector2f32 ---
 

Get specified monitor position

GetMonitorRefreshRate ¶

GetMonitorRefreshRate :: proc "cdecl" (monitor: i32) -> i32 ---
 

Get specified monitor refresh rate

GetMonitorWidth ¶

GetMonitorWidth :: proc "cdecl" (monitor: i32) -> i32 ---
 

Get specified monitor width (current video mode used by monitor)

GetMouseDelta ¶

GetMouseDelta :: proc "cdecl" () -> linalg.Vector2f32 ---
 

Returns mouse delta XY

GetMousePosition ¶

GetMousePosition :: proc "cdecl" () -> linalg.Vector2f32 ---
 

Returns mouse position XY

GetMouseRay ¶

GetMouseRay :: proc "cdecl" (mousePosition: linalg.Vector2f32, camera: Camera3D) -> Ray ---
 

Get a ray trace from mouse position

GetMouseWheelMove ¶

GetMouseWheelMove :: proc "cdecl" () -> f32 ---
 

Returns mouse wheel movement Y

GetMouseWheelMoveV ¶

GetMouseWheelMoveV :: proc "cdecl" () -> linalg.Vector2f32 ---
 

Get mouse wheel movement for both X and Y

GetMouseX ¶

GetMouseX :: proc "cdecl" () -> i32 ---
 

Returns mouse position X

GetMouseY ¶

GetMouseY :: proc "cdecl" () -> i32 ---
 

Returns mouse position Y

GetMusicTimeLength ¶

GetMusicTimeLength :: proc "cdecl" (music: Music) -> f32 ---
 

Get music time length (in seconds)

GetMusicTimePlayed ¶

GetMusicTimePlayed :: proc "cdecl" (music: Music) -> f32 ---
 

Get current music time played (in seconds)

GetPixelColor ¶

GetPixelColor :: proc "cdecl" (srcPtr: rawptr, format: PixelFormat) -> Color ---
 

Get Color from a source pixel pointer of certain format

GetPixelDataSize ¶

GetPixelDataSize :: proc "cdecl" (width, height: i32, format: PixelFormat) -> i32 ---
 

Get pixel data size in bytes for certain format

GetPrevDirectoryPath ¶

GetPrevDirectoryPath :: proc "cdecl" (dirPath: cstring) -> cstring ---
 

Get previous directory path for a given path (uses static string)

GetRandomValue ¶

GetRandomValue :: proc "cdecl" (min, max: i32) -> i32 ---
 

Returns a random value between min and max (both included)

GetRayCollisionBox ¶

GetRayCollisionBox :: proc "cdecl" (ray: Ray, box: BoundingBox) -> RayCollision ---
 

Get collision info between ray and box

GetRayCollisionMesh ¶

GetRayCollisionMesh :: proc "cdecl" (ray: Ray, mesh: Mesh, transform: linalg.Matrix4x4f32) -> RayCollision ---
 

Get collision info between ray and mesh

GetRayCollisionQuad ¶

GetRayCollisionQuad :: proc "cdecl" (ray: Ray, p1, p2, p3, p4: linalg.Vector3f32) -> RayCollision ---
 

Get collision info between ray and quad

GetRayCollisionSphere ¶

GetRayCollisionSphere :: proc "cdecl" (ray: Ray, center: linalg.Vector3f32, radius: f32) -> RayCollision ---
 

Get collision info between ray and sphere

GetRayCollisionTriangle ¶

GetRayCollisionTriangle :: proc "cdecl" (ray: Ray, p1, p2, p3: linalg.Vector3f32) -> RayCollision ---
 

Get collision info between ray and triangle

GetRenderHeight ¶

GetRenderHeight :: proc "cdecl" () -> i32 ---
 

Get current render height (it considers HiDPI)

GetRenderWidth ¶

GetRenderWidth :: proc "cdecl" () -> i32 ---
 

Get current render width (it considers HiDPI)

GetScreenHeight ¶

GetScreenHeight :: proc "cdecl" () -> i32 ---
 

Get current screen height

GetScreenToWorld2D ¶

GetScreenToWorld2D :: proc "cdecl" (position: linalg.Vector2f32, camera: Camera2D) -> linalg.Vector2f32 ---
 

Get the world space position for a 2d camera screen space position

GetScreenWidth ¶

GetScreenWidth :: proc "cdecl" () -> i32 ---
 

Get current screen width

GetShaderLocation ¶

GetShaderLocation :: proc "cdecl" (shader: Shader, uniformName: cstring) -> i32 ---
 

Get shader uniform location

GetShaderLocationAttrib ¶

GetShaderLocationAttrib :: proc "cdecl" (shader: Shader, attribName: cstring) -> i32 ---
 

Get shader attribute location

GetTime ¶

GetTime :: proc "cdecl" () -> f64 ---
 

Returns elapsed time in seconds since InitWindow()

GetTouchPointCount ¶

GetTouchPointCount :: proc "cdecl" () -> i32 ---
 

Get number of touch points

GetTouchPointId ¶

GetTouchPointId :: proc "cdecl" (index: i32) -> i32 ---
 

Get touch point identifier for given index

GetTouchPosition ¶

GetTouchPosition :: proc "cdecl" (index: i32) -> linalg.Vector2f32 ---
 

Returns touch position XY for a touch point index (relative to screen size)

GetTouchX ¶

GetTouchX :: proc "cdecl" () -> i32 ---
 

Returns touch position X for touch point 0 (relative to screen size)

GetTouchY ¶

GetTouchY :: proc "cdecl" () -> i32 ---
 

Returns touch position Y for touch point 0 (relative to screen size)

GetWindowHandle ¶

GetWindowHandle :: proc "cdecl" () -> rawptr ---
 

Get native window handle

GetWindowPosition ¶

GetWindowPosition :: proc "cdecl" () -> linalg.Vector2f32 ---
 

Get window position XY on monitor

GetWindowScaleDPI ¶

GetWindowScaleDPI :: proc "cdecl" () -> linalg.Vector2f32 ---
 

Get window scale DPI factor

GetWorkingDirectory ¶

GetWorkingDirectory :: proc "cdecl" () -> cstring ---
 

Get current working directory (uses static string)

GetWorldToScreen ¶

GetWorldToScreen :: proc "cdecl" (position: linalg.Vector3f32, camera: Camera3D) -> linalg.Vector2f32 ---
 

Get the screen space position for a 3d world space position

GetWorldToScreen2D ¶

GetWorldToScreen2D :: proc "cdecl" (position: linalg.Vector2f32, camera: Camera2D) -> linalg.Vector2f32 ---
 

Get the screen space position for a 2d camera world space position

GetWorldToScreenEx ¶

GetWorldToScreenEx :: proc "cdecl" (position: linalg.Vector3f32, camera: Camera3D, width, height: i32) -> linalg.Vector2f32 ---
 

Get size position for a 3d world space position

HideCursor ¶

HideCursor :: proc "cdecl" () ---
 

Hides cursor

ImageAlphaClear ¶

ImageAlphaClear :: proc "cdecl" (image: ^Image, color: Color, threshold: f32) ---
 

Clear alpha channel to desired color

ImageAlphaCrop ¶

ImageAlphaCrop :: proc "cdecl" (image: ^Image, threshold: f32) ---
 

Crop image depending on alpha value

ImageAlphaMask ¶

ImageAlphaMask :: proc "cdecl" (image: ^Image, alphaMask: Image) ---
 

Apply alpha mask to image

ImageAlphaPremultiply ¶

ImageAlphaPremultiply :: proc "cdecl" (image: ^Image) ---
 

Premultiply alpha channel

ImageBlurGaussian ¶

ImageBlurGaussian :: proc "cdecl" (image: ^Image, blurSize: i32) ---
 

Apply Gaussian blur using a box blur approximation

ImageClearBackground ¶

ImageClearBackground :: proc "cdecl" (dst: ^Image, color: Color) ---
 

Clear image background with given color

ImageColorBrightness ¶

ImageColorBrightness :: proc "cdecl" (image: ^Image, brightness: i32) ---
 

Modify image color: brightness (-255 to 255)

ImageColorContrast ¶

ImageColorContrast :: proc "cdecl" (image: ^Image, contrast: f32) ---
 

Modify image color: contrast (-100 to 100)

ImageColorGrayscale ¶

ImageColorGrayscale :: proc "cdecl" (image: ^Image) ---
 

Modify image color: grayscale

ImageColorInvert ¶

ImageColorInvert :: proc "cdecl" (image: ^Image) ---
 

Modify image color: invert

ImageColorReplace ¶

ImageColorReplace :: proc "cdecl" (image: ^Image, color, replace: Color) ---
 

Modify image color: replace color

ImageColorTint ¶

ImageColorTint :: proc "cdecl" (image: ^Image, color: Color) ---
 

Modify image color: tint

ImageCopy ¶

ImageCopy :: proc "cdecl" (image: Image) -> Image ---
 

Create an image duplicate (useful for transformations)

ImageCrop ¶

ImageCrop :: proc "cdecl" (image: ^Image, crop: Rectangle) ---
 

Crop an image to a defined rectangle

ImageDither ¶

ImageDither :: proc "cdecl" (image: ^Image, rBpp, gBpp, bBpp, aBpp: i32) ---
 

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

ImageDraw ¶

ImageDraw :: proc "cdecl" (dst: ^Image, src: Image, srcRec, dstRec: Rectangle, tint: Color) ---
 

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

ImageDrawCircle ¶

ImageDrawCircle :: proc "cdecl" (dst: ^Image, centerX, centerY: i32, radius: i32, color: Color) ---
 

Draw a filled circle within an image

ImageDrawCircleLines ¶

ImageDrawCircleLines :: proc "cdecl" (dst: ^Image, centerX, centerY: i32, radius: i32, color: Color) ---
 

Draw circle outline within an image

ImageDrawCircleLinesV ¶

ImageDrawCircleLinesV :: proc "cdecl" (dst: ^Image, center: linalg.Vector2f32, radius: i32, color: Color) ---
 

Draw circle outline within an image (Vector version)

ImageDrawCircleV ¶

ImageDrawCircleV :: proc "cdecl" (dst: ^Image, center: linalg.Vector2f32, radius: i32, color: Color) ---
 

Draw a filled circle within an image (Vector version)

ImageDrawLine ¶

ImageDrawLine :: proc "cdecl" (
	dst:                                    ^Image, 
	startPosX, startPosY, endPosX, endPosY: i32, 
	color:                                  Color, 
) ---
 

Draw line within an image

ImageDrawLineV ¶

ImageDrawLineV :: proc "cdecl" (dst: ^Image, start, end: linalg.Vector2f32, color: Color) ---
 

Draw line within an image (Vector version)

ImageDrawPixel ¶

ImageDrawPixel :: proc "cdecl" (dst: ^Image, posX, posY: i32, color: Color) ---
 

Draw pixel within an image

ImageDrawPixelV ¶

ImageDrawPixelV :: proc "cdecl" (dst: ^Image, position: linalg.Vector2f32, color: Color) ---
 

Draw pixel within an image (Vector version)

ImageDrawRectangle ¶

ImageDrawRectangle :: proc "cdecl" (
	dst:           ^Image, 
	posX, posY:    i32, 
	width, height: i32, 
	color:         Color, 
) ---
 

Draw rectangle within an image

ImageDrawRectangleLines ¶

ImageDrawRectangleLines :: proc "cdecl" (dst: ^Image, rec: Rectangle, thick: i32, color: Color) ---
 

Draw rectangle lines within an image

ImageDrawRectangleRec ¶

ImageDrawRectangleRec :: proc "cdecl" (dst: ^Image, rec: Rectangle, color: Color) ---
 

Draw rectangle within an image

ImageDrawRectangleV ¶

ImageDrawRectangleV :: proc "cdecl" (dst: ^Image, position, size: linalg.Vector2f32, color: Color) ---
 

Draw rectangle within an image (Vector version)

ImageDrawText ¶

ImageDrawText :: proc "cdecl" (
	dst:        ^Image, 
	text:       cstring, 
	posX, posY: i32, 
	fontSize:   i32, 
	color:      Color, 
) ---
 

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

ImageDrawTextEx ¶

ImageDrawTextEx :: proc "cdecl" (
	dst:      ^Image, 
	font:     Font, 
	text:     cstring, 
	position: linalg.Vector2f32, 
	fontSize: f32, 
	spacing:  f32, 
	tint:     Color, 
) ---
 

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

ImageFlipHorizontal ¶

ImageFlipHorizontal :: proc "cdecl" (image: ^Image) ---
 

Flip image horizontally

ImageFlipVertical ¶

ImageFlipVertical :: proc "cdecl" (image: ^Image) ---
 

Flip image vertically

ImageFormat ¶

ImageFormat :: proc "cdecl" (image: ^Image, newFormat: PixelFormat) ---
 

Convert image data to desired format

ImageFromImage ¶

ImageFromImage :: proc "cdecl" (image: Image, rec: Rectangle) -> Image ---
 

Create an image from another image piece

ImageMipmaps ¶

ImageMipmaps :: proc "cdecl" (image: ^Image) ---
 

Compute all mipmap levels for a provided image

ImageResize ¶

ImageResize :: proc "cdecl" (image: ^Image, newWidth, newHeight: i32) ---
 

Resize image (Bicubic scaling algorithm)

ImageResizeCanvas ¶

ImageResizeCanvas :: proc "cdecl" (
	image:               ^Image, 
	newWidth, newHeight: i32, 
	offsetX, offsetY:    i32, 
	fill:                Color, 
) ---
 

Resize canvas and fill with color

ImageResizeNN ¶

ImageResizeNN :: proc "cdecl" (image: ^Image, newWidth, newHeight: i32) ---
 

Resize image (Nearest-Neighbor scaling algorithm)

ImageRotateCCW ¶

ImageRotateCCW :: proc "cdecl" (image: ^Image) ---
 

Rotate image counter-clockwise 90deg

ImageRotateCW ¶

ImageRotateCW :: proc "cdecl" (image: ^Image) ---
 

Rotate image clockwise 90deg

ImageText ¶

ImageText :: proc "cdecl" (text: cstring, fontSize: i32, color: Color) -> Image ---
 

Create an image from text (default font)

ImageTextEx ¶

ImageTextEx :: proc "cdecl" (font: Font, text: cstring, fontSize: f32, spacing: f32, tint: Color) -> Image ---
 

Create an image from text (custom sprite font)

ImageToPOT ¶

ImageToPOT :: proc "cdecl" (image: ^Image, fill: Color) ---
 

Convert image to POT (power-of-two)

InitAudioDevice ¶

InitAudioDevice :: proc "cdecl" () ---
 

Initialize audio device and context

InitWindow ¶

InitWindow :: proc "cdecl" (width, height: i32, title: cstring) ---
 

Initialize window and OpenGL context

IsAudioDeviceReady ¶

IsAudioDeviceReady :: proc "cdecl" () -> bool ---
 

Check if audio device has been initialized successfully

IsAudioStreamPlaying ¶

IsAudioStreamPlaying :: proc "cdecl" (stream: AudioStream) -> bool ---
 

Check if audio stream is playing

IsAudioStreamProcessed ¶

IsAudioStreamProcessed :: proc "cdecl" (stream: AudioStream) -> bool ---
 

Check if any audio stream buffers requires refill

IsAudioStreamReady ¶

IsAudioStreamReady :: proc "cdecl" (stream: AudioStream) -> bool ---
 

Checks if an audio stream is ready

IsCursorHidden ¶

IsCursorHidden :: proc "cdecl" () -> bool ---
 

Check if cursor is not visible

IsCursorOnScreen ¶

IsCursorOnScreen :: proc "cdecl" () -> bool ---
 

Check if cursor is on the current screen.

IsFileDropped ¶

IsFileDropped :: proc "cdecl" () -> bool ---
 

Check if a file has been dropped into window

IsFileExtension ¶

IsFileExtension :: proc "cdecl" (fileName, ext: cstring) -> bool ---
 

Check file extension (including point: .png, .wav)

IsFontReady ¶

IsFontReady :: proc "cdecl" (font: Font) -> bool ---
 

Check if a font is ready

IsGamepadAvailable ¶

IsGamepadAvailable :: proc "cdecl" (gamepad: i32) -> bool ---
 

Check if a gamepad is available

IsGamepadButtonDown ¶

IsGamepadButtonDown :: proc "cdecl" (gamepad: i32, button: GamepadButton) -> bool ---
 

Check if a gamepad button is being pressed

IsGamepadButtonPressed ¶

IsGamepadButtonPressed :: proc "cdecl" (gamepad: i32, button: GamepadButton) -> bool ---
 

Check if a gamepad button has been pressed once

IsGamepadButtonReleased ¶

IsGamepadButtonReleased :: proc "cdecl" (gamepad: i32, button: GamepadButton) -> bool ---
 

Check if a gamepad button has been released once

IsGamepadButtonUp ¶

IsGamepadButtonUp :: proc "cdecl" (gamepad: i32, button: GamepadButton) -> bool ---
 

Check if a gamepad button is NOT being pressed

IsGestureDetected ¶

IsGestureDetected :: proc "cdecl" (gesture: Gesture) -> bool ---
 

Check if a gesture have been detected

IsImageReady ¶

IsImageReady :: proc "cdecl" (image: Image) -> bool ---
 

Check if an image is ready

IsKeyDown ¶

IsKeyDown :: proc "cdecl" (key: KeyboardKey) -> bool ---
 

Detect if a key is being pressed

IsKeyPressed ¶

IsKeyPressed :: proc "cdecl" (key: KeyboardKey) -> bool ---
 

Detect if a key has been pressed once

IsKeyReleased ¶

IsKeyReleased :: proc "cdecl" (key: KeyboardKey) -> bool ---
 

Detect if a key has been released once

IsKeyUp ¶

IsKeyUp :: proc "cdecl" (key: KeyboardKey) -> bool ---
 

Detect if a key is NOT being pressed

IsMaterialReady ¶

IsMaterialReady :: proc "cdecl" (material: Material) -> bool ---
 

Check if a material is ready

IsModelAnimationValid ¶

IsModelAnimationValid :: proc "cdecl" (model: Model, anim: ModelAnimation) -> bool ---
 

Check model animation skeleton match

IsModelReady ¶

IsModelReady :: proc "cdecl" (model: Model) -> bool ---
 

Check if a model is ready

IsMouseButtonDown ¶

IsMouseButtonDown :: proc "cdecl" (button: MouseButton) -> bool ---
 

Detect if a mouse button is being pressed

IsMouseButtonPressed ¶

IsMouseButtonPressed :: proc "cdecl" (button: MouseButton) -> bool ---
 

Detect if a mouse button has been pressed once

IsMouseButtonReleased ¶

IsMouseButtonReleased :: proc "cdecl" (button: MouseButton) -> bool ---
 

Detect if a mouse button has been released once

IsMouseButtonUp ¶

IsMouseButtonUp :: proc "cdecl" (button: MouseButton) -> bool ---
 

Detect if a mouse button is NOT being pressed

IsMusicReady ¶

IsMusicReady :: proc "cdecl" (music: Music) -> bool ---
 

Checks if a music stream is ready

IsMusicStreamPlaying ¶

IsMusicStreamPlaying :: proc "cdecl" (music: Music) -> bool ---
 

Check if music is playing

IsPathFile ¶

IsPathFile :: proc "cdecl" (path: cstring) -> bool ---
 

Check if a given path is a file or a directory

IsRenderTextureReady ¶

IsRenderTextureReady :: proc "cdecl" (target: RenderTexture) -> bool ---
 

Check if a render texture is ready

IsShaderReady ¶

IsShaderReady :: proc "cdecl" (shader: Shader) -> bool ---
 

Check if a shader is ready

IsSoundPlaying ¶

IsSoundPlaying :: proc "cdecl" (sound: Sound) -> bool ---
 

Check if a sound is currently playing

IsSoundReady ¶

IsSoundReady :: proc "cdecl" (sound: Sound) -> bool ---
 

Checks if a sound is ready

IsTextureReady ¶

IsTextureReady :: proc "cdecl" (texture: Texture) -> bool ---
 

Check if a texture is ready

IsWaveReady ¶

IsWaveReady :: proc "cdecl" (wave: Wave) -> bool ---
 

Checks if wave data is ready

IsWindowFocused ¶

IsWindowFocused :: proc "cdecl" () -> bool ---
 

Check if window is currently focused (only PLATFORM_DESKTOP)

IsWindowFullscreen ¶

IsWindowFullscreen :: proc "cdecl" () -> bool ---
 

Check if window is currently fullscreen

IsWindowHidden ¶

IsWindowHidden :: proc "cdecl" () -> bool ---
 

Check if window is currently hidden (only PLATFORM_DESKTOP)

IsWindowMaximized ¶

IsWindowMaximized :: proc "cdecl" () -> bool ---
 

Check if window is currently maximized (only PLATFORM_DESKTOP)

IsWindowMinimized ¶

IsWindowMinimized :: proc "cdecl" () -> bool ---
 

Check if window is currently minimized (only PLATFORM_DESKTOP)

IsWindowReady ¶

IsWindowReady :: proc "cdecl" () -> bool ---
 

Check if window has been initialized successfully

IsWindowResized ¶

IsWindowResized :: proc "cdecl" () -> bool ---
 

Check if window has been resized last frame

IsWindowState ¶

IsWindowState :: proc "cdecl" (flag: ConfigFlag) -> bool ---
 

Check if one specific window flag is enabled

LoadAudioStream ¶

LoadAudioStream :: proc "cdecl" (sampleRate, sampleSize: u32, channels: u32) -> AudioStream ---
 

Load audio stream (to stream raw audio pcm data)

LoadCodepoints ¶

LoadCodepoints :: proc "cdecl" (text: rawptr, count: ^i32) -> [^]rune ---
 

Load all codepoints from a UTF-8 text string, codepoints count returned by parameter

LoadDirectoryFiles ¶

LoadDirectoryFiles :: proc "cdecl" (dirPath: cstring) -> FilePathList ---
 

Load directory filepaths

LoadDirectoryFilesEx ¶

LoadDirectoryFilesEx :: proc "cdecl" (basePath: cstring, filter: cstring, scanSubdirs: bool) -> FilePathList ---
 

Load directory filepaths with extension filtering and recursive directory scan

LoadDroppedFiles ¶

LoadDroppedFiles :: proc "cdecl" () -> FilePathList ---
 

Load dropped filepaths

LoadFileData ¶

LoadFileData :: proc "cdecl" (fileName: cstring, bytesRead: ^u32) -> [^]u8 ---
 

Load file data as byte array (read)

LoadFileText ¶

LoadFileText :: proc "cdecl" (fileName: cstring) -> [^]u8 ---
 

Load text data from file (read), returns a '\0' terminated string

LoadFont ¶

LoadFont :: proc "cdecl" (fileName: cstring) -> Font ---
 

Load font from file into GPU memory (VRAM)

LoadFontData ¶

LoadFontData :: proc "cdecl" (
	fileData:   rawptr, 
	dataSize:   i32, 
	fontSize:   i32, 
	fontChars:  [^]rune, 
	glyphCount: i32, 
	type:       FontType, 
) -> [^]GlyphInfo ---
 

Load font data for further use

LoadFontEx ¶

LoadFontEx :: proc "cdecl" (fileName: cstring, fontSize: i32, fontChars: [^]rune, glyphCount: i32) -> Font ---
 

Load font from file with extended parameters, use NULL for fontChars and 0 for glyphCount to load the default character set

LoadFontFromImage ¶

LoadFontFromImage :: proc "cdecl" (image: Image, key: Color, firstChar: rune) -> Font ---
 

Load font from Image (XNA style)

LoadFontFromMemory ¶

LoadFontFromMemory :: proc "cdecl" (
	fileType:   cstring, 
	fileData:   rawptr, 
	dataSize:   i32, 
	fontSize:   i32, 
	fontChars:  [^]rune, 
	glyphCount: i32, 
) -> Font ---
 

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

LoadImage ¶

LoadImage :: proc "cdecl" (fileName: cstring) -> Image ---
 

Load image from file into CPU memory (RAM)

LoadImageAnim ¶

LoadImageAnim :: proc "cdecl" (fileName: cstring, frames: [^]i32) -> Image ---
 

Load image sequence from file (frames appended to image.data)

LoadImageColors ¶

LoadImageColors :: proc "cdecl" (image: Image) -> [^]Color ---
 

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

LoadImageFromMemory ¶

LoadImageFromMemory :: proc "cdecl" (fileType: cstring, fileData: rawptr, dataSize: i32) -> Image ---
 

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

LoadImageFromScreen ¶

LoadImageFromScreen :: proc "cdecl" () -> Image ---
 

Load image from screen buffer and (screenshot)

LoadImageFromTexture ¶

LoadImageFromTexture :: proc "cdecl" (texture: Texture) -> Image ---
 

Load image from GPU texture data

LoadImagePalette ¶

LoadImagePalette :: proc "cdecl" (image: Image, maxPaletteSize: i32, colorCount: ^i32) -> [^]Color ---
 

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

LoadImageRaw ¶

LoadImageRaw :: proc "cdecl" (fileName: cstring, width, height: i32, format: PixelFormat, headerSize: i32) -> Image ---
 

Load image from RAW file data

LoadMaterialDefault ¶

LoadMaterialDefault :: proc "cdecl" () -> Material ---
 

Load default material (Supports: DIFFUSE, SPECULAR, NORMAL maps)

LoadMaterials ¶

LoadMaterials :: proc "cdecl" (fileName: cstring, materialCount: ^i32) -> [^]Material ---
 

Load materials from model file

LoadModel ¶

LoadModel :: proc "cdecl" (fileName: cstring) -> Model ---
 

Load model from files (meshes and materials)

LoadModelAnimations ¶

LoadModelAnimations :: proc "cdecl" (fileName: cstring, animCount: ^u32) -> [^]ModelAnimation ---
 

Load model animations from file

LoadModelFromMesh ¶

LoadModelFromMesh :: proc "cdecl" (mesh: Mesh) -> Model ---
 

Load model from generated mesh (default material)

LoadMusicStream ¶

LoadMusicStream :: proc "cdecl" (fileName: cstring) -> Music ---
 

Load music stream from file

LoadMusicStreamFromMemory ¶

LoadMusicStreamFromMemory :: proc "cdecl" (fileType: cstring, data: rawptr, dataSize: i32) -> Music ---
 

Load music stream from data

LoadRenderTexture ¶

LoadRenderTexture :: proc "cdecl" (width, height: i32) -> RenderTexture ---
 

Load texture for rendering (framebuffer)

LoadShader ¶

LoadShader :: proc "cdecl" (vsFileName, fsFileName: cstring) -> Shader ---
 

Load shader from files and bind default locations

LoadShaderFromMemory ¶

LoadShaderFromMemory :: proc "cdecl" (vsCode, fsCode: cstring) -> Shader ---
 

Load shader from code strings and bind default locations

LoadSound ¶

LoadSound :: proc "cdecl" (fileName: cstring) -> Sound ---
 

Load sound from file

LoadSoundFromWave ¶

LoadSoundFromWave :: proc "cdecl" (wave: Wave) -> Sound ---
 

Load sound from wave data

LoadTexture ¶

LoadTexture :: proc "cdecl" (fileName: cstring) -> Texture ---
 

Load texture from file into GPU memory (VRAM)

LoadTextureCubemap ¶

LoadTextureCubemap :: proc "cdecl" (image: Image, layout: CubemapLayout) -> Texture ---
 

Load cubemap from image, multiple image cubemap layouts supported

LoadTextureFromImage ¶

LoadTextureFromImage :: proc "cdecl" (image: Image) -> Texture ---
 

Load texture from image data

LoadUTF8 ¶

LoadUTF8 :: proc "cdecl" (codepoints: [^]rune, length: i32) -> [^]u8 ---
 

Load UTF-8 text encoded from codepoints array

LoadVrStereoConfig ¶

LoadVrStereoConfig :: proc "cdecl" (device: VrDeviceInfo) -> VrStereoConfig ---
 

Load VR stereo config for VR simulator device parameters

LoadWave ¶

LoadWave :: proc "cdecl" (fileName: cstring) -> Wave ---
 

Load wave data from file

LoadWaveFromMemory ¶

LoadWaveFromMemory :: proc "cdecl" (fileType: cstring, fileData: rawptr, dataSize: i32) -> Wave ---
 

Load wave from memory buffer, fileType refers to extension: i.e. '.wav'

LoadWaveSamples ¶

LoadWaveSamples :: proc "cdecl" (wave: Wave) -> [^]f32 ---
 

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

MaximizeWindow ¶

MaximizeWindow :: proc "cdecl" () ---
 

Set window state: maximized, if resizable (only PLATFORM_DESKTOP)

MeasureText ¶

MeasureText :: proc "cdecl" (text: cstring, fontSize: i32) -> i32 ---
 

Measure string width for default font

MeasureTextEx ¶

MeasureTextEx :: proc "cdecl" (font: Font, text: cstring, fontSize: f32, spacing: f32) -> linalg.Vector2f32 ---
 

Measure string size for Font

MemAlloc ¶

MemAlloc :: proc "cdecl" (size: u32) -> rawptr ---
 

Internal memory allocator

MemAllocator ¶

MemAllocator :: proc "contextless" () -> runtime.Allocator {…}

MemAllocatorProc ¶

MemAllocatorProc :: proc "odin" (
	allocator_data:  rawptr, 
	mode:            runtime.Allocator_Mode, 
	size, alignment: int, 
	old_memory:      rawptr, 
	old_size:        int, 
	location := #caller_location, 
) -> (data: []u8, err: runtime.Allocator_Error) {…}

MemFree ¶

MemFree :: proc "cdecl" (ptr: rawptr) ---
 

Internal memory free

MemRealloc ¶

MemRealloc :: proc "cdecl" (ptr: rawptr, size: u32) -> rawptr ---
 

Internal memory reallocator

MinimizeWindow ¶

MinimizeWindow :: proc "cdecl" () ---
 

Set window state: minimized, if resizable (only PLATFORM_DESKTOP)

OpenURL ¶

OpenURL :: proc "cdecl" (url: cstring) ---
 

Open URL with default system browser (if available)

PauseAudioStream ¶

PauseAudioStream :: proc "cdecl" (stream: AudioStream) ---
 

Pause audio stream

PauseMusicStream ¶

PauseMusicStream :: proc "cdecl" (music: Music) ---
 

Pause music playing

PauseSound ¶

PauseSound :: proc "cdecl" (sound: Sound) ---
 

Pause a sound

PlayAudioStream ¶

PlayAudioStream :: proc "cdecl" (stream: AudioStream) ---
 

Play audio stream

PlayMusicStream ¶

PlayMusicStream :: proc "cdecl" (music: Music) ---
 

Start music playing

PlaySound ¶

PlaySound :: proc "cdecl" (sound: Sound) ---
 

Play a sound

PollInputEvents ¶

PollInputEvents :: proc "cdecl" () ---
 

Register all input events

RestoreWindow ¶

RestoreWindow :: proc "cdecl" () ---
 

Set window state: not minimized/maximized (only PLATFORM_DESKTOP)

ResumeAudioStream ¶

ResumeAudioStream :: proc "cdecl" (stream: AudioStream) ---
 

Resume audio stream

ResumeMusicStream ¶

ResumeMusicStream :: proc "cdecl" (music: Music) ---
 

Resume playing paused music

ResumeSound ¶

ResumeSound :: proc "cdecl" (sound: Sound) ---
 

Resume a paused sound

SaveFileData ¶

SaveFileData :: proc "cdecl" (fileName: cstring, data: rawptr, bytesToWrite: u32) -> bool ---
 

Save data to file from byte array (write), returns true on success

SaveFileText ¶

SaveFileText :: proc "cdecl" (fileName: cstring, text: [^]u8) -> bool ---
 

Save text data to file (write), string must be '\0' terminated, returns true on success

SeekMusicStream ¶

SeekMusicStream :: proc "cdecl" (music: Music, position: f32) ---
 

Seek music to a position (in seconds)

SetAudioStreamBufferSizeDefault ¶

SetAudioStreamBufferSizeDefault :: proc "cdecl" (size: i32) ---
 

Default size for new audio streams

SetAudioStreamCallback ¶

SetAudioStreamCallback :: proc "cdecl" (stream: AudioStream, callback: AudioCallback) ---
 

Audio thread callback to request new data

SetAudioStreamPan ¶

SetAudioStreamPan :: proc "cdecl" (stream: AudioStream, pan: f32) ---
 

Set pan for audio stream (0.5 is centered)

SetAudioStreamPitch ¶

SetAudioStreamPitch :: proc "cdecl" (stream: AudioStream, pitch: f32) ---
 

Set pitch for audio stream (1.0 is base level)

SetAudioStreamVolume ¶

SetAudioStreamVolume :: proc "cdecl" (stream: AudioStream, volume: f32) ---
 

Set volume for audio stream (1.0 is max level)

SetClipboardText ¶

SetClipboardText :: proc "cdecl" (text: cstring) ---
 

Set clipboard text content

SetConfigFlags ¶

SetConfigFlags :: proc "cdecl" (flags: ConfigFlags) ---
 

Setup init configuration flags (view FLAGS)

SetExitKey ¶

SetExitKey :: proc "cdecl" (key: KeyboardKey) ---
 

Set a custom key to exit program (default is ESC)

SetGamepadMappings ¶

SetGamepadMappings :: proc "cdecl" (mappings: cstring) -> i32 ---
 

Set internal gamepad mappings (SDL_GameControllerDB)

SetGesturesEnabled ¶

SetGesturesEnabled :: proc "cdecl" (flags: Gestures) ---
 

Enable a set of gestures using flags

SetLoadFileDataCallback ¶

SetLoadFileDataCallback :: proc "cdecl" (callback: LoadFileDataCallback) ---
 

Set custom file binary data loader

SetLoadFileTextCallback ¶

SetLoadFileTextCallback :: proc "cdecl" (callback: LoadFileTextCallback) ---
 

Set custom file text data loader

SetMasterVolume ¶

SetMasterVolume :: proc "cdecl" (volume: f32) ---
 

Set master volume (listener)

SetMaterialTexture ¶

SetMaterialTexture :: proc "cdecl" (material: ^Material, mapType: MaterialMapIndex, texture: Texture) ---
 

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

SetModelMeshMaterial ¶

SetModelMeshMaterial :: proc "cdecl" (model: ^Model, meshId: i32, materialId: i32) ---
 

Set material for a mesh

SetMouseCursor ¶

SetMouseCursor :: proc "cdecl" (cursor: MouseCursor) ---
 

Set mouse cursor

SetMouseOffset ¶

SetMouseOffset :: proc "cdecl" (offsetX, offsetY: i32) ---
 

Set mouse offset

SetMousePosition ¶

SetMousePosition :: proc "cdecl" (x, y: i32) ---
 

Set mouse position XY

SetMouseScale ¶

SetMouseScale :: proc "cdecl" (scaleX, scaleY: f32) ---
 

Set mouse scaling

SetMusicPan ¶

SetMusicPan :: proc "cdecl" (music: Music, pan: f32) ---
 

Set pan for a music (0.5 is center)

SetMusicPitch ¶

SetMusicPitch :: proc "cdecl" (music: Music, pitch: f32) ---
 

Set pitch for a music (1.0 is base level)

SetMusicVolume ¶

SetMusicVolume :: proc "cdecl" (music: Music, volume: f32) ---
 

Set volume for music (1.0 is max level)

SetPixelColor ¶

SetPixelColor :: proc "cdecl" (dstPtr: rawptr, color: Color, format: PixelFormat) ---
 

Set color formatted into destination pixel pointer

SetRandomSeed ¶

SetRandomSeed :: proc "cdecl" (seed: u32) ---
 

Set the seed for the random number generator

SetSaveFileDataCallback ¶

SetSaveFileDataCallback :: proc "cdecl" (callback: SaveFileDataCallback) ---
 

Set custom file binary data saver

SetSaveFileTextCallback ¶

SetSaveFileTextCallback :: proc "cdecl" (callback: SaveFileTextCallback) ---
 

Set custom file text data saver

SetShaderValue ¶

SetShaderValue :: proc "cdecl" (shader: Shader, locIndex: ShaderLocationIndex, value: rawptr, uniformType: ShaderUniformDataType) ---
 

Set shader uniform value

SetShaderValueMatrix ¶

SetShaderValueMatrix :: proc "cdecl" (shader: Shader, locIndex: ShaderLocationIndex, mat: linalg.Matrix4x4f32) ---
 

Set shader uniform value (matrix 4x4)

SetShaderValueTexture ¶

SetShaderValueTexture :: proc "cdecl" (shader: Shader, locIndex: ShaderLocationIndex, texture: Texture) ---
 

Set shader uniform value for texture (sampler2d)

SetShaderValueV ¶

SetShaderValueV :: proc "cdecl" (shader: Shader, locIndex: ShaderLocationIndex, value: rawptr, uniformType: ShaderUniformDataType, count: i32) ---
 

Set shader uniform value vector

SetShapesTexture ¶

SetShapesTexture :: proc "cdecl" (texture: Texture, source: Rectangle) ---

SetSoundPan ¶

SetSoundPan :: proc "cdecl" (sound: Sound, pan: f32) ---
 

Set pan for a sound (0.5 is center)

SetSoundPitch ¶

SetSoundPitch :: proc "cdecl" (sound: Sound, pitch: f32) ---
 

Set pitch for a sound (1.0 is base level)

SetSoundVolume ¶

SetSoundVolume :: proc "cdecl" (sound: Sound, volume: f32) ---
 

Set volume for a sound (1.0 is max level)

SetTargetFPS ¶

SetTargetFPS :: proc "cdecl" (fps: i32) ---
 

Set target FPS (maximum)

SetTextureFilter ¶

SetTextureFilter :: proc "cdecl" (texture: Texture, filter: TextureFilter) ---
 

Set texture scaling filter mode

SetTextureWrap ¶

SetTextureWrap :: proc "cdecl" (texture: Texture, wrap: TextureWrap) ---
 

Set texture wrapping mode

SetTraceLogCallback ¶

SetTraceLogCallback :: proc "cdecl" (callback: TraceLogCallback) ---
 

Set custom trace log

SetTraceLogLevel ¶

SetTraceLogLevel :: proc "cdecl" (logLevel: TraceLogLevel) ---
 

Set the current threshold (minimum) log level

SetWindowIcon ¶

SetWindowIcon :: proc "cdecl" (image: Image) ---
 

Set icon for window (single image, RGBA 32bit, only PLATFORM_DESKTOP)

SetWindowIcons ¶

SetWindowIcons :: proc "cdecl" (images: [^]Image, count: i32) ---
 

Set icon for window (multiple images, RGBA 32bit, only PLATFORM_DESKTOP)

SetWindowMinSize ¶

SetWindowMinSize :: proc "cdecl" (width, height: i32) ---
 

Set window minimum dimensions (for FLAG_WINDOW_RESIZABLE)

SetWindowMonitor ¶

SetWindowMonitor :: proc "cdecl" (monitor: i32) ---
 

Set monitor for the current window (fullscreen mode)

SetWindowOpacity ¶

SetWindowOpacity :: proc "cdecl" (opacity: f32) ---
 

Set window opacity [0.0f..1.0f] (only PLATFORM_DESKTOP)

SetWindowPosition ¶

SetWindowPosition :: proc "cdecl" (x, y: i32) ---
 

Set window position on screen (only PLATFORM_DESKTOP)

SetWindowSize ¶

SetWindowSize :: proc "cdecl" (width, height: i32) ---
 

Set window dimensions

SetWindowState ¶

SetWindowState :: proc "cdecl" (flags: ConfigFlags) ---
 

Set window configuration state using flags (only PLATFORM_DESKTOP)

SetWindowTitle ¶

SetWindowTitle :: proc "cdecl" (title: cstring) ---
 

Set title for window (only PLATFORM_DESKTOP)

ShowCursor ¶

ShowCursor :: proc "cdecl" () ---
 

Shows cursor

StopAudioStream ¶

StopAudioStream :: proc "cdecl" (stream: AudioStream) ---
 

Stop audio stream

StopMusicStream ¶

StopMusicStream :: proc "cdecl" (music: Music) ---
 

Stop music playing

StopSound ¶

StopSound :: proc "cdecl" (sound: Sound) ---
 

Stop playing a sound

SwapScreenBuffer ¶

SwapScreenBuffer :: proc "cdecl" () ---
 

Swap back buffer with front buffer (screen drawing)

TakeScreenshot ¶

TakeScreenshot :: proc "cdecl" (fileName: cstring) ---
 

Takes a screenshot of current screen (filename extension defines format)

TextAppend ¶

TextAppend :: proc "cdecl" (text: [^]u8, append: cstring, position: ^i32) ---
 

Append text at specific position and move cursor!

TextCopy ¶

TextCopy :: proc "cdecl" (dst: [^]u8, src: cstring) -> i32 ---
 

Copy one string to another, returns bytes copied

TextFindIndex ¶

TextFindIndex :: proc "cdecl" (text, find: cstring) -> i32 ---
 

Find first text occurrence within a string

TextFormat ¶

TextFormat :: proc "odin" (text: cstring, args: ..any) -> cstring {…}
 

Text formatting with variables (sprintf style)

TextFormatAlloc ¶

TextFormatAlloc :: proc "odin" (text: cstring, args: ..any) -> cstring {…}
 

Text formatting with variables (sprintf style) and allocates (must be freed with 'MemFree')

TextInsert ¶

TextInsert :: proc "cdecl" (text, insert: cstring, position: i32) -> [^]u8 ---
 

Insert text in a position (WARNING: memory must be freed!)

TextIsEqual ¶

TextIsEqual :: proc "cdecl" (text1, text2: cstring) -> bool ---
 

Check if two text string are equal

TextJoin ¶

TextJoin :: proc "cdecl" (textList: [^]cstring, count: i32, delimiter: cstring) -> cstring ---
 

Join text strings with delimiter

TextLength ¶

TextLength :: proc "cdecl" (text: cstring) -> u32 ---
 

Get text length, checks for '\0' ending

TextReplace ¶

TextReplace :: proc "cdecl" (text: [^]u8, replace, by: cstring) -> [^]u8 ---
 

Replace text string (WARNING: memory must be freed!)

TextSplit ¶

TextSplit :: proc "cdecl" (text: cstring, delimiter: u8, count: ^i32) -> [^]cstring ---
 

Split text into multiple strings

TextSubtext ¶

TextSubtext :: proc "cdecl" (text: cstring, position: i32, length: i32) -> cstring ---
 

Get a piece of a text string

TextToInteger ¶

TextToInteger :: proc "cdecl" (text: cstring) -> i32 ---
 

Get integer value from text (negative values not supported)

TextToLower ¶

TextToLower :: proc "cdecl" (text: cstring) -> cstring ---
 

Get lower case version of provided string

TextToPascal ¶

TextToPascal :: proc "cdecl" (text: cstring) -> cstring ---
 

Get Pascal case notation version of provided string

TextToUpper ¶

TextToUpper :: proc "cdecl" (text: cstring) -> cstring ---
 

Get upper case version of provided string

ToggleFullscreen ¶

ToggleFullscreen :: proc "cdecl" () ---
 

Toggle window state: fullscreen/windowed (only PLATFORM_DESKTOP)

TraceLog ¶

TraceLog :: proc "cdecl" (logLevel: TraceLogLevel, text: cstring, args: ..any) ---
 

Show trace log messages (LOG_DEBUG, LOG_INFO, LOG_WARNING, LOG_ERROR)

UnloadAudioStream ¶

UnloadAudioStream :: proc "cdecl" (stream: AudioStream) ---
 

Unload audio stream and free memory

UnloadCodepoints ¶

UnloadCodepoints :: proc "cdecl" (codepoints: [^]rune) ---
 

Unload codepoints data from memory

UnloadDirectoryFiles ¶

UnloadDirectoryFiles :: proc "cdecl" (files: FilePathList) ---
 

Unload filepaths

UnloadDroppedFiles ¶

UnloadDroppedFiles :: proc "cdecl" (files: FilePathList) ---
 

Unload dropped filepaths

UnloadFileData ¶

UnloadFileData :: proc "cdecl" (data: [^]u8) ---
 

Unload file data allocated by LoadFileData()

UnloadFileText ¶

UnloadFileText :: proc "cdecl" (text: [^]u8) ---
 

Unload file text data allocated by LoadFileText()

UnloadFont ¶

UnloadFont :: proc "cdecl" (font: Font) ---
 

Unload font from GPU memory (VRAM)

UnloadFontData ¶

UnloadFontData :: proc "cdecl" (chars: [^]GlyphInfo, glyphCount: i32) ---
 

Unload font chars info data (RAM)

UnloadImage ¶

UnloadImage :: proc "cdecl" (image: Image) ---
 

Unload image from CPU memory (RAM)

UnloadImageColors ¶

UnloadImageColors :: proc "cdecl" (colors: [^]Color) ---
 

Unload color data loaded with LoadImageColors()

UnloadImagePalette ¶

UnloadImagePalette :: proc "cdecl" (colors: [^]Color) ---
 

Unload colors palette loaded with LoadImagePalette()

UnloadMaterial ¶

UnloadMaterial :: proc "cdecl" (material: Material) ---
 

Unload material from GPU memory (VRAM)

UnloadMesh ¶

UnloadMesh :: proc "cdecl" (mesh: Mesh) ---
 

Unload mesh data from CPU and GPU

UnloadModel ¶

UnloadModel :: proc "cdecl" (model: Model) ---
 

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

UnloadModelAnimation ¶

UnloadModelAnimation :: proc "cdecl" (anim: ModelAnimation) ---
 

Unload animation data

UnloadModelAnimations ¶

UnloadModelAnimations :: proc "cdecl" (animations: [^]ModelAnimation, count: u32) ---
 

Unload animation array data

UnloadMusicStream ¶

UnloadMusicStream :: proc "cdecl" (music: Music) ---
 

Unload music stream

UnloadRenderTexture ¶

UnloadRenderTexture :: proc "cdecl" (target: RenderTexture) ---
 

Unload render texture from GPU memory (VRAM)

UnloadShader ¶

UnloadShader :: proc "cdecl" (shader: Shader) ---
 

Unload shader from GPU memory (VRAM)

UnloadSound ¶

UnloadSound :: proc "cdecl" (sound: Sound) ---
 

Unload sound

UnloadTexture ¶

UnloadTexture :: proc "cdecl" (texture: Texture) ---
 

Unload texture from GPU memory (VRAM)

UnloadUTF8 ¶

UnloadUTF8 :: proc "cdecl" (text: [^]u8) ---
 

Unload UTF-8 text encoded from codepoints array

UnloadVrStereoConfig ¶

UnloadVrStereoConfig :: proc "cdecl" (config: VrStereoConfig) ---
 

Unload VR stereo config

UnloadWave ¶

UnloadWave :: proc "cdecl" (wave: Wave) ---
 

Unload wave data

UnloadWaveSamples ¶

UnloadWaveSamples :: proc "cdecl" (samples: [^]f32) ---
 

Unload samples data loaded with LoadWaveSamples()

UpdateAudioStream ¶

UpdateAudioStream :: proc "cdecl" (stream: AudioStream, data: rawptr, frameCount: i32) ---
 

Update audio stream buffers with data

UpdateCamera ¶

UpdateCamera :: proc "cdecl" (camera: ^Camera3D, mode: CameraMode) ---
 

Set camera mode (multiple camera modes available)

UpdateCameraPro ¶

UpdateCameraPro :: proc "cdecl" (camera: ^Camera3D, movement: linalg.Vector3f32, rotation: linalg.Vector3f32, zoom: f32) ---
 

Update camera movement/rotation

UpdateMeshBuffer ¶

UpdateMeshBuffer :: proc "cdecl" (mesh: Mesh, index: i32, data: rawptr, dataSize: i32, offset: i32) ---
 

Update mesh vertex data in GPU for a specific buffer index

UpdateModelAnimation ¶

UpdateModelAnimation :: proc "cdecl" (model: Model, anim: ModelAnimation, frame: i32) ---
 

Update model animation pose

UpdateMusicStream ¶

UpdateMusicStream :: proc "cdecl" (music: Music) ---
 

Updates buffers for music streaming

UpdateSound ¶

UpdateSound :: proc "cdecl" (sound: Sound, data: rawptr, sampleCount: i32) ---
 

Update sound buffer with new data

UpdateTexture ¶

UpdateTexture :: proc "cdecl" (texture: Texture, pixels: rawptr) ---
 

Update GPU texture with new data

UpdateTextureRec ¶

UpdateTextureRec :: proc "cdecl" (texture: Texture, rec: Rectangle, pixels: rawptr) ---
 

Update GPU texture rectangle with new data

UploadMesh ¶

UploadMesh :: proc "cdecl" (mesh: ^Mesh, is_dynamic: bool) ---
 

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

WaitTime ¶

WaitTime :: proc "cdecl" (seconds: f64) ---
 

Wait for some time (halt program execution)

WaveCopy ¶

WaveCopy :: proc "cdecl" (wave: Wave) -> Wave ---
 

Copy a wave to a new wave

WaveCrop ¶

WaveCrop :: proc "cdecl" (wave: ^Wave, initSample, finalSample: i32) ---
 

Crop a wave to defined samples range

WaveFormat ¶

WaveFormat :: proc "cdecl" (wave: ^Wave, sampleRate, sampleSize: i32, channels: i32) ---
 

Convert wave data to desired format

WindowShouldClose ¶

WindowShouldClose :: proc "cdecl" () -> bool ---
 

Check if KEY_ESCAPE pressed or Close icon pressed

rlActiveDrawBuffers ¶

rlActiveDrawBuffers :: proc "cdecl" (count: i32) ---
 

Activate multiple draw color buffers

rlActiveTextureSlot ¶

rlActiveTextureSlot :: proc "cdecl" (slot: i32) ---
 

Textures state

rlBegin ¶

rlBegin :: proc "cdecl" (mode: i32) ---
 

------------------------------------------------------------------------------------ Functions Declaration - Vertex level operations ------------------------------------------------------------------------------------

rlBindImageTexture ¶

rlBindImageTexture :: proc "cdecl" (id: u32, index: u32, format: i32, readonly: bool) ---
 

Buffer management

rlBindShaderBuffer ¶

rlBindShaderBuffer :: proc "cdecl" (id: u32, index: u32) ---
 

Bind SSBO buffer

rlCheckErrors ¶

rlCheckErrors :: proc "cdecl" () ---
 

Check and log OpenGL error codes

rlCheckRenderBatchLimit ¶

rlCheckRenderBatchLimit :: proc "cdecl" (vCount: i32) -> i32 ---
 

Check internal buffer overflow for a given number of vertex

rlClearColor ¶

rlClearColor :: proc "cdecl" (r, g, b, a: u8) ---
 

Clear color buffer with color

rlClearScreenBuffers ¶

rlClearScreenBuffers :: proc "cdecl" () ---
 

Clear used screen buffers (color and depth)

rlColor3f ¶

rlColor3f :: proc "cdecl" (x, y, z: f32) ---
 

Define one vertex (color) - 3 f32

rlColor4f ¶

rlColor4f :: proc "cdecl" (x, y, z, w: f32) ---
 

Define one vertex (color) - 4 f32

rlColor4ub ¶

rlColor4ub :: proc "cdecl" (r, g, b, a: u8) ---
 

Define one vertex (color) - 4 byte

rlCompileShader ¶

rlCompileShader :: proc "cdecl" (shaderCode: cstring, type: i32) -> u32 ---
 

Compile custom shader and return shader id (type: RL_VERTEX_SHADER, RL_FRAGMENT_SHADER, RL_COMPUTE_SHADER)

rlComputeShaderDispatch ¶

rlComputeShaderDispatch :: proc "cdecl" (groupX, groupY, groupZ: u32) ---
 

Dispatch compute shader (equivalent to draw for graphics pipeline)

rlCopyShaderBuffer ¶

rlCopyShaderBuffer :: proc "cdecl" (destId, srcId: u32, destOffset, srcOffset: u32, count: u32) ---
 

Copy SSBO data between buffers

rlCubemapParameters ¶

rlCubemapParameters :: proc "cdecl" (id: i32, param: i32, value: i32) ---
 

Set cubemap parameters (filter, wrap)

rlDisableBackfaceCulling ¶

rlDisableBackfaceCulling :: proc "cdecl" () ---
 

Disable backface culling

rlDisableColorBlend ¶

rlDisableColorBlend :: proc "cdecl" () ---
 

General render state

rlDisableDepthMask ¶

rlDisableDepthMask :: proc "cdecl" () ---
 

Disable depth write

rlDisableDepthTest ¶

rlDisableDepthTest :: proc "cdecl" () ---
 

Disable depth test

rlDisableFramebuffer ¶

rlDisableFramebuffer :: proc "cdecl" () ---
 

Disable render texture (fbo), return to default framebuffer

rlDisableScissorTest ¶

rlDisableScissorTest :: proc "cdecl" () ---
 

Disable scissor test

rlDisableShader ¶

rlDisableShader :: proc "cdecl" () ---
 

Disable shader program

rlDisableSmoothLines ¶

rlDisableSmoothLines :: proc "cdecl" () ---
 

Disable line aliasing

rlDisableStereoRender ¶

rlDisableStereoRender :: proc "cdecl" () ---
 

Disable stereo rendering

rlDisableTexture ¶

rlDisableTexture :: proc "cdecl" () ---
 

Disable texture

rlDisableTextureCubemap ¶

rlDisableTextureCubemap :: proc "cdecl" () ---
 

Disable texture cubemap

rlDisableVertexArray ¶

rlDisableVertexArray :: proc "cdecl" () ---
 

Disable vertex array (VAO, if supported)

rlDisableVertexAttribute ¶

rlDisableVertexAttribute :: proc "cdecl" (index: u32) ---
 

Disable vertex attribute index

rlDisableVertexBuffer ¶

rlDisableVertexBuffer :: proc "cdecl" () ---
 

Disable vertex buffer (VBO)

rlDisableVertexBufferElement ¶

rlDisableVertexBufferElement :: proc "cdecl" () ---
 

Disable vertex buffer element (VBO element)

rlDisableWireMode ¶

rlDisableWireMode :: proc "cdecl" () ---
 

Disable wire mode

rlDrawRenderBatch ¶

rlDrawRenderBatch :: proc "cdecl" (batch: ^RenderBatch) ---
 

Draw render batch data (Update->Draw->Reset)

rlDrawRenderBatchActive ¶

rlDrawRenderBatchActive :: proc "cdecl" () ---
 

Update and draw internal render batch

rlDrawVertexArray ¶

rlDrawVertexArray :: proc "cdecl" (offset: i32, count: i32) ---

rlDrawVertexArrayElements ¶

rlDrawVertexArrayElements :: proc "cdecl" (offset: i32, count: i32, buffer: rawptr) ---

rlDrawVertexArrayElementsInstanced ¶

rlDrawVertexArrayElementsInstanced :: proc "cdecl" (offset: i32, count: i32, buffer: rawptr, instances: i32) ---

rlDrawVertexArrayInstanced ¶

rlDrawVertexArrayInstanced :: proc "cdecl" (offset: i32, count: i32, instances: i32) ---

rlEnableBackfaceCulling ¶

rlEnableBackfaceCulling :: proc "cdecl" () ---
 

Enable backface culling

rlEnableDepthMask ¶

rlEnableDepthMask :: proc "cdecl" () ---
 

Enable depth write

rlEnableDepthTest ¶

rlEnableDepthTest :: proc "cdecl" () ---
 

Enable depth test

rlEnableFramebuffer ¶

rlEnableFramebuffer :: proc "cdecl" (id: u32) ---
 

Framebuffer state

rlEnableScissorTest ¶

rlEnableScissorTest :: proc "cdecl" () ---
 

Enable scissor test

rlEnableShader ¶

rlEnableShader :: proc "cdecl" (id: u32) ---
 

Shader state

rlEnableSmoothLines ¶

rlEnableSmoothLines :: proc "cdecl" () ---
 

Enable line aliasing

rlEnableStereoRender ¶

rlEnableStereoRender :: proc "cdecl" () ---
 

Enable stereo rendering

rlEnableTexture ¶

rlEnableTexture :: proc "cdecl" (id: u32) ---
 

Enable texture

rlEnableTextureCubemap ¶

rlEnableTextureCubemap :: proc "cdecl" (id: u32) ---
 

Enable texture cubemap

rlEnableVertexArray ¶

rlEnableVertexArray :: proc "cdecl" (vaoId: u32) -> bool ---
 

Vertex buffers state

rlEnableVertexAttribute ¶

rlEnableVertexAttribute :: proc "cdecl" (index: u32) ---
 

Enable vertex attribute index

rlEnableVertexBuffer ¶

rlEnableVertexBuffer :: proc "cdecl" (id: u32) ---
 

Enable vertex buffer (VBO)

rlEnableVertexBufferElement ¶

rlEnableVertexBufferElement :: proc "cdecl" (id: u32) ---
 

Enable vertex buffer element (VBO element)

rlEnableWireMode ¶

rlEnableWireMode :: proc "cdecl" () ---
 

Enable wire mode

rlEnd ¶

rlEnd :: proc "cdecl" () ---
 

Finish vertex providing

rlFramebufferAttach ¶

rlFramebufferAttach :: proc "cdecl" (fboId, texId: u32, attachType: i32, texType: i32, mipLevel: i32) ---
 

Attach texture/renderbuffer to a framebuffer

rlFramebufferComplete ¶

rlFramebufferComplete :: proc "cdecl" (id: u32) -> bool ---
 

Verify framebuffer is complete

rlFrustum ¶

rlFrustum :: proc "cdecl" (
	left, right, bottom, top, znear, 
	zfar:                            f64, 
) ---

rlGenTextureMipmaps ¶

rlGenTextureMipmaps :: proc "cdecl" (id: u32, width, height: i32, format: i32, mipmaps: ^i32) ---
 

Generate mipmap data for selected texture

rlGetFramebufferHeight ¶

rlGetFramebufferHeight :: proc "cdecl" () -> i32 ---
 

Get default framebuffer height

rlGetFramebufferWidth ¶

rlGetFramebufferWidth :: proc "cdecl" () -> i32 ---
 

Get default framebuffer width

rlGetGlTextureFormats ¶

rlGetGlTextureFormats :: proc "cdecl" (format: i32, glInternalFormat, glFormat, glType: ^u32) ---
 

Get OpenGL internal formats

rlGetLineWidth ¶

rlGetLineWidth :: proc "cdecl" () -> f32 ---
 

Get the line drawing width

rlGetLocationAttrib ¶

rlGetLocationAttrib :: proc "cdecl" (shaderId: u32, attribName: cstring) -> i32 ---
 

Get shader location attribute

rlGetLocationUniform ¶

rlGetLocationUniform :: proc "cdecl" (shaderId: u32, uniformName: cstring) -> i32 ---
 

Get shader location uniform

rlGetMatrixModelview ¶

rlGetMatrixModelview :: proc "cdecl" () -> linalg.Matrix4x4f32 ---
 

Matrix state management

rlGetMatrixProjection ¶

rlGetMatrixProjection :: proc "cdecl" () -> linalg.Matrix4x4f32 ---
 

Get internal projection matrix

rlGetMatrixProjectionStereo ¶

rlGetMatrixProjectionStereo :: proc "cdecl" (eye: i32) -> linalg.Matrix4x4f32 ---
 

Get internal projection matrix for stereo render (selected eye)

rlGetMatrixTransform ¶

rlGetMatrixTransform :: proc "cdecl" () -> linalg.Matrix4x4f32 ---
 

Get internal accumulated transform matrix

rlGetMatrixViewOffsetStereo ¶

rlGetMatrixViewOffsetStereo :: proc "cdecl" (eye: i32) -> linalg.Matrix4x4f32 ---
 

Get internal view offset matrix for stereo render (selected eye)

rlGetPixelFormatName ¶

rlGetPixelFormatName :: proc "cdecl" (format: u32) -> cstring ---
 

Get name string for pixel format

rlGetShaderBufferSize ¶

rlGetShaderBufferSize :: proc "cdecl" (id: u32) -> u32 ---
 

Get SSBO buffer size

rlGetShaderIdDefault ¶

rlGetShaderIdDefault :: proc "cdecl" () -> u32 ---
 

Get default shader id

rlGetShaderLocsDefault ¶

rlGetShaderLocsDefault :: proc "cdecl" () -> [^]i32 ---
 

Get default shader locations

rlGetTextureIdDefault ¶

rlGetTextureIdDefault :: proc "cdecl" () -> u32 ---
 

Get default texture id

rlGetVersion ¶

rlGetVersion :: proc "cdecl" () -> GlVersion ---
 

Get current OpenGL version

rlIsStereoRenderEnabled ¶

rlIsStereoRenderEnabled :: proc "cdecl" () -> bool ---
 

Check if stereo render is enabled

rlLoadComputeShaderProgram ¶

rlLoadComputeShaderProgram :: proc "cdecl" (shaderId: u32) -> u32 ---
 

Compute shader management

rlLoadDrawCube ¶

rlLoadDrawCube :: proc "cdecl" () ---
 

Quick and dirty cube/quad buffers load->draw->unload

rlLoadDrawQuad ¶

rlLoadDrawQuad :: proc "cdecl" () ---
 

Load and draw a quad

rlLoadExtensions ¶

rlLoadExtensions :: proc "cdecl" (loader: rawptr) ---
 

Load OpenGL extensions (loader function required)

rlLoadFramebuffer ¶

rlLoadFramebuffer :: proc "cdecl" (width, height: i32) -> u32 ---
 

Framebuffer management (fbo)

rlLoadIdentity ¶

rlLoadIdentity :: proc "cdecl" () ---
 

Reset current matrix to identity matrix

rlLoadRenderBatch ¶

rlLoadRenderBatch :: proc "cdecl" (numBuffers, bufferElements: i32) -> RenderBatch ---
 

Render batch management NOTE: rlgl provides a default render batch to behave like OpenGL 1.1 immediate mode but this render batch API is exposed in case of custom batches are required

rlLoadShaderBuffer ¶

rlLoadShaderBuffer :: proc "cdecl" (size: u32, data: rawptr, usageHint: i32) -> u32 ---
 

Shader buffer storage object management (ssbo)

rlLoadShaderCode ¶

rlLoadShaderCode :: proc "cdecl" (vsCode, fsCode: cstring) -> u32 ---
 

Shaders management

rlLoadShaderProgram ¶

rlLoadShaderProgram :: proc "cdecl" (vShaderId, fShaderId: u32) -> u32 ---
 

Load custom shader program

rlLoadTexture ¶

rlLoadTexture :: proc "cdecl" (data: rawptr, width, height: i32, format: i32, mipmapCount: i32) -> u32 ---
 

Textures management

rlLoadTextureCubemap ¶

rlLoadTextureCubemap :: proc "cdecl" (data: rawptr, size: i32, format: i32) -> u32 ---
 

Load texture cubemap

rlLoadTextureDepth ¶

rlLoadTextureDepth :: proc "cdecl" (width, height: i32, useRenderBuffer: bool) -> u32 ---
 

Load depth texture/renderbuffer (to be attached to fbo)

rlLoadVertexArray ¶

rlLoadVertexArray :: proc "cdecl" () -> u32 ---
 

Vertex buffers management

rlLoadVertexBuffer ¶

rlLoadVertexBuffer :: proc "cdecl" (buffer: rawptr, size: i32, is_dynamic: bool) -> u32 ---
 

Load a vertex buffer attribute

rlLoadVertexBufferElement ¶

rlLoadVertexBufferElement :: proc "cdecl" (buffer: rawptr, size: i32, is_dynamic: bool) -> u32 ---
 

Load a new attributes element buffer

rlMatrixMode ¶

rlMatrixMode :: proc "cdecl" (mode: i32) ---
 

------------------------------------------------------------------------------------ Functions Declaration - Matrix operations ------------------------------------------------------------------------------------

rlMultMatrixf ¶

rlMultMatrixf :: proc "cdecl" (matf: [^]f32) ---
 

Multiply the current matrix by another matrix

rlNormal3f ¶

rlNormal3f :: proc "cdecl" (x, y, z: f32) ---
 

Define one vertex (normal) - 3 f32

rlOrtho ¶

rlOrtho :: proc "cdecl" (
	left, right, bottom, top, znear, 
	zfar:                            f64, 
) ---

rlPopMatrix ¶

rlPopMatrix :: proc "cdecl" () ---
 

Pop lattest inserted matrix from stack

rlPushMatrix ¶

rlPushMatrix :: proc "cdecl" () ---
 

Push the current matrix to stack

rlReadScreenPixels ¶

rlReadScreenPixels :: proc "cdecl" (width, height: i32) -> [^]u8 ---
 

Read screen pixel data (color buffer)

rlReadShaderBuffer ¶

rlReadShaderBuffer :: proc "cdecl" (id: u32, dest: rawptr, count: u32, offset: u32) ---
 

Read SSBO buffer data (GPU->CPU)

rlReadTexturePixels ¶

rlReadTexturePixels :: proc "cdecl" (id: u32, width, height: i32, format: i32) -> rawptr ---
 

Read texture pixel data

rlRotatef ¶

rlRotatef :: proc "cdecl" (angleDeg: f32, x, y, z: f32) ---
 

Multiply the current matrix by a rotation matrix

rlScalef ¶

rlScalef :: proc "cdecl" (x, y, z: f32) ---
 

Multiply the current matrix by a scaling matrix

rlScissor ¶

rlScissor :: proc "cdecl" (x, y, width, height: i32) ---
 

Scissor test

rlSetBlendFactors ¶

rlSetBlendFactors :: proc "cdecl" (glSrcFactor, glDstFactor, glEquation: i32) ---
 

Set blending mode factor and equation (using OpenGL factors)

rlSetBlendFactorsSeparate ¶

rlSetBlendFactorsSeparate :: proc "cdecl" (
	glSrcRGB, glDstRGB, glSrcAlpha, glDstAlpha, glEqRGB, 
	glEqAlpha:                                           i32, 
) ---
 

Set blending mode factors and equations separately (using OpenGL factors)

rlSetBlendMode ¶

rlSetBlendMode :: proc "cdecl" (mode: i32) ---
 

Set blending mode

rlSetCullFace ¶

rlSetCullFace :: proc "cdecl" (mode: CullMode) ---
 

Set face culling mode

rlSetFramebufferHeight ¶

rlSetFramebufferHeight :: proc "cdecl" (height: i32) ---
 

Set current framebuffer height

rlSetFramebufferWidth ¶

rlSetFramebufferWidth :: proc "cdecl" (width: i32) ---
 

Set current framebuffer width

rlSetLineWidth ¶

rlSetLineWidth :: proc "cdecl" (width: f32) ---
 

Set the line drawing width

rlSetMatrixModelview ¶

rlSetMatrixModelview :: proc "cdecl" (view: linalg.Matrix4x4f32) ---
 

Set a custom modelview matrix (replaces internal modelview matrix)

rlSetMatrixProjection ¶

rlSetMatrixProjection :: proc "cdecl" (proj: linalg.Matrix4x4f32) ---
 

Set a custom projection matrix (replaces internal projection matrix)

rlSetMatrixProjectionStereo ¶

rlSetMatrixProjectionStereo :: proc "cdecl" (right, left: linalg.Matrix4x4f32) ---
 

Set eyes projection matrices for stereo rendering

rlSetMatrixViewOffsetStereo ¶

rlSetMatrixViewOffsetStereo :: proc "cdecl" (right, left: linalg.Matrix4x4f32) ---
 

Set eyes view offsets matrices for stereo rendering

rlSetRenderBatchActive ¶

rlSetRenderBatchActive :: proc "cdecl" (batch: ^RenderBatch) ---
 

Set the active render batch for rlgl (NULL for default internal)

rlSetShader ¶

rlSetShader :: proc "cdecl" (id: u32, locs: [^]i32) ---
 

Set shader currently active (id and locations)

rlSetTexture ¶

rlSetTexture :: proc "cdecl" (id: u32) ---
 

Set current texture for render batch and check buffers limits

rlSetUniform ¶

rlSetUniform :: proc "cdecl" (locIndex: i32, value: rawptr, uniformType: i32, count: i32) ---
 

Set shader value uniform

rlSetUniformMatrix ¶

rlSetUniformMatrix :: proc "cdecl" (locIndex: i32, mat: linalg.Matrix4x4f32) ---
 

Set shader value matrix

rlSetUniformSampler ¶

rlSetUniformSampler :: proc "cdecl" (locIndex: i32, textureId: u32) ---
 

Set shader value sampler

rlSetVertexAttribute ¶

rlSetVertexAttribute :: proc "cdecl" (
	index:      u32, 
	compSize:   i32, 
	type:       i32, 
	normalized: bool, 
	stride:     i32, 
	pointer:    rawptr, 
) ---

rlSetVertexAttributeDefault ¶

rlSetVertexAttributeDefault :: proc "cdecl" (locIndex: i32, value: rawptr, attribType: i32, count: i32) ---
 

Set vertex attribute default value

rlSetVertexAttributeDivisor ¶

rlSetVertexAttributeDivisor :: proc "cdecl" (index: u32, divisor: i32) ---

rlTexCoord2f ¶

rlTexCoord2f :: proc "cdecl" (x, y: f32) ---
 

Define one vertex (texture coordinate) - 2 f32

rlTextureParameters ¶

rlTextureParameters :: proc "cdecl" (id: u32, param: i32, value: i32) ---
 

Set texture parameters (filter, wrap)

rlTranslatef ¶

rlTranslatef :: proc "cdecl" (x, y, z: f32) ---
 

Multiply the current matrix by a translation matrix

rlUnloadFramebuffer ¶

rlUnloadFramebuffer :: proc "cdecl" (id: u32) ---
 

Delete framebuffer from GPU

rlUnloadRenderBatch ¶

rlUnloadRenderBatch :: proc "cdecl" (batch: RenderBatch) ---
 

Unload render batch system

rlUnloadShaderBuffer ¶

rlUnloadShaderBuffer :: proc "cdecl" (ssboId: u32) ---
 

Unload shader storage buffer object (SSBO)

rlUnloadShaderProgram ¶

rlUnloadShaderProgram :: proc "cdecl" (id: u32) ---
 

Unload shader program

rlUnloadTexture ¶

rlUnloadTexture :: proc "cdecl" (id: u32) ---
 

Unload texture from GPU memory

rlUnloadVertexArray ¶

rlUnloadVertexArray :: proc "cdecl" (vaoId: u32) ---

rlUnloadVertexBuffer ¶

rlUnloadVertexBuffer :: proc "cdecl" (vboId: u32) ---

rlUpdateShaderBuffer ¶

rlUpdateShaderBuffer :: proc "cdecl" (id: u32, data: rawptr, dataSize: u32, offset: u32) ---
 

Update SSBO buffer data

rlUpdateTexture ¶

rlUpdateTexture :: proc "cdecl" (
	id:               u32, 
	offsetX, offsetY: i32, 
	width, height:    i32, 
	format:           i32, 
	data:             rawptr, 
) ---
 

Update GPU texture with new data

rlUpdateVertexBuffer ¶

rlUpdateVertexBuffer :: proc "cdecl" (bufferId: u32, data: rawptr, dataSize: i32, offset: i32) ---
 

Update GPU buffer with new data

rlUpdateVertexBufferElements ¶

rlUpdateVertexBufferElements :: proc "cdecl" (id: u32, data: rawptr, dataSize: i32, offset: i32) ---
 

Update vertex buffer elements with new data

rlVertex2f ¶

rlVertex2f :: proc "cdecl" (x, y: f32) ---
 

Define one vertex (position) - 2 f32

rlVertex2i ¶

rlVertex2i :: proc "cdecl" (x, y: i32) ---
 

Define one vertex (position) - 2 int

rlVertex3f ¶

rlVertex3f :: proc "cdecl" (x, y, z: f32) ---
 

Define one vertex (position) - 3 f32

rlViewport ¶

rlViewport :: proc "cdecl" (x, y, width, height: i32) ---
 

Set the viewport area

rlglClose ¶

rlglClose :: proc "cdecl" () ---
 

De-initialize rlgl (buffers, shaders, textures)

rlglInit ¶

rlglInit :: proc "cdecl" (width, height: i32) ---
 

------------------------------------------------------------------------------------ Functions Declaration - rlgl functionality ------------------------------------------------------------------------------------ rlgl initialization functions

Procedure Groups

This section is empty.

Source Files

Generation Information

Generated with odin version dev-2023-03 (vendor "odin") Windows_amd64 @ 2023-03-29 21:09:05.523659200 +0000 UTC