raylib

Search:
Group by:
Source   Edit  

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

Types

AudioCallback = proc (bufferData: pointer; frames: uint32) {.cdecl.}
Audio thread callback to request new data Source   Edit  
AudioStream {.importc, header: "raylib.h", bycopy.} = object
  ## Pointer to internal data used by the audio system
  ## Pointer to internal data processor, useful for audio effects
  sampleRate*: uint32        ## Frequency (samples per second)
  sampleSize*: uint32        ## Bit depth (bits per sample): 8, 16, 32 (24 not supported)
  channels*: uint32          ## Number of channels (1-mono, 2-stereo, ...)
AudioStream, custom audio stream Source   Edit  
AutomationEvent {.importc, header: "raylib.h", bycopy.} = object
  frame*: uint32             ## Event frame
  ## Event type (AutomationEventType)
  params*: array[4, int32]   ## Event parameters (if required)
Automation event Source   Edit  
AutomationEventList {.importc, header: "raylib.h", bycopy.} = object
  ## Events max entries (MAX_AUTOMATION_EVENTS)
  ## Events entries count
  ## Events entries
Automation event list Source   Edit  
BlendMode {.size: 4.} = enum
  Alpha,                    ## Blend textures considering alpha (default)
  Additive,                 ## Blend textures adding colors
  Multiplied,               ## Blend textures multiplying colors
  AddColors,                ## Blend textures adding colors (alternative)
  SubtractColors,           ## Blend textures subtracting colors (alternative)
  AlphaPremultiply,         ## Blend premultiplied textures considering alpha
  Custom,                   ## Blend textures using custom src/dst factors (use rlSetBlendFactors())
  CustomSeparate             ## Blend textures using custom rgb/alpha separate src/dst factors (use rlSetBlendFactorsSeparate())
Color blending modes (pre-defined) Source   Edit  
BoneInfo {.importc, header: "raylib.h", bycopy.} = object
  name*: array[32, char]     ## Bone name
  parent*: int32             ## Bone parent
Bone, skeletal animation bone Source   Edit  
BoundingBox {.importc, header: "raylib.h", bycopy.} = object
  min*: Vector3              ## Minimum vertex box-corner
  max*: Vector3              ## Maximum vertex box-corner
BoundingBox Source   Edit  
Camera = Camera3D
Camera type fallback, defaults to Camera3D Source   Edit  
Camera2D {.importc, header: "raylib.h", bycopy.} = object
  offset*: Vector2           ## Camera offset (displacement from target)
  target*: Vector2           ## Camera target (rotation and zoom origin)
  rotation*: float32         ## Camera rotation in degrees
  zoom*: float32             ## Camera zoom (scaling), should be 1.0f by default
Camera2D, defines position/orientation in 2d space Source   Edit  
Camera3D {.importc, header: "raylib.h", bycopy.} = object
  position*: Vector3         ## Camera position
  target*: Vector3           ## Camera target it looks-at
  up*: Vector3               ## Camera up vector (rotation over its axis)
  fovy*: float32             ## Camera field-of-view aperture in Y (degrees) in perspective, used as near plane width in orthographic
  projection*: CameraProjection ## Camera projection: CAMERA_PERSPECTIVE or CAMERA_ORTHOGRAPHIC
Camera, defines position/orientation in 3d space Source   Edit  
CameraMode {.size: 4.} = enum
  Custom,                   ## Custom camera
  Free,                     ## Free camera
  Orbital,                  ## Orbital camera
  FirstPerson,              ## First person camera
  ThirdPerson                ## Third person camera
Camera system modes Source   Edit  
CameraProjection {.size: 4.} = enum
  Perspective,              ## Perspective projection
  Orthographic               ## Orthographic projection
Camera projection Source   Edit  
Color {.importc, header: "raylib.h", completeStruct, bycopy.} = object
  r*: uint8                  ## Color red value
  g*: uint8                  ## Color green value
  b*: uint8                  ## Color blue value
  a*: uint8                  ## Color alpha value
Color, 4 components, R8G8B8A8 (32bit) Source   Edit  
ConfigFlags {.size: 4.} = enum
  FullscreenMode = 2,       ## Set to run program in fullscreen
  WindowResizable = 4,      ## Set to allow resizable window
  WindowUndecorated = 8,    ## Set to disable window decoration (frame and buttons)
  WindowTransparent = 16,   ## Set to allow transparent framebuffer
  Msaa4xHint = 32,          ## Set to try enabling MSAA 4X
  VsyncHint = 64,           ## Set to try enabling V-Sync on GPU
  WindowHidden = 128,       ## Set to hide window
  WindowAlwaysRun = 256,    ## Set to allow windows running while minimized
  WindowMinimized = 512,    ## Set to minimize window (iconify)
  WindowMaximized = 1024,   ## Set to maximize window (expanded to monitor)
  WindowUnfocused = 2048,   ## Set to window non focused
  WindowTopmost = 4096,     ## Set to window always on top
  WindowHighdpi = 8192,     ## Set to support HighDPI
  WindowMousePassthrough = 16384, ## Set to support mouse passthrough, only supported when FLAG_WINDOW_UNDECORATED
  BorderlessWindowedMode = 32768, ## Set to run program in borderless windowed mode
  InterlacedHint = 65536     ## Set to try enabling interlaced video format (for V3D)
System/Window config flags Source   Edit  
CubemapLayout {.size: 4.} = enum
  AutoDetect,               ## Automatically detect layout type
  LineVertical,             ## Layout is defined by a vertical line with faces
  LineHorizontal,           ## Layout is defined by a horizontal line with faces
  CrossThreeByFour,         ## Layout is defined by a 3x4 cross with cubemap faces
  CrossFourByThree,         ## Layout is defined by a 4x3 cross with cubemap faces
  Panorama                   ## Layout is defined by a panorama image (equirrectangular map)
Cubemap layouts Source   Edit  
Flags[E] = distinct uint32
Source   Edit  
Font {.importc, header: "raylib.h", bycopy.} = object
  baseSize*: int32           ## Base size (default chars height)
  ## Number of glyph characters
  glyphPadding*: int32       ## Padding around the glyph characters
  texture*: Texture2D        ## Texture atlas containing the glyphs
  ## Rectangles in texture for the glyphs
  ## Glyphs info data
Font, font texture and GlyphInfo array data Source   Edit  
FontGlyphs = distinct Font
Source   Edit  
FontRecs = distinct Font
Source   Edit  
FontType {.size: 4.} = enum
  Default,                  ## Default font generation, anti-aliased
  Bitmap,                   ## Bitmap font generation, no anti-aliasing
  Sdf                        ## SDF font generation, requires external shader
Font type, defines generation method Source   Edit  
GamepadAxis {.size: 4.} = enum
  LeftX,                    ## Gamepad left stick X axis
  LeftY,                    ## Gamepad left stick Y axis
  RightX,                   ## Gamepad right stick X axis
  RightY,                   ## Gamepad right stick Y axis
  LeftTrigger,              ## Gamepad back trigger left, pressure level: [1..-1]
  RightTrigger               ## Gamepad back trigger right, pressure level: [1..-1]
Gamepad axis Source   Edit  
GamepadButton {.size: 4.} = enum
  Unknown,                  ## Unknown button, just for error checking
  LeftFaceUp,               ## Gamepad left DPAD up button
  LeftFaceRight,            ## Gamepad left DPAD right button
  LeftFaceDown,             ## Gamepad left DPAD down button
  LeftFaceLeft,             ## Gamepad left DPAD left button
  RightFaceUp,              ## Gamepad right button up (i.e. PS3: Triangle, Xbox: Y)
  RightFaceRight,           ## Gamepad right button right (i.e. PS3: Circle, Xbox: B)
  RightFaceDown,            ## Gamepad right button down (i.e. PS3: Cross, Xbox: A)
  RightFaceLeft,            ## Gamepad right button left (i.e. PS3: Square, Xbox: X)
  LeftTrigger1,             ## Gamepad top/back trigger left (first), it could be a trailing button
  LeftTrigger2,             ## Gamepad top/back trigger left (second), it could be a trailing button
  RightTrigger1,            ## Gamepad top/back trigger right (one), it could be a trailing button
  RightTrigger2,            ## Gamepad top/back trigger right (second), it could be a trailing button
  MiddleLeft,               ## Gamepad center buttons, left one (i.e. PS3: Select)
  Middle,                   ## Gamepad center buttons, middle one (i.e. PS3: PS, Xbox: XBOX)
  MiddleRight,              ## Gamepad center buttons, right one (i.e. PS3: Start)
  LeftThumb,                ## Gamepad joystick pressed button left
  RightThumb                 ## Gamepad joystick pressed button right
Gamepad buttons Source   Edit  
Gesture {.size: 4.} = enum
  None,                     ## No gesture
  Tap,                      ## Tap gesture
  Doubletap,                ## Double tap gesture
  Hold = 4,                 ## Hold gesture
  Drag = 8,                 ## Drag gesture
  SwipeRight = 16,          ## Swipe right gesture
  SwipeLeft = 32,           ## Swipe left gesture
  SwipeUp = 64,             ## Swipe up gesture
  SwipeDown = 128,          ## Swipe down gesture
  PinchIn = 256,            ## Pinch in gesture
  PinchOut = 512             ## Pinch out gesture
Gesture Source   Edit  
GlyphInfo {.importc, header: "raylib.h", bycopy.} = object
  value*: int32              ## Character value (Unicode)
  offsetX*: int32            ## Character offset X when drawing
  offsetY*: int32            ## Character offset Y when drawing
  advanceX*: int32           ## Character advance position X
  image*: Image              ## Character image data
GlyphInfo, font characters glyphs info Source   Edit  
Image {.importc, header: "raylib.h", bycopy.} = object
  data*: pointer             ## Image raw data
  width*: int32              ## Image base width
  height*: int32             ## Image base height
  mipmaps*: int32            ## Mipmap levels, 1 by default
  format*: PixelFormat       ## Data format (PixelFormat type)
Image, pixel data stored in CPU memory (RAM) Source   Edit  
KeyboardKey {.size: 4.} = enum
  Null,                     ## Key: NULL, used for no key pressed
  Back = 4,                 ## Key: Android back button
  Menu,                     ## Key: Android menu button
  VolumeUp = 24,            ## Key: Android volume up button
  VolumeDown,               ## Key: Android volume down button
  Space = 32,               ## Key: Space
  Apostrophe = 39,          ## Key: '
  Comma = 44,               ## Key: ,
  Minus,                    ## Key: -
  Period,                   ## Key: .
  Slash,                    ## Key: /
  Zero,                     ## Key: 0
  One,                      ## Key: 1
  Two,                      ## Key: 2
  Three,                    ## Key: 3
  Four,                     ## Key: 4
  Five,                     ## Key: 5
  Six,                      ## Key: 6
  Seven,                    ## Key: 7
  Eight,                    ## Key: 8
  Nine,                     ## Key: 9
  Semicolon = 59,           ## Key: ;
  Equal = 61,               ## Key: =
  A = 65,                   ## Key: A | a
  B,                        ## Key: B | b
  C,                        ## Key: C | c
  D,                        ## Key: D | d
  E,                        ## Key: E | e
  F,                        ## Key: F | f
  G,                        ## Key: G | g
  H,                        ## Key: H | h
  I,                        ## Key: I | i
  J,                        ## Key: J | j
  K,                        ## Key: K | k
  L,                        ## Key: L | l
  M,                        ## Key: M | m
  N,                        ## Key: N | n
  O,                        ## Key: O | o
  P,                        ## Key: P | p
  Q,                        ## Key: Q | q
  R,                        ## Key: R | r
  S,                        ## Key: S | s
  T,                        ## Key: T | t
  U,                        ## Key: U | u
  V,                        ## Key: V | v
  W,                        ## Key: W | w
  X,                        ## Key: X | x
  Y,                        ## Key: Y | y
  Z,                        ## Key: Z | z
  LeftBracket,              ## Key: [
  Backslash,                ## Key: '\'
  RightBracket,             ## Key: ]
  Grave = 96,               ## Key: `
  Escape = 256,             ## Key: Esc
  Enter,                    ## Key: Enter
  Tab,                      ## Key: Tab
  Backspace,                ## Key: Backspace
  Insert,                   ## Key: Ins
  Delete,                   ## Key: Del
  Right,                    ## Key: Cursor right
  Left,                     ## Key: Cursor left
  Down,                     ## Key: Cursor down
  Up,                       ## Key: Cursor up
  PageUp,                   ## Key: Page up
  PageDown,                 ## Key: Page down
  Home,                     ## Key: Home
  End,                      ## Key: End
  CapsLock = 280,           ## Key: Caps lock
  ScrollLock,               ## Key: Scroll down
  NumLock,                  ## Key: Num lock
  PrintScreen,              ## Key: Print screen
  Pause,                    ## Key: Pause
  F1 = 290,                 ## Key: F1
  F2,                       ## Key: F2
  F3,                       ## Key: F3
  F4,                       ## Key: F4
  F5,                       ## Key: F5
  F6,                       ## Key: F6
  F7,                       ## Key: F7
  F8,                       ## Key: F8
  F9,                       ## Key: F9
  F10,                      ## Key: F10
  F11,                      ## Key: F11
  F12,                      ## Key: F12
  Kp0 = 320,                ## Key: Keypad 0
  Kp1,                      ## Key: Keypad 1
  Kp2,                      ## Key: Keypad 2
  Kp3,                      ## Key: Keypad 3
  Kp4,                      ## Key: Keypad 4
  Kp5,                      ## Key: Keypad 5
  Kp6,                      ## Key: Keypad 6
  Kp7,                      ## Key: Keypad 7
  Kp8,                      ## Key: Keypad 8
  Kp9,                      ## Key: Keypad 9
  KpDecimal,                ## Key: Keypad .
  KpDivide,                 ## Key: Keypad /
  KpMultiply,               ## Key: Keypad *
  KpSubtract,               ## Key: Keypad -
  KpAdd,                    ## Key: Keypad +
  KpEnter,                  ## Key: Keypad Enter
  KpEqual,                  ## Key: Keypad =
  LeftShift = 340,          ## Key: Shift left
  LeftControl,              ## Key: Control left
  LeftAlt,                  ## Key: Alt left
  LeftSuper,                ## Key: Super left
  RightShift,               ## Key: Shift right
  RightControl,             ## Key: Control right
  RightAlt,                 ## Key: Alt right
  RightSuper,               ## Key: Super right
  KbMenu                     ## Key: KB menu
Keyboard keys (US keyboard layout) Source   Edit  
LoadFileDataCallback = proc (fileName: cstring; bytesRead: ptr uint32): ptr UncheckedArray[
    uint8] {.cdecl.}
FileIO: Load binary data Source   Edit  
LoadFileTextCallback = proc (fileName: cstring): cstring {.cdecl.}
FileIO: Load text data Source   Edit  
Material {.importc, header: "raylib.h", bycopy.} = object
  ## Material shader
  ## Material maps array (MAX_MATERIAL_MAPS)
  params*: array[4, float32] ## Material generic parameters (if required)
Material, includes shader and maps Source   Edit  
MaterialMap {.importc, header: "raylib.h", bycopy.} = object
  ## Material map texture
  color*: Color              ## Material map color
  value*: float32            ## Material map value
MaterialMap Source   Edit  
MaterialMapIndex {.size: 4.} = enum
  Albedo,                   ## 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 Source   Edit  
MaterialMaps = distinct Material
Source   Edit  
MaterialMapsPtr = distinct typeof(Material.maps)
Source   Edit  
Matrix {.importc, header: "raylib.h", bycopy.} = object
  m0*, m4*, m8*, m12*: float32 ## Matrix first row (4 components)
  m1*, m5*, m9*, m13*: float32 ## Matrix second row (4 components)
  m2*, m6*, m10*, m14*: float32 ## Matrix third row (4 components)
  m3*, m7*, m11*, m15*: float32 ## Matrix fourth row (4 components)
Matrix, 4x4 components, column major, OpenGL style, right-handed Source   Edit  
Mesh {.importc, header: "raylib.h", bycopy.} = object
  ## Number of vertices stored in arrays
  ## Number of triangles stored (indexed or not)
  ## Vertex position (XYZ - 3 components per vertex) (shader-location = 0)
  ## Vertex texture coordinates (UV - 2 components per vertex) (shader-location = 1)
  ## Vertex texture second coordinates (UV - 2 components per vertex) (shader-location = 5)
  ## Vertex normals (XYZ - 3 components per vertex) (shader-location = 2)
  ## Vertex tangents (XYZW - 4 components per vertex) (shader-location = 4)
  ## Vertex colors (RGBA - 4 components per vertex) (shader-location = 3)
  ## Vertex indices (in case vertex data comes indexed)
  ## Animated vertex positions (after bones transformations)
  ## Animated normals (after bones transformations)
  ## Vertex bone ids, max 255 bone ids, up to 4 bones influence by vertex (skinning)
  ## Vertex bone weight, up to 4 bones influence by vertex (skinning)
  vaoId*: uint32             ## OpenGL Vertex Array Object id
  ## OpenGL Vertex Buffer Objects id (default vertex data)
Mesh, vertex data and vao/vbo Source   Edit  
MeshAnimNormals = distinct Mesh
Source   Edit  
MeshAnimVertices = distinct Mesh
Source   Edit  
MeshBoneIds = distinct Mesh
Source   Edit  
MeshBoneWeights = distinct Mesh
Source   Edit  
MeshColors = distinct Mesh
Source   Edit  
MeshIndices = distinct Mesh
Source   Edit  
MeshNormals = distinct Mesh
Source   Edit  
MeshTangents = distinct Mesh
Source   Edit  
MeshTexcoords = distinct Mesh
Source   Edit  
MeshTexcoords2 = distinct Mesh
Source   Edit  
MeshVboId = distinct Mesh
Source   Edit  
MeshVertices = distinct Mesh
Source   Edit  
Model {.importc, header: "raylib.h", bycopy.} = object
  transform*: Matrix         ## Local transform matrix
  ## Number of meshes
  ## Number of materials
  ## Meshes array
  ## Materials array
  ## Mesh material number
  ## Number of bones
  ## Bones information (skeleton)
  ## Bones base transformation (pose)
Model, meshes, materials and animation data Source   Edit  
ModelAnimation {.importc, header: "raylib.h", bycopy.} = object
  ## Number of bones
  ## Number of animation frames
  ## Bones information (skeleton)
  ## Poses array by frame
  name*: array[32, char]     ## Animation name
ModelAnimation Source   Edit  
ModelBindPose = distinct Model
Source   Edit  
ModelBones = distinct Model
Source   Edit  
ModelMaterials = distinct Model
Source   Edit  
ModelMeshes = distinct Model
Source   Edit  
ModelMeshMaterial = distinct Model
Source   Edit  
MouseButton {.size: 4.} = enum
  Left,                     ## Mouse button left
  Right,                    ## Mouse button right
  Middle,                   ## Mouse button middle (pressed wheel)
  Side,                     ## Mouse button side (advanced mouse device)
  Extra,                    ## Mouse button extra (advanced mouse device)
  Forward,                  ## Mouse button forward (advanced mouse device)
  Back                       ## Mouse button back (advanced mouse device)
Mouse buttons Source   Edit  
MouseCursor {.size: 4.} = enum
  Default,                  ## Default pointer shape
  Arrow,                    ## Arrow shape
  Ibeam,                    ## Text writing cursor shape
  Crosshair,                ## Cross shape
  PointingHand,             ## Pointing hand cursor
  ResizeEw,                 ## Horizontal resize/move arrow shape
  ResizeNs,                 ## Vertical resize/move arrow shape
  ResizeNwse,               ## Top-left to bottom-right diagonal resize/move arrow shape
  ResizeNesw,               ## The top-right to bottom-left diagonal resize/move arrow shape
  ResizeAll,                ## The omnidirectional resize/move cursor shape
  NotAllowed                 ## The operation-not-allowed shape
Mouse cursor Source   Edit  
Music {.importc, header: "raylib.h", bycopy.} = object
  stream*: AudioStream       ## Audio stream
  frameCount*: uint32        ## Total number of frames (considering channels)
  looping*: bool             ## Music looping enable
  ctxType*: int32            ## Type of music context (audio filetype)
  ctxData*: pointer          ## Audio context data, depends on type
Music, audio stream, anything longer than ~10 seconds should be streamed Source   Edit  
NPatchInfo {.importc, header: "raylib.h", bycopy.} = object
  source*: Rectangle         ## Texture source rectangle
  left*: int32               ## Left border offset
  top*: int32                ## Top border offset
  right*: int32              ## Right border offset
  bottom*: int32             ## Bottom border offset
  layout*: NPatchLayout      ## Layout of the n-patch: 3x3, 1x3 or 3x1
NPatchInfo, n-patch layout info Source   Edit  
NPatchLayout {.size: 4.} = enum
  NinePatch,                ## Npatch layout: 3x3 tiles
  ThreePatchVertical,       ## Npatch layout: 1x3 tiles
  ThreePatchHorizontal       ## Npatch layout: 3x1 tiles
N-patch layout Source   Edit  
Pixel = concept
    proc kind(x: typedesc[Self]): PixelFormat
Source   Edit  
PixelFormat {.size: 4.} = enum
  UncompressedGrayscale = 1, ## 8 bit per pixel (no alpha)
  UncompressedGrayAlpha,    ## 8*2 bpp (2 channels)
  UncompressedR5g6b5,       ## 16 bpp
  UncompressedR8g8b8,       ## 24 bpp
  UncompressedR5g5b5a1,     ## 16 bpp (1 bit alpha)
  UncompressedR4g4b4a4,     ## 16 bpp (4 bit alpha)
  UncompressedR8g8b8a8,     ## 32 bpp
  UncompressedR32,          ## 32 bpp (1 channel - float)
  UncompressedR32g32b32,    ## 32*3 bpp (3 channels - float)
  UncompressedR32g32b32a32, ## 32*4 bpp (4 channels - float)
  UncompressedR16,          ## 16 bpp (1 channel - half float)
  UncompressedR16g16b16,    ## 16*3 bpp (3 channels - half float)
  UncompressedR16g16b16a16, ## 16*4 bpp (4 channels - half float)
  CompressedDxt1Rgb,        ## 4 bpp (no alpha)
  CompressedDxt1Rgba,       ## 4 bpp (1 bit alpha)
  CompressedDxt3Rgba,       ## 8 bpp
  CompressedDxt5Rgba,       ## 8 bpp
  CompressedEtc1Rgb,        ## 4 bpp
  CompressedEtc2Rgb,        ## 4 bpp
  CompressedEtc2EacRgba,    ## 8 bpp
  CompressedPvrtRgb,        ## 4 bpp
  CompressedPvrtRgba,       ## 4 bpp
  CompressedAstc4x4Rgba,    ## 8 bpp
  CompressedAstc8x8Rgba      ## 2 bpp
Pixel formats Source   Edit  
Quaternion {.borrow: `.`.} = distinct Vector4
Quaternion, 4 components (Vector4 alias) Source   Edit  
RArray[T] = object
Source   Edit  
Ray {.importc, header: "raylib.h", bycopy.} = object
  position*: Vector3         ## Ray position (origin)
  direction*: Vector3        ## Ray direction
Ray, ray for raycasting Source   Edit  
RayCollision {.importc, header: "raylib.h", bycopy.} = object
  hit*: bool                 ## Did the ray hit something?
  distance*: float32         ## Distance to the nearest hit
  point*: Vector3            ## Point of the nearest hit
  normal*: Vector3           ## Surface normal of hit
RayCollision, ray hit information Source   Edit  
RaylibError = object of CatchableError
Source   Edit  
Rectangle {.importc: "rlRectangle", header: "raylib.h", bycopy.} = object
  x*: float32                ## Rectangle top-left corner position x
  y*: float32                ## Rectangle top-left corner position y
  width*: float32            ## Rectangle width
  height*: float32           ## Rectangle height
Rectangle, 4 components Source   Edit  
RenderTexture {.importc, header: "raylib.h", bycopy.} = object
  id*: uint32                ## OpenGL framebuffer object id
  texture*: Texture          ## Color buffer attachment texture
  depth*: Texture            ## Depth buffer attachment texture
RenderTexture, fbo for texture rendering Source   Edit  
RenderTexture2D = RenderTexture
RenderTexture2D, same as RenderTexture Source   Edit  
SaveFileDataCallback = proc (fileName: cstring; data: pointer;
                             bytesToWrite: uint32): bool {.cdecl.}
FileIO: Save binary data Source   Edit  
SaveFileTextCallback = proc (fileName: cstring; text: cstring): bool {.cdecl.}
FileIO: Save text data Source   Edit  
Shader {.importc, header: "raylib.h", bycopy.} = object
  id*: uint32                ## Shader program id
  ## Shader locations array (RL_MAX_SHADER_LOCATIONS)
Shader Source   Edit  
ShaderAttributeDataType {.size: 4.} = enum
  Float,                    ## 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 Source   Edit  
ShaderLocation = distinct int32
Shader location Source   Edit  
ShaderLocationIndex {.size: 4.} = enum
  VertexPosition,           ## Shader location: vertex attribute: position
  VertexTexcoord01,         ## Shader location: vertex attribute: texcoord01
  VertexTexcoord02,         ## Shader location: vertex attribute: texcoord02
  VertexNormal,             ## Shader location: vertex attribute: normal
  VertexTangent,            ## Shader location: vertex attribute: tangent
  VertexColor,              ## Shader location: vertex attribute: color
  MatrixMvp,                ## Shader location: matrix uniform: model-view-projection
  MatrixView,               ## Shader location: matrix uniform: view (camera transform)
  MatrixProjection,         ## Shader location: matrix uniform: projection
  MatrixModel,              ## Shader location: matrix uniform: model (transform)
  MatrixNormal,             ## Shader location: matrix uniform: normal
  VectorView,               ## Shader location: vector uniform: view
  ColorDiffuse,             ## Shader location: vector uniform: diffuse color
  ColorSpecular,            ## Shader location: vector uniform: specular color
  ColorAmbient,             ## Shader location: vector uniform: ambient color
  MapAlbedo,                ## Shader location: sampler2d texture: albedo (same as: SHADER_LOC_MAP_DIFFUSE)
  MapMetalness,             ## Shader location: sampler2d texture: metalness (same as: SHADER_LOC_MAP_SPECULAR)
  MapNormal,                ## Shader location: sampler2d texture: normal
  MapRoughness,             ## Shader location: sampler2d texture: roughness
  MapOcclusion,             ## Shader location: sampler2d texture: occlusion
  MapEmission,              ## Shader location: sampler2d texture: emission
  MapHeight,                ## Shader location: sampler2d texture: height
  MapCubemap,               ## Shader location: samplerCube texture: cubemap
  MapIrradiance,            ## Shader location: samplerCube texture: irradiance
  MapPrefilter,             ## Shader location: samplerCube texture: prefilter
  MapBrdf                    ## Shader location: sampler2d texture: brdf
Shader location index Source   Edit  
ShaderLocs = distinct Shader
Source   Edit  
ShaderLocsPtr = distinct typeof(Shader.locs)
Source   Edit  
ShaderUniformDataType {.size: 4.} = enum
  Float,                    ## 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 Source   Edit  
ShaderV = concept
    proc kind(x: typedesc[Self]): ShaderUniformDataType
Source   Edit  
Sound {.importc, header: "raylib.h", bycopy.} = object
  stream*: AudioStream       ## Audio stream
  frameCount*: uint32        ## Total number of frames (considering channels)
Sound Source   Edit  
SoundAlias = distinct Sound
Source   Edit  
Texture {.importc, header: "raylib.h", bycopy.} = object
  id*: uint32                ## OpenGL texture id
  width*: int32              ## Texture base width
  height*: int32             ## Texture base height
  mipmaps*: int32            ## Mipmap levels, 1 by default
  format*: PixelFormat       ## Data format (PixelFormat type)
Texture, tex data stored in GPU memory (VRAM) Source   Edit  
Texture2D = Texture
Texture2D, same as Texture Source   Edit  
TextureCubemap = Texture
TextureCubemap, same as Texture Source   Edit  
TextureFilter {.size: 4.} = enum
  Point,                    ## No filter, just pixel approximation
  Bilinear,                 ## Linear filtering
  Trilinear,                ## Trilinear filtering (linear with mipmaps)
  Anisotropic4x,            ## Anisotropic filtering 4x
  Anisotropic8x,            ## Anisotropic filtering 8x
  Anisotropic16x             ## Anisotropic filtering 16x
Texture parameters: filter mode Source   Edit  
TextureWrap {.size: 4.} = enum
  Repeat,                   ## Repeats texture in tiled mode
  Clamp,                    ## Clamps texture to edge pixel in tiled mode
  MirrorRepeat,             ## Mirrors and repeats the texture in tiled mode
  MirrorClamp                ## Mirrors and clamps to border the texture in tiled mode
Texture parameters: wrap mode Source   Edit  
TraceLogCallback = proc (logLevel: TraceLogLevel; text: string) {.nimcall.}
Logging: Redirect trace log messages Source   Edit  
TraceLogLevel {.size: 4.} = enum
  All,                      ## 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 Source   Edit  
Transform {.importc, header: "raylib.h", bycopy.} = object
  translation*: Vector3      ## Translation
  rotation*: Quaternion      ## Rotation
  scale*: Vector3            ## Scale
Transform, vertex transformation data Source   Edit  
Vector2 {.importc, header: "raylib.h", completeStruct, bycopy.} = object
  x*: float32                ## Vector x component
  y*: float32                ## Vector y component
Vector2, 2 components Source   Edit  
Vector3 {.importc, header: "raylib.h", completeStruct, bycopy.} = object
  x*: float32                ## Vector x component
  y*: float32                ## Vector y component
  z*: float32                ## Vector z component
Vector3, 3 components Source   Edit  
Vector4 {.importc, header: "raylib.h", completeStruct, bycopy.} = object
  x*: float32                ## Vector x component
  y*: float32                ## Vector y component
  z*: float32                ## Vector z component
  w*: float32                ## Vector w component
Vector4, 4 components Source   Edit  
VrDeviceInfo {.importc, header: "raylib.h", bycopy.} = object
  hResolution*: int32        ## Horizontal resolution in pixels
  vResolution*: int32        ## Vertical resolution in pixels
  hScreenSize*: float32      ## Horizontal size in meters
  vScreenSize*: float32      ## Vertical size in meters
  eyeToScreenDistance*: float32 ## Distance between eye and display in meters
  lensSeparationDistance*: float32 ## Lens separation distance in meters
  interpupillaryDistance*: float32 ## IPD (distance between pupils) in meters
  lensDistortionValues*: array[4, float32] ## Lens distortion constant parameters
  chromaAbCorrection*: array[4, float32] ## Chromatic aberration correction parameters
VrDeviceInfo, Head-Mounted-Display device parameters Source   Edit  
VrStereoConfig {.importc, header: "raylib.h", bycopy.} = object
  projection*: array[2, Matrix] ## VR projection matrices (per eye)
  viewOffset*: array[2, Matrix] ## VR view offset matrices (per eye)
  leftLensCenter*: array[2, float32] ## VR left lens center
  rightLensCenter*: array[2, float32] ## VR right lens center
  leftScreenCenter*: array[2, float32] ## VR left screen center
  rightScreenCenter*: array[2, float32] ## VR right screen center
  scale*: array[2, float32]  ## VR distortion scale
  scaleIn*: array[2, float32] ## VR distortion scale in
VrStereoConfig, VR stereo rendering configuration for simulator Source   Edit  
Wave {.importc, header: "raylib.h", bycopy.} = object
  frameCount*: uint32        ## Total number of frames (considering channels)
  sampleRate*: uint32        ## Frequency (samples per second)
  sampleSize*: uint32        ## Bit depth (bits per sample): 8, 16, 32 (24 not supported)
  channels*: uint32          ## Number of channels (1-mono, 2-stereo, ...)
  data*: pointer             ## Buffer data pointer
Wave, audio wave data Source   Edit  
WeakFont = distinct Font
Source   Edit  
WeakImage = distinct Image
Source   Edit  
WeakWave = distinct Wave
Source   Edit  

Consts

Beige = (r: 211'u, g: 176'u, b: 131'u, a: 255'u)
Source   Edit  
Black = (r: 0'u, g: 0'u, b: 0'u, a: 255'u)
Source   Edit  
Blank = (r: 0'u, g: 0'u, b: 0'u, a: 0'u)
Source   Edit  
Blue = (r: 0'u, g: 121'u, b: 241'u, a: 255'u)
Source   Edit  
Brown = (r: 127'u, g: 106'u, b: 79'u, a: 255'u)
Source   Edit  
DarkBlue = (r: 0'u, g: 82'u, b: 172'u, a: 255'u)
Source   Edit  
DarkBrown = (r: 76'u, g: 63'u, b: 47'u, a: 255'u)
Source   Edit  
DarkGray = (r: 80'u, g: 80'u, b: 80'u, a: 255'u)
Source   Edit  
DarkGreen = (r: 0'u, g: 117'u, b: 44'u, a: 255'u)
Source   Edit  
DarkPurple = (r: 112'u, g: 31'u, b: 126'u, a: 255'u)
Source   Edit  
Gold = (r: 255'u, g: 203'u, b: 0'u, a: 255'u)
Source   Edit  
Gray = (r: 130'u, g: 130'u, b: 130'u, a: 255'u)
Source   Edit  
Green = (r: 0'u, g: 228'u, b: 48'u, a: 255'u)
Source   Edit  
LightGray = (r: 200'u, g: 200'u, b: 200'u, a: 255'u)
Source   Edit  
Lime = (r: 0'u, g: 158'u, b: 47'u, a: 255'u)
Source   Edit  
Magenta = (r: 255'u, g: 0'u, b: 255'u, a: 255'u)
Source   Edit  
Maroon = (r: 190'u, g: 33'u, b: 55'u, a: 255'u)
Source   Edit  
MaxMaterialMaps = 12
Maximum number of shader maps supported Source   Edit  
MaxMeshVertexBuffers = 7
Maximum vertex buffers (VBO) per mesh Source   Edit  
MaxShaderLocations = 32
Maximum number of shader locations supported Source   Edit  
Orange = (r: 255'u, g: 161'u, b: 0'u, a: 255'u)
Source   Edit  
Pink = (r: 255'u, g: 109'u, b: 194'u, a: 255'u)
Source   Edit  
Purple = (r: 200'u, g: 122'u, b: 255'u, a: 255'u)
Source   Edit  
RaylibVersion = (5, 1, 0)
Source   Edit  
RayWhite = (r: 245'u, g: 245'u, b: 245'u, a: 255'u)
Source   Edit  
Red = (r: 230'u, g: 41'u, b: 55'u, a: 255'u)
Source   Edit  
SkyBlue = (r: 102'u, g: 191'u, b: 255'u, a: 255'u)
Source   Edit  
Violet = (r: 135'u, g: 60'u, b: 190'u, a: 255'u)
Source   Edit  
White = (r: 255'u, g: 255'u, b: 255'u, a: 255'u)
Source   Edit  
Yellow = (r: 253'u, g: 249'u, b: 0'u, a: 255'u)
Source   Edit  

Procs

proc `=copy`(dest: var AudioStream; source: AudioStream) {.error.}
Source   Edit  
proc `=copy`(dest: var AutomationEventList; source: AutomationEventList) {.error.}
Source   Edit  
proc `=copy`(dest: var Font; source: Font) {.error.}
Source   Edit  
proc `=copy`(dest: var Image; source: Image) {....raises: [], tags: [], forbids: [].}
Source   Edit  
proc `=copy`(dest: var Material; source: Material) {.error.}
Source   Edit  
proc `=copy`(dest: var MaterialMap; source: MaterialMap) {.error.}
Source   Edit  
proc `=copy`(dest: var Mesh; source: Mesh) {.error.}
Source   Edit  
proc `=copy`(dest: var Model; source: Model) {.error.}
Source   Edit  
proc `=copy`(dest: var ModelAnimation; source: ModelAnimation) {.error.}
Source   Edit  
proc `=copy`(dest: var Music; source: Music) {.error.}
Source   Edit  
proc `=copy`(dest: var RenderTexture; source: RenderTexture) {.error.}
Source   Edit  
proc `=copy`(dest: var Shader; source: Shader) {.error.}
Source   Edit  
proc `=copy`(dest: var Sound; source: Sound) {.error.}
Source   Edit  
proc `=copy`(dest: var Texture; source: Texture) {.error.}
Source   Edit  
proc `=copy`(dest: var Wave; source: Wave) {....raises: [], tags: [], forbids: [].}
Source   Edit  
proc `=copy`(dest: var WeakFont; source: WeakFont) {.nodestroy, ...raises: [],
    tags: [], forbids: [].}
Source   Edit  
proc `=copy`(dest: var WeakImage; source: WeakImage) {.nodestroy, ...raises: [],
    tags: [], forbids: [].}
Source   Edit  
proc `=copy`(dest: var WeakWave; source: WeakWave) {.nodestroy, ...raises: [],
    tags: [], forbids: [].}
Source   Edit  
proc `=copy`[T](dest: var RArray[T]; source: RArray[T])
Source   Edit  
proc `=destroy`(x: AudioStream) {....raises: [], tags: [], forbids: [].}
Source   Edit  
proc `=destroy`(x: AutomationEventList) {....raises: [], tags: [], forbids: [].}
Source   Edit  
proc `=destroy`(x: Font) {....raises: [], tags: [], forbids: [].}
Source   Edit  
proc `=destroy`(x: Image) {....raises: [], tags: [], forbids: [].}
Source   Edit  
proc `=destroy`(x: Material) {....raises: [], tags: [], forbids: [].}
Source   Edit  
proc `=destroy`(x: MaterialMap) {....raises: [], tags: [], forbids: [].}
Source   Edit  
proc `=destroy`(x: Mesh) {....raises: [], tags: [], forbids: [].}
Source   Edit  
proc `=destroy`(x: Model) {....raises: [], tags: [], forbids: [].}
Source   Edit  
proc `=destroy`(x: ModelAnimation) {....raises: [], tags: [], forbids: [].}
Source   Edit  
proc `=destroy`(x: Music) {....raises: [], tags: [], forbids: [].}
Source   Edit  
proc `=destroy`(x: RenderTexture) {....raises: [], tags: [], forbids: [].}
Source   Edit  
proc `=destroy`(x: Shader) {....raises: [], tags: [], forbids: [].}
Source   Edit  
proc `=destroy`(x: Sound) {....raises: [], tags: [], forbids: [].}
Source   Edit  
proc `=destroy`(x: SoundAlias) {....raises: [], tags: [], forbids: [].}
Source   Edit  
proc `=destroy`(x: Texture) {....raises: [], tags: [], forbids: [].}
Source   Edit  
proc `=destroy`(x: Wave) {....raises: [], tags: [], forbids: [].}
Source   Edit  
proc `=destroy`(x: WeakFont) {....raises: [], tags: [], forbids: [].}
Source   Edit  
proc `=destroy`(x: WeakImage) {....raises: [], tags: [], forbids: [].}
Source   Edit  
proc `=destroy`(x: WeakWave) {....raises: [], tags: [], forbids: [].}
Source   Edit  
proc `=destroy`[T](x: RArray[T]) {....raises: [].}
Source   Edit  
proc `=dup`(source: AudioStream): AudioStream {.error.}
Source   Edit  
proc `=dup`(source: AutomationEventList): AutomationEventList {.error.}
Source   Edit  
proc `=dup`(source: Font): Font {.error.}
Source   Edit  
proc `=dup`(source: Image): Image {.nodestroy, ...raises: [], tags: [], forbids: [].}
Source   Edit  
proc `=dup`(source: MaterialMap): MaterialMap {.error.}
Source   Edit  
proc `=dup`(source: Mesh): Mesh {.error.}
Source   Edit  
proc `=dup`(source: Model): Model {.error.}
Source   Edit  
proc `=dup`(source: Music): Music {.error.}
Source   Edit  
proc `=dup`(source: RenderTexture): RenderTexture {.error.}
Source   Edit  
proc `=dup`(source: Shader): Shader {.error.}
Source   Edit  
proc `=dup`(source: Sound): Sound {.error.}
Source   Edit  
proc `=dup`(source: Texture): Texture {.error.}
Source   Edit  
proc `=dup`(source: Wave): Wave {.nodestroy, ...raises: [], tags: [], forbids: [].}
Source   Edit  
proc `=dup`(source: WeakFont): WeakFont {.nodestroy, ...raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc `=dup`(source: WeakImage): WeakImage {.nodestroy, ...raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc `=dup`(source: WeakWave): WeakWave {.nodestroy, ...raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc `=dup`[T](source: RArray[T]): RArray[T] {.nodestroy.}
Source   Edit  
proc `=sink`(dest: var MaterialMap; source: MaterialMap) {.error.}
Source   Edit  
proc `=wasMoved`[T](x: var RArray[T])
Source   Edit  
proc `@`[T](x: RArray[T]): seq[T] {.inline.}
Source   Edit  
proc `[]`(x: AutomationEventList; i: int): lent AutomationEvent {....raises: [],
    tags: [], forbids: [].}
Source   Edit  
proc `[]`(x: FontGlyphs; i: int): lent GlyphInfo {....raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc `[]`(x: FontRecs; i: int): Rectangle {....raises: [], tags: [], forbids: [].}
Source   Edit  
proc `[]`(x: MaterialMaps; i: MaterialMapIndex): lent MaterialMap {....raises: [],
    tags: [], forbids: [].}
Source   Edit  
proc `[]`(x: MeshAnimNormals; i: int): Vector3 {....raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc `[]`(x: MeshAnimVertices; i: int): Vector3 {....raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc `[]`(x: MeshBoneIds; i: int): array[4, uint8] {....raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc `[]`(x: MeshBoneWeights; i: int): Vector4 {....raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc `[]`(x: MeshColors; i: int): Color {....raises: [], tags: [], forbids: [].}
Source   Edit  
proc `[]`(x: MeshIndices; i: int): array[3, uint16] {....raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc `[]`(x: MeshNormals; i: int): Vector3 {....raises: [], tags: [], forbids: [].}
Source   Edit  
proc `[]`(x: MeshTangents; i: int): Vector4 {....raises: [], tags: [], forbids: [].}
Source   Edit  
proc `[]`(x: MeshTexcoords2; i: int): Vector2 {....raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc `[]`(x: MeshTexcoords; i: int): Vector2 {....raises: [], tags: [], forbids: [].}
Source   Edit  
proc `[]`(x: MeshVboId; i: int): uint32 {....raises: [], tags: [], forbids: [].}
Source   Edit  
proc `[]`(x: MeshVertices; i: int): Vector3 {....raises: [], tags: [], forbids: [].}
Source   Edit  
proc `[]`(x: ModelAnimationBones; i: int): lent BoneInfo {....raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc `[]`(x: ModelAnimationFramePoses; i, j: int): lent Transform {....raises: [],
    tags: [], forbids: [].}
Source   Edit  
proc `[]`(x: ModelBindPose; i: int): lent Transform {....raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc `[]`(x: ModelBones; i: int): lent BoneInfo {....raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc `[]`(x: ModelMaterials; i: int): lent Material {....raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc `[]`(x: ModelMeshes; i: int): lent Mesh {....raises: [], tags: [], forbids: [].}
Source   Edit  
proc `[]`(x: ModelMeshMaterial; i: int): int32 {....raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc `[]`(x: ShaderLocs; i: ShaderLocationIndex): ShaderLocation {....raises: [],
    tags: [], forbids: [].}
Source   Edit  
proc `[]`(x: var AutomationEventList; i: int): var AutomationEvent {....raises: [],
    tags: [], forbids: [].}
Source   Edit  
proc `[]`(x: var FontGlyphs; i: int): var GlyphInfo {....raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc `[]`(x: var FontRecs; i: int): var Rectangle {....raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc `[]`(x: var MaterialMaps; i: MaterialMapIndex): var MaterialMap {.
    ...raises: [], tags: [], forbids: [].}
Source   Edit  
proc `[]`(x: var MeshAnimNormals; i: int): var Vector3 {....raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc `[]`(x: var MeshAnimVertices; i: int): var Vector3 {....raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc `[]`(x: var MeshBoneIds; i: int): var array[4, uint8] {....raises: [],
    tags: [], forbids: [].}
Source   Edit  
proc `[]`(x: var MeshBoneWeights; i: int): var Vector4 {....raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc `[]`(x: var MeshColors; i: int): var Color {....raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc `[]`(x: var MeshIndices; i: int): var array[3, uint16] {....raises: [],
    tags: [], forbids: [].}
Source   Edit  
proc `[]`(x: var MeshNormals; i: int): var Vector3 {....raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc `[]`(x: var MeshTangents; i: int): var Vector4 {....raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc `[]`(x: var MeshTexcoords2; i: int): var Vector2 {....raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc `[]`(x: var MeshTexcoords; i: int): var Vector2 {....raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc `[]`(x: var MeshVboId; i: int): var uint32 {....raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc `[]`(x: var MeshVertices; i: int): var Vector3 {....raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc `[]`(x: var ModelAnimationBones; i: int): var BoneInfo {....raises: [],
    tags: [], forbids: [].}
Source   Edit  
proc `[]`(x: var ModelAnimationFramePoses; i, j: int): var Transform {.
    ...raises: [], tags: [], forbids: [].}
Source   Edit  
proc `[]`(x: var ModelBindPose; i: int): var Transform {....raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc `[]`(x: var ModelBones; i: int): var BoneInfo {....raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc `[]`(x: var ModelMaterials; i: int): var Material {....raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc `[]`(x: var ModelMeshes; i: int): var Mesh {....raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc `[]`(x: var ModelMeshMaterial; i: int): var int32 {....raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc `[]`(x: var ShaderLocs; i: ShaderLocationIndex): var ShaderLocation {.
    ...raises: [], tags: [], forbids: [].}
Source   Edit  
proc `[]`[T](x: RArray[T]; i: int): lent T
Source   Edit  
proc `[]`[T](x: var RArray[T]; i: int): var T
Source   Edit  
proc `[]=`(x: var AutomationEventList; i: int; val: sink AutomationEvent) {.
    ...raises: [], tags: [], forbids: [].}
Source   Edit  
proc `[]=`(x: var FontGlyphs; i: int; val: GlyphInfo) {....raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc `[]=`(x: var FontRecs; i: int; val: Rectangle) {....raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc `[]=`(x: var MaterialMaps; i: MaterialMapIndex; val: MaterialMap) {.
    ...raises: [], tags: [], forbids: [].}
Source   Edit  
proc `[]=`(x: var MeshAnimNormals; i: int; val: Vector3) {....raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc `[]=`(x: var MeshAnimVertices; i: int; val: Vector3) {....raises: [],
    tags: [], forbids: [].}
Source   Edit  
proc `[]=`(x: var MeshBoneIds; i: int; val: array[4, uint8]) {....raises: [],
    tags: [], forbids: [].}
Source   Edit  
proc `[]=`(x: var MeshBoneWeights; i: int; val: Vector4) {....raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc `[]=`(x: var MeshColors; i: int; val: Color) {....raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc `[]=`(x: var MeshIndices; i: int; val: array[3, uint16]) {....raises: [],
    tags: [], forbids: [].}
Source   Edit  
proc `[]=`(x: var MeshNormals; i: int; val: Vector3) {....raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc `[]=`(x: var MeshTangents; i: int; val: Vector4) {....raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc `[]=`(x: var MeshTexcoords2; i: int; val: Vector2) {....raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc `[]=`(x: var MeshTexcoords; i: int; val: Vector2) {....raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc `[]=`(x: var MeshVboId; i: int; val: uint32) {....raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc `[]=`(x: var MeshVertices; i: int; val: Vector3) {....raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc `[]=`(x: var ModelAnimationBones; i: int; val: BoneInfo) {....raises: [],
    tags: [], forbids: [].}
Source   Edit  
proc `[]=`(x: var ModelAnimationFramePoses; i, j: int; val: Transform) {.
    ...raises: [], tags: [], forbids: [].}
Source   Edit  
proc `[]=`(x: var ModelBindPose; i: int; val: Transform) {....raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc `[]=`(x: var ModelBones; i: int; val: BoneInfo) {....raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc `[]=`(x: var ModelMaterials; i: int; val: Material) {....raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc `[]=`(x: var ModelMeshes; i: int; val: Mesh) {....raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc `[]=`(x: var ModelMeshMaterial; i: int; val: int32) {....raises: [], tags: [],
    forbids: [].}
Set the material for a mesh Source   Edit  
proc `[]=`(x: var ShaderLocs; i: ShaderLocationIndex; val: ShaderLocation) {.
    ...raises: [], tags: [], forbids: [].}
Source   Edit  
proc `[]=`[T](x: var RArray[T]; i: int; val: sink T)
Source   Edit  
proc attachAudioMixedProcessor(processor: AudioCallback) {.
    importc: "AttachAudioMixedProcessor", header: "raylib.h", ...raises: [],
    tags: [], forbids: [].}
Attach audio stream processor to the entire audio pipeline, receives the samples as 'float' Source   Edit  
proc attachAudioStreamProcessor(stream: AudioStream; processor: AudioCallback) {.
    importc: "AttachAudioStreamProcessor", header: "raylib.h", ...raises: [],
    tags: [], forbids: [].}
Attach audio stream processor to stream, receives the samples as 'float' Source   Edit  
proc beginBlendMode(mode: BlendMode) {.importc: "BeginBlendMode",
                                       header: "raylib.h", ...raises: [], tags: [],
                                       forbids: [].}
Begin blending mode (alpha, additive, multiplied, subtract, custom) Source   Edit  
proc beginDrawing() {.importc: "BeginDrawing", header: "raylib.h", ...raises: [],
                      tags: [], forbids: [].}
Setup canvas (framebuffer) to start drawing Source   Edit  
proc beginMode2D(camera: Camera2D) {.importc: "BeginMode2D", header: "raylib.h",
                                     ...raises: [], tags: [], forbids: [].}
Begin 2D mode with custom camera (2D) Source   Edit  
proc beginMode3D(camera: Camera3D) {.importc: "BeginMode3D", header: "raylib.h",
                                     ...raises: [], tags: [], forbids: [].}
Begin 3D mode with custom camera (3D) Source   Edit  
proc beginScissorMode(x: int32; y: int32; width: int32; height: int32) {.
    importc: "BeginScissorMode", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Begin scissor mode (define screen area for following drawing) Source   Edit  
proc beginShaderMode(shader: Shader) {.importc: "BeginShaderMode",
                                       header: "raylib.h", ...raises: [], tags: [],
                                       forbids: [].}
Begin custom shader drawing Source   Edit  
proc beginTextureMode(target: RenderTexture2D) {.importc: "BeginTextureMode",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Begin drawing to render texture Source   Edit  
proc beginVrStereoMode(config: VrStereoConfig) {.importc: "BeginVrStereoMode",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Begin stereo rendering (requires VR simulator) Source   Edit  
proc boneCount(x: Model): int32 {.inline, ...raises: [], tags: [], forbids: [].}
Source   Edit  
proc boneCount(x: ModelAnimation): int32 {.inline, ...raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc capacity(x: AutomationEventList): int {.inline, ...raises: [], tags: [],
    forbids: [].}
Source   Edit  
func checkCollisionBoxes(box1: BoundingBox; box2: BoundingBox): bool {.
    importc: "CheckCollisionBoxes", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Check collision between two bounding boxes Source   Edit  
func checkCollisionBoxSphere(box: BoundingBox; center: Vector3; radius: float32): bool {.
    importc: "CheckCollisionBoxSphere", header: "raylib.h", ...raises: [],
    tags: [], forbids: [].}
Check collision between box and sphere Source   Edit  
func checkCollisionCircleRec(center: Vector2; radius: float32; rec: Rectangle): bool {.
    importc: "CheckCollisionCircleRec", header: "raylib.h", ...raises: [],
    tags: [], forbids: [].}
Check collision between circle and rectangle Source   Edit  
func checkCollisionCircles(center1: Vector2; radius1: float32; center2: Vector2;
                           radius2: float32): bool {.
    importc: "CheckCollisionCircles", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Check collision between two circles Source   Edit  
func checkCollisionLines(startPos1: Vector2; endPos1: Vector2;
                         startPos2: Vector2; endPos2: Vector2;
                         collisionPoint: out Vector2): bool {.
    importc: "CheckCollisionLines", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Check the collision between two lines defined by two points each, returns collision point by reference Source   Edit  
func checkCollisionPointCircle(point: Vector2; center: Vector2; radius: float32): bool {.
    importc: "CheckCollisionPointCircle", header: "raylib.h", ...raises: [],
    tags: [], forbids: [].}
Check if point is inside circle Source   Edit  
func checkCollisionPointLine(point: Vector2; p1: Vector2; p2: Vector2;
                             threshold: int32): bool {.
    importc: "CheckCollisionPointLine", header: "raylib.h", ...raises: [],
    tags: [], forbids: [].}
Check if point belongs to line created between two points p1 and p2 with defined margin in pixels threshold Source   Edit  
proc checkCollisionPointPoly(point: Vector2; points: openArray[Vector2]): bool {.
    ...raises: [], tags: [], forbids: [].}
Source   Edit  
func checkCollisionPointRec(point: Vector2; rec: Rectangle): bool {.
    importc: "CheckCollisionPointRec", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Check if point is inside rectangle Source   Edit  
func checkCollisionPointTriangle(point: Vector2; p1: Vector2; p2: Vector2;
                                 p3: Vector2): bool {.
    importc: "CheckCollisionPointTriangle", header: "raylib.h", ...raises: [],
    tags: [], forbids: [].}
Check if point is inside a triangle Source   Edit  
func checkCollisionRecs(rec1: Rectangle; rec2: Rectangle): bool {.
    importc: "CheckCollisionRecs", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Check collision between two rectangles Source   Edit  
func checkCollisionSpheres(center1: Vector3; radius1: float32; center2: Vector3;
                           radius2: float32): bool {.
    importc: "CheckCollisionSpheres", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Check collision between two spheres Source   Edit  
proc clearBackground(color: Color) {.importc: "ClearBackground",
                                     header: "raylib.h", ...raises: [], tags: [],
                                     forbids: [].}
Set background color (framebuffer clear color) Source   Edit  
proc clearWindowState(flags: Flags[ConfigFlags]) {.importc: "ClearWindowState",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Clear window configuration state flags Source   Edit  
proc closeAudioDevice() {.importc: "CloseAudioDevice", header: "raylib.h",
                          ...raises: [], tags: [], forbids: [].}
Close the audio device and context Source   Edit  
proc closeWindow() {.importc: "rlCloseWindow", header: "raylib.h", ...raises: [],
                     tags: [], forbids: [].}
Close window and unload OpenGL context Source   Edit  
func colorAlpha(color: Color; alpha: float32): Color {.importc: "ColorAlpha",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Get color with alpha applied, alpha goes from 0.0f to 1.0f Source   Edit  
func colorAlphaBlend(dst: Color; src: Color; tint: Color): Color {.
    importc: "ColorAlphaBlend", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Get src alpha-blended into dst color with tint Source   Edit  
func colorBrightness(color: Color; factor: float32): Color {.
    importc: "ColorBrightness", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Get color with brightness correction, brightness factor goes from -1.0f to 1.0f Source   Edit  
func colorContrast(color: Color; contrast: float32): Color {.
    importc: "ColorContrast", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Get color with contrast correction, contrast values between -1.0f and 1.0f Source   Edit  
func colorFromHSV(hue: float32; saturation: float32; value: float32): Color {.
    importc: "ColorFromHSV", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Get a Color from HSV values, hue 0..360, saturation/value 0..1 Source   Edit  
func colorFromNormalized(normalized: Vector4): Color {.
    importc: "ColorFromNormalized", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Get Color from normalized values 0..1 Source   Edit  
func colorNormalize(color: Color): Vector4 {.importc: "ColorNormalize",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Get Color normalized as float 0..1 Source   Edit  
func colorTint(color: Color; tint: Color): Color {.importc: "ColorTint",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Get color multiplied with another color Source   Edit  
func colorToHSV(color: Color): Vector3 {.importc: "ColorToHSV",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Get HSV values for a Color, hue 0..360, saturation/value 0..1 Source   Edit  
proc colorToInt(color: Color): int32 {....raises: [], tags: [], forbids: [].}
Get hexadecimal value for a Color Source   Edit  
proc detachAudioMixedProcessor(processor: AudioCallback) {.
    importc: "DetachAudioMixedProcessor", header: "raylib.h", ...raises: [],
    tags: [], forbids: [].}
Detach audio stream processor from the entire audio pipeline Source   Edit  
proc detachAudioStreamProcessor(stream: AudioStream; processor: AudioCallback) {.
    importc: "DetachAudioStreamProcessor", header: "raylib.h", ...raises: [],
    tags: [], forbids: [].}
Detach audio stream processor from stream Source   Edit  
proc disableCursor() {.importc: "DisableCursor", header: "raylib.h", ...raises: [],
                       tags: [], forbids: [].}
Disables cursor (lock cursor) Source   Edit  
proc disableEventWaiting() {.importc: "DisableEventWaiting", header: "raylib.h",
                             ...raises: [], tags: [], forbids: [].}
Disable waiting for events on EndDrawing(), automatic events polling Source   Edit  
proc drawBillboard(camera: Camera; texture: Texture2D; position: Vector3;
                   size: float32; tint: Color) {.importc: "DrawBillboard",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Draw a billboard texture Source   Edit  
proc drawBillboard(camera: Camera; texture: Texture2D; source: Rectangle;
                   position: Vector3; size: Vector2; tint: Color) {.
    importc: "DrawBillboardRec", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Draw a billboard texture defined by source Source   Edit  
proc drawBillboard(camera: Camera; texture: Texture2D; source: Rectangle;
                   position: Vector3; up: Vector3; size: Vector2;
                   origin: Vector2; rotation: float32; tint: Color) {.
    importc: "DrawBillboardPro", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Draw a billboard texture defined by source and rotation Source   Edit  
proc drawBoundingBox(box: BoundingBox; color: Color) {.
    importc: "DrawBoundingBox", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Draw bounding box (wires) Source   Edit  
proc drawCapsule(startPos: Vector3; endPos: Vector3; radius: float32;
                 slices: int32; rings: int32; color: Color) {.
    importc: "DrawCapsule", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Draw a capsule with the center of its sphere caps at startPos and endPos Source   Edit  
proc drawCapsuleWires(startPos: Vector3; endPos: Vector3; radius: float32;
                      slices: int32; rings: int32; color: Color) {.
    importc: "DrawCapsuleWires", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Draw capsule wireframe with the center of its sphere caps at startPos and endPos Source   Edit  
proc drawCircle(center: Vector2; radius: float32; color: Color) {.
    importc: "DrawCircleV", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Draw a color-filled circle (Vector version) Source   Edit  
proc drawCircle(centerX: int32; centerY: int32; radius: float32; color: Color) {.
    importc: "DrawCircle", header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Draw a color-filled circle Source   Edit  
proc drawCircle3D(center: Vector3; radius: float32; rotationAxis: Vector3;
                  rotationAngle: float32; color: Color) {.
    importc: "DrawCircle3D", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Draw a circle in 3D world space Source   Edit  
proc drawCircleGradient(centerX: int32; centerY: int32; radius: float32;
                        color1: Color; color2: Color) {.
    importc: "DrawCircleGradient", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Draw a gradient-filled circle Source   Edit  
proc drawCircleLines(center: Vector2; radius: float32; color: Color) {.
    importc: "DrawCircleLinesV", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Draw circle outline (Vector version) Source   Edit  
proc drawCircleLines(centerX: int32; centerY: int32; radius: float32;
                     color: Color) {.importc: "DrawCircleLines",
                                     header: "raylib.h", ...raises: [], tags: [],
                                     forbids: [].}
Draw circle outline Source   Edit  
proc drawCircleSector(center: Vector2; radius: float32; startAngle: float32;
                      endAngle: float32; segments: int32; color: Color) {.
    importc: "DrawCircleSector", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Draw a piece of a circle Source   Edit  
proc drawCircleSectorLines(center: Vector2; radius: float32;
                           startAngle: float32; endAngle: float32;
                           segments: int32; color: Color) {.
    importc: "DrawCircleSectorLines", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Draw circle sector outline Source   Edit  
proc drawCube(position: Vector3; size: Vector3; color: Color) {.
    importc: "DrawCubeV", header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Draw cube (Vector version) Source   Edit  
proc drawCube(position: Vector3; width: float32; height: float32;
              length: float32; color: Color) {.importc: "DrawCube",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Draw cube Source   Edit  
proc drawCubeWires(position: Vector3; size: Vector3; color: Color) {.
    importc: "DrawCubeWiresV", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Draw cube wires (Vector version) Source   Edit  
proc drawCubeWires(position: Vector3; width: float32; height: float32;
                   length: float32; color: Color) {.importc: "DrawCubeWires",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Draw cube wires Source   Edit  
proc drawCylinder(position: Vector3; radiusTop: float32; radiusBottom: float32;
                  height: float32; slices: int32; color: Color) {.
    importc: "DrawCylinder", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Draw a cylinder/cone Source   Edit  
proc drawCylinder(startPos: Vector3; endPos: Vector3; startRadius: float32;
                  endRadius: float32; sides: int32; color: Color) {.
    importc: "DrawCylinderEx", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Draw a cylinder with base at startPos and top at endPos Source   Edit  
proc drawCylinderWires(position: Vector3; radiusTop: float32;
                       radiusBottom: float32; height: float32; slices: int32;
                       color: Color) {.importc: "DrawCylinderWires",
                                       header: "raylib.h", ...raises: [], tags: [],
                                       forbids: [].}
Draw a cylinder/cone wires Source   Edit  
proc drawCylinderWires(startPos: Vector3; endPos: Vector3; startRadius: float32;
                       endRadius: float32; sides: int32; color: Color) {.
    importc: "DrawCylinderWiresEx", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Draw a cylinder wires with base at startPos and top at endPos Source   Edit  
proc drawEllipse(centerX: int32; centerY: int32; radiusH: float32;
                 radiusV: float32; color: Color) {.importc: "DrawEllipse",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Draw ellipse Source   Edit  
proc drawEllipseLines(centerX: int32; centerY: int32; radiusH: float32;
                      radiusV: float32; color: Color) {.
    importc: "DrawEllipseLines", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Draw ellipse outline Source   Edit  
proc drawFPS(posX: int32; posY: int32) {.importc: "DrawFPS", header: "raylib.h",
    ...raises: [], tags: [], forbids: [].}
Draw current FPS Source   Edit  
proc drawGrid(slices: int32; spacing: float32) {.importc: "DrawGrid",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Draw a grid (centered at (0, 0, 0)) Source   Edit  
proc drawLine(startPos: Vector2; endPos: Vector2; color: Color) {.
    importc: "DrawLineV", header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Draw a line (using gl lines) Source   Edit  
proc drawLine(startPos: Vector2; endPos: Vector2; thick: float32; color: Color) {.
    importc: "DrawLineEx", header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Draw a line (using triangles/quads) Source   Edit  
proc drawLine(startPosX: int32; startPosY: int32; endPosX: int32;
              endPosY: int32; color: Color) {.importc: "DrawLine",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Draw a line Source   Edit  
proc drawLine3D(startPos: Vector3; endPos: Vector3; color: Color) {.
    importc: "DrawLine3D", header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Draw a line in 3D world space Source   Edit  
proc drawLineBezier(startPos: Vector2; endPos: Vector2; thick: float32;
                    color: Color) {.importc: "DrawLineBezier",
                                    header: "raylib.h", ...raises: [], tags: [],
                                    forbids: [].}
Draw line segment cubic-bezier in-out interpolation Source   Edit  
proc drawLineStrip(points: openArray[Vector2]; color: Color) {.inline,
    ...raises: [], tags: [], forbids: [].}
Draw lines sequence Source   Edit  
proc drawMesh(mesh: Mesh; material: Material; transform: Matrix) {.
    importc: "DrawMesh", header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Draw a 3d mesh with material and transform Source   Edit  
proc drawMeshInstanced(mesh: Mesh; material: Material;
                       transforms: openArray[Matrix]) {....raises: [], tags: [],
    forbids: [].}
Draw multiple mesh instances with material and different transforms Source   Edit  
proc drawModel(model: Model; position: Vector3; rotationAxis: Vector3;
               rotationAngle: float32; scale: Vector3; tint: Color) {.
    importc: "DrawModelEx", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Draw a model with extended parameters Source   Edit  
proc drawModel(model: Model; position: Vector3; scale: float32; tint: Color) {.
    importc: "DrawModel", header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Draw a model (with texture if set) Source   Edit  
proc drawModelWires(model: Model; position: Vector3; rotationAxis: Vector3;
                    rotationAngle: float32; scale: Vector3; tint: Color) {.
    importc: "DrawModelWiresEx", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Draw a model wires (with texture if set) with extended parameters Source   Edit  
proc drawModelWires(model: Model; position: Vector3; scale: float32; tint: Color) {.
    importc: "DrawModelWires", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Draw a model wires (with texture if set) Source   Edit  
proc drawPixel(position: Vector2; color: Color) {.importc: "DrawPixelV",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Draw a pixel (Vector version) Source   Edit  
proc drawPixel(posX: int32; posY: int32; color: Color) {.importc: "DrawPixel",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Draw a pixel Source   Edit  
proc drawPlane(centerPos: Vector3; size: Vector2; color: Color) {.
    importc: "DrawPlane", header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Draw a plane XZ Source   Edit  
proc drawPoint3D(position: Vector3; color: Color) {.importc: "DrawPoint3D",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Draw a point in 3D space, actually a small line Source   Edit  
proc drawPoly(center: Vector2; sides: int32; radius: float32; rotation: float32;
              color: Color) {.importc: "DrawPoly", header: "raylib.h",
                              ...raises: [], tags: [], forbids: [].}
Draw a regular polygon (Vector version) Source   Edit  
proc drawPolyLines(center: Vector2; sides: int32; radius: float32;
                   rotation: float32; color: Color) {.importc: "DrawPolyLines",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Draw a polygon outline of n sides Source   Edit  
proc drawPolyLines(center: Vector2; sides: int32; radius: float32;
                   rotation: float32; lineThick: float32; color: Color) {.
    importc: "DrawPolyLinesEx", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Draw a polygon outline of n sides with extended parameters Source   Edit  
proc drawRay(ray: Ray; color: Color) {.importc: "DrawRay", header: "raylib.h",
                                       ...raises: [], tags: [], forbids: [].}
Draw a ray line Source   Edit  
proc drawRectangle(position: Vector2; size: Vector2; color: Color) {.
    importc: "DrawRectangleV", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Draw a color-filled rectangle (Vector version) Source   Edit  
proc drawRectangle(posX: int32; posY: int32; width: int32; height: int32;
                   color: Color) {.importc: "DrawRectangle", header: "raylib.h",
                                   ...raises: [], tags: [], forbids: [].}
Draw a color-filled rectangle Source   Edit  
proc drawRectangle(rec: Rectangle; color: Color) {.importc: "DrawRectangleRec",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Draw a color-filled rectangle Source   Edit  
proc drawRectangle(rec: Rectangle; origin: Vector2; rotation: float32;
                   color: Color) {.importc: "DrawRectanglePro",
                                   header: "raylib.h", ...raises: [], tags: [],
                                   forbids: [].}
Draw a color-filled rectangle with pro parameters Source   Edit  
proc drawRectangleGradient(rec: Rectangle; col1: Color; col2: Color;
                           col3: Color; col4: Color) {.
    importc: "DrawRectangleGradientEx", header: "raylib.h", ...raises: [],
    tags: [], forbids: [].}
Draw a gradient-filled rectangle with custom vertex colors Source   Edit  
proc drawRectangleGradientH(posX: int32; posY: int32; width: int32;
                            height: int32; color1: Color; color2: Color) {.
    importc: "DrawRectangleGradientH", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Draw a horizontal-gradient-filled rectangle Source   Edit  
proc drawRectangleGradientV(posX: int32; posY: int32; width: int32;
                            height: int32; color1: Color; color2: Color) {.
    importc: "DrawRectangleGradientV", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Draw a vertical-gradient-filled rectangle Source   Edit  
proc drawRectangleLines(posX: int32; posY: int32; width: int32; height: int32;
                        color: Color) {.importc: "DrawRectangleLines",
                                        header: "raylib.h", ...raises: [],
                                        tags: [], forbids: [].}
Draw rectangle outline Source   Edit  
proc drawRectangleLines(rec: Rectangle; lineThick: float32; color: Color) {.
    importc: "DrawRectangleLinesEx", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Draw rectangle outline with extended parameters Source   Edit  
proc drawRectangleRounded(rec: Rectangle; roundness: float32; segments: int32;
                          color: Color) {.importc: "DrawRectangleRounded",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Draw rectangle with rounded edges Source   Edit  
proc drawRectangleRoundedLines(rec: Rectangle; roundness: float32;
                               segments: int32; lineThick: float32; color: Color) {.
    importc: "DrawRectangleRoundedLines", header: "raylib.h", ...raises: [],
    tags: [], forbids: [].}
Draw rectangle with rounded edges outline Source   Edit  
proc drawRing(center: Vector2; innerRadius: float32; outerRadius: float32;
              startAngle: float32; endAngle: float32; segments: int32;
              color: Color) {.importc: "DrawRing", header: "raylib.h",
                              ...raises: [], tags: [], forbids: [].}
Draw ring Source   Edit  
proc drawRingLines(center: Vector2; innerRadius: float32; outerRadius: float32;
                   startAngle: float32; endAngle: float32; segments: int32;
                   color: Color) {.importc: "DrawRingLines", header: "raylib.h",
                                   ...raises: [], tags: [], forbids: [].}
Draw ring outline Source   Edit  
proc drawSphere(centerPos: Vector3; radius: float32; color: Color) {.
    importc: "DrawSphere", header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Draw sphere Source   Edit  
proc drawSphere(centerPos: Vector3; radius: float32; rings: int32;
                slices: int32; color: Color) {.importc: "DrawSphereEx",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Draw sphere with extended parameters Source   Edit  
proc drawSphereWires(centerPos: Vector3; radius: float32; rings: int32;
                     slices: int32; color: Color) {.importc: "DrawSphereWires",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Draw sphere wires Source   Edit  
proc drawSplineBasis(points: openArray[Vector2]; thick: float32; color: Color) {.
    ...raises: [], tags: [], forbids: [].}
Draw spline: B-Spline, minimum 4 points Source   Edit  
proc drawSplineBezierCubic(points: openArray[Vector2]; thick: float32;
                           color: Color) {....raises: [], tags: [], forbids: [].}
Draw spline: Cubic Bezier, minimum 4 points (2 control points): p1, c2, c3, p4, c5, c6... Source   Edit  
proc drawSplineBezierQuadratic(points: openArray[Vector2]; thick: float32;
                               color: Color) {....raises: [], tags: [], forbids: [].}
Draw spline: Quadratic Bezier, minimum 3 points (1 control point): p1, c2, p3, c4... Source   Edit  
proc drawSplineCatmullRom(points: openArray[Vector2]; thick: float32;
                          color: Color) {....raises: [], tags: [], forbids: [].}
Draw spline: Catmull-Rom, minimum 4 points Source   Edit  
proc drawSplineLinear(points: openArray[Vector2]; thick: float32; color: Color) {.
    ...raises: [], tags: [], forbids: [].}
Draw spline: Linear, minimum 2 points Source   Edit  
proc drawSplineSegmentBasis(p1: Vector2; p2: Vector2; p3: Vector2; p4: Vector2;
                            thick: float32; color: Color) {.
    importc: "DrawSplineSegmentBasis", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Draw spline segment: B-Spline, 4 points Source   Edit  
proc drawSplineSegmentBezierCubic(p1: Vector2; c2: Vector2; c3: Vector2;
                                  p4: Vector2; thick: float32; color: Color) {.
    importc: "DrawSplineSegmentBezierCubic", header: "raylib.h", ...raises: [],
    tags: [], forbids: [].}
Draw spline segment: Cubic Bezier, 2 points, 2 control points Source   Edit  
proc drawSplineSegmentBezierQuadratic(p1: Vector2; c2: Vector2; p3: Vector2;
                                      thick: float32; color: Color) {.
    importc: "DrawSplineSegmentBezierQuadratic", header: "raylib.h", ...raises: [],
    tags: [], forbids: [].}
Draw spline segment: Quadratic Bezier, 2 points, 1 control point Source   Edit  
proc drawSplineSegmentCatmullRom(p1: Vector2; p2: Vector2; p3: Vector2;
                                 p4: Vector2; thick: float32; color: Color) {.
    importc: "DrawSplineSegmentCatmullRom", header: "raylib.h", ...raises: [],
    tags: [], forbids: [].}
Draw spline segment: Catmull-Rom, 4 points Source   Edit  
proc drawSplineSegmentLinear(p1: Vector2; p2: Vector2; thick: float32;
                             color: Color) {.importc: "DrawSplineSegmentLinear",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Draw spline segment: Linear, 2 points Source   Edit  
proc drawText(font: Font; text: cstring; position: Vector2; fontSize: float32;
              spacing: float32; tint: Color) {.importc: "rlDrawTextEx",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Draw text using font and additional parameters Source   Edit  
proc drawText(font: Font; text: cstring; position: Vector2; origin: Vector2;
              rotation: float32; fontSize: float32; spacing: float32;
              tint: Color) {.importc: "DrawTextPro", header: "raylib.h",
                             ...raises: [], tags: [], forbids: [].}
Draw text using Font and pro parameters (rotation) Source   Edit  
proc drawText(text: cstring; posX: int32; posY: int32; fontSize: int32;
              color: Color) {.importc: "rlDrawText", header: "raylib.h",
                              ...raises: [], tags: [], forbids: [].}
Draw text (using default font) Source   Edit  
proc drawTextCodepoint(font: Font; codepoint: Rune; position: Vector2;
                       fontSize: float32; tint: Color) {.
    importc: "DrawTextCodepoint", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Draw one character (codepoint) Source   Edit  
proc drawTextCodepoints(font: Font; codepoints: openArray[Rune];
                        position: Vector2; fontSize: float32; spacing: float32;
                        tint: Color) {....raises: [], tags: [], forbids: [].}
Draw multiple character (codepoint) Source   Edit  
proc drawTexture(texture: Texture2D; position: Vector2; rotation: float32;
                 scale: float32; tint: Color) {.importc: "DrawTextureEx",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Draw a Texture2D with extended parameters Source   Edit  
proc drawTexture(texture: Texture2D; position: Vector2; tint: Color) {.
    importc: "DrawTextureV", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Draw a Texture2D with position defined as Vector2 Source   Edit  
proc drawTexture(texture: Texture2D; posX: int32; posY: int32; tint: Color) {.
    importc: "DrawTexture", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Draw a Texture2D Source   Edit  
proc drawTexture(texture: Texture2D; source: Rectangle; dest: Rectangle;
                 origin: Vector2; rotation: float32; tint: Color) {.
    importc: "DrawTexturePro", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Draw a part of a texture defined by a rectangle with 'pro' parameters Source   Edit  
proc drawTexture(texture: Texture2D; source: Rectangle; position: Vector2;
                 tint: Color) {.importc: "DrawTextureRec", header: "raylib.h",
                                ...raises: [], tags: [], forbids: [].}
Draw a part of a texture defined by a rectangle Source   Edit  
proc drawTextureNPatch(texture: Texture2D; nPatchInfo: NPatchInfo;
                       dest: Rectangle; origin: Vector2; rotation: float32;
                       tint: Color) {.importc: "DrawTextureNPatch",
                                      header: "raylib.h", ...raises: [], tags: [],
                                      forbids: [].}
Draws a texture (or part of it) that stretches or shrinks nicely Source   Edit  
proc drawTriangle(v1: Vector2; v2: Vector2; v3: Vector2; color: Color) {.
    importc: "DrawTriangle", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Draw a color-filled triangle (vertex in counter-clockwise order!) Source   Edit  
proc drawTriangle3D(v1: Vector3; v2: Vector3; v3: Vector3; color: Color) {.
    importc: "DrawTriangle3D", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Draw a color-filled triangle (vertex in counter-clockwise order!) Source   Edit  
proc drawTriangleFan(points: openArray[Vector2]; color: Color) {....raises: [],
    tags: [], forbids: [].}
Draw a triangle fan defined by points (first vertex is the center) Source   Edit  
proc drawTriangleLines(v1: Vector2; v2: Vector2; v3: Vector2; color: Color) {.
    importc: "DrawTriangleLines", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Draw triangle outline (vertex in counter-clockwise order!) Source   Edit  
proc drawTriangleStrip(points: openArray[Vector2]; color: Color) {....raises: [],
    tags: [], forbids: [].}
Draw a triangle strip defined by points Source   Edit  
proc drawTriangleStrip3D(points: openArray[Vector3]; color: Color) {....raises: [],
    tags: [], forbids: [].}
Draw a triangle strip defined by points Source   Edit  
proc enableCursor() {.importc: "EnableCursor", header: "raylib.h", ...raises: [],
                      tags: [], forbids: [].}
Enables cursor (unlock cursor) Source   Edit  
proc enableEventWaiting() {.importc: "EnableEventWaiting", header: "raylib.h",
                            ...raises: [], tags: [], forbids: [].}
Enable waiting for events on EndDrawing(), no automatic event polling Source   Edit  
proc endBlendMode() {.importc: "EndBlendMode", header: "raylib.h", ...raises: [],
                      tags: [], forbids: [].}
End blending mode (reset to default: alpha blending) Source   Edit  
proc endDrawing() {.importc: "EndDrawing", header: "raylib.h", ...raises: [],
                    tags: [], forbids: [].}
End canvas drawing and swap buffers (double buffering) Source   Edit  
proc endMode2D() {.importc: "EndMode2D", header: "raylib.h", ...raises: [],
                   tags: [], forbids: [].}
Ends 2D mode with custom camera Source   Edit  
proc endMode3D() {.importc: "EndMode3D", header: "raylib.h", ...raises: [],
                   tags: [], forbids: [].}
Ends 3D mode and returns to default 2D orthographic mode Source   Edit  
proc endScissorMode() {.importc: "EndScissorMode", header: "raylib.h",
                        ...raises: [], tags: [], forbids: [].}
End scissor mode Source   Edit  
proc endShaderMode() {.importc: "EndShaderMode", header: "raylib.h", ...raises: [],
                       tags: [], forbids: [].}
End custom shader drawing (use default shader) Source   Edit  
proc endTextureMode() {.importc: "EndTextureMode", header: "raylib.h",
                        ...raises: [], tags: [], forbids: [].}
Ends drawing to render texture Source   Edit  
proc endVrStereoMode() {.importc: "EndVrStereoMode", header: "raylib.h",
                         ...raises: [], tags: [], forbids: [].}
End stereo rendering (requires VR simulator) Source   Edit  
proc exportAutomationEventList(list: AutomationEventList; fileName: cstring): bool {.
    importc: "ExportAutomationEventList", header: "raylib.h", ...raises: [],
    tags: [], forbids: [].}
Export automation events list as text file Source   Edit  
proc exportDataAsCode(data: openArray[byte]; fileName: string): bool {.
    ...raises: [ValueError], tags: [WriteIOEffect], forbids: [].}
Export data to code (.nim), returns true on success Source   Edit  
proc exportFontAsCode(font: Font; fileName: cstring): bool {.
    importc: "ExportFontAsCode", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Export font as code file, returns true on success Source   Edit  
proc exportImage(image: Image; fileName: cstring): bool {.
    importc: "ExportImage", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Export image data to file, returns true on success Source   Edit  
proc exportImageAsCode(image: Image; fileName: cstring): bool {.
    importc: "ExportImageAsCode", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Export image as code file defining an array of bytes, returns true on success Source   Edit  
proc exportImageToMemory(image: Image; fileType: string): RArray[uint8] {.
    ...raises: [], tags: [], forbids: [].}
Export image to memory buffer Source   Edit  
proc exportMesh(mesh: Mesh; fileName: cstring): bool {.importc: "ExportMesh",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Export mesh data to file, returns true on success Source   Edit  
proc exportMeshAsCode(mesh: Mesh; fileName: cstring): bool {.
    importc: "ExportMeshAsCode", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Export mesh as code file (.h) defining multiple arrays of vertex attributes Source   Edit  
proc exportWave(wave: Wave; fileName: cstring): bool {.importc: "ExportWave",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Export wave data to file, returns true on success Source   Edit  
proc exportWaveAsCode(wave: Wave; fileName: cstring): bool {.
    importc: "ExportWaveAsCode", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Export wave sample data to code (.h), returns true on success Source   Edit  
proc fade(color: Color; alpha: float32): Color {....raises: [], tags: [],
    forbids: [].}
Get color with alpha applied, alpha goes from 0.0 to 1.0 Source   Edit  
proc flags[E: FlagsEnum](e: varargs[E]): Flags[E] {.inline.}
Source   Edit  
proc frameCount(x: ModelAnimation): int32 {.inline, ...raises: [], tags: [],
    forbids: [].}
Source   Edit  
func genImageCellular(width: int32; height: int32; tileSize: int32): Image {.
    importc: "GenImageCellular", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Generate image: cellular algorithm, bigger tileSize means bigger cells Source   Edit  
func genImageChecked(width: int32; height: int32; checksX: int32;
                     checksY: int32; col1: Color; col2: Color): Image {.
    importc: "GenImageChecked", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Generate image: checked Source   Edit  
func genImageColor(width: int32; height: int32; color: Color): Image {.
    importc: "GenImageColor", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Generate image: plain color Source   Edit  
proc genImageFontAtlas(chars: openArray[GlyphInfo]; recs: out RArray[Rectangle];
                       fontSize: int32; padding: int32; packMethod: int32): Image {.
    ...raises: [], tags: [], forbids: [].}
Generate image font atlas using chars info Source   Edit  
func genImageGradientLinear(width: int32; height: int32; direction: int32;
                            start: Color; end: Color): Image {.
    importc: "GenImageGradientLinear", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Generate image: linear gradient, direction in degrees 0..360, 0=Vertical gradient Source   Edit  
func genImageGradientRadial(width: int32; height: int32; density: float32;
                            inner: Color; outer: Color): Image {.
    importc: "GenImageGradientRadial", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Generate image: radial gradient Source   Edit  
func genImageGradientSquare(width: int32; height: int32; density: float32;
                            inner: Color; outer: Color): Image {.
    importc: "GenImageGradientSquare", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Generate image: square gradient Source   Edit  
func genImagePerlinNoise(width: int32; height: int32; offsetX: int32;
                         offsetY: int32; scale: float32): Image {.
    importc: "GenImagePerlinNoise", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Generate image: perlin noise Source   Edit  
func genImageText(width: int32; height: int32; text: cstring): Image {.
    importc: "GenImageText", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Generate image: grayscale image from text data Source   Edit  
func genImageWhiteNoise(width: int32; height: int32; factor: float32): Image {.
    importc: "GenImageWhiteNoise", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Generate image: white noise Source   Edit  
proc genMeshCone(radius: float32; height: float32; slices: int32): Mesh {.
    importc: "GenMeshCone", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Generate cone/pyramid mesh Source   Edit  
proc genMeshCube(width: float32; height: float32; length: float32): Mesh {.
    importc: "GenMeshCube", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Generate cuboid mesh Source   Edit  
proc genMeshCubicmap(cubicmap: Image; cubeSize: Vector3): Mesh {.
    importc: "GenMeshCubicmap", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Generate cubes-based map mesh from image data Source   Edit  
proc genMeshCylinder(radius: float32; height: float32; slices: int32): Mesh {.
    importc: "GenMeshCylinder", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Generate cylinder mesh Source   Edit  
proc genMeshHeightmap(heightmap: Image; size: Vector3): Mesh {.
    importc: "GenMeshHeightmap", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Generate heightmap mesh from image data Source   Edit  
proc genMeshHemiSphere(radius: float32; rings: int32; slices: int32): Mesh {.
    importc: "GenMeshHemiSphere", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Generate half-sphere mesh (no bottom cap) Source   Edit  
proc genMeshKnot(radius: float32; size: float32; radSeg: int32; sides: int32): Mesh {.
    importc: "GenMeshKnot", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Generate trefoil knot mesh Source   Edit  
proc genMeshPlane(width: float32; length: float32; resX: int32; resZ: int32): Mesh {.
    importc: "GenMeshPlane", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Generate plane mesh (with subdivisions) Source   Edit  
proc genMeshPoly(sides: int32; radius: float32): Mesh {.importc: "GenMeshPoly",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Generate polygonal mesh Source   Edit  
proc genMeshSphere(radius: float32; rings: int32; slices: int32): Mesh {.
    importc: "GenMeshSphere", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Generate sphere mesh (standard sphere) Source   Edit  
proc genMeshTangents(mesh: var Mesh) {.importc: "GenMeshTangents",
                                       header: "raylib.h", ...raises: [], tags: [],
                                       forbids: [].}
Compute mesh tangents Source   Edit  
proc genMeshTorus(radius: float32; size: float32; radSeg: int32; sides: int32): Mesh {.
    importc: "GenMeshTorus", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Generate torus mesh Source   Edit  
proc genTextureMipmaps(texture: var Texture2D) {.importc: "GenTextureMipmaps",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Generate GPU mipmaps for a texture Source   Edit  
func getCameraMatrix(camera: Camera): Matrix {.importc: "GetCameraMatrix",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Get camera transform matrix (view matrix) Source   Edit  
func getCameraMatrix2D(camera: Camera2D): Matrix {.importc: "GetCameraMatrix2D",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Get camera 2d transform matrix Source   Edit  
proc getCharPressed(): int32 {.importc: "GetCharPressed", header: "raylib.h",
                               ...raises: [], tags: [], forbids: [].}
Get char pressed (unicode), call it multiple times for chars queued, returns 0 when the queue is empty Source   Edit  
proc getClipboardText(): string {.inline, ...raises: [], tags: [], forbids: [].}
Get clipboard text content Source   Edit  
func getCollisionRec(rec1: Rectangle; rec2: Rectangle): Rectangle {.
    importc: "GetCollisionRec", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Get collision rectangle for two rectangles collision Source   Edit  
proc getColor(hexValue: uint32): Color {....raises: [], tags: [], forbids: [].}
Get Color structure from hexadecimal value Source   Edit  
proc getCurrentMonitor(): int32 {.importc: "GetCurrentMonitor",
                                  header: "raylib.h", ...raises: [], tags: [],
                                  forbids: [].}
Get current connected monitor Source   Edit  
proc getDroppedFiles(): seq[string] {....raises: [], tags: [], forbids: [].}
Get dropped files names Source   Edit  
proc getFontDefault(): Font {.importc: "GetFontDefault", header: "raylib.h",
                              ...raises: [], tags: [], forbids: [].}
Get the default Font Source   Edit  
proc getFPS(): int32 {.importc: "GetFPS", header: "raylib.h", ...raises: [],
                       tags: [], forbids: [].}
Get current FPS Source   Edit  
proc getFrameTime(): float32 {.importc: "GetFrameTime", header: "raylib.h",
                               ...raises: [], tags: [], forbids: [].}
Get time in seconds for last frame drawn (delta time) Source   Edit  
proc getGamepadAxisCount(gamepad: int32): int32 {.
    importc: "GetGamepadAxisCount", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Get gamepad axis count for a gamepad Source   Edit  
proc getGamepadAxisMovement(gamepad: int32; axis: GamepadAxis): float32 {.
    importc: "GetGamepadAxisMovement", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Get axis movement value for a gamepad axis Source   Edit  
proc getGamepadButtonPressed(): GamepadButton {.
    importc: "GetGamepadButtonPressed", header: "raylib.h", ...raises: [],
    tags: [], forbids: [].}
Get the last gamepad button pressed Source   Edit  
proc getGamepadName(gamepad: int32): string {.inline, ...raises: [], tags: [],
    forbids: [].}
Get gamepad internal name id Source   Edit  
proc getGestureDetected(): Gesture {.importc: "GetGestureDetected",
                                     header: "raylib.h", ...raises: [], tags: [],
                                     forbids: [].}
Get latest detected gesture Source   Edit  
proc getGestureDragAngle(): float32 {.importc: "GetGestureDragAngle",
                                      header: "raylib.h", ...raises: [], tags: [],
                                      forbids: [].}
Get gesture drag angle Source   Edit  
proc getGestureDragVector(): Vector2 {.importc: "GetGestureDragVector",
                                       header: "raylib.h", ...raises: [], tags: [],
                                       forbids: [].}
Get gesture drag vector Source   Edit  
proc getGestureHoldDuration(): float32 {.importc: "GetGestureHoldDuration",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Get gesture hold time in milliseconds Source   Edit  
proc getGesturePinchAngle(): float32 {.importc: "GetGesturePinchAngle",
                                       header: "raylib.h", ...raises: [], tags: [],
                                       forbids: [].}
Get gesture pinch angle Source   Edit  
proc getGesturePinchVector(): Vector2 {.importc: "GetGesturePinchVector",
                                        header: "raylib.h", ...raises: [],
                                        tags: [], forbids: [].}
Get gesture pinch delta Source   Edit  
func getGlyphAtlasRec(font: Font; codepoint: Rune): Rectangle {.
    importc: "GetGlyphAtlasRec", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Get glyph rectangle in font atlas for a codepoint (unicode character), fallback to '?' if not found Source   Edit  
func getGlyphIndex(font: Font; codepoint: Rune): int32 {.
    importc: "GetGlyphIndex", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Get glyph index position in font for a codepoint (unicode character), fallback to '?' if not found Source   Edit  
func getGlyphInfo(font: Font; codepoint: Rune): GlyphInfo {.
    importc: "GetGlyphInfo", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Get glyph font info data for a codepoint (unicode character), fallback to '?' if not found Source   Edit  
func getImageAlphaBorder(image: Image; threshold: float32): Rectangle {.
    importc: "GetImageAlphaBorder", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Get image alpha border rectangle Source   Edit  
func getImageColor(image: Image; x: int32; y: int32): Color {.
    importc: "GetImageColor", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Get image pixel color at (x, y) position Source   Edit  
proc getKeyPressed(): KeyboardKey {.importc: "GetKeyPressed",
                                    header: "raylib.h", ...raises: [], tags: [],
                                    forbids: [].}
Get key pressed (keycode), call it multiple times for keys queued, returns 0 when the queue is empty Source   Edit  
proc getMasterVolume(): float32 {.importc: "GetMasterVolume",
                                  header: "raylib.h", ...raises: [], tags: [],
                                  forbids: [].}
Get master volume (listener) Source   Edit  
proc getMeshBoundingBox(mesh: Mesh): BoundingBox {.
    importc: "GetMeshBoundingBox", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Compute mesh bounding box limits Source   Edit  
proc getModelBoundingBox(model: Model): BoundingBox {.
    importc: "GetModelBoundingBox", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Compute model bounding box limits (considers all meshes) Source   Edit  
proc getMonitorCount(): int32 {.importc: "GetMonitorCount", header: "raylib.h",
                                ...raises: [], tags: [], forbids: [].}
Get number of connected monitors Source   Edit  
proc getMonitorHeight(monitor: int32): int32 {.importc: "GetMonitorHeight",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Get specified monitor height (current video mode used by monitor) Source   Edit  
proc getMonitorName(monitor: int32): string {.inline, ...raises: [], tags: [],
    forbids: [].}
Get the human-readable, UTF-8 encoded name of the primary monitor Source   Edit  
proc getMonitorPhysicalHeight(monitor: int32): int32 {.
    importc: "GetMonitorPhysicalHeight", header: "raylib.h", ...raises: [],
    tags: [], forbids: [].}
Get specified monitor physical height in millimetres Source   Edit  
proc getMonitorPhysicalWidth(monitor: int32): int32 {.
    importc: "GetMonitorPhysicalWidth", header: "raylib.h", ...raises: [],
    tags: [], forbids: [].}
Get specified monitor physical width in millimetres Source   Edit  
proc getMonitorPosition(monitor: int32): Vector2 {.
    importc: "GetMonitorPosition", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Get specified monitor position Source   Edit  
proc getMonitorRefreshRate(monitor: int32): int32 {.
    importc: "GetMonitorRefreshRate", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Get specified monitor refresh rate Source   Edit  
proc getMonitorWidth(monitor: int32): int32 {.importc: "GetMonitorWidth",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Get specified monitor width (current video mode used by monitor) Source   Edit  
proc getMouseDelta(): Vector2 {.importc: "GetMouseDelta", header: "raylib.h",
                                ...raises: [], tags: [], forbids: [].}
Get mouse delta between frames Source   Edit  
proc getMousePosition(): Vector2 {.importc: "GetMousePosition",
                                   header: "raylib.h", ...raises: [], tags: [],
                                   forbids: [].}
Get mouse position XY Source   Edit  
proc getMouseWheelMove(): float32 {.importc: "GetMouseWheelMove",
                                    header: "raylib.h", ...raises: [], tags: [],
                                    forbids: [].}
Get mouse wheel movement for X or Y, whichever is larger Source   Edit  
proc getMouseWheelMoveV(): Vector2 {.importc: "GetMouseWheelMoveV",
                                     header: "raylib.h", ...raises: [], tags: [],
                                     forbids: [].}
Get mouse wheel movement for both X and Y Source   Edit  
proc getMouseX(): int32 {.importc: "GetMouseX", header: "raylib.h", ...raises: [],
                          tags: [], forbids: [].}
Get mouse position X Source   Edit  
proc getMouseY(): int32 {.importc: "GetMouseY", header: "raylib.h", ...raises: [],
                          tags: [], forbids: [].}
Get mouse position Y Source   Edit  
func getMusicTimeLength(music: Music): float32 {.importc: "GetMusicTimeLength",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Get music time length (in seconds) Source   Edit  
proc getMusicTimePlayed(music: Music): float32 {.importc: "GetMusicTimePlayed",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Get current music time played (in seconds) Source   Edit  
proc getPixelColor[T: Pixel](pixel: T): Color
Get Color from a source pixel pointer of certain format Source   Edit  
func getPixelDataSize(width: int32; height: int32; format: PixelFormat): int32 {.
    importc: "GetPixelDataSize", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Get pixel data size in bytes for certain format Source   Edit  
func getRayCollisionBox(ray: Ray; box: BoundingBox): RayCollision {.
    importc: "GetRayCollisionBox", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Get collision info between ray and box Source   Edit  
func getRayCollisionMesh(ray: Ray; mesh: Mesh; transform: Matrix): RayCollision {.
    importc: "GetRayCollisionMesh", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Get collision info between ray and mesh Source   Edit  
func getRayCollisionQuad(ray: Ray; p1: Vector3; p2: Vector3; p3: Vector3;
                         p4: Vector3): RayCollision {.
    importc: "GetRayCollisionQuad", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Get collision info between ray and quad Source   Edit  
func getRayCollisionSphere(ray: Ray; center: Vector3; radius: float32): RayCollision {.
    importc: "GetRayCollisionSphere", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Get collision info between ray and sphere Source   Edit  
func getRayCollisionTriangle(ray: Ray; p1: Vector3; p2: Vector3; p3: Vector3): RayCollision {.
    importc: "GetRayCollisionTriangle", header: "raylib.h", ...raises: [],
    tags: [], forbids: [].}
Get collision info between ray and triangle Source   Edit  
proc getRenderHeight(): int32 {.importc: "GetRenderHeight", header: "raylib.h",
                                ...raises: [], tags: [], forbids: [].}
Get current render height (it considers HiDPI) Source   Edit  
proc getRenderWidth(): int32 {.importc: "GetRenderWidth", header: "raylib.h",
                               ...raises: [], tags: [], forbids: [].}
Get current render width (it considers HiDPI) Source   Edit  
proc getScreenHeight(): int32 {.importc: "GetScreenHeight", header: "raylib.h",
                                ...raises: [], tags: [], forbids: [].}
Get current screen height Source   Edit  
func getScreenToWorld2D(position: Vector2; camera: Camera2D): Vector2 {.
    importc: "GetScreenToWorld2D", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Get the world space position for a 2d camera screen space position Source   Edit  
func getScreenToWorldRay(position: Vector2; camera: Camera): Ray {.
    importc: "GetScreenToWorldRay", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Get a ray trace from screen position (i.e mouse) Source   Edit  
func getScreenToWorldRay(position: Vector2; camera: Camera; width: int32;
                         height: int32): Ray {.importc: "GetScreenToWorldRayEx",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Get a ray trace from screen position (i.e mouse) in a viewport Source   Edit  
proc getScreenWidth(): int32 {.importc: "GetScreenWidth", header: "raylib.h",
                               ...raises: [], tags: [], forbids: [].}
Get current screen width Source   Edit  
proc getShaderLocation(shader: Shader; uniformName: cstring): ShaderLocation {.
    importc: "GetShaderLocation", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Get shader uniform location Source   Edit  
proc getShaderLocationAttrib(shader: Shader; attribName: cstring): ShaderLocation {.
    importc: "GetShaderLocationAttrib", header: "raylib.h", ...raises: [],
    tags: [], forbids: [].}
Get shader attribute location Source   Edit  
proc getShapesTexture(): Texture2D {.importc: "GetShapesTexture",
                                     header: "raylib.h", ...raises: [], tags: [],
                                     forbids: [].}
Get texture that is used for shapes drawing Source   Edit  
proc getShapesTextureRectangle(): Rectangle {.
    importc: "GetShapesTextureRectangle", header: "raylib.h", ...raises: [],
    tags: [], forbids: [].}
Get texture source rectangle that is used for shapes drawing Source   Edit  
func getSplinePointBasis(p1: Vector2; p2: Vector2; p3: Vector2; p4: Vector2;
                         t: float32): Vector2 {.importc: "GetSplinePointBasis",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Get (evaluate) spline point: B-Spline Source   Edit  
func getSplinePointBezierCubic(p1: Vector2; c2: Vector2; c3: Vector2;
                               p4: Vector2; t: float32): Vector2 {.
    importc: "GetSplinePointBezierCubic", header: "raylib.h", ...raises: [],
    tags: [], forbids: [].}
Get (evaluate) spline point: Cubic Bezier Source   Edit  
func getSplinePointBezierQuad(p1: Vector2; c2: Vector2; p3: Vector2; t: float32): Vector2 {.
    importc: "GetSplinePointBezierQuad", header: "raylib.h", ...raises: [],
    tags: [], forbids: [].}
Get (evaluate) spline point: Quadratic Bezier Source   Edit  
func getSplinePointCatmullRom(p1: Vector2; p2: Vector2; p3: Vector2;
                              p4: Vector2; t: float32): Vector2 {.
    importc: "GetSplinePointCatmullRom", header: "raylib.h", ...raises: [],
    tags: [], forbids: [].}
Get (evaluate) spline point: Catmull-Rom Source   Edit  
func getSplinePointLinear(startPos: Vector2; endPos: Vector2; t: float32): Vector2 {.
    importc: "GetSplinePointLinear", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Get (evaluate) spline point: Linear Source   Edit  
proc getTime(): float {.importc: "GetTime", header: "raylib.h", ...raises: [],
                        tags: [], forbids: [].}
Get elapsed time in seconds since InitWindow() Source   Edit  
proc getTouchPointCount(): int32 {.importc: "GetTouchPointCount",
                                   header: "raylib.h", ...raises: [], tags: [],
                                   forbids: [].}
Get number of touch points Source   Edit  
proc getTouchPointId(index: int32): int32 {.importc: "GetTouchPointId",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Get touch point identifier for given index Source   Edit  
proc getTouchPosition(index: int32): Vector2 {.importc: "GetTouchPosition",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Get touch position XY for a touch point index (relative to screen size) Source   Edit  
proc getTouchX(): int32 {.importc: "GetTouchX", header: "raylib.h", ...raises: [],
                          tags: [], forbids: [].}
Get touch position X for touch point 0 (relative to screen size) Source   Edit  
proc getTouchY(): int32 {.importc: "GetTouchY", header: "raylib.h", ...raises: [],
                          tags: [], forbids: [].}
Get touch position Y for touch point 0 (relative to screen size) Source   Edit  
proc getWindowHandle(): pointer {.importc: "GetWindowHandle",
                                  header: "raylib.h", ...raises: [], tags: [],
                                  forbids: [].}
Get native window handle Source   Edit  
proc getWindowPosition(): Vector2 {.importc: "GetWindowPosition",
                                    header: "raylib.h", ...raises: [], tags: [],
                                    forbids: [].}
Get window position XY on monitor Source   Edit  
proc getWindowScaleDPI(): Vector2 {.importc: "GetWindowScaleDPI",
                                    header: "raylib.h", ...raises: [], tags: [],
                                    forbids: [].}
Get window scale DPI factor Source   Edit  
func getWorldToScreen(position: Vector3; camera: Camera): Vector2 {.
    importc: "GetWorldToScreen", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Get the screen space position for a 3d world space position Source   Edit  
func getWorldToScreen(position: Vector3; camera: Camera; width: int32;
                      height: int32): Vector2 {.importc: "GetWorldToScreenEx",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Get size position for a 3d world space position Source   Edit  
func getWorldToScreen2D(position: Vector2; camera: Camera2D): Vector2 {.
    importc: "GetWorldToScreen2D", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Get the screen space position for a 2d camera world space position Source   Edit  
proc glyphCount(x: Font): int32 {.inline, ...raises: [], tags: [], forbids: [].}
Source   Edit  
proc hideCursor() {.importc: "HideCursor", header: "raylib.h", ...raises: [],
                    tags: [], forbids: [].}
Hides cursor Source   Edit  
func imageAlphaClear(image: var Image; color: Color; threshold: float32) {.
    importc: "ImageAlphaClear", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Clear alpha channel to desired color Source   Edit  
func imageAlphaCrop(image: var Image; threshold: float32) {.
    importc: "ImageAlphaCrop", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Crop image depending on alpha value Source   Edit  
func imageAlphaMask(image: var Image; alphaMask: Image) {.
    importc: "ImageAlphaMask", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Apply alpha mask to image Source   Edit  
func imageAlphaPremultiply(image: var Image) {.importc: "ImageAlphaPremultiply",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Premultiply alpha channel Source   Edit  
func imageBlurGaussian(image: var Image; blurSize: int32) {.
    importc: "ImageBlurGaussian", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Apply Gaussian blur using a box blur approximation Source   Edit  
func imageClearBackground(dst: var Image; color: Color) {.
    importc: "ImageClearBackground", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Clear image background with given color Source   Edit  
func imageColorBrightness(image: var Image; brightness: int32) {.
    importc: "ImageColorBrightness", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Modify image color: brightness (-255 to 255) Source   Edit  
func imageColorContrast(image: var Image; contrast: float32) {.
    importc: "ImageColorContrast", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Modify image color: contrast (-100 to 100) Source   Edit  
func imageColorGrayscale(image: var Image) {.importc: "ImageColorGrayscale",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Modify image color: grayscale Source   Edit  
func imageColorInvert(image: var Image) {.importc: "ImageColorInvert",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Modify image color: invert Source   Edit  
func imageColorReplace(image: var Image; color: Color; replace: Color) {.
    importc: "ImageColorReplace", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Modify image color: replace color Source   Edit  
func imageColorTint(image: var Image; color: Color) {.importc: "ImageColorTint",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Modify image color: tint Source   Edit  
func imageCopy(image: Image): Image {.importc: "ImageCopy", header: "raylib.h",
                                      ...raises: [], tags: [], forbids: [].}
Create an image duplicate (useful for transformations) Source   Edit  
func imageCrop(image: var Image; crop: Rectangle) {.importc: "ImageCrop",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Crop an image to a defined rectangle Source   Edit  
func imageDither(image: var Image; rBpp: int32; gBpp: int32; bBpp: int32;
                 aBpp: int32) {.importc: "ImageDither", header: "raylib.h",
                                ...raises: [], tags: [], forbids: [].}
Dither image data to 16bpp or lower (Floyd-Steinberg dithering) Source   Edit  
func imageDraw(dst: var Image; src: Image; srcRec: Rectangle; dstRec: Rectangle;
               tint: Color) {.importc: "ImageDraw", header: "raylib.h",
                              ...raises: [], tags: [], forbids: [].}
Draw a source image within a destination image (tint applied to source) Source   Edit  
func imageDrawCircle(dst: var Image; center: Vector2; radius: int32;
                     color: Color) {.importc: "ImageDrawCircleV",
                                     header: "raylib.h", ...raises: [], tags: [],
                                     forbids: [].}
Draw a filled circle within an image (Vector version) Source   Edit  
func imageDrawCircle(dst: var Image; centerX: int32; centerY: int32;
                     radius: int32; color: Color) {.importc: "ImageDrawCircle",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Draw a filled circle within an image Source   Edit  
func imageDrawCircleLines(dst: var Image; center: Vector2; radius: int32;
                          color: Color) {.importc: "ImageDrawCircleLinesV",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Draw circle outline within an image (Vector version) Source   Edit  
func imageDrawCircleLines(dst: var Image; centerX: int32; centerY: int32;
                          radius: int32; color: Color) {.
    importc: "ImageDrawCircleLines", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Draw circle outline within an image Source   Edit  
func imageDrawLine(dst: var Image; start: Vector2; end: Vector2; color: Color) {.
    importc: "ImageDrawLineV", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Draw line within an image (Vector version) Source   Edit  
func imageDrawLine(dst: var Image; startPosX: int32; startPosY: int32;
                   endPosX: int32; endPosY: int32; color: Color) {.
    importc: "ImageDrawLine", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Draw line within an image Source   Edit  
func imageDrawPixel(dst: var Image; position: Vector2; color: Color) {.
    importc: "ImageDrawPixelV", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Draw pixel within an image (Vector version) Source   Edit  
func imageDrawPixel(dst: var Image; posX: int32; posY: int32; color: Color) {.
    importc: "ImageDrawPixel", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Draw pixel within an image Source   Edit  
func imageDrawRectangle(dst: var Image; position: Vector2; size: Vector2;
                        color: Color) {.importc: "ImageDrawRectangleV",
                                        header: "raylib.h", ...raises: [],
                                        tags: [], forbids: [].}
Draw rectangle within an image (Vector version) Source   Edit  
func imageDrawRectangle(dst: var Image; posX: int32; posY: int32; width: int32;
                        height: int32; color: Color) {.
    importc: "ImageDrawRectangle", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Draw rectangle within an image Source   Edit  
func imageDrawRectangle(dst: var Image; rec: Rectangle; color: Color) {.
    importc: "ImageDrawRectangleRec", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Draw rectangle within an image Source   Edit  
func imageDrawRectangleLines(dst: var Image; rec: Rectangle; thick: int32;
                             color: Color) {.importc: "ImageDrawRectangleLines",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Draw rectangle lines within an image Source   Edit  
func imageDrawText(dst: var Image; font: Font; text: cstring; position: Vector2;
                   fontSize: float32; spacing: float32; tint: Color) {.
    importc: "ImageDrawTextEx", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Draw text (custom sprite font) within an image (destination) Source   Edit  
func imageDrawText(dst: var Image; text: cstring; posX: int32; posY: int32;
                   fontSize: int32; color: Color) {.importc: "ImageDrawText",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Draw text (using default font) within an image (destination) Source   Edit  
func imageFlipHorizontal(image: var Image) {.importc: "ImageFlipHorizontal",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Flip image horizontally Source   Edit  
func imageFlipVertical(image: var Image) {.importc: "ImageFlipVertical",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Flip image vertically Source   Edit  
func imageFormat(image: var Image; newFormat: PixelFormat) {.
    importc: "ImageFormat", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Convert image data to desired format Source   Edit  
func imageFromImage(image: Image; rec: Rectangle): Image {.
    importc: "ImageFromImage", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Create an image from another image piece Source   Edit  
proc imageKernelConvolution(image: var Image; kernel: openArray[float32]) {.
    ...raises: [], tags: [], forbids: [].}
Apply Custom Square image convolution kernel Source   Edit  
func imageMipmaps(image: var Image) {.importc: "ImageMipmaps",
                                      header: "raylib.h", ...raises: [], tags: [],
                                      forbids: [].}
Compute all mipmap levels for a provided image Source   Edit  
func imageResize(image: var Image; newWidth: int32; newHeight: int32) {.
    importc: "ImageResize", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Resize image (Bicubic scaling algorithm) Source   Edit  
func imageResizeCanvas(image: var Image; newWidth: int32; newHeight: int32;
                       offsetX: int32; offsetY: int32; fill: Color) {.
    importc: "ImageResizeCanvas", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Resize canvas and fill with color Source   Edit  
func imageResizeNN(image: var Image; newWidth: int32; newHeight: int32) {.
    importc: "ImageResizeNN", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Resize image (Nearest-Neighbor scaling algorithm) Source   Edit  
func imageRotate(image: var Image; degrees: int32) {.importc: "ImageRotate",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Rotate image by input angle in degrees (-359 to 359) Source   Edit  
func imageRotateCCW(image: var Image) {.importc: "ImageRotateCCW",
                                        header: "raylib.h", ...raises: [],
                                        tags: [], forbids: [].}
Rotate image counter-clockwise 90deg Source   Edit  
func imageRotateCW(image: var Image) {.importc: "ImageRotateCW",
                                       header: "raylib.h", ...raises: [], tags: [],
                                       forbids: [].}
Rotate image clockwise 90deg Source   Edit  
func imageText(font: Font; text: cstring; fontSize: float32; spacing: float32;
               tint: Color): Image {.importc: "ImageTextEx", header: "raylib.h",
                                     ...raises: [], tags: [], forbids: [].}
Create an image from text (custom sprite font) Source   Edit  
func imageText(text: cstring; fontSize: int32; color: Color): Image {.
    importc: "ImageText", header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Create an image from text (default font) Source   Edit  
func imageToPOT(image: var Image; fill: Color) {.importc: "ImageToPOT",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Convert image to POT (power-of-two) Source   Edit  
proc initAudioDevice() {.importc: "InitAudioDevice", header: "raylib.h",
                         ...raises: [], tags: [], forbids: [].}
Initialize audio device and context Source   Edit  
proc initWindow(width: int32; height: int32; title: string) {.
    ...raises: [RaylibError], tags: [], forbids: [].}
Initialize window and OpenGL context Source   Edit  
func isAudioDeviceReady(): bool {.importc: "IsAudioDeviceReady",
                                  header: "raylib.h", ...raises: [], tags: [],
                                  forbids: [].}
Check if audio device has been initialized successfully Source   Edit  
func isAudioStreamPlaying(stream: AudioStream): bool {.
    importc: "IsAudioStreamPlaying", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Check if audio stream is playing Source   Edit  
proc isAudioStreamProcessed(stream: AudioStream): bool {.
    importc: "IsAudioStreamProcessed", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Check if any audio stream buffers requires refill Source   Edit  
func isAudioStreamReady(stream: AudioStream): bool {.
    importc: "IsAudioStreamReady", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Checks if an audio stream is ready Source   Edit  
proc isCursorHidden(): bool {.importc: "IsCursorHidden", header: "raylib.h",
                              ...raises: [], tags: [], forbids: [].}
Check if cursor is not visible Source   Edit  
proc isCursorOnScreen(): bool {.importc: "IsCursorOnScreen", header: "raylib.h",
                                ...raises: [], tags: [], forbids: [].}
Check if cursor is on the screen Source   Edit  
proc isFileDropped(): bool {.importc: "IsFileDropped", header: "raylib.h",
                             ...raises: [], tags: [], forbids: [].}
Check if a file has been dropped into window Source   Edit  
func isFontReady(font: Font): bool {.importc: "IsFontReady", header: "raylib.h",
                                     ...raises: [], tags: [], forbids: [].}
Check if a font is ready Source   Edit  
proc isGamepadAvailable(gamepad: int32): bool {.importc: "IsGamepadAvailable",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Check if a gamepad is available Source   Edit  
proc isGamepadButtonDown(gamepad: int32; button: GamepadButton): bool {.
    importc: "IsGamepadButtonDown", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Check if a gamepad button is being pressed Source   Edit  
proc isGamepadButtonPressed(gamepad: int32; button: GamepadButton): bool {.
    importc: "IsGamepadButtonPressed", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Check if a gamepad button has been pressed once Source   Edit  
proc isGamepadButtonReleased(gamepad: int32; button: GamepadButton): bool {.
    importc: "IsGamepadButtonReleased", header: "raylib.h", ...raises: [],
    tags: [], forbids: [].}
Check if a gamepad button has been released once Source   Edit  
proc isGamepadButtonUp(gamepad: int32; button: GamepadButton): bool {.
    importc: "IsGamepadButtonUp", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Check if a gamepad button is NOT being pressed Source   Edit  
proc isGestureDetected(gesture: Gesture): bool {.importc: "IsGestureDetected",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Check if a gesture have been detected Source   Edit  
func isImageReady(image: Image): bool {.importc: "IsImageReady",
                                        header: "raylib.h", ...raises: [],
                                        tags: [], forbids: [].}
Check if an image is ready Source   Edit  
proc isKeyDown(key: KeyboardKey): bool {.importc: "IsKeyDown",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Check if a key is being pressed Source   Edit  
proc isKeyPressed(key: KeyboardKey): bool {.importc: "IsKeyPressed",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Check if a key has been pressed once Source   Edit  
proc isKeyPressedRepeat(key: KeyboardKey): bool {.importc: "IsKeyPressedRepeat",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Check if a key has been pressed again (Only PLATFORM_DESKTOP) Source   Edit  
proc isKeyReleased(key: KeyboardKey): bool {.importc: "IsKeyReleased",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Check if a key has been released once Source   Edit  
proc isKeyUp(key: KeyboardKey): bool {.importc: "IsKeyUp", header: "raylib.h",
                                       ...raises: [], tags: [], forbids: [].}
Check if a key is NOT being pressed Source   Edit  
proc isMaterialReady(material: Material): bool {.importc: "IsMaterialReady",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Check if a material is ready Source   Edit  
proc isModelAnimationValid(model: Model; anim: ModelAnimation): bool {.
    importc: "IsModelAnimationValid", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Check model animation skeleton match Source   Edit  
func isModelReady(model: Model): bool {.importc: "IsModelReady",
                                        header: "raylib.h", ...raises: [],
                                        tags: [], forbids: [].}
Check if a model is ready Source   Edit  
proc isMouseButtonDown(button: MouseButton): bool {.
    importc: "IsMouseButtonDown", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Check if a mouse button is being pressed Source   Edit  
proc isMouseButtonPressed(button: MouseButton): bool {.
    importc: "IsMouseButtonPressed", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Check if a mouse button has been pressed once Source   Edit  
proc isMouseButtonReleased(button: MouseButton): bool {.
    importc: "IsMouseButtonReleased", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Check if a mouse button has been released once Source   Edit  
proc isMouseButtonUp(button: MouseButton): bool {.importc: "IsMouseButtonUp",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Check if a mouse button is NOT being pressed Source   Edit  
func isMusicReady(music: Music): bool {.importc: "IsMusicReady",
                                        header: "raylib.h", ...raises: [],
                                        tags: [], forbids: [].}
Checks if a music stream is ready Source   Edit  
func isMusicStreamPlaying(music: Music): bool {.importc: "IsMusicStreamPlaying",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Check if music is playing Source   Edit  
func isRenderTextureReady(target: RenderTexture2D): bool {.
    importc: "IsRenderTextureReady", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Check if a render texture is ready Source   Edit  
func isShaderReady(shader: Shader): bool {.importc: "IsShaderReady",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Check if a shader is ready Source   Edit  
func isSoundPlaying(sound: Sound): bool {.importc: "IsSoundPlaying",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Check if a sound is currently playing Source   Edit  
proc isSoundReady(sound: Sound): bool {.importc: "IsSoundReady",
                                        header: "raylib.h", ...raises: [],
                                        tags: [], forbids: [].}
Checks if a sound is ready Source   Edit  
func isTextureReady(texture: Texture2D): bool {.importc: "IsTextureReady",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Check if a texture is ready Source   Edit  
func isWaveReady(wave: Wave): bool {.importc: "IsWaveReady", header: "raylib.h",
                                     ...raises: [], tags: [], forbids: [].}
Checks if wave data is ready Source   Edit  
proc isWindowFocused(): bool {.importc: "IsWindowFocused", header: "raylib.h",
                               ...raises: [], tags: [], forbids: [].}
Check if window is currently focused (only PLATFORM_DESKTOP) Source   Edit  
proc isWindowFullscreen(): bool {.importc: "IsWindowFullscreen",
                                  header: "raylib.h", ...raises: [], tags: [],
                                  forbids: [].}
Check if window is currently fullscreen Source   Edit  
proc isWindowHidden(): bool {.importc: "IsWindowHidden", header: "raylib.h",
                              ...raises: [], tags: [], forbids: [].}
Check if window is currently hidden (only PLATFORM_DESKTOP) Source   Edit  
proc isWindowMaximized(): bool {.importc: "IsWindowMaximized",
                                 header: "raylib.h", ...raises: [], tags: [],
                                 forbids: [].}
Check if window is currently maximized (only PLATFORM_DESKTOP) Source   Edit  
proc isWindowMinimized(): bool {.importc: "IsWindowMinimized",
                                 header: "raylib.h", ...raises: [], tags: [],
                                 forbids: [].}
Check if window is currently minimized (only PLATFORM_DESKTOP) Source   Edit  
proc isWindowReady(): bool {.importc: "IsWindowReady", header: "raylib.h",
                             ...raises: [], tags: [], forbids: [].}
Check if window has been initialized successfully Source   Edit  
proc isWindowResized(): bool {.importc: "IsWindowResized", header: "raylib.h",
                               ...raises: [], tags: [], forbids: [].}
Check if window has been resized last frame Source   Edit  
proc isWindowState(flag: ConfigFlags): bool {.importc: "IsWindowState",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Check if one specific window flag is enabled Source   Edit  
proc len(x: AutomationEventList): int {.inline, ...raises: [], tags: [],
                                        forbids: [].}
Source   Edit  
proc len[T](x: RArray[T]): int {.inline.}
Source   Edit  
proc loadAudioStream(sampleRate: uint32; sampleSize: uint32; channels: uint32): AudioStream {.
    ...raises: [RaylibError], tags: [], forbids: [].}
Load audio stream (to stream raw audio pcm data) Source   Edit  
proc loadAutomationEventList(fileName: cstring): AutomationEventList {.
    importc: "LoadAutomationEventList", header: "raylib.h", ...raises: [],
    tags: [], forbids: [].}
Load automation events list from file, NULL for empty list, capacity = MAX_AUTOMATION_EVENTS Source   Edit  
proc loadFont(fileName: string): Font {....raises: [RaylibError], tags: [],
                                        forbids: [].}
Load font from file into GPU memory (VRAM) Source   Edit  
proc loadFont(fileName: string; fontSize, glyphCount: int32): Font {.
    ...raises: [RaylibError], tags: [], forbids: [].}
Source   Edit  
proc loadFont(fileName: string; fontSize: int32; codepoints: openArray[int32]): Font {.
    ...raises: [RaylibError], tags: [], forbids: [].}
Load font from file with extended parameters, use an empty array for codepoints to load the default character set Source   Edit  
proc loadFontData(fileData: openArray[uint8]; fontSize, glyphCount: int32;
                  type: FontType): RArray[GlyphInfo] {....raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc loadFontData(fileData: openArray[uint8]; fontSize: int32;
                  codepoints: openArray[int32]; type: FontType): RArray[
    GlyphInfo] {....raises: [], tags: [], forbids: [].}
Load font data for further use Source   Edit  
proc loadFontFromData(chars: sink RArray[GlyphInfo]; baseSize, padding: int32;
                      packMethod: int32): Font {....raises: [RaylibError],
    tags: [], forbids: [].}
Load font using chars info Source   Edit  
proc loadFontFromImage(image: Image; key: Color; firstChar: int32): Font {.
    ...raises: [RaylibError], tags: [], forbids: [].}
Load font from Image (XNA style) Source   Edit  
proc loadFontFromMemory(fileType: string; fileData: openArray[uint8];
                        fontSize: int32; codepoints: openArray[int32]): Font {.
    ...raises: [RaylibError], tags: [], forbids: [].}
Load font from memory buffer, fileType refers to extension: i.e. '.ttf' Source   Edit  
proc loadFontFromMemory(fileType: string; fileData: openArray[uint8];
                        fontSize: int32; glyphCount: int32): Font {.
    ...raises: [RaylibError], tags: [], forbids: [].}
Source   Edit  
proc loadImage(fileName: string): Image {....raises: [RaylibError], tags: [],
    forbids: [].}
Load image from file into CPU memory (RAM) Source   Edit  
proc loadImageAnim(fileName: cstring; frames: out int32): Image {.
    importc: "LoadImageAnim", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Load image sequence from file (frames appended to image.data) Source   Edit  
proc loadImageAnimFromMemory(fileType: string; fileData: openArray[uint8];
                             frames: openArray[int32]): Image {.
    ...raises: [RaylibError], tags: [], forbids: [].}
Load image sequence from memory buffer Source   Edit  
proc loadImageColors(image: Image): RArray[Color] {....raises: [], tags: [],
    forbids: [].}
Load color data from image as a Color array (RGBA - 32bit) Source   Edit  
proc loadImageFromMemory(fileType: string; fileData: openArray[uint8]): Image {.
    ...raises: [RaylibError], tags: [], forbids: [].}
Load image from memory buffer, fileType refers to extension: i.e. '.png' Source   Edit  
proc loadImageFromScreen(): Image {.importc: "LoadImageFromScreen",
                                    header: "raylib.h", ...raises: [], tags: [],
                                    forbids: [].}
Load image from screen buffer and (screenshot) Source   Edit  
proc loadImageFromTexture(texture: Texture2D): Image {....raises: [RaylibError],
    tags: [], forbids: [].}
Load image from GPU texture data Source   Edit  
proc loadImagePalette(image: Image; maxPaletteSize: int32): RArray[Color] {.
    ...raises: [], tags: [], forbids: [].}
Load colors palette from image as a Color array (RGBA - 32bit) Source   Edit  
proc loadImageRaw(fileName: string; width, height: int32; format: PixelFormat;
                  headerSize: int32): Image {....raises: [RaylibError], tags: [],
    forbids: [].}
Load image sequence from file (frames appended to image.data) Source   Edit  
proc loadImageSvg(fileNameOrString: string; width, height: int32): Image {.
    ...raises: [RaylibError], tags: [], forbids: [].}
Load image from SVG file data or string with specified size Source   Edit  
proc loadMaterialDefault(): Material {.importc: "LoadMaterialDefault",
                                       header: "raylib.h", ...raises: [], tags: [],
                                       forbids: [].}
Load default material (Supports: DIFFUSE, SPECULAR, NORMAL maps) Source   Edit  
proc loadMaterials(fileName: string): RArray[Material] {....raises: [RaylibError],
    tags: [], forbids: [].}
Load materials from model file Source   Edit  
proc loadModel(fileName: string): Model {....raises: [RaylibError], tags: [],
    forbids: [].}
Load model from files (meshes and materials) Source   Edit  
proc loadModelAnimations(fileName: string): RArray[ModelAnimation] {.
    ...raises: [RaylibError], tags: [], forbids: [].}
Load model animations from file Source   Edit  
proc loadModelFromMesh(mesh: sink Mesh): Model {....raises: [RaylibError],
    tags: [], forbids: [].}
Load model from generated mesh (default material) Source   Edit  
proc loadMusicStream(fileName: string): Music {....raises: [RaylibError], tags: [],
    forbids: [].}
Load music stream from file Source   Edit  
proc loadMusicStreamFromMemory(fileType: string; data: openArray[uint8]): Music {.
    ...raises: [RaylibError], tags: [], forbids: [].}
Load music stream from data Source   Edit  
proc loadRenderTexture(width: int32; height: int32): RenderTexture2D {.
    ...raises: [RaylibError], tags: [], forbids: [].}
Load texture for rendering (framebuffer) Source   Edit  
proc loadShader(vsFileName, fsFileName: string): Shader {....raises: [], tags: [],
    forbids: [].}
Load shader from files and bind default locations Source   Edit  
proc loadShaderFromMemory(vsCode, fsCode: string): Shader {....raises: [],
    tags: [], forbids: [].}
Load shader from code strings and bind default locations Source   Edit  
proc loadSound(fileName: string): Sound {....raises: [RaylibError], tags: [],
    forbids: [].}
Load sound from file Source   Edit  
proc loadSoundAlias(source: Sound): SoundAlias {....raises: [RaylibError],
    tags: [], forbids: [].}
Create a new sound that shares the same sample data as the source sound, does not own the sound data Source   Edit  
proc loadSoundFromWave(wave: Wave): Sound {....raises: [RaylibError], tags: [],
    forbids: [].}
Load sound from wave data Source   Edit  
proc loadTexture(fileName: string): Texture2D {....raises: [RaylibError], tags: [],
    forbids: [].}
Load texture from file into GPU memory (VRAM) Source   Edit  
proc loadTextureCubemap(image: Image; layout: CubemapLayout): TextureCubemap {.
    ...raises: [RaylibError], tags: [], forbids: [].}
Load cubemap from image, multiple image cubemap layouts supported Source   Edit  
proc loadTextureFromData[T: Pixel](pixels: openArray[T]; width: int32;
                                   height: int32): Texture
Load texture using pixels Source   Edit  
proc loadTextureFromImage(image: Image): Texture2D {....raises: [RaylibError],
    tags: [], forbids: [].}
Load texture from image data Source   Edit  
proc loadVrStereoConfig(device: VrDeviceInfo): VrStereoConfig {.
    importc: "LoadVrStereoConfig", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Load VR stereo config for VR simulator device parameters Source   Edit  
proc loadWave(fileName: string): Wave {....raises: [RaylibError], tags: [],
                                        forbids: [].}
Load wave data from file Source   Edit  
proc loadWaveFromMemory(fileType: string; fileData: openArray[uint8]): Wave {.
    ...raises: [RaylibError], tags: [], forbids: [].}
Load wave from memory buffer, fileType refers to extension: i.e. '.wav' Source   Edit  
proc loadWaveSamples(wave: Wave): RArray[float32] {....raises: [], tags: [],
    forbids: [].}
Load samples data from wave as a floats array Source   Edit  
proc locs=(x: var Shader; locs: ShaderLocsPtr) {.inline, ...raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc maps=(x: var Material; maps: MaterialMapsPtr) {.inline, ...raises: [],
    tags: [], forbids: [].}
Source   Edit  
proc materialCount(x: Model): int32 {.inline, ...raises: [], tags: [], forbids: [].}
Source   Edit  
proc maximizeWindow() {.importc: "MaximizeWindow", header: "raylib.h",
                        ...raises: [], tags: [], forbids: [].}
Set window state: maximized, if resizable (only PLATFORM_DESKTOP) Source   Edit  
func measureText(font: Font; text: cstring; fontSize: float32; spacing: float32): Vector2 {.
    importc: "MeasureTextEx", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Measure string size for Font Source   Edit  
proc measureText(text: cstring; fontSize: int32): int32 {.
    importc: "MeasureText", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Measure string width for default font Source   Edit  
proc meshCount(x: Model): int32 {.inline, ...raises: [], tags: [], forbids: [].}
Source   Edit  
proc minimizeWindow() {.importc: "MinimizeWindow", header: "raylib.h",
                        ...raises: [], tags: [], forbids: [].}
Set window state: minimized, if resizable (only PLATFORM_DESKTOP) Source   Edit  
proc pauseAudioStream(stream: AudioStream) {.importc: "PauseAudioStream",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Pause audio stream Source   Edit  
proc pauseMusicStream(music: Music) {.importc: "PauseMusicStream",
                                      header: "raylib.h", ...raises: [], tags: [],
                                      forbids: [].}
Pause music playing Source   Edit  
proc pauseSound(sound: Sound) {.importc: "PauseSound", header: "raylib.h",
                                ...raises: [], tags: [], forbids: [].}
Pause a sound Source   Edit  
proc playAudioStream(stream: AudioStream) {.importc: "PlayAudioStream",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Play audio stream Source   Edit  
proc playAutomationEvent(event: AutomationEvent) {.
    importc: "PlayAutomationEvent", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Play a recorded automation event Source   Edit  
proc playMusicStream(music: Music) {.importc: "PlayMusicStream",
                                     header: "raylib.h", ...raises: [], tags: [],
                                     forbids: [].}
Start music playing Source   Edit  
proc playSound(sound: Sound) {.importc: "PlaySound", header: "raylib.h",
                               ...raises: [], tags: [], forbids: [].}
Play a sound Source   Edit  
proc pollInputEvents() {.importc: "PollInputEvents", header: "raylib.h",
                         ...raises: [], tags: [], forbids: [].}
Register all input events Source   Edit  
proc restoreWindow() {.importc: "RestoreWindow", header: "raylib.h", ...raises: [],
                       tags: [], forbids: [].}
Set window state: not minimized/maximized (only PLATFORM_DESKTOP) Source   Edit  
proc resumeAudioStream(stream: AudioStream) {.importc: "ResumeAudioStream",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Resume audio stream Source   Edit  
proc resumeMusicStream(music: Music) {.importc: "ResumeMusicStream",
                                       header: "raylib.h", ...raises: [], tags: [],
                                       forbids: [].}
Resume playing paused music Source   Edit  
proc resumeSound(sound: Sound) {.importc: "ResumeSound", header: "raylib.h",
                                 ...raises: [], tags: [], forbids: [].}
Resume a paused sound Source   Edit  
proc seekMusicStream(music: Music; position: float32) {.
    importc: "SeekMusicStream", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Seek music to a position (in seconds) Source   Edit  
proc setAudioStreamBufferSizeDefault(size: int32) {.
    importc: "SetAudioStreamBufferSizeDefault", header: "raylib.h", ...raises: [],
    tags: [], forbids: [].}
Default size for new audio streams Source   Edit  
proc setAudioStreamCallback(stream: AudioStream; callback: AudioCallback) {.
    importc: "SetAudioStreamCallback", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Audio thread callback to request new data Source   Edit  
proc setAudioStreamPan(stream: AudioStream; pan: float32) {.
    importc: "SetAudioStreamPan", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Set pan for audio stream (0.5 is centered) Source   Edit  
proc setAudioStreamPitch(stream: AudioStream; pitch: float32) {.
    importc: "SetAudioStreamPitch", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Set pitch for audio stream (1.0 is base level) Source   Edit  
proc setAudioStreamVolume(stream: AudioStream; volume: float32) {.
    importc: "SetAudioStreamVolume", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Set volume for audio stream (1.0 is max level) Source   Edit  
proc setAutomationEventBaseFrame(frame: int32) {.
    importc: "SetAutomationEventBaseFrame", header: "raylib.h", ...raises: [],
    tags: [], forbids: [].}
Set automation event internal base frame to start recording Source   Edit  
proc setAutomationEventList(list: var AutomationEventList) {.
    importc: "SetAutomationEventList", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Set automation event list to record to Source   Edit  
proc setClipboardText(text: cstring) {.importc: "SetClipboardText",
                                       header: "raylib.h", ...raises: [], tags: [],
                                       forbids: [].}
Set clipboard text content Source   Edit  
proc setConfigFlags(flags: Flags[ConfigFlags]) {.importc: "SetConfigFlags",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Setup init configuration flags (view FLAGS) Source   Edit  
proc setExitKey(key: KeyboardKey) {.importc: "SetExitKey", header: "raylib.h",
                                    ...raises: [], tags: [], forbids: [].}
Set a custom key to exit program (default is ESC) Source   Edit  
proc setGamepadMappings(mappings: cstring): int32 {.
    importc: "SetGamepadMappings", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Set internal gamepad mappings (SDL_GameControllerDB) Source   Edit  
proc setGamepadVibration(gamepad: int32; leftMotor: float32; rightMotor: float32) {.
    importc: "SetGamepadVibration", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Set gamepad vibration for both motors Source   Edit  
proc setGesturesEnabled(flags: Flags[Gesture]) {.importc: "SetGesturesEnabled",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Enable a set of gestures using flags Source   Edit  
proc setLoadFileDataCallback(callback: LoadFileDataCallback) {.
    importc: "SetLoadFileDataCallback", header: "raylib.h", ...raises: [],
    tags: [], forbids: [].}
Set custom file binary data loader Source   Edit  
proc setLoadFileTextCallback(callback: LoadFileTextCallback) {.
    importc: "SetLoadFileTextCallback", header: "raylib.h", ...raises: [],
    tags: [], forbids: [].}
Set custom file text data loader Source   Edit  
proc setMasterVolume(volume: float32) {.importc: "SetMasterVolume",
                                        header: "raylib.h", ...raises: [],
                                        tags: [], forbids: [].}
Set master volume (listener) Source   Edit  
proc setMouseCursor(cursor: MouseCursor) {.importc: "SetMouseCursor",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Set mouse cursor Source   Edit  
proc setMouseOffset(offsetX: int32; offsetY: int32) {.importc: "SetMouseOffset",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Set mouse offset Source   Edit  
proc setMousePosition(x: int32; y: int32) {.importc: "SetMousePosition",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Set mouse position XY Source   Edit  
proc setMouseScale(scaleX: float32; scaleY: float32) {.importc: "SetMouseScale",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Set mouse scaling Source   Edit  
proc setMusicPan(music: Music; pan: float32) {.importc: "SetMusicPan",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Set pan for a music (0.5 is center) Source   Edit  
proc setMusicPitch(music: Music; pitch: float32) {.importc: "SetMusicPitch",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Set pitch for a music (1.0 is base level) Source   Edit  
proc setMusicVolume(music: Music; volume: float32) {.importc: "SetMusicVolume",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Set volume for music (1.0 is max level) Source   Edit  
proc setPixelColor[T: Pixel](pixel: var T; color: Color)
Set color formatted into destination pixel pointer Source   Edit  
proc setSaveFileDataCallback(callback: SaveFileDataCallback) {.
    importc: "SetSaveFileDataCallback", header: "raylib.h", ...raises: [],
    tags: [], forbids: [].}
Set custom file binary data saver Source   Edit  
proc setSaveFileTextCallback(callback: SaveFileTextCallback) {.
    importc: "SetSaveFileTextCallback", header: "raylib.h", ...raises: [],
    tags: [], forbids: [].}
Set custom file text data saver Source   Edit  
proc setShaderValue[T: ShaderV](shader: Shader; locIndex: ShaderLocation;
                                value: T)
Set shader uniform value Source   Edit  
proc setShaderValueMatrix(shader: Shader; locIndex: ShaderLocation; mat: Matrix) {.
    importc: "SetShaderValueMatrix", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Set shader uniform value (matrix 4x4) Source   Edit  
proc setShaderValueTexture(shader: Shader; locIndex: ShaderLocation;
                           texture: Texture2D) {.
    importc: "SetShaderValueTexture", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Set shader uniform value for texture (sampler2d) Source   Edit  
proc setShaderValueV[T: ShaderV](shader: Shader; locIndex: ShaderLocation;
                                 value: openArray[T])
Set shader uniform value vector Source   Edit  
proc setShapesTexture(texture: Texture2D; source: Rectangle) {.
    importc: "SetShapesTexture", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Set texture and rectangle to be used on shapes drawing Source   Edit  
proc setSoundPan(sound: Sound; pan: float32) {.importc: "SetSoundPan",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Set pan for a sound (0.5 is center) Source   Edit  
proc setSoundPitch(sound: Sound; pitch: float32) {.importc: "SetSoundPitch",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Set pitch for a sound (1.0 is base level) Source   Edit  
proc setSoundVolume(sound: Sound; volume: float32) {.importc: "SetSoundVolume",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Set volume for a sound (1.0 is max level) Source   Edit  
proc setTargetFPS(fps: int32) {.importc: "SetTargetFPS", header: "raylib.h",
                                ...raises: [], tags: [], forbids: [].}
Set target FPS (maximum) Source   Edit  
proc setTextLineSpacing(spacing: int32) {.importc: "SetTextLineSpacing",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Set vertical line spacing when drawing with line-breaks Source   Edit  
proc setTextureFilter(texture: Texture2D; filter: TextureFilter) {.
    importc: "SetTextureFilter", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Set texture scaling filter mode Source   Edit  
proc setTextureWrap(texture: Texture2D; wrap: TextureWrap) {.
    importc: "SetTextureWrap", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Set texture wrapping mode Source   Edit  
proc setTraceLogCallback(callback: TraceLogCallback) {....raises: [], tags: [],
    forbids: [].}
Set custom trace log Source   Edit  
proc setTraceLogLevel(logLevel: TraceLogLevel) {.importc: "SetTraceLogLevel",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Set the current threshold (minimum) log level Source   Edit  
proc setWindowFocused() {.importc: "SetWindowFocused", header: "raylib.h",
                          ...raises: [], tags: [], forbids: [].}
Set window focused (only PLATFORM_DESKTOP) Source   Edit  
proc setWindowIcon(image: Image) {.importc: "SetWindowIcon", header: "raylib.h",
                                   ...raises: [], tags: [], forbids: [].}
Set icon for window (single image, RGBA 32bit, only PLATFORM_DESKTOP) Source   Edit  
proc setWindowIcons(images: openArray[Image]) {....raises: [], tags: [],
    forbids: [].}
Set icon for window (multiple images, RGBA 32bit, only PLATFORM_DESKTOP) Source   Edit  
proc setWindowMaxSize(width: int32; height: int32) {.
    importc: "SetWindowMaxSize", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Set window maximum dimensions (for FLAG_WINDOW_RESIZABLE) Source   Edit  
proc setWindowMinSize(width: int32; height: int32) {.
    importc: "SetWindowMinSize", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Set window minimum dimensions (for FLAG_WINDOW_RESIZABLE) Source   Edit  
proc setWindowMonitor(monitor: int32) {.importc: "SetWindowMonitor",
                                        header: "raylib.h", ...raises: [],
                                        tags: [], forbids: [].}
Set monitor for the current window Source   Edit  
proc setWindowOpacity(opacity: float32) {.importc: "SetWindowOpacity",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Set window opacity 0.0f..1.0f (only PLATFORM_DESKTOP) Source   Edit  
proc setWindowPosition(x: int32; y: int32) {.importc: "SetWindowPosition",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Set window position on screen (only PLATFORM_DESKTOP) Source   Edit  
proc setWindowSize(width: int32; height: int32) {.importc: "SetWindowSize",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Set window dimensions Source   Edit  
proc setWindowState(flags: Flags[ConfigFlags]) {.importc: "SetWindowState",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Set window configuration state using flags (only PLATFORM_DESKTOP) Source   Edit  
proc setWindowTitle(title: cstring) {.importc: "SetWindowTitle",
                                      header: "raylib.h", ...raises: [], tags: [],
                                      forbids: [].}
Set title for window (only PLATFORM_DESKTOP and PLATFORM_WEB) Source   Edit  
proc shader(x: Material): lent Shader {.inline, ...raises: [], tags: [],
                                        forbids: [].}
Source   Edit  
proc shader(x: var Material): var Shader {.inline, ...raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc shader=(x: var Material; val: Shader) {.nodestroy, inline, ...raises: [],
    tags: [], forbids: [].}
Source   Edit  
proc showCursor() {.importc: "rlShowCursor", header: "raylib.h", ...raises: [],
                    tags: [], forbids: [].}
Shows cursor Source   Edit  
proc startAutomationEventRecording() {.importc: "StartAutomationEventRecording",
                                       header: "raylib.h", ...raises: [], tags: [],
                                       forbids: [].}
Start recording automation events (AutomationEventList must be set) Source   Edit  
proc stopAudioStream(stream: AudioStream) {.importc: "StopAudioStream",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Stop audio stream Source   Edit  
proc stopAutomationEventRecording() {.importc: "StopAutomationEventRecording",
                                      header: "raylib.h", ...raises: [], tags: [],
                                      forbids: [].}
Stop recording automation events Source   Edit  
proc stopMusicStream(music: Music) {.importc: "StopMusicStream",
                                     header: "raylib.h", ...raises: [], tags: [],
                                     forbids: [].}
Stop music playing Source   Edit  
proc stopSound(sound: Sound) {.importc: "StopSound", header: "raylib.h",
                               ...raises: [], tags: [], forbids: [].}
Stop playing a sound Source   Edit  
proc swapScreenBuffer() {.importc: "SwapScreenBuffer", header: "raylib.h",
                          ...raises: [], tags: [], forbids: [].}
Swap back buffer with front buffer (screen drawing) Source   Edit  
proc takeScreenshot(fileName: cstring) {.importc: "TakeScreenshot",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Takes a screenshot of current screen (filename extension defines format) Source   Edit  
proc texture(x: MaterialMap): lent Texture {.inline, ...raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc texture(x: var MaterialMap): var Texture {.inline, ...raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc texture=(x: var MaterialMap; val: Texture) {.nodestroy, inline, ...raises: [],
    tags: [], forbids: [].}
Set texture for a material map type (Diffuse, Specular...) NOTE: Previous texture should be manually unloaded Source   Edit  
proc toggleBorderlessWindowed() {.importc: "ToggleBorderlessWindowed",
                                  header: "raylib.h", ...raises: [], tags: [],
                                  forbids: [].}
Toggle window state: borderless windowed (only PLATFORM_DESKTOP) Source   Edit  
proc toggleFullscreen() {.importc: "ToggleFullscreen", header: "raylib.h",
                          ...raises: [], tags: [], forbids: [].}
Toggle window state: fullscreen/windowed (only PLATFORM_DESKTOP) Source   Edit  
proc toWeakImage(data: openArray[byte]; width, height: int32;
                 format: PixelFormat): WeakImage {.inline, ...raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc toWeakWave(data: openArray[byte];
                frameCount, sampleRate, sampleSize, channels: uint32): WeakWave {.
    inline, ...raises: [], tags: [], forbids: [].}
Source   Edit  
proc traceLog(logLevel: TraceLogLevel; text: cstring) {.importc: "TraceLog",
    varargs, header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Show trace log messages (LOG_DEBUG, LOG_INFO, LOG_WARNING, LOG_ERROR...) Source   Edit  
proc triangleCount(x: Mesh): int32 {.inline, ...raises: [], tags: [], forbids: [].}
Source   Edit  
proc unloadAutomationEventList(list: AutomationEventList) {.
    importc: "UnloadAutomationEventList", header: "raylib.h", ...raises: [],
    tags: [], forbids: [].}
Unload automation events list from file Source   Edit  
proc updateAudioStream[T](stream: var AudioStream; data: openArray[T])
Update audio stream buffers with data Source   Edit  
proc updateCamera(camera: var Camera; mode: CameraMode) {.
    importc: "UpdateCamera", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Update camera position for selected mode Source   Edit  
proc updateCamera(camera: var Camera; movement: Vector3; rotation: Vector3;
                  zoom: float32) {.importc: "UpdateCameraPro",
                                   header: "raylib.h", ...raises: [], tags: [],
                                   forbids: [].}
Update camera movement/rotation Source   Edit  
proc updateMeshBuffer[T](mesh: var Mesh; index: int32; data: openArray[T];
                         offset: int32)
Update mesh vertex data in GPU for a specific buffer index Source   Edit  
proc updateModelAnimation(model: Model; anim: ModelAnimation; frame: int32) {.
    importc: "UpdateModelAnimation", header: "raylib.h", ...raises: [], tags: [],
    forbids: [].}
Update model animation pose Source   Edit  
proc updateMusicStream(music: Music) {.importc: "UpdateMusicStream",
                                       header: "raylib.h", ...raises: [], tags: [],
                                       forbids: [].}
Updates buffers for music streaming Source   Edit  
proc updateSound[T](sound: var Sound; data: openArray[T])
Update sound buffer with new data Source   Edit  
proc updateTexture[T: Pixel](texture: Texture2D; pixels: openArray[T])
Update GPU texture with new data Source   Edit  
proc updateTexture[T: Pixel](texture: Texture2D; rec: Rectangle;
                             pixels: openArray[T])
Update GPU texture rectangle with new data Source   Edit  
proc uploadMesh(mesh: var Mesh; dynamic: bool) {.importc: "UploadMesh",
    header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Upload mesh vertex data in GPU and provide VAO/VBO ids Source   Edit  
proc vertexCount(x: Mesh): int32 {.inline, ...raises: [], tags: [], forbids: [].}
Source   Edit  
proc waitTime(seconds: float) {.importc: "WaitTime", header: "raylib.h",
                                ...raises: [], tags: [], forbids: [].}
Wait for some time (halt program execution) Source   Edit  
func waveCopy(wave: Wave): Wave {.importc: "WaveCopy", header: "raylib.h",
                                  ...raises: [], tags: [], forbids: [].}
Copy a wave to a new wave Source   Edit  
func waveCrop(wave: var Wave; initSample: int32; finalSample: int32) {.
    importc: "WaveCrop", header: "raylib.h", ...raises: [], tags: [], forbids: [].}
Crop a wave to defined samples range Source   Edit  
func waveFormat(wave: var Wave; sampleRate: int32; sampleSize: int32;
                channels: int32) {.importc: "WaveFormat", header: "raylib.h",
                                   ...raises: [], tags: [], forbids: [].}
Convert wave data to desired format Source   Edit  
proc windowShouldClose(): bool {.importc: "WindowShouldClose",
                                 header: "raylib.h", ...raises: [], tags: [],
                                 forbids: [].}
Check if application should close (KEY_ESCAPE pressed or windows close icon clicked) Source   Edit  

Templates

template animNormals(x: Mesh): MeshAnimNormals
Source   Edit  
template animVertices(x: Mesh): MeshAnimVertices
Source   Edit  
template bindPose(x: Model): ModelBindPose
Source   Edit  
template blendMode(mode: BlendMode; body: untyped)
Blending mode (alpha, additive, multiplied, subtract, custom) Source   Edit  
template boneIds(x: Mesh): MeshBoneIds
Source   Edit  
template bones(x: Model): ModelBones
Source   Edit  
template boneWeights(x: Mesh): MeshBoneWeights
Source   Edit  
template colors(x: Mesh): MeshColors
Source   Edit  
template Diffuse(_: typedesc[MaterialMapIndex]): untyped
Source   Edit  
template drawing(body: untyped)
Setup canvas (framebuffer) to start drawing Source   Edit  
template glyphs(x: Font): FontGlyphs
Source   Edit  
template indices(x: Mesh): MeshIndices
Source   Edit  
template kind(x: typedesc[array[2, float32]]): ShaderUniformDataType
Source   Edit  
template kind(x: typedesc[array[2, int32]]): ShaderUniformDataType
Source   Edit  
template kind(x: typedesc[array[3, float32]]): ShaderUniformDataType
Source   Edit  
template kind(x: typedesc[array[3, int32]]): ShaderUniformDataType
Source   Edit  
template kind(x: typedesc[array[4, float32]]): ShaderUniformDataType
Source   Edit  
template kind(x: typedesc[array[4, int32]]): ShaderUniformDataType
Source   Edit  
template kind(x: typedesc[Color]): PixelFormat
Source   Edit  
template kind(x: typedesc[float32]): ShaderUniformDataType
Source   Edit  
template kind(x: typedesc[int32]): ShaderUniformDataType
Source   Edit  
template kind(x: typedesc[Vector2]): ShaderUniformDataType
Source   Edit  
template kind(x: typedesc[Vector3]): ShaderUniformDataType
Source   Edit  
template kind(x: typedesc[Vector4]): ShaderUniformDataType
Source   Edit  
template locs(x: Shader): ShaderLocs
Source   Edit  
template MapDiffuse(_: typedesc[ShaderLocationIndex]): untyped
Source   Edit  
template maps(x: Material): MaterialMaps
Source   Edit  
template MapSpecular(_: typedesc[ShaderLocationIndex]): untyped
Source   Edit  
template materials(x: Model): ModelMaterials
Source   Edit  
template meshes(x: Model): ModelMeshes
Source   Edit  
template mode2D(camera: Camera2D; body: untyped)
2D mode with custom camera (2D) Source   Edit  
template mode3D(camera: Camera3D; body: untyped)
3D mode with custom camera (3D) Source   Edit  
template normals(x: Mesh): MeshNormals
Source   Edit  
template recs(x: Font): FontRecs
Source   Edit  
template scissorMode(x, y, width, height: int32; body: untyped)
Scissor mode (define screen area for following drawing) Source   Edit  
template shaderMode(shader: Shader; body: untyped)
Custom shader drawing Source   Edit  
template Specular(_: typedesc[MaterialMapIndex]): untyped
Source   Edit  
template tangents(x: Mesh): MeshTangents
Source   Edit  
template texcoords(x: Mesh): MeshTexcoords
Source   Edit  
template texcoords2(x: Mesh): MeshTexcoords2
Source   Edit  
template textureMode(target: RenderTexture2D; body: untyped)
Drawing to render texture Source   Edit  
template toColorArray(a: openArray[byte]): untyped
Note: that a should be properly formatted, with a byte representation that aligns with the memory layout of the Color type. Source   Edit  
template toOpenArray(x: RArray): untyped
Source   Edit  
template toOpenArray(x: RArray; first, last: int): untyped
Source   Edit  
template vboId(x: Mesh): MeshVboId
Source   Edit  
template vertices(x: Mesh): MeshVertices
Source   Edit  
template vrStereoMode(config: VrStereoConfig; body: untyped)
Stereo rendering (requires VR simulator) Source   Edit