module Raylib

Constants

ARROWS_SIZE
ARROWS_VISIBLE
ARROW_PADDING
BACKGROUND_COLOR
BASE_COLOR_DISABLED
BASE_COLOR_FOCUSED
BASE_COLOR_NORMAL
BASE_COLOR_PRESSED
BEIGE
BLACK
BLANK
BLEND_ADDITIVE
BLEND_ADD_COLORS
BLEND_ALPHA
BLEND_ALPHA_PREMUL
BLEND_CUSTOM
BLEND_MULTIPLIED
BLEND_SUBTRACT_COLORS
BLUE
BORDER_COLOR_DISABLED
BORDER_COLOR_FOCUSED
BORDER_COLOR_NORMAL
BORDER_COLOR_PRESSED
BORDER_WIDTH
BROWN
BUTTON
CAMERA_CUSTOM
CAMERA_FIRST_PERSON
CAMERA_FREE
CAMERA_ORBITAL
CAMERA_ORTHOGRAPHIC
CAMERA_PERSPECTIVE
CAMERA_THIRD_PERSON
CHECKBOX
CHECK_PADDING
COLORPICKER
COLOR_SELECTOR_SIZE
COMBOBOX
COMBO_BUTTON_SPACING
COMBO_BUTTON_WIDTH
CUBEMAP_LAYOUT_AUTO_DETECT
CUBEMAP_LAYOUT_CROSS_FOUR_BY_THREE
CUBEMAP_LAYOUT_CROSS_THREE_BY_FOUR
CUBEMAP_LAYOUT_LINE_HORIZONTAL
CUBEMAP_LAYOUT_LINE_VERTICAL
CUBEMAP_LAYOUT_PANORAMA
Camera
DARKBLUE
DARKBROWN
DARKGRAY
DARKGREEN
DARKPURPLE
DEFAULT
DEG2RAD
FLAG_FULLSCREEN_MODE
FLAG_INTERLACED_HINT
FLAG_MSAA_4X_HINT
FLAG_VSYNC_HINT

Enum

FLAG_WINDOW_ALWAYS_RUN
FLAG_WINDOW_HIDDEN
FLAG_WINDOW_HIGHDPI
FLAG_WINDOW_MAXIMIZED
FLAG_WINDOW_MINIMIZED
FLAG_WINDOW_RESIZABLE
FLAG_WINDOW_TOPMOST
FLAG_WINDOW_TRANSPARENT
FLAG_WINDOW_UNDECORATED
FLAG_WINDOW_UNFOCUSED
FONT_BITMAP
FONT_DEFAULT
FONT_SDF
GAMEPAD_AXIS_LEFT_TRIGGER
GAMEPAD_AXIS_LEFT_X
GAMEPAD_AXIS_LEFT_Y
GAMEPAD_AXIS_RIGHT_TRIGGER
GAMEPAD_AXIS_RIGHT_X
GAMEPAD_AXIS_RIGHT_Y
GAMEPAD_BUTTON_LEFT_FACE_DOWN
GAMEPAD_BUTTON_LEFT_FACE_LEFT
GAMEPAD_BUTTON_LEFT_FACE_RIGHT
GAMEPAD_BUTTON_LEFT_FACE_UP
GAMEPAD_BUTTON_LEFT_THUMB
GAMEPAD_BUTTON_LEFT_TRIGGER_1
GAMEPAD_BUTTON_LEFT_TRIGGER_2
GAMEPAD_BUTTON_MIDDLE
GAMEPAD_BUTTON_MIDDLE_LEFT
GAMEPAD_BUTTON_MIDDLE_RIGHT
GAMEPAD_BUTTON_RIGHT_FACE_DOWN
GAMEPAD_BUTTON_RIGHT_FACE_LEFT
GAMEPAD_BUTTON_RIGHT_FACE_RIGHT
GAMEPAD_BUTTON_RIGHT_FACE_UP
GAMEPAD_BUTTON_RIGHT_THUMB
GAMEPAD_BUTTON_RIGHT_TRIGGER_1
GAMEPAD_BUTTON_RIGHT_TRIGGER_2
GAMEPAD_BUTTON_UNKNOWN
GESTURE_DOUBLETAP
GESTURE_DRAG
GESTURE_HOLD
GESTURE_NONE
GESTURE_PINCH_IN
GESTURE_PINCH_OUT
GESTURE_SWIPE_DOWN
GESTURE_SWIPE_LEFT
GESTURE_SWIPE_RIGHT
GESTURE_SWIPE_UP
GESTURE_TAP
GOLD
GRAY
GREEN
GROUP_PADDING
GUI_STATE_DISABLED
GUI_STATE_FOCUSED
GUI_STATE_NORMAL

Enum

GUI_STATE_PRESSED
GUI_TEXT_ALIGN_CENTER
GUI_TEXT_ALIGN_LEFT
GUI_TEXT_ALIGN_RIGHT
HUEBAR_PADDING
HUEBAR_SELECTOR_HEIGHT
HUEBAR_SELECTOR_OVERFLOW
HUEBAR_WIDTH
KEY_A
KEY_APOSTROPHE
KEY_B
KEY_BACK
KEY_BACKSLASH
KEY_BACKSPACE
KEY_C
KEY_CAPS_LOCK
KEY_COMMA
KEY_D
KEY_DELETE
KEY_DOWN
KEY_E
KEY_EIGHT
KEY_END
KEY_ENTER
KEY_EQUAL
KEY_ESCAPE
KEY_F
KEY_F1
KEY_F10
KEY_F11
KEY_F12
KEY_F2
KEY_F3
KEY_F4
KEY_F5
KEY_F6
KEY_F7
KEY_F8
KEY_F9
KEY_FIVE
KEY_FOUR
KEY_G
KEY_GRAVE
KEY_H
KEY_HOME
KEY_I
KEY_INSERT
KEY_J
KEY_K
KEY_KB_MENU
KEY_KP_0
KEY_KP_1
KEY_KP_2
KEY_KP_3
KEY_KP_4
KEY_KP_5
KEY_KP_6
KEY_KP_7
KEY_KP_8
KEY_KP_9
KEY_KP_ADD
KEY_KP_DECIMAL
KEY_KP_DIVIDE
KEY_KP_ENTER
KEY_KP_EQUAL
KEY_KP_MULTIPLY
KEY_KP_SUBTRACT
KEY_L
KEY_LEFT
KEY_LEFT_ALT
KEY_LEFT_BRACKET
KEY_LEFT_CONTROL
KEY_LEFT_SHIFT
KEY_LEFT_SUPER
KEY_M
KEY_MENU
KEY_MINUS
KEY_N
KEY_NINE
KEY_NULL
KEY_NUM_LOCK
KEY_O
KEY_ONE
KEY_P
KEY_PAGE_DOWN
KEY_PAGE_UP
KEY_PAUSE
KEY_PERIOD
KEY_PRINT_SCREEN
KEY_Q
KEY_R
KEY_RIGHT
KEY_RIGHT_ALT
KEY_RIGHT_BRACKET
KEY_RIGHT_CONTROL
KEY_RIGHT_SHIFT
KEY_RIGHT_SUPER
KEY_S
KEY_SCROLL_LOCK
KEY_SEMICOLON
KEY_SEVEN
KEY_SIX
KEY_SLASH
KEY_SPACE
KEY_T
KEY_TAB
KEY_THREE
KEY_TWO
KEY_U
KEY_UP
KEY_V
KEY_VOLUME_DOWN
KEY_VOLUME_UP
KEY_W
KEY_X
KEY_Y
KEY_Z
KEY_ZERO
LABEL
LIGHTGRAY
LIME
LINE_COLOR
LISTVIEW
LIST_ITEMS_HEIGHT
LIST_ITEMS_SPACING
LOG_ALL
LOG_DEBUG
LOG_ERROR
LOG_FATAL
LOG_INFO
LOG_NONE
LOG_TRACE
LOG_WARNING
MAGENTA
MAROON
MATERIAL_MAP_ALBEDO
MATERIAL_MAP_BRDF
MATERIAL_MAP_CUBEMAP
MATERIAL_MAP_EMISSION
MATERIAL_MAP_HEIGHT
MATERIAL_MAP_IRRADIANCE
MATERIAL_MAP_METALNESS
MATERIAL_MAP_NORMAL
MATERIAL_MAP_OCCLUSION
MATERIAL_MAP_PREFILTER
MATERIAL_MAP_ROUGHNESS
MOUSE_BUTTON_BACK
MOUSE_BUTTON_EXTRA
MOUSE_BUTTON_FORWARD
MOUSE_BUTTON_LEFT
MOUSE_BUTTON_MIDDLE
MOUSE_BUTTON_RIGHT
MOUSE_BUTTON_SIDE
MOUSE_CURSOR_ARROW
MOUSE_CURSOR_CROSSHAIR
MOUSE_CURSOR_DEFAULT
MOUSE_CURSOR_IBEAM
MOUSE_CURSOR_NOT_ALLOWED
MOUSE_CURSOR_POINTING_HAND
MOUSE_CURSOR_RESIZE_ALL
MOUSE_CURSOR_RESIZE_EW
MOUSE_CURSOR_RESIZE_NESW
MOUSE_CURSOR_RESIZE_NS
MOUSE_CURSOR_RESIZE_NWSE
NPATCH_NINE_PATCH
NPATCH_THREE_PATCH_HORIZONTAL
NPATCH_THREE_PATCH_VERTICAL
OPENGL_11

Enum

OPENGL_21
OPENGL_33
OPENGL_43
OPENGL_ES_20
ORANGE
PHYSAC_CIRCLE_VERTICES
PHYSAC_COLLISION_ITERATIONS
PHYSAC_MAX_BODIES

Define/Macro

PHYSAC_MAX_MANIFOLDS
PHYSAC_MAX_VERTICES
PHYSAC_PENETRATION_ALLOWANCE
PHYSAC_PENETRATION_CORRECTION
PHYSAC_PI
PHYSICS_CIRCLE

Enum

PHYSICS_POLYGON
PINK
PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA
PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA
PIXELFORMAT_COMPRESSED_DXT1_RGB
PIXELFORMAT_COMPRESSED_DXT1_RGBA
PIXELFORMAT_COMPRESSED_DXT3_RGBA
PIXELFORMAT_COMPRESSED_DXT5_RGBA
PIXELFORMAT_COMPRESSED_ETC1_RGB
PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA
PIXELFORMAT_COMPRESSED_ETC2_RGB
PIXELFORMAT_COMPRESSED_PVRT_RGB
PIXELFORMAT_COMPRESSED_PVRT_RGBA
PIXELFORMAT_UNCOMPRESSED_GRAYSCALE
PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA
PIXELFORMAT_UNCOMPRESSED_R32
PIXELFORMAT_UNCOMPRESSED_R32G32B32
PIXELFORMAT_UNCOMPRESSED_R32G32B32A32
PIXELFORMAT_UNCOMPRESSED_R4G4B4A4
PIXELFORMAT_UNCOMPRESSED_R5G5B5A1
PIXELFORMAT_UNCOMPRESSED_R5G6B5
PIXELFORMAT_UNCOMPRESSED_R8G8B8
PIXELFORMAT_UNCOMPRESSED_R8G8B8A8
PROGRESSBAR
PROGRESS_PADDING
PURPLE
Quaternion
RAD2DEG
RAYGUI_ICON_1UP
RAYGUI_ICON_203
RAYGUI_ICON_204
RAYGUI_ICON_205
RAYGUI_ICON_206
RAYGUI_ICON_207
RAYGUI_ICON_208
RAYGUI_ICON_209
RAYGUI_ICON_210
RAYGUI_ICON_211
RAYGUI_ICON_212
RAYGUI_ICON_213
RAYGUI_ICON_214
RAYGUI_ICON_215
RAYGUI_ICON_216
RAYGUI_ICON_217
RAYGUI_ICON_218
RAYGUI_ICON_219
RAYGUI_ICON_220
RAYGUI_ICON_221
RAYGUI_ICON_222
RAYGUI_ICON_223
RAYGUI_ICON_224
RAYGUI_ICON_225
RAYGUI_ICON_226
RAYGUI_ICON_227
RAYGUI_ICON_228
RAYGUI_ICON_229
RAYGUI_ICON_230
RAYGUI_ICON_231
RAYGUI_ICON_232
RAYGUI_ICON_233
RAYGUI_ICON_234
RAYGUI_ICON_235
RAYGUI_ICON_236
RAYGUI_ICON_237
RAYGUI_ICON_238
RAYGUI_ICON_239
RAYGUI_ICON_240
RAYGUI_ICON_241
RAYGUI_ICON_242
RAYGUI_ICON_243
RAYGUI_ICON_244
RAYGUI_ICON_245
RAYGUI_ICON_246
RAYGUI_ICON_247
RAYGUI_ICON_248
RAYGUI_ICON_249
RAYGUI_ICON_250
RAYGUI_ICON_251
RAYGUI_ICON_252
RAYGUI_ICON_253
RAYGUI_ICON_254
RAYGUI_ICON_255
RAYGUI_ICON_ALPHA_CLEAR
RAYGUI_ICON_ALPHA_MULTIPLY
RAYGUI_ICON_ARROW_DOWN
RAYGUI_ICON_ARROW_DOWN_FILL
RAYGUI_ICON_ARROW_LEFT
RAYGUI_ICON_ARROW_LEFT_FILL
RAYGUI_ICON_ARROW_RIGHT
RAYGUI_ICON_ARROW_RIGHT_FILL
RAYGUI_ICON_ARROW_UP
RAYGUI_ICON_ARROW_UP_FILL
RAYGUI_ICON_AUDIO
RAYGUI_ICON_BIN
RAYGUI_ICON_BOX
RAYGUI_ICON_BOX_BOTTOM
RAYGUI_ICON_BOX_BOTTOM_LEFT
RAYGUI_ICON_BOX_BOTTOM_RIGHT
RAYGUI_ICON_BOX_CENTER
RAYGUI_ICON_BOX_CIRCLE_MASK
RAYGUI_ICON_BOX_CONCENTRIC
RAYGUI_ICON_BOX_CORNERS_BIG
RAYGUI_ICON_BOX_CORNERS_SMALL
RAYGUI_ICON_BOX_DOTS_BIG
RAYGUI_ICON_BOX_DOTS_SMALL
RAYGUI_ICON_BOX_GRID
RAYGUI_ICON_BOX_GRID_BIG
RAYGUI_ICON_BOX_LEFT
RAYGUI_ICON_BOX_MULTISIZE
RAYGUI_ICON_BOX_RIGHT
RAYGUI_ICON_BOX_TOP
RAYGUI_ICON_BOX_TOP_LEFT
RAYGUI_ICON_BOX_TOP_RIGHT
RAYGUI_ICON_BRUSH_CLASSIC
RAYGUI_ICON_BRUSH_PAINTER
RAYGUI_ICON_CAMERA
RAYGUI_ICON_CLOCK
RAYGUI_ICON_COIN
RAYGUI_ICON_COLOR_BUCKET
RAYGUI_ICON_COLOR_PICKER
RAYGUI_ICON_CORNER
RAYGUI_ICON_CRACK
RAYGUI_ICON_CRACK_POINTS
RAYGUI_ICON_CROP
RAYGUI_ICON_CROP_ALPHA
RAYGUI_ICON_CROSS
RAYGUI_ICON_CROSSLINE
RAYGUI_ICON_CROSS_SMALL
RAYGUI_ICON_CUBE
RAYGUI_ICON_CUBE_FACE_BACK
RAYGUI_ICON_CUBE_FACE_BOTTOM
RAYGUI_ICON_CUBE_FACE_FRONT
RAYGUI_ICON_CUBE_FACE_LEFT
RAYGUI_ICON_CUBE_FACE_RIGHT
RAYGUI_ICON_CUBE_FACE_TOP
RAYGUI_ICON_CURSOR_CLASSIC
RAYGUI_ICON_CURSOR_HAND
RAYGUI_ICON_CURSOR_MOVE
RAYGUI_ICON_CURSOR_MOVE_FILL
RAYGUI_ICON_CURSOR_POINTER
RAYGUI_ICON_CURSOR_SCALE
RAYGUI_ICON_CURSOR_SCALE_FILL
RAYGUI_ICON_CURSOR_SCALE_LEFT
RAYGUI_ICON_CURSOR_SCALE_LEFT_FILL
RAYGUI_ICON_CURSOR_SCALE_RIGHT
RAYGUI_ICON_CURSOR_SCALE_RIGHT_FILL
RAYGUI_ICON_DEMON
RAYGUI_ICON_DITHERING
RAYGUI_ICON_DOOR
RAYGUI_ICON_EMPTYBOX
RAYGUI_ICON_EMPTYBOX_SMALL
RAYGUI_ICON_EXIT
RAYGUI_ICON_EXPLOSION
RAYGUI_ICON_EYE_OFF
RAYGUI_ICON_EYE_ON
RAYGUI_ICON_FILETYPE_ALPHA
RAYGUI_ICON_FILETYPE_AUDIO
RAYGUI_ICON_FILETYPE_BINARY
RAYGUI_ICON_FILETYPE_HOME
RAYGUI_ICON_FILETYPE_IMAGE
RAYGUI_ICON_FILETYPE_INFO
RAYGUI_ICON_FILETYPE_PLAY
RAYGUI_ICON_FILETYPE_TEXT
RAYGUI_ICON_FILETYPE_VIDEO
RAYGUI_ICON_FILE_COPY
RAYGUI_ICON_FILE_CUT
RAYGUI_ICON_FILE_DELETE
RAYGUI_ICON_FILE_EXPORT
RAYGUI_ICON_FILE_NEW
RAYGUI_ICON_FILE_OPEN
RAYGUI_ICON_FILE_PASTE
RAYGUI_ICON_FILE_SAVE
RAYGUI_ICON_FILE_SAVE_CLASSIC
RAYGUI_ICON_FILTER
RAYGUI_ICON_FILTER_BILINEAR
RAYGUI_ICON_FILTER_POINT
RAYGUI_ICON_FILTER_TOP
RAYGUI_ICON_FOLDER_FILE_OPEN
RAYGUI_ICON_FOLDER_OPEN
RAYGUI_ICON_FOLDER_SAVE
RAYGUI_ICON_FOUR_BOXES
RAYGUI_ICON_FX
RAYGUI_ICON_GEAR
RAYGUI_ICON_GEAR_BIG
RAYGUI_ICON_GEAR_EX
RAYGUI_ICON_GRID
RAYGUI_ICON_GRID_FILL
RAYGUI_ICON_HAND_POINTER
RAYGUI_ICON_HEART
RAYGUI_ICON_HELP
RAYGUI_ICON_HEX
RAYGUI_ICON_HIDPI
RAYGUI_ICON_HOUSE
RAYGUI_ICON_INFO
RAYGUI_ICON_KEY
RAYGUI_ICON_LASER
RAYGUI_ICON_LAYERS
RAYGUI_ICON_LAYERS_VISIBLE
RAYGUI_ICON_LENS
RAYGUI_ICON_LENS_BIG
RAYGUI_ICON_LIFE_BARS
RAYGUI_ICON_LOCK_CLOSE
RAYGUI_ICON_LOCK_OPEN
RAYGUI_ICON_MAGNET
RAYGUI_ICON_MAILBOX
RAYGUI_ICON_MIPMAPS
RAYGUI_ICON_MODE_2D
RAYGUI_ICON_MODE_3D
RAYGUI_ICON_MONITOR
RAYGUI_ICON_MUTATE
RAYGUI_ICON_MUTATE_FILL
RAYGUI_ICON_NONE
RAYGUI_ICON_NOTEBOOK
RAYGUI_ICON_OK_TICK
RAYGUI_ICON_PENCIL
RAYGUI_ICON_PENCIL_BIG
RAYGUI_ICON_PHOTO_CAMERA
RAYGUI_ICON_PHOTO_CAMERA_FLASH
RAYGUI_ICON_PLAYER
RAYGUI_ICON_PLAYER_JUMP
RAYGUI_ICON_PLAYER_NEXT
RAYGUI_ICON_PLAYER_PAUSE
RAYGUI_ICON_PLAYER_PLAY
RAYGUI_ICON_PLAYER_PLAY_BACK
RAYGUI_ICON_PLAYER_PREVIOUS
RAYGUI_ICON_PLAYER_RECORD
RAYGUI_ICON_PLAYER_STOP
RAYGUI_ICON_POT
RAYGUI_ICON_PRINTER
RAYGUI_ICON_REDO
RAYGUI_ICON_REDO_FILL
RAYGUI_ICON_REPEAT
RAYGUI_ICON_REPEAT_FILL
RAYGUI_ICON_REREDO
RAYGUI_ICON_REREDO_FILL
RAYGUI_ICON_RESIZE
RAYGUI_ICON_ROTATE
RAYGUI_ICON_ROTATE_FILL
RAYGUI_ICON_RUBBER
RAYGUI_ICON_SCALE
RAYGUI_ICON_SHIELD
RAYGUI_ICON_SHUFFLE
RAYGUI_ICON_SHUFFLE_FILL
RAYGUI_ICON_SPECIAL
RAYGUI_ICON_SQUARE_TOGGLE
RAYGUI_ICON_STAR
RAYGUI_ICON_SUITCASE
RAYGUI_ICON_SUITCASE_ZIP
RAYGUI_ICON_SYMMETRY
RAYGUI_ICON_SYMMETRY_HORIZONTAL
RAYGUI_ICON_SYMMETRY_VERTICAL
RAYGUI_ICON_TARGET
RAYGUI_ICON_TARGET_BIG
RAYGUI_ICON_TARGET_BIG_FILL
RAYGUI_ICON_TARGET_MOVE
RAYGUI_ICON_TARGET_MOVE_FILL
RAYGUI_ICON_TARGET_POINT
RAYGUI_ICON_TARGET_SMALL
RAYGUI_ICON_TARGET_SMALL_FILL
RAYGUI_ICON_TEXT_A
RAYGUI_ICON_TEXT_NOTES
RAYGUI_ICON_TEXT_POPUP
RAYGUI_ICON_TEXT_T
RAYGUI_ICON_TOOLS
RAYGUI_ICON_UNDO
RAYGUI_ICON_UNDO_FILL
RAYGUI_ICON_VERTICAL_BARS
RAYGUI_ICON_VERTICAL_BARS_FILL
RAYGUI_ICON_WATER_DROP
RAYGUI_ICON_WAVE
RAYGUI_ICON_WAVE_SINUS
RAYGUI_ICON_WAVE_SQUARE
RAYGUI_ICON_WAVE_TRIANGULAR
RAYGUI_ICON_WINDOW
RAYGUI_ICON_ZOOM_ALL
RAYGUI_ICON_ZOOM_BIG
RAYGUI_ICON_ZOOM_CENTER
RAYGUI_ICON_ZOOM_MEDIUM
RAYGUI_ICON_ZOOM_SMALL
RAYGUI_VERSION

Define/Macro

RAYLIB_VERSION

Define/Macro

RAYWHITE
RED
RESERVED
RLGL_VERSION

Define/Macro

RL_ATTACHMENT_COLOR_CHANNEL0
RL_ATTACHMENT_COLOR_CHANNEL1
RL_ATTACHMENT_COLOR_CHANNEL2
RL_ATTACHMENT_COLOR_CHANNEL3
RL_ATTACHMENT_COLOR_CHANNEL4
RL_ATTACHMENT_COLOR_CHANNEL5
RL_ATTACHMENT_COLOR_CHANNEL6
RL_ATTACHMENT_COLOR_CHANNEL7
RL_ATTACHMENT_CUBEMAP_NEGATIVE_X
RL_ATTACHMENT_CUBEMAP_NEGATIVE_Y
RL_ATTACHMENT_CUBEMAP_NEGATIVE_Z
RL_ATTACHMENT_CUBEMAP_POSITIVE_X
RL_ATTACHMENT_CUBEMAP_POSITIVE_Y
RL_ATTACHMENT_CUBEMAP_POSITIVE_Z
RL_ATTACHMENT_DEPTH
RL_ATTACHMENT_RENDERBUFFER
RL_ATTACHMENT_STENCIL
RL_ATTACHMENT_TEXTURE2D
RL_BLEND_ADDITIVE
RL_BLEND_ADD_COLORS
RL_BLEND_ALPHA
RL_BLEND_ALPHA_PREMUL
RL_BLEND_CUSTOM
RL_BLEND_MULTIPLIED
RL_BLEND_SUBTRACT_COLORS
RL_COMPUTE_SHADER
RL_CULL_DISTANCE_FAR
RL_CULL_DISTANCE_NEAR
RL_DEFAULT_BATCH_BUFFERS
RL_DEFAULT_BATCH_BUFFER_ELEMENTS
RL_DEFAULT_BATCH_DRAWCALLS
RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS
RL_DYNAMIC_COPY
RL_DYNAMIC_DRAW
RL_DYNAMIC_READ
RL_FLOAT
RL_FRAGMENT_SHADER
RL_LINES
RL_LOG_ALL
RL_LOG_DEBUG
RL_LOG_ERROR
RL_LOG_FATAL
RL_LOG_INFO
RL_LOG_NONE
RL_LOG_TRACE
RL_LOG_WARNING
RL_MAX_MATRIX_STACK_SIZE
RL_MAX_SHADER_LOCATIONS
RL_MODELVIEW
RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA
RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA
RL_PIXELFORMAT_COMPRESSED_DXT1_RGB
RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA
RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA
RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA
RL_PIXELFORMAT_COMPRESSED_ETC1_RGB
RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA
RL_PIXELFORMAT_COMPRESSED_ETC2_RGB
RL_PIXELFORMAT_COMPRESSED_PVRT_RGB
RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA
RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE
RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA
RL_PIXELFORMAT_UNCOMPRESSED_R32
RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32
RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32
RL_PIXELFORMAT_UNCOMPRESSED_R4G4B4A4
RL_PIXELFORMAT_UNCOMPRESSED_R5G5B5A1
RL_PIXELFORMAT_UNCOMPRESSED_R5G6B5
RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8
RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8
RL_PROJECTION
RL_QUADS
RL_SHADER_ATTRIB_FLOAT
RL_SHADER_ATTRIB_VEC2
RL_SHADER_ATTRIB_VEC3
RL_SHADER_ATTRIB_VEC4
RL_SHADER_LOC_COLOR_AMBIENT
RL_SHADER_LOC_COLOR_DIFFUSE
RL_SHADER_LOC_COLOR_SPECULAR
RL_SHADER_LOC_MAP_ALBEDO
RL_SHADER_LOC_MAP_BRDF
RL_SHADER_LOC_MAP_CUBEMAP
RL_SHADER_LOC_MAP_EMISSION
RL_SHADER_LOC_MAP_HEIGHT
RL_SHADER_LOC_MAP_IRRADIANCE
RL_SHADER_LOC_MAP_METALNESS
RL_SHADER_LOC_MAP_NORMAL
RL_SHADER_LOC_MAP_OCCLUSION
RL_SHADER_LOC_MAP_PREFILTER
RL_SHADER_LOC_MAP_ROUGHNESS
RL_SHADER_LOC_MATRIX_MODEL
RL_SHADER_LOC_MATRIX_MVP
RL_SHADER_LOC_MATRIX_NORMAL
RL_SHADER_LOC_MATRIX_PROJECTION
RL_SHADER_LOC_MATRIX_VIEW
RL_SHADER_LOC_VECTOR_VIEW
RL_SHADER_LOC_VERTEX_COLOR
RL_SHADER_LOC_VERTEX_NORMAL
RL_SHADER_LOC_VERTEX_POSITION
RL_SHADER_LOC_VERTEX_TANGENT
RL_SHADER_LOC_VERTEX_TEXCOORD01
RL_SHADER_LOC_VERTEX_TEXCOORD02
RL_SHADER_UNIFORM_FLOAT
RL_SHADER_UNIFORM_INT
RL_SHADER_UNIFORM_IVEC2
RL_SHADER_UNIFORM_IVEC3
RL_SHADER_UNIFORM_IVEC4
RL_SHADER_UNIFORM_SAMPLER2D
RL_SHADER_UNIFORM_VEC2
RL_SHADER_UNIFORM_VEC3
RL_SHADER_UNIFORM_VEC4
RL_STATIC_COPY
RL_STATIC_DRAW
RL_STATIC_READ
RL_STREAM_COPY
RL_STREAM_DRAW
RL_STREAM_READ
RL_TEXTURE
RL_TEXTURE_FILTER_ANISOTROPIC
RL_TEXTURE_FILTER_ANISOTROPIC_16X
RL_TEXTURE_FILTER_ANISOTROPIC_4X
RL_TEXTURE_FILTER_ANISOTROPIC_8X
RL_TEXTURE_FILTER_BILINEAR
RL_TEXTURE_FILTER_LINEAR
RL_TEXTURE_FILTER_LINEAR_MIP_NEAREST
RL_TEXTURE_FILTER_MIP_LINEAR
RL_TEXTURE_FILTER_MIP_NEAREST
RL_TEXTURE_FILTER_NEAREST
RL_TEXTURE_FILTER_NEAREST_MIP_LINEAR
RL_TEXTURE_FILTER_POINT
RL_TEXTURE_FILTER_TRILINEAR
RL_TEXTURE_MAG_FILTER
RL_TEXTURE_MIN_FILTER
RL_TEXTURE_WRAP_CLAMP
RL_TEXTURE_WRAP_MIRROR_CLAMP
RL_TEXTURE_WRAP_MIRROR_REPEAT
RL_TEXTURE_WRAP_REPEAT
RL_TEXTURE_WRAP_S
RL_TEXTURE_WRAP_T
RL_TRIANGLES
RL_UNSIGNED_BYTE
RL_VERTEX_SHADER
RenderTexture2D
SCROLLBAR
SCROLLBAR_LEFT_SIDE
SCROLLBAR_RIGHT_SIDE
SCROLLBAR_SIDE
SCROLLBAR_WIDTH
SCROLL_PADDING
SCROLL_SLIDER_PADDING
SCROLL_SLIDER_SIZE
SCROLL_SPEED
SHADER_ATTRIB_FLOAT
SHADER_ATTRIB_VEC2
SHADER_ATTRIB_VEC3
SHADER_ATTRIB_VEC4
SHADER_LOC_COLOR_AMBIENT
SHADER_LOC_COLOR_DIFFUSE
SHADER_LOC_COLOR_SPECULAR
SHADER_LOC_MAP_ALBEDO
SHADER_LOC_MAP_BRDF
SHADER_LOC_MAP_CUBEMAP
SHADER_LOC_MAP_EMISSION
SHADER_LOC_MAP_HEIGHT
SHADER_LOC_MAP_IRRADIANCE
SHADER_LOC_MAP_METALNESS
SHADER_LOC_MAP_NORMAL
SHADER_LOC_MAP_OCCLUSION
SHADER_LOC_MAP_PREFILTER
SHADER_LOC_MAP_ROUGHNESS
SHADER_LOC_MATRIX_MODEL
SHADER_LOC_MATRIX_MVP
SHADER_LOC_MATRIX_NORMAL
SHADER_LOC_MATRIX_PROJECTION
SHADER_LOC_MATRIX_VIEW
SHADER_LOC_VECTOR_VIEW
SHADER_LOC_VERTEX_COLOR
SHADER_LOC_VERTEX_NORMAL
SHADER_LOC_VERTEX_POSITION
SHADER_LOC_VERTEX_TANGENT
SHADER_LOC_VERTEX_TEXCOORD01
SHADER_LOC_VERTEX_TEXCOORD02
SHADER_UNIFORM_FLOAT
SHADER_UNIFORM_INT
SHADER_UNIFORM_IVEC2
SHADER_UNIFORM_IVEC3
SHADER_UNIFORM_IVEC4
SHADER_UNIFORM_SAMPLER2D
SHADER_UNIFORM_VEC2
SHADER_UNIFORM_VEC3
SHADER_UNIFORM_VEC4
SKYBLUE
SLIDER
SLIDER_PADDING
SLIDER_WIDTH
SPINNER
SPIN_BUTTON_SPACING
SPIN_BUTTON_WIDTH
STATUSBAR
TEXTBOX
TEXTURE_FILTER_ANISOTROPIC_16X
TEXTURE_FILTER_ANISOTROPIC_4X
TEXTURE_FILTER_ANISOTROPIC_8X
TEXTURE_FILTER_BILINEAR
TEXTURE_FILTER_POINT
TEXTURE_FILTER_TRILINEAR
TEXTURE_WRAP_CLAMP
TEXTURE_WRAP_MIRROR_CLAMP
TEXTURE_WRAP_MIRROR_REPEAT
TEXTURE_WRAP_REPEAT
TEXT_ALIGNMENT
TEXT_COLOR_DISABLED
TEXT_COLOR_FOCUSED
TEXT_COLOR_NORMAL
TEXT_COLOR_PRESSED
TEXT_INNER_PADDING
TEXT_LINES_SPACING
TEXT_PADDING
TEXT_SIZE
TEXT_SPACING
TOGGLE
Texture2D
TextureCubemap
VALUEBOX
VIOLET
WHITE
YELLOW

Public Class Methods

load_lib(libpath, raygui_libpath: nil, physac_libpath: nil) click to toggle source
# File lib/raylib.rb, line 17
def self.load_lib(libpath, raygui_libpath: nil, physac_libpath: nil)

  unless @@raylib_import_done
    begin
      lib_paths = [libpath, raygui_libpath, physac_libpath].compact

      ffi_lib_flags :now, :global
      ffi_lib *lib_paths
      setup_symbols()

      setup_raygui_symbols() if raygui_libpath != nil
      setup_physac_symbols() if physac_libpath != nil
    rescue => error
      puts error
    end
  end

end
setup_physac_symbols() click to toggle source

Function

# File lib/physac.rb, line 104
def self.setup_physac_symbols()
  symbols = [
    :InitPhysics,
    :RunPhysicsStep,
    :SetPhysicsTimeStep,
    :IsPhysicsEnabled,
    :SetPhysicsGravity,
    :CreatePhysicsBodyCircle,
    :CreatePhysicsBodyRectangle,
    :CreatePhysicsBodyPolygon,
    :PhysicsAddForce,
    :PhysicsAddTorque,
    :PhysicsShatter,
    :GetPhysicsBodiesCount,
    :GetPhysicsBody,
    :GetPhysicsShapeType,
    :GetPhysicsShapeVerticesCount,
    :GetPhysicsShapeVertex,
    :SetPhysicsBodyRotation,
    :DestroyPhysicsBody,
    :ClosePhysics,
  ]
  args = {
    :InitPhysics => [],
    :RunPhysicsStep => [],
    :SetPhysicsTimeStep => [:double],
    :IsPhysicsEnabled => [],
    :SetPhysicsGravity => [:float, :float],
    :CreatePhysicsBodyCircle => [Vector2.by_value, :float, :float],
    :CreatePhysicsBodyRectangle => [Vector2.by_value, :float, :float, :float],
    :CreatePhysicsBodyPolygon => [Vector2.by_value, :float, :int, :float],
    :PhysicsAddForce => [:pointer, Vector2.by_value],
    :PhysicsAddTorque => [:pointer, :float],
    :PhysicsShatter => [:pointer, Vector2.by_value, :float],
    :GetPhysicsBodiesCount => [],
    :GetPhysicsBody => [:int],
    :GetPhysicsShapeType => [:int],
    :GetPhysicsShapeVerticesCount => [:int],
    :GetPhysicsShapeVertex => [:pointer, :int],
    :SetPhysicsBodyRotation => [:pointer, :float],
    :DestroyPhysicsBody => [:pointer],
    :ClosePhysics => [],
  }
  retvals = {
    :InitPhysics => :void,
    :RunPhysicsStep => :void,
    :SetPhysicsTimeStep => :void,
    :IsPhysicsEnabled => :bool,
    :SetPhysicsGravity => :void,
    :CreatePhysicsBodyCircle => :pointer,
    :CreatePhysicsBodyRectangle => :pointer,
    :CreatePhysicsBodyPolygon => :pointer,
    :PhysicsAddForce => :void,
    :PhysicsAddTorque => :void,
    :PhysicsShatter => :void,
    :GetPhysicsBodiesCount => :int,
    :GetPhysicsBody => :pointer,
    :GetPhysicsShapeType => :int,
    :GetPhysicsShapeVerticesCount => :int,
    :GetPhysicsShapeVertex => Vector2.by_value,
    :SetPhysicsBodyRotation => :void,
    :DestroyPhysicsBody => :void,
    :ClosePhysics => :void,
  }
  symbols.each do |sym|
    begin
      attach_function sym, args[sym], retvals[sym]
    rescue FFI::NotFoundError => error
      $stderr.puts("[Warning] Failed to import #{sym} (#{error}).")
    end
  end
end
setup_raygui_symbols() click to toggle source

Function

# File lib/raygui.rb, line 380
def self.setup_raygui_symbols()
  symbols = [
    :GuiEnable,
    :GuiDisable,
    :GuiLock,
    :GuiUnlock,
    :GuiIsLocked,
    :GuiFade,
    :GuiSetState,
    :GuiGetState,
    :GuiSetFont,
    :GuiGetFont,
    :GuiSetStyle,
    :GuiGetStyle,
    :GuiWindowBox,
    :GuiGroupBox,
    :GuiLine,
    :GuiPanel,
    :GuiScrollPanel,
    :GuiLabel,
    :GuiButton,
    :GuiLabelButton,
    :GuiToggle,
    :GuiToggleGroup,
    :GuiCheckBox,
    :GuiComboBox,
    :GuiDropdownBox,
    :GuiSpinner,
    :GuiValueBox,
    :GuiTextBox,
    :GuiTextBoxMulti,
    :GuiSlider,
    :GuiSliderBar,
    :GuiProgressBar,
    :GuiStatusBar,
    :GuiDummyRec,
    :GuiGrid,
    :GuiListView,
    :GuiListViewEx,
    :GuiMessageBox,
    :GuiTextInputBox,
    :GuiColorPicker,
    :GuiColorPanel,
    :GuiColorBarAlpha,
    :GuiColorBarHue,
    :GuiLoadStyle,
    :GuiLoadStyleDefault,
    :GuiIconText,
    :GuiDrawIcon,
    :GuiGetIcons,
    :GuiGetIconData,
    :GuiSetIconData,
    :GuiSetIconPixel,
    :GuiClearIconPixel,
    :GuiCheckIconPixel,
  ]
  args = {
    :GuiEnable => [],
    :GuiDisable => [],
    :GuiLock => [],
    :GuiUnlock => [],
    :GuiIsLocked => [],
    :GuiFade => [:float],
    :GuiSetState => [:int],
    :GuiGetState => [],
    :GuiSetFont => [Font.by_value],
    :GuiGetFont => [],
    :GuiSetStyle => [:int, :int, :int],
    :GuiGetStyle => [:int, :int],
    :GuiWindowBox => [Rectangle.by_value, :pointer],
    :GuiGroupBox => [Rectangle.by_value, :pointer],
    :GuiLine => [Rectangle.by_value, :pointer],
    :GuiPanel => [Rectangle.by_value, :pointer],
    :GuiScrollPanel => [Rectangle.by_value, :pointer, Rectangle.by_value, :pointer],
    :GuiLabel => [Rectangle.by_value, :pointer],
    :GuiButton => [Rectangle.by_value, :pointer],
    :GuiLabelButton => [Rectangle.by_value, :pointer],
    :GuiToggle => [Rectangle.by_value, :pointer, :bool],
    :GuiToggleGroup => [Rectangle.by_value, :pointer, :int],
    :GuiCheckBox => [Rectangle.by_value, :pointer, :bool],
    :GuiComboBox => [Rectangle.by_value, :pointer, :int],
    :GuiDropdownBox => [Rectangle.by_value, :pointer, :pointer, :bool],
    :GuiSpinner => [Rectangle.by_value, :pointer, :pointer, :int, :int, :bool],
    :GuiValueBox => [Rectangle.by_value, :pointer, :pointer, :int, :int, :bool],
    :GuiTextBox => [Rectangle.by_value, :pointer, :int, :bool],
    :GuiTextBoxMulti => [Rectangle.by_value, :pointer, :int, :bool],
    :GuiSlider => [Rectangle.by_value, :pointer, :pointer, :float, :float, :float],
    :GuiSliderBar => [Rectangle.by_value, :pointer, :pointer, :float, :float, :float],
    :GuiProgressBar => [Rectangle.by_value, :pointer, :pointer, :float, :float, :float],
    :GuiStatusBar => [Rectangle.by_value, :pointer],
    :GuiDummyRec => [Rectangle.by_value, :pointer],
    :GuiGrid => [Rectangle.by_value, :pointer, :float, :int],
    :GuiListView => [Rectangle.by_value, :pointer, :pointer, :int],
    :GuiListViewEx => [Rectangle.by_value, :pointer, :int, :pointer, :pointer, :int],
    :GuiMessageBox => [Rectangle.by_value, :pointer, :pointer, :pointer],
    :GuiTextInputBox => [Rectangle.by_value, :pointer, :pointer, :pointer, :pointer],
    :GuiColorPicker => [Rectangle.by_value, :pointer, Color.by_value],
    :GuiColorPanel => [Rectangle.by_value, :pointer, Color.by_value],
    :GuiColorBarAlpha => [Rectangle.by_value, :pointer, :float],
    :GuiColorBarHue => [Rectangle.by_value, :pointer, :float],
    :GuiLoadStyle => [:pointer],
    :GuiLoadStyleDefault => [],
    :GuiIconText => [:int, :pointer],
    :GuiDrawIcon => [:int, :int, :int, :int, Color.by_value],
    :GuiGetIcons => [],
    :GuiGetIconData => [:int],
    :GuiSetIconData => [:int, :pointer],
    :GuiSetIconPixel => [:int, :int, :int],
    :GuiClearIconPixel => [:int, :int, :int],
    :GuiCheckIconPixel => [:int, :int, :int],
  }
  retvals = {
    :GuiEnable => :void,
    :GuiDisable => :void,
    :GuiLock => :void,
    :GuiUnlock => :void,
    :GuiIsLocked => :bool,
    :GuiFade => :void,
    :GuiSetState => :void,
    :GuiGetState => :int,
    :GuiSetFont => :void,
    :GuiGetFont => Font.by_value,
    :GuiSetStyle => :void,
    :GuiGetStyle => :int,
    :GuiWindowBox => :bool,
    :GuiGroupBox => :void,
    :GuiLine => :void,
    :GuiPanel => :void,
    :GuiScrollPanel => Rectangle.by_value,
    :GuiLabel => :void,
    :GuiButton => :bool,
    :GuiLabelButton => :bool,
    :GuiToggle => :bool,
    :GuiToggleGroup => :int,
    :GuiCheckBox => :bool,
    :GuiComboBox => :int,
    :GuiDropdownBox => :bool,
    :GuiSpinner => :bool,
    :GuiValueBox => :bool,
    :GuiTextBox => :bool,
    :GuiTextBoxMulti => :bool,
    :GuiSlider => :float,
    :GuiSliderBar => :float,
    :GuiProgressBar => :float,
    :GuiStatusBar => :void,
    :GuiDummyRec => :void,
    :GuiGrid => Vector2.by_value,
    :GuiListView => :int,
    :GuiListViewEx => :int,
    :GuiMessageBox => :int,
    :GuiTextInputBox => :int,
    :GuiColorPicker => Color.by_value,
    :GuiColorPanel => Color.by_value,
    :GuiColorBarAlpha => :float,
    :GuiColorBarHue => :float,
    :GuiLoadStyle => :void,
    :GuiLoadStyleDefault => :void,
    :GuiIconText => :pointer,
    :GuiDrawIcon => :void,
    :GuiGetIcons => :pointer,
    :GuiGetIconData => :pointer,
    :GuiSetIconData => :void,
    :GuiSetIconPixel => :void,
    :GuiClearIconPixel => :void,
    :GuiCheckIconPixel => :bool,
  }
  symbols.each do |sym|
    begin
      attach_function sym, args[sym], retvals[sym]
    rescue FFI::NotFoundError => error
      $stderr.puts("[Warning] Failed to import #{sym} (#{error}).")
    end
  end
end
setup_raylib_symbols() click to toggle source

Function

# File lib/raylib_main.rb, line 665
def self.setup_raylib_symbols()
  symbols = [
    :InitWindow,
    :WindowShouldClose,
    :CloseWindow,
    :IsWindowReady,
    :IsWindowFullscreen,
    :IsWindowHidden,
    :IsWindowMinimized,
    :IsWindowMaximized,
    :IsWindowFocused,
    :IsWindowResized,
    :IsWindowState,
    :SetWindowState,
    :ClearWindowState,
    :ToggleFullscreen,
    :MaximizeWindow,
    :MinimizeWindow,
    :RestoreWindow,
    :SetWindowIcon,
    :SetWindowTitle,
    :SetWindowPosition,
    :SetWindowMonitor,
    :SetWindowMinSize,
    :SetWindowSize,
    :SetWindowOpacity,
    :GetWindowHandle,
    :GetScreenWidth,
    :GetScreenHeight,
    :GetRenderWidth,
    :GetRenderHeight,
    :GetMonitorCount,
    :GetCurrentMonitor,
    :GetMonitorPosition,
    :GetMonitorWidth,
    :GetMonitorHeight,
    :GetMonitorPhysicalWidth,
    :GetMonitorPhysicalHeight,
    :GetMonitorRefreshRate,
    :GetWindowPosition,
    :GetWindowScaleDPI,
    :GetMonitorName,
    :SetClipboardText,
    :GetClipboardText,
    :SwapScreenBuffer,
    :PollInputEvents,
    :WaitTime,
    :ShowCursor,
    :HideCursor,
    :IsCursorHidden,
    :EnableCursor,
    :DisableCursor,
    :IsCursorOnScreen,
    :ClearBackground,
    :BeginDrawing,
    :EndDrawing,
    :BeginMode2D,
    :EndMode2D,
    :BeginMode3D,
    :EndMode3D,
    :BeginTextureMode,
    :EndTextureMode,
    :BeginShaderMode,
    :EndShaderMode,
    :BeginBlendMode,
    :EndBlendMode,
    :BeginScissorMode,
    :EndScissorMode,
    :BeginVrStereoMode,
    :EndVrStereoMode,
    :LoadVrStereoConfig,
    :UnloadVrStereoConfig,
    :LoadShader,
    :LoadShaderFromMemory,
    :GetShaderLocation,
    :GetShaderLocationAttrib,
    :SetShaderValue,
    :SetShaderValueV,
    :SetShaderValueMatrix,
    :SetShaderValueTexture,
    :UnloadShader,
    :GetMouseRay,
    :GetCameraMatrix,
    :GetCameraMatrix2D,
    :GetWorldToScreen,
    :GetWorldToScreenEx,
    :GetWorldToScreen2D,
    :GetScreenToWorld2D,
    :SetTargetFPS,
    :GetFPS,
    :GetFrameTime,
    :GetTime,
    :GetRandomValue,
    :SetRandomSeed,
    :TakeScreenshot,
    :SetConfigFlags,
    :TraceLog,
    :SetTraceLogLevel,
    :MemAlloc,
    :MemRealloc,
    :MemFree,
    :SetTraceLogCallback,
    :SetLoadFileDataCallback,
    :SetSaveFileDataCallback,
    :SetLoadFileTextCallback,
    :SetSaveFileTextCallback,
    :LoadFileData,
    :UnloadFileData,
    :SaveFileData,
    :LoadFileText,
    :UnloadFileText,
    :SaveFileText,
    :FileExists,
    :DirectoryExists,
    :IsFileExtension,
    :GetFileLength,
    :GetFileExtension,
    :GetFileName,
    :GetFileNameWithoutExt,
    :GetDirectoryPath,
    :GetPrevDirectoryPath,
    :GetWorkingDirectory,
    :GetApplicationDirectory,
    :GetDirectoryFiles,
    :ClearDirectoryFiles,
    :ChangeDirectory,
    :IsFileDropped,
    :GetDroppedFiles,
    :ClearDroppedFiles,
    :GetFileModTime,
    :CompressData,
    :DecompressData,
    :EncodeDataBase64,
    :DecodeDataBase64,
    :SaveStorageValue,
    :LoadStorageValue,
    :OpenURL,
    :IsKeyPressed,
    :IsKeyDown,
    :IsKeyReleased,
    :IsKeyUp,
    :SetExitKey,
    :GetKeyPressed,
    :GetCharPressed,
    :IsGamepadAvailable,
    :GetGamepadName,
    :IsGamepadButtonPressed,
    :IsGamepadButtonDown,
    :IsGamepadButtonReleased,
    :IsGamepadButtonUp,
    :GetGamepadButtonPressed,
    :GetGamepadAxisCount,
    :GetGamepadAxisMovement,
    :SetGamepadMappings,
    :IsMouseButtonPressed,
    :IsMouseButtonDown,
    :IsMouseButtonReleased,
    :IsMouseButtonUp,
    :GetMouseX,
    :GetMouseY,
    :GetMousePosition,
    :GetMouseDelta,
    :SetMousePosition,
    :SetMouseOffset,
    :SetMouseScale,
    :GetMouseWheelMove,
    :SetMouseCursor,
    :GetTouchX,
    :GetTouchY,
    :GetTouchPosition,
    :GetTouchPointId,
    :GetTouchPointCount,
    :SetGesturesEnabled,
    :IsGestureDetected,
    :GetGestureDetected,
    :GetGestureHoldDuration,
    :GetGestureDragVector,
    :GetGestureDragAngle,
    :GetGesturePinchVector,
    :GetGesturePinchAngle,
    :SetCameraMode,
    :UpdateCamera,
    :SetCameraPanControl,
    :SetCameraAltControl,
    :SetCameraSmoothZoomControl,
    :SetCameraMoveControls,
    :SetShapesTexture,
    :DrawPixel,
    :DrawPixelV,
    :DrawLine,
    :DrawLineV,
    :DrawLineEx,
    :DrawLineBezier,
    :DrawLineBezierQuad,
    :DrawLineBezierCubic,
    :DrawLineStrip,
    :DrawCircle,
    :DrawCircleSector,
    :DrawCircleSectorLines,
    :DrawCircleGradient,
    :DrawCircleV,
    :DrawCircleLines,
    :DrawEllipse,
    :DrawEllipseLines,
    :DrawRing,
    :DrawRingLines,
    :DrawRectangle,
    :DrawRectangleV,
    :DrawRectangleRec,
    :DrawRectanglePro,
    :DrawRectangleGradientV,
    :DrawRectangleGradientH,
    :DrawRectangleGradientEx,
    :DrawRectangleLines,
    :DrawRectangleLinesEx,
    :DrawRectangleRounded,
    :DrawRectangleRoundedLines,
    :DrawTriangle,
    :DrawTriangleLines,
    :DrawTriangleFan,
    :DrawTriangleStrip,
    :DrawPoly,
    :DrawPolyLines,
    :DrawPolyLinesEx,
    :CheckCollisionRecs,
    :CheckCollisionCircles,
    :CheckCollisionCircleRec,
    :CheckCollisionPointRec,
    :CheckCollisionPointCircle,
    :CheckCollisionPointTriangle,
    :CheckCollisionLines,
    :CheckCollisionPointLine,
    :GetCollisionRec,
    :LoadImage,
    :LoadImageRaw,
    :LoadImageAnim,
    :LoadImageFromMemory,
    :LoadImageFromTexture,
    :LoadImageFromScreen,
    :UnloadImage,
    :ExportImage,
    :ExportImageAsCode,
    :GenImageColor,
    :GenImageGradientV,
    :GenImageGradientH,
    :GenImageGradientRadial,
    :GenImageChecked,
    :GenImageWhiteNoise,
    :GenImageCellular,
    :ImageCopy,
    :ImageFromImage,
    :ImageText,
    :ImageTextEx,
    :ImageFormat,
    :ImageToPOT,
    :ImageCrop,
    :ImageAlphaCrop,
    :ImageAlphaClear,
    :ImageAlphaMask,
    :ImageAlphaPremultiply,
    :ImageResize,
    :ImageResizeNN,
    :ImageResizeCanvas,
    :ImageMipmaps,
    :ImageDither,
    :ImageFlipVertical,
    :ImageFlipHorizontal,
    :ImageRotateCW,
    :ImageRotateCCW,
    :ImageColorTint,
    :ImageColorInvert,
    :ImageColorGrayscale,
    :ImageColorContrast,
    :ImageColorBrightness,
    :ImageColorReplace,
    :LoadImageColors,
    :LoadImagePalette,
    :UnloadImageColors,
    :UnloadImagePalette,
    :GetImageAlphaBorder,
    :GetImageColor,
    :ImageClearBackground,
    :ImageDrawPixel,
    :ImageDrawPixelV,
    :ImageDrawLine,
    :ImageDrawLineV,
    :ImageDrawCircle,
    :ImageDrawCircleV,
    :ImageDrawRectangle,
    :ImageDrawRectangleV,
    :ImageDrawRectangleRec,
    :ImageDrawRectangleLines,
    :ImageDraw,
    :ImageDrawText,
    :ImageDrawTextEx,
    :LoadTexture,
    :LoadTextureFromImage,
    :LoadTextureCubemap,
    :LoadRenderTexture,
    :UnloadTexture,
    :UnloadRenderTexture,
    :UpdateTexture,
    :UpdateTextureRec,
    :GenTextureMipmaps,
    :SetTextureFilter,
    :SetTextureWrap,
    :DrawTexture,
    :DrawTextureV,
    :DrawTextureEx,
    :DrawTextureRec,
    :DrawTextureQuad,
    :DrawTextureTiled,
    :DrawTexturePro,
    :DrawTextureNPatch,
    :DrawTexturePoly,
    :Fade,
    :ColorToInt,
    :ColorNormalize,
    :ColorFromNormalized,
    :ColorToHSV,
    :ColorFromHSV,
    :ColorAlpha,
    :ColorAlphaBlend,
    :GetColor,
    :GetPixelColor,
    :SetPixelColor,
    :GetPixelDataSize,
    :GetFontDefault,
    :LoadFont,
    :LoadFontEx,
    :LoadFontFromImage,
    :LoadFontFromMemory,
    :LoadFontData,
    :GenImageFontAtlas,
    :UnloadFontData,
    :UnloadFont,
    :ExportFontAsCode,
    :DrawFPS,
    :DrawText,
    :DrawTextEx,
    :DrawTextPro,
    :DrawTextCodepoint,
    :DrawTextCodepoints,
    :MeasureText,
    :MeasureTextEx,
    :GetGlyphIndex,
    :GetGlyphInfo,
    :GetGlyphAtlasRec,
    :LoadCodepoints,
    :UnloadCodepoints,
    :GetCodepointCount,
    :GetCodepoint,
    :CodepointToUTF8,
    :TextCodepointsToUTF8,
    :TextCopy,
    :TextIsEqual,
    :TextLength,
    :TextFormat,
    :TextSubtext,
    :TextReplace,
    :TextInsert,
    :TextJoin,
    :TextSplit,
    :TextAppend,
    :TextFindIndex,
    :TextToUpper,
    :TextToLower,
    :TextToPascal,
    :TextToInteger,
    :DrawLine3D,
    :DrawPoint3D,
    :DrawCircle3D,
    :DrawTriangle3D,
    :DrawTriangleStrip3D,
    :DrawCube,
    :DrawCubeV,
    :DrawCubeWires,
    :DrawCubeWiresV,
    :DrawCubeTexture,
    :DrawCubeTextureRec,
    :DrawSphere,
    :DrawSphereEx,
    :DrawSphereWires,
    :DrawCylinder,
    :DrawCylinderEx,
    :DrawCylinderWires,
    :DrawCylinderWiresEx,
    :DrawPlane,
    :DrawRay,
    :DrawGrid,
    :LoadModel,
    :LoadModelFromMesh,
    :UnloadModel,
    :UnloadModelKeepMeshes,
    :GetModelBoundingBox,
    :DrawModel,
    :DrawModelEx,
    :DrawModelWires,
    :DrawModelWiresEx,
    :DrawBoundingBox,
    :DrawBillboard,
    :DrawBillboardRec,
    :DrawBillboardPro,
    :UploadMesh,
    :UpdateMeshBuffer,
    :UnloadMesh,
    :DrawMesh,
    :DrawMeshInstanced,
    :ExportMesh,
    :GetMeshBoundingBox,
    :GenMeshTangents,
    :GenMeshBinormals,
    :GenMeshPoly,
    :GenMeshPlane,
    :GenMeshCube,
    :GenMeshSphere,
    :GenMeshHemiSphere,
    :GenMeshCylinder,
    :GenMeshCone,
    :GenMeshTorus,
    :GenMeshKnot,
    :GenMeshHeightmap,
    :GenMeshCubicmap,
    :LoadMaterials,
    :LoadMaterialDefault,
    :UnloadMaterial,
    :SetMaterialTexture,
    :SetModelMeshMaterial,
    :LoadModelAnimations,
    :UpdateModelAnimation,
    :UnloadModelAnimation,
    :UnloadModelAnimations,
    :IsModelAnimationValid,
    :CheckCollisionSpheres,
    :CheckCollisionBoxes,
    :CheckCollisionBoxSphere,
    :GetRayCollisionSphere,
    :GetRayCollisionBox,
    :GetRayCollisionModel,
    :GetRayCollisionMesh,
    :GetRayCollisionTriangle,
    :GetRayCollisionQuad,
    :InitAudioDevice,
    :CloseAudioDevice,
    :IsAudioDeviceReady,
    :SetMasterVolume,
    :LoadWave,
    :LoadWaveFromMemory,
    :LoadSound,
    :LoadSoundFromWave,
    :UpdateSound,
    :UnloadWave,
    :UnloadSound,
    :ExportWave,
    :ExportWaveAsCode,
    :PlaySound,
    :StopSound,
    :PauseSound,
    :ResumeSound,
    :PlaySoundMulti,
    :StopSoundMulti,
    :GetSoundsPlaying,
    :IsSoundPlaying,
    :SetSoundVolume,
    :SetSoundPitch,
    :SetSoundPan,
    :WaveCopy,
    :WaveCrop,
    :WaveFormat,
    :LoadWaveSamples,
    :UnloadWaveSamples,
    :LoadMusicStream,
    :LoadMusicStreamFromMemory,
    :UnloadMusicStream,
    :PlayMusicStream,
    :IsMusicStreamPlaying,
    :UpdateMusicStream,
    :StopMusicStream,
    :PauseMusicStream,
    :ResumeMusicStream,
    :SeekMusicStream,
    :SetMusicVolume,
    :SetMusicPitch,
    :SetMusicPan,
    :GetMusicTimeLength,
    :GetMusicTimePlayed,
    :LoadAudioStream,
    :UnloadAudioStream,
    :UpdateAudioStream,
    :IsAudioStreamProcessed,
    :PlayAudioStream,
    :PauseAudioStream,
    :ResumeAudioStream,
    :IsAudioStreamPlaying,
    :StopAudioStream,
    :SetAudioStreamVolume,
    :SetAudioStreamPitch,
    :SetAudioStreamPan,
    :SetAudioStreamBufferSizeDefault,
  ]
  args = {
    :InitWindow => [:int, :int, :pointer],
    :WindowShouldClose => [],
    :CloseWindow => [],
    :IsWindowReady => [],
    :IsWindowFullscreen => [],
    :IsWindowHidden => [],
    :IsWindowMinimized => [],
    :IsWindowMaximized => [],
    :IsWindowFocused => [],
    :IsWindowResized => [],
    :IsWindowState => [:uint],
    :SetWindowState => [:uint],
    :ClearWindowState => [:uint],
    :ToggleFullscreen => [],
    :MaximizeWindow => [],
    :MinimizeWindow => [],
    :RestoreWindow => [],
    :SetWindowIcon => [Image.by_value],
    :SetWindowTitle => [:pointer],
    :SetWindowPosition => [:int, :int],
    :SetWindowMonitor => [:int],
    :SetWindowMinSize => [:int, :int],
    :SetWindowSize => [:int, :int],
    :SetWindowOpacity => [:float],
    :GetWindowHandle => [],
    :GetScreenWidth => [],
    :GetScreenHeight => [],
    :GetRenderWidth => [],
    :GetRenderHeight => [],
    :GetMonitorCount => [],
    :GetCurrentMonitor => [],
    :GetMonitorPosition => [:int],
    :GetMonitorWidth => [:int],
    :GetMonitorHeight => [:int],
    :GetMonitorPhysicalWidth => [:int],
    :GetMonitorPhysicalHeight => [:int],
    :GetMonitorRefreshRate => [:int],
    :GetWindowPosition => [],
    :GetWindowScaleDPI => [],
    :GetMonitorName => [:int],
    :SetClipboardText => [:pointer],
    :GetClipboardText => [],
    :SwapScreenBuffer => [],
    :PollInputEvents => [],
    :WaitTime => [:float],
    :ShowCursor => [],
    :HideCursor => [],
    :IsCursorHidden => [],
    :EnableCursor => [],
    :DisableCursor => [],
    :IsCursorOnScreen => [],
    :ClearBackground => [Color.by_value],
    :BeginDrawing => [],
    :EndDrawing => [],
    :BeginMode2D => [Camera2D.by_value],
    :EndMode2D => [],
    :BeginMode3D => [Camera3D.by_value],
    :EndMode3D => [],
    :BeginTextureMode => [RenderTexture2D.by_value],
    :EndTextureMode => [],
    :BeginShaderMode => [Shader.by_value],
    :EndShaderMode => [],
    :BeginBlendMode => [:int],
    :EndBlendMode => [],
    :BeginScissorMode => [:int, :int, :int, :int],
    :EndScissorMode => [],
    :BeginVrStereoMode => [VrStereoConfig.by_value],
    :EndVrStereoMode => [],
    :LoadVrStereoConfig => [VrDeviceInfo.by_value],
    :UnloadVrStereoConfig => [VrStereoConfig.by_value],
    :LoadShader => [:pointer, :pointer],
    :LoadShaderFromMemory => [:pointer, :pointer],
    :GetShaderLocation => [Shader.by_value, :pointer],
    :GetShaderLocationAttrib => [Shader.by_value, :pointer],
    :SetShaderValue => [Shader.by_value, :int, :pointer, :int],
    :SetShaderValueV => [Shader.by_value, :int, :pointer, :int, :int],
    :SetShaderValueMatrix => [Shader.by_value, :int, Matrix.by_value],
    :SetShaderValueTexture => [Shader.by_value, :int, Texture2D.by_value],
    :UnloadShader => [Shader.by_value],
    :GetMouseRay => [Vector2.by_value, Camera.by_value],
    :GetCameraMatrix => [Camera.by_value],
    :GetCameraMatrix2D => [Camera2D.by_value],
    :GetWorldToScreen => [Vector3.by_value, Camera.by_value],
    :GetWorldToScreenEx => [Vector3.by_value, Camera.by_value, :int, :int],
    :GetWorldToScreen2D => [Vector2.by_value, Camera2D.by_value],
    :GetScreenToWorld2D => [Vector2.by_value, Camera2D.by_value],
    :SetTargetFPS => [:int],
    :GetFPS => [],
    :GetFrameTime => [],
    :GetTime => [],
    :GetRandomValue => [:int, :int],
    :SetRandomSeed => [:uint],
    :TakeScreenshot => [:pointer],
    :SetConfigFlags => [:uint],
    :TraceLog => [:int, :pointer, :varargs],
    :SetTraceLogLevel => [:int],
    :MemAlloc => [:int],
    :MemRealloc => [:pointer, :int],
    :MemFree => [:pointer],
    :SetTraceLogCallback => [:TraceLogCallback],
    :SetLoadFileDataCallback => [:LoadFileDataCallback],
    :SetSaveFileDataCallback => [:SaveFileDataCallback],
    :SetLoadFileTextCallback => [:LoadFileTextCallback],
    :SetSaveFileTextCallback => [:SaveFileTextCallback],
    :LoadFileData => [:pointer, :pointer],
    :UnloadFileData => [:pointer],
    :SaveFileData => [:pointer, :pointer, :uint],
    :LoadFileText => [:pointer],
    :UnloadFileText => [:pointer],
    :SaveFileText => [:pointer, :pointer],
    :FileExists => [:pointer],
    :DirectoryExists => [:pointer],
    :IsFileExtension => [:pointer, :pointer],
    :GetFileLength => [:pointer],
    :GetFileExtension => [:pointer],
    :GetFileName => [:pointer],
    :GetFileNameWithoutExt => [:pointer],
    :GetDirectoryPath => [:pointer],
    :GetPrevDirectoryPath => [:pointer],
    :GetWorkingDirectory => [],
    :GetApplicationDirectory => [],
    :GetDirectoryFiles => [:pointer, :pointer],
    :ClearDirectoryFiles => [],
    :ChangeDirectory => [:pointer],
    :IsFileDropped => [],
    :GetDroppedFiles => [:pointer],
    :ClearDroppedFiles => [],
    :GetFileModTime => [:pointer],
    :CompressData => [:pointer, :int, :pointer],
    :DecompressData => [:pointer, :int, :pointer],
    :EncodeDataBase64 => [:pointer, :int, :pointer],
    :DecodeDataBase64 => [:pointer, :pointer],
    :SaveStorageValue => [:uint, :int],
    :LoadStorageValue => [:uint],
    :OpenURL => [:pointer],
    :IsKeyPressed => [:int],
    :IsKeyDown => [:int],
    :IsKeyReleased => [:int],
    :IsKeyUp => [:int],
    :SetExitKey => [:int],
    :GetKeyPressed => [],
    :GetCharPressed => [],
    :IsGamepadAvailable => [:int],
    :GetGamepadName => [:int],
    :IsGamepadButtonPressed => [:int, :int],
    :IsGamepadButtonDown => [:int, :int],
    :IsGamepadButtonReleased => [:int, :int],
    :IsGamepadButtonUp => [:int, :int],
    :GetGamepadButtonPressed => [],
    :GetGamepadAxisCount => [:int],
    :GetGamepadAxisMovement => [:int, :int],
    :SetGamepadMappings => [:pointer],
    :IsMouseButtonPressed => [:int],
    :IsMouseButtonDown => [:int],
    :IsMouseButtonReleased => [:int],
    :IsMouseButtonUp => [:int],
    :GetMouseX => [],
    :GetMouseY => [],
    :GetMousePosition => [],
    :GetMouseDelta => [],
    :SetMousePosition => [:int, :int],
    :SetMouseOffset => [:int, :int],
    :SetMouseScale => [:float, :float],
    :GetMouseWheelMove => [],
    :SetMouseCursor => [:int],
    :GetTouchX => [],
    :GetTouchY => [],
    :GetTouchPosition => [:int],
    :GetTouchPointId => [:int],
    :GetTouchPointCount => [],
    :SetGesturesEnabled => [:uint],
    :IsGestureDetected => [:int],
    :GetGestureDetected => [],
    :GetGestureHoldDuration => [],
    :GetGestureDragVector => [],
    :GetGestureDragAngle => [],
    :GetGesturePinchVector => [],
    :GetGesturePinchAngle => [],
    :SetCameraMode => [Camera.by_value, :int],
    :UpdateCamera => [:pointer],
    :SetCameraPanControl => [:int],
    :SetCameraAltControl => [:int],
    :SetCameraSmoothZoomControl => [:int],
    :SetCameraMoveControls => [:int, :int, :int, :int, :int, :int],
    :SetShapesTexture => [Texture2D.by_value, Rectangle.by_value],
    :DrawPixel => [:int, :int, Color.by_value],
    :DrawPixelV => [Vector2.by_value, Color.by_value],
    :DrawLine => [:int, :int, :int, :int, Color.by_value],
    :DrawLineV => [Vector2.by_value, Vector2.by_value, Color.by_value],
    :DrawLineEx => [Vector2.by_value, Vector2.by_value, :float, Color.by_value],
    :DrawLineBezier => [Vector2.by_value, Vector2.by_value, :float, Color.by_value],
    :DrawLineBezierQuad => [Vector2.by_value, Vector2.by_value, Vector2.by_value, :float, Color.by_value],
    :DrawLineBezierCubic => [Vector2.by_value, Vector2.by_value, Vector2.by_value, Vector2.by_value, :float, Color.by_value],
    :DrawLineStrip => [:pointer, :int, Color.by_value],
    :DrawCircle => [:int, :int, :float, Color.by_value],
    :DrawCircleSector => [Vector2.by_value, :float, :float, :float, :int, Color.by_value],
    :DrawCircleSectorLines => [Vector2.by_value, :float, :float, :float, :int, Color.by_value],
    :DrawCircleGradient => [:int, :int, :float, Color.by_value, Color.by_value],
    :DrawCircleV => [Vector2.by_value, :float, Color.by_value],
    :DrawCircleLines => [:int, :int, :float, Color.by_value],
    :DrawEllipse => [:int, :int, :float, :float, Color.by_value],
    :DrawEllipseLines => [:int, :int, :float, :float, Color.by_value],
    :DrawRing => [Vector2.by_value, :float, :float, :float, :float, :int, Color.by_value],
    :DrawRingLines => [Vector2.by_value, :float, :float, :float, :float, :int, Color.by_value],
    :DrawRectangle => [:int, :int, :int, :int, Color.by_value],
    :DrawRectangleV => [Vector2.by_value, Vector2.by_value, Color.by_value],
    :DrawRectangleRec => [Rectangle.by_value, Color.by_value],
    :DrawRectanglePro => [Rectangle.by_value, Vector2.by_value, :float, Color.by_value],
    :DrawRectangleGradientV => [:int, :int, :int, :int, Color.by_value, Color.by_value],
    :DrawRectangleGradientH => [:int, :int, :int, :int, Color.by_value, Color.by_value],
    :DrawRectangleGradientEx => [Rectangle.by_value, Color.by_value, Color.by_value, Color.by_value, Color.by_value],
    :DrawRectangleLines => [:int, :int, :int, :int, Color.by_value],
    :DrawRectangleLinesEx => [Rectangle.by_value, :float, Color.by_value],
    :DrawRectangleRounded => [Rectangle.by_value, :float, :int, Color.by_value],
    :DrawRectangleRoundedLines => [Rectangle.by_value, :float, :int, :float, Color.by_value],
    :DrawTriangle => [Vector2.by_value, Vector2.by_value, Vector2.by_value, Color.by_value],
    :DrawTriangleLines => [Vector2.by_value, Vector2.by_value, Vector2.by_value, Color.by_value],
    :DrawTriangleFan => [:pointer, :int, Color.by_value],
    :DrawTriangleStrip => [:pointer, :int, Color.by_value],
    :DrawPoly => [Vector2.by_value, :int, :float, :float, Color.by_value],
    :DrawPolyLines => [Vector2.by_value, :int, :float, :float, Color.by_value],
    :DrawPolyLinesEx => [Vector2.by_value, :int, :float, :float, :float, Color.by_value],
    :CheckCollisionRecs => [Rectangle.by_value, Rectangle.by_value],
    :CheckCollisionCircles => [Vector2.by_value, :float, Vector2.by_value, :float],
    :CheckCollisionCircleRec => [Vector2.by_value, :float, Rectangle.by_value],
    :CheckCollisionPointRec => [Vector2.by_value, Rectangle.by_value],
    :CheckCollisionPointCircle => [Vector2.by_value, Vector2.by_value, :float],
    :CheckCollisionPointTriangle => [Vector2.by_value, Vector2.by_value, Vector2.by_value, Vector2.by_value],
    :CheckCollisionLines => [Vector2.by_value, Vector2.by_value, Vector2.by_value, Vector2.by_value, :pointer],
    :CheckCollisionPointLine => [Vector2.by_value, Vector2.by_value, Vector2.by_value, :int],
    :GetCollisionRec => [Rectangle.by_value, Rectangle.by_value],
    :LoadImage => [:pointer],
    :LoadImageRaw => [:pointer, :int, :int, :int, :int],
    :LoadImageAnim => [:pointer, :pointer],
    :LoadImageFromMemory => [:pointer, :pointer, :int],
    :LoadImageFromTexture => [Texture2D.by_value],
    :LoadImageFromScreen => [],
    :UnloadImage => [Image.by_value],
    :ExportImage => [Image.by_value, :pointer],
    :ExportImageAsCode => [Image.by_value, :pointer],
    :GenImageColor => [:int, :int, Color.by_value],
    :GenImageGradientV => [:int, :int, Color.by_value, Color.by_value],
    :GenImageGradientH => [:int, :int, Color.by_value, Color.by_value],
    :GenImageGradientRadial => [:int, :int, :float, Color.by_value, Color.by_value],
    :GenImageChecked => [:int, :int, :int, :int, Color.by_value, Color.by_value],
    :GenImageWhiteNoise => [:int, :int, :float],
    :GenImageCellular => [:int, :int, :int],
    :ImageCopy => [Image.by_value],
    :ImageFromImage => [Image.by_value, Rectangle.by_value],
    :ImageText => [:pointer, :int, Color.by_value],
    :ImageTextEx => [Font.by_value, :pointer, :float, :float, Color.by_value],
    :ImageFormat => [:pointer, :int],
    :ImageToPOT => [:pointer, Color.by_value],
    :ImageCrop => [:pointer, Rectangle.by_value],
    :ImageAlphaCrop => [:pointer, :float],
    :ImageAlphaClear => [:pointer, Color.by_value, :float],
    :ImageAlphaMask => [:pointer, Image.by_value],
    :ImageAlphaPremultiply => [:pointer],
    :ImageResize => [:pointer, :int, :int],
    :ImageResizeNN => [:pointer, :int, :int],
    :ImageResizeCanvas => [:pointer, :int, :int, :int, :int, Color.by_value],
    :ImageMipmaps => [:pointer],
    :ImageDither => [:pointer, :int, :int, :int, :int],
    :ImageFlipVertical => [:pointer],
    :ImageFlipHorizontal => [:pointer],
    :ImageRotateCW => [:pointer],
    :ImageRotateCCW => [:pointer],
    :ImageColorTint => [:pointer, Color.by_value],
    :ImageColorInvert => [:pointer],
    :ImageColorGrayscale => [:pointer],
    :ImageColorContrast => [:pointer, :float],
    :ImageColorBrightness => [:pointer, :int],
    :ImageColorReplace => [:pointer, Color.by_value, Color.by_value],
    :LoadImageColors => [Image.by_value],
    :LoadImagePalette => [Image.by_value, :int, :pointer],
    :UnloadImageColors => [:pointer],
    :UnloadImagePalette => [:pointer],
    :GetImageAlphaBorder => [Image.by_value, :float],
    :GetImageColor => [Image.by_value, :int, :int],
    :ImageClearBackground => [:pointer, Color.by_value],
    :ImageDrawPixel => [:pointer, :int, :int, Color.by_value],
    :ImageDrawPixelV => [:pointer, Vector2.by_value, Color.by_value],
    :ImageDrawLine => [:pointer, :int, :int, :int, :int, Color.by_value],
    :ImageDrawLineV => [:pointer, Vector2.by_value, Vector2.by_value, Color.by_value],
    :ImageDrawCircle => [:pointer, :int, :int, :int, Color.by_value],
    :ImageDrawCircleV => [:pointer, Vector2.by_value, :int, Color.by_value],
    :ImageDrawRectangle => [:pointer, :int, :int, :int, :int, Color.by_value],
    :ImageDrawRectangleV => [:pointer, Vector2.by_value, Vector2.by_value, Color.by_value],
    :ImageDrawRectangleRec => [:pointer, Rectangle.by_value, Color.by_value],
    :ImageDrawRectangleLines => [:pointer, Rectangle.by_value, :int, Color.by_value],
    :ImageDraw => [:pointer, Image.by_value, Rectangle.by_value, Rectangle.by_value, Color.by_value],
    :ImageDrawText => [:pointer, :pointer, :int, :int, :int, Color.by_value],
    :ImageDrawTextEx => [:pointer, Font.by_value, :pointer, Vector2.by_value, :float, :float, Color.by_value],
    :LoadTexture => [:pointer],
    :LoadTextureFromImage => [Image.by_value],
    :LoadTextureCubemap => [Image.by_value, :int],
    :LoadRenderTexture => [:int, :int],
    :UnloadTexture => [Texture2D.by_value],
    :UnloadRenderTexture => [RenderTexture2D.by_value],
    :UpdateTexture => [Texture2D.by_value, :pointer],
    :UpdateTextureRec => [Texture2D.by_value, Rectangle.by_value, :pointer],
    :GenTextureMipmaps => [:pointer],
    :SetTextureFilter => [Texture2D.by_value, :int],
    :SetTextureWrap => [Texture2D.by_value, :int],
    :DrawTexture => [Texture2D.by_value, :int, :int, Color.by_value],
    :DrawTextureV => [Texture2D.by_value, Vector2.by_value, Color.by_value],
    :DrawTextureEx => [Texture2D.by_value, Vector2.by_value, :float, :float, Color.by_value],
    :DrawTextureRec => [Texture2D.by_value, Rectangle.by_value, Vector2.by_value, Color.by_value],
    :DrawTextureQuad => [Texture2D.by_value, Vector2.by_value, Vector2.by_value, Rectangle.by_value, Color.by_value],
    :DrawTextureTiled => [Texture2D.by_value, Rectangle.by_value, Rectangle.by_value, Vector2.by_value, :float, :float, Color.by_value],
    :DrawTexturePro => [Texture2D.by_value, Rectangle.by_value, Rectangle.by_value, Vector2.by_value, :float, Color.by_value],
    :DrawTextureNPatch => [Texture2D.by_value, NPatchInfo.by_value, Rectangle.by_value, Vector2.by_value, :float, Color.by_value],
    :DrawTexturePoly => [Texture2D.by_value, Vector2.by_value, :pointer, :pointer, :int, Color.by_value],
    :Fade => [Color.by_value, :float],
    :ColorToInt => [Color.by_value],
    :ColorNormalize => [Color.by_value],
    :ColorFromNormalized => [Vector4.by_value],
    :ColorToHSV => [Color.by_value],
    :ColorFromHSV => [:float, :float, :float],
    :ColorAlpha => [Color.by_value, :float],
    :ColorAlphaBlend => [Color.by_value, Color.by_value, Color.by_value],
    :GetColor => [:uint],
    :GetPixelColor => [:pointer, :int],
    :SetPixelColor => [:pointer, Color.by_value, :int],
    :GetPixelDataSize => [:int, :int, :int],
    :GetFontDefault => [],
    :LoadFont => [:pointer],
    :LoadFontEx => [:pointer, :int, :pointer, :int],
    :LoadFontFromImage => [Image.by_value, Color.by_value, :int],
    :LoadFontFromMemory => [:pointer, :pointer, :int, :int, :pointer, :int],
    :LoadFontData => [:pointer, :int, :int, :pointer, :int, :int],
    :GenImageFontAtlas => [:pointer, :pointer, :int, :int, :int, :int],
    :UnloadFontData => [:pointer, :int],
    :UnloadFont => [Font.by_value],
    :ExportFontAsCode => [Font.by_value, :pointer],
    :DrawFPS => [:int, :int],
    :DrawText => [:pointer, :int, :int, :int, Color.by_value],
    :DrawTextEx => [Font.by_value, :pointer, Vector2.by_value, :float, :float, Color.by_value],
    :DrawTextPro => [Font.by_value, :pointer, Vector2.by_value, Vector2.by_value, :float, :float, :float, Color.by_value],
    :DrawTextCodepoint => [Font.by_value, :int, Vector2.by_value, :float, Color.by_value],
    :DrawTextCodepoints => [Font.by_value, :pointer, :int, Vector2.by_value, :float, :float, Color.by_value],
    :MeasureText => [:pointer, :int],
    :MeasureTextEx => [Font.by_value, :pointer, :float, :float],
    :GetGlyphIndex => [Font.by_value, :int],
    :GetGlyphInfo => [Font.by_value, :int],
    :GetGlyphAtlasRec => [Font.by_value, :int],
    :LoadCodepoints => [:pointer, :pointer],
    :UnloadCodepoints => [:pointer],
    :GetCodepointCount => [:pointer],
    :GetCodepoint => [:pointer, :pointer],
    :CodepointToUTF8 => [:int, :pointer],
    :TextCodepointsToUTF8 => [:pointer, :int],
    :TextCopy => [:pointer, :pointer],
    :TextIsEqual => [:pointer, :pointer],
    :TextLength => [:pointer],
    :TextFormat => [:pointer, :varargs],
    :TextSubtext => [:pointer, :int, :int],
    :TextReplace => [:pointer, :pointer, :pointer],
    :TextInsert => [:pointer, :pointer, :int],
    :TextJoin => [:pointer, :int, :pointer],
    :TextSplit => [:pointer, :char, :pointer],
    :TextAppend => [:pointer, :pointer, :pointer],
    :TextFindIndex => [:pointer, :pointer],
    :TextToUpper => [:pointer],
    :TextToLower => [:pointer],
    :TextToPascal => [:pointer],
    :TextToInteger => [:pointer],
    :DrawLine3D => [Vector3.by_value, Vector3.by_value, Color.by_value],
    :DrawPoint3D => [Vector3.by_value, Color.by_value],
    :DrawCircle3D => [Vector3.by_value, :float, Vector3.by_value, :float, Color.by_value],
    :DrawTriangle3D => [Vector3.by_value, Vector3.by_value, Vector3.by_value, Color.by_value],
    :DrawTriangleStrip3D => [:pointer, :int, Color.by_value],
    :DrawCube => [Vector3.by_value, :float, :float, :float, Color.by_value],
    :DrawCubeV => [Vector3.by_value, Vector3.by_value, Color.by_value],
    :DrawCubeWires => [Vector3.by_value, :float, :float, :float, Color.by_value],
    :DrawCubeWiresV => [Vector3.by_value, Vector3.by_value, Color.by_value],
    :DrawCubeTexture => [Texture2D.by_value, Vector3.by_value, :float, :float, :float, Color.by_value],
    :DrawCubeTextureRec => [Texture2D.by_value, Rectangle.by_value, Vector3.by_value, :float, :float, :float, Color.by_value],
    :DrawSphere => [Vector3.by_value, :float, Color.by_value],
    :DrawSphereEx => [Vector3.by_value, :float, :int, :int, Color.by_value],
    :DrawSphereWires => [Vector3.by_value, :float, :int, :int, Color.by_value],
    :DrawCylinder => [Vector3.by_value, :float, :float, :float, :int, Color.by_value],
    :DrawCylinderEx => [Vector3.by_value, Vector3.by_value, :float, :float, :int, Color.by_value],
    :DrawCylinderWires => [Vector3.by_value, :float, :float, :float, :int, Color.by_value],
    :DrawCylinderWiresEx => [Vector3.by_value, Vector3.by_value, :float, :float, :int, Color.by_value],
    :DrawPlane => [Vector3.by_value, Vector2.by_value, Color.by_value],
    :DrawRay => [Ray.by_value, Color.by_value],
    :DrawGrid => [:int, :float],
    :LoadModel => [:pointer],
    :LoadModelFromMesh => [Mesh.by_value],
    :UnloadModel => [Model.by_value],
    :UnloadModelKeepMeshes => [Model.by_value],
    :GetModelBoundingBox => [Model.by_value],
    :DrawModel => [Model.by_value, Vector3.by_value, :float, Color.by_value],
    :DrawModelEx => [Model.by_value, Vector3.by_value, Vector3.by_value, :float, Vector3.by_value, Color.by_value],
    :DrawModelWires => [Model.by_value, Vector3.by_value, :float, Color.by_value],
    :DrawModelWiresEx => [Model.by_value, Vector3.by_value, Vector3.by_value, :float, Vector3.by_value, Color.by_value],
    :DrawBoundingBox => [BoundingBox.by_value, Color.by_value],
    :DrawBillboard => [Camera.by_value, Texture2D.by_value, Vector3.by_value, :float, Color.by_value],
    :DrawBillboardRec => [Camera.by_value, Texture2D.by_value, Rectangle.by_value, Vector3.by_value, Vector2.by_value, Color.by_value],
    :DrawBillboardPro => [Camera.by_value, Texture2D.by_value, Rectangle.by_value, Vector3.by_value, Vector3.by_value, Vector2.by_value, Vector2.by_value, :float, Color.by_value],
    :UploadMesh => [:pointer, :bool],
    :UpdateMeshBuffer => [Mesh.by_value, :int, :pointer, :int, :int],
    :UnloadMesh => [Mesh.by_value],
    :DrawMesh => [Mesh.by_value, Material.by_value, Matrix.by_value],
    :DrawMeshInstanced => [Mesh.by_value, Material.by_value, :pointer, :int],
    :ExportMesh => [Mesh.by_value, :pointer],
    :GetMeshBoundingBox => [Mesh.by_value],
    :GenMeshTangents => [:pointer],
    :GenMeshBinormals => [:pointer],
    :GenMeshPoly => [:int, :float],
    :GenMeshPlane => [:float, :float, :int, :int],
    :GenMeshCube => [:float, :float, :float],
    :GenMeshSphere => [:float, :int, :int],
    :GenMeshHemiSphere => [:float, :int, :int],
    :GenMeshCylinder => [:float, :float, :int],
    :GenMeshCone => [:float, :float, :int],
    :GenMeshTorus => [:float, :float, :int, :int],
    :GenMeshKnot => [:float, :float, :int, :int],
    :GenMeshHeightmap => [Image.by_value, Vector3.by_value],
    :GenMeshCubicmap => [Image.by_value, Vector3.by_value],
    :LoadMaterials => [:pointer, :pointer],
    :LoadMaterialDefault => [],
    :UnloadMaterial => [Material.by_value],
    :SetMaterialTexture => [:pointer, :int, Texture2D.by_value],
    :SetModelMeshMaterial => [:pointer, :int, :int],
    :LoadModelAnimations => [:pointer, :pointer],
    :UpdateModelAnimation => [Model.by_value, ModelAnimation.by_value, :int],
    :UnloadModelAnimation => [ModelAnimation.by_value],
    :UnloadModelAnimations => [:pointer, :uint],
    :IsModelAnimationValid => [Model.by_value, ModelAnimation.by_value],
    :CheckCollisionSpheres => [Vector3.by_value, :float, Vector3.by_value, :float],
    :CheckCollisionBoxes => [BoundingBox.by_value, BoundingBox.by_value],
    :CheckCollisionBoxSphere => [BoundingBox.by_value, Vector3.by_value, :float],
    :GetRayCollisionSphere => [Ray.by_value, Vector3.by_value, :float],
    :GetRayCollisionBox => [Ray.by_value, BoundingBox.by_value],
    :GetRayCollisionModel => [Ray.by_value, Model.by_value],
    :GetRayCollisionMesh => [Ray.by_value, Mesh.by_value, Matrix.by_value],
    :GetRayCollisionTriangle => [Ray.by_value, Vector3.by_value, Vector3.by_value, Vector3.by_value],
    :GetRayCollisionQuad => [Ray.by_value, Vector3.by_value, Vector3.by_value, Vector3.by_value, Vector3.by_value],
    :InitAudioDevice => [],
    :CloseAudioDevice => [],
    :IsAudioDeviceReady => [],
    :SetMasterVolume => [:float],
    :LoadWave => [:pointer],
    :LoadWaveFromMemory => [:pointer, :pointer, :int],
    :LoadSound => [:pointer],
    :LoadSoundFromWave => [Wave.by_value],
    :UpdateSound => [Sound.by_value, :pointer, :int],
    :UnloadWave => [Wave.by_value],
    :UnloadSound => [Sound.by_value],
    :ExportWave => [Wave.by_value, :pointer],
    :ExportWaveAsCode => [Wave.by_value, :pointer],
    :PlaySound => [Sound.by_value],
    :StopSound => [Sound.by_value],
    :PauseSound => [Sound.by_value],
    :ResumeSound => [Sound.by_value],
    :PlaySoundMulti => [Sound.by_value],
    :StopSoundMulti => [],
    :GetSoundsPlaying => [],
    :IsSoundPlaying => [Sound.by_value],
    :SetSoundVolume => [Sound.by_value, :float],
    :SetSoundPitch => [Sound.by_value, :float],
    :SetSoundPan => [Sound.by_value, :float],
    :WaveCopy => [Wave.by_value],
    :WaveCrop => [:pointer, :int, :int],
    :WaveFormat => [:pointer, :int, :int, :int],
    :LoadWaveSamples => [Wave.by_value],
    :UnloadWaveSamples => [:pointer],
    :LoadMusicStream => [:pointer],
    :LoadMusicStreamFromMemory => [:pointer, :pointer, :int],
    :UnloadMusicStream => [Music.by_value],
    :PlayMusicStream => [Music.by_value],
    :IsMusicStreamPlaying => [Music.by_value],
    :UpdateMusicStream => [Music.by_value],
    :StopMusicStream => [Music.by_value],
    :PauseMusicStream => [Music.by_value],
    :ResumeMusicStream => [Music.by_value],
    :SeekMusicStream => [Music.by_value, :float],
    :SetMusicVolume => [Music.by_value, :float],
    :SetMusicPitch => [Music.by_value, :float],
    :SetMusicPan => [Music.by_value, :float],
    :GetMusicTimeLength => [Music.by_value],
    :GetMusicTimePlayed => [Music.by_value],
    :LoadAudioStream => [:uint, :uint, :uint],
    :UnloadAudioStream => [AudioStream.by_value],
    :UpdateAudioStream => [AudioStream.by_value, :pointer, :int],
    :IsAudioStreamProcessed => [AudioStream.by_value],
    :PlayAudioStream => [AudioStream.by_value],
    :PauseAudioStream => [AudioStream.by_value],
    :ResumeAudioStream => [AudioStream.by_value],
    :IsAudioStreamPlaying => [AudioStream.by_value],
    :StopAudioStream => [AudioStream.by_value],
    :SetAudioStreamVolume => [AudioStream.by_value, :float],
    :SetAudioStreamPitch => [AudioStream.by_value, :float],
    :SetAudioStreamPan => [AudioStream.by_value, :float],
    :SetAudioStreamBufferSizeDefault => [:int],
  }
  retvals = {
    :InitWindow => :void,
    :WindowShouldClose => :bool,
    :CloseWindow => :void,
    :IsWindowReady => :bool,
    :IsWindowFullscreen => :bool,
    :IsWindowHidden => :bool,
    :IsWindowMinimized => :bool,
    :IsWindowMaximized => :bool,
    :IsWindowFocused => :bool,
    :IsWindowResized => :bool,
    :IsWindowState => :bool,
    :SetWindowState => :void,
    :ClearWindowState => :void,
    :ToggleFullscreen => :void,
    :MaximizeWindow => :void,
    :MinimizeWindow => :void,
    :RestoreWindow => :void,
    :SetWindowIcon => :void,
    :SetWindowTitle => :void,
    :SetWindowPosition => :void,
    :SetWindowMonitor => :void,
    :SetWindowMinSize => :void,
    :SetWindowSize => :void,
    :SetWindowOpacity => :void,
    :GetWindowHandle => :pointer,
    :GetScreenWidth => :int,
    :GetScreenHeight => :int,
    :GetRenderWidth => :int,
    :GetRenderHeight => :int,
    :GetMonitorCount => :int,
    :GetCurrentMonitor => :int,
    :GetMonitorPosition => Vector2.by_value,
    :GetMonitorWidth => :int,
    :GetMonitorHeight => :int,
    :GetMonitorPhysicalWidth => :int,
    :GetMonitorPhysicalHeight => :int,
    :GetMonitorRefreshRate => :int,
    :GetWindowPosition => Vector2.by_value,
    :GetWindowScaleDPI => Vector2.by_value,
    :GetMonitorName => :pointer,
    :SetClipboardText => :void,
    :GetClipboardText => :pointer,
    :SwapScreenBuffer => :void,
    :PollInputEvents => :void,
    :WaitTime => :void,
    :ShowCursor => :void,
    :HideCursor => :void,
    :IsCursorHidden => :bool,
    :EnableCursor => :void,
    :DisableCursor => :void,
    :IsCursorOnScreen => :bool,
    :ClearBackground => :void,
    :BeginDrawing => :void,
    :EndDrawing => :void,
    :BeginMode2D => :void,
    :EndMode2D => :void,
    :BeginMode3D => :void,
    :EndMode3D => :void,
    :BeginTextureMode => :void,
    :EndTextureMode => :void,
    :BeginShaderMode => :void,
    :EndShaderMode => :void,
    :BeginBlendMode => :void,
    :EndBlendMode => :void,
    :BeginScissorMode => :void,
    :EndScissorMode => :void,
    :BeginVrStereoMode => :void,
    :EndVrStereoMode => :void,
    :LoadVrStereoConfig => VrStereoConfig.by_value,
    :UnloadVrStereoConfig => :void,
    :LoadShader => Shader.by_value,
    :LoadShaderFromMemory => Shader.by_value,
    :GetShaderLocation => :int,
    :GetShaderLocationAttrib => :int,
    :SetShaderValue => :void,
    :SetShaderValueV => :void,
    :SetShaderValueMatrix => :void,
    :SetShaderValueTexture => :void,
    :UnloadShader => :void,
    :GetMouseRay => Ray.by_value,
    :GetCameraMatrix => Matrix.by_value,
    :GetCameraMatrix2D => Matrix.by_value,
    :GetWorldToScreen => Vector2.by_value,
    :GetWorldToScreenEx => Vector2.by_value,
    :GetWorldToScreen2D => Vector2.by_value,
    :GetScreenToWorld2D => Vector2.by_value,
    :SetTargetFPS => :void,
    :GetFPS => :int,
    :GetFrameTime => :float,
    :GetTime => :double,
    :GetRandomValue => :int,
    :SetRandomSeed => :void,
    :TakeScreenshot => :void,
    :SetConfigFlags => :void,
    :TraceLog => :void,
    :SetTraceLogLevel => :void,
    :MemAlloc => :pointer,
    :MemRealloc => :pointer,
    :MemFree => :void,
    :SetTraceLogCallback => :void,
    :SetLoadFileDataCallback => :void,
    :SetSaveFileDataCallback => :void,
    :SetLoadFileTextCallback => :void,
    :SetSaveFileTextCallback => :void,
    :LoadFileData => :pointer,
    :UnloadFileData => :void,
    :SaveFileData => :bool,
    :LoadFileText => :pointer,
    :UnloadFileText => :void,
    :SaveFileText => :bool,
    :FileExists => :bool,
    :DirectoryExists => :bool,
    :IsFileExtension => :bool,
    :GetFileLength => :int,
    :GetFileExtension => :pointer,
    :GetFileName => :pointer,
    :GetFileNameWithoutExt => :pointer,
    :GetDirectoryPath => :pointer,
    :GetPrevDirectoryPath => :pointer,
    :GetWorkingDirectory => :pointer,
    :GetApplicationDirectory => :pointer,
    :GetDirectoryFiles => :pointer,
    :ClearDirectoryFiles => :void,
    :ChangeDirectory => :bool,
    :IsFileDropped => :bool,
    :GetDroppedFiles => :pointer,
    :ClearDroppedFiles => :void,
    :GetFileModTime => :long,
    :CompressData => :pointer,
    :DecompressData => :pointer,
    :EncodeDataBase64 => :pointer,
    :DecodeDataBase64 => :pointer,
    :SaveStorageValue => :bool,
    :LoadStorageValue => :int,
    :OpenURL => :void,
    :IsKeyPressed => :bool,
    :IsKeyDown => :bool,
    :IsKeyReleased => :bool,
    :IsKeyUp => :bool,
    :SetExitKey => :void,
    :GetKeyPressed => :int,
    :GetCharPressed => :int,
    :IsGamepadAvailable => :bool,
    :GetGamepadName => :pointer,
    :IsGamepadButtonPressed => :bool,
    :IsGamepadButtonDown => :bool,
    :IsGamepadButtonReleased => :bool,
    :IsGamepadButtonUp => :bool,
    :GetGamepadButtonPressed => :int,
    :GetGamepadAxisCount => :int,
    :GetGamepadAxisMovement => :float,
    :SetGamepadMappings => :int,
    :IsMouseButtonPressed => :bool,
    :IsMouseButtonDown => :bool,
    :IsMouseButtonReleased => :bool,
    :IsMouseButtonUp => :bool,
    :GetMouseX => :int,
    :GetMouseY => :int,
    :GetMousePosition => Vector2.by_value,
    :GetMouseDelta => Vector2.by_value,
    :SetMousePosition => :void,
    :SetMouseOffset => :void,
    :SetMouseScale => :void,
    :GetMouseWheelMove => :float,
    :SetMouseCursor => :void,
    :GetTouchX => :int,
    :GetTouchY => :int,
    :GetTouchPosition => Vector2.by_value,
    :GetTouchPointId => :int,
    :GetTouchPointCount => :int,
    :SetGesturesEnabled => :void,
    :IsGestureDetected => :bool,
    :GetGestureDetected => :int,
    :GetGestureHoldDuration => :float,
    :GetGestureDragVector => Vector2.by_value,
    :GetGestureDragAngle => :float,
    :GetGesturePinchVector => Vector2.by_value,
    :GetGesturePinchAngle => :float,
    :SetCameraMode => :void,
    :UpdateCamera => :void,
    :SetCameraPanControl => :void,
    :SetCameraAltControl => :void,
    :SetCameraSmoothZoomControl => :void,
    :SetCameraMoveControls => :void,
    :SetShapesTexture => :void,
    :DrawPixel => :void,
    :DrawPixelV => :void,
    :DrawLine => :void,
    :DrawLineV => :void,
    :DrawLineEx => :void,
    :DrawLineBezier => :void,
    :DrawLineBezierQuad => :void,
    :DrawLineBezierCubic => :void,
    :DrawLineStrip => :void,
    :DrawCircle => :void,
    :DrawCircleSector => :void,
    :DrawCircleSectorLines => :void,
    :DrawCircleGradient => :void,
    :DrawCircleV => :void,
    :DrawCircleLines => :void,
    :DrawEllipse => :void,
    :DrawEllipseLines => :void,
    :DrawRing => :void,
    :DrawRingLines => :void,
    :DrawRectangle => :void,
    :DrawRectangleV => :void,
    :DrawRectangleRec => :void,
    :DrawRectanglePro => :void,
    :DrawRectangleGradientV => :void,
    :DrawRectangleGradientH => :void,
    :DrawRectangleGradientEx => :void,
    :DrawRectangleLines => :void,
    :DrawRectangleLinesEx => :void,
    :DrawRectangleRounded => :void,
    :DrawRectangleRoundedLines => :void,
    :DrawTriangle => :void,
    :DrawTriangleLines => :void,
    :DrawTriangleFan => :void,
    :DrawTriangleStrip => :void,
    :DrawPoly => :void,
    :DrawPolyLines => :void,
    :DrawPolyLinesEx => :void,
    :CheckCollisionRecs => :bool,
    :CheckCollisionCircles => :bool,
    :CheckCollisionCircleRec => :bool,
    :CheckCollisionPointRec => :bool,
    :CheckCollisionPointCircle => :bool,
    :CheckCollisionPointTriangle => :bool,
    :CheckCollisionLines => :bool,
    :CheckCollisionPointLine => :bool,
    :GetCollisionRec => Rectangle.by_value,
    :LoadImage => Image.by_value,
    :LoadImageRaw => Image.by_value,
    :LoadImageAnim => Image.by_value,
    :LoadImageFromMemory => Image.by_value,
    :LoadImageFromTexture => Image.by_value,
    :LoadImageFromScreen => Image.by_value,
    :UnloadImage => :void,
    :ExportImage => :bool,
    :ExportImageAsCode => :bool,
    :GenImageColor => Image.by_value,
    :GenImageGradientV => Image.by_value,
    :GenImageGradientH => Image.by_value,
    :GenImageGradientRadial => Image.by_value,
    :GenImageChecked => Image.by_value,
    :GenImageWhiteNoise => Image.by_value,
    :GenImageCellular => Image.by_value,
    :ImageCopy => Image.by_value,
    :ImageFromImage => Image.by_value,
    :ImageText => Image.by_value,
    :ImageTextEx => Image.by_value,
    :ImageFormat => :void,
    :ImageToPOT => :void,
    :ImageCrop => :void,
    :ImageAlphaCrop => :void,
    :ImageAlphaClear => :void,
    :ImageAlphaMask => :void,
    :ImageAlphaPremultiply => :void,
    :ImageResize => :void,
    :ImageResizeNN => :void,
    :ImageResizeCanvas => :void,
    :ImageMipmaps => :void,
    :ImageDither => :void,
    :ImageFlipVertical => :void,
    :ImageFlipHorizontal => :void,
    :ImageRotateCW => :void,
    :ImageRotateCCW => :void,
    :ImageColorTint => :void,
    :ImageColorInvert => :void,
    :ImageColorGrayscale => :void,
    :ImageColorContrast => :void,
    :ImageColorBrightness => :void,
    :ImageColorReplace => :void,
    :LoadImageColors => :pointer,
    :LoadImagePalette => :pointer,
    :UnloadImageColors => :void,
    :UnloadImagePalette => :void,
    :GetImageAlphaBorder => Rectangle.by_value,
    :GetImageColor => Color.by_value,
    :ImageClearBackground => :void,
    :ImageDrawPixel => :void,
    :ImageDrawPixelV => :void,
    :ImageDrawLine => :void,
    :ImageDrawLineV => :void,
    :ImageDrawCircle => :void,
    :ImageDrawCircleV => :void,
    :ImageDrawRectangle => :void,
    :ImageDrawRectangleV => :void,
    :ImageDrawRectangleRec => :void,
    :ImageDrawRectangleLines => :void,
    :ImageDraw => :void,
    :ImageDrawText => :void,
    :ImageDrawTextEx => :void,
    :LoadTexture => Texture2D.by_value,
    :LoadTextureFromImage => Texture2D.by_value,
    :LoadTextureCubemap => TextureCubemap.by_value,
    :LoadRenderTexture => RenderTexture2D.by_value,
    :UnloadTexture => :void,
    :UnloadRenderTexture => :void,
    :UpdateTexture => :void,
    :UpdateTextureRec => :void,
    :GenTextureMipmaps => :void,
    :SetTextureFilter => :void,
    :SetTextureWrap => :void,
    :DrawTexture => :void,
    :DrawTextureV => :void,
    :DrawTextureEx => :void,
    :DrawTextureRec => :void,
    :DrawTextureQuad => :void,
    :DrawTextureTiled => :void,
    :DrawTexturePro => :void,
    :DrawTextureNPatch => :void,
    :DrawTexturePoly => :void,
    :Fade => Color.by_value,
    :ColorToInt => :int,
    :ColorNormalize => Vector4.by_value,
    :ColorFromNormalized => Color.by_value,
    :ColorToHSV => Vector3.by_value,
    :ColorFromHSV => Color.by_value,
    :ColorAlpha => Color.by_value,
    :ColorAlphaBlend => Color.by_value,
    :GetColor => Color.by_value,
    :GetPixelColor => Color.by_value,
    :SetPixelColor => :void,
    :GetPixelDataSize => :int,
    :GetFontDefault => Font.by_value,
    :LoadFont => Font.by_value,
    :LoadFontEx => Font.by_value,
    :LoadFontFromImage => Font.by_value,
    :LoadFontFromMemory => Font.by_value,
    :LoadFontData => :pointer,
    :GenImageFontAtlas => Image.by_value,
    :UnloadFontData => :void,
    :UnloadFont => :void,
    :ExportFontAsCode => :bool,
    :DrawFPS => :void,
    :DrawText => :void,
    :DrawTextEx => :void,
    :DrawTextPro => :void,
    :DrawTextCodepoint => :void,
    :DrawTextCodepoints => :void,
    :MeasureText => :int,
    :MeasureTextEx => Vector2.by_value,
    :GetGlyphIndex => :int,
    :GetGlyphInfo => GlyphInfo.by_value,
    :GetGlyphAtlasRec => Rectangle.by_value,
    :LoadCodepoints => :pointer,
    :UnloadCodepoints => :void,
    :GetCodepointCount => :int,
    :GetCodepoint => :int,
    :CodepointToUTF8 => :pointer,
    :TextCodepointsToUTF8 => :pointer,
    :TextCopy => :int,
    :TextIsEqual => :bool,
    :TextLength => :uint,
    :TextFormat => :pointer,
    :TextSubtext => :pointer,
    :TextReplace => :pointer,
    :TextInsert => :pointer,
    :TextJoin => :pointer,
    :TextSplit => :pointer,
    :TextAppend => :void,
    :TextFindIndex => :int,
    :TextToUpper => :pointer,
    :TextToLower => :pointer,
    :TextToPascal => :pointer,
    :TextToInteger => :int,
    :DrawLine3D => :void,
    :DrawPoint3D => :void,
    :DrawCircle3D => :void,
    :DrawTriangle3D => :void,
    :DrawTriangleStrip3D => :void,
    :DrawCube => :void,
    :DrawCubeV => :void,
    :DrawCubeWires => :void,
    :DrawCubeWiresV => :void,
    :DrawCubeTexture => :void,
    :DrawCubeTextureRec => :void,
    :DrawSphere => :void,
    :DrawSphereEx => :void,
    :DrawSphereWires => :void,
    :DrawCylinder => :void,
    :DrawCylinderEx => :void,
    :DrawCylinderWires => :void,
    :DrawCylinderWiresEx => :void,
    :DrawPlane => :void,
    :DrawRay => :void,
    :DrawGrid => :void,
    :LoadModel => Model.by_value,
    :LoadModelFromMesh => Model.by_value,
    :UnloadModel => :void,
    :UnloadModelKeepMeshes => :void,
    :GetModelBoundingBox => BoundingBox.by_value,
    :DrawModel => :void,
    :DrawModelEx => :void,
    :DrawModelWires => :void,
    :DrawModelWiresEx => :void,
    :DrawBoundingBox => :void,
    :DrawBillboard => :void,
    :DrawBillboardRec => :void,
    :DrawBillboardPro => :void,
    :UploadMesh => :void,
    :UpdateMeshBuffer => :void,
    :UnloadMesh => :void,
    :DrawMesh => :void,
    :DrawMeshInstanced => :void,
    :ExportMesh => :bool,
    :GetMeshBoundingBox => BoundingBox.by_value,
    :GenMeshTangents => :void,
    :GenMeshBinormals => :void,
    :GenMeshPoly => Mesh.by_value,
    :GenMeshPlane => Mesh.by_value,
    :GenMeshCube => Mesh.by_value,
    :GenMeshSphere => Mesh.by_value,
    :GenMeshHemiSphere => Mesh.by_value,
    :GenMeshCylinder => Mesh.by_value,
    :GenMeshCone => Mesh.by_value,
    :GenMeshTorus => Mesh.by_value,
    :GenMeshKnot => Mesh.by_value,
    :GenMeshHeightmap => Mesh.by_value,
    :GenMeshCubicmap => Mesh.by_value,
    :LoadMaterials => :pointer,
    :LoadMaterialDefault => Material.by_value,
    :UnloadMaterial => :void,
    :SetMaterialTexture => :void,
    :SetModelMeshMaterial => :void,
    :LoadModelAnimations => :pointer,
    :UpdateModelAnimation => :void,
    :UnloadModelAnimation => :void,
    :UnloadModelAnimations => :void,
    :IsModelAnimationValid => :bool,
    :CheckCollisionSpheres => :bool,
    :CheckCollisionBoxes => :bool,
    :CheckCollisionBoxSphere => :bool,
    :GetRayCollisionSphere => RayCollision.by_value,
    :GetRayCollisionBox => RayCollision.by_value,
    :GetRayCollisionModel => RayCollision.by_value,
    :GetRayCollisionMesh => RayCollision.by_value,
    :GetRayCollisionTriangle => RayCollision.by_value,
    :GetRayCollisionQuad => RayCollision.by_value,
    :InitAudioDevice => :void,
    :CloseAudioDevice => :void,
    :IsAudioDeviceReady => :bool,
    :SetMasterVolume => :void,
    :LoadWave => Wave.by_value,
    :LoadWaveFromMemory => Wave.by_value,
    :LoadSound => Sound.by_value,
    :LoadSoundFromWave => Sound.by_value,
    :UpdateSound => :void,
    :UnloadWave => :void,
    :UnloadSound => :void,
    :ExportWave => :bool,
    :ExportWaveAsCode => :bool,
    :PlaySound => :void,
    :StopSound => :void,
    :PauseSound => :void,
    :ResumeSound => :void,
    :PlaySoundMulti => :void,
    :StopSoundMulti => :void,
    :GetSoundsPlaying => :int,
    :IsSoundPlaying => :bool,
    :SetSoundVolume => :void,
    :SetSoundPitch => :void,
    :SetSoundPan => :void,
    :WaveCopy => Wave.by_value,
    :WaveCrop => :void,
    :WaveFormat => :void,
    :LoadWaveSamples => :pointer,
    :UnloadWaveSamples => :void,
    :LoadMusicStream => Music.by_value,
    :LoadMusicStreamFromMemory => Music.by_value,
    :UnloadMusicStream => :void,
    :PlayMusicStream => :void,
    :IsMusicStreamPlaying => :bool,
    :UpdateMusicStream => :void,
    :StopMusicStream => :void,
    :PauseMusicStream => :void,
    :ResumeMusicStream => :void,
    :SeekMusicStream => :void,
    :SetMusicVolume => :void,
    :SetMusicPitch => :void,
    :SetMusicPan => :void,
    :GetMusicTimeLength => :float,
    :GetMusicTimePlayed => :float,
    :LoadAudioStream => AudioStream.by_value,
    :UnloadAudioStream => :void,
    :UpdateAudioStream => :void,
    :IsAudioStreamProcessed => :bool,
    :PlayAudioStream => :void,
    :PauseAudioStream => :void,
    :ResumeAudioStream => :void,
    :IsAudioStreamPlaying => :bool,
    :StopAudioStream => :void,
    :SetAudioStreamVolume => :void,
    :SetAudioStreamPitch => :void,
    :SetAudioStreamPan => :void,
    :SetAudioStreamBufferSizeDefault => :void,
  }
  symbols.each do |sym|
    begin
      attach_function sym, args[sym], retvals[sym]
    rescue FFI::NotFoundError => error
      $stderr.puts("[Warning] Failed to import #{sym} (#{error}).")
    end
  end
end
setup_raymath_symbols() click to toggle source

Function

# File lib/raymath.rb, line 37
def self.setup_raymath_symbols()
  symbols = [
    :Clamp,
    :Lerp,
    :Normalize,
    :Remap,
    :Vector2Zero,
    :Vector2One,
    :Vector2Add,
    :Vector2AddValue,
    :Vector2Subtract,
    :Vector2SubtractValue,
    :Vector2Length,
    :Vector2LengthSqr,
    :Vector2DotProduct,
    :Vector2Distance,
    :Vector2Angle,
    :Vector2Scale,
    :Vector2Multiply,
    :Vector2Negate,
    :Vector2Divide,
    :Vector2Normalize,
    :Vector2Transform,
    :Vector2Lerp,
    :Vector2Reflect,
    :Vector2Rotate,
    :Vector2MoveTowards,
    :Vector3Zero,
    :Vector3One,
    :Vector3Add,
    :Vector3AddValue,
    :Vector3Subtract,
    :Vector3SubtractValue,
    :Vector3Scale,
    :Vector3Multiply,
    :Vector3CrossProduct,
    :Vector3Perpendicular,
    :Vector3Length,
    :Vector3LengthSqr,
    :Vector3DotProduct,
    :Vector3Distance,
    :Vector3Angle,
    :Vector3Negate,
    :Vector3Divide,
    :Vector3Normalize,
    :Vector3OrthoNormalize,
    :Vector3Transform,
    :Vector3RotateByQuaternion,
    :Vector3Lerp,
    :Vector3Reflect,
    :Vector3Min,
    :Vector3Max,
    :Vector3Barycenter,
    :Vector3Unproject,
    :Vector3ToFloatV,
    :MatrixDeterminant,
    :MatrixTrace,
    :MatrixTranspose,
    :MatrixInvert,
    :MatrixNormalize,
    :MatrixIdentity,
    :MatrixAdd,
    :MatrixSubtract,
    :MatrixMultiply,
    :MatrixTranslate,
    :MatrixRotate,
    :MatrixRotateX,
    :MatrixRotateY,
    :MatrixRotateZ,
    :MatrixRotateXYZ,
    :MatrixRotateZYX,
    :MatrixScale,
    :MatrixFrustum,
    :MatrixPerspective,
    :MatrixOrtho,
    :MatrixLookAt,
    :MatrixToFloatV,
    :QuaternionAdd,
    :QuaternionAddValue,
    :QuaternionSubtract,
    :QuaternionSubtractValue,
    :QuaternionIdentity,
    :QuaternionLength,
    :QuaternionNormalize,
    :QuaternionInvert,
    :QuaternionMultiply,
    :QuaternionScale,
    :QuaternionDivide,
    :QuaternionLerp,
    :QuaternionNlerp,
    :QuaternionSlerp,
    :QuaternionFromVector3ToVector3,
    :QuaternionFromMatrix,
    :QuaternionToMatrix,
    :QuaternionFromAxisAngle,
    :QuaternionToAxisAngle,
    :QuaternionFromEuler,
    :QuaternionToEuler,
    :QuaternionTransform,
  ]
  args = {
    :Clamp => [:float, :float, :float],
    :Lerp => [:float, :float, :float],
    :Normalize => [:float, :float, :float],
    :Remap => [:float, :float, :float, :float, :float],
    :Vector2Zero => [],
    :Vector2One => [],
    :Vector2Add => [Vector2.by_value, Vector2.by_value],
    :Vector2AddValue => [Vector2.by_value, :float],
    :Vector2Subtract => [Vector2.by_value, Vector2.by_value],
    :Vector2SubtractValue => [Vector2.by_value, :float],
    :Vector2Length => [Vector2.by_value],
    :Vector2LengthSqr => [Vector2.by_value],
    :Vector2DotProduct => [Vector2.by_value, Vector2.by_value],
    :Vector2Distance => [Vector2.by_value, Vector2.by_value],
    :Vector2Angle => [Vector2.by_value, Vector2.by_value],
    :Vector2Scale => [Vector2.by_value, :float],
    :Vector2Multiply => [Vector2.by_value, Vector2.by_value],
    :Vector2Negate => [Vector2.by_value],
    :Vector2Divide => [Vector2.by_value, Vector2.by_value],
    :Vector2Normalize => [Vector2.by_value],
    :Vector2Transform => [Vector2.by_value, Matrix.by_value],
    :Vector2Lerp => [Vector2.by_value, Vector2.by_value, :float],
    :Vector2Reflect => [Vector2.by_value, Vector2.by_value],
    :Vector2Rotate => [Vector2.by_value, :float],
    :Vector2MoveTowards => [Vector2.by_value, Vector2.by_value, :float],
    :Vector3Zero => [],
    :Vector3One => [],
    :Vector3Add => [Vector3.by_value, Vector3.by_value],
    :Vector3AddValue => [Vector3.by_value, :float],
    :Vector3Subtract => [Vector3.by_value, Vector3.by_value],
    :Vector3SubtractValue => [Vector3.by_value, :float],
    :Vector3Scale => [Vector3.by_value, :float],
    :Vector3Multiply => [Vector3.by_value, Vector3.by_value],
    :Vector3CrossProduct => [Vector3.by_value, Vector3.by_value],
    :Vector3Perpendicular => [Vector3.by_value],
    :Vector3Length => [Vector3.by_value],
    :Vector3LengthSqr => [Vector3.by_value],
    :Vector3DotProduct => [Vector3.by_value, Vector3.by_value],
    :Vector3Distance => [Vector3.by_value, Vector3.by_value],
    :Vector3Angle => [Vector3.by_value, Vector3.by_value],
    :Vector3Negate => [Vector3.by_value],
    :Vector3Divide => [Vector3.by_value, Vector3.by_value],
    :Vector3Normalize => [Vector3.by_value],
    :Vector3OrthoNormalize => [:pointer, :pointer],
    :Vector3Transform => [Vector3.by_value, Matrix.by_value],
    :Vector3RotateByQuaternion => [Vector3.by_value, Quaternion.by_value],
    :Vector3Lerp => [Vector3.by_value, Vector3.by_value, :float],
    :Vector3Reflect => [Vector3.by_value, Vector3.by_value],
    :Vector3Min => [Vector3.by_value, Vector3.by_value],
    :Vector3Max => [Vector3.by_value, Vector3.by_value],
    :Vector3Barycenter => [Vector3.by_value, Vector3.by_value, Vector3.by_value, Vector3.by_value],
    :Vector3Unproject => [Vector3.by_value, Matrix.by_value, Matrix.by_value],
    :Vector3ToFloatV => [Vector3.by_value],
    :MatrixDeterminant => [Matrix.by_value],
    :MatrixTrace => [Matrix.by_value],
    :MatrixTranspose => [Matrix.by_value],
    :MatrixInvert => [Matrix.by_value],
    :MatrixNormalize => [Matrix.by_value],
    :MatrixIdentity => [],
    :MatrixAdd => [Matrix.by_value, Matrix.by_value],
    :MatrixSubtract => [Matrix.by_value, Matrix.by_value],
    :MatrixMultiply => [Matrix.by_value, Matrix.by_value],
    :MatrixTranslate => [:float, :float, :float],
    :MatrixRotate => [Vector3.by_value, :float],
    :MatrixRotateX => [:float],
    :MatrixRotateY => [:float],
    :MatrixRotateZ => [:float],
    :MatrixRotateXYZ => [Vector3.by_value],
    :MatrixRotateZYX => [Vector3.by_value],
    :MatrixScale => [:float, :float, :float],
    :MatrixFrustum => [:double, :double, :double, :double, :double, :double],
    :MatrixPerspective => [:double, :double, :double, :double],
    :MatrixOrtho => [:double, :double, :double, :double, :double, :double],
    :MatrixLookAt => [Vector3.by_value, Vector3.by_value, Vector3.by_value],
    :MatrixToFloatV => [Matrix.by_value],
    :QuaternionAdd => [Quaternion.by_value, Quaternion.by_value],
    :QuaternionAddValue => [Quaternion.by_value, :float],
    :QuaternionSubtract => [Quaternion.by_value, Quaternion.by_value],
    :QuaternionSubtractValue => [Quaternion.by_value, :float],
    :QuaternionIdentity => [],
    :QuaternionLength => [Quaternion.by_value],
    :QuaternionNormalize => [Quaternion.by_value],
    :QuaternionInvert => [Quaternion.by_value],
    :QuaternionMultiply => [Quaternion.by_value, Quaternion.by_value],
    :QuaternionScale => [Quaternion.by_value, :float],
    :QuaternionDivide => [Quaternion.by_value, Quaternion.by_value],
    :QuaternionLerp => [Quaternion.by_value, Quaternion.by_value, :float],
    :QuaternionNlerp => [Quaternion.by_value, Quaternion.by_value, :float],
    :QuaternionSlerp => [Quaternion.by_value, Quaternion.by_value, :float],
    :QuaternionFromVector3ToVector3 => [Vector3.by_value, Vector3.by_value],
    :QuaternionFromMatrix => [Matrix.by_value],
    :QuaternionToMatrix => [Quaternion.by_value],
    :QuaternionFromAxisAngle => [Vector3.by_value, :float],
    :QuaternionToAxisAngle => [Quaternion.by_value, :pointer, :pointer],
    :QuaternionFromEuler => [:float, :float, :float],
    :QuaternionToEuler => [Quaternion.by_value],
    :QuaternionTransform => [Quaternion.by_value, Matrix.by_value],
  }
  retvals = {
    :Clamp => :float,
    :Lerp => :float,
    :Normalize => :float,
    :Remap => :float,
    :Vector2Zero => Vector2.by_value,
    :Vector2One => Vector2.by_value,
    :Vector2Add => Vector2.by_value,
    :Vector2AddValue => Vector2.by_value,
    :Vector2Subtract => Vector2.by_value,
    :Vector2SubtractValue => Vector2.by_value,
    :Vector2Length => :float,
    :Vector2LengthSqr => :float,
    :Vector2DotProduct => :float,
    :Vector2Distance => :float,
    :Vector2Angle => :float,
    :Vector2Scale => Vector2.by_value,
    :Vector2Multiply => Vector2.by_value,
    :Vector2Negate => Vector2.by_value,
    :Vector2Divide => Vector2.by_value,
    :Vector2Normalize => Vector2.by_value,
    :Vector2Transform => Vector2.by_value,
    :Vector2Lerp => Vector2.by_value,
    :Vector2Reflect => Vector2.by_value,
    :Vector2Rotate => Vector2.by_value,
    :Vector2MoveTowards => Vector2.by_value,
    :Vector3Zero => Vector3.by_value,
    :Vector3One => Vector3.by_value,
    :Vector3Add => Vector3.by_value,
    :Vector3AddValue => Vector3.by_value,
    :Vector3Subtract => Vector3.by_value,
    :Vector3SubtractValue => Vector3.by_value,
    :Vector3Scale => Vector3.by_value,
    :Vector3Multiply => Vector3.by_value,
    :Vector3CrossProduct => Vector3.by_value,
    :Vector3Perpendicular => Vector3.by_value,
    :Vector3Length => :float,
    :Vector3LengthSqr => :float,
    :Vector3DotProduct => :float,
    :Vector3Distance => :float,
    :Vector3Angle => :float,
    :Vector3Negate => Vector3.by_value,
    :Vector3Divide => Vector3.by_value,
    :Vector3Normalize => Vector3.by_value,
    :Vector3OrthoNormalize => :void,
    :Vector3Transform => Vector3.by_value,
    :Vector3RotateByQuaternion => Vector3.by_value,
    :Vector3Lerp => Vector3.by_value,
    :Vector3Reflect => Vector3.by_value,
    :Vector3Min => Vector3.by_value,
    :Vector3Max => Vector3.by_value,
    :Vector3Barycenter => Vector3.by_value,
    :Vector3Unproject => Vector3.by_value,
    :Vector3ToFloatV => Float3.by_value,
    :MatrixDeterminant => :float,
    :MatrixTrace => :float,
    :MatrixTranspose => Matrix.by_value,
    :MatrixInvert => Matrix.by_value,
    :MatrixNormalize => Matrix.by_value,
    :MatrixIdentity => Matrix.by_value,
    :MatrixAdd => Matrix.by_value,
    :MatrixSubtract => Matrix.by_value,
    :MatrixMultiply => Matrix.by_value,
    :MatrixTranslate => Matrix.by_value,
    :MatrixRotate => Matrix.by_value,
    :MatrixRotateX => Matrix.by_value,
    :MatrixRotateY => Matrix.by_value,
    :MatrixRotateZ => Matrix.by_value,
    :MatrixRotateXYZ => Matrix.by_value,
    :MatrixRotateZYX => Matrix.by_value,
    :MatrixScale => Matrix.by_value,
    :MatrixFrustum => Matrix.by_value,
    :MatrixPerspective => Matrix.by_value,
    :MatrixOrtho => Matrix.by_value,
    :MatrixLookAt => Matrix.by_value,
    :MatrixToFloatV => Float16.by_value,
    :QuaternionAdd => Quaternion.by_value,
    :QuaternionAddValue => Quaternion.by_value,
    :QuaternionSubtract => Quaternion.by_value,
    :QuaternionSubtractValue => Quaternion.by_value,
    :QuaternionIdentity => Quaternion.by_value,
    :QuaternionLength => :float,
    :QuaternionNormalize => Quaternion.by_value,
    :QuaternionInvert => Quaternion.by_value,
    :QuaternionMultiply => Quaternion.by_value,
    :QuaternionScale => Quaternion.by_value,
    :QuaternionDivide => Quaternion.by_value,
    :QuaternionLerp => Quaternion.by_value,
    :QuaternionNlerp => Quaternion.by_value,
    :QuaternionSlerp => Quaternion.by_value,
    :QuaternionFromVector3ToVector3 => Quaternion.by_value,
    :QuaternionFromMatrix => Quaternion.by_value,
    :QuaternionToMatrix => Matrix.by_value,
    :QuaternionFromAxisAngle => Quaternion.by_value,
    :QuaternionToAxisAngle => :void,
    :QuaternionFromEuler => Quaternion.by_value,
    :QuaternionToEuler => Vector3.by_value,
    :QuaternionTransform => Quaternion.by_value,
  }
  symbols.each do |sym|
    begin
      attach_function sym, args[sym], retvals[sym]
    rescue FFI::NotFoundError => error
      $stderr.puts("[Warning] Failed to import #{sym} (#{error}).")
    end
  end
end
setup_rlgl_symbols() click to toggle source

Function

# File lib/rlgl.rb, line 215
def self.setup_rlgl_symbols()
  symbols = [
    :rlMatrixMode,
    :rlPushMatrix,
    :rlPopMatrix,
    :rlLoadIdentity,
    :rlTranslatef,
    :rlRotatef,
    :rlScalef,
    :rlMultMatrixf,
    :rlFrustum,
    :rlOrtho,
    :rlViewport,
    :rlBegin,
    :rlEnd,
    :rlVertex2i,
    :rlVertex2f,
    :rlVertex3f,
    :rlTexCoord2f,
    :rlNormal3f,
    :rlColor4ub,
    :rlColor3f,
    :rlColor4f,
    :rlEnableVertexArray,
    :rlDisableVertexArray,
    :rlEnableVertexBuffer,
    :rlDisableVertexBuffer,
    :rlEnableVertexBufferElement,
    :rlDisableVertexBufferElement,
    :rlEnableVertexAttribute,
    :rlDisableVertexAttribute,
    :rlActiveTextureSlot,
    :rlEnableTexture,
    :rlDisableTexture,
    :rlEnableTextureCubemap,
    :rlDisableTextureCubemap,
    :rlTextureParameters,
    :rlEnableShader,
    :rlDisableShader,
    :rlEnableFramebuffer,
    :rlDisableFramebuffer,
    :rlActiveDrawBuffers,
    :rlEnableColorBlend,
    :rlDisableColorBlend,
    :rlEnableDepthTest,
    :rlDisableDepthTest,
    :rlEnableDepthMask,
    :rlDisableDepthMask,
    :rlEnableBackfaceCulling,
    :rlDisableBackfaceCulling,
    :rlEnableScissorTest,
    :rlDisableScissorTest,
    :rlScissor,
    :rlEnableWireMode,
    :rlDisableWireMode,
    :rlSetLineWidth,
    :rlGetLineWidth,
    :rlEnableSmoothLines,
    :rlDisableSmoothLines,
    :rlEnableStereoRender,
    :rlDisableStereoRender,
    :rlIsStereoRenderEnabled,
    :rlClearColor,
    :rlClearScreenBuffers,
    :rlCheckErrors,
    :rlSetBlendMode,
    :rlSetBlendFactors,
    :rlglInit,
    :rlglClose,
    :rlLoadExtensions,
    :rlGetVersion,
    :rlGetFramebufferWidth,
    :rlGetFramebufferHeight,
    :rlGetTextureIdDefault,
    :rlGetShaderIdDefault,
    :rlGetShaderLocsDefault,
    :rlLoadRenderBatch,
    :rlUnloadRenderBatch,
    :rlDrawRenderBatch,
    :rlSetRenderBatchActive,
    :rlDrawRenderBatchActive,
    :rlCheckRenderBatchLimit,
    :rlSetTexture,
    :rlLoadVertexArray,
    :rlLoadVertexBuffer,
    :rlLoadVertexBufferElement,
    :rlUpdateVertexBuffer,
    :rlUpdateVertexBufferElements,
    :rlUnloadVertexArray,
    :rlUnloadVertexBuffer,
    :rlSetVertexAttribute,
    :rlSetVertexAttributeDivisor,
    :rlSetVertexAttributeDefault,
    :rlDrawVertexArray,
    :rlDrawVertexArrayElements,
    :rlDrawVertexArrayInstanced,
    :rlDrawVertexArrayElementsInstanced,
    :rlLoadTexture,
    :rlLoadTextureDepth,
    :rlLoadTextureCubemap,
    :rlUpdateTexture,
    :rlGetGlTextureFormats,
    :rlGetPixelFormatName,
    :rlUnloadTexture,
    :rlGenTextureMipmaps,
    :rlReadTexturePixels,
    :rlReadScreenPixels,
    :rlLoadFramebuffer,
    :rlFramebufferAttach,
    :rlFramebufferComplete,
    :rlUnloadFramebuffer,
    :rlLoadShaderCode,
    :rlCompileShader,
    :rlLoadShaderProgram,
    :rlUnloadShaderProgram,
    :rlGetLocationUniform,
    :rlGetLocationAttrib,
    :rlSetUniform,
    :rlSetUniformMatrix,
    :rlSetUniformSampler,
    :rlSetShader,
    :rlLoadComputeShaderProgram,
    :rlComputeShaderDispatch,
    :rlLoadShaderBuffer,
    :rlUnloadShaderBuffer,
    :rlUpdateShaderBufferElements,
    :rlGetShaderBufferSize,
    :rlReadShaderBufferElements,
    :rlBindShaderBuffer,
    :rlCopyBuffersElements,
    :rlBindImageTexture,
    :rlGetMatrixModelview,
    :rlGetMatrixProjection,
    :rlGetMatrixTransform,
    :rlGetMatrixProjectionStereo,
    :rlGetMatrixViewOffsetStereo,
    :rlSetMatrixProjection,
    :rlSetMatrixModelview,
    :rlSetMatrixProjectionStereo,
    :rlSetMatrixViewOffsetStereo,
    :rlLoadDrawCube,
    :rlLoadDrawQuad,
  ]
  args = {
    :rlMatrixMode => [:int],
    :rlPushMatrix => [],
    :rlPopMatrix => [],
    :rlLoadIdentity => [],
    :rlTranslatef => [:float, :float, :float],
    :rlRotatef => [:float, :float, :float, :float],
    :rlScalef => [:float, :float, :float],
    :rlMultMatrixf => [:pointer],
    :rlFrustum => [:double, :double, :double, :double, :double, :double],
    :rlOrtho => [:double, :double, :double, :double, :double, :double],
    :rlViewport => [:int, :int, :int, :int],
    :rlBegin => [:int],
    :rlEnd => [],
    :rlVertex2i => [:int, :int],
    :rlVertex2f => [:float, :float],
    :rlVertex3f => [:float, :float, :float],
    :rlTexCoord2f => [:float, :float],
    :rlNormal3f => [:float, :float, :float],
    :rlColor4ub => [:uchar, :uchar, :uchar, :uchar],
    :rlColor3f => [:float, :float, :float],
    :rlColor4f => [:float, :float, :float, :float],
    :rlEnableVertexArray => [:uint],
    :rlDisableVertexArray => [],
    :rlEnableVertexBuffer => [:uint],
    :rlDisableVertexBuffer => [],
    :rlEnableVertexBufferElement => [:uint],
    :rlDisableVertexBufferElement => [],
    :rlEnableVertexAttribute => [:uint],
    :rlDisableVertexAttribute => [:uint],
    :rlActiveTextureSlot => [:int],
    :rlEnableTexture => [:uint],
    :rlDisableTexture => [],
    :rlEnableTextureCubemap => [:uint],
    :rlDisableTextureCubemap => [],
    :rlTextureParameters => [:uint, :int, :int],
    :rlEnableShader => [:uint],
    :rlDisableShader => [],
    :rlEnableFramebuffer => [:uint],
    :rlDisableFramebuffer => [],
    :rlActiveDrawBuffers => [:int],
    :rlEnableColorBlend => [],
    :rlDisableColorBlend => [],
    :rlEnableDepthTest => [],
    :rlDisableDepthTest => [],
    :rlEnableDepthMask => [],
    :rlDisableDepthMask => [],
    :rlEnableBackfaceCulling => [],
    :rlDisableBackfaceCulling => [],
    :rlEnableScissorTest => [],
    :rlDisableScissorTest => [],
    :rlScissor => [:int, :int, :int, :int],
    :rlEnableWireMode => [],
    :rlDisableWireMode => [],
    :rlSetLineWidth => [:float],
    :rlGetLineWidth => [],
    :rlEnableSmoothLines => [],
    :rlDisableSmoothLines => [],
    :rlEnableStereoRender => [],
    :rlDisableStereoRender => [],
    :rlIsStereoRenderEnabled => [],
    :rlClearColor => [:uchar, :uchar, :uchar, :uchar],
    :rlClearScreenBuffers => [],
    :rlCheckErrors => [],
    :rlSetBlendMode => [:int],
    :rlSetBlendFactors => [:int, :int, :int],
    :rlglInit => [:int, :int],
    :rlglClose => [],
    :rlLoadExtensions => [:pointer],
    :rlGetVersion => [],
    :rlGetFramebufferWidth => [],
    :rlGetFramebufferHeight => [],
    :rlGetTextureIdDefault => [],
    :rlGetShaderIdDefault => [],
    :rlGetShaderLocsDefault => [],
    :rlLoadRenderBatch => [:int, :int],
    :rlUnloadRenderBatch => [RlRenderBatch.by_value],
    :rlDrawRenderBatch => [:pointer],
    :rlSetRenderBatchActive => [:pointer],
    :rlDrawRenderBatchActive => [],
    :rlCheckRenderBatchLimit => [:int],
    :rlSetTexture => [:uint],
    :rlLoadVertexArray => [],
    :rlLoadVertexBuffer => [:pointer, :int, :bool],
    :rlLoadVertexBufferElement => [:pointer, :int, :bool],
    :rlUpdateVertexBuffer => [:uint, :pointer, :int, :int],
    :rlUpdateVertexBufferElements => [:uint, :pointer, :int, :int],
    :rlUnloadVertexArray => [:uint],
    :rlUnloadVertexBuffer => [:uint],
    :rlSetVertexAttribute => [:uint, :int, :int, :bool, :int, :pointer],
    :rlSetVertexAttributeDivisor => [:uint, :int],
    :rlSetVertexAttributeDefault => [:int, :pointer, :int, :int],
    :rlDrawVertexArray => [:int, :int],
    :rlDrawVertexArrayElements => [:int, :int, :pointer],
    :rlDrawVertexArrayInstanced => [:int, :int, :int],
    :rlDrawVertexArrayElementsInstanced => [:int, :int, :pointer, :int],
    :rlLoadTexture => [:pointer, :int, :int, :int, :int],
    :rlLoadTextureDepth => [:int, :int, :bool],
    :rlLoadTextureCubemap => [:pointer, :int, :int],
    :rlUpdateTexture => [:uint, :int, :int, :int, :int, :int, :pointer],
    :rlGetGlTextureFormats => [:int, :pointer, :pointer, :pointer],
    :rlGetPixelFormatName => [:uint],
    :rlUnloadTexture => [:uint],
    :rlGenTextureMipmaps => [:uint, :int, :int, :int, :pointer],
    :rlReadTexturePixels => [:uint, :int, :int, :int],
    :rlReadScreenPixels => [:int, :int],
    :rlLoadFramebuffer => [:int, :int],
    :rlFramebufferAttach => [:uint, :uint, :int, :int, :int],
    :rlFramebufferComplete => [:uint],
    :rlUnloadFramebuffer => [:uint],
    :rlLoadShaderCode => [:pointer, :pointer],
    :rlCompileShader => [:pointer, :int],
    :rlLoadShaderProgram => [:uint, :uint],
    :rlUnloadShaderProgram => [:uint],
    :rlGetLocationUniform => [:uint, :pointer],
    :rlGetLocationAttrib => [:uint, :pointer],
    :rlSetUniform => [:int, :pointer, :int, :int],
    :rlSetUniformMatrix => [:int, Matrix.by_value],
    :rlSetUniformSampler => [:int, :uint],
    :rlSetShader => [:uint, :pointer],
    :rlLoadComputeShaderProgram => [:uint],
    :rlComputeShaderDispatch => [:uint, :uint, :uint],
    :rlLoadShaderBuffer => [:ulong_long, :pointer, :int],
    :rlUnloadShaderBuffer => [:uint],
    :rlUpdateShaderBufferElements => [:uint, :pointer, :ulong_long, :ulong_long],
    :rlGetShaderBufferSize => [:uint],
    :rlReadShaderBufferElements => [:uint, :pointer, :ulong_long, :ulong_long],
    :rlBindShaderBuffer => [:uint, :uint],
    :rlCopyBuffersElements => [:uint, :uint, :ulong_long, :ulong_long, :ulong_long],
    :rlBindImageTexture => [:uint, :uint, :uint, :int],
    :rlGetMatrixModelview => [],
    :rlGetMatrixProjection => [],
    :rlGetMatrixTransform => [],
    :rlGetMatrixProjectionStereo => [:int],
    :rlGetMatrixViewOffsetStereo => [:int],
    :rlSetMatrixProjection => [Matrix.by_value],
    :rlSetMatrixModelview => [Matrix.by_value],
    :rlSetMatrixProjectionStereo => [Matrix.by_value, Matrix.by_value],
    :rlSetMatrixViewOffsetStereo => [Matrix.by_value, Matrix.by_value],
    :rlLoadDrawCube => [],
    :rlLoadDrawQuad => [],
  }
  retvals = {
    :rlMatrixMode => :void,
    :rlPushMatrix => :void,
    :rlPopMatrix => :void,
    :rlLoadIdentity => :void,
    :rlTranslatef => :void,
    :rlRotatef => :void,
    :rlScalef => :void,
    :rlMultMatrixf => :void,
    :rlFrustum => :void,
    :rlOrtho => :void,
    :rlViewport => :void,
    :rlBegin => :void,
    :rlEnd => :void,
    :rlVertex2i => :void,
    :rlVertex2f => :void,
    :rlVertex3f => :void,
    :rlTexCoord2f => :void,
    :rlNormal3f => :void,
    :rlColor4ub => :void,
    :rlColor3f => :void,
    :rlColor4f => :void,
    :rlEnableVertexArray => :bool,
    :rlDisableVertexArray => :void,
    :rlEnableVertexBuffer => :void,
    :rlDisableVertexBuffer => :void,
    :rlEnableVertexBufferElement => :void,
    :rlDisableVertexBufferElement => :void,
    :rlEnableVertexAttribute => :void,
    :rlDisableVertexAttribute => :void,
    :rlActiveTextureSlot => :void,
    :rlEnableTexture => :void,
    :rlDisableTexture => :void,
    :rlEnableTextureCubemap => :void,
    :rlDisableTextureCubemap => :void,
    :rlTextureParameters => :void,
    :rlEnableShader => :void,
    :rlDisableShader => :void,
    :rlEnableFramebuffer => :void,
    :rlDisableFramebuffer => :void,
    :rlActiveDrawBuffers => :void,
    :rlEnableColorBlend => :void,
    :rlDisableColorBlend => :void,
    :rlEnableDepthTest => :void,
    :rlDisableDepthTest => :void,
    :rlEnableDepthMask => :void,
    :rlDisableDepthMask => :void,
    :rlEnableBackfaceCulling => :void,
    :rlDisableBackfaceCulling => :void,
    :rlEnableScissorTest => :void,
    :rlDisableScissorTest => :void,
    :rlScissor => :void,
    :rlEnableWireMode => :void,
    :rlDisableWireMode => :void,
    :rlSetLineWidth => :void,
    :rlGetLineWidth => :float,
    :rlEnableSmoothLines => :void,
    :rlDisableSmoothLines => :void,
    :rlEnableStereoRender => :void,
    :rlDisableStereoRender => :void,
    :rlIsStereoRenderEnabled => :bool,
    :rlClearColor => :void,
    :rlClearScreenBuffers => :void,
    :rlCheckErrors => :void,
    :rlSetBlendMode => :void,
    :rlSetBlendFactors => :void,
    :rlglInit => :void,
    :rlglClose => :void,
    :rlLoadExtensions => :void,
    :rlGetVersion => :int,
    :rlGetFramebufferWidth => :int,
    :rlGetFramebufferHeight => :int,
    :rlGetTextureIdDefault => :uint,
    :rlGetShaderIdDefault => :uint,
    :rlGetShaderLocsDefault => :pointer,
    :rlLoadRenderBatch => RlRenderBatch.by_value,
    :rlUnloadRenderBatch => :void,
    :rlDrawRenderBatch => :void,
    :rlSetRenderBatchActive => :void,
    :rlDrawRenderBatchActive => :void,
    :rlCheckRenderBatchLimit => :bool,
    :rlSetTexture => :void,
    :rlLoadVertexArray => :uint,
    :rlLoadVertexBuffer => :uint,
    :rlLoadVertexBufferElement => :uint,
    :rlUpdateVertexBuffer => :void,
    :rlUpdateVertexBufferElements => :void,
    :rlUnloadVertexArray => :void,
    :rlUnloadVertexBuffer => :void,
    :rlSetVertexAttribute => :void,
    :rlSetVertexAttributeDivisor => :void,
    :rlSetVertexAttributeDefault => :void,
    :rlDrawVertexArray => :void,
    :rlDrawVertexArrayElements => :void,
    :rlDrawVertexArrayInstanced => :void,
    :rlDrawVertexArrayElementsInstanced => :void,
    :rlLoadTexture => :uint,
    :rlLoadTextureDepth => :uint,
    :rlLoadTextureCubemap => :uint,
    :rlUpdateTexture => :void,
    :rlGetGlTextureFormats => :void,
    :rlGetPixelFormatName => :pointer,
    :rlUnloadTexture => :void,
    :rlGenTextureMipmaps => :void,
    :rlReadTexturePixels => :pointer,
    :rlReadScreenPixels => :pointer,
    :rlLoadFramebuffer => :uint,
    :rlFramebufferAttach => :void,
    :rlFramebufferComplete => :bool,
    :rlUnloadFramebuffer => :void,
    :rlLoadShaderCode => :uint,
    :rlCompileShader => :uint,
    :rlLoadShaderProgram => :uint,
    :rlUnloadShaderProgram => :void,
    :rlGetLocationUniform => :int,
    :rlGetLocationAttrib => :int,
    :rlSetUniform => :void,
    :rlSetUniformMatrix => :void,
    :rlSetUniformSampler => :void,
    :rlSetShader => :void,
    :rlLoadComputeShaderProgram => :uint,
    :rlComputeShaderDispatch => :void,
    :rlLoadShaderBuffer => :uint,
    :rlUnloadShaderBuffer => :void,
    :rlUpdateShaderBufferElements => :void,
    :rlGetShaderBufferSize => :ulong_long,
    :rlReadShaderBufferElements => :void,
    :rlBindShaderBuffer => :void,
    :rlCopyBuffersElements => :void,
    :rlBindImageTexture => :void,
    :rlGetMatrixModelview => Matrix.by_value,
    :rlGetMatrixProjection => Matrix.by_value,
    :rlGetMatrixTransform => Matrix.by_value,
    :rlGetMatrixProjectionStereo => Matrix.by_value,
    :rlGetMatrixViewOffsetStereo => Matrix.by_value,
    :rlSetMatrixProjection => :void,
    :rlSetMatrixModelview => :void,
    :rlSetMatrixProjectionStereo => :void,
    :rlSetMatrixViewOffsetStereo => :void,
    :rlLoadDrawCube => :void,
    :rlLoadDrawQuad => :void,
  }
  symbols.each do |sym|
    begin
      attach_function sym, args[sym], retvals[sym]
    rescue FFI::NotFoundError => error
      $stderr.puts("[Warning] Failed to import #{sym} (#{error}).")
    end
  end
end
setup_symbols() click to toggle source
# File lib/raylib.rb, line 36
def self.setup_symbols()
  setup_raylib_symbols()
  setup_raymath_symbols()
  setup_rlgl_symbols()
end

Public Instance Methods

MatrixToFloat(mat) click to toggle source
# File lib/raylib.rb, line 150
def MatrixToFloat(mat)
  return MatrixToFloatV(mat)[:v].to_a
end
Vector3ToFloat(v) click to toggle source
# File lib/raylib.rb, line 146
def Vector3ToFloat(v)
  return Vector3ToFloatV(mat)[:v].to_a
end