Back to Raylib Rs

raylib 6.0 cheatsheet ↔ safe-binding parity audit

docs/superpowers/notes/cheatsheet-parity-audit.md

6.0.044.0 KB
Original Source

raylib 6.0 cheatsheet ↔ safe-binding parity audit

Source: https://www.raylib.com/cheatsheet/cheatsheet.html (raylib 6.0 cheatsheet) Audit date: 2026-05-29 Scope: every cheatsheet section EXCEPT Text (rtext) and Files management (rfilesystem) — Rust std covers those (see memory/skip-std-equivalent-fns.md).

Note on source: the live cheatsheet HTML page is JS-rendered and not extractable via plain HTTP fetch, and the v6.0 PDF is binary-compressed. The authoritative function list used for this audit is the vendored raylib-sys/raylib/src/raylib.h (raylib 6.0, 600 RLAPI declarations), which is what bindgen actually binds. The cheatsheet is generated from this header, so the function set is identical modulo presentation order.

Summary

In-scope (excluding rtext and the // File system management functions, // File access custom callbacks, // File operations blocks of rcore):

  • Total cheatsheet functions audited: 500
  • Covered in safe bindings: 494
  • Intentionally skipped with rationale: 1
  • Genuine gaps (TODO): 5

Genuine gaps further categorized:

  • Small fixes (≲10 lines, no design judgement): 5 — listed in §3.
  • Medium / future workstream: 0 — all medium workstreams done (Done subsection in §4).

Important headline finding: the existing parity-checklist.md lists 19 [ ] items that are actually already wrapped — 14 in Color/pixel related as inherent methods on raylib-sys::Color, 4 in Basic shapes collision as inherent methods on raylib-sys::Rectangle, and AttachAudioStreamProcessor via the user-data callback wrapper. The auto-scan in find_unimplemented.py only looks at raylib/src/** and at pub fn top-level wrappers, so it misses these. See §5 for the full reconciliation list. The genuine-gap count for the in-scope sections is 5, not 49 — the remaining 30 [ ] entries are either reconcile deltas (§5) or live in the out-of-scope rtext / file-system sections.

Methodology

  1. Extracted the function list per section from raylib-sys/raylib/src/raylib.h (the vendored 6.0 header; the cheatsheet is generated from this).
  2. For each function, grepped for coverage signals:
    • pub fn <fname_snake> in raylib/src/** — top-level safe wrappers.
    • fn <fname_snake>(...) inside impl … blocks (method wrappers).
    • ffi::<FName> direct callsites (proves the symbol is reached).
    • Inherent methods on raylib-sys types (raylib-sys/src/color.rs, raylib-sys/src/math.rs, etc.) — these are reachable from the safe crate via Color / Rectangle / Vector* re-exports.
  3. Cross-referenced with the existing docs/superpowers/parity-checklist.md (508 wrapped / 43 wont-impl / 49 TODO totals) and noted reconciliation deltas.

Out-of-scope sections (still listed for completeness so a reader can verify nothing was missed):

  • rcore — File system management, File access custom callbacks, File operations (covered by std::fs and std::path).
  • All of rtext (covered by &str, String, format!, the char API etc.) — Font loading and Text drawing functions stay in scope because they touch the GPU and require the safe binding; the strings helpers do not.

Sections

  • InitWindowraylib/src/core/window.rs
  • CloseWindowraylib/src/core/window.rs (via Drop on RaylibHandle)
  • WindowShouldCloseraylib/src/core/window.rs
  • IsWindowReadyraylib/src/core/window.rs
  • IsWindowFullscreenraylib/src/core/window.rs
  • IsWindowHiddenraylib/src/core/window.rs
  • IsWindowMinimizedraylib/src/core/window.rs
  • IsWindowMaximizedraylib/src/core/window.rs
  • IsWindowFocusedraylib/src/core/window.rs
  • IsWindowResizedraylib/src/core/window.rs
  • IsWindowStateraylib/src/core/window.rs
  • SetWindowStateraylib/src/core/window.rs
  • ClearWindowStateraylib/src/core/window.rs
  • ToggleFullscreenraylib/src/core/window.rs
  • ToggleBorderlessWindowedraylib/src/core/window.rs
  • MaximizeWindowraylib/src/core/window.rs
  • MinimizeWindowraylib/src/core/window.rs
  • RestoreWindowraylib/src/core/window.rs
  • SetWindowIconraylib/src/core/window.rs
  • SetWindowIconsraylib/src/core/window.rs
  • SetWindowTitleraylib/src/core/window.rs
  • SetWindowPositionraylib/src/core/window.rs
  • SetWindowMonitorraylib/src/core/window.rs
  • SetWindowMinSizeraylib/src/core/window.rs
  • SetWindowMaxSizeraylib/src/core/window.rs
  • SetWindowSizeraylib/src/core/window.rs
  • SetWindowOpacityraylib/src/core/window.rs
  • SetWindowFocusedraylib/src/core/window.rs
  • GetWindowHandleraylib/src/core/window.rs
  • GetScreenWidthraylib/src/core/window.rs
  • GetScreenHeightraylib/src/core/window.rs
  • GetRenderWidthraylib/src/core/window.rs
  • GetRenderHeightraylib/src/core/window.rs
  • GetMonitorCountraylib/src/core/window.rs
  • GetCurrentMonitorraylib/src/core/window.rs
  • GetMonitorPositionraylib/src/core/window.rs
  • GetMonitorWidthraylib/src/core/window.rs
  • GetMonitorHeightraylib/src/core/window.rs
  • GetMonitorPhysicalWidthraylib/src/core/window.rs
  • GetMonitorPhysicalHeightraylib/src/core/window.rs
  • GetMonitorRefreshRateraylib/src/core/window.rs
  • GetWindowPositionraylib/src/core/window.rs
  • GetWindowScaleDPIraylib/src/core/window.rs
  • GetMonitorNameraylib/src/core/window.rs
  • SetClipboardTextraylib/src/core/window.rs
  • GetClipboardTextraylib/src/core/window.rs
  • GetClipboardImageraylib/src/core/window.rs
  • EnableEventWaitingraylib/src/core/window.rs
  • DisableEventWaitingraylib/src/core/window.rs
  • ShowCursorraylib/src/core/window.rs
  • HideCursorraylib/src/core/window.rs
  • IsCursorHiddenraylib/src/core/window.rs
  • EnableCursorraylib/src/core/window.rs
  • DisableCursorraylib/src/core/window.rs
  • IsCursorOnScreenraylib/src/core/window.rs
  • ClearBackgroundraylib/src/core/drawing.rs
  • BeginDrawingraylib/src/core/drawing.rs (RAII via RaylibDrawHandle)
  • EndDrawingraylib/src/core/drawing.rs (RAII)
  • BeginMode2Draylib/src/core/drawing.rs (RAII)
  • EndMode2Draylib/src/core/drawing.rs (RAII)
  • BeginMode3Draylib/src/core/drawing.rs (RAII)
  • EndMode3Draylib/src/core/drawing.rs (RAII)
  • BeginTextureModeraylib/src/core/drawing.rs (RAII)
  • EndTextureModeraylib/src/core/drawing.rs (RAII)
  • BeginShaderModeraylib/src/core/drawing.rs (RAII)
  • EndShaderModeraylib/src/core/drawing.rs (RAII)
  • BeginBlendModeraylib/src/core/drawing.rs (RAII)
  • EndBlendModeraylib/src/core/drawing.rs (RAII)
  • BeginScissorModeraylib/src/core/drawing.rs (RAII)
  • EndScissorModeraylib/src/core/drawing.rs (RAII)
  • BeginVrStereoModeraylib/src/core/vr.rs (RAII)
  • EndVrStereoModeraylib/src/core/vr.rs (RAII)

Section 4 (rcore): VR stereo config functions

  • LoadVrStereoConfigraylib/src/core/vr.rs
  • UnloadVrStereoConfigraylib/src/core/vr.rs (via Drop)

Section 5 (rcore): Shader management functions

  • LoadShaderraylib/src/core/shaders.rs
  • LoadShaderFromMemoryraylib/src/core/shaders.rs
  • IsShaderValidraylib/src/core/shaders.rs
  • GetShaderLocationraylib/src/core/shaders.rs
  • GetShaderLocationAttribraylib/src/core/shaders.rs
  • SetShaderValueraylib/src/core/shaders.rs
  • SetShaderValueVraylib/src/core/shaders.rs
  • SetShaderValueMatrixraylib/src/core/shaders.rs
  • SetShaderValueTextureraylib/src/core/shaders.rs
  • UnloadShaderraylib/src/core/shaders.rs (via Drop)
  • GetScreenToWorldRayraylib/src/core/window.rs
  • GetScreenToWorldRayExraylib/src/core/window.rs
  • GetWorldToScreenraylib/src/core/window.rs
  • GetWorldToScreenExraylib/src/core/window.rs
  • GetWorldToScreen2Draylib/src/core/window.rs
  • GetScreenToWorld2Draylib/src/core/window.rs
  • GetCameraMatrixraylib/src/core/camera.rs
  • GetCameraMatrix2Draylib/src/core/camera.rs
  • SetTargetFPSraylib/src/core/window.rs
  • GetFrameTimeraylib/src/core/window.rs
  • GetTimeraylib/src/core/window.rs
  • GetFPSraylib/src/core/window.rs

Section 8 (rcore): Custom frame control functions

  • SwapScreenBufferraylib/src/core/window.rs
  • PollInputEventsraylib/src/core/window.rs
  • WaitTimeraylib/src/core/window.rs

Section 9 (rcore): Random values generation functions

  • SetRandomSeedraylib/src/core/misc.rs
  • GetRandomValueraylib/src/core/misc.rs
  • LoadRandomSequenceraylib/src/core/misc.rs
  • UnloadRandomSequenceraylib/src/core/misc.rs

Section 10 (rcore): Misc. functions

  • TakeScreenshotraylib/src/core/misc.rs
  • SetConfigFlagsraylib/src/core/window.rs
  • OpenURLraylib/src/core/misc.rs

Section 11 (rcore): Logging system

  • SetTraceLogLevelraylib/src/core/logging.rs
  • TraceLograylib/src/core/logging.rs
  • SetTraceLogCallbackraylib/src/core/callbacks.rs (implemented via C shim; the auto-scan misses it)

Section 12 (rcore): Memory management

  • MemAllocraylib/src/core/data.rs (used internally by DataBuf/Image/Wave/etc. allocators)
  • 🟨 MemRealloc — SKIP. Reason: not needed by the safe API; Rust uses Box/Vec reallocation; wrap on demand.
  • MemFreeraylib/src/core/data.rs

Section 13 (rcore): Automation events functionality

  • LoadAutomationEventListraylib/src/core/automation.rs
  • UnloadAutomationEventListraylib/src/core/automation.rs (Drop)
  • ExportAutomationEventListraylib/src/core/automation.rs
  • SetAutomationEventListraylib/src/core/automation.rs
  • SetAutomationEventBaseFrameraylib/src/core/automation.rs
  • StartAutomationEventRecordingraylib/src/core/automation.rs
  • StopAutomationEventRecordingraylib/src/core/automation.rs
  • PlayAutomationEventraylib/src/core/automation.rs

Section 14 (rcore): Compression/Encoding functionality

  • CompressDataraylib/src/core/data.rs
  • DecompressDataraylib/src/core/data.rs
  • EncodeDataBase64raylib/src/core/data.rs
  • DecodeDataBase64raylib/src/core/data.rs
  • ComputeCRC32raylib/src/core/hashes.rs::compute_crc32
  • ComputeMD5raylib/src/core/hashes.rs::compute_md5
  • ComputeSHA1raylib/src/core/hashes.rs::compute_sha1
  • ComputeSHA256raylib/src/core/hashes.rs::compute_sha256
  • IsKeyPressedraylib/src/core/input.rs
  • IsKeyPressedRepeatraylib/src/core/input.rs
  • IsKeyDownraylib/src/core/input.rs
  • IsKeyReleasedraylib/src/core/input.rs
  • IsKeyUpraylib/src/core/input.rs
  • GetKeyPressedraylib/src/core/input.rs
  • GetCharPressedraylib/src/core/input.rs
  • 🟥 GetKeyName — GAP. Action: fix-now.
  • SetExitKeyraylib/src/core/input.rs
  • IsGamepadAvailableraylib/src/core/input.rs
  • GetGamepadNameraylib/src/core/input.rs
  • IsGamepadButtonPressedraylib/src/core/input.rs
  • IsGamepadButtonDownraylib/src/core/input.rs
  • IsGamepadButtonReleasedraylib/src/core/input.rs
  • IsGamepadButtonUpraylib/src/core/input.rs
  • GetGamepadButtonPressedraylib/src/core/input.rs
  • GetGamepadAxisCountraylib/src/core/input.rs
  • GetGamepadAxisMovementraylib/src/core/input.rs
  • SetGamepadMappingsraylib/src/core/input.rs
  • SetGamepadVibrationraylib/src/core/input.rs
  • IsMouseButtonPressedraylib/src/core/input.rs
  • IsMouseButtonDownraylib/src/core/input.rs
  • IsMouseButtonReleasedraylib/src/core/input.rs
  • IsMouseButtonUpraylib/src/core/input.rs
  • GetMouseXraylib/src/core/input.rs
  • GetMouseYraylib/src/core/input.rs
  • GetMousePositionraylib/src/core/input.rs
  • GetMouseDeltaraylib/src/core/input.rs
  • SetMousePositionraylib/src/core/input.rs
  • SetMouseOffsetraylib/src/core/input.rs
  • SetMouseScaleraylib/src/core/input.rs
  • GetMouseWheelMoveraylib/src/core/input.rs
  • GetMouseWheelMoveVraylib/src/core/input.rs
  • SetMouseCursorraylib/src/core/input.rs
  • GetTouchXraylib/src/core/input.rs
  • GetTouchYraylib/src/core/input.rs
  • GetTouchPositionraylib/src/core/input.rs
  • GetTouchPointIdraylib/src/core/input.rs
  • GetTouchPointCountraylib/src/core/input.rs

Section 19 (rcore): Gestures and Touch Handling Functions

  • SetGesturesEnabledraylib/src/core/input.rs
  • IsGestureDetectedraylib/src/core/input.rs
  • GetGestureDetectedraylib/src/core/input.rs
  • GetGestureHoldDurationraylib/src/core/input.rs
  • GetGestureDragVectorraylib/src/core/input.rs
  • GetGestureDragAngleraylib/src/core/input.rs
  • GetGesturePinchVectorraylib/src/core/input.rs
  • GetGesturePinchAngleraylib/src/core/input.rs

Section 20 (rcore): Camera System Functions

  • UpdateCameraraylib/src/core/camera.rs
  • UpdateCameraProraylib/src/core/camera.rs

Section 21 (rshapes): Basic Shapes Drawing Functions (shapes-texture)

  • SetShapesTextureraylib/src/core/drawing.rs
  • GetShapesTextureraylib/src/core/drawing.rs
  • GetShapesTextureRectangleraylib/src/core/drawing.rs

Section 22 (rshapes): Basic shapes drawing functions

  • DrawPixelraylib/src/core/drawing.rs
  • DrawPixelVraylib/src/core/drawing.rs
  • DrawLineraylib/src/core/drawing.rs
  • DrawLineVraylib/src/core/drawing.rs
  • DrawLineExraylib/src/core/drawing.rs
  • DrawLineStripraylib/src/core/drawing.rs
  • DrawLineBezierraylib/src/core/drawing.rs
  • 🟥 DrawLineDashed — GAP. Action: fix-now.
  • DrawCircleraylib/src/core/drawing.rs
  • DrawCircleVraylib/src/core/drawing.rs
  • DrawCircleGradientraylib/src/core/drawing.rs
  • DrawCircleSectorraylib/src/core/drawing.rs
  • DrawCircleSectorLinesraylib/src/core/drawing.rs
  • DrawCircleLinesraylib/src/core/drawing.rs
  • DrawCircleLinesVraylib/src/core/drawing.rs
  • DrawEllipseraylib/src/core/drawing.rs
  • 🟥 DrawEllipseV — GAP. Action: fix-now.
  • DrawEllipseLinesraylib/src/core/drawing.rs
  • 🟥 DrawEllipseLinesV — GAP. Action: fix-now.
  • DrawRingraylib/src/core/drawing.rs
  • DrawRingLinesraylib/src/core/drawing.rs
  • DrawRectangleraylib/src/core/drawing.rs
  • DrawRectangleVraylib/src/core/drawing.rs
  • DrawRectangleRecraylib/src/core/drawing.rs
  • DrawRectangleProraylib/src/core/drawing.rs
  • DrawRectangleGradientVraylib/src/core/drawing.rs
  • DrawRectangleGradientHraylib/src/core/drawing.rs
  • DrawRectangleGradientExraylib/src/core/drawing.rs
  • DrawRectangleLinesraylib/src/core/drawing.rs
  • DrawRectangleLinesExraylib/src/core/drawing.rs
  • DrawRectangleRoundedraylib/src/core/drawing.rs
  • DrawRectangleRoundedLinesraylib/src/core/drawing.rs
  • DrawRectangleRoundedLinesExraylib/src/core/drawing.rs
  • DrawTriangleraylib/src/core/drawing.rs
  • DrawTriangleLinesraylib/src/core/drawing.rs
  • DrawTriangleFanraylib/src/core/drawing.rs
  • DrawTriangleStripraylib/src/core/drawing.rs
  • DrawPolyraylib/src/core/drawing.rs
  • DrawPolyLinesraylib/src/core/drawing.rs
  • DrawPolyLinesExraylib/src/core/drawing.rs

Section 23 (rshapes): Splines drawing functions

  • DrawSplineLinearraylib/src/core/drawing.rs
  • DrawSplineBasisraylib/src/core/drawing.rs
  • DrawSplineCatmullRomraylib/src/core/drawing.rs
  • DrawSplineBezierQuadraticraylib/src/core/drawing.rs
  • DrawSplineBezierCubicraylib/src/core/drawing.rs
  • DrawSplineSegmentLinearraylib/src/core/drawing.rs
  • DrawSplineSegmentBasisraylib/src/core/drawing.rs
  • DrawSplineSegmentCatmullRomraylib/src/core/drawing.rs
  • DrawSplineSegmentBezierQuadraticraylib/src/core/drawing.rs
  • DrawSplineSegmentBezierCubicraylib/src/core/drawing.rs

Section 24 (rshapes): Spline segment point evaluation functions

  • GetSplinePointLinearraylib/src/core/math.rs
  • GetSplinePointBasisraylib/src/core/math.rs
  • GetSplinePointCatmullRomraylib/src/core/math.rs
  • GetSplinePointBezierQuadraylib/src/core/math.rs
  • GetSplinePointBezierCubicraylib/src/core/math.rs

Section 25 (rshapes): Basic shapes collision detection functions

  • CheckCollisionRecs — inherent method Rectangle::check_collision_recs at raylib-sys/src/math.rs:107.
  • CheckCollisionCirclesraylib/src/core/collision.rs (check_collision_circles).
  • CheckCollisionCircleRec — inherent method Rectangle::check_collision_circle_rec at raylib-sys/src/math.rs:116.
  • CheckCollisionCircleLineraylib/src/core/collision.rs (check_collision_circle_line).
  • CheckCollisionPointRec — inherent method Rectangle::check_collision_point_rec at raylib-sys/src/math.rs:148.
  • CheckCollisionPointCircleraylib/src/core/collision.rs (check_collision_point_circle).
  • CheckCollisionPointTriangleraylib/src/core/collision.rs (check_collision_point_triangle).
  • CheckCollisionPointLineraylib/src/core/collision.rs (check_collision_point_line).
  • CheckCollisionPointPolyraylib/src/core/collision.rs (check_collision_point_poly).
  • CheckCollisionLinesraylib/src/core/collision.rs (check_collision_lines).
  • GetCollisionRec — inherent method Rectangle::get_collision_rec at raylib-sys/src/math.rs:137 (returns Option<Rectangle> — empty intersection becomes None).

Section 26 (rtextures): Image loading functions

  • LoadImageraylib/src/core/texture.rs
  • LoadImageRawraylib/src/core/texture.rs
  • LoadImageAnimraylib/src/core/texture.rs
  • LoadImageAnimFromMemoryraylib/src/core/texture.rs
  • LoadImageFromMemoryraylib/src/core/texture.rs
  • LoadImageFromTextureraylib/src/core/texture.rs
  • LoadImageFromScreenraylib/src/core/texture.rs
  • IsImageValidraylib/src/core/texture.rs
  • UnloadImageraylib/src/core/texture.rs (Drop)
  • ExportImageraylib/src/core/texture.rs
  • ExportImageToMemoryraylib/src/core/texture.rs
  • ExportImageAsCoderaylib/src/core/texture.rs

Section 27 (rtextures): Image generation functions

  • GenImageColorraylib/src/core/texture.rs
  • GenImageGradientLinearraylib/src/core/texture.rs
  • GenImageGradientRadialraylib/src/core/texture.rs
  • GenImageGradientSquareraylib/src/core/texture.rs
  • GenImageCheckedraylib/src/core/texture.rs
  • GenImageWhiteNoiseraylib/src/core/texture.rs
  • GenImagePerlinNoiseraylib/src/core/texture.rs
  • GenImageCellularraylib/src/core/texture.rs
  • GenImageTextraylib/src/core/texture.rs

Section 28 (rtextures): Image manipulation functions

  • ImageCopyraylib/src/core/texture.rs
  • ImageFromImageraylib/src/core/texture.rs
  • ImageFromChannelraylib/src/core/texture.rs
  • ImageTextraylib/src/core/texture.rs
  • ImageTextExraylib/src/core/texture.rs
  • ImageFormatraylib/src/core/texture.rs
  • ImageToPOTraylib/src/core/texture.rs
  • ImageCropraylib/src/core/texture.rs
  • ImageAlphaCropraylib/src/core/texture.rs
  • ImageAlphaClearraylib/src/core/texture.rs
  • ImageAlphaMaskraylib/src/core/texture.rs
  • ImageAlphaPremultiplyraylib/src/core/texture.rs
  • ImageBlurGaussianraylib/src/core/texture.rs
  • ImageKernelConvolutionraylib/src/core/texture.rs
  • ImageResizeraylib/src/core/texture.rs
  • ImageResizeNNraylib/src/core/texture.rs
  • ImageResizeCanvasraylib/src/core/texture.rs
  • ImageMipmapsraylib/src/core/texture.rs
  • ImageDitherraylib/src/core/texture.rs
  • ImageFlipVerticalraylib/src/core/texture.rs
  • ImageFlipHorizontalraylib/src/core/texture.rs
  • ImageRotateraylib/src/core/texture.rs
  • ImageRotateCWraylib/src/core/texture.rs
  • ImageRotateCCWraylib/src/core/texture.rs
  • ImageColorTintraylib/src/core/texture.rs
  • ImageColorInvertraylib/src/core/texture.rs
  • ImageColorGrayscaleraylib/src/core/texture.rs
  • ImageColorContrastraylib/src/core/texture.rs
  • ImageColorBrightnessraylib/src/core/texture.rs
  • ImageColorReplaceraylib/src/core/texture.rs
  • LoadImageColorsraylib/src/core/texture.rs
  • LoadImagePaletteraylib/src/core/texture.rs
  • UnloadImageColorsraylib/src/core/texture.rs (Drop)
  • UnloadImagePaletteraylib/src/core/texture.rs (Drop)
  • GetImageAlphaBorderraylib/src/core/texture.rs
  • GetImageColorraylib/src/core/texture.rs

Section 29 (rtextures): Image drawing functions

  • ImageClearBackgroundraylib/src/core/texture.rs
  • ImageDrawPixelraylib/src/core/texture.rs
  • ImageDrawPixelVraylib/src/core/texture.rs
  • ImageDrawLineraylib/src/core/texture.rs
  • ImageDrawLineVraylib/src/core/texture.rs
  • ImageDrawLineExraylib/src/core/texture.rs
  • ImageDrawCircleraylib/src/core/texture.rs
  • ImageDrawCircleVraylib/src/core/texture.rs
  • ImageDrawCircleLinesraylib/src/core/texture.rs
  • ImageDrawCircleLinesVraylib/src/core/texture.rs
  • ImageDrawRectangleraylib/src/core/texture.rs
  • ImageDrawRectangleVraylib/src/core/texture.rs
  • ImageDrawRectangleRecraylib/src/core/texture.rs
  • ImageDrawRectangleLinesraylib/src/core/texture.rs (raylib 6.0 dropped the …Ex variant; only the single fn remains)
  • ImageDrawTriangleraylib/src/core/texture.rs
  • ImageDrawTriangleExraylib/src/core/texture.rs (renamed from ImageDrawTriangleGradient in 6.0)
  • ImageDrawTriangleLinesraylib/src/core/texture.rs
  • ImageDrawTriangleFanraylib/src/core/texture.rs
  • ImageDrawTriangleStripraylib/src/core/texture.rs
  • ImageDrawraylib/src/core/texture.rs
  • ImageDrawTextraylib/src/core/texture.rs
  • ImageDrawTextExraylib/src/core/texture.rs

Section 30 (rtextures): Texture loading functions

  • LoadTextureraylib/src/core/texture.rs
  • LoadTextureFromImageraylib/src/core/texture.rs
  • LoadTextureCubemapraylib/src/core/texture.rs
  • LoadRenderTextureraylib/src/core/texture.rs
  • IsTextureValidraylib/src/core/texture.rs
  • UnloadTextureraylib/src/core/texture.rs (Drop)
  • IsRenderTextureValidraylib/src/core/texture.rs
  • UnloadRenderTextureraylib/src/core/texture.rs (Drop)
  • UpdateTextureraylib/src/core/texture.rs
  • UpdateTextureRecraylib/src/core/texture.rs

Section 31 (rtextures): Texture configuration functions

  • GenTextureMipmapsraylib/src/core/texture.rs
  • SetTextureFilterraylib/src/core/texture.rs
  • SetTextureWrapraylib/src/core/texture.rs

Section 32 (rtextures): Texture drawing functions

  • DrawTextureraylib/src/core/drawing.rs
  • DrawTextureVraylib/src/core/drawing.rs
  • DrawTextureExraylib/src/core/drawing.rs
  • DrawTextureRecraylib/src/core/drawing.rs
  • DrawTextureProraylib/src/core/drawing.rs
  • DrawTextureNPatchraylib/src/core/drawing.rs
  • ColorIsEqual — inherent method Color::is_equal at raylib-sys/src/color.rs:164.
  • Fade — inherent method Color::fade (deprecated alias for alpha) at raylib-sys/src/color.rs:153.
  • ColorToInt — inherent method Color::color_to_int at raylib-sys/src/color.rs:96.
  • ColorNormalize — inherent method Color::color_normalize at raylib-sys/src/color.rs:102.
  • ColorFromNormalized — assoc fn Color::color_from_normalized at raylib-sys/src/color.rs:120.
  • ColorToHSV — inherent method Color::color_to_hsv at raylib-sys/src/color.rs:108.
  • ColorFromHSV — assoc fn Color::color_from_hsv at raylib-sys/src/color.rs:114.
  • ColorTint — inherent method Color::tint at raylib-sys/src/color.rs:132.
  • ColorBrightness — inherent method Color::brightness at raylib-sys/src/color.rs:137.
  • ColorContrast — inherent method Color::contrast at raylib-sys/src/color.rs:142.
  • ColorAlpha — inherent method Color::alpha at raylib-sys/src/color.rs:147.
  • ColorAlphaBlend — assoc fn Color::color_alpha_blend at raylib-sys/src/color.rs:159.
  • ColorLerp — inherent method Color::lerp at raylib-sys/src/color.rs:170.
  • GetColor — assoc fn Color::get_color at raylib-sys/src/color.rs:126.
  • GetPixelColorraylib/src/core/pixel.rs::get_pixel_color.
  • SetPixelColorraylib/src/core/pixel.rs::set_pixel_color.
  • GetPixelDataSizeraylib/src/core/texture.rs:361,1381 (both as method and free fn).

Section 34 (rmodels): Basic geometric 3D shapes drawing functions

  • DrawLine3Draylib/src/core/drawing.rs
  • DrawPoint3Draylib/src/core/drawing.rs
  • DrawCircle3Draylib/src/core/drawing.rs
  • DrawTriangle3Draylib/src/core/drawing.rs
  • DrawTriangleStrip3Draylib/src/core/drawing.rs
  • DrawCuberaylib/src/core/drawing.rs
  • DrawCubeVraylib/src/core/drawing.rs
  • DrawCubeWiresraylib/src/core/drawing.rs
  • DrawCubeWiresVraylib/src/core/drawing.rs
  • DrawSphereraylib/src/core/drawing.rs
  • DrawSphereExraylib/src/core/drawing.rs
  • DrawSphereWiresraylib/src/core/drawing.rs
  • DrawCylinderraylib/src/core/drawing.rs
  • DrawCylinderExraylib/src/core/drawing.rs
  • DrawCylinderWiresraylib/src/core/drawing.rs
  • DrawCylinderWiresExraylib/src/core/drawing.rs
  • DrawCapsuleraylib/src/core/drawing.rs
  • DrawCapsuleWiresraylib/src/core/drawing.rs
  • DrawPlaneraylib/src/core/drawing.rs
  • DrawRayraylib/src/core/drawing.rs
  • DrawGridraylib/src/core/drawing.rs

Section 35 (rmodels): Model management functions

  • LoadModelraylib/src/core/models.rs
  • LoadModelFromMeshraylib/src/core/models.rs
  • IsModelValidraylib/src/core/models.rs
  • UnloadModelraylib/src/core/models.rs (Drop)
  • GetModelBoundingBoxraylib/src/core/models.rs

Section 36 (rmodels): Model drawing functions

  • DrawModelraylib/src/core/drawing.rs
  • DrawModelExraylib/src/core/drawing.rs
  • DrawModelWiresraylib/src/core/drawing.rs
  • DrawModelWiresExraylib/src/core/drawing.rs
  • DrawBoundingBoxraylib/src/core/drawing.rs
  • DrawBillboardraylib/src/core/drawing.rs
  • DrawBillboardRecraylib/src/core/drawing.rs
  • DrawBillboardProraylib/src/core/drawing.rs

Section 37 (rmodels): Mesh management functions

  • UploadMeshraylib/src/core/models.rs
  • UpdateMeshBufferraylib/src/core/models.rs
  • UnloadMeshraylib/src/core/models.rs (Drop)
  • DrawMeshraylib/src/core/drawing.rs
  • DrawMeshInstancedraylib/src/core/drawing.rs
  • GetMeshBoundingBoxraylib/src/core/models.rs
  • GenMeshTangentsraylib/src/core/models.rs
  • ExportMeshraylib/src/core/models.rs
  • ExportMeshAsCoderaylib/src/core/models.rs

Section 38 (rmodels): Mesh generation functions

  • GenMeshPolyraylib/src/core/models.rs
  • GenMeshPlaneraylib/src/core/models.rs
  • GenMeshCuberaylib/src/core/models.rs
  • GenMeshSphereraylib/src/core/models.rs
  • GenMeshHemiSphereraylib/src/core/models.rs
  • GenMeshCylinderraylib/src/core/models.rs
  • GenMeshConeraylib/src/core/models.rs
  • GenMeshTorusraylib/src/core/models.rs
  • GenMeshKnotraylib/src/core/models.rs
  • GenMeshHeightmapraylib/src/core/models.rs
  • GenMeshCubicmapraylib/src/core/models.rs

Section 39 (rmodels): Material loading/unloading functions

  • LoadMaterialsraylib/src/core/models.rs
  • LoadMaterialDefaultraylib/src/core/models.rs
  • IsMaterialValidraylib/src/core/models.rs
  • UnloadMaterialraylib/src/core/models.rs (Drop)
  • SetMaterialTextureraylib/src/core/models.rs
  • SetModelMeshMaterialraylib/src/core/models.rs

Section 40 (rmodels): Model animations loading/unloading functions

  • LoadModelAnimationsraylib/src/core/models.rs (returns ModelAnimations RAII container, redesigned in WS3).
  • UpdateModelAnimationraylib/src/core/models.rs
  • UpdateModelAnimationExraylib/src/core/models.rs
  • UnloadModelAnimationsraylib/src/core/models.rs (Drop on the ModelAnimations container).
  • IsModelAnimationValidraylib/src/core/models.rs

Section 41 (rmodels): Collision detection functions

  • CheckCollisionSpheresraylib/src/core/collision.rs
  • CheckCollisionBoxesraylib/src/core/collision.rs
  • CheckCollisionBoxSphereraylib/src/core/collision.rs
  • GetRayCollisionSphereraylib/src/core/collision.rs
  • GetRayCollisionBoxraylib/src/core/collision.rs
  • GetRayCollisionMeshraylib/src/core/collision.rs
  • GetRayCollisionTriangleraylib/src/core/collision.rs
  • GetRayCollisionQuadraylib/src/core/collision.rs

Section 42 (raudio): Audio device management functions

  • InitAudioDeviceraylib/src/core/audio.rs
  • CloseAudioDeviceraylib/src/core/audio.rs (Drop on AudioHandle).
  • IsAudioDeviceReadyraylib/src/core/audio.rs
  • SetMasterVolumeraylib/src/core/audio.rs
  • GetMasterVolumeraylib/src/core/audio.rs

Section 43 (raudio): Wave/Sound loading/unloading functions

  • LoadWaveraylib/src/core/audio.rs
  • LoadWaveFromMemoryraylib/src/core/audio.rs
  • IsWaveValidraylib/src/core/audio.rs
  • LoadSoundraylib/src/core/audio.rs
  • LoadSoundFromWaveraylib/src/core/audio.rs
  • LoadSoundAliasraylib/src/core/audio.rs
  • IsSoundValidraylib/src/core/audio.rs
  • UpdateSoundraylib/src/core/audio.rs
  • UnloadWaveraylib/src/core/audio.rs (Drop)
  • UnloadSoundraylib/src/core/audio.rs (Drop)
  • UnloadSoundAliasraylib/src/core/audio.rs (Drop)
  • ExportWaveraylib/src/core/audio.rs
  • ExportWaveAsCoderaylib/src/core/audio.rs

Section 44 (raudio): Wave/Sound management functions

  • PlaySoundraylib/src/core/audio.rs
  • StopSoundraylib/src/core/audio.rs
  • PauseSoundraylib/src/core/audio.rs
  • ResumeSoundraylib/src/core/audio.rs
  • IsSoundPlayingraylib/src/core/audio.rs
  • SetSoundVolumeraylib/src/core/audio.rs
  • SetSoundPitchraylib/src/core/audio.rs
  • SetSoundPanraylib/src/core/audio.rs
  • WaveCopyraylib/src/core/audio.rs
  • WaveCropraylib/src/core/audio.rs
  • WaveFormatraylib/src/core/audio.rs
  • LoadWaveSamplesraylib/src/core/audio.rs
  • UnloadWaveSamplesraylib/src/core/audio.rs (Drop)

Section 45 (raudio): Music management functions

  • LoadMusicStreamraylib/src/core/audio.rs
  • LoadMusicStreamFromMemoryraylib/src/core/audio.rs
  • IsMusicValidraylib/src/core/audio.rs
  • UnloadMusicStreamraylib/src/core/audio.rs (Drop)
  • PlayMusicStreamraylib/src/core/audio.rs
  • IsMusicStreamPlayingraylib/src/core/audio.rs
  • UpdateMusicStreamraylib/src/core/audio.rs
  • StopMusicStreamraylib/src/core/audio.rs
  • PauseMusicStreamraylib/src/core/audio.rs
  • ResumeMusicStreamraylib/src/core/audio.rs
  • SeekMusicStreamraylib/src/core/audio.rs
  • SetMusicVolumeraylib/src/core/audio.rs
  • SetMusicPitchraylib/src/core/audio.rs
  • SetMusicPanraylib/src/core/audio.rs
  • GetMusicTimeLengthraylib/src/core/audio.rs
  • GetMusicTimePlayedraylib/src/core/audio.rs

Section 46 (raudio): AudioStream management functions

  • LoadAudioStreamraylib/src/core/audio.rs
  • IsAudioStreamValidraylib/src/core/audio.rs
  • UnloadAudioStreamraylib/src/core/audio.rs (Drop)
  • UpdateAudioStreamraylib/src/core/audio.rs
  • IsAudioStreamProcessedraylib/src/core/audio.rs
  • PlayAudioStreamraylib/src/core/audio.rs
  • PauseAudioStreamraylib/src/core/audio.rs
  • ResumeAudioStreamraylib/src/core/audio.rs
  • IsAudioStreamPlayingraylib/src/core/audio.rs
  • StopAudioStreamraylib/src/core/audio.rs
  • SetAudioStreamVolumeraylib/src/core/audio.rs
  • SetAudioStreamPitchraylib/src/core/audio.rs
  • SetAudioStreamPanraylib/src/core/audio.rs
  • SetAudioStreamBufferSizeDefaultraylib/src/core/audio.rs
  • SetAudioStreamCallbackraylib/src/core/audio.rs
  • AttachAudioStreamProcessor — wrapped via attach_audio_stream_processor_with_user_data in raylib/src/core/callbacks/stream_processor_with_user_data_wrapper.rs:142 (closure-driven stream effects).
  • 🟥 DetachAudioStreamProcessor — GAP. Action: fix-now. (The user-data wrapper has clear_context but never calls DetachAudioStreamProcessor, so a detached closure may still receive one more invocation. Pair the detach with a real FFI call.)
  • AttachAudioMixedProcessor — wrapped at raylib/src/core/callbacks.rs::attach_audio_mixed_processor.
  • DetachAudioMixedProcessor — wrapped via MixedAudioProcessorCallback::Drop in raylib/src/core/callbacks.rs.

Skip rationale catalog

Distinct rationales used in §1:

  • "Not needed by the safe API; Rust handles it"MemRealloc. Rust uses Box/Vec reallocation; nothing in the safe binding needs to call MemRealloc from C. Wrap on demand if a user case appears.

(All other 🟨 entries elsewhere in the parity-checklist fall in the out-of-scope rtext / file-system sections, where Rust std covers them — see memory/skip-std-equivalent-fns.md for the locked rationale and the [~] markers in parity-checklist.md.)


FFI symbolSuggested patternEstimated diff
DrawLineDashedAdd fn draw_line_dashed(&mut self, start: impl Into<Vector2>, end: impl Into<Vector2>, dash_size: i32, space_size: i32, color: impl Into<Color>) to the RaylibDraw trait in raylib/src/core/drawing.rs.~6 lines
DrawEllipseVFree-self Vector2 variant of DrawEllipse in raylib/src/core/drawing.rs.~5 lines
DrawEllipseLinesVMirror of DrawEllipseLines taking Vector2 instead of (i32, i32).~5 lines
GetKeyNameAdd pub fn get_key_name(&self, key: KeyboardKey) -> Option<String> in raylib/src/core/input.rs. The C fn returns a const char* from a static buffer — copy to a String before returning. Handle NULL/empty by returning None.~8 lines
DetachAudioStreamProcessorPair the existing clear_context in stream_processor_with_user_data_wrapper.rs with the actual FFI call. Today only the slot is freed, which leaves the C side still iterating the processor list.~3 lines

Five small gaps, ~27 lines total of new safe-wrapper code.

Note: items the existing parity-checklist.md marks [ ] under Color/pixel related and Basic shapes collision are not gaps — they are wrapped as inherent methods on raylib-sys::Color and raylib-sys::Rectangle. See §5 for the reconciliation delta.


Genuine gaps — future workstream candidates

All medium-workstream items from this audit are done; see "Done (this audit)" below.

Total: 0 functions across 0 workstreams.

Done (this audit):

  • GetPixelColor / SetPixelColor were workstream pixel-pointers; now wrapped at raylib/src/core/pixel.rs::{get_pixel_color, set_pixel_color} (+ bytes_per_pixel helper and PixelColorError). See the 6.0.0-rc.1 CHANGELOG entry.
  • ComputeCRC32 / ComputeMD5 / ComputeSHA1 / ComputeSHA256 were workstream hashes; now wrapped at raylib/src/core/hashes.rs::{compute_crc32, compute_md5, compute_sha1, compute_sha256}. CRC32 is free-thread; the three crypto hashes take &RaylibThread to eliminate the static-buffer concurrent-call race. See the 6.0.0-rc.1 CHANGELOG entry.
  • AttachAudioMixedProcessor / DetachAudioMixedProcessor were workstream mixed-audio; now wrapped at raylib/src/core/callbacks.rs::attach_audio_mixed_processor with MixedAudioProcessorCallback as the RAII guard. The guard borrows &'a RaylibAudio; Drop detaches before clearing the slot (lifecycle ordering matches the WS8e per-stream-processor fix). Tier-2 lifecycle tests under software_renderer. See the 6.0.0-rc.1 CHANGELOG entry.

Owner-locked ordering (2026-05-29): these workstreams run before WS9 showcase, alongside four other promoted items: pixel-pointers ✅ → hashes ✅ → mixed-audio ✅ → raylib-test delete-or-fix ← NEXT → UBSAN-through-FFI → rustdoc rewrite (remaining ~200 stubs) → safe abstractions for GuiGetIcons/GuiLoadIcons + PR #296 → WS9 → final-release. See docs/superpowers/notes/ws8e-checkpoint-review-feedback.md for the full post-checkpoint workstream queue.


Reconciliation with existing parity-checklist.md

The existing docs/superpowers/parity-checklist.md is generated by find_unimplemented.py, which only scans the safe crate for top-level pub fn wrappers and ffi::FName callsites. It misses inherent methods defined on raylib-sys types (the auto-scan doesn't descend into raylib-sys/src/**). Below are the 19 [ ] entries that should actually be [x] when the next reconciliation commit re-runs the generator (or hand-corrects):

All marked [ ] in parity-checklist.md lines 489-501. All are wrapped as inherent methods or assoc fns on raylib-sys::Color in raylib-sys/src/color.rs:

  • ColorIsEqualColor::is_equal (line 164)
  • FadeColor::fade deprecated alias for alpha (line 153)
  • ColorToIntColor::color_to_int (line 96)
  • ColorNormalizeColor::color_normalize (line 102)
  • ColorFromNormalizedColor::color_from_normalized (line 120)
  • ColorToHSVColor::color_to_hsv (line 108)
  • ColorFromHSVColor::color_from_hsv (line 114)
  • ColorTintColor::tint (line 132)
  • ColorBrightnessColor::brightness (line 137)
  • ColorContrastColor::contrast (line 142)
  • ColorAlphaColor::alpha (line 147)
  • ColorAlphaBlendColor::color_alpha_blend (line 159)
  • ColorLerpColor::lerp (line 170)
  • GetColorColor::get_color (line 126)

Audio stream callbacks — 1 delta

AttachAudioStreamProcessor is marked [ ] in parity-checklist.md line 754 but is wrapped at raylib/src/core/callbacks/stream_processor_with_user_data_wrapper.rs:148 via attach_audio_stream_processor_with_user_data (closure-driven stream effects). The detach side (DetachAudioStreamProcessor) is a genuine gap — see §3.

Basic shapes collision detection — 4 deltas

All marked [ ] in parity-checklist.md lines 356-366. All are wrapped as inherent methods on raylib-sys::Rectangle in raylib-sys/src/math.rs:

  • CheckCollisionRecsRectangle::check_collision_recs (line 107)
  • CheckCollisionCircleRecRectangle::check_collision_circle_rec (line 116)
  • CheckCollisionPointRecRectangle::check_collision_point_rec (line 148)
  • GetCollisionRecRectangle::get_collision_rec (line 137) — returns Option<Rectangle> (empty-intersection becomes None, slightly different from C's "empty rect" sentinel — document this in the parity-checklist if useful).

Net result after reconciliation

  • Before reconciliation: 508 wrapped / 43 wont-impl / 49 TODO.
  • After applying the 18 type-method deltas above (14 Color + 4 Rectangle) AND noting AttachAudioStreamProcessor is wrapped via the user-data callback wrapper (1 more delta = 19 total):
    • Wrapped: 508 + 19 = 527.
    • TODO: 49 - 19 = 30.
  • Remaining 30 TODO entries break down as:
    • In-scope per this audit: 13 (5 small + 8 future-workstream).
    • Out-of-scope (rtext / rfilesystem covered by std): 17 — should arguably be re-marked [~] in the parity-checklist with the same "Rust std covers" rationale used elsewhere in the file. Specifically: FileRename, FileRemove, FileCopy, FileMove, FileTextReplace, FileTextFindIndex, GetDirectoryFileCount, GetDirectoryFileCountEx, MeasureTextCodepoints, LoadTextLines, UnloadTextLines, TextRemoveSpaces, GetTextBetween, TextReplaceAlloc, TextReplaceBetween, TextReplaceBetweenAlloc, TextInsertAlloc — but a separate audit should classify each. The "files" group does NOT have direct Rust equivalents (e.g. atomic cross-volume FileMove, FileTextReplace) — those are arguably genuine gaps even though Rust std handles the easy cases. Defer.

Self-review

  • Every non-skipped cheatsheet section is represented in §1 (46 sections numbered).
  • Every function has a clear ✅ / 🟨 / 🟥 marker.
  • Every 🟨 has a one-line reason (MemRealloc is the only in-scope skip).
  • Every 🟥 has a small / future-workstream tag.
  • §5 reconciliation notes the 18 deltas vs parity-checklist.md (14 Color + 4 Rectangle).
  • No <N> placeholders remain; all counts filled.
  • Doc lives at docs/superpowers/notes/cheatsheet-parity-audit.md, NOT committed.