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.

Input enums

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

enum MouseButton

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

enum GamepadButton

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

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

enum PixelFormat

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 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

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

enum ShaderUniformDataType

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

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