mirror of https://github.com/mode777/rayjs.git
4.1 KiB
4.1 KiB
Changelog: raylib 4.5 → 5.5 Migration
Overview
This changelog documents all changes made during the migration of rayjs from raylib 4.5 to 5.5 (stable), including raygui 3.6 → 4.0.
Git
- Branch:
update-raylib - Commit:
52be0e6— "switch raylib to v5.5 and raygui to v4.0 stable releases"
Submodules Updated
| Submodule | From | To |
|---|---|---|
thirdparty/raylib |
dbc56a8 (6.0-dev) |
c1ab645 (tag 5.5) |
thirdparty/raygui |
aa81c16 (tag 3.6) |
25c8c65 (tag 4.0) |
Files Modified
src/quickjs.c
- Removed
#include <GLFW/glfw3.h>andGLFWwindow-specific F5 reload code (now usesIsKeyPressed(KEY_F5)only, platform-agnostic)
bindings/src/quickjs.ts
jsToC()— Added type conversions:char→ first char of JS stringshort,int *,longunsigned short,unsigned longconst float *bool *→ localboolvariablechar *(bothconst char *and non-const)
jsToJs()— Fixed pointer return types:unsigned int *,unsigned char *→*ptr ? JS_NewUint32(ctx, *ptr) : JS_NULLint *→JS_NewInt32- Separated non-pointer unsigned types from pointer versions
bindings/src/index.ts
- Removed
ignore()calls for functions that no longer exist in 5.5:IsAudioStreamReady,Vector3OrthoNormalize,Vector3ToFloatV,MatrixToFloatV,QuaternionToAxisAngle
- Fixed
VrDeviceInfostruct — removed non-existent fieldvScreenCenter(not present in 5.5) - Fixed
GuiListView— added second out-parameteractiveat index 3 (raygui 4.0 hasscrollIndexat 2 +activeat 3) - Fixed
GuiTextInputBox— ignoredsecretViewActive(bool*) parameter, wrote custom body withoutsetOutParamStringconflict - Added
LoadRandomSequencetoignore()(returnsint*) - Added auto-ignore filter — automatically ignores functions with unsupported parameter/return types (
supportedTypesset with all raylib types + aliases likeTexture2D,Camera,Quaternion,ModelSkeleton,GestureEvent) - Added
needsBufferReturn()handler — special codegen for 5 functions that returnunsigned char *+int *size param (producesJS_NewArrayBufferCopyinstead ofJS_NewUint32):LoadFileData,CompressData,DecompressData,DecodeDataBase64,ExportImageToMemory
src/bindings/js_raylib_core.h
- Fully regenerated (718 functions bound, 105 ignored)
- 0 JavaScript errors
examples/lib.raylib.d.ts
- Fully regenerated TypeScript declarations
thirdparty/raylib/parser/output/raylib_api.json
- Regenerated from raylib 5.5 (12,137 lines)
generate-bindings.js
- Rebuilt via webpack from updated sources
New Files
| File | Description |
|---|---|
examples/textures/bunnymark_opt.js |
Optimized bunnymark benchmark (Float32Array, no GC pressure) |
MIGRATION_TABLE.md |
Full function-by-function migration table (581 functions) |
CHANGELOG_5.5.md |
This file |
Deleted/Failed Build Directories
| Path | Reason |
|---|---|
build-sdl/ |
Unsuccessful SDL backend build (GLFW symbols not available) |
Build & Runtime Status
- Build:
[100%] Built target rayjs— 0 errors, 1 warning (LoadFileDataunsigned int *→int *sign mismatch — safe) - Runtime: raylib 5.5 initializes successfully, OpenGL 4.1 on Apple M2
- Examples tested:
main.js,bunnymark.js,bunnymark_opt.js— all run without errors
Known Issues / Future Work
- LoadFileData warning —
unsigned int*passed whereint*expected (cosmetic, runtime-safe) - SDL backend — needs
#ifdef-separated GLFW/SDL code inquickjs.c - GPU Skinning —
Meshstruct missingboneMatricesandboneCountfields in binding (P1 — silent runtime misalignment) - Model animations — still
ignore()'d as in 4.5 (can be un-ignored if needed) - GetScreenToWorldRay — available but no JS-side alias for old
GetMouseRay - Auto-ignore audit — 105 ignored functions, some may be bindable