0.1.0-2-beta.1.fix.3

This commit is contained in:
2026-09-17 16:57:36 +02:00
parent a278eb7109
commit 977b193e00
21 changed files with 289 additions and 39 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/development/007-ANDROID_JNI_BRIDGE.md -->
<!-- version: 1 -->
<!-- version: 2 -->
# Bridge Java/JNI Android
@@ -14,7 +14,7 @@ L'input tactile de base ne passe pas par JNI : SDL3 fournit directement les év
La baseline expose un unique appel Java vers Rust :
```text
NativeBridge.nativeContractVersion() -> 1
NativeBridge.nativeContractVersion() -> 2
```
`SaseGameActivity` vérifie ce contrat après `SDLActivity.onCreate()`.
@@ -45,3 +45,20 @@ L'export JNI utilise un symbole nommé explicitement et reçoit deux pointeurs o
Aucun bloc `unsafe` ni fonction `unsafe` n'est autorisé.
Si un futur service nécessite de manipuler réellement `JNIEnv`, il devra faire l'objet d'une tranche distincte avec une politique FFI réévaluée plutôt que d'élargir implicitement l'exception actuelle.
## Back Android
Le contrat v2 ajoute un pont Java/JNI explicite pour Back :
```text
SaseGameActivity
-> NativeBridge.requestPlatformBack()
-> nativeRequestPlatformBack()
-> engine-v1-sdl::request_platform_back()
-> EngineGame::quit_requested(QuitSource::PlatformBack)
```
Sur API 33+, `SaseGameActivity` enregistre un `OnBackInvokedCallback`.
Sur les versions antérieures, `onBackPressed()` reste le fallback.
Cette voie remplace la dépendance au mapping variable du bouton Back vers `SDL_SCANCODE_AC_BACK`.