229169cea1
- native.rs: EINE winit-EventLoop hostet 2D- und 3D-Fenster (winit erlaubt nur eine Loop pro Prozess) — loest den RecreationAttempt-Panic zweier Loops; ersetzt native2d.rs/native3d.rs. Feature-gegated (native2d/native3d, einzeln oder zusammen). - render2d/render3d laden das ECHTE Modell aus assets/native2d_scene.json bzw. native3d_walls.json (Demo-Szene als Fallback); initialer Ausschnitt/Kamera aus den Modell-Grenzen gerahmt, initialer Redraw + gesetzte Fenstergroesse. - TS-Konverter toRenderScene/toWalls3d + scripts/dump-native-scene erzeugen die JSON aus sampleProject/generatePlan (npm run dump:native). - render2d: Scene.polylines fuer zusammenhaengende Umriss-/Zeichnungslaeufe → Gehrung statt Stumpfkappen an Wandecken/2D-Geometrien; MITER_LIMIT 4→8 (deckungsgleich mit SVG stroke-miterlimit:8 und WebGL2). - native3d-Feature + render3d-Pfad-Dep in der Tauri-Crate.
52 lines
2.2 KiB
TOML
52 lines
2.2 KiB
TOML
[workspace]
|
|
members = [".", "geometry"]
|
|
# render2d/render3d sind eigenstaendige Crates (jeweils eigener [workspace]), damit
|
|
# sie headless ohne Tauri-Toolchain baubar/testbar bleiben. Sie liegen zwar im
|
|
# src-tauri-Baum, gehoeren aber NICHT zum cad-tauri-Workspace — hier ausschliessen,
|
|
# damit `cad-tauri` sie dennoch per Pfad als (optionale) Abhaengigkeit nutzen kann.
|
|
exclude = ["render2d", "render3d"]
|
|
|
|
[package]
|
|
name = "cad-tauri"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
|
|
[lib]
|
|
# Der Tauri-v2-Bibliotheksname; staticlib/cdylib fuer Mobile, rlib fuer Desktop.
|
|
name = "cad_tauri_lib"
|
|
crate-type = ["staticlib", "cdylib", "rlib"]
|
|
|
|
[features]
|
|
# Standard: reine Tauri-App (Webview + invoke). KEIN wgpu/winit.
|
|
default = []
|
|
# M2-Spike: nativer wgpu-2D-Viewport im Tauri-Prozess (eigenes winit-Fenster).
|
|
# Zieht render2d(+window) sowie winit/wgpu/pollster. Bewusst OPT-IN, damit der
|
|
# normale Build unveraendert schlank bleibt.
|
|
native2d = ["dep:render2d", "dep:winit", "dep:wgpu", "dep:pollster"]
|
|
# M2-Spike: nativer wgpu-3D-Viewport im Tauri-Prozess (eigenes winit-Fenster).
|
|
# Zieht render3d(+window) sowie winit/wgpu/pollster. Kann gemeinsam mit `native2d`
|
|
# aktiviert werden (dann zwei native Fenster). Ebenfalls OPT-IN.
|
|
native3d = ["dep:render3d", "dep:winit", "dep:wgpu", "dep:pollster"]
|
|
|
|
[build-dependencies]
|
|
tauri-build = { version = "2", features = [] }
|
|
|
|
[dependencies]
|
|
tauri = { version = "2", features = [] }
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
geometry = { path = "geometry" }
|
|
|
|
# --- M2-Spike (nur mit Feature "native2d") -----------------------------------
|
|
# render2d ist eine eigenstaendige Crate (eigener leerer [workspace]); wir binden
|
|
# sie hier per Pfad ein und aktivieren ihr GPU-Fenster-Feature "window".
|
|
render2d = { path = "render2d", features = ["window"], optional = true }
|
|
# render3d analog: eigenstaendige Crate (via Parent-`exclude` aus dem Workspace
|
|
# genommen, ohne eigenen [workspace]-Block); per Pfad mit GPU-Fenster-Feature
|
|
# "window" eingebunden.
|
|
render3d = { path = "render3d", features = ["window"], optional = true }
|
|
# Versionen an render2d gekoppelt (identische raw-window-handle 0.6-Kette).
|
|
winit = { version = "0.30", optional = true }
|
|
wgpu = { version = "22", optional = true }
|
|
pollster = { version = "0.3", optional = true }
|