LIBRARY: raylib
+! Enumerations ---------------------------------------------------------
+
+! Putting some of the #define's as enums.
+ENUM: ConfigFlags
+ { FLAG_VSYNC_HINT 0x00000040 } ! Set to try enabling V-Sync on GPU
+ { FLAG_FULLSCREEN_MODE 0x00000002 } ! Set to run program in fullscreen
+ { FLAG_WINDOW_RESIZABLE 0x00000004 } ! Set to allow resizable window
+ { FLAG_WINDOW_UNDECORATED 0x00000008 } ! Set to disable window decoration (frame and buttons)
+ { FLAG_WINDOW_HIDDEN 0x00000080 } ! Set to hide window
+ { FLAG_WINDOW_MINIMIZED 0x00000200 } ! Set to minimize window (iconify)
+ { FLAG_WINDOW_MAXIMIZED 0x00000400 } ! Set to maximize window (expanded to monitor)
+ { FLAG_WINDOW_UNFOCUSED 0x00000800 } ! Set to window non focused
+ { FLAG_WINDOW_TOPMOST 0x00001000 } ! Set to window always on top
+ { FLAG_WINDOW_ALWAYS_RUN 0x00000100 } ! Set to allow windows running while minimized
+ { FLAG_WINDOW_TRANSPARENT 0x00000010 } ! Set to allow transparent framebuffer
+ { FLAG_WINDOW_HIGHDPI 0x00002000 } ! Set to support HighDPI
+ { FLAG_MSAA_4X_HINT 0x00000020 } ! Set to try enabling MSAA 4X
+ { FLAG_INTERLACED_HINT 0x00010000 } ; ! Set to try enabling interlaced video format (for V3D)
+
+ENUM: TraceLogLevel
+ LOG_ALL
+ LOG_TRACE
+ LOG_DEBUG
+ LOG_INFO
+ LOG_WARNING
+ LOG_ERROR
+ LOG_FATAL
+ LOG_NONE ;
+
+ENUM: KeyboardKey
+ { KEY_NULL 0 } ! Key: NULL, used for no key pressed
+ ! Alphanumeric keys
+ { KEY_APOSTROPHE 39 } ! Key: '
+ { KEY_COMMA 44 } ! Key: ,
+ { KEY_MINUS 45 } ! Key: -
+ { KEY_PERIOD 46 } ! Key: .
+ { KEY_SLASH 47 } ! Key: /
+ { KEY_ZERO 48 } ! Key: 0
+ { KEY_ONE 49 } ! Key: 1
+ { KEY_TWO 50 } ! Key: 2
+ { KEY_THREE 51 } ! Key: 3
+ { KEY_FOUR 52 } ! Key: 4
+ { KEY_FIVE 53 } ! Key: 5
+ { KEY_SIX 54 } ! Key: 6
+ { KEY_SEVEN 55 } ! Key: 7
+ { KEY_EIGHT 56 } ! Key: 8
+ { KEY_NINE 57 } ! Key: 9
+ { KEY_SEMICOLON 59 } ! Key: ;
+ { KEY_EQUAL 61 } ! Key: =
+ { KEY_A 65 } ! Key: A | a
+ { KEY_B 66 } ! Key: B | b
+ { KEY_C 67 } ! Key: C | c
+ { KEY_D 68 } ! Key: D | d
+ { KEY_E 69 } ! Key: E | e
+ { KEY_F 70 } ! Key: F | f
+ { KEY_G 71 } ! Key: G | g
+ { KEY_H 72 } ! Key: H | h
+ { KEY_I 73 } ! Key: I | i
+ { KEY_J 74 } ! Key: J | j
+ { KEY_K 75 } ! Key: K | k
+ { KEY_L 76 } ! Key: L | l
+ { KEY_M 77 } ! Key: M | m
+ { KEY_N 78 } ! Key: N | n
+ { KEY_O 79 } ! Key: O | o
+ { KEY_P 80 } ! Key: P | p
+ { KEY_Q 81 } ! Key: Q | q
+ { KEY_R 82 } ! Key: R | r
+ { KEY_S 83 } ! Key: S | s
+ { KEY_T 84 } ! Key: T | t
+ { KEY_U 85 } ! Key: U | u
+ { KEY_V 86 } ! Key: V | v
+ { KEY_W 87 } ! Key: W | w
+ { KEY_X 88 } ! Key: X | x
+ { KEY_Y 89 } ! Key: Y | y
+ { KEY_Z 90 } ! Key: Z | z
+ { KEY_LEFT_BRACKET 91 } ! Key: [
+ { KEY_BACKSLASH 92 } ! Key: '\'
+ { KEY_RIGHT_BRACKET 93 } ! Key: ]
+ { KEY_GRAVE 96 } ! Key: `
+ ! Function keys
+ { KEY_SPACE 32 } ! Key: Space
+ { KEY_ESCAPE 256 } ! Key: Esc
+ { KEY_ENTER 257 } ! Key: Enter
+ { KEY_TAB 258 } ! Key: Tab
+ { KEY_BACKSPACE 259 } ! Key: Backspace
+ { KEY_INSERT 260 } ! Key: Ins
+ { KEY_DELETE 261 } ! Key: Del
+ { KEY_RIGHT 262 } ! Key: Cursor right
+ { KEY_LEFT 263 } ! Key: Cursor left
+ { KEY_DOWN 264 } ! Key: Cursor down
+ { KEY_UP 265 } ! Key: Cursor up
+ { KEY_PAGE_UP 266 } ! Key: Page up
+ { KEY_PAGE_DOWN 267 } ! Key: Page down
+ { KEY_HOME 268 } ! Key: Home
+ { KEY_END 269 } ! Key: End
+ { KEY_CAPS_LOCK 280 } ! Key: Caps lock
+ { KEY_SCROLL_LOCK 281 } ! Key: Scroll down
+ { KEY_NUM_LOCK 282 } ! Key: Num lock
+ { KEY_PRINT_SCREEN 283 } ! Key: Print screen
+ { KEY_PAUSE 284 } ! Key: Pause
+ { KEY_F1 290 } ! Key: F1
+ { KEY_F2 291 } ! Key: F2
+ { KEY_F3 292 } ! Key: F3
+ { KEY_F4 293 } ! Key: F4
+ { KEY_F5 294 } ! Key: F5
+ { KEY_F6 295 } ! Key: F6
+ { KEY_F7 296 } ! Key: F7
+ { KEY_F8 297 } ! Key: F8
+ { KEY_F9 298 } ! Key: F9
+ { KEY_F10 299 } ! Key: F10
+ { KEY_F11 300 } ! Key: F11
+ { KEY_F12 301 } ! Key: F12
+ { KEY_LEFT_SHIFT 340 } ! Key: Shift left
+ { KEY_LEFT_CONTROL 341 } ! Key: Control left
+ { KEY_LEFT_ALT 342 } ! Key: Alt left
+ { KEY_LEFT_SUPER 343 } ! Key: Super left
+ { KEY_RIGHT_SHIFT 344 } ! Key: Shift right
+ { KEY_RIGHT_CONTROL 345 } ! Key: Control right
+ { KEY_RIGHT_ALT 346 } ! Key: Alt right
+ { KEY_RIGHT_SUPER 347 } ! Key: Super right
+ { KEY_KB_MENU 348 } ! Key: KB menu
+ ! Keypad keys
+ { KEY_KP_0 320 } ! Key: Keypad 0
+ { KEY_KP_1 321 } ! Key: Keypad 1
+ { KEY_KP_2 322 } ! Key: Keypad 2
+ { KEY_KP_3 323 } ! Key: Keypad 3
+ { KEY_KP_4 324 } ! Key: Keypad 4
+ { KEY_KP_5 325 } ! Key: Keypad 5
+ { KEY_KP_6 326 } ! Key: Keypad 6
+ { KEY_KP_7 327 } ! Key: Keypad 7
+ { KEY_KP_8 328 } ! Key: Keypad 8
+ { KEY_KP_9 329 } ! Key: Keypad 9
+ { KEY_KP_DECIMAL 330 } ! Key: Keypad .
+ { KEY_KP_DIVIDE 331 } ! Key: Keypad /
+ { KEY_KP_MULTIPLY 332 } ! Key: Keypad *
+ { KEY_KP_SUBTRACT 333 } ! Key: Keypad -
+ { KEY_KP_ADD 334 } ! Key: Keypad +
+ { KEY_KP_ENTER 335 } ! Key: Keypad Enter
+ { KEY_KP_EQUAL 336 } ! Key: Keypad =
+ ! Android key buttons
+ { KEY_BACK 4 } ! Key: Android back button
+ { KEY_MENU 82 } ! Key: Android menu button
+ { KEY_VOLUME_UP 24 } ! Key: Android volume up button
+ { KEY_VOLUME_DOWN 25 } ; ! Key: Android volume down button
+
+ENUM: MouseButton
+ MOUSE_BUTTON_LEFT ! Mouse button left
+ MOUSE_BUTTON_RIGHT ! Mouse button right
+ MOUSE_BUTTON_MIDDLE ! Mouse button middle (pressed wheel)
+ MOUSE_BUTTON_SIDE ! Mouse button side (advanced mouse device)
+ MOUSE_BUTTON_EXTRA ! Mouse button extra (advanced mouse device)
+ MOUSE_BUTTON_FORWARD ! Mouse button fordward (advanced mouse device)
+ MOUSE_BUTTON_BACK ; ! Mouse button back (advanced mouse device)
+
+ENUM: MouseCursor
+ MOUSE_CURSOR_DEFAULT ! Default pointer shape
+ MOUSE_CURSOR_ARROW ! Arrow shape
+ MOUSE_CURSOR_IBEAM ! Text writing cursor shape
+ MOUSE_CURSOR_CROSSHAIR ! Cross shape
+ MOUSE_CURSOR_POINTING_HAND ! Pointing hand cursor
+ MOUSE_CURSOR_RESIZE_EW ! Horizontal resize/move arrow shape
+ MOUSE_CURSOR_RESIZE_NS ! Vertical resize/move arrow shape
+ MOUSE_CURSOR_RESIZE_NWSE ! Top-left to bottom-right diagonal resize/move arrow shape
+ MOUSE_CURSOR_RESIZE_NESW ! The top-right to bottom-left diagonal resize/move arrow shape
+ MOUSE_CURSOR_RESIZE_ALL ! The omni-directional resize/move cursor shape
+ MOUSE_CURSOR_NOT_ALLOWED ; ! The operation-not-allowed shape
+
+ENUM: GamepadButton
+ GAMEPAD_BUTTON_UNKNOWN ! Unknown button, just for error checking
+ GAMEPAD_BUTTON_LEFT_FACE_UP ! Gamepad left DPAD up button
+ GAMEPAD_BUTTON_LEFT_FACE_RIGHT ! Gamepad left DPAD right button
+ GAMEPAD_BUTTON_LEFT_FACE_DOWN ! Gamepad left DPAD down button
+ GAMEPAD_BUTTON_LEFT_FACE_LEFT ! Gamepad left DPAD left button
+ GAMEPAD_BUTTON_RIGHT_FACE_UP ! Gamepad right button up (i.e. PS3: Triangle, Xbox: Y)
+ GAMEPAD_BUTTON_RIGHT_FACE_RIGHT ! Gamepad right button right (i.e. PS3: Square, Xbox: X)
+ GAMEPAD_BUTTON_RIGHT_FACE_DOWN ! Gamepad right button down (i.e. PS3: Cross, Xbox: A)
+ GAMEPAD_BUTTON_RIGHT_FACE_LEFT ! Gamepad right button left (i.e. PS3: Circle, Xbox: B)
+ GAMEPAD_BUTTON_LEFT_TRIGGER_1 ! Gamepad top/back trigger left (first), it could be a trailing button
+ GAMEPAD_BUTTON_LEFT_TRIGGER_2 ! Gamepad top/back trigger left (second), it could be a trailing button
+ GAMEPAD_BUTTON_RIGHT_TRIGGER_1 ! Gamepad top/back trigger right (one), it could be a trailing button
+ GAMEPAD_BUTTON_RIGHT_TRIGGER_2 ! Gamepad top/back trigger right (second), it could be a trailing button
+ GAMEPAD_BUTTON_MIDDLE_LEFT ! Gamepad center buttons, left one (i.e. PS3: Select)
+ GAMEPAD_BUTTON_MIDDLE ! Gamepad center buttons, middle one (i.e. PS3: PS, Xbox: XBOX)
+ GAMEPAD_BUTTON_MIDDLE_RIGHT ! Gamepad center buttons, right one (i.e. PS3: Start)
+ GAMEPAD_BUTTON_LEFT_THUMB ! Gamepad joystick pressed button left
+ GAMEPAD_BUTTON_RIGHT_THUMB ; ! Gamepad joystick pressed button right
+
+ENUM: GamepadAxis
+ GAMEPAD_AXIS_LEFT_X ! Gamepad left stick X axis
+ GAMEPAD_AXIS_LEFT_Y ! Gamepad left stick Y axis
+ GAMEPAD_AXIS_RIGHT_X ! Gamepad right stick X axis
+ GAMEPAD_AXIS_RIGHT_Y ! Gamepad right stick Y axis
+ GAMEPAD_AXIS_LEFT_TRIGGER ! Gamepad back trigger left, pressure level: [1..-1]
+ GAMEPAD_AXIS_RIGHT_TRIGGER ; ! Gamepad back trigger right, pressure level: [1..-1]
+
+ENUM: MaterialMapIndex
+ MATERIAL_MAP_ALBEDO ! Albedo material (same as: MATERIAL_MAP_DIFFUSE)
+ MATERIAL_MAP_METALNESS ! Metalness material (same as: MATERIAL_MAP_SPECULAR)
+ MATERIAL_MAP_NORMAL ! Normal material
+ MATERIAL_MAP_ROUGHNESS ! Roughness material
+ MATERIAL_MAP_OCCLUSION ! Ambient occlusion material
+ MATERIAL_MAP_EMISSION ! Emission material
+ MATERIAL_MAP_HEIGHT ! Heightmap material
+ MATERIAL_MAP_CUBEMAP ! Cubemap material (NOTE: Uses GL_TEXTURE_CUBE_MAP)
+ MATERIAL_MAP_IRRADIANCE ! Irradiance material (NOTE: Uses GL_TEXTURE_CUBE_MAP)
+ MATERIAL_MAP_PREFILTER ! Prefilter material (NOTE: Uses GL_TEXTURE_CUBE_MAP)
+ MATERIAL_MAP_BRDF ; ! Brdf material
+
+ALIAS: MATERIAL_MAP_DIFFUSE MATERIAL_MAP_ALBEDO
+ALIAS: MATERIAL_MAP_SPECULAR MATERIAL_MAP_METALNESS
+
+ENUM: ShaderLocationIndex
+ SHADER_LOC_VERTEX_POSITION ! Shader location: vertex attribute: position
+ SHADER_LOC_VERTEX_TEXCOORD01 ! Shader location: vertex attribute: texcoord01
+ SHADER_LOC_VERTEX_TEXCOORD02 ! Shader location: vertex attribute: texcoord02
+ SHADER_LOC_VERTEX_NORMAL ! Shader location: vertex attribute: normal
+ SHADER_LOC_VERTEX_TANGENT ! Shader location: vertex attribute: tangent
+ SHADER_LOC_VERTEX_COLOR ! Shader location: vertex attribute: color
+ SHADER_LOC_MATRIX_MVP ! Shader location: matrix uniform: model-view-projection
+ SHADER_LOC_MATRIX_VIEW ! Shader location: matrix uniform: view (camera transform)
+ SHADER_LOC_MATRIX_PROJECTION ! Shader location: matrix uniform: projection
+ SHADER_LOC_MATRIX_MODEL ! Shader location: matrix uniform: model (transform)
+ SHADER_LOC_MATRIX_NORMAL ! Shader location: matrix uniform: normal
+ SHADER_LOC_VECTOR_VIEW ! Shader location: vector uniform: view
+ SHADER_LOC_COLOR_DIFFUSE ! Shader location: vector uniform: diffuse color
+ SHADER_LOC_COLOR_SPECULAR ! Shader location: vector uniform: specular color
+ SHADER_LOC_COLOR_AMBIENT ! Shader location: vector uniform: ambient color
+ SHADER_LOC_MAP_ALBEDO ! Shader location: sampler2d texture: albedo (same as: SHADER_LOC_MAP_DIFFUSE)
+ SHADER_LOC_MAP_METALNESS ! Shader location: sampler2d texture: metalness (same as: SHADER_LOC_MAP_SPECULAR)
+ SHADER_LOC_MAP_NORMAL ! Shader location: sampler2d texture: normal
+ SHADER_LOC_MAP_ROUGHNESS ! Shader location: sampler2d texture: roughness
+ SHADER_LOC_MAP_OCCLUSION ! Shader location: sampler2d texture: occlusion
+ SHADER_LOC_MAP_EMISSION ! Shader location: sampler2d texture: emission
+ SHADER_LOC_MAP_HEIGHT ! Shader location: sampler2d texture: height
+ SHADER_LOC_MAP_CUBEMAP ! Shader location: samplerCube texture: cubemap
+ SHADER_LOC_MAP_IRRADIANCE ! Shader location: samplerCube texture: irradiance
+ SHADER_LOC_MAP_PREFILTER ! Shader location: samplerCube texture: prefilter
+ SHADER_LOC_MAP_BRDF ; ! Shader location: sampler2d texture: brdf
+
+ENUM: ShaderUniformDataType
+ SHADER_UNIFORM_FLOAT ! Shader uniform type: float
+ SHADER_UNIFORM_VEC2 ! Shader uniform type: vec2 (2 float)
+ SHADER_UNIFORM_VEC3 ! Shader uniform type: vec3 (3 float)
+ SHADER_UNIFORM_VEC4 ! Shader uniform type: vec4 (4 float)
+ SHADER_UNIFORM_INT ! Shader uniform type: int
+ SHADER_UNIFORM_IVEC2 ! Shader uniform type: ivec2 (2 int)
+ SHADER_UNIFORM_IVEC3 ! Shader uniform type: ivec3 (3 int)
+ SHADER_UNIFORM_IVEC4 ! Shader uniform type: ivec4 (4 int)
+ SHADER_UNIFORM_SAMPLER2D ; ! Shader uniform type: sampler2d
+
+ALIAS: SHADER_LOC_MAP_DIFFUSE SHADER_LOC_MAP_ALBEDO
+ALIAS: SHADER_LOC_MAP_SPECULAR SHADER_LOC_MAP_METALNESS
+
+ENUM: ShaderAttributeDataType
+ SHADER_ATTRIB_FLOAT ! Shader attribute type: float
+ SHADER_ATTRIB_VEC2 ! Shader attribute type: vec2 (2 float)
+ SHADER_ATTRIB_VEC3 ! Shader attribute type: vec3 (3 float)
+ SHADER_ATTRIB_VEC4 ; ! Shader attribute type: vec4 (4 float)
+
+! Pixel formats
+! NOTE: Support depends on OpenGL version and platform
+ENUM: PixelFormat
+ { PIXELFORMAT_UNCOMPRESSED_GRAYSCALE 1 } ! 8 bit per pixel (no alpha)
+ PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA ! 8*2 bpp (2 channels)
+ PIXELFORMAT_UNCOMPRESSED_R5G6B5 ! 16 bpp
+ PIXELFORMAT_UNCOMPRESSED_R8G8B8 ! 24 bpp
+ PIXELFORMAT_UNCOMPRESSED_R5G5B5A1 ! 16 bpp (1 bit alpha)
+ PIXELFORMAT_UNCOMPRESSED_R4G4B4A4 ! 16 bpp (4 bit alpha)
+ PIXELFORMAT_UNCOMPRESSED_R8G8B8A8 ! 32 bpp
+ PIXELFORMAT_UNCOMPRESSED_R32 ! 32 bpp (1 channel - float)
+ PIXELFORMAT_UNCOMPRESSED_R32G32B32 ! 32*3 bpp (3 channels - float)
+ PIXELFORMAT_UNCOMPRESSED_R32G32B32A32 ! 32*4 bpp (4 channels - float)
+ PIXELFORMAT_COMPRESSED_DXT1_RGB ! 4 bpp (no alpha)
+ PIXELFORMAT_COMPRESSED_DXT1_RGBA ! 4 bpp (1 bit alpha)
+ PIXELFORMAT_COMPRESSED_DXT3_RGBA ! 8 bpp
+ PIXELFORMAT_COMPRESSED_DXT5_RGBA ! 8 bpp
+ PIXELFORMAT_COMPRESSED_ETC1_RGB ! 4 bpp
+ PIXELFORMAT_COMPRESSED_ETC2_RGB ! 4 bpp
+ PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA ! 8 bpp
+ PIXELFORMAT_COMPRESSED_PVRT_RGB ! 4 bpp
+ PIXELFORMAT_COMPRESSED_PVRT_RGBA ! 4 bpp
+ PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA ! 8 bpp
+ PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA ; ! 2 bpp
+
+! Texture parameters: filter mode
+! NOTE 1: Filtering considers mipmaps if available in the texture
+! NOTE 2: Filter is accordingly set for minification and magnification
+ENUM: TextureFilterMode
+ TEXTURE_FILTER_POINT ! No filter just pixel aproximation
+ TEXTURE_FILTER_BILINEAR ! Linear filtering
+ TEXTURE_FILTER_TRILINEAR ! Trilinear filtering (linear with mipmaps)
+ TEXTURE_FILTER_ANISOTROPIC_4X ! Anisotropic filtering 4x
+ TEXTURE_FILTER_ANISOTROPIC_8X ! Anisotropic filtering 8x
+ TEXTURE_FILTER_ANISOTROPIC_16X ; ! Anisotropic filtering 16x
+
+! Texture parameters: wrap mode
+ENUM: TextureWrapMode
+ TEXTURE_WRAP_REPEAT
+ TEXTURE_WRAP_CLAMP
+ TEXTURE_WRAP_MIRROR_REPEAT
+ TEXTURE_WRAP_MIRROR_CLAMP ;
+
+! Cubemap layouts
+ENUM: CubemapLayout
+ CUBEMAP_LAYOUT_AUTO_DETECT ! Automatically detect layout type
+ CUBEMAP_LAYOUT_LINE_VERTICAL ! Layout is defined by a vertical line with faces
+ CUBEMAP_LAYOUT_LINE_HORIZONTAL ! Layout is defined by an horizontal line with faces
+ CUBEMAP_LAYOUT_CROSS_THREE_BY_FOUR ! Layout is defined by a 3x4 cross with cubemap faces
+ CUBEMAP_LAYOUT_CROSS_FOUR_BY_THREE ! Layout is defined by a 4x3 cross with cubemap faces
+ CUBEMAP_LAYOUT_PANORAMA ; ! Layout is defined by a panorama image (equirectangular map)
+
+! Font type, defines generation method
+ENUM: FontType
+ FONT_DEFAULT ! Default font generation, anti-aliased
+ FONT_BITMAP ! Bitmap font generation, no anti-aliasing
+ FONT_SDF ; ! SDF font generation, requires external shader
+
+! Color blending modes (pre-defined)
+ENUM: BlendMode
+ BLEND_ALPHA ! Blend textures considering alpha (default)
+ BLEND_ADDITIVE ! Blend textures adding colors
+ BLEND_MULTIPLIED ! Blend textures multiplying colors
+ BLEND_ADD_COLORS ! Blend textures adding colors (alternative)
+ BLEND_SUBTRACT_COLORS ! Blend textures subtracting colors (alternative)
+ BLEND_CUSTOM ; ! Belnd textures using custom src/dst factors (use rlSetBlendMode())
+
+! Gestures type
+! NOTE: IT could be used as flags to enable only some gestures
+ENUM: Gestures
+ { GESTURE_NONE 0 }
+ { GESTURE_TAP 1 }
+ { GESTURE_DOUBLETAP 2 }
+ { GESTURE_HOLD 4 }
+ { GESTURE_DRAG 8 }
+ { GESTURE_SWIPE_RIGHT 16 }
+ { GESTURE_SWIPE_LEFT 32 }
+ { GESTURE_SWIPE_UP 64 }
+ { GESTURE_SWIPE_DOWN 128 }
+ { GESTURE_PINCH_IN 256 }
+ { GESTURE_PINCH_OUT 512 } ;
+
+! Camera system modes
+ENUM: CameraMode
+ CAMERA_CUSTOM
+ CAMERA_FREE
+ CAMERA_ORBITAL
+ CAMERA_FIRST_PERSON
+ CAMERA_THIRD_PERSON ;
+
+! Camera projection
+ENUM: CameraProjection
+ CAMERA_PERSPECTIVE
+ CAMERA_ORTHOGRAPHIC ;
+
+ENUM: NPatchLayout
+ NPATCH_NINE_PATCH ! Npatch layout: 3x3 tiles
+ NPATCH_THREE_PATCH_VERTICAL ! Npatch layout: 1x3 tiles
+ NPATCH_THREE_PATCH_HORIZONTAL ; ! Npatch layout: 3x1 tiles
+
! Structs ----------------------------------------------------------------
STRUCT: Vector2
{ width int } ! Image base width
{ height int } ! Image base height
{ mipmaps int } ! Mipmap levels, 1 by default
- { format int } ; ! Data format (PixelFormat type)
+ { format PixelFormat } ; ! Data format (PixelFormat type)
STRUCT: Texture2D
{ id uint } ! OpenGL Texture ID
{ width int } ! Texture Base Width
{ height int } ! Texture Base Height
{ mipmaps int } ! Mipmap Levels, 1 by default
- { format int } ; ! Data Format (PixelFormat type)
+ { format PixelFormat } ; ! Data Format (PixelFormat type)
TYPEDEF: Texture2D Texture ! Texture type same as Texture2D
TYPEDEF: Texture2D TextureCubemap ! Actually same as Texture2D
{ target Vector3 } ! Camera target it looks-at
{ up Vector3 } ! Camera up vector (rotation over its axis)
{ fovy float } ! Camera field-of-view apperature in Y (degrees) in perspective, used as near plane width in orthographic
- { projection int } ; ! Camera projection: CAMERA_PERSPECTIVE or CAMERA_ORTHOGRAPHIC
+ { projection CameraProjection } ; ! Camera projection: CAMERA_PERSPECTIVE or CAMERA_ORTHOGRAPHIC
STRUCT: Camera2D
{ offset Vector2 } ! Camera offset (displacement from target)
TYPEDEF: Camera3D Camera ! Default to 3D Camera
STRUCT: Mesh
- { vertexCount int } ! Number of vertices stored in arrays
- { triangleCount int } ! Number of triangles stored (indexed or not )
- { _vertices float* } ! Vertex position (XYZ - 3 components per vertex)
+ { vertexCount int } ! Number of vertices stored in arrays
+ { triangleCount int } ! Number of triangles stored (indexed or not )
+ { _vertices float* } ! Vertex position (XYZ - 3 components per vertex)
{ _texcoords float* } ! Vertex texture coordinates (UV - 2 components per vertex )
{ _texcoords2 float* } ! Vertex second texture coordinates (useful for lightmaps)
{ _normals float* } ! Vertex normals (XYZ - 3 components per vertex)
- { tangents float* } ! Vertex tangents (XYZW - 4 components per vertex )
- { colors uchar* } ! Vertex colors (RGBA - 4 components per vertex)
- { indices ushort* } ! Vertex indices (in case vertex data comes indexed)
+ { tangents float* } ! Vertex tangents (XYZW - 4 components per vertex )
+ { colors uchar* } ! Vertex colors (RGBA - 4 components per vertex)
+ { indices ushort* } ! Vertex indices (in case vertex data comes indexed)
{ animVertices float* }
{ animNormals float* }
{ boneIds int* }
{ boneWeights float* }
- { vaoId uint } ! OpenGL Vertex Array Object id
- { vboId uint* } ; ! OpenGL Vertex Buffer Objects id (7 types of vertex data)
+ { vaoId uint } ! OpenGL Vertex Array Object id
+ { vboId uint* } ; ! OpenGL Vertex Buffer Objects id (7 types of vertex data)
ARRAY-SLOT: Mesh Vector3 _vertices [ vertexCount>> ] vertices
ARRAY-SLOT: Mesh Vector2 _texcoords [ vertexCount>> ] texcoords
CONSTANT: MAX_MATERIAL_MAPS 12 ! NOTE: This seems to be a compile-time constant!
STRUCT: Material
{ shader Shader } ! Material shader
- { _maps MaterialMap* } ! Material maps. Uses MAX_MATERIAL_MAPS.
- { params float[4] } ; ! Material generic parameters (if required)
+ { _maps MaterialMap* } ! Material maps. Uses MAX_MATERIAL_MAPS.
+ { params float[4] } ; ! Material generic parameters (if required)
ARRAY-SLOT: Material MaterialMap _maps [ drop 12 ] maps
STRUCT: Wave
{ frameCount uint } ! Total number of frames (considering channels)
{ sampleRate uint } ! Frequency (samples per second)
- { sampleSize uint } ! Bit depth (bits per sample): 8,16,32
- { channels uint } ! Number of channels (1-mono, 2-stereo)
- { data void* } ; ! Buffer data pointer
-
-STRUCT: AudioStream
- { buffer void* } ! Pointer to internal data used by the audio system
- { sampleRate uint } ! Frequency (samples per second)
- { sampleSize uint } ! Bit depth (bits per sample): 8, 16, 32 (24 not supported)
- { channels uint } ; ! Number of channels (1-mono, 2-stereo)
-
-STRUCT: Sound
- { stream AudioStream } ! Audio stream
- { frameCount uint } ; ! Total number of frames (considering channels)
-
-STRUCT: Music
- { stream AudioStream } ! Audio stream
- { frameCount uint } ! Total number of frames (considering channels)
- { looping bool } ! Music looping enable
- { ctxType int } ! Type of music context (audio filetype)
- { ctxData void* } ; ! Audio context data, depends on type
-
-STRUCT: VrDeviceInfo
- { hResolution int } ! HMD horizontal resolution in pixels
- { vResolution int } ! HMD verticle resolution in pixels
- { hScreenSize float } ! HMD horizontal size in meters
- { vScreenSize float } ! HMD verticle size in meters
- { vScreenCenter float } ! HMD screen center in meters
- { eyeToScreenDistance float } ! HMD distance between eye and display in meters
- { lensSeparationDistance float } ! HMD lens separation distance in meters
- { interpupillaryDistance float } ! HMD IPD in meters
- { lensDistortionValues float[4] } ! HMD lens distortion constant parameters
- { chromaAbCorrection float[4] } ; ! HMD chromatic abberation correction parameters
-
-STRUCT: VrStereoConfig
- { projection Matrix[2] } ! VR projection matrices (per eye)
- { viewOffset Matrix[2] } ! VR view offset matrices (per eye)
- { leftLensCenter float[2] } ! VR left lens center
- { rightLensCenter float[2] } ! VR right lens center
- { leftScreenCenter float[2] } ! VR left screen center
- { rightScreenCenter float[2] } ! VR right screen center
- { scale float[2] } ! VR distortion scale
- { scaleIn float[2] } ; ! VR distortion scale in
-
-! Enumerations ---------------------------------------------------------
-
-! Putting some of the #define's as enums.
-ENUM: ConfigFlags
- { FLAG_VSYNC_HINT 0x00000040 } ! Set to try enabling V-Sync on GPU
- { FLAG_FULLSCREEN_MODE 0x00000002 } ! Set to run program in fullscreen
- { FLAG_WINDOW_RESIZABLE 0x00000004 } ! Set to allow resizable window
- { FLAG_WINDOW_UNDECORATED 0x00000008 } ! Set to disable window decoration (frame and buttons)
- { FLAG_WINDOW_HIDDEN 0x00000080 } ! Set to hide window
- { FLAG_WINDOW_MINIMIZED 0x00000200 } ! Set to minimize window (iconify)
- { FLAG_WINDOW_MAXIMIZED 0x00000400 } ! Set to maximize window (expanded to monitor)
- { FLAG_WINDOW_UNFOCUSED 0x00000800 } ! Set to window non focused
- { FLAG_WINDOW_TOPMOST 0x00001000 } ! Set to window always on top
- { FLAG_WINDOW_ALWAYS_RUN 0x00000100 } ! Set to allow windows running while minimized
- { FLAG_WINDOW_TRANSPARENT 0x00000010 } ! Set to allow transparent framebuffer
- { FLAG_WINDOW_HIGHDPI 0x00002000 } ! Set to support HighDPI
- { FLAG_MSAA_4X_HINT 0x00000020 } ! Set to try enabling MSAA 4X
- { FLAG_INTERLACED_HINT 0x00010000 } ; ! Set to try enabling interlaced video format (for V3D)
-
-ENUM: TraceLogLevel
- LOG_ALL
- LOG_TRACE
- LOG_DEBUG
- LOG_INFO
- LOG_WARNING
- LOG_ERROR
- LOG_FATAL
- LOG_NONE ;
-
-ENUM: KeyboardKey
- { KEY_NULL 0 } ! Key: NULL, used for no key pressed
- ! Alphanumeric keys
- { KEY_APOSTROPHE 39 } ! Key: '
- { KEY_COMMA 44 } ! Key: ,
- { KEY_MINUS 45 } ! Key: -
- { KEY_PERIOD 46 } ! Key: .
- { KEY_SLASH 47 } ! Key: /
- { KEY_ZERO 48 } ! Key: 0
- { KEY_ONE 49 } ! Key: 1
- { KEY_TWO 50 } ! Key: 2
- { KEY_THREE 51 } ! Key: 3
- { KEY_FOUR 52 } ! Key: 4
- { KEY_FIVE 53 } ! Key: 5
- { KEY_SIX 54 } ! Key: 6
- { KEY_SEVEN 55 } ! Key: 7
- { KEY_EIGHT 56 } ! Key: 8
- { KEY_NINE 57 } ! Key: 9
- { KEY_SEMICOLON 59 } ! Key: ;
- { KEY_EQUAL 61 } ! Key: =
- { KEY_A 65 } ! Key: A | a
- { KEY_B 66 } ! Key: B | b
- { KEY_C 67 } ! Key: C | c
- { KEY_D 68 } ! Key: D | d
- { KEY_E 69 } ! Key: E | e
- { KEY_F 70 } ! Key: F | f
- { KEY_G 71 } ! Key: G | g
- { KEY_H 72 } ! Key: H | h
- { KEY_I 73 } ! Key: I | i
- { KEY_J 74 } ! Key: J | j
- { KEY_K 75 } ! Key: K | k
- { KEY_L 76 } ! Key: L | l
- { KEY_M 77 } ! Key: M | m
- { KEY_N 78 } ! Key: N | n
- { KEY_O 79 } ! Key: O | o
- { KEY_P 80 } ! Key: P | p
- { KEY_Q 81 } ! Key: Q | q
- { KEY_R 82 } ! Key: R | r
- { KEY_S 83 } ! Key: S | s
- { KEY_T 84 } ! Key: T | t
- { KEY_U 85 } ! Key: U | u
- { KEY_V 86 } ! Key: V | v
- { KEY_W 87 } ! Key: W | w
- { KEY_X 88 } ! Key: X | x
- { KEY_Y 89 } ! Key: Y | y
- { KEY_Z 90 } ! Key: Z | z
- { KEY_LEFT_BRACKET 91 } ! Key: [
- { KEY_BACKSLASH 92 } ! Key: '\'
- { KEY_RIGHT_BRACKET 93 } ! Key: ]
- { KEY_GRAVE 96 } ! Key: `
- ! Function keys
- { KEY_SPACE 32 } ! Key: Space
- { KEY_ESCAPE 256 } ! Key: Esc
- { KEY_ENTER 257 } ! Key: Enter
- { KEY_TAB 258 } ! Key: Tab
- { KEY_BACKSPACE 259 } ! Key: Backspace
- { KEY_INSERT 260 } ! Key: Ins
- { KEY_DELETE 261 } ! Key: Del
- { KEY_RIGHT 262 } ! Key: Cursor right
- { KEY_LEFT 263 } ! Key: Cursor left
- { KEY_DOWN 264 } ! Key: Cursor down
- { KEY_UP 265 } ! Key: Cursor up
- { KEY_PAGE_UP 266 } ! Key: Page up
- { KEY_PAGE_DOWN 267 } ! Key: Page down
- { KEY_HOME 268 } ! Key: Home
- { KEY_END 269 } ! Key: End
- { KEY_CAPS_LOCK 280 } ! Key: Caps lock
- { KEY_SCROLL_LOCK 281 } ! Key: Scroll down
- { KEY_NUM_LOCK 282 } ! Key: Num lock
- { KEY_PRINT_SCREEN 283 } ! Key: Print screen
- { KEY_PAUSE 284 } ! Key: Pause
- { KEY_F1 290 } ! Key: F1
- { KEY_F2 291 } ! Key: F2
- { KEY_F3 292 } ! Key: F3
- { KEY_F4 293 } ! Key: F4
- { KEY_F5 294 } ! Key: F5
- { KEY_F6 295 } ! Key: F6
- { KEY_F7 296 } ! Key: F7
- { KEY_F8 297 } ! Key: F8
- { KEY_F9 298 } ! Key: F9
- { KEY_F10 299 } ! Key: F10
- { KEY_F11 300 } ! Key: F11
- { KEY_F12 301 } ! Key: F12
- { KEY_LEFT_SHIFT 340 } ! Key: Shift left
- { KEY_LEFT_CONTROL 341 } ! Key: Control left
- { KEY_LEFT_ALT 342 } ! Key: Alt left
- { KEY_LEFT_SUPER 343 } ! Key: Super left
- { KEY_RIGHT_SHIFT 344 } ! Key: Shift right
- { KEY_RIGHT_CONTROL 345 } ! Key: Control right
- { KEY_RIGHT_ALT 346 } ! Key: Alt right
- { KEY_RIGHT_SUPER 347 } ! Key: Super right
- { KEY_KB_MENU 348 } ! Key: KB menu
- ! Keypad keys
- { KEY_KP_0 320 } ! Key: Keypad 0
- { KEY_KP_1 321 } ! Key: Keypad 1
- { KEY_KP_2 322 } ! Key: Keypad 2
- { KEY_KP_3 323 } ! Key: Keypad 3
- { KEY_KP_4 324 } ! Key: Keypad 4
- { KEY_KP_5 325 } ! Key: Keypad 5
- { KEY_KP_6 326 } ! Key: Keypad 6
- { KEY_KP_7 327 } ! Key: Keypad 7
- { KEY_KP_8 328 } ! Key: Keypad 8
- { KEY_KP_9 329 } ! Key: Keypad 9
- { KEY_KP_DECIMAL 330 } ! Key: Keypad .
- { KEY_KP_DIVIDE 331 } ! Key: Keypad /
- { KEY_KP_MULTIPLY 332 } ! Key: Keypad *
- { KEY_KP_SUBTRACT 333 } ! Key: Keypad -
- { KEY_KP_ADD 334 } ! Key: Keypad +
- { KEY_KP_ENTER 335 } ! Key: Keypad Enter
- { KEY_KP_EQUAL 336 } ! Key: Keypad =
- ! Android key buttons
- { KEY_BACK 4 } ! Key: Android back button
- { KEY_MENU 82 } ! Key: Android menu button
- { KEY_VOLUME_UP 24 } ! Key: Android volume up button
- { KEY_VOLUME_DOWN 25 } ; ! Key: Android volume down button
+ { sampleSize uint } ! Bit depth (bits per sample): 8,16,32
+ { channels uint } ! Number of channels (1-mono, 2-stereo)
+ { data void* } ; ! Buffer data pointer
+
+STRUCT: AudioStream
+ { buffer void* } ! Pointer to internal data used by the audio system
+ { sampleRate uint } ! Frequency (samples per second)
+ { sampleSize uint } ! Bit depth (bits per sample): 8, 16, 32 (24 not supported)
+ { channels uint } ; ! Number of channels (1-mono, 2-stereo)
+
+STRUCT: Sound
+ { stream AudioStream } ! Audio stream
+ { frameCount uint } ; ! Total number of frames (considering channels)
+
+STRUCT: Music
+ { stream AudioStream } ! Audio stream
+ { frameCount uint } ! Total number of frames (considering channels)
+ { looping bool } ! Music looping enable
+ { ctxType int } ! Type of music context (audio filetype)
+ { ctxData void* } ; ! Audio context data, depends on type
+
+STRUCT: VrDeviceInfo
+ { hResolution int } ! HMD horizontal resolution in pixels
+ { vResolution int } ! HMD verticle resolution in pixels
+ { hScreenSize float } ! HMD horizontal size in meters
+ { vScreenSize float } ! HMD verticle size in meters
+ { vScreenCenter float } ! HMD screen center in meters
+ { eyeToScreenDistance float } ! HMD distance between eye and display in meters
+ { lensSeparationDistance float } ! HMD lens separation distance in meters
+ { interpupillaryDistance float } ! HMD IPD in meters
+ { lensDistortionValues float[4] } ! HMD lens distortion constant parameters
+ { chromaAbCorrection float[4] } ; ! HMD chromatic abberation correction parameters
+STRUCT: VrStereoConfig
+ { projection Matrix[2] } ! VR projection matrices (per eye)
+ { viewOffset Matrix[2] } ! VR view offset matrices (per eye)
+ { leftLensCenter float[2] } ! VR left lens center
+ { rightLensCenter float[2] } ! VR right lens center
+ { leftScreenCenter float[2] } ! VR left screen center
+ { rightScreenCenter float[2] } ! VR right screen center
+ { scale float[2] } ! VR distortion scale
+ { scaleIn float[2] } ; ! VR distortion scale in
+
+! Constants ----------------------------------------------------------------
CONSTANT: LIGHTGRAY S{ Color f 200 200 200 255 } ! Light Gray
CONSTANT: GRAY S{ Color f 130 130 130 255 } ! Gray
CONSTANT: MAGENTA S{ Color f 255 0 255 255 } ! Magenta
CONSTANT: RAYWHITE S{ Color f 245 245 245 255 } ! My own White (raylib logo)
-ENUM: MouseButton
- MOUSE_BUTTON_LEFT ! Mouse button left
- MOUSE_BUTTON_RIGHT ! Mouse button right
- MOUSE_BUTTON_MIDDLE ! Mouse button middle (pressed wheel)
- MOUSE_BUTTON_SIDE ! Mouse button side (advanced mouse device)
- MOUSE_BUTTON_EXTRA ! Mouse button extra (advanced mouse device)
- MOUSE_BUTTON_FORWARD ! Mouse button fordward (advanced mouse device)
- MOUSE_BUTTON_BACK ; ! Mouse button back (advanced mouse device)
-
-ENUM: MouseCursor
- MOUSE_CURSOR_DEFAULT ! Default pointer shape
- MOUSE_CURSOR_ARROW ! Arrow shape
- MOUSE_CURSOR_IBEAM ! Text writing cursor shape
- MOUSE_CURSOR_CROSSHAIR ! Cross shape
- MOUSE_CURSOR_POINTING_HAND ! Pointing hand cursor
- MOUSE_CURSOR_RESIZE_EW ! Horizontal resize/move arrow shape
- MOUSE_CURSOR_RESIZE_NS ! Vertical resize/move arrow shape
- MOUSE_CURSOR_RESIZE_NWSE ! Top-left to bottom-right diagonal resize/move arrow shape
- MOUSE_CURSOR_RESIZE_NESW ! The top-right to bottom-left diagonal resize/move arrow shape
- MOUSE_CURSOR_RESIZE_ALL ! The omni-directional resize/move cursor shape
- MOUSE_CURSOR_NOT_ALLOWED ; ! The operation-not-allowed shape
-
-ENUM: GamepadButton
- GAMEPAD_BUTTON_UNKNOWN ! Unknown button, just for error checking
- GAMEPAD_BUTTON_LEFT_FACE_UP ! Gamepad left DPAD up button
- GAMEPAD_BUTTON_LEFT_FACE_RIGHT ! Gamepad left DPAD right button
- GAMEPAD_BUTTON_LEFT_FACE_DOWN ! Gamepad left DPAD down button
- GAMEPAD_BUTTON_LEFT_FACE_LEFT ! Gamepad left DPAD left button
- GAMEPAD_BUTTON_RIGHT_FACE_UP ! Gamepad right button up (i.e. PS3: Triangle, Xbox: Y)
- GAMEPAD_BUTTON_RIGHT_FACE_RIGHT ! Gamepad right button right (i.e. PS3: Square, Xbox: X)
- GAMEPAD_BUTTON_RIGHT_FACE_DOWN ! Gamepad right button down (i.e. PS3: Cross, Xbox: A)
- GAMEPAD_BUTTON_RIGHT_FACE_LEFT ! Gamepad right button left (i.e. PS3: Circle, Xbox: B)
- GAMEPAD_BUTTON_LEFT_TRIGGER_1 ! Gamepad top/back trigger left (first), it could be a trailing button
- GAMEPAD_BUTTON_LEFT_TRIGGER_2 ! Gamepad top/back trigger left (second), it could be a trailing button
- GAMEPAD_BUTTON_RIGHT_TRIGGER_1 ! Gamepad top/back trigger right (one), it could be a trailing button
- GAMEPAD_BUTTON_RIGHT_TRIGGER_2 ! Gamepad top/back trigger right (second), it could be a trailing button
- GAMEPAD_BUTTON_MIDDLE_LEFT ! Gamepad center buttons, left one (i.e. PS3: Select)
- GAMEPAD_BUTTON_MIDDLE ! Gamepad center buttons, middle one (i.e. PS3: PS, Xbox: XBOX)
- GAMEPAD_BUTTON_MIDDLE_RIGHT ! Gamepad center buttons, right one (i.e. PS3: Start)
- GAMEPAD_BUTTON_LEFT_THUMB ! Gamepad joystick pressed button left
- GAMEPAD_BUTTON_RIGHT_THUMB ; ! Gamepad joystick pressed button right
-
-ENUM: GamepadAxis
- GAMEPAD_AXIS_LEFT_X ! Gamepad left stick X axis
- GAMEPAD_AXIS_LEFT_Y ! Gamepad left stick Y axis
- GAMEPAD_AXIS_RIGHT_X ! Gamepad right stick X axis
- GAMEPAD_AXIS_RIGHT_Y ! Gamepad right stick Y axis
- GAMEPAD_AXIS_LEFT_TRIGGER ! Gamepad back trigger left, pressure level: [1..-1]
- GAMEPAD_AXIS_RIGHT_TRIGGER ; ! Gamepad back trigger right, pressure level: [1..-1]
-
-ENUM: MaterialMapIndex
- MATERIAL_MAP_ALBEDO ! Albedo material (same as: MATERIAL_MAP_DIFFUSE)
- MATERIAL_MAP_METALNESS ! Metalness material (same as: MATERIAL_MAP_SPECULAR)
- MATERIAL_MAP_NORMAL ! Normal material
- MATERIAL_MAP_ROUGHNESS ! Roughness material
- MATERIAL_MAP_OCCLUSION ! Ambient occlusion material
- MATERIAL_MAP_EMISSION ! Emission material
- MATERIAL_MAP_HEIGHT ! Heightmap material
- MATERIAL_MAP_CUBEMAP ! Cubemap material (NOTE: Uses GL_TEXTURE_CUBE_MAP)
- MATERIAL_MAP_IRRADIANCE ! Irradiance material (NOTE: Uses GL_TEXTURE_CUBE_MAP)
- MATERIAL_MAP_PREFILTER ! Prefilter material (NOTE: Uses GL_TEXTURE_CUBE_MAP)
- MATERIAL_MAP_BRDF ; ! Brdf material
-
-ALIAS: MATERIAL_MAP_DIFFUSE MATERIAL_MAP_ALBEDO
-ALIAS: MATERIAL_MAP_SPECULAR MATERIAL_MAP_METALNESS
-
-ENUM: ShaderLocationIndex
- SHADER_LOC_VERTEX_POSITION ! Shader location: vertex attribute: position
- SHADER_LOC_VERTEX_TEXCOORD01 ! Shader location: vertex attribute: texcoord01
- SHADER_LOC_VERTEX_TEXCOORD02 ! Shader location: vertex attribute: texcoord02
- SHADER_LOC_VERTEX_NORMAL ! Shader location: vertex attribute: normal
- SHADER_LOC_VERTEX_TANGENT ! Shader location: vertex attribute: tangent
- SHADER_LOC_VERTEX_COLOR ! Shader location: vertex attribute: color
- SHADER_LOC_MATRIX_MVP ! Shader location: matrix uniform: model-view-projection
- SHADER_LOC_MATRIX_VIEW ! Shader location: matrix uniform: view (camera transform)
- SHADER_LOC_MATRIX_PROJECTION ! Shader location: matrix uniform: projection
- SHADER_LOC_MATRIX_MODEL ! Shader location: matrix uniform: model (transform)
- SHADER_LOC_MATRIX_NORMAL ! Shader location: matrix uniform: normal
- SHADER_LOC_VECTOR_VIEW ! Shader location: vector uniform: view
- SHADER_LOC_COLOR_DIFFUSE ! Shader location: vector uniform: diffuse color
- SHADER_LOC_COLOR_SPECULAR ! Shader location: vector uniform: specular color
- SHADER_LOC_COLOR_AMBIENT ! Shader location: vector uniform: ambient color
- SHADER_LOC_MAP_ALBEDO ! Shader location: sampler2d texture: albedo (same as: SHADER_LOC_MAP_DIFFUSE)
- SHADER_LOC_MAP_METALNESS ! Shader location: sampler2d texture: metalness (same as: SHADER_LOC_MAP_SPECULAR)
- SHADER_LOC_MAP_NORMAL ! Shader location: sampler2d texture: normal
- SHADER_LOC_MAP_ROUGHNESS ! Shader location: sampler2d texture: roughness
- SHADER_LOC_MAP_OCCLUSION ! Shader location: sampler2d texture: occlusion
- SHADER_LOC_MAP_EMISSION ! Shader location: sampler2d texture: emission
- SHADER_LOC_MAP_HEIGHT ! Shader location: sampler2d texture: height
- SHADER_LOC_MAP_CUBEMAP ! Shader location: samplerCube texture: cubemap
- SHADER_LOC_MAP_IRRADIANCE ! Shader location: samplerCube texture: irradiance
- SHADER_LOC_MAP_PREFILTER ! Shader location: samplerCube texture: prefilter
- SHADER_LOC_MAP_BRDF ; ! Shader location: sampler2d texture: brdf
-
-ENUM: ShaderUniformDataType
- SHADER_UNIFORM_FLOAT ! Shader uniform type: float
- SHADER_UNIFORM_VEC2 ! Shader uniform type: vec2 (2 float)
- SHADER_UNIFORM_VEC3 ! Shader uniform type: vec3 (3 float)
- SHADER_UNIFORM_VEC4 ! Shader uniform type: vec4 (4 float)
- SHADER_UNIFORM_INT ! Shader uniform type: int
- SHADER_UNIFORM_IVEC2 ! Shader uniform type: ivec2 (2 int)
- SHADER_UNIFORM_IVEC3 ! Shader uniform type: ivec3 (3 int)
- SHADER_UNIFORM_IVEC4 ! Shader uniform type: ivec4 (4 int)
- SHADER_UNIFORM_SAMPLER2D ; ! Shader uniform type: sampler2d
-
-ALIAS: SHADER_LOC_MAP_DIFFUSE SHADER_LOC_MAP_ALBEDO
-ALIAS: SHADER_LOC_MAP_SPECULAR SHADER_LOC_MAP_METALNESS
-
-ENUM: ShaderAttributeDataType
- SHADER_ATTRIB_FLOAT ! Shader attribute type: float
- SHADER_ATTRIB_VEC2 ! Shader attribute type: vec2 (2 float)
- SHADER_ATTRIB_VEC3 ! Shader attribute type: vec3 (3 float)
- SHADER_ATTRIB_VEC4 ; ! Shader attribute type: vec4 (4 float)
-
-! Pixel formats
-! NOTE: Support depends on OpenGL version and platform
-ENUM: PixelFormat
- { PIXELFORMAT_UNCOMPRESSED_GRAYSCALE 1 } ! 8 bit per pixel (no alpha)
- PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA ! 8*2 bpp (2 channels)
- PIXELFORMAT_UNCOMPRESSED_R5G6B5 ! 16 bpp
- PIXELFORMAT_UNCOMPRESSED_R8G8B8 ! 24 bpp
- PIXELFORMAT_UNCOMPRESSED_R5G5B5A1 ! 16 bpp (1 bit alpha)
- PIXELFORMAT_UNCOMPRESSED_R4G4B4A4 ! 16 bpp (4 bit alpha)
- PIXELFORMAT_UNCOMPRESSED_R8G8B8A8 ! 32 bpp
- PIXELFORMAT_UNCOMPRESSED_R32 ! 32 bpp (1 channel - float)
- PIXELFORMAT_UNCOMPRESSED_R32G32B32 ! 32*3 bpp (3 channels - float)
- PIXELFORMAT_UNCOMPRESSED_R32G32B32A32 ! 32*4 bpp (4 channels - float)
- PIXELFORMAT_COMPRESSED_DXT1_RGB ! 4 bpp (no alpha)
- PIXELFORMAT_COMPRESSED_DXT1_RGBA ! 4 bpp (1 bit alpha)
- PIXELFORMAT_COMPRESSED_DXT3_RGBA ! 8 bpp
- PIXELFORMAT_COMPRESSED_DXT5_RGBA ! 8 bpp
- PIXELFORMAT_COMPRESSED_ETC1_RGB ! 4 bpp
- PIXELFORMAT_COMPRESSED_ETC2_RGB ! 4 bpp
- PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA ! 8 bpp
- PIXELFORMAT_COMPRESSED_PVRT_RGB ! 4 bpp
- PIXELFORMAT_COMPRESSED_PVRT_RGBA ! 4 bpp
- PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA ! 8 bpp
- PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA ; ! 2 bpp
-
-! Texture parameters: filter mode
-! NOTE 1: Filtering considers mipmaps if available in the texture
-! NOTE 2: Filter is accordingly set for minification and magnification
-ENUM: TextureFilterMode
- TEXTURE_FILTER_POINT ! No filter just pixel aproximation
- TEXTURE_FILTER_BILINEAR ! Linear filtering
- TEXTURE_FILTER_TRILINEAR ! Trilinear filtering (linear with mipmaps)
- TEXTURE_FILTER_ANISOTROPIC_4X ! Anisotropic filtering 4x
- TEXTURE_FILTER_ANISOTROPIC_8X ! Anisotropic filtering 8x
- TEXTURE_FILTER_ANISOTROPIC_16X ; ! Anisotropic filtering 16x
-
-! Texture parameters: wrap mode
-ENUM: TextureWrapMode
- TEXTURE_WRAP_REPEAT
- TEXTURE_WRAP_CLAMP
- TEXTURE_WRAP_MIRROR_REPEAT
- TEXTURE_WRAP_MIRROR_CLAMP ;
-
-! Cubemap layouts
-ENUM: CubemapLayout
- CUBEMAP_LAYOUT_AUTO_DETECT ! Automatically detect layout type
- CUBEMAP_LAYOUT_LINE_VERTICAL ! Layout is defined by a vertical line with faces
- CUBEMAP_LAYOUT_LINE_HORIZONTAL ! Layout is defined by an horizontal line with faces
- CUBEMAP_LAYOUT_CROSS_THREE_BY_FOUR ! Layout is defined by a 3x4 cross with cubemap faces
- CUBEMAP_LAYOUT_CROSS_FOUR_BY_THREE ! Layout is defined by a 4x3 cross with cubemap faces
- CUBEMAP_LAYOUT_PANORAMA ; ! Layout is defined by a panorama image (equirectangular map)
-
-! Font type, defines generation method
-ENUM: FontType
- FONT_DEFAULT ! Default font generation, anti-aliased
- FONT_BITMAP ! Bitmap font generation, no anti-aliasing
- FONT_SDF ; ! SDF font generation, requires external shader
-
-! Color blending modes (pre-defined)
-ENUM: BlendMode
- BLEND_ALPHA ! Blend textures considering alpha (default)
- BLEND_ADDITIVE ! Blend textures adding colors
- BLEND_MULTIPLIED ! Blend textures multiplying colors
- BLEND_ADD_COLORS ! Blend textures adding colors (alternative)
- BLEND_SUBTRACT_COLORS ! Blend textures subtracting colors (alternative)
- BLEND_CUSTOM ; ! Belnd textures using custom src/dst factors (use rlSetBlendMode())
-
-! Gestures type
-! NOTE: IT could be used as flags to enable only some gestures
-ENUM: Gestures
- { GESTURE_NONE 0 }
- { GESTURE_TAP 1 }
- { GESTURE_DOUBLETAP 2 }
- { GESTURE_HOLD 4 }
- { GESTURE_DRAG 8 }
- { GESTURE_SWIPE_RIGHT 16 }
- { GESTURE_SWIPE_LEFT 32 }
- { GESTURE_SWIPE_UP 64 }
- { GESTURE_SWIPE_DOWN 128 }
- { GESTURE_PINCH_IN 256 }
- { GESTURE_PINCH_OUT 512 } ;
-
-! Camera system modes
-ENUM: CameraMode
- CAMERA_CUSTOM
- CAMERA_FREE
- CAMERA_ORBITAL
- CAMERA_FIRST_PERSON
- CAMERA_THIRD_PERSON ;
-
-! Camera projection
-ENUM: CameraProjection
- CAMERA_PERSPECTIVE
- CAMERA_ORTHOGRAPHIC ;
-
-ENUM: NPatchLayout
- NPATCH_NINE_PATCH ! Npatch layout: 3x3 tiles
- NPATCH_THREE_PATCH_VERTICAL ! Npatch layout: 1x3 tiles
- NPATCH_THREE_PATCH_HORIZONTAL ; ! Npatch layout: 3x1 tiles
-
! Functions ---------------------------------------------------------------
! Window-related functions
FUNCTION-ALIAS: end-texture-mode void EndTextureMode ( ) ! Ends drawing to render texture
FUNCTION-ALIAS: begin-shader-mode void BeginShaderMode ( Shader shader ) ! Begin custom shader drawing
FUNCTION-ALIAS: end-shader-mode void EndShaderMode ( ) ! End custom shader drawing (use default shader)
-FUNCTION-ALIAS: begin-blend-mode void BeginBlendMode ( int mode ) ! Begin blending mode (alpha, additive, multiplied, subtract, custom)
+FUNCTION-ALIAS: begin-blend-mode void BeginBlendMode ( BlendMode mode ) ! Begin blending mode (alpha, additive, multiplied, subtract, custom)
FUNCTION-ALIAS: end-blend-mode void EndBlendMode ( ) ! End blending mode (reset to default: alpha blending)
FUNCTION-ALIAS: begin-scissor-mode void BeginScissorMode ( int x, int y, int width, int height ) ! Begin scissor mode (define screen area for following drawing)
FUNCTION-ALIAS: end-scissor-mode void EndScissorMode ( ) ! End scissor mode
! ------------------------------------------------------------------------------------
! Input-related functions: keyboard
-FUNCTION-ALIAS: is-key-pressed bool IsKeyPressed ( int key ) ! Check if a key has been pressed once
-FUNCTION-ALIAS: is-key-down bool IsKeyDown ( int key ) ! Check if a key is being pressed
-FUNCTION-ALIAS: is-key-released bool IsKeyReleased ( int key ) ! Check if a key has been released once
-FUNCTION-ALIAS: is-key-up bool IsKeyUp ( int key ) ! Check if a key is NOT being pressed
-FUNCTION-ALIAS: set-exit-key void SetExitKey ( int key ) ! Set a custom key to exit program (default is ESC)
-FUNCTION-ALIAS: get-key-pressed int GetKeyPressed ( ) ! Get key pressed (keycode), call it multiple times for keys queued, returns 0 when the queue is empty
+FUNCTION-ALIAS: is-key-pressed bool IsKeyPressed ( KeyboardKey key ) ! Check if a key has been pressed once
+FUNCTION-ALIAS: is-key-down bool IsKeyDown ( KeyboardKey key ) ! Check if a key is being pressed
+FUNCTION-ALIAS: is-key-released bool IsKeyReleased ( KeyboardKey key ) ! Check if a key has been released once
+FUNCTION-ALIAS: is-key-up bool IsKeyUp ( KeyboardKey key ) ! Check if a key is NOT being pressed
+FUNCTION-ALIAS: set-exit-key void SetExitKey ( KeyboardKey key ) ! Set a custom key to exit program (default is ESC)
+FUNCTION-ALIAS: get-key-pressed KeyboardKey GetKeyPressed ( ) ! Get key pressed (keycode), call it multiple times for keys queued, returns 0 when the queue is empty
FUNCTION-ALIAS: get-char-pressed int GetCharPressed ( ) ! Get char pressed (unicode), call it multiple times for chars queued, returns 0 when the queue is empty
! Input-related functions: gamepads
-FUNCTION-ALIAS: is-gamepad-available bool IsGamepadAvailable ( int gamepad ) ! Check if a gamepad is available
-FUNCTION-ALIAS: get-gamepad-name c-string GetGamepadName ( int gamepad ) ! Get gamepad internal name id
-FUNCTION-ALIAS: is-gamepad-button-pressed bool IsGamepadButtonPressed ( int gamepad, int button ) ! Check if a gamepad button has been pressed once
-FUNCTION-ALIAS: is-gamepad-button-down bool IsGamepadButtonDown ( int gamepad, int button ) ! Check if a gamepad button is being pressed
-FUNCTION-ALIAS: is-gamepad-button-released bool IsGamepadButtonReleased ( int gamepad, int button ) ! Check if a gamepad button has been released once
-FUNCTION-ALIAS: is-gamepad-button-up bool IsGamepadButtonUp ( int gamepad, int button ) ! Check if a gamepad button is NOT being pressed
-FUNCTION-ALIAS: get-gamepad-button-pressed int GetGamepadButtonPressed ( ) ! Get the last gamepad button pressed
-FUNCTION-ALIAS: get-gamepad-axis-count int GetGamepadAxisCount ( int gamepad ) ! Get gamepad axis count for a gamepad
-FUNCTION-ALIAS: get-gamepad-axis-movement float GetGamepadAxisMovement ( int gamepad, int axis ) ! Get axis movement value for a gamepad axis
-FUNCTION-ALIAS: set-gamepad-mappings int SetGamepadMappings ( c-string mappings ) ! Set internal gamepad mappings (SDL_GameControllerDB)
+FUNCTION-ALIAS: is-gamepad-available bool IsGamepadAvailable ( int gamepad ) ! Check if a gamepad is available
+FUNCTION-ALIAS: get-gamepad-name c-string GetGamepadName ( int gamepad ) ! Get gamepad internal name id
+FUNCTION-ALIAS: is-gamepad-button-pressed bool IsGamepadButtonPressed ( int gamepad, GamepadButton button ) ! Check if a gamepad button has been pressed once
+FUNCTION-ALIAS: is-gamepad-button-down bool IsGamepadButtonDown ( int gamepad, GamepadButton button ) ! Check if a gamepad button is being pressed
+FUNCTION-ALIAS: is-gamepad-button-released bool IsGamepadButtonReleased ( int gamepad, GamepadButton button ) ! Check if a gamepad button has been released once
+FUNCTION-ALIAS: is-gamepad-button-up bool IsGamepadButtonUp ( int gamepad, GamepadButton button ) ! Check if a gamepad button is NOT being pressed
+FUNCTION-ALIAS: get-gamepad-button-pressed int GetGamepadButtonPressed ( ) ! Get the last gamepad button pressed
+FUNCTION-ALIAS: get-gamepad-axis-count int GetGamepadAxisCount ( int gamepad ) ! Get gamepad axis count for a gamepad
+FUNCTION-ALIAS: get-gamepad-axis-movement float GetGamepadAxisMovement ( int gamepad, GamepadAxis axis ) ! Get axis movement value for a gamepad axis
+FUNCTION-ALIAS: set-gamepad-mappings int SetGamepadMappings ( c-string mappings ) ! Set internal gamepad mappings (SDL_GameControllerDB)
! Input-related functions: mouse
-FUNCTION-ALIAS: is-mouse-button-pressed bool IsMouseButtonPressed ( int button ) ! Check if a mouse button has been pressed once
-FUNCTION-ALIAS: is-mouse-button-down bool IsMouseButtonDown ( int button ) ! Check if a mouse button is being pressed
-FUNCTION-ALIAS: is-mouse-button-released bool IsMouseButtonReleased ( int button ) ! Check if a mouse button has been released once
-FUNCTION-ALIAS: is-mouse-button-up bool IsMouseButtonUp ( int button ) ! Check if a mouse button is NOT being pressed
-FUNCTION-ALIAS: get-mouse-x int GetMouseX ( ) ! Get mouse position X
-FUNCTION-ALIAS: get-mouse-y int GetMouseY ( ) ! Get mouse position Y
-FUNCTION-ALIAS: get-mouse-position Vector2 GetMousePosition ( ) ! Get mouse position XY
-FUNCTION-ALIAS: get-mouse-delta Vector2 GetMouseDelta ( ) ! Get mouse delta between frames
-FUNCTION-ALIAS: set-mouse-position void SetMousePosition ( int x, int y ) ! Set mouse position XY
-FUNCTION-ALIAS: set-mouse-offset void SetMouseOffset ( int offsetX, int offsetY ) ! Set mouse offset
-FUNCTION-ALIAS: set-mouse-scale void SetMouseScale ( float scaleX, float scaleY ) ! Set mouse scaling
-FUNCTION-ALIAS: get-mouse-wheel-move float GetMouseWheelMove ( ) ! Get mouse wheel movement Y
-FUNCTION-ALIAS: set-mouse-cursor void SetMouseCursor ( int cursor ) ! Set mouse cursor
+FUNCTION-ALIAS: is-mouse-button-pressed bool IsMouseButtonPressed ( MouseButton button ) ! Check if a mouse button has been pressed once
+FUNCTION-ALIAS: is-mouse-button-down bool IsMouseButtonDown ( MouseButton button ) ! Check if a mouse button is being pressed
+FUNCTION-ALIAS: is-mouse-button-released bool IsMouseButtonReleased ( MouseButton button ) ! Check if a mouse button has been released once
+FUNCTION-ALIAS: is-mouse-button-up bool IsMouseButtonUp ( MouseButton button ) ! Check if a mouse button is NOT being pressed
+FUNCTION-ALIAS: get-mouse-x int GetMouseX ( ) ! Get mouse position X
+FUNCTION-ALIAS: get-mouse-y int GetMouseY ( ) ! Get mouse position Y
+FUNCTION-ALIAS: get-mouse-position Vector2 GetMousePosition ( ) ! Get mouse position XY
+FUNCTION-ALIAS: get-mouse-delta Vector2 GetMouseDelta ( ) ! Get mouse delta between frames
+FUNCTION-ALIAS: set-mouse-position void SetMousePosition ( int x, int y ) ! Set mouse position XY
+FUNCTION-ALIAS: set-mouse-offset void SetMouseOffset ( int offsetX, int offsetY ) ! Set mouse offset
+FUNCTION-ALIAS: set-mouse-scale void SetMouseScale ( float scaleX, float scaleY ) ! Set mouse scaling
+FUNCTION-ALIAS: get-mouse-wheel-move float GetMouseWheelMove ( ) ! Get mouse wheel movement Y
+FUNCTION-ALIAS: set-mouse-cursor void SetMouseCursor ( MouseCursor cursor ) ! Set mouse cursor
! Input-related functions: touch
FUNCTION-ALIAS: get-touch-x int GetTouchX ( ) ! Get touch position X for touch point 0 (relative to screen size)
! Gestures and Touch Handling Functions (Module: rgestures)
! ------------------------------------------------------------------------------------
FUNCTION-ALIAS: set-gestures-enabled void SetGesturesEnabled ( uint flags ) ! Enable a set of gestures using flags
-FUNCTION-ALIAS: is-gesture-detected bool IsGestureDetected ( int gesture ) ! Check if a gesture have been detected
+FUNCTION-ALIAS: is-gesture-detected bool IsGestureDetected ( Gestures gesture ) ! Check if a gesture have been detected
FUNCTION-ALIAS: get-gesture-detected int GetGestureDetected ( ) ! Get latest detected gesture
FUNCTION-ALIAS: get-gesture-hold-duration float GetGestureHoldDuration ( ) ! Get gesture hold time in milliseconds
FUNCTION-ALIAS: get-gesture-drag-vector Vector2 GetGestureDragVector ( ) ! Get gesture drag vector
! ------------------------------------------------------------------------------------
! Camera System Functions (Module: rcamera)
! ------------------------------------------------------------------------------------
-FUNCTION-ALIAS: set-camera-mode void SetCameraMode ( Camera camera, int mode ) ! Set camera mode (multiple camera modes available)
+FUNCTION-ALIAS: set-camera-mode void SetCameraMode ( Camera camera, CameraMode mode ) ! Set camera mode (multiple camera modes available)
FUNCTION-ALIAS: update-camera void UpdateCamera ( Camera* camera ) ! Update camera position for selected mode
FUNCTION-ALIAS: set-camera-pan-control void SetCameraPanControl ( int keyPan ) ! Set camera pan key to combine with mouse movement (free camera)
FUNCTION-ALIAS: color-alpha Color ColorAlpha ( Color color, float alpha ) ! Get color with alpha applied, alpha goes from 0.0f to 1.0f
FUNCTION-ALIAS: color-alpha-blend Color ColorAlphaBlend ( Color dst, Color src, Color tint ) ! Get src alpha-blended into dst color with tint
FUNCTION-ALIAS: get-color Color GetColor ( uint hexValue ) ! Get Color structure from hexadecimal value
-FUNCTION-ALIAS: get-pixel-color Color GetPixelColor ( void* srcPtr, int format ) ! Get Color from a source pixel pointer of certain format
-FUNCTION-ALIAS: set-pixel-color void SetPixelColor ( void* dstPtr, Color color, int format ) ! Set color formatted into destination pixel pointer
-FUNCTION-ALIAS: get-pixel-data-size int GetPixelDataSize ( int width, int height, int format ) ! Get pixel data size in bytes for certain format
+FUNCTION-ALIAS: get-pixel-color Color GetPixelColor ( void* srcPtr, PixelFormat format ) ! Get Color from a source pixel pointer of certain format
+FUNCTION-ALIAS: set-pixel-color void SetPixelColor ( void* dstPtr, Color color, PixelFormat format ) ! Set color formatted into destination pixel pointer
+FUNCTION-ALIAS: get-pixel-data-size int GetPixelDataSize ( int width, int height, PixelFormat format ) ! Get pixel data size in bytes for certain format
! ------------------------------------------------------------------------------------
! Font Loading and Text Drawing Functions (Module: text)