Commit Graph

  • a2fb95e57b Add Windows cross-compilation via MinGW, and fix Docker build permission issues on vboxsf-mounted checkouts master v3.0.2 matthias 2026-08-11 05:14:13 +02:00
  • 581af95e7b Drive the engine's mouse cursor from the VR aim ray on the game quad ml 2026-08-14 08:36:09 +02:00
  • 824b4a2506 Give the game quad the same laser-beam pointer as the overlays ml 2026-08-14 07:59:09 +02:00
  • 920842a465 Show a laser-beam pointer while aiming at the menu/keyboard ml 2026-08-14 07:30:13 +02:00
  • 3be310ade6 Split the keyboard onto its own translucent OpenXR quad v3.0.1 ml 2026-08-14 06:43:44 +02:00
  • 2d8fb49bf5 Add hand-built on-screen keyboard to the OpenXR menu quad ml 2026-08-05 08:11:16 +02:00
  • 1be0bebda2 Split the menu quad back onto its own independent OpenXR swapchain ml 2026-08-02 08:01:14 +02:00
  • 2b52b818e8 Added a make android-studio target that wraps ./run-image.sh bash build-image/prepare-android-project.sh --host-paths, and updated the README (Layout's Makefile-target list, "5.2. Building natively in Android Studio", and "5.3. Testing cycles") to reference it — including a note that it must be re-run after make clean specifically, since that's what just bit you. Run make android-studio now to fix the build. ml 2026-08-02 06:46:07 +02:00
  • d2dc58391b Add controller input and a laser-pointer-driven menu quad v0.3.0 ml 2026-08-02 06:27:49 +02:00
  • 2300d081c3 Add OpenXR bring-up: render the game as a floating quad in an immersive Quest session ml 2026-07-25 07:25:27 +02:00
  • 0f59898bb6 - AndroidManifest.xml: add android:screenOrientation="landscape" and a <layout> defaultWidth/defaultHeight/minWidth/minHeight/gravity hint - Quest's Home shell otherwise defaults a freshly-launched 2D panel to a portrait shape, cropping the game's 4:3 640x480 content down to a sliver. - The actual root cause of the remaining crop (game rendering into one corner of an otherwise correctly-sized panel), found via on-device logcat and the new diagnostics below rather than guesswork: ChangeScreenSize() (engine/src/MacSrc/ShockBitmap.c) calls SDL_SetWindowSize() whenever the game sets its video mode. That's a desktop-only operation in effect - Android has no SetWindowSize driver hook, so SDL's generic layer instead overwrites its own cached window size to the game's internal resolution (640x480) and synthesizes a resize event from that, desyncing SDL's notion of the window size from the real, unchanged Android surface (e.g. 1600x1200). Both SDL's own renderer viewport and the engine's custom GL viewport then scale against that corrupted cached size. 10-android-no-window-resize.patch skips the desktop-only SDL_SetWindowFullscreen/SetWindowSize/ SetWindowPosition calls on Android, keeping the legitimate SDL_RenderSetLogicalSize/offscreen-bitmap setup. - 06-android-resize-event.patch: also react to SDL_WINDOWEVENT_RESIZED in the engine's event loop, not just SIZE_CHANGED - Android's SDL video backend never sends SIZE_CHANGED for surface-driven resizes, only RESIZED, an independent gap worth closing regardless of the bug above. - 08/09-android-logcat-*.patch: route the engine's existing log.c output (previously plain fprintf(stderr,...), never actually captured by logcat on this build) through __android_log_vprint instead, so every existing INFO/DEBUG/WARN/ERROR call site becomes visible for on-device debugging. This is what made the diagnostic below (and everything since) observable at all. - 07-android-size-diagnostics.patch: one-time startup log comparing SDL_GetWindowSize/SDL_GL_GetDrawableSize/SDL_GetRendererOutputSize - the evidence that actually pinned down the SDL_SetWindowSize bug above. - QuestShockActivity.java: add a diagnostic onSizeChanged() log on GameSurface, used to rule out a later Android-side panel relayout as the cause before finding the real one. v0.2.2 ml 2026-07-24 06:31:18 +02:00
  • 4e47e0a989 Fix missing-assets detection race, 16 KB page alignment, and Android audio backend ml 2026-07-23 19:20:22 +02:00
  • ac640762d7 Fix Quest launch crashes, version the APK like the tarball, and support native builds in Android Studio ml 2026-07-23 06:42:45 +02:00
  • 3da137da09 rename Shockolate tar ball ml 2026-07-20 13:51:10 +02:00
  • 3034703994 Adding publishing of the APK v0.2.1 ml 2026-07-20 13:16:33 +02:00
  • 66f02a0c61 The Android/Quest CMakeLists.txt patch previously reimplemented desktop immediate-mode GL (glBegin/glVertex3f/glEnd and friends) from scratch on top of GLES, since GLES has none of it. That code compiled but was never actually exercised - no on-screen verification was possible without real Quest hardware - making it the biggest unverified risk in the port. v0.2.0 ml 2026-07-20 12:52:34 +02:00
  • 9e2c9ffbe6 Adding first APK build ml 2026-07-20 09:45:08 +02:00
  • 8712269b51 Adding a logo and NodeJS to the build image ml 2026-07-19 16:50:36 +02:00
  • a5ec8db5f7 Vendor the Shockolate engine and build it via a Docker image with every dependency (SDL2, SDL2_mixer, fluidsynth-lite, a MIDI soundfont) prebuilt, so compiling the engine needs no network access - just the image and the engine source. Add res/assets/extract_assets.sh to pull the game's data files out of a purchased GOG installer, and a Makefile that assembles a runnable dist/ from the two. v0.1.0 ml 2026-07-19 15:43:38 +02:00
  • 3ed6400466 Adding LICENSE file and initial .gitignore ml 2026-07-19 13:02:58 +02:00