You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* feat: migrate SDL2 → SDL3 (3.4.2) with build-from-source
Replace sdl2 v0.37 with sdl3 v0.17.3 (sdl3-sys v0.6.1+SDL-3.4.2).
SDL3 is now compiled from bundled C source via cmake, eliminating the
need for system-installed SDL dev packages.
Key API changes:
- Canvas creation: remove builder pattern, use raw FFI for VSync
- All drawing calls use FRect/FPoint (f32) via frect()/fpoint() helpers
- PixelFormatEnum → PixelFormat (struct with associated constants)
- read_pixels returns Surface, extract bytes with pitch-aware row copy
- ClippingRect enum replaces Option<Rect> for clip_rect()
- Audio: AudioQueue<i16> → AudioStreamOwner with put_data_i16()
- Mouse/wheel coordinates: i32 → f32 (truncated back to i32)
- surface.without_lock() is now unsafe
Docker CI image updated with cmake, make, and X11/Wayland/audio dev
headers. All documentation updated to reflect SDL3 migration.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* chore: add altimit skin to live demo skin selector
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: address AI review feedback (iteration 1)
Automated fix by Claude in response to Gemini/Codex review.
Iteration: 1/5
Co-Authored-By: AI Review Agent <noreply@anthropic.com>
* fix: resolve CI pipeline failures
Automated fix by Claude in response to pipeline failures.
Failures addressed:
- format
- lint
- test-suite
Actions taken:
- Ran autoformat (ruff format, cargo fmt)
- Fixed remaining lint issues
Iteration: 1/5
Co-Authored-By: AI Pipeline Agent <noreply@anthropic.com>
---------
Co-authored-by: AI Agent Bot <ai-agent@localhost>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: AI Review Agent <ai-review-agent@localhost>
Co-authored-by: AI Pipeline Agent <ai-pipeline-agent@localhost>
Copy file name to clipboardExpand all lines: AGENTS.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,7 +12,7 @@ All code changes are authored by AI agents under human direction. No external co
12
12
13
13
## Build and Test Commands
14
14
15
-
All CI commands run inside Docker containers. Local development works with cargo directly if SDL2 dev libs are installed.
15
+
All CI commands run inside Docker containers. Local development works with cargo directly (SDL3 is compiled from source; requires cmake, g++, and X11/audio dev headers).
Copy file name to clipboardExpand all lines: CLAUDE.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,7 +10,7 @@ Default virtual resolution is 480x272 (PSP native). Skins may override this (e.g
10
10
11
11
## Build Commands
12
12
13
-
All CI commands run inside Docker containers. For local development you can run cargo directly if SDL2 dev libs are installed, or use the Docker wrapper.
13
+
All CI commands run inside Docker containers. For local development you can run cargo directly (SDL3 is compiled from source automatically via the `build-from-source` feature), or use the Docker wrapper.
|`oasis-backend-psp`| PSP hardware backend -- sceGu sprite rendering, SDI scene-graph integration, TLS 1.3 via embedded-tls, in-memory MP4 streaming with AAC hardware decode, PSP controller input, std via [rust-psp](https://github.com/AndrewAltimit/rust-psp) SDK |
165
165
|`oasis-plugin-psp`| PSP overlay plugin PRX -- kernel-mode companion module for in-game overlay UI and background MP3 playback |
166
166
|`oasis-ffi`| C-ABI FFI boundary (`cdylib`) for UE5 and external integrations. Optional `video-decode` feature adds `oasis_video_play/stop/is_playing`|
167
-
|`oasis-app`| Desktop entry point (SDL2) and screenshot capture tool. `video-decode` feature (default) enables software video decode for TV Guide without ffmpeg |
167
+
|`oasis-app`| Desktop entry point (SDL3) and screenshot capture tool. `video-decode` feature (default) enables software video decode for TV Guide without ffmpeg |
168
168
169
169
The PSP crates are excluded from the workspace (require `mipsel-sony-psp` target) and depend on the standalone [rust-psp SDK](https://github.com/AndrewAltimit/rust-psp) via git dependency. The backend compiles to an EBOOT.PBP (standalone application) with TV Guide, Internet Radio, and all core apps, while the plugin compiles to a kernel-mode PRX (resident overlay module loaded by CFW via `PLUGINS.TXT`). The WASM backend compiles to a `cdylib` via `wasm-pack` and runs in any modern browser with in-canvas video rendering for TV Guide.
170
170
171
171
## Building
172
172
173
-
### Desktop (SDL2)
173
+
### Desktop (SDL3)
174
174
175
175
```bash
176
176
# Via Docker (container-first)
177
177
docker compose --profile ci run --rm rust-ci cargo build --release -p oasis-app
178
178
179
-
# Or natively (requires libsdl2-dev, libsdl2-mixer-dev)
179
+
# Or natively (requires cmake, g++, and X11/audio dev headers)
0 commit comments