Renderer-Umschalter: Wahl in localStorage persistieren (uebersteht Neustart ohne URL-Param)
This commit is contained in:
+10
-2
@@ -2190,12 +2190,20 @@ export default function App() {
|
|||||||
// Plan-Renderer-Umschalter (Statusleiste): reines Ableiten/Setzen des `engine`-
|
// Plan-Renderer-Umschalter (Statusleiste): reines Ableiten/Setzen des `engine`-
|
||||||
// URL-Params (siehe PlanView.tsx `wantWasm`); die Renderer-Auswahl selbst bleibt
|
// URL-Params (siehe PlanView.tsx `wantWasm`); die Renderer-Auswahl selbst bleibt
|
||||||
// dort. Ein Wechsel lädt die Seite neu — kein Live-Remount der Renderer-Hooks.
|
// dort. Ein Wechsel lädt die Seite neu — kein Live-Remount der Renderer-Hooks.
|
||||||
const rendererMode: RendererMode =
|
// Persistiert in localStorage, damit die Wahl einen Neustart ohne URL-Param
|
||||||
new URLSearchParams(window.location.search).get("engine") === "wasm"
|
// übersteht (z.B. die Electron-App startet immer auf der Basis-URL).
|
||||||
|
const RENDERER_STORAGE_KEY = "cad.rendererMode";
|
||||||
|
const rendererMode: RendererMode = (() => {
|
||||||
|
const fromUrl = new URLSearchParams(window.location.search).get("engine");
|
||||||
|
if (fromUrl === "wasm") return "wasm";
|
||||||
|
if (fromUrl === "webgl2") return "webgl2";
|
||||||
|
return window.localStorage.getItem(RENDERER_STORAGE_KEY) === "wasm"
|
||||||
? "wasm"
|
? "wasm"
|
||||||
: "webgl2";
|
: "webgl2";
|
||||||
|
})();
|
||||||
const webGpuAvailable = typeof navigator !== "undefined" && "gpu" in navigator;
|
const webGpuAvailable = typeof navigator !== "undefined" && "gpu" in navigator;
|
||||||
const setRendererMode = (mode: RendererMode) => {
|
const setRendererMode = (mode: RendererMode) => {
|
||||||
|
window.localStorage.setItem(RENDERER_STORAGE_KEY, mode);
|
||||||
const url = new URL(window.location.href);
|
const url = new URL(window.location.href);
|
||||||
if (mode === "wasm") url.searchParams.set("engine", "wasm");
|
if (mode === "wasm") url.searchParams.set("engine", "wasm");
|
||||||
else url.searchParams.delete("engine");
|
else url.searchParams.delete("engine");
|
||||||
|
|||||||
Reference in New Issue
Block a user