Enums
22 raylib enums exposed with explicit Iron ordinals matching C constants byte-for-byte.
Enums reference
Every Iron enum ordinal matches its raylib C constant byte-for-byte. Pass them anywhere raylib expects an int; at the FFI boundary they lower to (int)variant.ordinal.
enum KeyboardKey
Category: Input · raylib: enum KeyboardKey
108 variants covering ASCII keys (A-Z, 0-9), modifier keys, arrow keys, function keys, numpad, Android back/menu/home. Representative set: SPACE = 32, A = 65, LEFT = 263, RIGHT = 262, UP = 265, DOWN = 264, ESCAPE = 256, ENTER = 257.
if Keyboard.is_pressed(KeyboardKey.SPACE) { -- start game }
raylib cheatsheet ·
Iron source ·
Test usage
Category: Input · raylib: enum MouseButton
7 variants: LEFT = 0, RIGHT = 1, MIDDLE = 2, SIDE = 3, EXTRA = 4, FORWARD = 5, BACK = 6.
if Mouse.is_button_pressed(MouseButton.LEFT) { -- click }
raylib cheatsheet ·
Iron source ·
Test usage
enum MouseCursor
Category: Input · raylib: enum MouseCursor
11 variants: DEFAULT = 0, ARROW, IBEAM, CROSSHAIR, POINTING_HAND, RESIZE_EW, RESIZE_NS, RESIZE_NWSE, RESIZE_NESW, RESIZE_ALL, NOT_ALLOWED.
Mouse.set_cursor(MouseCursor.POINTING_HAND)
raylib cheatsheet ·
Iron source ·
Input reference
Category: Input · raylib: enum GamepadButton
18 variants: UNKNOWN, LEFT_FACE_UP/DOWN/LEFT/RIGHT, RIGHT_FACE_UP/DOWN/LEFT/RIGHT (XYAB on Xbox; cross/circle/square/triangle on PS), LEFT_TRIGGER_1/2, RIGHT_TRIGGER_1/2, MIDDLE_LEFT/RIGHT/CENTER, LEFT_THUMB, RIGHT_THUMB.
if Gamepad.is_button_pressed(Int32(0), GamepadButton.RIGHT_FACE_DOWN) { }
raylib cheatsheet ·
Iron source ·
Input reference
enum GamepadAxis
Category: Input · raylib: enum GamepadAxis
6 variants: LEFT_X = 0, LEFT_Y = 1, RIGHT_X = 2, RIGHT_Y = 3, LEFT_TRIGGER = 4, RIGHT_TRIGGER = 5.
val lx = Gamepad.get_axis_movement(Int32(0), GamepadAxis.LEFT_X)
raylib cheatsheet ·
Iron source ·
Input reference
enum Gesture
Category: Input · raylib: enum Gesture
11 bit-flag variants combinable via OR: NONE = 0, TAP = 1, DOUBLETAP = 2, HOLD = 4, DRAG = 8, SWIPE_RIGHT = 16, SWIPE_LEFT = 32, SWIPE_UP = 64, SWIPE_DOWN = 128, PINCH_IN = 256, PINCH_OUT = 512.
Gestures.set_enabled(Gesture.TAP)
if Gestures.is_detected(Gesture.TAP) { }
raylib cheatsheet ·
Iron source ·
Input reference
System enums
enum ConfigFlags
Category: System · raylib: enum ConfigFlags
16 window/GL flags combinable via OR: VSYNC_HINT, FULLSCREEN_MODE, WINDOW_RESIZABLE, WINDOW_UNDECORATED, WINDOW_HIDDEN, WINDOW_MINIMIZED, WINDOW_MAXIMIZED, WINDOW_UNFOCUSED, WINDOW_TOPMOST, WINDOW_ALWAYS_RUN, WINDOW_TRANSPARENT, WINDOW_HIGHDPI, WINDOW_MOUSE_PASSTHROUGH, BORDERLESS_WINDOWED_MODE, MSAA_4X_HINT, INTERLACED_HINT.
Window.set_config_flags(ConfigFlags.VSYNC_HINT)
Window.init(800, 600, "vsynced")
raylib cheatsheet ·
Iron source ·
Window reference
enum TraceLogLevel
Category: System · raylib: enum TraceLogLevel
8 log levels: ALL = 0, TRACE, DEBUG, INFO, WARNING, ERROR, FATAL, NONE = 7.
Window.set_trace_log_level(TraceLogLevel.WARNING)
raylib cheatsheet ·
Iron source ·
Window reference
Rendering enums
enum BlendMode
Category: Rendering · raylib: enum BlendMode
7 blend modes: ALPHA = 0 (default src α over dst), ADDITIVE, MULTIPLIED, ADD_COLORS, SUBTRACT_COLORS, ALPHA_PREMULTIPLY, CUSTOM.
Draw.begin_blend_mode(BlendMode.ADDITIVE)
-- draw glows on top
Draw.end_blend_mode()
raylib cheatsheet ·
Iron source ·
2D modes
Category: Rendering · raylib: enum PixelFormat
24 formats: UNCOMPRESSED_GRAYSCALE, UNCOMPRESSED_GRAY_ALPHA, UNCOMPRESSED_R5G6B5, UNCOMPRESSED_R8G8B8, UNCOMPRESSED_R8G8B8A8, UNCOMPRESSED_R32, UNCOMPRESSED_R32G32B32A32, COMPRESSED_DXT1_RGB, COMPRESSED_DXT3_RGBA, COMPRESSED_ETC1_RGB, COMPRESSED_ASTC_4x4_RGBA, and more.
val img = Image.format(img, PixelFormat.UNCOMPRESSED_R8G8B8A8)
raylib cheatsheet ·
Iron source ·
Textures reference
enum TextureFilter
Category: Rendering · raylib: enum TextureFilter
6 filtering modes: POINT = 0 (nearest-neighbour; pixel-art friendly), BILINEAR, TRILINEAR, ANISOTROPIC_4X, ANISOTROPIC_8X, ANISOTROPIC_16X.
Texture.set_filter(tex, TextureFilter.POINT)
raylib cheatsheet ·
Iron source ·
Textures reference
enum TextureWrap
Category: Rendering · raylib: enum TextureWrap
4 wrap modes: REPEAT = 0, CLAMP, MIRROR_REPEAT, MIRROR_CLAMP.
Texture.set_wrap(tex, TextureWrap.CLAMP)
raylib cheatsheet ·
Iron source ·
Textures reference
enum CubemapLayout
Category: Rendering · raylib: enum CubemapLayout
6 layouts for unpacking cubemap faces from a single Image: AUTO_DETECT, LINE_VERTICAL, LINE_HORIZONTAL, CROSS_THREE_BY_FOUR, CROSS_FOUR_BY_THREE, PANORAMA.
val cube = Texture.load_cubemap(img, CubemapLayout.CROSS_FOUR_BY_THREE)
raylib cheatsheet ·
Iron source ·
Textures reference
enum FontType
Category: Rendering · raylib: enum FontType
3 glyph atlas strategies: DEFAULT = 0 (anti-aliased), BITMAP (no anti-aliasing), SDF (signed distance field — infinitely scalable).
-- Passed to Font.load_data as `type` param
raylib cheatsheet ·
Iron source ·
Text reference
enum NPatchLayout
Category: Rendering · raylib: enum NPatchLayout
3 layouts: NINE_PATCH = 0, THREE_PATCH_VERTICAL, THREE_PATCH_HORIZONTAL.
val np = NPatchInfo(src, 8, 8, 8, 8, NPatchLayout.NINE_PATCH)
raylib cheatsheet ·
Iron source ·
Textures reference
Material & shader enums
enum MaterialMapIndex
Category: Material · raylib: enum MaterialMapIndex
12 PBR channels: ALBEDO (aka DIFFUSE), METALNESS (aka SPECULAR), NORMAL, ROUGHNESS, OCCLUSION, EMISSION, HEIGHT, CUBEMAP, IRRADIANCE, PREFILTER, BRDF.
Material.set_texture(mat, MaterialMapIndex.ALBEDO, tex)
raylib cheatsheet ·
Iron source ·
Model reference
enum ShaderLocationIndex
Category: Material · raylib: enum ShaderLocationIndex
30 built-in shader location slots: VERTEX_POSITION, VERTEX_TEXCOORD01, VERTEX_NORMAL, VERTEX_TANGENT, VERTEX_COLOR, MATRIX_MVP, MATRIX_VIEW, MATRIX_PROJECTION, MATRIX_MODEL, MATRIX_NORMAL, VECTOR_VIEW, COLOR_DIFFUSE, COLOR_SPECULAR, COLOR_AMBIENT, MAP_ALBEDO, MAP_METALNESS, MATRIX_BONETRANSFORMS, VERTEX_INSTANCETRANSFORM, ...
Shader.set_location(shader, ShaderLocationIndex.MATRIX_MODEL, loc)
raylib cheatsheet ·
Iron source ·
Shader reference
Category: Material · raylib: enum ShaderUniformDataType
13 uniform types for Shader.set_value(...): FLOAT = 0, VEC2, VEC3, VEC4, INT, IVEC2, IVEC3, IVEC4, UINT, UIVEC2, UIVEC3, UIVEC4, SAMPLER2D.
Shader.set_value(fx, loc, intensity_bytes, ShaderUniformDataType.FLOAT)
raylib cheatsheet ·
Iron source ·
Test usage
enum ShaderAttributeDataType
Category: Material · raylib: enum ShaderAttributeDataType
4 per-vertex attribute types: FLOAT, VEC2, VEC3, VEC4.
-- Attribute layout for custom mesh uploads
raylib cheatsheet ·
Iron source ·
Shader reference
Camera enums
enum CameraMode
Category: Camera · raylib: enum CameraMode
5 modes for Camera3D.update(cam, mode): CUSTOM = 0, FREE, ORBITAL, FIRST_PERSON, THIRD_PERSON.
cam = Camera3D.update(cam, CameraMode.ORBITAL)
raylib cheatsheet ·
Iron source ·
Test usage
enum CameraProjection
Category: Camera · raylib: enum CameraProjection
2 projection modes: PERSPECTIVE = 0, ORTHOGRAPHIC = 1.
Use these values directly
Pass CameraProjection.PERSPECTIVE or CameraProjection.ORTHOGRAPHIC directly to Camera3D(...).
var cam = Camera3D(pos, tgt, up, Float32(45.0), CameraProjection.PERSPECTIVE)
raylib cheatsheet ·
Iron source ·
Test usage
See also
- Types — the 31 struct types that use these enums as fields or parameters.
- Input — live usage of KeyboardKey / MouseButton / GamepadButton / Gesture.
- Textures & Images — PixelFormat / TextureFilter / TextureWrap / CubemapLayout in context.
- Shaders — ShaderUniformDataType & ShaderLocationIndex usage.