Skip to content

Latest commit

 

History

History
123 lines (106 loc) · 8.98 KB

File metadata and controls

123 lines (106 loc) · 8.98 KB

API progression dashboard

Generated by python3 tools/api_plan.py build. Edit api/progress.json and api/milestones.json, not this page.

Inventory and implementation are different

  • 1884 declaration/support entries are catalogued across all six scoped headers.
  • 931 C function declarations, representing 923 unique names.
  • Jonlib (raylib.h reference): 600 functions, 117 partial, 0 complete.
  • Jonmath (raymath.h reference): 146 functions, 142 partial, 0 complete.
  • Catalog coverage is not implementation completeness. Operators, constants, types and configuration controls have separate rows.
  • Conditional variants and duplicate declarations are retained. Related IDs can share work, but do not automatically inherit completion.

Complete checklists

Header Entries Checklist
raylib.h 1037 raylib.h
raymath.h 254 raymath.h
rlgl.h 403 rlgl.h
rcamera.h 35 rcamera.h
rgestures.h 39 rgestures.h
config.h 116 config.h

Implementation sequence

Dependencies describe implementation prerequisites, not a requirement to finish every platform variant before starting a useful subset.

Step Phase Work package Entries Partial Complete Prerequisites
1 0 types — Types, constants and language mappings 549 18 0 —
2 1 numerics — Numeric fidelity and scalar contracts 14 6 0 types
3 1 jonmath — Jonmath vectors, matrices and quaternions 221 136 0 numerics
4 1 memory — Buffers, memory and callback contracts 12 0 0 types
5 1 files — Files, paths, compression and data utilities 49 8 0 memory
6 1 random — Random-number and sequence contracts 4 4 0 numerics, memory
7 1 pixels — Colors and pixel formats 46 19 0 numerics, memory
8 1 images — Image creation, primitives and transformations 54 52 0 pixels, memory
9 1 resampling — Precision-correct crop, resize and composition 7 7 0 images, numerics
10 1 image-codecs — Image codecs and export 8 8 0 files, pixels, images
11 1 collision — 2D/3D collision and ray queries 21 14 0 jonmath
12 2 window — Window, monitor, clipboard and cursor runtime 57 0 0 types, memory
13 2 input — Keyboard, mouse, gamepad, touch and gestures 57 0 0 window, numerics
14 2 frame — Timing, frame control and automation 17 0 0 window, input
15 6 rlgl-core — rlgl state, matrices and immediate drawing 187 0 0 window, jonmath, memory
16 2 shapes — 2D drawing and splines 62 4 0 frame, rlgl-core, jonmath, pixels
17 2 textures — Textures, render targets and sampling 27 0 0 rlgl-core, pixels, image-codecs
18 3 text-utils — Byte strings and Unicode/codepoint utilities 35 0 0 memory, files
19 3 fonts — Fonts, glyphs and text drawing 29 1 0 text-utils, textures, image-codecs
20 4 audio-codecs — Wave and music formats 11 0 0 files, memory, numerics
21 4 audio-device — Audio devices and sound playback 20 0 0 audio-codecs, memory
22 4 audio-stream — Music streams and audio callbacks 35 0 0 audio-device
23 6 shaders — Shaders, uniforms and programmable effects 12 0 0 textures, rlgl-core
24 5 models — Meshes, model loading and 3D drawing 54 0 0 jonmath, textures, files, shaders
25 5 materials — Materials and texture maps 6 0 0 models, shaders
26 5 animation — Model animation and skinning 5 0 0 models, materials
27 5 camera — Camera controls and projection 22 0 0 jonmath, input, frame
28 5 vr — VR stereo configuration and rendering 4 0 0 camera, shaders
29 6 rlgl-advanced — rlgl buffers, compute and low-level interop 52 0 0 rlgl-core, shaders, textures
30 7 configuration — Build switches, limits and source-package compatibility 207 0 0 types
31 7 platforms — Complete platform/backend validation 0 0 0 window, input, frame, audio-stream, rlgl-advanced

Next work queue

This is a priority queue with visible prerequisites, not a claim that every item is unblocked.

  • raylib:function:LoadImageFromMemory (partial, image-codecs): Close documented gaps and unverified gates for LoadImageFromMemory.
  • raylib:function:ExportImage (partial, image-codecs): Close documented gaps and unverified gates for ExportImage.
  • raylib:function:ImageFormat (partial, pixels): Close documented gaps and unverified gates for ImageFormat.
  • raylib:function:GetSplinePointBezierCubic (blocked, shapes): Resolve: Native Apple powf(t,3) differs from a double-cube substitute: 6670/1048576 investigated inputs, with a retained actual GetSplinePointBezierCubic coordinate mismatch.
  • raymath:function:QuaternionSlerp (blocked, jonmath): Resolve: Base and investigated inverse-trig models differ from the actual float libm; no verified acos profile is available yet.
  • raymath:function:QuaternionToAxisAngle (blocked, jonmath): Resolve: Native acosf endpoint/tail values differ from Base and investigated numerical models.
  • raymath:function:QuaternionToEuler (blocked, jonmath): Resolve: Native asinf endpoint/tail values differ from Base and investigated numerical models.
  • raymath:function:MatrixPerspective (blocked, jonmath): Resolve: A one-ULP native binary64 tangent difference changes the final F32 m5 by two steps; the permitted published Sun/FreeBSD kernel does not match the exercised macOS implementation.
  • raymath:function:Clamp (partial, numerics): Close documented gaps and unverified gates for Clamp.
  • raymath:function:Lerp (partial, numerics): Close documented gaps and unverified gates for Lerp.
  • raymath:function:Normalize (partial, numerics): Close documented gaps and unverified gates for Normalize.
  • raymath:function:Remap (partial, numerics): Close documented gaps and unverified gates for Remap.
  • raymath:function:Wrap (partial, numerics): Close documented gaps and unverified gates for Wrap.
  • raymath:function:FloatEquals (partial, numerics): Close documented gaps and unverified gates for FloatEquals.
  • raymath:function:Vector2Zero (partial, jonmath): Close documented gaps and unverified gates for Vector2Zero.
  • raymath:function:Vector2One (partial, jonmath): Close documented gaps and unverified gates for Vector2One.
  • raymath:function:Vector2Add (partial, jonmath): Close documented gaps and unverified gates for Vector2Add.
  • raymath:function:Vector2AddValue (partial, jonmath): Close documented gaps and unverified gates for Vector2AddValue.
  • raymath:function:Vector2Subtract (partial, jonmath): Close documented gaps and unverified gates for Vector2Subtract.
  • raymath:function:Vector2SubtractValue (partial, jonmath): Close documented gaps and unverified gates for Vector2SubtractValue.

Closing an item

Mark complete only with all six gates verified, no remaining gaps, per-gate evidence and every target accounted for. A reference-not-supported target requires source evidence; it is not a way to discard difficult work. Use python3 tools/api_plan.py show API_ID for an item and python3 tools/api_plan.py report --since GIT_REF for the actual progression delta.

Target matrix

Each complete item needs results for these target configurations. Split hardware/OS/backend combinations in the linked evidence; build-only results are insufficient.

Target ID Required scope
windows-native Native Windows desktop
linux-x11 Linux desktop X11
linux-wayland Linux desktop Wayland
macos Native macOS desktop
freebsd FreeBSD reference variant
openbsd OpenBSD reference variant
netbsd NetBSD reference variant
dragonfly DragonFly reference variant
raspberry-pi Raspberry Pi desktop/native variants
linux-drm Linux native DRM
android Android lifecycle/input/audio/graphics
web WebAssembly/browser lifecycle and devices
haiku Haiku reference platform
memory-software Headless Memory/software renderer
gl-1.1 OpenGL 1.1 supported configurations
gl-2.1 OpenGL 2.1 supported configurations
gl-3.3 OpenGL 3.3 supported configurations
gl-4.3 OpenGL 4.3 supported configurations
gles-2 OpenGL ES 2.0 supported configurations
gles-3 OpenGL ES 3.0 supported configurations
sdl SDL alternative platform configurations
rgfw RGFW alternative platform configurations
web-rgfw WebRGFW alternative platform configuration

Tracking policy and update procedure