From 6c4845b81dd44132875688b1caeb19007c607c06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Kav=C3=ADk?= Date: Thu, 6 Jun 2024 17:13:55 +0200 Subject: [PATCH 01/23] signal block optimizations --- Cargo.lock | 4 +- frontend/typescript/bundles/pixi_canvas.js | 78 +++++++++++---- .../typescript/pixi_canvas/pixi_canvas.ts | 94 +++++++++++++------ 3 files changed, 127 insertions(+), 49 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 78eb858..8612f2e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5038,9 +5038,9 @@ dependencies = [ [[package]] name = "tray-icon" -version = "0.14.2" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b27516dfcfa22a9faaf192283a122bfbede38c1e59ef194e3c4db6549b419c0" +checksum = "3ad8319cca93189ea9ab1b290de0595960529750b6b8b501a399ed1ec3775d60" dependencies = [ "cocoa", "core-graphics", diff --git a/frontend/typescript/bundles/pixi_canvas.js b/frontend/typescript/bundles/pixi_canvas.js index 5ab8f18..8dea832 100644 --- a/frontend/typescript/bundles/pixi_canvas.js +++ b/frontend/typescript/bundles/pixi_canvas.js @@ -35126,6 +35126,7 @@ var import_earcut2 = __toESM(require_earcut(), 1); extensions.add(browserExt, webworkerExt); // pixi_canvas.ts +var MIN_BLOCK_WIDTH = 1; var PixiController = class { app; // -- FastWave-specific -- @@ -35198,6 +35199,12 @@ var VarSignalRow = class { // -- elements -- row_container = new Container(); signal_blocks_container = new Container(); + label_style = new TextStyle({ + align: "center", + fill: "White", + fontSize: 16, + fontFamily: 'system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"' + }); constructor(timeline, app, owner, rows_container, row_height, row_gap) { this.app = app; this.timeline = timeline; @@ -35217,56 +35224,87 @@ var VarSignalRow = class { this.draw(); this.app.renderer.on("resize", this.renderer_resize_callback); } - draw() { + async draw() { this.row_container.y = this.index_in_owner * this.row_height_with_gap; this.rows_container.addChild(this.row_container); this.row_container.addChild(this.signal_blocks_container); - const label_style = new TextStyle({ - align: "center", - fill: "White", - fontSize: 16, - fontFamily: 'system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"' - }); - this.timeline_for_ui.forEach(([x2, value], index) => { + for (let index = 0; index < this.timeline_for_ui.length; index++) { if (index == this.timeline_for_ui.length - 1) { return; } + await new Promise((resolve) => setTimeout(resolve, 0)); + const [x2, value] = this.timeline_for_ui[index]; const block_width = this.timeline_for_ui[index + 1][0] - x2; const block_height = this.row_height; + if (block_width < MIN_BLOCK_WIDTH) { + return; + } const signal_block = new Container(); signal_block.x = x2; this.signal_blocks_container.addChild(signal_block); const background = new Graphics().roundRect(0, 0, block_width, block_height, 15).fill("SlateBlue"); background.label = "background"; signal_block.addChild(background); - const label = new Text({ text: value, style: label_style }); + const label = new Text({ text: value, style: this.label_style }); label.x = (block_width - label.width) / 2; label.y = (block_height - label.height) / 2; label.visible = label.width < block_width; label.label = "label"; signal_block.addChild(label); - }); + } } - redraw_on_canvas_resize() { + async redraw_on_canvas_resize() { for (let index = 0; index < this.timeline_for_ui.length; index++) { const x2 = this.timeline[index][0] / this.last_time * this.app.screen.width; this.timeline_for_ui[index][0] = x2; } - this.timeline_for_ui.forEach(([x2, _value], index) => { + for (let index = 0; index < this.timeline_for_ui.length; index++) { if (index == this.timeline_for_ui.length - 1) { return; } + await new Promise((resolve) => setTimeout(resolve, 0)); + const [x2, value] = this.timeline_for_ui[index]; const block_width = this.timeline_for_ui[index + 1][0] - x2; const block_height = this.row_height; - const signal_block = this.signal_blocks_container.getChildAt(index); - signal_block.x = x2; - const background = signal_block.getChildByLabel("background"); - background.width = block_width; + const block_visible = block_width >= MIN_BLOCK_WIDTH; + let signal_block = this.signal_blocks_container.children[index]; + if (signal_block === void 0 && !block_visible) { + return; + } + if (signal_block !== void 0 && !block_visible) { + signal_block.visible = false; + return; + } + if (signal_block === void 0 && block_visible) { + signal_block = new Container(); + signal_block.x = x2; + this.signal_blocks_container.addChild(signal_block); + } else if (signal_block !== void 0 && block_visible) { + signal_block.visible = true; + signal_block.x = x2; + } + let background = signal_block.getChildByLabel("background"); + if (background === null) { + background = new Graphics().roundRect(0, 0, block_width, block_height, 15).fill("SlateBlue"); + background.label = "background"; + signal_block.addChild(background); + } else { + background.width = block_width; + } const label = signal_block.getChildByLabel("label"); - label.x = (block_width - label.width) / 2; - label.y = (block_height - label.height) / 2; - label.visible = label.width < block_width; - }); + if (label === null) { + const label2 = new Text({ text: value, style: this.label_style }); + label2.x = (block_width - label2.width) / 2; + label2.y = (block_height - label2.height) / 2; + label2.visible = label2.width < block_width; + label2.label = "label"; + signal_block.addChild(label2); + } else { + label.x = (block_width - label.width) / 2; + label.y = (block_height - label.height) / 2; + label.visible = label.width < block_width; + } + } } decrement_index() { this.index_in_owner--; diff --git a/frontend/typescript/pixi_canvas/pixi_canvas.ts b/frontend/typescript/pixi_canvas/pixi_canvas.ts index 97bd6fc..33076e0 100644 --- a/frontend/typescript/pixi_canvas/pixi_canvas.ts +++ b/frontend/typescript/pixi_canvas/pixi_canvas.ts @@ -1,4 +1,4 @@ -import { Application, Text, Graphics, Container, TextStyle } from "pixi.js"; +import { Application, Text, Graphics, Container, TextStyle, ContainerChild } from "pixi.js"; type Time = number; type BitString = string; @@ -7,6 +7,8 @@ type Timeline = Array<[Time, BitString]>; type X = number; type TimelineForUI = Array<[X, string]>; +const MIN_BLOCK_WIDTH = 1; + export class PixiController { app: Application // -- FastWave-specific -- @@ -90,6 +92,12 @@ class VarSignalRow { // -- elements -- row_container = new Container(); signal_blocks_container = new Container(); + label_style = new TextStyle({ + align: "center", + fill: "White", + fontSize: 16, + fontFamily: 'system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"', + }); constructor( timeline: Timeline, @@ -124,7 +132,7 @@ class VarSignalRow { this.app.renderer.on("resize", this.renderer_resize_callback); } - draw() { + async draw() { // row_container this.row_container.y = this.index_in_owner * this.row_height_with_gap; this.rows_container.addChild(this.row_container); @@ -132,21 +140,19 @@ class VarSignalRow { // signal_block_container this.row_container.addChild(this.signal_blocks_container); - const label_style = new TextStyle({ - align: "center", - fill: "White", - fontSize: 16, - fontFamily: 'system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"', - }); - - this.timeline_for_ui.forEach(([x, value], index) => { + for (let index = 0; index < this.timeline_for_ui.length; index++) { if (index == this.timeline_for_ui.length - 1) { return; } - const block_width = this.timeline_for_ui[index+1][0] - x; - const block_height = this.row_height; + await new Promise(resolve => setTimeout(resolve, 0)); + const [x, value] = this.timeline_for_ui[index]; // signal_block + const block_width = this.timeline_for_ui[index+1][0] - x; + const block_height = this.row_height; + if (block_width < MIN_BLOCK_WIDTH) { + return; + } const signal_block = new Container(); signal_block.x = x; this.signal_blocks_container.addChild(signal_block); @@ -159,42 +165,76 @@ class VarSignalRow { signal_block.addChild(background); // label - const label = new Text({ text: value, style: label_style }); + const label = new Text({ text: value, style: this.label_style }); label.x = (block_width - label.width) / 2; label.y = (block_height - label.height) / 2; label.visible = label.width < block_width; label.label = "label"; signal_block.addChild(label); - }) + } } - redraw_on_canvas_resize() { + async redraw_on_canvas_resize() { for (let index = 0; index < this.timeline_for_ui.length; index++) { const x = this.timeline[index][0] / this.last_time * this.app.screen.width; this.timeline_for_ui[index][0] = x; } - this.timeline_for_ui.forEach(([x, _value], index) => { + for (let index = 0; index < this.timeline_for_ui.length; index++) { if (index == this.timeline_for_ui.length - 1) { return; } - + await new Promise(resolve => setTimeout(resolve, 0)); + const [x, value] = this.timeline_for_ui[index]; + + // signal_block const block_width = this.timeline_for_ui[index+1][0] - x; const block_height = this.row_height; + const block_visible = block_width >= MIN_BLOCK_WIDTH; - // signal_block - const signal_block = this.signal_blocks_container.getChildAt(index); - signal_block.x = x; + let signal_block: ContainerChild | undefined = this.signal_blocks_container.children[index]; + if (signal_block === undefined && !block_visible) { + return; + } + if (signal_block !== undefined && !block_visible) { + signal_block.visible = false; + return; + } + if (signal_block === undefined && block_visible) { + signal_block = new Container(); + signal_block.x = x; + this.signal_blocks_container.addChild(signal_block); + } else if (signal_block !== undefined && block_visible) { + signal_block.visible = true; + signal_block.x = x; + } // background - const background = signal_block.getChildByLabel("background")!; - background.width = block_width; + let background = signal_block.getChildByLabel("background"); + if (background === null) { + background = new Graphics() + .roundRect(0, 0, block_width, block_height, 15) + .fill("SlateBlue"); + background.label = "background"; + signal_block.addChild(background); + } else { + background.width = block_width; + } // label - const label = signal_block.getChildByLabel("label")!; - label.x = (block_width - label.width) / 2; - label.y = (block_height - label.height) / 2; - label.visible = label.width < block_width; - }) + const label = signal_block.getChildByLabel("label"); + if (label === null ) { + const label = new Text({ text: value, style: this.label_style }); + label.x = (block_width - label.width) / 2; + label.y = (block_height - label.height) / 2; + label.visible = label.width < block_width; + label.label = "label"; + signal_block.addChild(label); + } else { + label.x = (block_width - label.width) / 2; + label.y = (block_height - label.height) / 2; + label.visible = label.width < block_width; + } + } } decrement_index() { -- 2.50.1 From a37675b0940233b289a3f21c798a4ac64fd74848 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Kav=C3=ADk?= Date: Thu, 6 Jun 2024 22:04:57 +0200 Subject: [PATCH 02/23] platform::timeline --- Cargo.lock | 10 +- Cargo.toml | 3 +- frontend/Cargo.toml | 2 +- frontend/src/platform.rs | 4 + frontend/src/platform/browser.rs | 4 + frontend/src/platform/tauri.rs | 12 ++ frontend/src/waveform_panel.rs | 15 +- frontend/src/waveform_panel/pixi_canvas.rs | 5 +- frontend/typescript/bundles/pixi_canvas.js | 111 +++---------- frontend/typescript/bundles/tauri_glue.js | 4 + .../typescript/pixi_canvas/pixi_canvas.ts | 146 +++++------------- frontend/typescript/tauri_glue/tauri_glue.ts | 5 + shared/Cargo.toml | 7 + shared/src/lib.rs | 24 +++ src-tauri/Cargo.toml | 2 +- src-tauri/src/lib.rs | 20 +++ 16 files changed, 157 insertions(+), 217 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8612f2e..ccbf6f9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1538,9 +1538,9 @@ dependencies = [ [[package]] name = "futures" -version = "0.3.30" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40" dependencies = [ "futures-channel", "futures-core", @@ -1568,9 +1568,9 @@ checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" [[package]] name = "futures-executor" -version = "0.3.30" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0" dependencies = [ "futures-core", "futures-task", @@ -4124,6 +4124,8 @@ dependencies = [ name = "shared" version = "0.1.0" dependencies = [ + "futures-util", + "moonlight", "wellen", ] diff --git a/Cargo.toml b/Cargo.toml index f7fe8b2..5ab2fb1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,11 +16,12 @@ readme = "../README.md" publish = false [workspace.dependencies] -shared = { path = "./shared" } # wellen = { version = "0.9.9", features = ["serde1"] } # wellen = { path = "../wellen/wellen", features = ["serde1"] } wellen = { git = "https://github.com/MartinKavik/wellen", features = ["serde1"], branch = "new_pub_types" } # moon = { path = "../../crates/moon" } # zoon = { path = "../../crates/zoon" } +# moonlight = { path = "../../crates/zoon" } zoon = { git = "https://github.com/MoonZoon/MoonZoon", rev = "fc73b0d90bf39be72e70fdcab4f319ea5b8e6cfc" } moon = { git = "https://github.com/MoonZoon/MoonZoon", rev = "fc73b0d90bf39be72e70fdcab4f319ea5b8e6cfc" } +moonlight = { git = "https://github.com/MoonZoon/MoonZoon", rev = "fc73b0d90bf39be72e70fdcab4f319ea5b8e6cfc" } diff --git a/frontend/Cargo.toml b/frontend/Cargo.toml index 9d27365..930650e 100644 --- a/frontend/Cargo.toml +++ b/frontend/Cargo.toml @@ -11,8 +11,8 @@ publish.workspace = true wasm-bindgen-test = "0.3.19" [dependencies] -shared.workspace = true zoon.workspace = true wellen.workspace = true +shared = { path = "../shared", features = ["frontend"] } web-sys = { version = "*", features = ["FileSystemFileHandle"] } gloo-file = { version = "0.3.0", features = ["futures"] } diff --git a/frontend/src/platform.rs b/frontend/src/platform.rs index 297bee4..141dc8f 100644 --- a/frontend/src/platform.rs +++ b/frontend/src/platform.rs @@ -37,6 +37,10 @@ pub async fn load_and_get_signal(signal_ref: wellen::SignalRef) -> wellen::Signa platform::load_and_get_signal(signal_ref).await } +pub async fn timeline(signal_ref: wellen::SignalRef, screen_width: u32) -> shared::Timeline { + platform::timeline(signal_ref, screen_width).await +} + pub async fn unload_signal(signal_ref: wellen::SignalRef) { platform::unload_signal(signal_ref).await } diff --git a/frontend/src/platform/browser.rs b/frontend/src/platform/browser.rs index dc4d2eb..e7ef4bc 100644 --- a/frontend/src/platform/browser.rs +++ b/frontend/src/platform/browser.rs @@ -91,6 +91,10 @@ pub(super) async fn load_and_get_signal(signal_ref: wellen::SignalRef) -> wellen serde_json::from_value(serde_json::to_value(signal).unwrap_throw()).unwrap_throw() } +pub(super) async fn timeline(signal_ref: wellen::SignalRef, screen_width: u32) -> shared::Timeline { + shared::Timeline { blocks: Vec::new() } +} + pub(super) async fn unload_signal(signal_ref: wellen::SignalRef) { let mut waveform_lock = STORE.waveform.lock().unwrap_throw(); let waveform = waveform_lock.as_mut().unwrap_throw(); diff --git a/frontend/src/platform/tauri.rs b/frontend/src/platform/tauri.rs index cd97554..44737a7 100644 --- a/frontend/src/platform/tauri.rs +++ b/frontend/src/platform/tauri.rs @@ -30,6 +30,15 @@ pub(super) async fn load_and_get_signal(signal_ref: wellen::SignalRef) -> wellen .unwrap_throw() } +pub(super) async fn timeline(signal_ref: wellen::SignalRef, screen_width: u32) -> shared::Timeline { + serde_wasm_bindgen::from_value( + tauri_glue::timeline(signal_ref.index(), screen_width) + .await + .unwrap_throw(), + ) + .unwrap_throw() +} + pub(super) async fn unload_signal(signal_ref: wellen::SignalRef) { tauri_glue::unload_signal(signal_ref.index()) .await @@ -57,6 +66,9 @@ mod tauri_glue { #[wasm_bindgen(catch)] pub async fn load_and_get_signal(signal_ref_index: usize) -> Result; + #[wasm_bindgen(catch)] + pub async fn timeline(signal_ref_index: usize, screen_width: u32) -> Result; + #[wasm_bindgen(catch)] pub async fn unload_signal(signal_ref_index: usize) -> Result<(), JsValue>; } diff --git a/frontend/src/waveform_panel.rs b/frontend/src/waveform_panel.rs index 80b2b39..244cdaa 100644 --- a/frontend/src/waveform_panel.rs +++ b/frontend/src/waveform_panel.rs @@ -117,24 +117,19 @@ impl WaveformPanel { let var = hierarchy.get(var_ref); let signal_ref = var.signal_ref(); - let signal = platform::load_and_get_signal(signal_ref).await; + let timeline = platform::timeline(signal_ref, controller.screen_width()).await; + + // @TODO remove + zoon::println!("Timeline in Rust: {timeline:#?}"); let timescale = hierarchy.timescale(); // @TODO remove zoon::println!("{timescale:?}"); - let mut timeline: Vec<(wellen::Time, String)> = signal - .iter_changes() - .map(|(time_index, signal_value)| { - (time_table[time_index as usize], signal_value.to_string()) - }) - .collect(); - if timeline.is_empty() { + if timeline.blocks.is_empty() { eprintln!("timeline is empty"); return; } - timeline.push((last_time, timeline.last().cloned().unwrap_throw().1)); - // Note: Sync `timeline`'s type with the `Timeline` in `frontend/typescript/pixi_canvas/pixi_canvas.ts' controller.push_var(serde_wasm_bindgen::to_value(&timeline).unwrap_throw()); } diff --git a/frontend/src/waveform_panel/pixi_canvas.rs b/frontend/src/waveform_panel/pixi_canvas.rs index 52a4c5a..218f6a3 100644 --- a/frontend/src/waveform_panel/pixi_canvas.rs +++ b/frontend/src/waveform_panel/pixi_canvas.rs @@ -100,11 +100,14 @@ mod js_bridge { #[wasm_bindgen(method)] pub async fn init(this: &PixiController, parent_element: &JsValue); + #[wasm_bindgen(method)] + pub fn queue_resize(this: &PixiController); + #[wasm_bindgen(method)] pub fn destroy(this: &PixiController); #[wasm_bindgen(method)] - pub fn queue_resize(this: &PixiController); + pub fn screen_width(this: &PixiController) -> u32; // -- FastWave-specific -- diff --git a/frontend/typescript/bundles/pixi_canvas.js b/frontend/typescript/bundles/pixi_canvas.js index 8dea832..3c527bd 100644 --- a/frontend/typescript/bundles/pixi_canvas.js +++ b/frontend/typescript/bundles/pixi_canvas.js @@ -35126,7 +35126,6 @@ var import_earcut2 = __toESM(require_earcut(), 1); extensions.add(browserExt, webworkerExt); // pixi_canvas.ts -var MIN_BLOCK_WIDTH = 1; var PixiController = class { app; // -- FastWave-specific -- @@ -35160,6 +35159,9 @@ var PixiController = class { }; this.app.destroy(rendererDestroyOptions, options); } + screen_width() { + return this.app.screen.width; + } // -- FastWave-specific -- remove_var(index) { if (typeof this.var_signal_rows[index] !== "undefined") { @@ -35167,6 +35169,7 @@ var PixiController = class { } } push_var(timeline) { + console.log("Timline in Typescript:", timeline); new VarSignalRow( timeline, this.app, @@ -35186,17 +35189,13 @@ var PixiController = class { var VarSignalRow = class { app; timeline; - last_time; - formatter; - timeline_for_ui; owner; index_in_owner; rows_container; row_height; row_gap; row_height_with_gap; - renderer_resize_callback = () => this.redraw_on_canvas_resize(); - // -- elements -- + renderer_resize_callback = () => this.draw(); row_container = new Container(); signal_blocks_container = new Container(); label_style = new TextStyle({ @@ -35208,12 +35207,6 @@ var VarSignalRow = class { constructor(timeline, app, owner, rows_container, row_height, row_gap) { this.app = app; this.timeline = timeline; - this.last_time = timeline[timeline.length - 1][0]; - this.formatter = (signal_value) => parseInt(signal_value, 2).toString(16); - this.timeline_for_ui = this.timeline.map(([time, value]) => { - const x2 = time / this.last_time * this.app.screen.width; - return [x2, this.formatter(value)]; - }); this.row_height = row_height; this.row_gap = row_gap; this.row_height_with_gap = row_height + row_gap; @@ -35221,90 +35214,26 @@ var VarSignalRow = class { this.owner = owner; this.owner.push(this); this.rows_container = rows_container; - this.draw(); - this.app.renderer.on("resize", this.renderer_resize_callback); - } - async draw() { this.row_container.y = this.index_in_owner * this.row_height_with_gap; this.rows_container.addChild(this.row_container); this.row_container.addChild(this.signal_blocks_container); - for (let index = 0; index < this.timeline_for_ui.length; index++) { - if (index == this.timeline_for_ui.length - 1) { - return; - } - await new Promise((resolve) => setTimeout(resolve, 0)); - const [x2, value] = this.timeline_for_ui[index]; - const block_width = this.timeline_for_ui[index + 1][0] - x2; - const block_height = this.row_height; - if (block_width < MIN_BLOCK_WIDTH) { - return; - } - const signal_block = new Container(); - signal_block.x = x2; - this.signal_blocks_container.addChild(signal_block); - const background = new Graphics().roundRect(0, 0, block_width, block_height, 15).fill("SlateBlue"); - background.label = "background"; - signal_block.addChild(background); - const label = new Text({ text: value, style: this.label_style }); - label.x = (block_width - label.width) / 2; - label.y = (block_height - label.height) / 2; - label.visible = label.width < block_width; - label.label = "label"; - signal_block.addChild(label); - } + this.draw(); } - async redraw_on_canvas_resize() { - for (let index = 0; index < this.timeline_for_ui.length; index++) { - const x2 = this.timeline[index][0] / this.last_time * this.app.screen.width; - this.timeline_for_ui[index][0] = x2; - } - for (let index = 0; index < this.timeline_for_ui.length; index++) { - if (index == this.timeline_for_ui.length - 1) { - return; + draw() { + this.signal_blocks_container.removeChildren(); + this.timeline.blocks.forEach((timeline_block) => { + const signal_block = new Container(); + signal_block.x = timeline_block.x; + this.signal_blocks_container.addChild(signal_block); + const background = new Graphics().roundRect(0, 0, timeline_block.width, this.row_height, 15).fill("SlateBlue"); + signal_block.addChild(background); + if (timeline_block.label !== void 0) { + const label = new Text({ text: timeline_block.label.text, style: this.label_style }); + label.x = timeline_block.label.x; + label.y = timeline_block.label.y; + signal_block.addChild(label); } - await new Promise((resolve) => setTimeout(resolve, 0)); - const [x2, value] = this.timeline_for_ui[index]; - const block_width = this.timeline_for_ui[index + 1][0] - x2; - const block_height = this.row_height; - const block_visible = block_width >= MIN_BLOCK_WIDTH; - let signal_block = this.signal_blocks_container.children[index]; - if (signal_block === void 0 && !block_visible) { - return; - } - if (signal_block !== void 0 && !block_visible) { - signal_block.visible = false; - return; - } - if (signal_block === void 0 && block_visible) { - signal_block = new Container(); - signal_block.x = x2; - this.signal_blocks_container.addChild(signal_block); - } else if (signal_block !== void 0 && block_visible) { - signal_block.visible = true; - signal_block.x = x2; - } - let background = signal_block.getChildByLabel("background"); - if (background === null) { - background = new Graphics().roundRect(0, 0, block_width, block_height, 15).fill("SlateBlue"); - background.label = "background"; - signal_block.addChild(background); - } else { - background.width = block_width; - } - const label = signal_block.getChildByLabel("label"); - if (label === null) { - const label2 = new Text({ text: value, style: this.label_style }); - label2.x = (block_width - label2.width) / 2; - label2.y = (block_height - label2.height) / 2; - label2.visible = label2.width < block_width; - label2.label = "label"; - signal_block.addChild(label2); - } else { - label.x = (block_width - label.width) / 2; - label.y = (block_height - label.height) / 2; - label.visible = label.width < block_width; - } - } + }); } decrement_index() { this.index_in_owner--; diff --git a/frontend/typescript/bundles/tauri_glue.js b/frontend/typescript/bundles/tauri_glue.js index 3a14939..0030d54 100644 --- a/frontend/typescript/bundles/tauri_glue.js +++ b/frontend/typescript/bundles/tauri_glue.js @@ -2526,6 +2526,9 @@ async function get_time_table() { async function load_and_get_signal(signal_ref_index) { return await invoke2("load_and_get_signal", { signal_ref_index }); } +async function timeline(signal_ref_index, screen_width) { + return await invoke2("timeline", { signal_ref_index, screen_width }); +} async function unload_signal(signal_ref_index) { return await invoke2("unload_signal", { signal_ref_index }); } @@ -2535,5 +2538,6 @@ export { load_and_get_signal, pick_and_load_waveform, show_window, + timeline, unload_signal }; diff --git a/frontend/typescript/pixi_canvas/pixi_canvas.ts b/frontend/typescript/pixi_canvas/pixi_canvas.ts index 33076e0..6b4f783 100644 --- a/frontend/typescript/pixi_canvas/pixi_canvas.ts +++ b/frontend/typescript/pixi_canvas/pixi_canvas.ts @@ -1,13 +1,19 @@ import { Application, Text, Graphics, Container, TextStyle, ContainerChild } from "pixi.js"; -type Time = number; -type BitString = string; -type Timeline = Array<[Time, BitString]>; - -type X = number; -type TimelineForUI = Array<[X, string]>; - -const MIN_BLOCK_WIDTH = 1; +// @TODO sync with Rust and `tauri_glue.ts` +type Timeline = { + blocks: Array +} +type TimelineBlock = { + x: number, + width: number, + label: TimeLineBlockLabel | undefined, +} +type TimeLineBlockLabel = { + text: string, + x: number, + y: number, +} export class PixiController { app: Application @@ -48,6 +54,10 @@ export class PixiController { this.app.destroy(rendererDestroyOptions, options); } + screen_width() { + return this.app.screen.width; + } + // -- FastWave-specific -- remove_var(index: number) { @@ -57,6 +67,7 @@ export class PixiController { } push_var(timeline: Timeline) { + console.log("Timline in Typescript:", timeline); new VarSignalRow( timeline, this.app, @@ -79,17 +90,13 @@ export class PixiController { class VarSignalRow { app: Application; timeline: Timeline; - last_time: Time; - formatter: (signal_value: BitString) => string; - timeline_for_ui: TimelineForUI; owner: Array; index_in_owner: number; rows_container: Container; row_height: number; row_gap: number; row_height_with_gap: number; - renderer_resize_callback = () => this.redraw_on_canvas_resize(); - // -- elements -- + renderer_resize_callback = () => this.draw(); row_container = new Container(); signal_blocks_container = new Container(); label_style = new TextStyle({ @@ -110,13 +117,6 @@ class VarSignalRow { this.app = app; this.timeline = timeline; - this.last_time = timeline[timeline.length - 1][0]; - this.formatter = signal_value => parseInt(signal_value, 2).toString(16); - - this.timeline_for_ui = this.timeline.map(([time, value]) => { - const x = time / this.last_time * this.app.screen.width; - return [x, this.formatter(value)] - }); this.row_height = row_height; this.row_gap = row_gap; @@ -128,113 +128,43 @@ class VarSignalRow { this.rows_container = rows_container; - this.draw(); - this.app.renderer.on("resize", this.renderer_resize_callback); - } - - async draw() { // row_container this.row_container.y = this.index_in_owner * this.row_height_with_gap; this.rows_container.addChild(this.row_container); - // signal_block_container + // signal_blocks_container this.row_container.addChild(this.signal_blocks_container); - for (let index = 0; index < this.timeline_for_ui.length; index++) { - if (index == this.timeline_for_ui.length - 1) { - return; - } - await new Promise(resolve => setTimeout(resolve, 0)); - const [x, value] = this.timeline_for_ui[index]; + this.draw(); + // this.app.renderer.on("resize", (width, height) => { + // // @TODO only on `width` change + // // @TODO inline `renderer_resize_callback`? + // this.draw(); + // }); + } + draw() { + this.signal_blocks_container.removeChildren(); + this.timeline.blocks.forEach(timeline_block => { // signal_block - const block_width = this.timeline_for_ui[index+1][0] - x; - const block_height = this.row_height; - if (block_width < MIN_BLOCK_WIDTH) { - return; - } const signal_block = new Container(); - signal_block.x = x; + signal_block.x = timeline_block.x; this.signal_blocks_container.addChild(signal_block); // background const background = new Graphics() - .roundRect(0, 0, block_width, block_height, 15) + .roundRect(0, 0, timeline_block.width, this.row_height, 15) .fill("SlateBlue"); - background.label = "background"; signal_block.addChild(background); // label - const label = new Text({ text: value, style: this.label_style }); - label.x = (block_width - label.width) / 2; - label.y = (block_height - label.height) / 2; - label.visible = label.width < block_width; - label.label = "label"; - signal_block.addChild(label); - } - } - - async redraw_on_canvas_resize() { - for (let index = 0; index < this.timeline_for_ui.length; index++) { - const x = this.timeline[index][0] / this.last_time * this.app.screen.width; - this.timeline_for_ui[index][0] = x; - } - for (let index = 0; index < this.timeline_for_ui.length; index++) { - if (index == this.timeline_for_ui.length - 1) { - return; - } - await new Promise(resolve => setTimeout(resolve, 0)); - const [x, value] = this.timeline_for_ui[index]; - - // signal_block - const block_width = this.timeline_for_ui[index+1][0] - x; - const block_height = this.row_height; - const block_visible = block_width >= MIN_BLOCK_WIDTH; - - let signal_block: ContainerChild | undefined = this.signal_blocks_container.children[index]; - if (signal_block === undefined && !block_visible) { - return; - } - if (signal_block !== undefined && !block_visible) { - signal_block.visible = false; - return; - } - if (signal_block === undefined && block_visible) { - signal_block = new Container(); - signal_block.x = x; - this.signal_blocks_container.addChild(signal_block); - } else if (signal_block !== undefined && block_visible) { - signal_block.visible = true; - signal_block.x = x; - } - - // background - let background = signal_block.getChildByLabel("background"); - if (background === null) { - background = new Graphics() - .roundRect(0, 0, block_width, block_height, 15) - .fill("SlateBlue"); - background.label = "background"; - signal_block.addChild(background); - } else { - background.width = block_width; - } - - // label - const label = signal_block.getChildByLabel("label"); - if (label === null ) { - const label = new Text({ text: value, style: this.label_style }); - label.x = (block_width - label.width) / 2; - label.y = (block_height - label.height) / 2; - label.visible = label.width < block_width; - label.label = "label"; + if (timeline_block.label !== undefined) { + const label = new Text({ text: timeline_block.label.text, style: this.label_style }); + label.x = timeline_block.label.x; + label.y = timeline_block.label.y; signal_block.addChild(label); - } else { - label.x = (block_width - label.width) / 2; - label.y = (block_height - label.height) / 2; - label.visible = label.width < block_width; } - } + }); } decrement_index() { diff --git a/frontend/typescript/tauri_glue/tauri_glue.ts b/frontend/typescript/tauri_glue/tauri_glue.ts index d075e4f..0f20e04 100644 --- a/frontend/typescript/tauri_glue/tauri_glue.ts +++ b/frontend/typescript/tauri_glue/tauri_glue.ts @@ -8,6 +8,7 @@ type Filename = string; type WellenHierarchy = unknown; type WellenTimeTable = unknown; type WellenSignal = unknown; +type Timeline = unknown; export async function show_window(): Promise { return await invoke("show_window"); @@ -29,6 +30,10 @@ export async function load_and_get_signal(signal_ref_index: number): Promise { + return await invoke("timeline", { signal_ref_index, screen_width }); +} + export async function unload_signal(signal_ref_index: number): Promise { return await invoke("unload_signal", { signal_ref_index }); } diff --git a/shared/Cargo.toml b/shared/Cargo.toml index 545e49d..0583e93 100644 --- a/shared/Cargo.toml +++ b/shared/Cargo.toml @@ -9,3 +9,10 @@ publish.workspace = true [dependencies] wellen.workspace = true +moonlight.workspace = true +# @TODO update `futures_util_ext` - add feature `sink`, set exact `futures-util` version +futures-util = { version = "0.3.30", features = ["sink"] } + +[features] +frontend = ["moonlight/frontend"] +backend = ["moonlight/backend"] diff --git a/shared/src/lib.rs b/shared/src/lib.rs index 89b0b3b..674cdfa 100644 --- a/shared/src/lib.rs +++ b/shared/src/lib.rs @@ -1 +1,25 @@ +use moonlight::*; + pub mod wellen_helpers; + +#[derive(Serialize, Deserialize, Debug)] +#[serde(crate = "serde")] +pub struct Timeline { + pub blocks: Vec +} + +#[derive(Serialize, Deserialize, Debug)] +#[serde(crate = "serde")] +pub struct TimelineBlock { + pub x: u32, + pub width: u32, + pub label: Option, +} + +#[derive(Serialize, Deserialize, Debug)] +#[serde(crate = "serde")] +pub struct TimeLineBlockLabel { + pub text: String, + pub x: u32, + pub y: u32, +} diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 6bec432..490242c 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -16,8 +16,8 @@ crate-type = ["staticlib", "cdylib", "rlib"] tauri-build = { version = "=2.0.0-beta.17", features = [] } [dependencies] -shared.workspace = true wellen.workspace = true +shared = { path = "../shared", features = ["backend"] } serde_json = "1.0" serde = { version = "1.0", features = ["derive"] } tauri = { version = "=2.0.0-beta.22", features = ["macos-private-api", "linux-ipc-protocol"] } diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index daf6974..576aaa9 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -61,6 +61,25 @@ async fn load_and_get_signal( Ok(serde_json::to_value(signal).unwrap()) } +#[tauri::command(rename_all = "snake_case")] +async fn timeline( + signal_ref_index: usize, + screen_width: u32, + store: tauri::State<'_, Store>, +) -> Result { + let signal_ref = wellen::SignalRef::from_index(signal_ref_index).unwrap(); + let mut waveform_lock = store.waveform.lock().unwrap(); + let waveform = waveform_lock.as_mut().unwrap(); + // @TODO maybe run it in a thread to not block the main one or return the result through a Tauri channel + waveform.load_signals_multi_threaded(&[signal_ref]); + let signal = waveform.get_signal(signal_ref).unwrap(); + + // @TODO create Timeline + let timeline = shared::Timeline { blocks: Vec::new() }; + + Ok(serde_json::to_value(timeline).unwrap()) +} + #[tauri::command(rename_all = "snake_case")] async fn unload_signal(signal_ref_index: usize, store: tauri::State<'_, Store>) -> Result<(), ()> { let signal_ref = wellen::SignalRef::from_index(signal_ref_index).unwrap(); @@ -87,6 +106,7 @@ pub fn run() { get_hierarchy, get_time_table, load_and_get_signal, + timeline, unload_signal, ]) .run(tauri::generate_context!()) -- 2.50.1 From aeb95b982f5a63de6a5f1bc4499fcdd25b3a87ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Kav=C3=ADk?= Date: Thu, 6 Jun 2024 22:45:20 +0200 Subject: [PATCH 03/23] signal_to_timeline --- frontend/src/platform.rs | 4 +- frontend/src/platform/browser.rs | 2 +- frontend/src/platform/tauri.rs | 6 +- frontend/src/waveform_panel.rs | 2 +- frontend/typescript/bundles/pixi_canvas.js | 2 +- frontend/typescript/bundles/tauri_glue.js | 4 +- .../typescript/pixi_canvas/pixi_canvas.ts | 3 +- frontend/typescript/tauri_glue/tauri_glue.ts | 4 +- shared/src/lib.rs | 7 +- src-tauri/src/lib.rs | 79 +++++++++++++++++-- 10 files changed, 92 insertions(+), 21 deletions(-) diff --git a/frontend/src/platform.rs b/frontend/src/platform.rs index 141dc8f..b9661dc 100644 --- a/frontend/src/platform.rs +++ b/frontend/src/platform.rs @@ -37,8 +37,8 @@ pub async fn load_and_get_signal(signal_ref: wellen::SignalRef) -> wellen::Signa platform::load_and_get_signal(signal_ref).await } -pub async fn timeline(signal_ref: wellen::SignalRef, screen_width: u32) -> shared::Timeline { - platform::timeline(signal_ref, screen_width).await +pub async fn timeline(signal_ref: wellen::SignalRef, screen_width: u32, block_height: u32) -> shared::Timeline { + platform::timeline(signal_ref, screen_width, block_height).await } pub async fn unload_signal(signal_ref: wellen::SignalRef) { diff --git a/frontend/src/platform/browser.rs b/frontend/src/platform/browser.rs index e7ef4bc..e4a3be6 100644 --- a/frontend/src/platform/browser.rs +++ b/frontend/src/platform/browser.rs @@ -91,7 +91,7 @@ pub(super) async fn load_and_get_signal(signal_ref: wellen::SignalRef) -> wellen serde_json::from_value(serde_json::to_value(signal).unwrap_throw()).unwrap_throw() } -pub(super) async fn timeline(signal_ref: wellen::SignalRef, screen_width: u32) -> shared::Timeline { +pub(super) async fn timeline(signal_ref: wellen::SignalRef, screen_width: u32, block_height: u32) -> shared::Timeline { shared::Timeline { blocks: Vec::new() } } diff --git a/frontend/src/platform/tauri.rs b/frontend/src/platform/tauri.rs index 44737a7..4058965 100644 --- a/frontend/src/platform/tauri.rs +++ b/frontend/src/platform/tauri.rs @@ -30,9 +30,9 @@ pub(super) async fn load_and_get_signal(signal_ref: wellen::SignalRef) -> wellen .unwrap_throw() } -pub(super) async fn timeline(signal_ref: wellen::SignalRef, screen_width: u32) -> shared::Timeline { +pub(super) async fn timeline(signal_ref: wellen::SignalRef, screen_width: u32, block_height: u32) -> shared::Timeline { serde_wasm_bindgen::from_value( - tauri_glue::timeline(signal_ref.index(), screen_width) + tauri_glue::timeline(signal_ref.index(), screen_width, block_height) .await .unwrap_throw(), ) @@ -67,7 +67,7 @@ mod tauri_glue { pub async fn load_and_get_signal(signal_ref_index: usize) -> Result; #[wasm_bindgen(catch)] - pub async fn timeline(signal_ref_index: usize, screen_width: u32) -> Result; + pub async fn timeline(signal_ref_index: usize, screen_width: u32, block_height: u32) -> Result; #[wasm_bindgen(catch)] pub async fn unload_signal(signal_ref_index: usize) -> Result<(), JsValue>; diff --git a/frontend/src/waveform_panel.rs b/frontend/src/waveform_panel.rs index 244cdaa..178774e 100644 --- a/frontend/src/waveform_panel.rs +++ b/frontend/src/waveform_panel.rs @@ -117,7 +117,7 @@ impl WaveformPanel { let var = hierarchy.get(var_ref); let signal_ref = var.signal_ref(); - let timeline = platform::timeline(signal_ref, controller.screen_width()).await; + let timeline = platform::timeline(signal_ref, controller.screen_width(), ROW_HEIGHT).await; // @TODO remove zoon::println!("Timeline in Rust: {timeline:#?}"); diff --git a/frontend/typescript/bundles/pixi_canvas.js b/frontend/typescript/bundles/pixi_canvas.js index 3c527bd..054527f 100644 --- a/frontend/typescript/bundles/pixi_canvas.js +++ b/frontend/typescript/bundles/pixi_canvas.js @@ -35225,7 +35225,7 @@ var VarSignalRow = class { const signal_block = new Container(); signal_block.x = timeline_block.x; this.signal_blocks_container.addChild(signal_block); - const background = new Graphics().roundRect(0, 0, timeline_block.width, this.row_height, 15).fill("SlateBlue"); + const background = new Graphics().roundRect(0, 0, timeline_block.width, timeline_block.height, 15).fill("SlateBlue"); signal_block.addChild(background); if (timeline_block.label !== void 0) { const label = new Text({ text: timeline_block.label.text, style: this.label_style }); diff --git a/frontend/typescript/bundles/tauri_glue.js b/frontend/typescript/bundles/tauri_glue.js index 0030d54..e24fb27 100644 --- a/frontend/typescript/bundles/tauri_glue.js +++ b/frontend/typescript/bundles/tauri_glue.js @@ -2526,8 +2526,8 @@ async function get_time_table() { async function load_and_get_signal(signal_ref_index) { return await invoke2("load_and_get_signal", { signal_ref_index }); } -async function timeline(signal_ref_index, screen_width) { - return await invoke2("timeline", { signal_ref_index, screen_width }); +async function timeline(signal_ref_index, screen_width, block_height) { + return await invoke2("timeline", { signal_ref_index, screen_width, block_height }); } async function unload_signal(signal_ref_index) { return await invoke2("unload_signal", { signal_ref_index }); diff --git a/frontend/typescript/pixi_canvas/pixi_canvas.ts b/frontend/typescript/pixi_canvas/pixi_canvas.ts index 6b4f783..7a60447 100644 --- a/frontend/typescript/pixi_canvas/pixi_canvas.ts +++ b/frontend/typescript/pixi_canvas/pixi_canvas.ts @@ -7,6 +7,7 @@ type Timeline = { type TimelineBlock = { x: number, width: number, + height: number, label: TimeLineBlockLabel | undefined, } type TimeLineBlockLabel = { @@ -153,7 +154,7 @@ class VarSignalRow { // background const background = new Graphics() - .roundRect(0, 0, timeline_block.width, this.row_height, 15) + .roundRect(0, 0, timeline_block.width, timeline_block.height, 15) .fill("SlateBlue"); signal_block.addChild(background); diff --git a/frontend/typescript/tauri_glue/tauri_glue.ts b/frontend/typescript/tauri_glue/tauri_glue.ts index 0f20e04..8f007dd 100644 --- a/frontend/typescript/tauri_glue/tauri_glue.ts +++ b/frontend/typescript/tauri_glue/tauri_glue.ts @@ -30,8 +30,8 @@ export async function load_and_get_signal(signal_ref_index: number): Promise { - return await invoke("timeline", { signal_ref_index, screen_width }); +export async function timeline(signal_ref_index: number, screen_width: number, block_height: number): Promise { + return await invoke("timeline", { signal_ref_index, screen_width, block_height }); } export async function unload_signal(signal_ref_index: number): Promise { diff --git a/shared/src/lib.rs b/shared/src/lib.rs index 674cdfa..90d80e6 100644 --- a/shared/src/lib.rs +++ b/shared/src/lib.rs @@ -2,21 +2,22 @@ use moonlight::*; pub mod wellen_helpers; -#[derive(Serialize, Deserialize, Debug)] +#[derive(Serialize, Deserialize, Debug, Default)] #[serde(crate = "serde")] pub struct Timeline { pub blocks: Vec } -#[derive(Serialize, Deserialize, Debug)] +#[derive(Serialize, Deserialize, Debug, Default)] #[serde(crate = "serde")] pub struct TimelineBlock { pub x: u32, pub width: u32, + pub height: u32, pub label: Option, } -#[derive(Serialize, Deserialize, Debug)] +#[derive(Serialize, Deserialize, Debug, Default)] #[serde(crate = "serde")] pub struct TimeLineBlockLabel { pub text: String, diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 576aaa9..9d92c72 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -65,18 +65,17 @@ async fn load_and_get_signal( async fn timeline( signal_ref_index: usize, screen_width: u32, + block_height: u32, store: tauri::State<'_, Store>, ) -> Result { + // @TODO run (all?) in a blocking thread let signal_ref = wellen::SignalRef::from_index(signal_ref_index).unwrap(); let mut waveform_lock = store.waveform.lock().unwrap(); let waveform = waveform_lock.as_mut().unwrap(); - // @TODO maybe run it in a thread to not block the main one or return the result through a Tauri channel waveform.load_signals_multi_threaded(&[signal_ref]); let signal = waveform.get_signal(signal_ref).unwrap(); - - // @TODO create Timeline - let timeline = shared::Timeline { blocks: Vec::new() }; - + let time_table = waveform.time_table(); + let timeline = signal_to_timeline(signal, time_table, screen_width, block_height); Ok(serde_json::to_value(timeline).unwrap()) } @@ -112,3 +111,73 @@ pub fn run() { .run(tauri::generate_context!()) .expect("error while running tauri application"); } + +fn signal_to_timeline( + signal: &wellen::Signal, + time_table: &[wellen::Time], + screen_width: u32, + block_height: u32, +) -> shared::Timeline { + const MIN_BLOCK_WIDTH: u32 = 3; + const LETTER_WIDTH: u32 = 15; + const LETTER_HEIGHT: u32 = 21; + const LABEL_X_PADDING: u32 = 10; + + let Some(last_time) = time_table.last().copied() else { + return shared::Timeline::default() + }; + + let last_time = last_time as f64; + let screen_width = screen_width as f64; + + let mut x_value_pairs = signal + .iter_changes() + .map(|(index, value)| { + let index = index as usize; + let time = time_table[index] as f64; + let x = time / last_time * screen_width; + (x, value) + }) + .peekable(); + + let mut blocks = Vec::new(); + + while let Some((block_x, value)) = x_value_pairs.next() { + let next_block_x = if let Some((next_block_x, _)) = x_value_pairs.peek() { + *next_block_x + } else { + screen_width + }; + + let block_width = (next_block_x - block_x) as u32; + if block_width < MIN_BLOCK_WIDTH { + continue; + } + + let value = value.to_string(); + // @TODO dynamic formatter + let value = u32::from_str_radix(&value, 2).unwrap(); + let value = format!("{value:x}"); + + let value_width = value.chars().count() as u32 * LETTER_WIDTH; + let label = if (value_width + (2 * LABEL_X_PADDING)) <= block_width { + Some(shared::TimeLineBlockLabel { + text: value, + x: (block_width - value_width) / 2, + y: (block_height - LETTER_HEIGHT) / 2, + }) + } else { + None + }; + + let block = shared::TimelineBlock { + x: block_x as u32, + width: block_width, + height: block_height, + label, + }; + blocks.push(block); + } + + shared::Timeline { blocks } +} -- 2.50.1 From d3cc0eb8603f117a76cd6eb497c6cd287e1008b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Kav=C3=ADk?= Date: Fri, 7 Jun 2024 00:45:05 +0200 Subject: [PATCH 04/23] remove `load_and_get_signal`, rename `timeline` to `load_signal_and_get_timeline` --- frontend/src/platform.rs | 8 ++------ frontend/src/platform/browser.rs | 13 ++----------- frontend/src/platform/tauri.rs | 18 +++--------------- frontend/src/waveform_panel.rs | 3 +-- frontend/typescript/bundles/tauri_glue.js | 10 +++------- frontend/typescript/tauri_glue/tauri_glue.ts | 8 ++------ src-tauri/src/lib.rs | 20 ++------------------ 7 files changed, 15 insertions(+), 65 deletions(-) diff --git a/frontend/src/platform.rs b/frontend/src/platform.rs index b9661dc..fed02b2 100644 --- a/frontend/src/platform.rs +++ b/frontend/src/platform.rs @@ -33,12 +33,8 @@ pub async fn get_time_table() -> wellen::TimeTable { platform::get_time_table().await } -pub async fn load_and_get_signal(signal_ref: wellen::SignalRef) -> wellen::Signal { - platform::load_and_get_signal(signal_ref).await -} - -pub async fn timeline(signal_ref: wellen::SignalRef, screen_width: u32, block_height: u32) -> shared::Timeline { - platform::timeline(signal_ref, screen_width, block_height).await +pub async fn load_signal_and_get_timeline(signal_ref: wellen::SignalRef, screen_width: u32, block_height: u32) -> shared::Timeline { + platform::load_signal_and_get_timeline(signal_ref, screen_width, block_height).await } pub async fn unload_signal(signal_ref: wellen::SignalRef) { diff --git a/frontend/src/platform/browser.rs b/frontend/src/platform/browser.rs index e4a3be6..ad9844f 100644 --- a/frontend/src/platform/browser.rs +++ b/frontend/src/platform/browser.rs @@ -81,17 +81,8 @@ pub(super) async fn get_time_table() -> wellen::TimeTable { serde_json::from_value(serde_json::to_value(time_table).unwrap_throw()).unwrap_throw() } -pub(super) async fn load_and_get_signal(signal_ref: wellen::SignalRef) -> wellen::Signal { - let mut waveform_lock = STORE.waveform.lock().unwrap_throw(); - let waveform = waveform_lock.as_mut().unwrap_throw(); - // @TODO maybe run it in a thread to not block the main one and then - waveform.load_signals(&[signal_ref]); - let signal = waveform.get_signal(signal_ref).unwrap_throw(); - // @TODO `clone` / `Rc/Arc` / refactor? - serde_json::from_value(serde_json::to_value(signal).unwrap_throw()).unwrap_throw() -} - -pub(super) async fn timeline(signal_ref: wellen::SignalRef, screen_width: u32, block_height: u32) -> shared::Timeline { +pub(super) async fn load_signal_and_get_timeline(signal_ref: wellen::SignalRef, screen_width: u32, block_height: u32) -> shared::Timeline { + // @TODO implement, copy from tauri platform shared::Timeline { blocks: Vec::new() } } diff --git a/frontend/src/platform/tauri.rs b/frontend/src/platform/tauri.rs index 4058965..eef69e6 100644 --- a/frontend/src/platform/tauri.rs +++ b/frontend/src/platform/tauri.rs @@ -21,18 +21,9 @@ pub(super) async fn get_time_table() -> wellen::TimeTable { serde_wasm_bindgen::from_value(tauri_glue::get_time_table().await.unwrap_throw()).unwrap_throw() } -pub(super) async fn load_and_get_signal(signal_ref: wellen::SignalRef) -> wellen::Signal { +pub(super) async fn load_signal_and_get_timeline(signal_ref: wellen::SignalRef, screen_width: u32, block_height: u32) -> shared::Timeline { serde_wasm_bindgen::from_value( - tauri_glue::load_and_get_signal(signal_ref.index()) - .await - .unwrap_throw(), - ) - .unwrap_throw() -} - -pub(super) async fn timeline(signal_ref: wellen::SignalRef, screen_width: u32, block_height: u32) -> shared::Timeline { - serde_wasm_bindgen::from_value( - tauri_glue::timeline(signal_ref.index(), screen_width, block_height) + tauri_glue::load_signal_and_get_timeline(signal_ref.index(), screen_width, block_height) .await .unwrap_throw(), ) @@ -64,10 +55,7 @@ mod tauri_glue { pub async fn get_time_table() -> Result; #[wasm_bindgen(catch)] - pub async fn load_and_get_signal(signal_ref_index: usize) -> Result; - - #[wasm_bindgen(catch)] - pub async fn timeline(signal_ref_index: usize, screen_width: u32, block_height: u32) -> Result; + pub async fn load_signal_and_get_timeline(signal_ref_index: usize, screen_width: u32, block_height: u32) -> Result; #[wasm_bindgen(catch)] pub async fn unload_signal(signal_ref_index: usize) -> Result<(), JsValue>; diff --git a/frontend/src/waveform_panel.rs b/frontend/src/waveform_panel.rs index 178774e..f066a88 100644 --- a/frontend/src/waveform_panel.rs +++ b/frontend/src/waveform_panel.rs @@ -113,11 +113,10 @@ impl WaveformPanel { eprintln!("timetable is empty"); return; } - let last_time = time_table.last().copied().unwrap_throw(); let var = hierarchy.get(var_ref); let signal_ref = var.signal_ref(); - let timeline = platform::timeline(signal_ref, controller.screen_width(), ROW_HEIGHT).await; + let timeline = platform::load_signal_and_get_timeline(signal_ref, controller.screen_width(), ROW_HEIGHT).await; // @TODO remove zoon::println!("Timeline in Rust: {timeline:#?}"); diff --git a/frontend/typescript/bundles/tauri_glue.js b/frontend/typescript/bundles/tauri_glue.js index e24fb27..883f8ce 100644 --- a/frontend/typescript/bundles/tauri_glue.js +++ b/frontend/typescript/bundles/tauri_glue.js @@ -2523,11 +2523,8 @@ async function get_hierarchy() { async function get_time_table() { return await invoke2("get_time_table"); } -async function load_and_get_signal(signal_ref_index) { - return await invoke2("load_and_get_signal", { signal_ref_index }); -} -async function timeline(signal_ref_index, screen_width, block_height) { - return await invoke2("timeline", { signal_ref_index, screen_width, block_height }); +async function load_signal_and_get_timeline(signal_ref_index, screen_width, block_height) { + return await invoke2("load_signal_and_get_timeline", { signal_ref_index, screen_width, block_height }); } async function unload_signal(signal_ref_index) { return await invoke2("unload_signal", { signal_ref_index }); @@ -2535,9 +2532,8 @@ async function unload_signal(signal_ref_index) { export { get_hierarchy, get_time_table, - load_and_get_signal, + load_signal_and_get_timeline, pick_and_load_waveform, show_window, - timeline, unload_signal }; diff --git a/frontend/typescript/tauri_glue/tauri_glue.ts b/frontend/typescript/tauri_glue/tauri_glue.ts index 8f007dd..0476113 100644 --- a/frontend/typescript/tauri_glue/tauri_glue.ts +++ b/frontend/typescript/tauri_glue/tauri_glue.ts @@ -26,12 +26,8 @@ export async function get_time_table(): Promise { return await invoke("get_time_table"); } -export async function load_and_get_signal(signal_ref_index: number): Promise { - return await invoke("load_and_get_signal", { signal_ref_index }); -} - -export async function timeline(signal_ref_index: number, screen_width: number, block_height: number): Promise { - return await invoke("timeline", { signal_ref_index, screen_width, block_height }); +export async function load_signal_and_get_timeline(signal_ref_index: number, screen_width: number, block_height: number): Promise { + return await invoke("load_signal_and_get_timeline", { signal_ref_index, screen_width, block_height }); } export async function unload_signal(signal_ref_index: number): Promise { diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 9d92c72..0e4da34 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -47,22 +47,7 @@ async fn get_time_table(store: tauri::State<'_, Store>) -> Result, -) -> Result { - let signal_ref = wellen::SignalRef::from_index(signal_ref_index).unwrap(); - let mut waveform_lock = store.waveform.lock().unwrap(); - let waveform = waveform_lock.as_mut().unwrap(); - // @TODO maybe run it in a thread to not block the main one and then - // make the command async or return the result through a Tauri channel - waveform.load_signals_multi_threaded(&[signal_ref]); - let signal = waveform.get_signal(signal_ref).unwrap(); - Ok(serde_json::to_value(signal).unwrap()) -} - -#[tauri::command(rename_all = "snake_case")] -async fn timeline( +async fn load_signal_and_get_timeline( signal_ref_index: usize, screen_width: u32, block_height: u32, @@ -104,8 +89,7 @@ pub fn run() { pick_and_load_waveform, get_hierarchy, get_time_table, - load_and_get_signal, - timeline, + load_signal_and_get_timeline, unload_signal, ]) .run(tauri::generate_context!()) -- 2.50.1 From 29560ae616080a249cd5055e913706c3cb2e9047 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Kav=C3=ADk?= Date: Fri, 7 Jun 2024 01:41:10 +0200 Subject: [PATCH 05/23] canvas redesign --- frontend/src/waveform_panel.rs | 9 +------- frontend/typescript/bundles/pixi_canvas.js | 17 +++++++++++--- .../typescript/pixi_canvas/pixi_canvas.ts | 22 ++++++++++++++----- 3 files changed, 32 insertions(+), 16 deletions(-) diff --git a/frontend/src/waveform_panel.rs b/frontend/src/waveform_panel.rs index f066a88..9a9cc43 100644 --- a/frontend/src/waveform_panel.rs +++ b/frontend/src/waveform_panel.rs @@ -26,6 +26,7 @@ impl WaveformPanel { .root() } + // @TODO autoscroll down fn root(&self) -> impl Element { let selected_vars_panel_height_getter: Mutable = <_>::default(); Row::new() @@ -56,7 +57,6 @@ impl WaveformPanel { .s(Align::new().top()) .s(Width::fill()) .s(Height::exact_signal(selected_vars_panel_height.signal())) - .s(RoundedCorners::new().right(15)) .task_with_controller(move |controller| { selected_var_refs.signal_vec().delay_remove(clone!((hierarchy_and_time_table) move |var_ref| { clone!((var_ref, hierarchy_and_time_table) async move { @@ -118,17 +118,10 @@ impl WaveformPanel { let signal_ref = var.signal_ref(); let timeline = platform::load_signal_and_get_timeline(signal_ref, controller.screen_width(), ROW_HEIGHT).await; - // @TODO remove - zoon::println!("Timeline in Rust: {timeline:#?}"); - let timescale = hierarchy.timescale(); // @TODO remove zoon::println!("{timescale:?}"); - if timeline.blocks.is_empty() { - eprintln!("timeline is empty"); - return; - } // Note: Sync `timeline`'s type with the `Timeline` in `frontend/typescript/pixi_canvas/pixi_canvas.ts' controller.push_var(serde_wasm_bindgen::to_value(&timeline).unwrap_throw()); } diff --git a/frontend/typescript/bundles/pixi_canvas.js b/frontend/typescript/bundles/pixi_canvas.js index 054527f..8a5fedf 100644 --- a/frontend/typescript/bundles/pixi_canvas.js +++ b/frontend/typescript/bundles/pixi_canvas.js @@ -35117,9 +35117,11 @@ var Text = class extends AbstractText { }; // node_modules/pixi.js/lib/index.mjs +init_Texture(); init_textureFrom(); init_Container(); init_Graphics(); +init_Sprite(); init_TextStyle(); init_eventemitter3(); var import_earcut2 = __toESM(require_earcut(), 1); @@ -35169,7 +35171,6 @@ var PixiController = class { } } push_var(timeline) { - console.log("Timline in Typescript:", timeline); new VarSignalRow( timeline, this.app, @@ -35197,6 +35198,7 @@ var VarSignalRow = class { row_height_with_gap; renderer_resize_callback = () => this.draw(); row_container = new Container(); + row_container_background; signal_blocks_container = new Container(); label_style = new TextStyle({ align: "center", @@ -35216,19 +35218,28 @@ var VarSignalRow = class { this.rows_container = rows_container; this.row_container.y = this.index_in_owner * this.row_height_with_gap; this.rows_container.addChild(this.row_container); + this.row_container_background = new Sprite(); + this.row_container_background.texture = Texture.WHITE; + this.row_container_background.tint = "0x550099"; + this.row_container_background.height = this.row_height; + this.row_container.addChild(this.row_container_background); this.row_container.addChild(this.signal_blocks_container); this.draw(); } draw() { + this.row_container_background.width = this.app.screen.width; this.signal_blocks_container.removeChildren(); this.timeline.blocks.forEach((timeline_block) => { const signal_block = new Container(); signal_block.x = timeline_block.x; this.signal_blocks_container.addChild(signal_block); - const background = new Graphics().roundRect(0, 0, timeline_block.width, timeline_block.height, 15).fill("SlateBlue"); + const gap_between_blocks = 2; + const background = new Graphics().rect(gap_between_blocks / 2, 0, timeline_block.width - gap_between_blocks, timeline_block.height).fill("SlateBlue"); signal_block.addChild(background); if (timeline_block.label !== void 0) { - const label = new Text({ text: timeline_block.label.text, style: this.label_style }); + const label = new Text(); + label.text = timeline_block.label.text; + label.style = this.label_style; label.x = timeline_block.label.x; label.y = timeline_block.label.y; signal_block.addChild(label); diff --git a/frontend/typescript/pixi_canvas/pixi_canvas.ts b/frontend/typescript/pixi_canvas/pixi_canvas.ts index 7a60447..a6eb0f4 100644 --- a/frontend/typescript/pixi_canvas/pixi_canvas.ts +++ b/frontend/typescript/pixi_canvas/pixi_canvas.ts @@ -1,4 +1,4 @@ -import { Application, Text, Graphics, Container, TextStyle, ContainerChild } from "pixi.js"; +import { Application, Text, Graphics, Container, TextStyle, Sprite, Texture } from "pixi.js"; // @TODO sync with Rust and `tauri_glue.ts` type Timeline = { @@ -68,7 +68,6 @@ export class PixiController { } push_var(timeline: Timeline) { - console.log("Timline in Typescript:", timeline); new VarSignalRow( timeline, this.app, @@ -99,6 +98,7 @@ class VarSignalRow { row_height_with_gap: number; renderer_resize_callback = () => this.draw(); row_container = new Container(); + row_container_background: Sprite; signal_blocks_container = new Container(); label_style = new TextStyle({ align: "center", @@ -133,6 +133,13 @@ class VarSignalRow { this.row_container.y = this.index_in_owner * this.row_height_with_gap; this.rows_container.addChild(this.row_container); + // row background + this.row_container_background = new Sprite(); + this.row_container_background.texture = Texture.WHITE; + this.row_container_background.tint = '0x550099'; + this.row_container_background.height = this.row_height; + this.row_container.addChild(this.row_container_background); + // signal_blocks_container this.row_container.addChild(this.signal_blocks_container); @@ -145,6 +152,8 @@ class VarSignalRow { } draw() { + this.row_container_background.width = this.app.screen.width; + this.signal_blocks_container.removeChildren(); this.timeline.blocks.forEach(timeline_block => { // signal_block @@ -153,14 +162,17 @@ class VarSignalRow { this.signal_blocks_container.addChild(signal_block); // background + const gap_between_blocks = 2; const background = new Graphics() - .roundRect(0, 0, timeline_block.width, timeline_block.height, 15) - .fill("SlateBlue"); + .rect(gap_between_blocks / 2, 0, timeline_block.width - gap_between_blocks, timeline_block.height) + .fill('SlateBlue'); signal_block.addChild(background); // label if (timeline_block.label !== undefined) { - const label = new Text({ text: timeline_block.label.text, style: this.label_style }); + const label = new Text(); + label.text = timeline_block.label.text; + label.style = this.label_style; label.x = timeline_block.label.x; label.y = timeline_block.label.y; signal_block.addChild(label); -- 2.50.1 From 26565dd684367a638c9d26691ea12193f4717094 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Kav=C3=ADk?= Date: Fri, 7 Jun 2024 01:44:09 +0200 Subject: [PATCH 06/23] fmt --- frontend/src/controls_panel.rs | 1 + frontend/src/platform.rs | 6 +++++- frontend/src/platform/browser.rs | 6 +++++- frontend/src/platform/tauri.rs | 12 ++++++++++-- frontend/src/waveform_panel.rs | 7 ++++++- shared/src/lib.rs | 2 +- src-tauri/src/lib.rs | 8 ++++---- 7 files changed, 32 insertions(+), 10 deletions(-) diff --git a/frontend/src/controls_panel.rs b/frontend/src/controls_panel.rs index b92e0e1..490526f 100644 --- a/frontend/src/controls_panel.rs +++ b/frontend/src/controls_panel.rs @@ -563,6 +563,7 @@ impl ControlsPanel { }); // Lazy loading to not freeze the main thread + // @TODO replace with grouping and/or virtual scroll (https://dev.to/adamklein/build-your-own-virtual-scroll-part-i-11ib) const CHUNK_SIZE: usize = 50; let mut chunked_vars_for_ui: Vec> = <_>::default(); let mut chunk = Vec::with_capacity(CHUNK_SIZE); diff --git a/frontend/src/platform.rs b/frontend/src/platform.rs index fed02b2..8a83384 100644 --- a/frontend/src/platform.rs +++ b/frontend/src/platform.rs @@ -33,7 +33,11 @@ pub async fn get_time_table() -> wellen::TimeTable { platform::get_time_table().await } -pub async fn load_signal_and_get_timeline(signal_ref: wellen::SignalRef, screen_width: u32, block_height: u32) -> shared::Timeline { +pub async fn load_signal_and_get_timeline( + signal_ref: wellen::SignalRef, + screen_width: u32, + block_height: u32, +) -> shared::Timeline { platform::load_signal_and_get_timeline(signal_ref, screen_width, block_height).await } diff --git a/frontend/src/platform/browser.rs b/frontend/src/platform/browser.rs index ad9844f..2957a41 100644 --- a/frontend/src/platform/browser.rs +++ b/frontend/src/platform/browser.rs @@ -81,7 +81,11 @@ pub(super) async fn get_time_table() -> wellen::TimeTable { serde_json::from_value(serde_json::to_value(time_table).unwrap_throw()).unwrap_throw() } -pub(super) async fn load_signal_and_get_timeline(signal_ref: wellen::SignalRef, screen_width: u32, block_height: u32) -> shared::Timeline { +pub(super) async fn load_signal_and_get_timeline( + signal_ref: wellen::SignalRef, + screen_width: u32, + block_height: u32, +) -> shared::Timeline { // @TODO implement, copy from tauri platform shared::Timeline { blocks: Vec::new() } } diff --git a/frontend/src/platform/tauri.rs b/frontend/src/platform/tauri.rs index eef69e6..549626f 100644 --- a/frontend/src/platform/tauri.rs +++ b/frontend/src/platform/tauri.rs @@ -21,7 +21,11 @@ pub(super) async fn get_time_table() -> wellen::TimeTable { serde_wasm_bindgen::from_value(tauri_glue::get_time_table().await.unwrap_throw()).unwrap_throw() } -pub(super) async fn load_signal_and_get_timeline(signal_ref: wellen::SignalRef, screen_width: u32, block_height: u32) -> shared::Timeline { +pub(super) async fn load_signal_and_get_timeline( + signal_ref: wellen::SignalRef, + screen_width: u32, + block_height: u32, +) -> shared::Timeline { serde_wasm_bindgen::from_value( tauri_glue::load_signal_and_get_timeline(signal_ref.index(), screen_width, block_height) .await @@ -55,7 +59,11 @@ mod tauri_glue { pub async fn get_time_table() -> Result; #[wasm_bindgen(catch)] - pub async fn load_signal_and_get_timeline(signal_ref_index: usize, screen_width: u32, block_height: u32) -> Result; + pub async fn load_signal_and_get_timeline( + signal_ref_index: usize, + screen_width: u32, + block_height: u32, + ) -> Result; #[wasm_bindgen(catch)] pub async fn unload_signal(signal_ref_index: usize) -> Result<(), JsValue>; diff --git a/frontend/src/waveform_panel.rs b/frontend/src/waveform_panel.rs index 9a9cc43..b32062e 100644 --- a/frontend/src/waveform_panel.rs +++ b/frontend/src/waveform_panel.rs @@ -116,7 +116,12 @@ impl WaveformPanel { let var = hierarchy.get(var_ref); let signal_ref = var.signal_ref(); - let timeline = platform::load_signal_and_get_timeline(signal_ref, controller.screen_width(), ROW_HEIGHT).await; + let timeline = platform::load_signal_and_get_timeline( + signal_ref, + controller.screen_width(), + ROW_HEIGHT, + ) + .await; let timescale = hierarchy.timescale(); // @TODO remove diff --git a/shared/src/lib.rs b/shared/src/lib.rs index 90d80e6..d6abfe6 100644 --- a/shared/src/lib.rs +++ b/shared/src/lib.rs @@ -5,7 +5,7 @@ pub mod wellen_helpers; #[derive(Serialize, Deserialize, Debug, Default)] #[serde(crate = "serde")] pub struct Timeline { - pub blocks: Vec + pub blocks: Vec, } #[derive(Serialize, Deserialize, Debug, Default)] diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 0e4da34..70b9de9 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -97,7 +97,7 @@ pub fn run() { } fn signal_to_timeline( - signal: &wellen::Signal, + signal: &wellen::Signal, time_table: &[wellen::Time], screen_width: u32, block_height: u32, @@ -108,7 +108,7 @@ fn signal_to_timeline( const LABEL_X_PADDING: u32 = 10; let Some(last_time) = time_table.last().copied() else { - return shared::Timeline::default() + return shared::Timeline::default(); }; let last_time = last_time as f64; @@ -136,7 +136,7 @@ fn signal_to_timeline( let block_width = (next_block_x - block_x) as u32; if block_width < MIN_BLOCK_WIDTH { continue; - } + } let value = value.to_string(); // @TODO dynamic formatter @@ -158,7 +158,7 @@ fn signal_to_timeline( x: block_x as u32, width: block_width, height: block_height, - label, + label, }; blocks.push(block); } -- 2.50.1 From 8ded9a11f68bf06fa25fa77d121523b3b0f21bd0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Kav=C3=ADk?= Date: Fri, 7 Jun 2024 18:49:39 +0200 Subject: [PATCH 07/23] redraw rows --- frontend/src/waveform_panel/pixi_canvas.rs | 10 +++--- frontend/typescript/bundles/pixi_canvas.js | 23 +++++++++++--- .../typescript/pixi_canvas/pixi_canvas.ts | 31 +++++++++++++------ 3 files changed, 44 insertions(+), 20 deletions(-) diff --git a/frontend/src/waveform_panel/pixi_canvas.rs b/frontend/src/waveform_panel/pixi_canvas.rs index 218f6a3..066e8dd 100644 --- a/frontend/src/waveform_panel/pixi_canvas.rs +++ b/frontend/src/waveform_panel/pixi_canvas.rs @@ -35,12 +35,12 @@ impl PixiCanvas { let height = Mutable::new(0); let resize_task = Task::start_droppable( map_ref! { - let _ = width.signal(), - let _ = height.signal() => () + let width = width.signal(), + let height = height.signal() => (*width, *height) } - .for_each_sync(clone!((controller) move |_| { + .for_each_sync(clone!((controller) move |(width, height)| { if let Some(controller) = controller.lock_ref().as_ref() { - controller.queue_resize(); + controller.resize(width, height); } })), ); @@ -101,7 +101,7 @@ mod js_bridge { pub async fn init(this: &PixiController, parent_element: &JsValue); #[wasm_bindgen(method)] - pub fn queue_resize(this: &PixiController); + pub fn resize(this: &PixiController, width: u32, height: u32); #[wasm_bindgen(method)] pub fn destroy(this: &PixiController); diff --git a/frontend/typescript/bundles/pixi_canvas.js b/frontend/typescript/bundles/pixi_canvas.js index 8a5fedf..3c5a9ad 100644 --- a/frontend/typescript/bundles/pixi_canvas.js +++ b/frontend/typescript/bundles/pixi_canvas.js @@ -35135,19 +35135,27 @@ var PixiController = class { var_signal_rows_container = new Container(); row_height; row_gap; + previous_parent_width; constructor(row_height, row_gap) { this.app = new Application(); this.row_height = row_height; this.row_gap = row_gap; this.app.stage.addChild(this.var_signal_rows_container); + this.previous_parent_width = null; } async init(parent_element) { await this.app.init({ background: "DarkSlateBlue", antialias: true, resizeTo: parent_element }); parent_element.appendChild(this.app.canvas); } - // Default automatic Pixi resizing is not reliable - queue_resize() { - this.app.queueResize(); + // Default automatic Pixi resizing according to the parent is not reliable + // and the `app.renderer`'s `resize` event is fired on every browser window size change + resize(width, height) { + this.app.resize(); + const width_changed = width !== this.previous_parent_width; + this.previous_parent_width = width; + if (width_changed) { + this.redraw_rows(); + } } destroy() { const rendererDestroyOptions = { @@ -35165,6 +35173,9 @@ var PixiController = class { return this.app.screen.width; } // -- FastWave-specific -- + redraw_rows() { + this.var_signal_rows.forEach((row) => row.draw()); + } remove_var(index) { if (typeof this.var_signal_rows[index] !== "undefined") { this.var_signal_rows[index].destroy(); @@ -35196,7 +35207,6 @@ var VarSignalRow = class { row_height; row_gap; row_height_with_gap; - renderer_resize_callback = () => this.draw(); row_container = new Container(); row_container_background; signal_blocks_container = new Container(); @@ -35226,6 +35236,10 @@ var VarSignalRow = class { this.row_container.addChild(this.signal_blocks_container); this.draw(); } + redraw(timeline) { + this.timeline = timeline; + this.draw(); + } draw() { this.row_container_background.width = this.app.screen.width; this.signal_blocks_container.removeChildren(); @@ -35251,7 +35265,6 @@ var VarSignalRow = class { this.row_container.y -= this.row_height_with_gap; } destroy() { - this.app.renderer.off("resize", this.renderer_resize_callback); this.owner.splice(this.index_in_owner, 1); this.rows_container.removeChildAt(this.index_in_owner); this.row_container.destroy(true); diff --git a/frontend/typescript/pixi_canvas/pixi_canvas.ts b/frontend/typescript/pixi_canvas/pixi_canvas.ts index a6eb0f4..c8661bf 100644 --- a/frontend/typescript/pixi_canvas/pixi_canvas.ts +++ b/frontend/typescript/pixi_canvas/pixi_canvas.ts @@ -23,6 +23,7 @@ export class PixiController { var_signal_rows_container = new Container(); row_height: number; row_gap: number; + previous_parent_width: number | null; constructor(row_height: number, row_gap: number) { this.app = new Application(); @@ -30,6 +31,7 @@ export class PixiController { this.row_height = row_height; this.row_gap = row_gap; this.app.stage.addChild(this.var_signal_rows_container); + this.previous_parent_width = null; } async init(parent_element: HTMLElement) { @@ -37,9 +39,16 @@ export class PixiController { parent_element.appendChild(this.app.canvas); } - // Default automatic Pixi resizing is not reliable - queue_resize() { - this.app.queueResize(); + // Default automatic Pixi resizing according to the parent is not reliable + // and the `app.renderer`'s `resize` event is fired on every browser window size change + resize(width: number, height: number) { + this.app.resize(); + // -- FastWave-specific -- + const width_changed = width !== this.previous_parent_width; + this.previous_parent_width = width; + if (width_changed) { + this.redraw_rows(); + } } destroy() { @@ -61,6 +70,10 @@ export class PixiController { // -- FastWave-specific -- + redraw_rows() { + this.var_signal_rows.forEach(row => row.draw()); + } + remove_var(index: number) { if (typeof this.var_signal_rows[index] !== 'undefined') { this.var_signal_rows[index].destroy(); @@ -96,7 +109,6 @@ class VarSignalRow { row_height: number; row_gap: number; row_height_with_gap: number; - renderer_resize_callback = () => this.draw(); row_container = new Container(); row_container_background: Sprite; signal_blocks_container = new Container(); @@ -144,11 +156,11 @@ class VarSignalRow { this.row_container.addChild(this.signal_blocks_container); this.draw(); - // this.app.renderer.on("resize", (width, height) => { - // // @TODO only on `width` change - // // @TODO inline `renderer_resize_callback`? - // this.draw(); - // }); + } + + redraw(timeline: Timeline) { + this.timeline = timeline; + this.draw(); } draw() { @@ -186,7 +198,6 @@ class VarSignalRow { } destroy() { - this.app.renderer.off("resize", this.renderer_resize_callback); this.owner.splice(this.index_in_owner, 1); this.rows_container.removeChildAt(this.index_in_owner); this.row_container.destroy(true); -- 2.50.1 From 8e285c7b5ecc9835c0fd708a41256085fb486ede Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Kav=C3=ADk?= Date: Fri, 7 Jun 2024 22:20:49 +0200 Subject: [PATCH 08/23] timeline_getter --- ...video_desktop.gif => video_simple_vcd.gif} | Bin frontend/src/controls_panel.rs | 1 - frontend/src/waveform_panel.rs | 10 +++---- frontend/src/waveform_panel/pixi_canvas.rs | 27 ++++++++++++++--- frontend/typescript/bundles/pixi_canvas.js | 23 ++++++++++---- .../typescript/pixi_canvas/pixi_canvas.ts | 28 ++++++++++++++---- 6 files changed, 66 insertions(+), 23 deletions(-) rename docs/{video_desktop.gif => video_simple_vcd.gif} (100%) diff --git a/docs/video_desktop.gif b/docs/video_simple_vcd.gif similarity index 100% rename from docs/video_desktop.gif rename to docs/video_simple_vcd.gif diff --git a/frontend/src/controls_panel.rs b/frontend/src/controls_panel.rs index 490526f..ebfd4e5 100644 --- a/frontend/src/controls_panel.rs +++ b/frontend/src/controls_panel.rs @@ -99,7 +99,6 @@ impl ControlsPanel { Layout::Columns => Height::fill().max(MILLER_COLUMN_MAX_HEIGHT), }, ))) - .s(Scrollbars::both()) .s(Padding::all(20)) .s(Gap::new().y(40)) .s(Align::new().top()) diff --git a/frontend/src/waveform_panel.rs b/frontend/src/waveform_panel.rs index b32062e..5ba42a7 100644 --- a/frontend/src/waveform_panel.rs +++ b/frontend/src/waveform_panel.rs @@ -1,6 +1,6 @@ use crate::{platform, HierarchyAndTimeTable}; use wellen::GetItem; -use zoon::{eprintln, *}; +use zoon::*; mod pixi_canvas; use pixi_canvas::{PixiCanvas, PixiController}; @@ -109,10 +109,6 @@ impl WaveformPanel { var_ref: wellen::VarRef, ) { let (hierarchy, time_table) = hierarchy_and_time_table.get_cloned().unwrap(); - if time_table.is_empty() { - eprintln!("timetable is empty"); - return; - } let var = hierarchy.get(var_ref); let signal_ref = var.signal_ref(); @@ -128,7 +124,9 @@ impl WaveformPanel { zoon::println!("{timescale:?}"); // Note: Sync `timeline`'s type with the `Timeline` in `frontend/typescript/pixi_canvas/pixi_canvas.ts' - controller.push_var(serde_wasm_bindgen::to_value(&timeline).unwrap_throw()); + let timeline = serde_wasm_bindgen::to_value(&timeline).unwrap_throw(); + let signal_ref_index = signal_ref.index(); + controller.push_var(signal_ref_index, timeline); } fn selected_var_panel( diff --git a/frontend/src/waveform_panel/pixi_canvas.rs b/frontend/src/waveform_panel/pixi_canvas.rs index 066e8dd..2ac3dcf 100644 --- a/frontend/src/waveform_panel/pixi_canvas.rs +++ b/frontend/src/waveform_panel/pixi_canvas.rs @@ -1,5 +1,7 @@ pub use js_bridge::PixiController; use zoon::*; +use std::rc::Rc; +use crate::platform; pub struct PixiCanvas { raw_el: RawHtmlEl, @@ -45,6 +47,16 @@ impl PixiCanvas { })), ); let task_with_controller = Mutable::new(None); + // -- FastWave-specific -- + let timeline_getter = Rc::new(Closure::new(|signal_ref_index, screen_width, row_height| { + future_to_promise(async move { + let signal_ref = wellen::SignalRef::from_index(signal_ref_index).unwrap_throw(); + let timeline = platform::load_signal_and_get_timeline(signal_ref, screen_width, row_height).await; + let timeline = serde_wasm_bindgen::to_value(&timeline).unwrap_throw(); + Ok(timeline) + }) + })); + // -- // -- Self { controller: controller.read_only(), width: width.read_only(), @@ -56,14 +68,15 @@ impl PixiCanvas { width.set_neq(new_width); height.set_neq(new_height); })) - .after_insert(clone!((controller) move |element| { + .after_insert(clone!((controller, timeline_getter) move |element| { Task::start(async move { - let pixi_controller = js_bridge::PixiController::new(row_height, row_gap); + let pixi_controller = js_bridge::PixiController::new(row_height, row_gap, &timeline_getter); pixi_controller.init(&element).await; controller.set(Some(pixi_controller)); }); })) .after_remove(move |_| { + drop(timeline_getter); drop(resize_task); drop(task_with_controller); if let Some(controller) = controller.take() { @@ -87,6 +100,12 @@ impl PixiCanvas { mod js_bridge { use zoon::*; + type TimelinePromise = js_sys::Promise; + type SignalRefIndex = usize; + type ScreenWidth = u32; + type RowHeight = u32; + type TimelineGetter = Closure TimelinePromise>; + // Note: Add all corresponding methods to `frontend/typescript/pixi_canvas/pixi_canvas.ts` #[wasm_bindgen(module = "/typescript/bundles/pixi_canvas.js")] extern "C" { @@ -95,7 +114,7 @@ mod js_bridge { // @TODO `row_height` and `row_gap` is FastWave-specific #[wasm_bindgen(constructor)] - pub fn new(row_height: u32, row_gap: u32) -> PixiController; + pub fn new(row_height: u32, row_gap: u32, timeline_getter: &TimelineGetter) -> PixiController; #[wasm_bindgen(method)] pub async fn init(this: &PixiController, parent_element: &JsValue); @@ -115,7 +134,7 @@ mod js_bridge { pub fn remove_var(this: &PixiController, index: usize); #[wasm_bindgen(method)] - pub fn push_var(this: &PixiController, timeline: JsValue); + pub fn push_var(this: &PixiController, signal_ref_index: usize, timeline: JsValue); #[wasm_bindgen(method)] pub fn pop_var(this: &PixiController); diff --git a/frontend/typescript/bundles/pixi_canvas.js b/frontend/typescript/bundles/pixi_canvas.js index 3c5a9ad..3c110fa 100644 --- a/frontend/typescript/bundles/pixi_canvas.js +++ b/frontend/typescript/bundles/pixi_canvas.js @@ -35136,12 +35136,14 @@ var PixiController = class { row_height; row_gap; previous_parent_width; - constructor(row_height, row_gap) { + timeline_getter; + constructor(row_height, row_gap, timeline_getter) { this.app = new Application(); this.row_height = row_height; this.row_gap = row_gap; this.app.stage.addChild(this.var_signal_rows_container); this.previous_parent_width = null; + this.timeline_getter = timeline_getter; } async init(parent_element) { await this.app.init({ background: "DarkSlateBlue", antialias: true, resizeTo: parent_element }); @@ -35174,15 +35176,19 @@ var PixiController = class { } // -- FastWave-specific -- redraw_rows() { - this.var_signal_rows.forEach((row) => row.draw()); + this.var_signal_rows.forEach(async (row) => { + const timeline = await this.timeline_getter(row.signal_ref_index, this.app.screen.width, this.row_height); + row.redraw(timeline); + }); } remove_var(index) { if (typeof this.var_signal_rows[index] !== "undefined") { this.var_signal_rows[index].destroy(); } } - push_var(timeline) { + push_var(signal_ref_index, timeline) { new VarSignalRow( + signal_ref_index, timeline, this.app, this.var_signal_rows, @@ -35199,8 +35205,9 @@ var PixiController = class { } }; var VarSignalRow = class { - app; + signal_ref_index; timeline; + app; owner; index_in_owner; rows_container; @@ -35216,9 +35223,10 @@ var VarSignalRow = class { fontSize: 16, fontFamily: 'system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"' }); - constructor(timeline, app, owner, rows_container, row_height, row_gap) { - this.app = app; + constructor(signal_ref_index, timeline, app, owner, rows_container, row_height, row_gap) { + this.signal_ref_index = signal_ref_index; this.timeline = timeline; + this.app = app; this.row_height = row_height; this.row_gap = row_gap; this.row_height_with_gap = row_height + row_gap; @@ -35241,6 +35249,9 @@ var VarSignalRow = class { this.draw(); } draw() { + if (this.app.screen === null) { + return; + } this.row_container_background.width = this.app.screen.width; this.signal_blocks_container.removeChildren(); this.timeline.blocks.forEach((timeline_block) => { diff --git a/frontend/typescript/pixi_canvas/pixi_canvas.ts b/frontend/typescript/pixi_canvas/pixi_canvas.ts index c8661bf..7800ab5 100644 --- a/frontend/typescript/pixi_canvas/pixi_canvas.ts +++ b/frontend/typescript/pixi_canvas/pixi_canvas.ts @@ -16,6 +16,8 @@ type TimeLineBlockLabel = { y: number, } +type TimelineGetter = (signal_ref_index: number, screen_width: number, row_height: number) => Promise; + export class PixiController { app: Application // -- FastWave-specific -- @@ -24,14 +26,16 @@ export class PixiController { row_height: number; row_gap: number; previous_parent_width: number | null; + timeline_getter: TimelineGetter - constructor(row_height: number, row_gap: number) { + constructor(row_height: number, row_gap: number, timeline_getter: TimelineGetter) { this.app = new Application(); // -- FastWave-specific -- this.row_height = row_height; this.row_gap = row_gap; this.app.stage.addChild(this.var_signal_rows_container); this.previous_parent_width = null; + this.timeline_getter = timeline_getter; } async init(parent_element: HTMLElement) { @@ -71,7 +75,10 @@ export class PixiController { // -- FastWave-specific -- redraw_rows() { - this.var_signal_rows.forEach(row => row.draw()); + this.var_signal_rows.forEach(async row => { + const timeline = await this.timeline_getter(row.signal_ref_index, this.app.screen.width, this.row_height); + row.redraw(timeline); + }); } remove_var(index: number) { @@ -80,8 +87,9 @@ export class PixiController { } } - push_var(timeline: Timeline) { + push_var(signal_ref_index: number, timeline: Timeline) { new VarSignalRow( + signal_ref_index, timeline, this.app, this.var_signal_rows, @@ -101,8 +109,9 @@ export class PixiController { } class VarSignalRow { - app: Application; + signal_ref_index: number; timeline: Timeline; + app: Application; owner: Array; index_in_owner: number; rows_container: Container; @@ -120,6 +129,7 @@ class VarSignalRow { }); constructor( + signal_ref_index: number, timeline: Timeline, app: Application, owner: Array, @@ -127,9 +137,9 @@ class VarSignalRow { row_height: number, row_gap: number, ) { - this.app = app; - + this.signal_ref_index = signal_ref_index; this.timeline = timeline; + this.app = app; this.row_height = row_height; this.row_gap = row_gap; @@ -164,6 +174,12 @@ class VarSignalRow { } draw() { + // Screen can be null when we are, for instance, switching between miller column and tree layout + // and then the canvas has to be recreated + if (this.app.screen === null) { + return; + } + this.row_container_background.width = this.app.screen.width; this.signal_blocks_container.removeChildren(); -- 2.50.1 From 869a31ca5f810cbb0083dc342ee5e933fc0aecf2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Kav=C3=ADk?= Date: Fri, 7 Jun 2024 23:06:14 +0200 Subject: [PATCH 09/23] await redraw, u128 for bitstring parsing --- frontend/src/waveform_panel/pixi_canvas.rs | 9 +++++---- frontend/typescript/bundles/pixi_canvas.js | 10 +++++----- frontend/typescript/pixi_canvas/pixi_canvas.ts | 10 +++++----- src-tauri/src/lib.rs | 2 +- 4 files changed, 16 insertions(+), 15 deletions(-) diff --git a/frontend/src/waveform_panel/pixi_canvas.rs b/frontend/src/waveform_panel/pixi_canvas.rs index 2ac3dcf..b0a5687 100644 --- a/frontend/src/waveform_panel/pixi_canvas.rs +++ b/frontend/src/waveform_panel/pixi_canvas.rs @@ -40,11 +40,12 @@ impl PixiCanvas { let width = width.signal(), let height = height.signal() => (*width, *height) } - .for_each_sync(clone!((controller) move |(width, height)| { + .throttle(|| Timer::sleep(50)) + .for_each(clone!((controller) move |(width, height)| clone!((controller) async move { if let Some(controller) = controller.lock_ref().as_ref() { - controller.resize(width, height); + controller.resize(width, height).await } - })), + }))), ); let task_with_controller = Mutable::new(None); // -- FastWave-specific -- @@ -120,7 +121,7 @@ mod js_bridge { pub async fn init(this: &PixiController, parent_element: &JsValue); #[wasm_bindgen(method)] - pub fn resize(this: &PixiController, width: u32, height: u32); + pub async fn resize(this: &PixiController, width: u32, height: u32); #[wasm_bindgen(method)] pub fn destroy(this: &PixiController); diff --git a/frontend/typescript/bundles/pixi_canvas.js b/frontend/typescript/bundles/pixi_canvas.js index 3c110fa..435ea5f 100644 --- a/frontend/typescript/bundles/pixi_canvas.js +++ b/frontend/typescript/bundles/pixi_canvas.js @@ -35151,12 +35151,12 @@ var PixiController = class { } // Default automatic Pixi resizing according to the parent is not reliable // and the `app.renderer`'s `resize` event is fired on every browser window size change - resize(width, height) { + async resize(width, height) { this.app.resize(); const width_changed = width !== this.previous_parent_width; this.previous_parent_width = width; if (width_changed) { - this.redraw_rows(); + await this.redraw_rows(); } } destroy() { @@ -35175,11 +35175,11 @@ var PixiController = class { return this.app.screen.width; } // -- FastWave-specific -- - redraw_rows() { - this.var_signal_rows.forEach(async (row) => { + async redraw_rows() { + await Promise.all(this.var_signal_rows.map(async (row) => { const timeline = await this.timeline_getter(row.signal_ref_index, this.app.screen.width, this.row_height); row.redraw(timeline); - }); + })); } remove_var(index) { if (typeof this.var_signal_rows[index] !== "undefined") { diff --git a/frontend/typescript/pixi_canvas/pixi_canvas.ts b/frontend/typescript/pixi_canvas/pixi_canvas.ts index 7800ab5..0bbf883 100644 --- a/frontend/typescript/pixi_canvas/pixi_canvas.ts +++ b/frontend/typescript/pixi_canvas/pixi_canvas.ts @@ -45,13 +45,13 @@ export class PixiController { // Default automatic Pixi resizing according to the parent is not reliable // and the `app.renderer`'s `resize` event is fired on every browser window size change - resize(width: number, height: number) { + async resize(width: number, height: number) { this.app.resize(); // -- FastWave-specific -- const width_changed = width !== this.previous_parent_width; this.previous_parent_width = width; if (width_changed) { - this.redraw_rows(); + await this.redraw_rows(); } } @@ -74,11 +74,11 @@ export class PixiController { // -- FastWave-specific -- - redraw_rows() { - this.var_signal_rows.forEach(async row => { + async redraw_rows() { + await Promise.all(this.var_signal_rows.map(async row => { const timeline = await this.timeline_getter(row.signal_ref_index, this.app.screen.width, this.row_height); row.redraw(timeline); - }); + })) } remove_var(index: number) { diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 70b9de9..2e9c17d 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -140,7 +140,7 @@ fn signal_to_timeline( let value = value.to_string(); // @TODO dynamic formatter - let value = u32::from_str_radix(&value, 2).unwrap(); + let value = u128::from_str_radix(&value, 2).unwrap(); let value = format!("{value:x}"); let value_width = value.chars().count() as u32 * LETTER_WIDTH; -- 2.50.1 From f6d8f9d8ce6413a78f0b68f0ef43da709d98f3e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Kav=C3=ADk?= Date: Fri, 7 Jun 2024 23:18:06 +0200 Subject: [PATCH 10/23] remove HierarchyAndTimeTable --- frontend/src/controls_panel.rs | 50 +++++++++---------- frontend/src/main.rs | 14 +++--- frontend/src/platform.rs | 4 -- frontend/src/platform/browser.rs | 7 --- frontend/src/platform/tauri.rs | 7 --- frontend/src/waveform_panel.rs | 33 ++++++------ frontend/typescript/bundles/pixi_canvas.js | 2 +- frontend/typescript/bundles/tauri_glue.js | 4 -- .../typescript/pixi_canvas/pixi_canvas.ts | 3 +- frontend/typescript/tauri_glue/tauri_glue.ts | 4 -- src-tauri/src/lib.rs | 10 +--- 11 files changed, 50 insertions(+), 88 deletions(-) diff --git a/frontend/src/controls_panel.rs b/frontend/src/controls_panel.rs index ebfd4e5..2c8ec0e 100644 --- a/frontend/src/controls_panel.rs +++ b/frontend/src/controls_panel.rs @@ -1,5 +1,4 @@ -use crate::{platform, HierarchyAndTimeTable, Layout}; -use futures_util::join; +use crate::{platform, Layout}; use std::cell::Cell; use std::mem; use std::ops::Not; @@ -35,7 +34,7 @@ struct ScopeForUI { #[derive(Clone)] pub struct ControlsPanel { selected_scope_ref: Mutable>, - hierarchy_and_time_table: Mutable>, + hierarchy: Mutable>>, selected_var_refs: MutableVec, layout: Mutable, loaded_filename: Mutable>, @@ -43,13 +42,13 @@ pub struct ControlsPanel { impl ControlsPanel { pub fn new( - hierarchy_and_time_table: Mutable>, + hierarchy: Mutable>>, selected_var_refs: MutableVec, layout: Mutable, ) -> impl Element { Self { selected_scope_ref: <_>::default(), - hierarchy_and_time_table, + hierarchy, selected_var_refs, layout, loaded_filename: <_>::default(), @@ -60,7 +59,7 @@ impl ControlsPanel { fn triggers(&self) -> Vec { vec![Task::start_droppable(clone!((self => s) async move { let was_some = Cell::new(false); - s.hierarchy_and_time_table + s.hierarchy .signal_ref(Option::is_some) .dedupe() .for_each_sync(clone!((s) move |is_some| { @@ -81,8 +80,8 @@ impl ControlsPanel { let layout = self.layout.clone(); let layout_and_hierarchy_signal = map_ref! { let layout = layout.signal(), - let hierarchy_and_time_table = self.hierarchy_and_time_table.signal_cloned() => { - (*layout, hierarchy_and_time_table.clone().map(|(hierarchy, _)| hierarchy)) + let hierarchy = self.hierarchy.signal_cloned() => { + (*layout, hierarchy.clone()) } }; Column::new() @@ -110,9 +109,9 @@ impl ControlsPanel { .item(self.layout_switcher()), ) .item_signal( - self.hierarchy_and_time_table + self.hierarchy .signal_cloned() - .map_some(clone!((self => s) move |(hierarchy, _)| s.scopes_panel(hierarchy))), + .map_some(clone!((self => s) move |hierarchy| s.scopes_panel(hierarchy))), ) .item_signal(layout_and_hierarchy_signal.map( clone!((self => s) move |(layout, hierarchy)| { @@ -126,7 +125,7 @@ impl ControlsPanel { #[cfg(FASTWAVE_PLATFORM = "TAURI")] fn load_button(&self) -> impl Element { let (hovered, hovered_signal) = Mutable::new_and_signal(false); - let hierarchy_and_time_table = self.hierarchy_and_time_table.clone(); + let hierarchy = self.hierarchy.clone(); let loaded_filename = self.loaded_filename.clone(); Button::new() .s(Padding::new().x(20).y(10)) @@ -143,21 +142,18 @@ impl ControlsPanel { )) .on_hovered_change(move |is_hovered| hovered.set_neq(is_hovered)) .on_press(move || { - let mut hierarchy_and_time_table_lock = hierarchy_and_time_table.lock_mut(); - if hierarchy_and_time_table_lock.is_some() { - *hierarchy_and_time_table_lock = None; + let mut hierarchy_lock = hierarchy.lock_mut(); + if hierarchy_lock.is_some() { + *hierarchy_lock = None; return; } - drop(hierarchy_and_time_table_lock); - let hierarchy_and_time_table = hierarchy_and_time_table.clone(); + drop(hierarchy_lock); + let hierarchy = hierarchy.clone(); let loaded_filename = loaded_filename.clone(); Task::start(async move { if let Some(filename) = platform::pick_and_load_waveform(None).await { loaded_filename.set_neq(Some(filename)); - let (hierarchy, time_table) = - join!(platform::get_hierarchy(), platform::get_time_table()); - hierarchy_and_time_table - .set(Some((Rc::new(hierarchy), Rc::new(time_table)))) + hierarchy.set(Some(Rc::new(platform::get_hierarchy().await))) } }) }) @@ -166,7 +162,7 @@ impl ControlsPanel { #[cfg(FASTWAVE_PLATFORM = "BROWSER")] fn load_button(&self) -> impl Element { let (hovered, hovered_signal) = Mutable::new_and_signal(false); - let hierarchy_and_time_table = self.hierarchy_and_time_table.clone(); + let hierarchy = self.hierarchy.clone(); let loaded_filename = self.loaded_filename.clone(); let file_input_id = "file_input"; Row::new() @@ -187,10 +183,10 @@ impl ControlsPanel { )) .on_hovered_change(move |is_hovered| hovered.set_neq(is_hovered)) .for_input(file_input_id) - .on_click_event_with_options(EventOptions::new().preventable(), clone!((hierarchy_and_time_table) move |event| { - let mut hierarchy_and_time_table_lock = hierarchy_and_time_table.lock_mut(); - if hierarchy_and_time_table_lock.is_some() { - *hierarchy_and_time_table_lock = None; + .on_click_event_with_options(EventOptions::new().preventable(), clone!((hierarchy) move |event| { + let mut hierarchy_lock = hierarchy.lock_mut(); + if hierarchy_lock.is_some() { + *hierarchy_lock = None; if let RawMouseEvent::Click(raw_event) = event.raw_event { // @TODO Move to MoonZoon as a new API raw_event.prevent_default(); @@ -218,14 +214,14 @@ impl ControlsPanel { zoon::println!("file list is empty"); return; }; - let hierarchy_and_time_table = hierarchy_and_time_table.clone(); + let hierarchy = hierarchy.clone(); let loaded_filename = loaded_filename.clone(); Task::start(async move { if let Some(filename) = platform::pick_and_load_waveform(Some(file)).await { loaded_filename.set_neq(Some(filename)); let (hierarchy, time_table) = join!(platform::get_hierarchy(), platform::get_time_table()); - hierarchy_and_time_table + hierarchy .set(Some((Rc::new(hierarchy), Rc::new(time_table)))) } }) diff --git a/frontend/src/main.rs b/frontend/src/main.rs index de4b4c1..778d6b6 100644 --- a/frontend/src/main.rs +++ b/frontend/src/main.rs @@ -1,5 +1,5 @@ -use std::rc::Rc; use zoon::*; +use std::rc::Rc; mod platform; @@ -9,8 +9,6 @@ use controls_panel::ControlsPanel; mod waveform_panel; use waveform_panel::WaveformPanel; -type HierarchyAndTimeTable = (Rc, Rc); - #[derive(Clone, Copy, Default)] enum Layout { Tree, @@ -28,7 +26,7 @@ fn main() { } fn root() -> impl Element { - let hierarchy_and_time_table: Mutable> = <_>::default(); + let hierarchy: Mutable>> = <_>::default(); let selected_var_refs: MutableVec = <_>::default(); let layout: Mutable = <_>::default(); Column::new() @@ -40,17 +38,17 @@ fn root() -> impl Element { .s(Height::fill()) .s(Gap::new().x(15)) .item(ControlsPanel::new( - hierarchy_and_time_table.clone(), + hierarchy.clone(), selected_var_refs.clone(), layout.clone(), )) - .item_signal(layout.signal().map(|layout| matches!(layout, Layout::Tree)).map_true(clone!((hierarchy_and_time_table, selected_var_refs) move || WaveformPanel::new( - hierarchy_and_time_table.clone(), + .item_signal(layout.signal().map(|layout| matches!(layout, Layout::Tree)).map_true(clone!((hierarchy, selected_var_refs) move || WaveformPanel::new( + hierarchy.clone(), selected_var_refs.clone(), )))) ) .item_signal(layout.signal().map(|layout| matches!(layout, Layout::Columns)).map_true(move || WaveformPanel::new( - hierarchy_and_time_table.clone(), + hierarchy.clone(), selected_var_refs.clone(), ))) } diff --git a/frontend/src/platform.rs b/frontend/src/platform.rs index 8a83384..7e60fd9 100644 --- a/frontend/src/platform.rs +++ b/frontend/src/platform.rs @@ -29,10 +29,6 @@ pub async fn get_hierarchy() -> wellen::Hierarchy { platform::get_hierarchy().await } -pub async fn get_time_table() -> wellen::TimeTable { - platform::get_time_table().await -} - pub async fn load_signal_and_get_timeline( signal_ref: wellen::SignalRef, screen_width: u32, diff --git a/frontend/src/platform/browser.rs b/frontend/src/platform/browser.rs index 2957a41..94f5f35 100644 --- a/frontend/src/platform/browser.rs +++ b/frontend/src/platform/browser.rs @@ -74,13 +74,6 @@ pub(super) async fn get_hierarchy() -> wellen::Hierarchy { serde_json::from_value(serde_json::to_value(hierarchy).unwrap_throw()).unwrap_throw() } -pub(super) async fn get_time_table() -> wellen::TimeTable { - let waveform = STORE.waveform.lock().unwrap_throw(); - let time_table = waveform.as_ref().unwrap_throw().time_table(); - // @TODO Wrap `time_table` in `Waveform` with `Rc/Arc` or add the method `take` / `clone` or refactor? - serde_json::from_value(serde_json::to_value(time_table).unwrap_throw()).unwrap_throw() -} - pub(super) async fn load_signal_and_get_timeline( signal_ref: wellen::SignalRef, screen_width: u32, diff --git a/frontend/src/platform/tauri.rs b/frontend/src/platform/tauri.rs index 549626f..853dc4a 100644 --- a/frontend/src/platform/tauri.rs +++ b/frontend/src/platform/tauri.rs @@ -17,10 +17,6 @@ pub(super) async fn get_hierarchy() -> wellen::Hierarchy { serde_wasm_bindgen::from_value(tauri_glue::get_hierarchy().await.unwrap_throw()).unwrap_throw() } -pub(super) async fn get_time_table() -> wellen::TimeTable { - serde_wasm_bindgen::from_value(tauri_glue::get_time_table().await.unwrap_throw()).unwrap_throw() -} - pub(super) async fn load_signal_and_get_timeline( signal_ref: wellen::SignalRef, screen_width: u32, @@ -55,9 +51,6 @@ mod tauri_glue { #[wasm_bindgen(catch)] pub async fn get_hierarchy() -> Result; - #[wasm_bindgen(catch)] - pub async fn get_time_table() -> Result; - #[wasm_bindgen(catch)] pub async fn load_signal_and_get_timeline( signal_ref_index: usize, diff --git a/frontend/src/waveform_panel.rs b/frontend/src/waveform_panel.rs index 5ba42a7..8f3b7ae 100644 --- a/frontend/src/waveform_panel.rs +++ b/frontend/src/waveform_panel.rs @@ -1,4 +1,5 @@ -use crate::{platform, HierarchyAndTimeTable}; +use crate::platform; +use std::rc::Rc; use wellen::GetItem; use zoon::*; @@ -11,17 +12,17 @@ const ROW_GAP: u32 = 4; #[derive(Clone)] pub struct WaveformPanel { selected_var_refs: MutableVec, - hierarchy_and_time_table: Mutable>, + hierarchy: Mutable>>, } impl WaveformPanel { pub fn new( - hierarchy_and_time_table: Mutable>, + hierarchy: Mutable>>, selected_var_refs: MutableVec, ) -> impl Element { Self { selected_var_refs, - hierarchy_and_time_table, + hierarchy, } .root() } @@ -52,26 +53,26 @@ impl WaveformPanel { fn canvas(&self, selected_vars_panel_height: ReadOnlyMutable) -> impl Element { let selected_var_refs = self.selected_var_refs.clone(); - let hierarchy_and_time_table = self.hierarchy_and_time_table.clone(); + let hierarchy = self.hierarchy.clone(); PixiCanvas::new(ROW_HEIGHT, ROW_GAP) .s(Align::new().top()) .s(Width::fill()) .s(Height::exact_signal(selected_vars_panel_height.signal())) .task_with_controller(move |controller| { - selected_var_refs.signal_vec().delay_remove(clone!((hierarchy_and_time_table) move |var_ref| { - clone!((var_ref, hierarchy_and_time_table) async move { - if let Some(hierarchy_and_time_table) = hierarchy_and_time_table.get_cloned() { - platform::unload_signal(hierarchy_and_time_table.0.get(var_ref).signal_ref()).await; + selected_var_refs.signal_vec().delay_remove(clone!((hierarchy) move |var_ref| { + clone!((var_ref, hierarchy) async move { + if let Some(hierarchy) = hierarchy.get_cloned() { + platform::unload_signal(hierarchy.get(var_ref).signal_ref()).await; } }) - })).for_each(clone!((controller, hierarchy_and_time_table) move |vec_diff| { - clone!((controller, hierarchy_and_time_table) async move { + })).for_each(clone!((controller, hierarchy) move |vec_diff| { + clone!((controller, hierarchy) async move { match vec_diff { VecDiff::Replace { values } => { let controller = controller.wait_for_some_cloned().await; controller.clear_vars(); for var_ref in values { - Self::push_var(&controller, &hierarchy_and_time_table, var_ref).await; + Self::push_var(&controller, &hierarchy, var_ref).await; } }, VecDiff::InsertAt { index: _, value: _ } => { todo!("`task_with_controller` + `InsertAt`") } @@ -84,7 +85,7 @@ impl WaveformPanel { VecDiff::Move { old_index: _, new_index: _ } => { todo!("`task_with_controller` + `Move`") } VecDiff::Push { value: var_ref } => { if let Some(controller) = controller.lock_ref().as_ref() { - Self::push_var(controller, &hierarchy_and_time_table, var_ref).await; + Self::push_var(controller, &hierarchy, var_ref).await; } } VecDiff::Pop {} => { @@ -105,10 +106,10 @@ impl WaveformPanel { async fn push_var( controller: &PixiController, - hierarchy_and_time_table: &Mutable>, + hierarchy: &Mutable>>, var_ref: wellen::VarRef, ) { - let (hierarchy, time_table) = hierarchy_and_time_table.get_cloned().unwrap(); + let hierarchy = hierarchy.get_cloned().unwrap(); let var = hierarchy.get(var_ref); let signal_ref = var.signal_ref(); @@ -134,7 +135,7 @@ impl WaveformPanel { index: ReadOnlyMutable>, var_ref: wellen::VarRef, ) -> Option { - let Some((hierarchy, _)) = self.hierarchy_and_time_table.get_cloned() else { + let Some(hierarchy) = self.hierarchy.get_cloned() else { None? }; let var = hierarchy.get(var_ref); diff --git a/frontend/typescript/bundles/pixi_canvas.js b/frontend/typescript/bundles/pixi_canvas.js index 435ea5f..c3da669 100644 --- a/frontend/typescript/bundles/pixi_canvas.js +++ b/frontend/typescript/bundles/pixi_canvas.js @@ -35152,12 +35152,12 @@ var PixiController = class { // Default automatic Pixi resizing according to the parent is not reliable // and the `app.renderer`'s `resize` event is fired on every browser window size change async resize(width, height) { - this.app.resize(); const width_changed = width !== this.previous_parent_width; this.previous_parent_width = width; if (width_changed) { await this.redraw_rows(); } + this.app.resize(); } destroy() { const rendererDestroyOptions = { diff --git a/frontend/typescript/bundles/tauri_glue.js b/frontend/typescript/bundles/tauri_glue.js index 883f8ce..9bb4b24 100644 --- a/frontend/typescript/bundles/tauri_glue.js +++ b/frontend/typescript/bundles/tauri_glue.js @@ -2520,9 +2520,6 @@ async function pick_and_load_waveform() { async function get_hierarchy() { return await invoke2("get_hierarchy"); } -async function get_time_table() { - return await invoke2("get_time_table"); -} async function load_signal_and_get_timeline(signal_ref_index, screen_width, block_height) { return await invoke2("load_signal_and_get_timeline", { signal_ref_index, screen_width, block_height }); } @@ -2531,7 +2528,6 @@ async function unload_signal(signal_ref_index) { } export { get_hierarchy, - get_time_table, load_signal_and_get_timeline, pick_and_load_waveform, show_window, diff --git a/frontend/typescript/pixi_canvas/pixi_canvas.ts b/frontend/typescript/pixi_canvas/pixi_canvas.ts index 0bbf883..05cc623 100644 --- a/frontend/typescript/pixi_canvas/pixi_canvas.ts +++ b/frontend/typescript/pixi_canvas/pixi_canvas.ts @@ -46,13 +46,14 @@ export class PixiController { // Default automatic Pixi resizing according to the parent is not reliable // and the `app.renderer`'s `resize` event is fired on every browser window size change async resize(width: number, height: number) { - this.app.resize(); // -- FastWave-specific -- const width_changed = width !== this.previous_parent_width; this.previous_parent_width = width; if (width_changed) { await this.redraw_rows(); } + // -- // -- + this.app.resize(); } destroy() { diff --git a/frontend/typescript/tauri_glue/tauri_glue.ts b/frontend/typescript/tauri_glue/tauri_glue.ts index 0476113..f686f6c 100644 --- a/frontend/typescript/tauri_glue/tauri_glue.ts +++ b/frontend/typescript/tauri_glue/tauri_glue.ts @@ -22,10 +22,6 @@ export async function get_hierarchy(): Promise { return await invoke("get_hierarchy"); } -export async function get_time_table(): Promise { - return await invoke("get_time_table"); -} - export async function load_signal_and_get_timeline(signal_ref_index: number, screen_width: number, block_height: number): Promise { return await invoke("load_signal_and_get_timeline", { signal_ref_index, screen_width, block_height }); } diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 2e9c17d..db2b806 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -39,13 +39,6 @@ async fn get_hierarchy(store: tauri::State<'_, Store>) -> Result) -> Result { - let waveform = store.waveform.lock().unwrap(); - let time_table = waveform.as_ref().unwrap().time_table(); - Ok(serde_json::to_value(time_table).unwrap()) -} - #[tauri::command(rename_all = "snake_case")] async fn load_signal_and_get_timeline( signal_ref_index: usize, @@ -53,7 +46,7 @@ async fn load_signal_and_get_timeline( block_height: u32, store: tauri::State<'_, Store>, ) -> Result { - // @TODO run (all?) in a blocking thread + // @TODO run (all?) in a blocking thread? let signal_ref = wellen::SignalRef::from_index(signal_ref_index).unwrap(); let mut waveform_lock = store.waveform.lock().unwrap(); let waveform = waveform_lock.as_mut().unwrap(); @@ -88,7 +81,6 @@ pub fn run() { show_window, pick_and_load_waveform, get_hierarchy, - get_time_table, load_signal_and_get_timeline, unload_signal, ]) -- 2.50.1 From b308fa85fb2bf28a022e6982e706cbc36e7048b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Kav=C3=ADk?= Date: Sat, 8 Jun 2024 01:11:18 +0200 Subject: [PATCH 11/23] convert_base --- Cargo.lock | 8 ++++++++ Cargo.toml | 1 + frontend/Cargo.toml | 1 + frontend/typescript/bundles/pixi_canvas.js | 2 +- frontend/typescript/pixi_canvas/pixi_canvas.ts | 3 +-- src-tauri/Cargo.toml | 1 + src-tauri/src/lib.rs | 11 +++++++---- 7 files changed, 20 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ccbf6f9..1100ddb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -859,6 +859,12 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "convert-base" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e56a404f2112d00ba80a516b60ca3744ef6bd776baa14126eb7d7c11b42cac8a" + [[package]] name = "convert_case" version = "0.4.0" @@ -1414,6 +1420,7 @@ checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" name = "fastwave" version = "0.1.0" dependencies = [ + "convert-base", "serde", "serde_json", "shared", @@ -1499,6 +1506,7 @@ dependencies = [ name = "frontend" version = "0.1.0" dependencies = [ + "convert-base", "gloo-file", "shared", "wasm-bindgen-test", diff --git a/Cargo.toml b/Cargo.toml index 5ab2fb1..6ca9a5f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,6 +16,7 @@ readme = "../README.md" publish = false [workspace.dependencies] +convert-base = "1.1.2" # wellen = { version = "0.9.9", features = ["serde1"] } # wellen = { path = "../wellen/wellen", features = ["serde1"] } wellen = { git = "https://github.com/MartinKavik/wellen", features = ["serde1"], branch = "new_pub_types" } diff --git a/frontend/Cargo.toml b/frontend/Cargo.toml index 930650e..7ba178a 100644 --- a/frontend/Cargo.toml +++ b/frontend/Cargo.toml @@ -13,6 +13,7 @@ wasm-bindgen-test = "0.3.19" [dependencies] zoon.workspace = true wellen.workspace = true +convert-base.workspace = true shared = { path = "../shared", features = ["frontend"] } web-sys = { version = "*", features = ["FileSystemFileHandle"] } gloo-file = { version = "0.3.0", features = ["futures"] } diff --git a/frontend/typescript/bundles/pixi_canvas.js b/frontend/typescript/bundles/pixi_canvas.js index c3da669..435ea5f 100644 --- a/frontend/typescript/bundles/pixi_canvas.js +++ b/frontend/typescript/bundles/pixi_canvas.js @@ -35152,12 +35152,12 @@ var PixiController = class { // Default automatic Pixi resizing according to the parent is not reliable // and the `app.renderer`'s `resize` event is fired on every browser window size change async resize(width, height) { + this.app.resize(); const width_changed = width !== this.previous_parent_width; this.previous_parent_width = width; if (width_changed) { await this.redraw_rows(); } - this.app.resize(); } destroy() { const rendererDestroyOptions = { diff --git a/frontend/typescript/pixi_canvas/pixi_canvas.ts b/frontend/typescript/pixi_canvas/pixi_canvas.ts index 05cc623..0bbf883 100644 --- a/frontend/typescript/pixi_canvas/pixi_canvas.ts +++ b/frontend/typescript/pixi_canvas/pixi_canvas.ts @@ -46,14 +46,13 @@ export class PixiController { // Default automatic Pixi resizing according to the parent is not reliable // and the `app.renderer`'s `resize` event is fired on every browser window size change async resize(width: number, height: number) { + this.app.resize(); // -- FastWave-specific -- const width_changed = width !== this.previous_parent_width; this.previous_parent_width = width; if (width_changed) { await this.redraw_rows(); } - // -- // -- - this.app.resize(); } destroy() { diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 490242c..66394d0 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -17,6 +17,7 @@ tauri-build = { version = "=2.0.0-beta.17", features = [] } [dependencies] wellen.workspace = true +convert-base.workspace = true shared = { path = "../shared", features = ["backend"] } serde_json = "1.0" serde = { version = "1.0", features = ["derive"] } diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index db2b806..7ea748d 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -116,8 +116,8 @@ fn signal_to_timeline( }) .peekable(); + // @TODO parallelize? let mut blocks = Vec::new(); - while let Some((block_x, value)) = x_value_pairs.next() { let next_block_x = if let Some((next_block_x, _)) = x_value_pairs.peek() { *next_block_x @@ -130,10 +130,13 @@ fn signal_to_timeline( continue; } - let value = value.to_string(); // @TODO dynamic formatter - let value = u128::from_str_radix(&value, 2).unwrap(); - let value = format!("{value:x}"); + // @TODO optimize it by not using `.to_string` if possible + let value = value.to_string(); + let ones_and_zeros = value.chars().rev().map(|char| char.to_digit(2).unwrap()).collect::>(); + let mut base = convert_base::Convert::new(2, 16); + let output = base.convert::(&ones_and_zeros); + let value: String = output.into_iter().map(|number| char::from_digit(number, 16).unwrap()).collect(); let value_width = value.chars().count() as u32 * LETTER_WIDTH; let label = if (value_width + (2 * LABEL_X_PADDING)) <= block_width { -- 2.50.1 From aea55fa9e33b31403a30ec3c12e00633c3900143 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Kav=C3=ADk?= Date: Sat, 8 Jun 2024 01:45:23 +0200 Subject: [PATCH 12/23] Test files in README, notes --- README.md | 6 ++++++ frontend/typescript/pixi_canvas/pixi_canvas.ts | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d702e3e..0b2c352 100644 --- a/README.md +++ b/README.md @@ -57,3 +57,9 @@ Troubleshooting: 1. `makers bundle` 2. Runnable executable is in `target/release` 3. Installable bundles specific for the platform are in `target/release/bundle` + +--- + +### Test files + +See the folder `test_files`. diff --git a/frontend/typescript/pixi_canvas/pixi_canvas.ts b/frontend/typescript/pixi_canvas/pixi_canvas.ts index 0bbf883..cb69e41 100644 --- a/frontend/typescript/pixi_canvas/pixi_canvas.ts +++ b/frontend/typescript/pixi_canvas/pixi_canvas.ts @@ -174,7 +174,7 @@ class VarSignalRow { } draw() { - // Screen can be null when we are, for instance, switching between miller column and tree layout + // Screen can be null when we are, for instance, switching between miller columns and tree layout // and then the canvas has to be recreated if (this.app.screen === null) { return; @@ -182,6 +182,7 @@ class VarSignalRow { this.row_container_background.width = this.app.screen.width; + // @TODO optimize by reusing a pool of blocks instead or removing all children on every redraw? this.signal_blocks_container.removeChildren(); this.timeline.blocks.forEach(timeline_block => { // signal_block -- 2.50.1 From 10425580ddee806cfaab187132cb0b75bc5db156 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Kav=C3=ADk?= Date: Sat, 8 Jun 2024 18:24:11 +0200 Subject: [PATCH 13/23] load_signal_and_get_timeline in browser.rs, tasks.start_browser_release --- Makefile.toml | 18 +++++++ README.md | 27 +++++++---- frontend/src/controls_panel.rs | 5 +- frontend/src/platform/browser.rs | 83 +++++++++++++++++++++++++++++++- frontend/src/waveform_panel.rs | 1 + src-tauri/src/lib.rs | 1 + 6 files changed, 119 insertions(+), 16 deletions(-) diff --git a/Makefile.toml b/Makefile.toml index 6f1c212..236fb15 100644 --- a/Makefile.toml +++ b/Makefile.toml @@ -38,6 +38,15 @@ run_task = { fork = true, parallel = true, name = [ "watch_tauri_glue", ]} +[tasks.start_browser_release] +description = "Run without Tauri in the browser & watch Typescript and Rust in the release mode" +dependencies = ["store_current_process_id"] +run_task = { fork = true, parallel = true, name = [ + "mzoon_start_release_with_cleanup", + "watch_pixi_canvas", + "watch_tauri_glue", +]} + [tasks.bundle] description = "Compile in the release mode and create installation packages" dependencies = ["tauri_build", "show_release_paths"] @@ -100,6 +109,11 @@ description = "Run `mzoon start`" extend = "mzoon" args = ["start"] +[tasks.mzoon_start_release] +description = "Run `mzoon start --release`" +extend = "mzoon" +args = ["start", "--release"] + [tasks.tauri_dev_with_cleanup] description = "Run forked `tauri dev` with cleanup" run_task = { fork = true, cleanup_task = "kill_watchers", name = ["tauri_dev"] } @@ -108,6 +122,10 @@ run_task = { fork = true, cleanup_task = "kill_watchers", name = ["tauri_dev"] } description = "Run forked `mzoon start` with cleanup" run_task = { fork = true, cleanup_task = "kill_watchers", name = ["mzoon_start"] } +[tasks.mzoon_start_release_with_cleanup] +description = "Run forked `mzoon start` with cleanup" +run_task = { fork = true, cleanup_task = "kill_watchers", name = ["mzoon_start_release"] } + [tasks.kill_watchers] description = "Kill the cargo-make/makers process and all its children / forked processes" script_runner = "@duckscript" diff --git a/README.md b/README.md index 0b2c352..7cfd3a9 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ ___ -### Start: +### Start the desktop version: 1. `makers start` @@ -39,26 +39,33 @@ Troubleshooting: --- -### Start in the browser: +### Production build of the desktop version: + +1. `makers bundle` +2. Runnable executable is in `target/release` +3. Installable bundles specific for the platform are in `target/release/bundle` + +--- + +### Start in a browser: 1. `makers start_browser` 2. Ctrl + Click the server URL mentioned in the terminal log --- +### Start in a browser in the release mode: + +1. `makers start_browser_release` +2. Ctrl + Click the server URL mentioned in the terminal log + +--- + ### Steps before pushing: 1. `makers format` ---- -### Production build: - -1. `makers bundle` -2. Runnable executable is in `target/release` -3. Installable bundles specific for the platform are in `target/release/bundle` - ---- ### Test files diff --git a/frontend/src/controls_panel.rs b/frontend/src/controls_panel.rs index 2c8ec0e..942df2e 100644 --- a/frontend/src/controls_panel.rs +++ b/frontend/src/controls_panel.rs @@ -219,10 +219,7 @@ impl ControlsPanel { Task::start(async move { if let Some(filename) = platform::pick_and_load_waveform(Some(file)).await { loaded_filename.set_neq(Some(filename)); - let (hierarchy, time_table) = - join!(platform::get_hierarchy(), platform::get_time_table()); - hierarchy - .set(Some((Rc::new(hierarchy), Rc::new(time_table)))) + hierarchy.set(Some(Rc::new(platform::get_hierarchy().await))) } }) }) diff --git a/frontend/src/platform/browser.rs b/frontend/src/platform/browser.rs index 94f5f35..ff18cfc 100644 --- a/frontend/src/platform/browser.rs +++ b/frontend/src/platform/browser.rs @@ -79,8 +79,13 @@ pub(super) async fn load_signal_and_get_timeline( screen_width: u32, block_height: u32, ) -> shared::Timeline { - // @TODO implement, copy from tauri platform - shared::Timeline { blocks: Vec::new() } + let mut waveform_lock = STORE.waveform.lock().unwrap(); + let waveform = waveform_lock.as_mut().unwrap(); + waveform.load_signals_multi_threaded(&[signal_ref]); + let signal = waveform.get_signal(signal_ref).unwrap(); + let time_table = waveform.time_table(); + let timeline = signal_to_timeline(signal, time_table, screen_width, block_height); + timeline } pub(super) async fn unload_signal(signal_ref: wellen::SignalRef) { @@ -88,3 +93,77 @@ pub(super) async fn unload_signal(signal_ref: wellen::SignalRef) { let waveform = waveform_lock.as_mut().unwrap_throw(); waveform.unload_signals(&[signal_ref]); } + +// @TODO keep in sync with the same method in `src-tauri/src/lib.rs` +fn signal_to_timeline( + signal: &wellen::Signal, + time_table: &[wellen::Time], + screen_width: u32, + block_height: u32, +) -> shared::Timeline { + const MIN_BLOCK_WIDTH: u32 = 3; + const LETTER_WIDTH: u32 = 15; + const LETTER_HEIGHT: u32 = 21; + const LABEL_X_PADDING: u32 = 10; + + let Some(last_time) = time_table.last().copied() else { + return shared::Timeline::default(); + }; + + let last_time = last_time as f64; + let screen_width = screen_width as f64; + + let mut x_value_pairs = signal + .iter_changes() + .map(|(index, value)| { + let index = index as usize; + let time = time_table[index] as f64; + let x = time / last_time * screen_width; + (x, value) + }) + .peekable(); + + // @TODO parallelize? + let mut blocks = Vec::new(); + while let Some((block_x, value)) = x_value_pairs.next() { + let next_block_x = if let Some((next_block_x, _)) = x_value_pairs.peek() { + *next_block_x + } else { + screen_width + }; + + let block_width = (next_block_x - block_x) as u32; + if block_width < MIN_BLOCK_WIDTH { + continue; + } + + // @TODO dynamic formatter + // @TODO optimize it by not using `.to_string` if possible + let value = value.to_string(); + let ones_and_zeros = value.chars().rev().map(|char| char.to_digit(2).unwrap()).collect::>(); + let mut base = convert_base::Convert::new(2, 16); + let output = base.convert::(&ones_and_zeros); + let value: String = output.into_iter().map(|number| char::from_digit(number, 16).unwrap()).collect(); + + let value_width = value.chars().count() as u32 * LETTER_WIDTH; + let label = if (value_width + (2 * LABEL_X_PADDING)) <= block_width { + Some(shared::TimeLineBlockLabel { + text: value, + x: (block_width - value_width) / 2, + y: (block_height - LETTER_HEIGHT) / 2, + }) + } else { + None + }; + + let block = shared::TimelineBlock { + x: block_x as u32, + width: block_width, + height: block_height, + label, + }; + blocks.push(block); + } + + shared::Timeline { blocks } +} diff --git a/frontend/src/waveform_panel.rs b/frontend/src/waveform_panel.rs index 8f3b7ae..f9a4c3d 100644 --- a/frontend/src/waveform_panel.rs +++ b/frontend/src/waveform_panel.rs @@ -62,6 +62,7 @@ impl WaveformPanel { selected_var_refs.signal_vec().delay_remove(clone!((hierarchy) move |var_ref| { clone!((var_ref, hierarchy) async move { if let Some(hierarchy) = hierarchy.get_cloned() { + // @TODO unload only when no other selected variable use it? platform::unload_signal(hierarchy.get(var_ref).signal_ref()).await; } }) diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 7ea748d..9b98a0c 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -88,6 +88,7 @@ pub fn run() { .expect("error while running tauri application"); } +// @TODO keep in sync with the same method in `frontend/src/platform/browser.rs` fn signal_to_timeline( signal: &wellen::Signal, time_table: &[wellen::Time], -- 2.50.1 From 6859c726f55eb111de92fe0046675b9a1527d3b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Kav=C3=ADk?= Date: Sat, 8 Jun 2024 23:51:30 +0200 Subject: [PATCH 14/23] selected_var_format_button --- Cargo.lock | 3 +- Cargo.toml | 1 - frontend/Cargo.toml | 1 - frontend/src/controls_panel.rs | 78 ++++++++++++---------- frontend/src/main.rs | 27 +++++--- frontend/src/platform/browser.rs | 8 +-- frontend/src/waveform_panel.rs | 43 ++++++++++-- frontend/src/waveform_panel/pixi_canvas.rs | 50 +++++++++----- shared/Cargo.toml | 1 + shared/src/lib.rs | 3 + shared/src/var_format.rs | 54 +++++++++++++++ src-tauri/Cargo.toml | 1 - src-tauri/src/lib.rs | 8 +-- 13 files changed, 191 insertions(+), 87 deletions(-) create mode 100644 shared/src/var_format.rs diff --git a/Cargo.lock b/Cargo.lock index 1100ddb..c0ef9a3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1420,7 +1420,6 @@ checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" name = "fastwave" version = "0.1.0" dependencies = [ - "convert-base", "serde", "serde_json", "shared", @@ -1506,7 +1505,6 @@ dependencies = [ name = "frontend" version = "0.1.0" dependencies = [ - "convert-base", "gloo-file", "shared", "wasm-bindgen-test", @@ -4132,6 +4130,7 @@ dependencies = [ name = "shared" version = "0.1.0" dependencies = [ + "convert-base", "futures-util", "moonlight", "wellen", diff --git a/Cargo.toml b/Cargo.toml index 6ca9a5f..5ab2fb1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,7 +16,6 @@ readme = "../README.md" publish = false [workspace.dependencies] -convert-base = "1.1.2" # wellen = { version = "0.9.9", features = ["serde1"] } # wellen = { path = "../wellen/wellen", features = ["serde1"] } wellen = { git = "https://github.com/MartinKavik/wellen", features = ["serde1"], branch = "new_pub_types" } diff --git a/frontend/Cargo.toml b/frontend/Cargo.toml index 7ba178a..930650e 100644 --- a/frontend/Cargo.toml +++ b/frontend/Cargo.toml @@ -13,7 +13,6 @@ wasm-bindgen-test = "0.3.19" [dependencies] zoon.workspace = true wellen.workspace = true -convert-base.workspace = true shared = { path = "../shared", features = ["frontend"] } web-sys = { version = "*", features = ["FileSystemFileHandle"] } gloo-file = { version = "0.3.0", features = ["futures"] } diff --git a/frontend/src/controls_panel.rs b/frontend/src/controls_panel.rs index 942df2e..69fff23 100644 --- a/frontend/src/controls_panel.rs +++ b/frontend/src/controls_panel.rs @@ -170,7 +170,8 @@ impl ControlsPanel { Label::new() .s(Padding::new().x(20).y(10)) .s(Background::new().color_signal( - hovered_signal.map_bool(|| color!("MediumSlateBlue"), || color!("SlateBlue")), + hovered_signal + .map_bool(|| color!("MediumSlateBlue"), || color!("SlateBlue")), )) .s(Align::new().left()) .s(RoundedCorners::all(15)) @@ -183,47 +184,52 @@ impl ControlsPanel { )) .on_hovered_change(move |is_hovered| hovered.set_neq(is_hovered)) .for_input(file_input_id) - .on_click_event_with_options(EventOptions::new().preventable(), clone!((hierarchy) move |event| { - let mut hierarchy_lock = hierarchy.lock_mut(); - if hierarchy_lock.is_some() { - *hierarchy_lock = None; - if let RawMouseEvent::Click(raw_event) = event.raw_event { - // @TODO Move to MoonZoon as a new API - raw_event.prevent_default(); + .on_click_event_with_options( + EventOptions::new().preventable(), + clone!((hierarchy) move |event| { + let mut hierarchy_lock = hierarchy.lock_mut(); + if hierarchy_lock.is_some() { + *hierarchy_lock = None; + if let RawMouseEvent::Click(raw_event) = event.raw_event { + // @TODO Move to MoonZoon as a new API + raw_event.prevent_default(); + } + return; } - return; - } - })) + }), + ), ) .item( // @TODO https://github.com/MoonZoon/MoonZoon/issues/39 // + https://developer.mozilla.org/en-US/docs/Web/API/File_API/Using_files_from_web_applications#using_hidden_file_input_elements_using_the_click_method - TextInput::new() - .id(file_input_id) - .update_raw_el(|raw_el| { - let dom_element = raw_el.dom_element(); - raw_el - .style("display", "none") - .attr("type", "file") - .event_handler(move |_: events::Input| { - let Some(file_list) = dom_element.files().map(gloo_file::FileList::from) else { - zoon::println!("file list is `None`"); - return; - }; - let Some(file) = file_list.first().cloned() else { - zoon::println!("file list is empty"); - return; - }; - let hierarchy = hierarchy.clone(); - let loaded_filename = loaded_filename.clone(); - Task::start(async move { - if let Some(filename) = platform::pick_and_load_waveform(Some(file)).await { - loaded_filename.set_neq(Some(filename)); - hierarchy.set(Some(Rc::new(platform::get_hierarchy().await))) - } - }) + TextInput::new().id(file_input_id).update_raw_el(|raw_el| { + let dom_element = raw_el.dom_element(); + raw_el + .style("display", "none") + .attr("type", "file") + .event_handler(move |_: events::Input| { + let Some(file_list) = + dom_element.files().map(gloo_file::FileList::from) + else { + zoon::println!("file list is `None`"); + return; + }; + let Some(file) = file_list.first().cloned() else { + zoon::println!("file list is empty"); + return; + }; + let hierarchy = hierarchy.clone(); + let loaded_filename = loaded_filename.clone(); + Task::start(async move { + if let Some(filename) = + platform::pick_and_load_waveform(Some(file)).await + { + loaded_filename.set_neq(Some(filename)); + hierarchy.set(Some(Rc::new(platform::get_hierarchy().await))) + } + }) }) - }) + }), ) } diff --git a/frontend/src/main.rs b/frontend/src/main.rs index 778d6b6..e551c3d 100644 --- a/frontend/src/main.rs +++ b/frontend/src/main.rs @@ -1,5 +1,5 @@ -use zoon::*; use std::rc::Rc; +use zoon::*; mod platform; @@ -42,13 +42,22 @@ fn root() -> impl Element { selected_var_refs.clone(), layout.clone(), )) - .item_signal(layout.signal().map(|layout| matches!(layout, Layout::Tree)).map_true(clone!((hierarchy, selected_var_refs) move || WaveformPanel::new( - hierarchy.clone(), - selected_var_refs.clone(), - )))) + .item_signal( + layout + .signal() + .map(|layout| matches!(layout, Layout::Tree)) + .map_true( + clone!((hierarchy, selected_var_refs) move || WaveformPanel::new( + hierarchy.clone(), + selected_var_refs.clone(), + )), + ), + ), + ) + .item_signal( + layout + .signal() + .map(|layout| matches!(layout, Layout::Columns)) + .map_true(move || WaveformPanel::new(hierarchy.clone(), selected_var_refs.clone())), ) - .item_signal(layout.signal().map(|layout| matches!(layout, Layout::Columns)).map_true(move || WaveformPanel::new( - hierarchy.clone(), - selected_var_refs.clone(), - ))) } diff --git a/frontend/src/platform/browser.rs b/frontend/src/platform/browser.rs index ff18cfc..f0d2ce6 100644 --- a/frontend/src/platform/browser.rs +++ b/frontend/src/platform/browser.rs @@ -137,13 +137,7 @@ fn signal_to_timeline( continue; } - // @TODO dynamic formatter - // @TODO optimize it by not using `.to_string` if possible - let value = value.to_string(); - let ones_and_zeros = value.chars().rev().map(|char| char.to_digit(2).unwrap()).collect::>(); - let mut base = convert_base::Convert::new(2, 16); - let output = base.convert::(&ones_and_zeros); - let value: String = output.into_iter().map(|number| char::from_digit(number, 16).unwrap()).collect(); + let value = shared::VarFormat::default().format(value); let value_width = value.chars().count() as u32 * LETTER_WIDTH; let label = if (value_width + (2 * LABEL_X_PADDING)) <= block_width { diff --git a/frontend/src/waveform_panel.rs b/frontend/src/waveform_panel.rs index f9a4c3d..5cdac9f 100644 --- a/frontend/src/waveform_panel.rs +++ b/frontend/src/waveform_panel.rs @@ -126,7 +126,7 @@ impl WaveformPanel { zoon::println!("{timescale:?}"); // Note: Sync `timeline`'s type with the `Timeline` in `frontend/typescript/pixi_canvas/pixi_canvas.ts' - let timeline = serde_wasm_bindgen::to_value(&timeline).unwrap_throw(); + let timeline = serde_wasm_bindgen::to_value(&timeline).unwrap_throw(); let signal_ref_index = signal_ref.index(); controller.push_var(signal_ref_index, timeline); } @@ -140,23 +140,56 @@ impl WaveformPanel { None? }; let var = hierarchy.get(var_ref); - let name: &str = var.name(&hierarchy); + Row::new() + .item(self.selected_var_name_button(var.name(&hierarchy), index)) + .item(self.selected_var_format_button()) + .apply(Some) + } + + fn selected_var_name_button( + &self, + name: &str, + index: ReadOnlyMutable>, + ) -> impl Element { let selected_var_refs = self.selected_var_refs.clone(); + let (hovered, hovered_signal) = Mutable::new_and_signal(false); Button::new() .s(Height::exact(ROW_HEIGHT)) - .s(Background::new().color(color!("SlateBlue", 0.8))) - .s(RoundedCorners::new().left(15)) + .s(Background::new().color_signal( + hovered_signal.map_bool(|| color!("SlateBlue"), || color!("SlateBlue", 0.8)), + )) + .s(RoundedCorners::new().left(15).right(5)) .label( El::new() .s(Align::center()) .s(Padding::new().left(20).right(17).y(10)) .child(name), ) + .on_hovered_change(move |is_hovered| hovered.set_neq(is_hovered)) .on_press(move || { if let Some(index) = index.get() { selected_var_refs.lock_mut().remove(index); } }) - .apply(Some) + } + + fn selected_var_format_button(&self) -> impl Element { + let var_format = Mutable::new(shared::VarFormat::default()); + let (hovered, hovered_signal) = Mutable::new_and_signal(false); + Button::new() + .s(Height::exact(ROW_HEIGHT)) + .s(Width::exact(70)) + .s(Background::new().color_signal( + hovered_signal.map_bool(|| color!("SlateBlue"), || color!("SlateBlue", 0.8)), + )) + .s(RoundedCorners::new().left(5)) + .label( + El::new() + .s(Align::center()) + .s(Padding::new().left(20).right(17).y(10)) + .child_signal(var_format.signal().map(|format| format.as_static_str())), + ) + .on_hovered_change(move |is_hovered| hovered.set_neq(is_hovered)) + .on_press(move || var_format.update(|format| format.next())) } } diff --git a/frontend/src/waveform_panel/pixi_canvas.rs b/frontend/src/waveform_panel/pixi_canvas.rs index b0a5687..95f6eb8 100644 --- a/frontend/src/waveform_panel/pixi_canvas.rs +++ b/frontend/src/waveform_panel/pixi_canvas.rs @@ -1,7 +1,7 @@ -pub use js_bridge::PixiController; -use zoon::*; -use std::rc::Rc; use crate::platform; +pub use js_bridge::PixiController; +use std::rc::Rc; +use zoon::*; pub struct PixiCanvas { raw_el: RawHtmlEl, @@ -41,22 +41,31 @@ impl PixiCanvas { let height = height.signal() => (*width, *height) } .throttle(|| Timer::sleep(50)) - .for_each(clone!((controller) move |(width, height)| clone!((controller) async move { - if let Some(controller) = controller.lock_ref().as_ref() { - controller.resize(width, height).await - } - }))), + .for_each( + clone!((controller) move |(width, height)| clone!((controller) async move { + if let Some(controller) = controller.lock_ref().as_ref() { + controller.resize(width, height).await + } + })), + ), ); let task_with_controller = Mutable::new(None); // -- FastWave-specific -- - let timeline_getter = Rc::new(Closure::new(|signal_ref_index, screen_width, row_height| { - future_to_promise(async move { - let signal_ref = wellen::SignalRef::from_index(signal_ref_index).unwrap_throw(); - let timeline = platform::load_signal_and_get_timeline(signal_ref, screen_width, row_height).await; - let timeline = serde_wasm_bindgen::to_value(&timeline).unwrap_throw(); - Ok(timeline) - }) - })); + let timeline_getter = Rc::new(Closure::new( + |signal_ref_index, screen_width, row_height| { + future_to_promise(async move { + let signal_ref = wellen::SignalRef::from_index(signal_ref_index).unwrap_throw(); + let timeline = platform::load_signal_and_get_timeline( + signal_ref, + screen_width, + row_height, + ) + .await; + let timeline = serde_wasm_bindgen::to_value(&timeline).unwrap_throw(); + Ok(timeline) + }) + }, + )); // -- // -- Self { controller: controller.read_only(), @@ -105,7 +114,8 @@ mod js_bridge { type SignalRefIndex = usize; type ScreenWidth = u32; type RowHeight = u32; - type TimelineGetter = Closure TimelinePromise>; + type TimelineGetter = + Closure TimelinePromise>; // Note: Add all corresponding methods to `frontend/typescript/pixi_canvas/pixi_canvas.ts` #[wasm_bindgen(module = "/typescript/bundles/pixi_canvas.js")] @@ -115,7 +125,11 @@ mod js_bridge { // @TODO `row_height` and `row_gap` is FastWave-specific #[wasm_bindgen(constructor)] - pub fn new(row_height: u32, row_gap: u32, timeline_getter: &TimelineGetter) -> PixiController; + pub fn new( + row_height: u32, + row_gap: u32, + timeline_getter: &TimelineGetter, + ) -> PixiController; #[wasm_bindgen(method)] pub async fn init(this: &PixiController, parent_element: &JsValue); diff --git a/shared/Cargo.toml b/shared/Cargo.toml index 0583e93..29e17bc 100644 --- a/shared/Cargo.toml +++ b/shared/Cargo.toml @@ -10,6 +10,7 @@ publish.workspace = true [dependencies] wellen.workspace = true moonlight.workspace = true +convert-base = "1.1.2" # @TODO update `futures_util_ext` - add feature `sink`, set exact `futures-util` version futures-util = { version = "0.3.30", features = ["sink"] } diff --git a/shared/src/lib.rs b/shared/src/lib.rs index d6abfe6..21f98e8 100644 --- a/shared/src/lib.rs +++ b/shared/src/lib.rs @@ -1,5 +1,8 @@ use moonlight::*; +mod var_format; +pub use var_format::VarFormat; + pub mod wellen_helpers; #[derive(Serialize, Deserialize, Debug, Default)] diff --git a/shared/src/var_format.rs b/shared/src/var_format.rs new file mode 100644 index 0000000..5d9eb9f --- /dev/null +++ b/shared/src/var_format.rs @@ -0,0 +1,54 @@ +#[derive(Default, Clone, Copy, Debug)] +pub enum VarFormat { + ASCII, + Binary, + BinaryWithGroups, + #[default] + Hexadecimal, + Octal, + Signed, + Unsigned, +} + +impl VarFormat { + pub fn as_static_str(&self) -> &'static str { + match self { + VarFormat::ASCII => "Text", + VarFormat::Binary => "Bin", + VarFormat::BinaryWithGroups => "Bins", + VarFormat::Hexadecimal => "Hex", + VarFormat::Octal => "Oct", + VarFormat::Signed => "i32", + VarFormat::Unsigned => "u32", + } + } + + pub fn next(&self) -> Self { + match self { + VarFormat::ASCII => VarFormat::Binary, + VarFormat::Binary => VarFormat::BinaryWithGroups, + VarFormat::BinaryWithGroups => VarFormat::Hexadecimal, + VarFormat::Hexadecimal => VarFormat::Octal, + VarFormat::Octal => VarFormat::Signed, + VarFormat::Signed => VarFormat::Unsigned, + VarFormat::Unsigned => VarFormat::ASCII, + } + } + + pub fn format(&self, value: wellen::SignalValue) -> String { + // @TODO optimize it by not using `.to_string` if possible + let value = value.to_string(); + let ones_and_zeros = value + .chars() + .rev() + .map(|char| char.to_digit(2).unwrap()) + .collect::>(); + let mut base = convert_base::Convert::new(2, 16); + let output = base.convert::(&ones_and_zeros); + let value: String = output + .into_iter() + .map(|number| char::from_digit(number, 16).unwrap()) + .collect(); + value + } +} diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 66394d0..490242c 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -17,7 +17,6 @@ tauri-build = { version = "=2.0.0-beta.17", features = [] } [dependencies] wellen.workspace = true -convert-base.workspace = true shared = { path = "../shared", features = ["backend"] } serde_json = "1.0" serde = { version = "1.0", features = ["derive"] } diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 9b98a0c..3ba64ea 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -131,13 +131,7 @@ fn signal_to_timeline( continue; } - // @TODO dynamic formatter - // @TODO optimize it by not using `.to_string` if possible - let value = value.to_string(); - let ones_and_zeros = value.chars().rev().map(|char| char.to_digit(2).unwrap()).collect::>(); - let mut base = convert_base::Convert::new(2, 16); - let output = base.convert::(&ones_and_zeros); - let value: String = output.into_iter().map(|number| char::from_digit(number, 16).unwrap()).collect(); + let value = shared::VarFormat::default().format(value); let value_width = value.chars().count() as u32 * LETTER_WIDTH; let label = if (value_width + (2 * LABEL_X_PADDING)) <= block_width { -- 2.50.1 From d09caf835cbd8a931576563d1e1a53619811992f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Kav=C3=ADk?= Date: Sun, 9 Jun 2024 01:38:44 +0200 Subject: [PATCH 15/23] tauri dev watches shared, VarFormat::format --- .taurignore | 1 + MoonZoon.toml | 4 +- shared/src/var_format.rs | 115 ++++++++++++++++++++++++++++++++++----- 3 files changed, 104 insertions(+), 16 deletions(-) diff --git a/.taurignore b/.taurignore index 669df74..74cd7c0 100644 --- a/.taurignore +++ b/.taurignore @@ -1,2 +1,3 @@ /* !/src-tauri +!/shared diff --git a/MoonZoon.toml b/MoonZoon.toml index 3e0c013..d53ee41 100644 --- a/MoonZoon.toml +++ b/MoonZoon.toml @@ -15,8 +15,10 @@ origins = ["*"] frontend = [ "public", "frontend/Cargo.toml", - "frontend/typescript/bundles", "frontend/src", + "frontend/typescript/bundles", + "shared/Cargo.toml", + "shared/src", ] backend = [ "backend/Cargo.toml", diff --git a/shared/src/var_format.rs b/shared/src/var_format.rs index 5d9eb9f..1185ba4 100644 --- a/shared/src/var_format.rs +++ b/shared/src/var_format.rs @@ -3,9 +3,10 @@ pub enum VarFormat { ASCII, Binary, BinaryWithGroups, - #[default] + // #[default] Hexadecimal, Octal, + #[default] Signed, Unsigned, } @@ -18,8 +19,8 @@ impl VarFormat { VarFormat::BinaryWithGroups => "Bins", VarFormat::Hexadecimal => "Hex", VarFormat::Octal => "Oct", - VarFormat::Signed => "i32", - VarFormat::Unsigned => "u32", + VarFormat::Signed => "Int", + VarFormat::Unsigned => "UInt", } } @@ -38,17 +39,101 @@ impl VarFormat { pub fn format(&self, value: wellen::SignalValue) -> String { // @TODO optimize it by not using `.to_string` if possible let value = value.to_string(); - let ones_and_zeros = value - .chars() - .rev() - .map(|char| char.to_digit(2).unwrap()) - .collect::>(); - let mut base = convert_base::Convert::new(2, 16); - let output = base.convert::(&ones_and_zeros); - let value: String = output - .into_iter() - .map(|number| char::from_digit(number, 16).unwrap()) - .collect(); - value + if value.is_empty() { + return value; + } + match self { + VarFormat::ASCII => { + // @TODO + value + }, + VarFormat::Binary => { + value + }, + VarFormat::BinaryWithGroups => { + // @TODO + value + }, + VarFormat::Hexadecimal => { + let ones_and_zeros = value + .chars() + .rev() + .map(|char| char.to_digit(2).unwrap()) + .collect::>(); + let mut base = convert_base::Convert::new(2, 16); + let output = base.convert::(&ones_and_zeros); + let value: String = output + .into_iter() + .rev() + .map(|number| char::from_digit(number, 16).unwrap()) + .collect(); + value + }, + VarFormat::Octal => { + let ones_and_zeros = value + .chars() + .rev() + .map(|char| char.to_digit(2).unwrap()) + .collect::>(); + let mut base = convert_base::Convert::new(2, 8); + let output = base.convert::(&ones_and_zeros); + let value: String = output + .into_iter() + .rev() + .map(|number| char::from_digit(number, 8).unwrap()) + .collect(); + value + }, + VarFormat::Signed => { + let mut ones_and_zeros = value + .chars() + .rev() + .map(|char| char.to_digit(2).unwrap()) + .collect::>(); + + // https://builtin.com/articles/twos-complement + let sign = if ones_and_zeros.last().unwrap() == &0 { "" } else { "-" }; + if sign == "-" { + let mut one_found = false; + for one_or_zero in &mut ones_and_zeros { + if one_found { + *one_or_zero = if one_or_zero == &0 { + 1 + } else { + 0 + } + } else if one_or_zero == &1 { + one_found = true; + } + } + } + + let mut base = convert_base::Convert::new(2, 10); + let output = base.convert::(&ones_and_zeros); + let value_without_sign: String = output + .into_iter() + .rev() + .map(|number| char::from_digit(number, 10).unwrap()) + .collect(); + // @TODO chain `sign` before collecting? + let value = sign.to_owned() + &value_without_sign; + value + }, + VarFormat::Unsigned => { + let ones_and_zeros = value + .chars() + .rev() + .map(|char| char.to_digit(2).unwrap()) + .collect::>(); + let mut base = convert_base::Convert::new(2, 10); + let output = base.convert::(&ones_and_zeros); + let value: String = output + .into_iter() + .rev() + .map(|number| char::from_digit(number, 10).unwrap()) + .collect(); + value + }, + } } } -- 2.50.1 From 6926b0176fe56da4c3a61f98a490e0267f4446e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Kav=C3=ADk?= Date: Sun, 9 Jun 2024 19:41:35 +0200 Subject: [PATCH 16/23] format BinaryWithGroups and ASCII --- frontend/src/platform/browser.rs | 7 ++- frontend/src/waveform_panel.rs | 3 +- frontend/typescript/bundles/pixi_canvas.js | 2 +- .../typescript/pixi_canvas/pixi_canvas.ts | 2 +- shared/src/var_format.rs | 52 ++++++++++++------- src-tauri/src/lib.rs | 7 ++- 6 files changed, 46 insertions(+), 27 deletions(-) diff --git a/frontend/src/platform/browser.rs b/frontend/src/platform/browser.rs index f0d2ce6..dfd4041 100644 --- a/frontend/src/platform/browser.rs +++ b/frontend/src/platform/browser.rs @@ -102,7 +102,8 @@ fn signal_to_timeline( block_height: u32, ) -> shared::Timeline { const MIN_BLOCK_WIDTH: u32 = 3; - const LETTER_WIDTH: u32 = 15; + // Courier New, 16px, sync with `label_style` in `pixi_canvas.rs` + const LETTER_WIDTH: f64 = 9.61; const LETTER_HEIGHT: u32 = 21; const LABEL_X_PADDING: u32 = 10; @@ -137,9 +138,11 @@ fn signal_to_timeline( continue; } + // @TODO cache? let value = shared::VarFormat::default().format(value); - let value_width = value.chars().count() as u32 * LETTER_WIDTH; + let value_width = (value.chars().count() as f64 * LETTER_WIDTH) as u32; + // @TODO Ellipsis instead of hiding? let label = if (value_width + (2 * LABEL_X_PADDING)) <= block_width { Some(shared::TimeLineBlockLabel { text: value, diff --git a/frontend/src/waveform_panel.rs b/frontend/src/waveform_panel.rs index 5cdac9f..87e74ad 100644 --- a/frontend/src/waveform_panel.rs +++ b/frontend/src/waveform_panel.rs @@ -155,13 +155,14 @@ impl WaveformPanel { let (hovered, hovered_signal) = Mutable::new_and_signal(false); Button::new() .s(Height::exact(ROW_HEIGHT)) + .s(Width::growable()) .s(Background::new().color_signal( hovered_signal.map_bool(|| color!("SlateBlue"), || color!("SlateBlue", 0.8)), )) .s(RoundedCorners::new().left(15).right(5)) .label( El::new() - .s(Align::center()) + .s(Align::new().left()) .s(Padding::new().left(20).right(17).y(10)) .child(name), ) diff --git a/frontend/typescript/bundles/pixi_canvas.js b/frontend/typescript/bundles/pixi_canvas.js index 435ea5f..c253d19 100644 --- a/frontend/typescript/bundles/pixi_canvas.js +++ b/frontend/typescript/bundles/pixi_canvas.js @@ -35221,7 +35221,7 @@ var VarSignalRow = class { align: "center", fill: "White", fontSize: 16, - fontFamily: 'system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"' + fontFamily: '"Courier New", monospace' }); constructor(signal_ref_index, timeline, app, owner, rows_container, row_height, row_gap) { this.signal_ref_index = signal_ref_index; diff --git a/frontend/typescript/pixi_canvas/pixi_canvas.ts b/frontend/typescript/pixi_canvas/pixi_canvas.ts index cb69e41..390ac21 100644 --- a/frontend/typescript/pixi_canvas/pixi_canvas.ts +++ b/frontend/typescript/pixi_canvas/pixi_canvas.ts @@ -125,7 +125,7 @@ class VarSignalRow { align: "center", fill: "White", fontSize: 16, - fontFamily: 'system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"', + fontFamily: '"Courier New", monospace', }); constructor( diff --git a/shared/src/var_format.rs b/shared/src/var_format.rs index 1185ba4..4f9a51c 100644 --- a/shared/src/var_format.rs +++ b/shared/src/var_format.rs @@ -3,10 +3,9 @@ pub enum VarFormat { ASCII, Binary, BinaryWithGroups, - // #[default] + #[default] Hexadecimal, Octal, - #[default] Signed, Unsigned, } @@ -44,16 +43,29 @@ impl VarFormat { } match self { VarFormat::ASCII => { - // @TODO - value - }, - VarFormat::Binary => { - value - }, + let mut formatted_value = String::new(); + for group_index in 0..value.len() / 8 { + let offset = group_index * 8; + let group = &value[offset..offset + 8]; + if let Ok(byte_char) = u8::from_str_radix(group, 2) { + formatted_value.push(byte_char as char); + } + } + formatted_value + } + VarFormat::Binary => value, VarFormat::BinaryWithGroups => { - // @TODO value - }, + .chars() + .enumerate() + .fold(String::new(), |mut value, (index, one_or_zero)| { + value.push(one_or_zero); + if (index + 1) % 4 == 0 { + value.push(' '); + } + value + }) + } VarFormat::Hexadecimal => { let ones_and_zeros = value .chars() @@ -68,7 +80,7 @@ impl VarFormat { .map(|number| char::from_digit(number, 16).unwrap()) .collect(); value - }, + } VarFormat::Octal => { let ones_and_zeros = value .chars() @@ -83,7 +95,7 @@ impl VarFormat { .map(|number| char::from_digit(number, 8).unwrap()) .collect(); value - }, + } VarFormat::Signed => { let mut ones_and_zeros = value .chars() @@ -92,16 +104,16 @@ impl VarFormat { .collect::>(); // https://builtin.com/articles/twos-complement - let sign = if ones_and_zeros.last().unwrap() == &0 { "" } else { "-" }; + let sign = if ones_and_zeros.last().unwrap() == &0 { + "" + } else { + "-" + }; if sign == "-" { let mut one_found = false; for one_or_zero in &mut ones_and_zeros { if one_found { - *one_or_zero = if one_or_zero == &0 { - 1 - } else { - 0 - } + *one_or_zero = if one_or_zero == &0 { 1 } else { 0 } } else if one_or_zero == &1 { one_found = true; } @@ -118,7 +130,7 @@ impl VarFormat { // @TODO chain `sign` before collecting? let value = sign.to_owned() + &value_without_sign; value - }, + } VarFormat::Unsigned => { let ones_and_zeros = value .chars() @@ -133,7 +145,7 @@ impl VarFormat { .map(|number| char::from_digit(number, 10).unwrap()) .collect(); value - }, + } } } } diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 3ba64ea..c51649b 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -96,7 +96,8 @@ fn signal_to_timeline( block_height: u32, ) -> shared::Timeline { const MIN_BLOCK_WIDTH: u32 = 3; - const LETTER_WIDTH: u32 = 15; + // Courier New, 16px, sync with `label_style` in `pixi_canvas.rs` + const LETTER_WIDTH: f64 = 9.61; const LETTER_HEIGHT: u32 = 21; const LABEL_X_PADDING: u32 = 10; @@ -131,9 +132,11 @@ fn signal_to_timeline( continue; } + // @TODO cache? let value = shared::VarFormat::default().format(value); - let value_width = value.chars().count() as u32 * LETTER_WIDTH; + let value_width = (value.chars().count() as f64 * LETTER_WIDTH) as u32; + // @TODO Ellipsis instead of hiding? let label = if (value_width + (2 * LABEL_X_PADDING)) <= block_width { Some(shared::TimeLineBlockLabel { text: value, -- 2.50.1 From 1ed1661b16106c9ede8ba56291bcc4b975c6456e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Kav=C3=ADk?= Date: Sun, 9 Jun 2024 22:53:02 +0200 Subject: [PATCH 17/23] set_var_format --- frontend/src/platform.rs | 3 +- frontend/src/platform/browser.rs | 8 ++-- frontend/src/platform/tauri.rs | 14 ++++-- frontend/src/waveform_panel.rs | 31 ++++++++++-- frontend/src/waveform_panel/pixi_canvas.rs | 16 +++++-- frontend/typescript/bundles/pixi_canvas.js | 30 ++++++++++-- frontend/typescript/bundles/tauri_glue.js | 4 +- .../typescript/pixi_canvas/pixi_canvas.ts | 47 ++++++++++++++++--- frontend/typescript/tauri_glue/tauri_glue.ts | 10 +++- shared/src/var_format.rs | 9 +++- src-tauri/src/lib.rs | 8 ++-- 11 files changed, 145 insertions(+), 35 deletions(-) diff --git a/frontend/src/platform.rs b/frontend/src/platform.rs index 7e60fd9..967468e 100644 --- a/frontend/src/platform.rs +++ b/frontend/src/platform.rs @@ -33,8 +33,9 @@ pub async fn load_signal_and_get_timeline( signal_ref: wellen::SignalRef, screen_width: u32, block_height: u32, + var_format: shared::VarFormat, ) -> shared::Timeline { - platform::load_signal_and_get_timeline(signal_ref, screen_width, block_height).await + platform::load_signal_and_get_timeline(signal_ref, screen_width, block_height, var_format).await } pub async fn unload_signal(signal_ref: wellen::SignalRef) { diff --git a/frontend/src/platform/browser.rs b/frontend/src/platform/browser.rs index dfd4041..8192d25 100644 --- a/frontend/src/platform/browser.rs +++ b/frontend/src/platform/browser.rs @@ -78,13 +78,14 @@ pub(super) async fn load_signal_and_get_timeline( signal_ref: wellen::SignalRef, screen_width: u32, block_height: u32, + var_format: shared::VarFormat, ) -> shared::Timeline { let mut waveform_lock = STORE.waveform.lock().unwrap(); let waveform = waveform_lock.as_mut().unwrap(); waveform.load_signals_multi_threaded(&[signal_ref]); let signal = waveform.get_signal(signal_ref).unwrap(); let time_table = waveform.time_table(); - let timeline = signal_to_timeline(signal, time_table, screen_width, block_height); + let timeline = signal_to_timeline(signal, time_table, screen_width, block_height, var_format); timeline } @@ -100,11 +101,12 @@ fn signal_to_timeline( time_table: &[wellen::Time], screen_width: u32, block_height: u32, + var_format: shared::VarFormat, ) -> shared::Timeline { const MIN_BLOCK_WIDTH: u32 = 3; // Courier New, 16px, sync with `label_style` in `pixi_canvas.rs` const LETTER_WIDTH: f64 = 9.61; - const LETTER_HEIGHT: u32 = 21; + const LETTER_HEIGHT: u32 = 18; const LABEL_X_PADDING: u32 = 10; let Some(last_time) = time_table.last().copied() else { @@ -139,7 +141,7 @@ fn signal_to_timeline( } // @TODO cache? - let value = shared::VarFormat::default().format(value); + let value = var_format.format(value); let value_width = (value.chars().count() as f64 * LETTER_WIDTH) as u32; // @TODO Ellipsis instead of hiding? diff --git a/frontend/src/platform/tauri.rs b/frontend/src/platform/tauri.rs index 853dc4a..e376506 100644 --- a/frontend/src/platform/tauri.rs +++ b/frontend/src/platform/tauri.rs @@ -21,11 +21,18 @@ pub(super) async fn load_signal_and_get_timeline( signal_ref: wellen::SignalRef, screen_width: u32, block_height: u32, + var_format: shared::VarFormat, ) -> shared::Timeline { + let var_format = serde_wasm_bindgen::to_value(&var_format).unwrap_throw(); serde_wasm_bindgen::from_value( - tauri_glue::load_signal_and_get_timeline(signal_ref.index(), screen_width, block_height) - .await - .unwrap_throw(), + tauri_glue::load_signal_and_get_timeline( + signal_ref.index(), + screen_width, + block_height, + var_format, + ) + .await + .unwrap_throw(), ) .unwrap_throw() } @@ -56,6 +63,7 @@ mod tauri_glue { signal_ref_index: usize, screen_width: u32, block_height: u32, + var_format: JsValue, ) -> Result; #[wasm_bindgen(catch)] diff --git a/frontend/src/waveform_panel.rs b/frontend/src/waveform_panel.rs index 87e74ad..0548f2a 100644 --- a/frontend/src/waveform_panel.rs +++ b/frontend/src/waveform_panel.rs @@ -13,6 +13,7 @@ const ROW_GAP: u32 = 4; pub struct WaveformPanel { selected_var_refs: MutableVec, hierarchy: Mutable>>, + canvas_controller: Mutable>>, } impl WaveformPanel { @@ -23,6 +24,7 @@ impl WaveformPanel { Self { selected_var_refs, hierarchy, + canvas_controller: Mutable::new(Mutable::default().read_only()), } .root() } @@ -54,11 +56,13 @@ impl WaveformPanel { fn canvas(&self, selected_vars_panel_height: ReadOnlyMutable) -> impl Element { let selected_var_refs = self.selected_var_refs.clone(); let hierarchy = self.hierarchy.clone(); + let canvas_controller = self.canvas_controller.clone(); PixiCanvas::new(ROW_HEIGHT, ROW_GAP) .s(Align::new().top()) .s(Width::fill()) .s(Height::exact_signal(selected_vars_panel_height.signal())) .task_with_controller(move |controller| { + canvas_controller.set(controller.clone()); selected_var_refs.signal_vec().delay_remove(clone!((hierarchy) move |var_ref| { clone!((var_ref, hierarchy) async move { if let Some(hierarchy) = hierarchy.get_cloned() { @@ -112,12 +116,15 @@ impl WaveformPanel { ) { let hierarchy = hierarchy.get_cloned().unwrap(); + let var_format = shared::VarFormat::default(); + let var = hierarchy.get(var_ref); let signal_ref = var.signal_ref(); let timeline = platform::load_signal_and_get_timeline( signal_ref, controller.screen_width(), ROW_HEIGHT, + var_format, ) .await; @@ -128,7 +135,8 @@ impl WaveformPanel { // Note: Sync `timeline`'s type with the `Timeline` in `frontend/typescript/pixi_canvas/pixi_canvas.ts' let timeline = serde_wasm_bindgen::to_value(&timeline).unwrap_throw(); let signal_ref_index = signal_ref.index(); - controller.push_var(signal_ref_index, timeline); + let var_format = serde_wasm_bindgen::to_value(&var_format).unwrap_throw(); + controller.push_var(signal_ref_index, timeline, var_format); } fn selected_var_panel( @@ -141,8 +149,8 @@ impl WaveformPanel { }; let var = hierarchy.get(var_ref); Row::new() - .item(self.selected_var_name_button(var.name(&hierarchy), index)) - .item(self.selected_var_format_button()) + .item(self.selected_var_name_button(var.name(&hierarchy), index.clone())) + .item(self.selected_var_format_button(index)) .apply(Some) } @@ -174,9 +182,10 @@ impl WaveformPanel { }) } - fn selected_var_format_button(&self) -> impl Element { + fn selected_var_format_button(&self, index: ReadOnlyMutable>) -> impl Element { let var_format = Mutable::new(shared::VarFormat::default()); let (hovered, hovered_signal) = Mutable::new_and_signal(false); + let canvas_controller = self.canvas_controller.clone(); Button::new() .s(Height::exact(ROW_HEIGHT)) .s(Width::exact(70)) @@ -191,6 +200,18 @@ impl WaveformPanel { .child_signal(var_format.signal().map(|format| format.as_static_str())), ) .on_hovered_change(move |is_hovered| hovered.set_neq(is_hovered)) - .on_press(move || var_format.update(|format| format.next())) + .on_press(move || { + let next_format = var_format.get().next(); + var_format.set(next_format); + if let Some(canvas_controller) = canvas_controller.get_cloned().lock_ref().as_ref() + { + if let Some(index) = index.get() { + canvas_controller.set_var_format( + index, + serde_wasm_bindgen::to_value(&next_format).unwrap_throw(), + ); + } + } + }) } } diff --git a/frontend/src/waveform_panel/pixi_canvas.rs b/frontend/src/waveform_panel/pixi_canvas.rs index 95f6eb8..f577110 100644 --- a/frontend/src/waveform_panel/pixi_canvas.rs +++ b/frontend/src/waveform_panel/pixi_canvas.rs @@ -52,13 +52,14 @@ impl PixiCanvas { let task_with_controller = Mutable::new(None); // -- FastWave-specific -- let timeline_getter = Rc::new(Closure::new( - |signal_ref_index, screen_width, row_height| { + |signal_ref_index, screen_width, row_height, var_format| { future_to_promise(async move { let signal_ref = wellen::SignalRef::from_index(signal_ref_index).unwrap_throw(); let timeline = platform::load_signal_and_get_timeline( signal_ref, screen_width, row_height, + serde_wasm_bindgen::from_value(var_format).unwrap_throw(), ) .await; let timeline = serde_wasm_bindgen::to_value(&timeline).unwrap_throw(); @@ -114,8 +115,9 @@ mod js_bridge { type SignalRefIndex = usize; type ScreenWidth = u32; type RowHeight = u32; + type VarFormatJs = JsValue; type TimelineGetter = - Closure TimelinePromise>; + Closure TimelinePromise>; // Note: Add all corresponding methods to `frontend/typescript/pixi_canvas/pixi_canvas.ts` #[wasm_bindgen(module = "/typescript/bundles/pixi_canvas.js")] @@ -145,11 +147,19 @@ mod js_bridge { // -- FastWave-specific -- + #[wasm_bindgen(method)] + pub fn set_var_format(this: &PixiController, index: usize, var_format: JsValue); + #[wasm_bindgen(method)] pub fn remove_var(this: &PixiController, index: usize); #[wasm_bindgen(method)] - pub fn push_var(this: &PixiController, signal_ref_index: usize, timeline: JsValue); + pub fn push_var( + this: &PixiController, + signal_ref_index: usize, + timeline: JsValue, + var_format: JsValue, + ); #[wasm_bindgen(method)] pub fn pop_var(this: &PixiController); diff --git a/frontend/typescript/bundles/pixi_canvas.js b/frontend/typescript/bundles/pixi_canvas.js index c253d19..3291b1f 100644 --- a/frontend/typescript/bundles/pixi_canvas.js +++ b/frontend/typescript/bundles/pixi_canvas.js @@ -35156,7 +35156,7 @@ var PixiController = class { const width_changed = width !== this.previous_parent_width; this.previous_parent_width = width; if (width_changed) { - await this.redraw_rows(); + await this.redraw_all_rows(); } } destroy() { @@ -35175,20 +35175,35 @@ var PixiController = class { return this.app.screen.width; } // -- FastWave-specific -- - async redraw_rows() { + async redraw_all_rows() { await Promise.all(this.var_signal_rows.map(async (row) => { - const timeline = await this.timeline_getter(row.signal_ref_index, this.app.screen.width, this.row_height); + const timeline = await this.timeline_getter(row.signal_ref_index, this.app.screen.width, this.row_height, row.var_format); row.redraw(timeline); })); } + async redraw_row(index) { + const row = this.var_signal_rows[index]; + if (typeof row !== "undefined") { + const timeline = await this.timeline_getter(row.signal_ref_index, this.app.screen.width, this.row_height, row.var_format); + row.redraw(timeline); + } + } + async set_var_format(index, var_format) { + const row = this.var_signal_rows[index]; + if (typeof row !== "undefined") { + row.set_var_format(var_format); + this.redraw_row(index); + } + } remove_var(index) { if (typeof this.var_signal_rows[index] !== "undefined") { this.var_signal_rows[index].destroy(); } } - push_var(signal_ref_index, timeline) { + push_var(signal_ref_index, timeline, var_format) { new VarSignalRow( signal_ref_index, + var_format, timeline, this.app, this.var_signal_rows, @@ -35206,6 +35221,7 @@ var PixiController = class { }; var VarSignalRow = class { signal_ref_index; + var_format; timeline; app; owner; @@ -35223,8 +35239,9 @@ var VarSignalRow = class { fontSize: 16, fontFamily: '"Courier New", monospace' }); - constructor(signal_ref_index, timeline, app, owner, rows_container, row_height, row_gap) { + constructor(signal_ref_index, var_format, timeline, app, owner, rows_container, row_height, row_gap) { this.signal_ref_index = signal_ref_index; + this.var_format = var_format; this.timeline = timeline; this.app = app; this.row_height = row_height; @@ -35244,6 +35261,9 @@ var VarSignalRow = class { this.row_container.addChild(this.signal_blocks_container); this.draw(); } + set_var_format(var_format) { + this.var_format = var_format; + } redraw(timeline) { this.timeline = timeline; this.draw(); diff --git a/frontend/typescript/bundles/tauri_glue.js b/frontend/typescript/bundles/tauri_glue.js index 9bb4b24..c4cf8f8 100644 --- a/frontend/typescript/bundles/tauri_glue.js +++ b/frontend/typescript/bundles/tauri_glue.js @@ -2520,8 +2520,8 @@ async function pick_and_load_waveform() { async function get_hierarchy() { return await invoke2("get_hierarchy"); } -async function load_signal_and_get_timeline(signal_ref_index, screen_width, block_height) { - return await invoke2("load_signal_and_get_timeline", { signal_ref_index, screen_width, block_height }); +async function load_signal_and_get_timeline(signal_ref_index, screen_width, block_height, var_format) { + return await invoke2("load_signal_and_get_timeline", { signal_ref_index, screen_width, block_height, var_format }); } async function unload_signal(signal_ref_index) { return await invoke2("unload_signal", { signal_ref_index }); diff --git a/frontend/typescript/pixi_canvas/pixi_canvas.ts b/frontend/typescript/pixi_canvas/pixi_canvas.ts index 390ac21..021dee9 100644 --- a/frontend/typescript/pixi_canvas/pixi_canvas.ts +++ b/frontend/typescript/pixi_canvas/pixi_canvas.ts @@ -16,7 +16,18 @@ type TimeLineBlockLabel = { y: number, } -type TimelineGetter = (signal_ref_index: number, screen_width: number, row_height: number) => Promise; +// @TODO sync with Rust +enum VarFormat { + ASCII, + Binary, + BinaryWithGroups, + Hexadecimal, + Octal, + Signed, + Unsigned, +} + +type TimelineGetter = (signal_ref_index: number, screen_width: number, row_height: number, var_format: VarFormat) => Promise; export class PixiController { app: Application @@ -26,7 +37,7 @@ export class PixiController { row_height: number; row_gap: number; previous_parent_width: number | null; - timeline_getter: TimelineGetter + timeline_getter: TimelineGetter; constructor(row_height: number, row_gap: number, timeline_getter: TimelineGetter) { this.app = new Application(); @@ -51,7 +62,7 @@ export class PixiController { const width_changed = width !== this.previous_parent_width; this.previous_parent_width = width; if (width_changed) { - await this.redraw_rows(); + await this.redraw_all_rows(); } } @@ -74,22 +85,39 @@ export class PixiController { // -- FastWave-specific -- - async redraw_rows() { + async redraw_all_rows() { await Promise.all(this.var_signal_rows.map(async row => { - const timeline = await this.timeline_getter(row.signal_ref_index, this.app.screen.width, this.row_height); + const timeline = await this.timeline_getter(row.signal_ref_index, this.app.screen.width, this.row_height, row.var_format); row.redraw(timeline); })) } + async redraw_row(index: number) { + const row = this.var_signal_rows[index]; + if (typeof row !== 'undefined') { + const timeline = await this.timeline_getter(row.signal_ref_index, this.app.screen.width, this.row_height, row.var_format); + row.redraw(timeline); + } + } + + async set_var_format(index: number, var_format: VarFormat) { + const row = this.var_signal_rows[index]; + if (typeof row !== 'undefined') { + row.set_var_format(var_format); + this.redraw_row(index); + } + } + remove_var(index: number) { if (typeof this.var_signal_rows[index] !== 'undefined') { this.var_signal_rows[index].destroy(); } } - push_var(signal_ref_index: number, timeline: Timeline) { + push_var(signal_ref_index: number, timeline: Timeline, var_format: VarFormat) { new VarSignalRow( signal_ref_index, + var_format, timeline, this.app, this.var_signal_rows, @@ -110,6 +138,7 @@ export class PixiController { class VarSignalRow { signal_ref_index: number; + var_format: VarFormat; timeline: Timeline; app: Application; owner: Array; @@ -130,6 +159,7 @@ class VarSignalRow { constructor( signal_ref_index: number, + var_format: VarFormat, timeline: Timeline, app: Application, owner: Array, @@ -138,6 +168,7 @@ class VarSignalRow { row_gap: number, ) { this.signal_ref_index = signal_ref_index; + this.var_format = var_format; this.timeline = timeline; this.app = app; @@ -168,6 +199,10 @@ class VarSignalRow { this.draw(); } + set_var_format(var_format: VarFormat) { + this.var_format = var_format; + } + redraw(timeline: Timeline) { this.timeline = timeline; this.draw(); diff --git a/frontend/typescript/tauri_glue/tauri_glue.ts b/frontend/typescript/tauri_glue/tauri_glue.ts index f686f6c..7231c40 100644 --- a/frontend/typescript/tauri_glue/tauri_glue.ts +++ b/frontend/typescript/tauri_glue/tauri_glue.ts @@ -9,6 +9,7 @@ type WellenHierarchy = unknown; type WellenTimeTable = unknown; type WellenSignal = unknown; type Timeline = unknown; +type VarFormat = unknown; export async function show_window(): Promise { return await invoke("show_window"); @@ -22,8 +23,13 @@ export async function get_hierarchy(): Promise { return await invoke("get_hierarchy"); } -export async function load_signal_and_get_timeline(signal_ref_index: number, screen_width: number, block_height: number): Promise { - return await invoke("load_signal_and_get_timeline", { signal_ref_index, screen_width, block_height }); +export async function load_signal_and_get_timeline( + signal_ref_index: number, + screen_width: number, + block_height: number, + var_format: VarFormat, +): Promise { + return await invoke("load_signal_and_get_timeline", { signal_ref_index, screen_width, block_height, var_format }); } export async function unload_signal(signal_ref_index: number): Promise { diff --git a/shared/src/var_format.rs b/shared/src/var_format.rs index 4f9a51c..dc1d844 100644 --- a/shared/src/var_format.rs +++ b/shared/src/var_format.rs @@ -1,4 +1,7 @@ -#[derive(Default, Clone, Copy, Debug)] +use moonlight::*; + +#[derive(Default, Clone, Copy, Debug, Serialize, Deserialize)] +#[serde(crate = "serde")] pub enum VarFormat { ASCII, Binary, @@ -55,12 +58,14 @@ impl VarFormat { } VarFormat::Binary => value, VarFormat::BinaryWithGroups => { + let char_count = value.len(); value .chars() .enumerate() .fold(String::new(), |mut value, (index, one_or_zero)| { value.push(one_or_zero); - if (index + 1) % 4 == 0 { + let is_last = index == char_count - 1; + if !is_last && (index + 1) % 4 == 0 { value.push(' '); } value diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index c51649b..2417b81 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -44,6 +44,7 @@ async fn load_signal_and_get_timeline( signal_ref_index: usize, screen_width: u32, block_height: u32, + var_format: shared::VarFormat, store: tauri::State<'_, Store>, ) -> Result { // @TODO run (all?) in a blocking thread? @@ -53,7 +54,7 @@ async fn load_signal_and_get_timeline( waveform.load_signals_multi_threaded(&[signal_ref]); let signal = waveform.get_signal(signal_ref).unwrap(); let time_table = waveform.time_table(); - let timeline = signal_to_timeline(signal, time_table, screen_width, block_height); + let timeline = signal_to_timeline(signal, time_table, screen_width, block_height, var_format); Ok(serde_json::to_value(timeline).unwrap()) } @@ -94,11 +95,12 @@ fn signal_to_timeline( time_table: &[wellen::Time], screen_width: u32, block_height: u32, + var_format: shared::VarFormat, ) -> shared::Timeline { const MIN_BLOCK_WIDTH: u32 = 3; // Courier New, 16px, sync with `label_style` in `pixi_canvas.rs` const LETTER_WIDTH: f64 = 9.61; - const LETTER_HEIGHT: u32 = 21; + const LETTER_HEIGHT: u32 = 18; const LABEL_X_PADDING: u32 = 10; let Some(last_time) = time_table.last().copied() else { @@ -133,7 +135,7 @@ fn signal_to_timeline( } // @TODO cache? - let value = shared::VarFormat::default().format(value); + let value = var_format.format(value); let value_width = (value.chars().count() as f64 * LETTER_WIDTH) as u32; // @TODO Ellipsis instead of hiding? -- 2.50.1 From af90adfe2046d1fb07782e00b6f71175c3cb6db4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Kav=C3=ADk?= Date: Mon, 10 Jun 2024 00:27:01 +0200 Subject: [PATCH 18/23] signal_to_timeline.rs --- frontend/src/platform/browser.rs | 75 +------------------------------- shared/src/lib.rs | 3 ++ shared/src/signal_to_timeline.rs | 72 ++++++++++++++++++++++++++++++ src-tauri/src/lib.rs | 75 +------------------------------- 4 files changed, 79 insertions(+), 146 deletions(-) create mode 100644 shared/src/signal_to_timeline.rs diff --git a/frontend/src/platform/browser.rs b/frontend/src/platform/browser.rs index 8192d25..bc29666 100644 --- a/frontend/src/platform/browser.rs +++ b/frontend/src/platform/browser.rs @@ -85,7 +85,8 @@ pub(super) async fn load_signal_and_get_timeline( waveform.load_signals_multi_threaded(&[signal_ref]); let signal = waveform.get_signal(signal_ref).unwrap(); let time_table = waveform.time_table(); - let timeline = signal_to_timeline(signal, time_table, screen_width, block_height, var_format); + let timeline = + shared::signal_to_timeline(signal, time_table, screen_width, block_height, var_format); timeline } @@ -94,75 +95,3 @@ pub(super) async fn unload_signal(signal_ref: wellen::SignalRef) { let waveform = waveform_lock.as_mut().unwrap_throw(); waveform.unload_signals(&[signal_ref]); } - -// @TODO keep in sync with the same method in `src-tauri/src/lib.rs` -fn signal_to_timeline( - signal: &wellen::Signal, - time_table: &[wellen::Time], - screen_width: u32, - block_height: u32, - var_format: shared::VarFormat, -) -> shared::Timeline { - const MIN_BLOCK_WIDTH: u32 = 3; - // Courier New, 16px, sync with `label_style` in `pixi_canvas.rs` - const LETTER_WIDTH: f64 = 9.61; - const LETTER_HEIGHT: u32 = 18; - const LABEL_X_PADDING: u32 = 10; - - let Some(last_time) = time_table.last().copied() else { - return shared::Timeline::default(); - }; - - let last_time = last_time as f64; - let screen_width = screen_width as f64; - - let mut x_value_pairs = signal - .iter_changes() - .map(|(index, value)| { - let index = index as usize; - let time = time_table[index] as f64; - let x = time / last_time * screen_width; - (x, value) - }) - .peekable(); - - // @TODO parallelize? - let mut blocks = Vec::new(); - while let Some((block_x, value)) = x_value_pairs.next() { - let next_block_x = if let Some((next_block_x, _)) = x_value_pairs.peek() { - *next_block_x - } else { - screen_width - }; - - let block_width = (next_block_x - block_x) as u32; - if block_width < MIN_BLOCK_WIDTH { - continue; - } - - // @TODO cache? - let value = var_format.format(value); - - let value_width = (value.chars().count() as f64 * LETTER_WIDTH) as u32; - // @TODO Ellipsis instead of hiding? - let label = if (value_width + (2 * LABEL_X_PADDING)) <= block_width { - Some(shared::TimeLineBlockLabel { - text: value, - x: (block_width - value_width) / 2, - y: (block_height - LETTER_HEIGHT) / 2, - }) - } else { - None - }; - - let block = shared::TimelineBlock { - x: block_x as u32, - width: block_width, - height: block_height, - label, - }; - blocks.push(block); - } - - shared::Timeline { blocks } -} diff --git a/shared/src/lib.rs b/shared/src/lib.rs index 21f98e8..1a6d68a 100644 --- a/shared/src/lib.rs +++ b/shared/src/lib.rs @@ -3,6 +3,9 @@ use moonlight::*; mod var_format; pub use var_format::VarFormat; +mod signal_to_timeline; +pub use signal_to_timeline::signal_to_timeline; + pub mod wellen_helpers; #[derive(Serialize, Deserialize, Debug, Default)] diff --git a/shared/src/signal_to_timeline.rs b/shared/src/signal_to_timeline.rs new file mode 100644 index 0000000..da61b0c --- /dev/null +++ b/shared/src/signal_to_timeline.rs @@ -0,0 +1,72 @@ +use crate::*; + +pub fn signal_to_timeline( + signal: &wellen::Signal, + time_table: &[wellen::Time], + screen_width: u32, + block_height: u32, + var_format: VarFormat, +) -> Timeline { + const MIN_BLOCK_WIDTH: u32 = 3; + // Courier New, 16px, sync with `label_style` in `pixi_canvas.rs` + const LETTER_WIDTH: f64 = 9.61; + const LETTER_HEIGHT: u32 = 18; + const LABEL_X_PADDING: u32 = 10; + + let Some(last_time) = time_table.last().copied() else { + return Timeline::default(); + }; + + let last_time = last_time as f64; + let screen_width = screen_width as f64; + + let mut x_value_pairs = signal + .iter_changes() + .map(|(index, value)| { + let index = index as usize; + let time = time_table[index] as f64; + let x = time / last_time * screen_width; + (x, value) + }) + .peekable(); + + // @TODO parallelize? + let mut blocks = Vec::new(); + while let Some((block_x, value)) = x_value_pairs.next() { + let next_block_x = if let Some((next_block_x, _)) = x_value_pairs.peek() { + *next_block_x + } else { + screen_width + }; + + let block_width = (next_block_x - block_x) as u32; + if block_width < MIN_BLOCK_WIDTH { + continue; + } + + // @TODO cache? + let value = var_format.format(value); + + let value_width = (value.chars().count() as f64 * LETTER_WIDTH) as u32; + // @TODO Ellipsis instead of hiding? + let label = if (value_width + (2 * LABEL_X_PADDING)) <= block_width { + Some(TimeLineBlockLabel { + text: value, + x: (block_width - value_width) / 2, + y: (block_height - LETTER_HEIGHT) / 2, + }) + } else { + None + }; + + let block = TimelineBlock { + x: block_x as u32, + width: block_width, + height: block_height, + label, + }; + blocks.push(block); + } + + Timeline { blocks } +} diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 2417b81..d369f09 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -54,7 +54,8 @@ async fn load_signal_and_get_timeline( waveform.load_signals_multi_threaded(&[signal_ref]); let signal = waveform.get_signal(signal_ref).unwrap(); let time_table = waveform.time_table(); - let timeline = signal_to_timeline(signal, time_table, screen_width, block_height, var_format); + let timeline = + shared::signal_to_timeline(signal, time_table, screen_width, block_height, var_format); Ok(serde_json::to_value(timeline).unwrap()) } @@ -88,75 +89,3 @@ pub fn run() { .run(tauri::generate_context!()) .expect("error while running tauri application"); } - -// @TODO keep in sync with the same method in `frontend/src/platform/browser.rs` -fn signal_to_timeline( - signal: &wellen::Signal, - time_table: &[wellen::Time], - screen_width: u32, - block_height: u32, - var_format: shared::VarFormat, -) -> shared::Timeline { - const MIN_BLOCK_WIDTH: u32 = 3; - // Courier New, 16px, sync with `label_style` in `pixi_canvas.rs` - const LETTER_WIDTH: f64 = 9.61; - const LETTER_HEIGHT: u32 = 18; - const LABEL_X_PADDING: u32 = 10; - - let Some(last_time) = time_table.last().copied() else { - return shared::Timeline::default(); - }; - - let last_time = last_time as f64; - let screen_width = screen_width as f64; - - let mut x_value_pairs = signal - .iter_changes() - .map(|(index, value)| { - let index = index as usize; - let time = time_table[index] as f64; - let x = time / last_time * screen_width; - (x, value) - }) - .peekable(); - - // @TODO parallelize? - let mut blocks = Vec::new(); - while let Some((block_x, value)) = x_value_pairs.next() { - let next_block_x = if let Some((next_block_x, _)) = x_value_pairs.peek() { - *next_block_x - } else { - screen_width - }; - - let block_width = (next_block_x - block_x) as u32; - if block_width < MIN_BLOCK_WIDTH { - continue; - } - - // @TODO cache? - let value = var_format.format(value); - - let value_width = (value.chars().count() as f64 * LETTER_WIDTH) as u32; - // @TODO Ellipsis instead of hiding? - let label = if (value_width + (2 * LABEL_X_PADDING)) <= block_width { - Some(shared::TimeLineBlockLabel { - text: value, - x: (block_width - value_width) / 2, - y: (block_height - LETTER_HEIGHT) / 2, - }) - } else { - None - }; - - let block = shared::TimelineBlock { - x: block_x as u32, - width: block_width, - height: block_height, - label, - }; - blocks.push(block); - } - - shared::Timeline { blocks } -} -- 2.50.1 From 9b76ecf38fde57188780a9d8ff8ff82f47ffec68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Kav=C3=ADk?= Date: Tue, 11 Jun 2024 17:00:29 +0200 Subject: [PATCH 19/23] timeline_width/viewport_width/viewport_x --- frontend/src/platform.rs | 13 ++++- frontend/src/platform/browser.rs | 14 ++++- frontend/src/platform/tauri.rs | 12 +++- frontend/src/waveform_panel.rs | 4 +- frontend/src/waveform_panel/pixi_canvas.rs | 32 +++++++++-- frontend/typescript/bundles/pixi_canvas.js | 37 +++++++++++-- frontend/typescript/bundles/tauri_glue.js | 11 +++- .../typescript/pixi_canvas/pixi_canvas.ts | 55 +++++++++++++++++-- frontend/typescript/tauri_glue/tauri_glue.ts | 15 +++-- shared/src/signal_to_timeline.rs | 18 ++++-- src-tauri/src/lib.rs | 14 ++++- 11 files changed, 188 insertions(+), 37 deletions(-) diff --git a/frontend/src/platform.rs b/frontend/src/platform.rs index 967468e..fbff934 100644 --- a/frontend/src/platform.rs +++ b/frontend/src/platform.rs @@ -31,11 +31,20 @@ pub async fn get_hierarchy() -> wellen::Hierarchy { pub async fn load_signal_and_get_timeline( signal_ref: wellen::SignalRef, - screen_width: u32, + timeline_width: u32, + timeline_viewport_width: u32, + timeline_viewport_x: u32, block_height: u32, var_format: shared::VarFormat, ) -> shared::Timeline { - platform::load_signal_and_get_timeline(signal_ref, screen_width, block_height, var_format).await + platform::load_signal_and_get_timeline( + signal_ref, + timeline_width, + timeline_viewport_width, + timeline_viewport_x, + block_height, + var_format, + ).await } pub async fn unload_signal(signal_ref: wellen::SignalRef) { diff --git a/frontend/src/platform/browser.rs b/frontend/src/platform/browser.rs index bc29666..bfe9527 100644 --- a/frontend/src/platform/browser.rs +++ b/frontend/src/platform/browser.rs @@ -76,7 +76,9 @@ pub(super) async fn get_hierarchy() -> wellen::Hierarchy { pub(super) async fn load_signal_and_get_timeline( signal_ref: wellen::SignalRef, - screen_width: u32, + timeline_width: u32, + timeline_viewport_width: u32, + timeline_viewport_x: u32, block_height: u32, var_format: shared::VarFormat, ) -> shared::Timeline { @@ -86,7 +88,15 @@ pub(super) async fn load_signal_and_get_timeline( let signal = waveform.get_signal(signal_ref).unwrap(); let time_table = waveform.time_table(); let timeline = - shared::signal_to_timeline(signal, time_table, screen_width, block_height, var_format); + shared::signal_to_timeline( + signal, + time_table, + timeline_width, + timeline_viewport_width, + timeline_viewport_x, + block_height, + var_format, + ); timeline } diff --git a/frontend/src/platform/tauri.rs b/frontend/src/platform/tauri.rs index e376506..43f48f4 100644 --- a/frontend/src/platform/tauri.rs +++ b/frontend/src/platform/tauri.rs @@ -19,7 +19,9 @@ pub(super) async fn get_hierarchy() -> wellen::Hierarchy { pub(super) async fn load_signal_and_get_timeline( signal_ref: wellen::SignalRef, - screen_width: u32, + timeline_width: u32, + timeline_viewport_width: u32, + timeline_viewport_x: u32, block_height: u32, var_format: shared::VarFormat, ) -> shared::Timeline { @@ -27,7 +29,9 @@ pub(super) async fn load_signal_and_get_timeline( serde_wasm_bindgen::from_value( tauri_glue::load_signal_and_get_timeline( signal_ref.index(), - screen_width, + timeline_width, + timeline_viewport_width, + timeline_viewport_x, block_height, var_format, ) @@ -61,7 +65,9 @@ mod tauri_glue { #[wasm_bindgen(catch)] pub async fn load_signal_and_get_timeline( signal_ref_index: usize, - screen_width: u32, + timeline_width: u32, + timeline_viewport_width: u32, + timeline_viewport_x: u32, block_height: u32, var_format: JsValue, ) -> Result; diff --git a/frontend/src/waveform_panel.rs b/frontend/src/waveform_panel.rs index 0548f2a..e8a95a6 100644 --- a/frontend/src/waveform_panel.rs +++ b/frontend/src/waveform_panel.rs @@ -122,7 +122,9 @@ impl WaveformPanel { let signal_ref = var.signal_ref(); let timeline = platform::load_signal_and_get_timeline( signal_ref, - controller.screen_width(), + controller.get_timeline_width(), + controller.get_timeline_viewport_width(), + controller.get_timeline_viewport_x(), ROW_HEIGHT, var_format, ) diff --git a/frontend/src/waveform_panel/pixi_canvas.rs b/frontend/src/waveform_panel/pixi_canvas.rs index f577110..82390b3 100644 --- a/frontend/src/waveform_panel/pixi_canvas.rs +++ b/frontend/src/waveform_panel/pixi_canvas.rs @@ -52,12 +52,14 @@ impl PixiCanvas { let task_with_controller = Mutable::new(None); // -- FastWave-specific -- let timeline_getter = Rc::new(Closure::new( - |signal_ref_index, screen_width, row_height, var_format| { + |signal_ref_index, timeline_width, timeline_viewport_width, timeline_viewport_x, row_height, var_format| { future_to_promise(async move { let signal_ref = wellen::SignalRef::from_index(signal_ref_index).unwrap_throw(); let timeline = platform::load_signal_and_get_timeline( signal_ref, - screen_width, + timeline_width, + timeline_viewport_width, + timeline_viewport_x, row_height, serde_wasm_bindgen::from_value(var_format).unwrap_throw(), ) @@ -81,7 +83,14 @@ impl PixiCanvas { })) .after_insert(clone!((controller, timeline_getter) move |element| { Task::start(async move { - let pixi_controller = js_bridge::PixiController::new(row_height, row_gap, &timeline_getter); + let pixi_controller = js_bridge::PixiController::new( + width.get(), + width.get(), + 0, + row_height, + row_gap, + &timeline_getter + ); pixi_controller.init(&element).await; controller.set(Some(pixi_controller)); }); @@ -113,11 +122,13 @@ mod js_bridge { type TimelinePromise = js_sys::Promise; type SignalRefIndex = usize; - type ScreenWidth = u32; + type TimelineWidth = u32; + type TimelineViewportWidth = u32; + type TimelineViewportX = u32; type RowHeight = u32; type VarFormatJs = JsValue; type TimelineGetter = - Closure TimelinePromise>; + Closure TimelinePromise>; // Note: Add all corresponding methods to `frontend/typescript/pixi_canvas/pixi_canvas.ts` #[wasm_bindgen(module = "/typescript/bundles/pixi_canvas.js")] @@ -128,6 +139,9 @@ mod js_bridge { // @TODO `row_height` and `row_gap` is FastWave-specific #[wasm_bindgen(constructor)] pub fn new( + timeline_width: u32, + timeline_viewport_width: u32, + timeline_viewport_x: u32, row_height: u32, row_gap: u32, timeline_getter: &TimelineGetter, @@ -143,7 +157,13 @@ mod js_bridge { pub fn destroy(this: &PixiController); #[wasm_bindgen(method)] - pub fn screen_width(this: &PixiController) -> u32; + pub fn get_timeline_width(this: &PixiController) -> u32; + + #[wasm_bindgen(method)] + pub fn get_timeline_viewport_width(this: &PixiController) -> u32; + + #[wasm_bindgen(method)] + pub fn get_timeline_viewport_x(this: &PixiController) -> u32; // -- FastWave-specific -- diff --git a/frontend/typescript/bundles/pixi_canvas.js b/frontend/typescript/bundles/pixi_canvas.js index 3291b1f..c4b6731 100644 --- a/frontend/typescript/bundles/pixi_canvas.js +++ b/frontend/typescript/bundles/pixi_canvas.js @@ -35133,12 +35133,18 @@ var PixiController = class { // -- FastWave-specific -- var_signal_rows = []; var_signal_rows_container = new Container(); + timeline_width; + timeline_viewport_width; + timeline_viewport_x; row_height; row_gap; previous_parent_width; timeline_getter; - constructor(row_height, row_gap, timeline_getter) { + constructor(timeline_width, timeline_viewport_width, timeline_viewport_x, row_height, row_gap, timeline_getter) { this.app = new Application(); + this.timeline_width = timeline_width; + this.timeline_viewport_width = timeline_viewport_width; + this.timeline_viewport_x = timeline_viewport_x; this.row_height = row_height; this.row_gap = row_gap; this.app.stage.addChild(this.var_signal_rows_container); @@ -35156,6 +35162,7 @@ var PixiController = class { const width_changed = width !== this.previous_parent_width; this.previous_parent_width = width; if (width_changed) { + this.timeline_viewport_width = width; await this.redraw_all_rows(); } } @@ -35171,20 +35178,40 @@ var PixiController = class { }; this.app.destroy(rendererDestroyOptions, options); } - screen_width() { - return this.app.screen.width; + get_timeline_width() { + return this.timeline_width; + } + get_timeline_viewport_width() { + return this.timeline_viewport_width; + } + get_timeline_viewport_x() { + return this.timeline_viewport_x; } // -- FastWave-specific -- async redraw_all_rows() { await Promise.all(this.var_signal_rows.map(async (row) => { - const timeline = await this.timeline_getter(row.signal_ref_index, this.app.screen.width, this.row_height, row.var_format); + const timeline = await this.timeline_getter( + row.signal_ref_index, + this.timeline_width, + this.timeline_viewport_width, + this.timeline_viewport_x, + this.row_height, + row.var_format + ); row.redraw(timeline); })); } async redraw_row(index) { const row = this.var_signal_rows[index]; if (typeof row !== "undefined") { - const timeline = await this.timeline_getter(row.signal_ref_index, this.app.screen.width, this.row_height, row.var_format); + const timeline = await this.timeline_getter( + row.signal_ref_index, + this.timeline_width, + this.timeline_viewport_width, + this.timeline_viewport_x, + this.row_height, + row.var_format + ); row.redraw(timeline); } } diff --git a/frontend/typescript/bundles/tauri_glue.js b/frontend/typescript/bundles/tauri_glue.js index c4cf8f8..c24c802 100644 --- a/frontend/typescript/bundles/tauri_glue.js +++ b/frontend/typescript/bundles/tauri_glue.js @@ -2520,8 +2520,15 @@ async function pick_and_load_waveform() { async function get_hierarchy() { return await invoke2("get_hierarchy"); } -async function load_signal_and_get_timeline(signal_ref_index, screen_width, block_height, var_format) { - return await invoke2("load_signal_and_get_timeline", { signal_ref_index, screen_width, block_height, var_format }); +async function load_signal_and_get_timeline(signal_ref_index, timeline_width, timeline_viewport_width, timeline_viewport_x, block_height, var_format) { + return await invoke2("load_signal_and_get_timeline", { + signal_ref_index, + timeline_width, + timeline_viewport_width, + timeline_viewport_x, + block_height, + var_format + }); } async function unload_signal(signal_ref_index) { return await invoke2("unload_signal", { signal_ref_index }); diff --git a/frontend/typescript/pixi_canvas/pixi_canvas.ts b/frontend/typescript/pixi_canvas/pixi_canvas.ts index 021dee9..4d24b6b 100644 --- a/frontend/typescript/pixi_canvas/pixi_canvas.ts +++ b/frontend/typescript/pixi_canvas/pixi_canvas.ts @@ -27,21 +27,41 @@ enum VarFormat { Unsigned, } -type TimelineGetter = (signal_ref_index: number, screen_width: number, row_height: number, var_format: VarFormat) => Promise; +type TimelineGetter = ( + signal_ref_index: number, + timeline_width: number, + timeline_viewport_width: number, + timeline_viewport_x: number, + row_height: number, + var_format: VarFormat +) => Promise; export class PixiController { app: Application // -- FastWave-specific -- var_signal_rows: Array = []; var_signal_rows_container = new Container(); + timeline_width: number; + timeline_viewport_width: number; + timeline_viewport_x: number; row_height: number; row_gap: number; previous_parent_width: number | null; timeline_getter: TimelineGetter; - constructor(row_height: number, row_gap: number, timeline_getter: TimelineGetter) { + constructor( + timeline_width: number, + timeline_viewport_width: number, + timeline_viewport_x: number, + row_height: number, + row_gap: number, + timeline_getter: TimelineGetter + ) { this.app = new Application(); // -- FastWave-specific -- + this.timeline_width = timeline_width; + this.timeline_viewport_width = timeline_viewport_width; + this.timeline_viewport_x = timeline_viewport_x; this.row_height = row_height; this.row_gap = row_gap; this.app.stage.addChild(this.var_signal_rows_container); @@ -62,6 +82,7 @@ export class PixiController { const width_changed = width !== this.previous_parent_width; this.previous_parent_width = width; if (width_changed) { + this.timeline_viewport_width = width; await this.redraw_all_rows(); } } @@ -79,15 +100,30 @@ export class PixiController { this.app.destroy(rendererDestroyOptions, options); } - screen_width() { - return this.app.screen.width; + get_timeline_width() { + return this.timeline_width; + } + + get_timeline_viewport_width() { + return this.timeline_viewport_width; + } + + get_timeline_viewport_x() { + return this.timeline_viewport_x; } // -- FastWave-specific -- async redraw_all_rows() { await Promise.all(this.var_signal_rows.map(async row => { - const timeline = await this.timeline_getter(row.signal_ref_index, this.app.screen.width, this.row_height, row.var_format); + const timeline = await this.timeline_getter( + row.signal_ref_index, + this.timeline_width, + this.timeline_viewport_width, + this.timeline_viewport_x, + this.row_height, + row.var_format + ); row.redraw(timeline); })) } @@ -95,7 +131,14 @@ export class PixiController { async redraw_row(index: number) { const row = this.var_signal_rows[index]; if (typeof row !== 'undefined') { - const timeline = await this.timeline_getter(row.signal_ref_index, this.app.screen.width, this.row_height, row.var_format); + const timeline = await this.timeline_getter( + row.signal_ref_index, + this.timeline_width, + this.timeline_viewport_width, + this.timeline_viewport_x, + this.row_height, + row.var_format + ); row.redraw(timeline); } } diff --git a/frontend/typescript/tauri_glue/tauri_glue.ts b/frontend/typescript/tauri_glue/tauri_glue.ts index 7231c40..37b6d1c 100644 --- a/frontend/typescript/tauri_glue/tauri_glue.ts +++ b/frontend/typescript/tauri_glue/tauri_glue.ts @@ -6,8 +6,6 @@ const invoke = core.invoke; type Filename = string; type WellenHierarchy = unknown; -type WellenTimeTable = unknown; -type WellenSignal = unknown; type Timeline = unknown; type VarFormat = unknown; @@ -25,11 +23,20 @@ export async function get_hierarchy(): Promise { export async function load_signal_and_get_timeline( signal_ref_index: number, - screen_width: number, + timeline_width: number, + timeline_viewport_width: number, + timeline_viewport_x: number, block_height: number, var_format: VarFormat, ): Promise { - return await invoke("load_signal_and_get_timeline", { signal_ref_index, screen_width, block_height, var_format }); + return await invoke("load_signal_and_get_timeline", { + signal_ref_index, + timeline_width, + timeline_viewport_width, + timeline_viewport_x, + block_height, + var_format + }); } export async function unload_signal(signal_ref_index: number): Promise { diff --git a/shared/src/signal_to_timeline.rs b/shared/src/signal_to_timeline.rs index da61b0c..ceea93f 100644 --- a/shared/src/signal_to_timeline.rs +++ b/shared/src/signal_to_timeline.rs @@ -3,29 +3,39 @@ use crate::*; pub fn signal_to_timeline( signal: &wellen::Signal, time_table: &[wellen::Time], - screen_width: u32, + mut timeline_width: u32, + timeline_viewport_width: u32, + timeline_viewport_x: u32, block_height: u32, var_format: VarFormat, ) -> Timeline { + println!("timeline_width: {timeline_width}"); + println!("timeline_viewport_width: {timeline_viewport_width}"); + println!("timeline_viewport_x: {timeline_viewport_x}"); + println!("_____"); const MIN_BLOCK_WIDTH: u32 = 3; // Courier New, 16px, sync with `label_style` in `pixi_canvas.rs` const LETTER_WIDTH: f64 = 9.61; const LETTER_HEIGHT: u32 = 18; const LABEL_X_PADDING: u32 = 10; + if timeline_width == 0 { + timeline_width = timeline_viewport_width; + } + let Some(last_time) = time_table.last().copied() else { return Timeline::default(); }; let last_time = last_time as f64; - let screen_width = screen_width as f64; + let timeline_width = timeline_width as f64; let mut x_value_pairs = signal .iter_changes() .map(|(index, value)| { let index = index as usize; let time = time_table[index] as f64; - let x = time / last_time * screen_width; + let x = time / last_time * timeline_width; (x, value) }) .peekable(); @@ -36,7 +46,7 @@ pub fn signal_to_timeline( let next_block_x = if let Some((next_block_x, _)) = x_value_pairs.peek() { *next_block_x } else { - screen_width + timeline_width }; let block_width = (next_block_x - block_x) as u32; diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index d369f09..ce5315f 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -42,7 +42,9 @@ async fn get_hierarchy(store: tauri::State<'_, Store>) -> Result, @@ -55,7 +57,15 @@ async fn load_signal_and_get_timeline( let signal = waveform.get_signal(signal_ref).unwrap(); let time_table = waveform.time_table(); let timeline = - shared::signal_to_timeline(signal, time_table, screen_width, block_height, var_format); + shared::signal_to_timeline( + signal, + time_table, + timeline_width, + timeline_viewport_width, + timeline_viewport_x, + block_height, + var_format, + ); Ok(serde_json::to_value(timeline).unwrap()) } -- 2.50.1 From 547539db9fa58425f3d054a4fedae1574eebb4d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Kav=C3=ADk?= Date: Tue, 11 Jun 2024 22:42:14 +0200 Subject: [PATCH 20/23] zoom_or_pan, fix first row width --- frontend/src/platform.rs | 6 +-- frontend/src/platform/browser.rs | 6 +-- frontend/src/platform/tauri.rs | 10 ++--- frontend/src/waveform_panel.rs | 2 +- frontend/src/waveform_panel/pixi_canvas.rs | 32 ++++++++++----- frontend/typescript/bundles/pixi_canvas.js | 37 +++++++++-------- frontend/typescript/bundles/tauri_glue.js | 4 +- .../typescript/pixi_canvas/pixi_canvas.ts | 41 +++++++++++-------- frontend/typescript/tauri_glue/tauri_glue.ts | 4 +- shared/src/lib.rs | 2 +- shared/src/signal_to_timeline.rs | 21 ++++------ src-tauri/src/lib.rs | 6 +-- 12 files changed, 92 insertions(+), 79 deletions(-) diff --git a/frontend/src/platform.rs b/frontend/src/platform.rs index fbff934..58903f9 100644 --- a/frontend/src/platform.rs +++ b/frontend/src/platform.rs @@ -31,15 +31,15 @@ pub async fn get_hierarchy() -> wellen::Hierarchy { pub async fn load_signal_and_get_timeline( signal_ref: wellen::SignalRef, - timeline_width: u32, + timeline_zoom: f64, timeline_viewport_width: u32, - timeline_viewport_x: u32, + timeline_viewport_x: i32, block_height: u32, var_format: shared::VarFormat, ) -> shared::Timeline { platform::load_signal_and_get_timeline( signal_ref, - timeline_width, + timeline_zoom, timeline_viewport_width, timeline_viewport_x, block_height, diff --git a/frontend/src/platform/browser.rs b/frontend/src/platform/browser.rs index bfe9527..796f007 100644 --- a/frontend/src/platform/browser.rs +++ b/frontend/src/platform/browser.rs @@ -76,9 +76,9 @@ pub(super) async fn get_hierarchy() -> wellen::Hierarchy { pub(super) async fn load_signal_and_get_timeline( signal_ref: wellen::SignalRef, - timeline_width: u32, + timeline_zoom: f64, timeline_viewport_width: u32, - timeline_viewport_x: u32, + timeline_viewport_x: i32, block_height: u32, var_format: shared::VarFormat, ) -> shared::Timeline { @@ -91,7 +91,7 @@ pub(super) async fn load_signal_and_get_timeline( shared::signal_to_timeline( signal, time_table, - timeline_width, + timeline_zoom, timeline_viewport_width, timeline_viewport_x, block_height, diff --git a/frontend/src/platform/tauri.rs b/frontend/src/platform/tauri.rs index 43f48f4..30300be 100644 --- a/frontend/src/platform/tauri.rs +++ b/frontend/src/platform/tauri.rs @@ -19,9 +19,9 @@ pub(super) async fn get_hierarchy() -> wellen::Hierarchy { pub(super) async fn load_signal_and_get_timeline( signal_ref: wellen::SignalRef, - timeline_width: u32, + timeline_zoom: f64, timeline_viewport_width: u32, - timeline_viewport_x: u32, + timeline_viewport_x: i32, block_height: u32, var_format: shared::VarFormat, ) -> shared::Timeline { @@ -29,7 +29,7 @@ pub(super) async fn load_signal_and_get_timeline( serde_wasm_bindgen::from_value( tauri_glue::load_signal_and_get_timeline( signal_ref.index(), - timeline_width, + timeline_zoom, timeline_viewport_width, timeline_viewport_x, block_height, @@ -65,9 +65,9 @@ mod tauri_glue { #[wasm_bindgen(catch)] pub async fn load_signal_and_get_timeline( signal_ref_index: usize, - timeline_width: u32, + timeline_zoom: f64, timeline_viewport_width: u32, - timeline_viewport_x: u32, + timeline_viewport_x: i32, block_height: u32, var_format: JsValue, ) -> Result; diff --git a/frontend/src/waveform_panel.rs b/frontend/src/waveform_panel.rs index e8a95a6..db09a44 100644 --- a/frontend/src/waveform_panel.rs +++ b/frontend/src/waveform_panel.rs @@ -122,7 +122,7 @@ impl WaveformPanel { let signal_ref = var.signal_ref(); let timeline = platform::load_signal_and_get_timeline( signal_ref, - controller.get_timeline_width(), + controller.get_timeline_zoom(), controller.get_timeline_viewport_width(), controller.get_timeline_viewport_x(), ROW_HEIGHT, diff --git a/frontend/src/waveform_panel/pixi_canvas.rs b/frontend/src/waveform_panel/pixi_canvas.rs index 82390b3..eb9f26d 100644 --- a/frontend/src/waveform_panel/pixi_canvas.rs +++ b/frontend/src/waveform_panel/pixi_canvas.rs @@ -40,6 +40,7 @@ impl PixiCanvas { let width = width.signal(), let height = height.signal() => (*width, *height) } + .dedupe() .throttle(|| Timer::sleep(50)) .for_each( clone!((controller) move |(width, height)| clone!((controller) async move { @@ -52,12 +53,12 @@ impl PixiCanvas { let task_with_controller = Mutable::new(None); // -- FastWave-specific -- let timeline_getter = Rc::new(Closure::new( - |signal_ref_index, timeline_width, timeline_viewport_width, timeline_viewport_x, row_height, var_format| { + |signal_ref_index, timeline_zoom, timeline_viewport_width, timeline_viewport_x, row_height, var_format| { future_to_promise(async move { let signal_ref = wellen::SignalRef::from_index(signal_ref_index).unwrap_throw(); let timeline = platform::load_signal_and_get_timeline( signal_ref, - timeline_width, + timeline_zoom, timeline_viewport_width, timeline_viewport_x, row_height, @@ -81,10 +82,18 @@ impl PixiCanvas { width.set_neq(new_width); height.set_neq(new_height); })) + .update_raw_el(|raw_el| { + // @TODO rewrite to a native Zoon API + raw_el.event_handler(clone!((controller) move |event: events_extra::WheelEvent| { + if let Some(controller) = controller.lock_ref().as_ref() { + controller.zoom_or_pan(event.delta_y(), event.shift_key()); + } + })) + }) .after_insert(clone!((controller, timeline_getter) move |element| { Task::start(async move { let pixi_controller = js_bridge::PixiController::new( - width.get(), + 1., width.get(), 0, row_height, @@ -122,13 +131,13 @@ mod js_bridge { type TimelinePromise = js_sys::Promise; type SignalRefIndex = usize; - type TimelineWidth = u32; + type TimelineZoom = f64; type TimelineViewportWidth = u32; - type TimelineViewportX = u32; + type TimelineViewportX = i32; type RowHeight = u32; type VarFormatJs = JsValue; type TimelineGetter = - Closure TimelinePromise>; + Closure TimelinePromise>; // Note: Add all corresponding methods to `frontend/typescript/pixi_canvas/pixi_canvas.ts` #[wasm_bindgen(module = "/typescript/bundles/pixi_canvas.js")] @@ -139,9 +148,9 @@ mod js_bridge { // @TODO `row_height` and `row_gap` is FastWave-specific #[wasm_bindgen(constructor)] pub fn new( - timeline_width: u32, + timeline_zoom: f64, timeline_viewport_width: u32, - timeline_viewport_x: u32, + timeline_viewport_x: i32, row_height: u32, row_gap: u32, timeline_getter: &TimelineGetter, @@ -157,19 +166,22 @@ mod js_bridge { pub fn destroy(this: &PixiController); #[wasm_bindgen(method)] - pub fn get_timeline_width(this: &PixiController) -> u32; + pub fn get_timeline_zoom(this: &PixiController) -> f64; #[wasm_bindgen(method)] pub fn get_timeline_viewport_width(this: &PixiController) -> u32; #[wasm_bindgen(method)] - pub fn get_timeline_viewport_x(this: &PixiController) -> u32; + pub fn get_timeline_viewport_x(this: &PixiController) -> i32; // -- FastWave-specific -- #[wasm_bindgen(method)] pub fn set_var_format(this: &PixiController, index: usize, var_format: JsValue); + #[wasm_bindgen(method)] + pub fn zoom_or_pan(this: &PixiController, wheel_delta_y: f64, shift_key: bool); + #[wasm_bindgen(method)] pub fn remove_var(this: &PixiController, index: usize); diff --git a/frontend/typescript/bundles/pixi_canvas.js b/frontend/typescript/bundles/pixi_canvas.js index c4b6731..4e4ad9d 100644 --- a/frontend/typescript/bundles/pixi_canvas.js +++ b/frontend/typescript/bundles/pixi_canvas.js @@ -35133,22 +35133,21 @@ var PixiController = class { // -- FastWave-specific -- var_signal_rows = []; var_signal_rows_container = new Container(); - timeline_width; + // @TODO reset `timeline_*` on file unload? + timeline_zoom; timeline_viewport_width; timeline_viewport_x; row_height; row_gap; - previous_parent_width; timeline_getter; - constructor(timeline_width, timeline_viewport_width, timeline_viewport_x, row_height, row_gap, timeline_getter) { + constructor(timeline_zoom, timeline_viewport_width, timeline_viewport_x, row_height, row_gap, timeline_getter) { this.app = new Application(); - this.timeline_width = timeline_width; + this.timeline_zoom = timeline_zoom; this.timeline_viewport_width = timeline_viewport_width; this.timeline_viewport_x = timeline_viewport_x; this.row_height = row_height; this.row_gap = row_gap; this.app.stage.addChild(this.var_signal_rows_container); - this.previous_parent_width = null; this.timeline_getter = timeline_getter; } async init(parent_element) { @@ -35157,14 +35156,10 @@ var PixiController = class { } // Default automatic Pixi resizing according to the parent is not reliable // and the `app.renderer`'s `resize` event is fired on every browser window size change - async resize(width, height) { - this.app.resize(); - const width_changed = width !== this.previous_parent_width; - this.previous_parent_width = width; - if (width_changed) { - this.timeline_viewport_width = width; - await this.redraw_all_rows(); - } + async resize(width, _height) { + this.timeline_viewport_width = width; + await this.redraw_all_rows(); + this.app.queueResize(); } destroy() { const rendererDestroyOptions = { @@ -35178,8 +35173,8 @@ var PixiController = class { }; this.app.destroy(rendererDestroyOptions, options); } - get_timeline_width() { - return this.timeline_width; + get_timeline_zoom() { + return this.timeline_zoom; } get_timeline_viewport_width() { return this.timeline_viewport_width; @@ -35192,7 +35187,7 @@ var PixiController = class { await Promise.all(this.var_signal_rows.map(async (row) => { const timeline = await this.timeline_getter( row.signal_ref_index, - this.timeline_width, + this.timeline_zoom, this.timeline_viewport_width, this.timeline_viewport_x, this.row_height, @@ -35206,7 +35201,7 @@ var PixiController = class { if (typeof row !== "undefined") { const timeline = await this.timeline_getter( row.signal_ref_index, - this.timeline_width, + this.timeline_zoom, this.timeline_viewport_width, this.timeline_viewport_x, this.row_height, @@ -35222,6 +35217,14 @@ var PixiController = class { this.redraw_row(index); } } + async zoom_or_pan(wheel_delta_y, shift_key) { + if (shift_key) { + this.timeline_viewport_x -= Math.sign(wheel_delta_y) * 20; + } else { + this.timeline_zoom -= Math.sign(wheel_delta_y) * 0.1; + } + this.redraw_all_rows(); + } remove_var(index) { if (typeof this.var_signal_rows[index] !== "undefined") { this.var_signal_rows[index].destroy(); diff --git a/frontend/typescript/bundles/tauri_glue.js b/frontend/typescript/bundles/tauri_glue.js index c24c802..a81bef0 100644 --- a/frontend/typescript/bundles/tauri_glue.js +++ b/frontend/typescript/bundles/tauri_glue.js @@ -2520,10 +2520,10 @@ async function pick_and_load_waveform() { async function get_hierarchy() { return await invoke2("get_hierarchy"); } -async function load_signal_and_get_timeline(signal_ref_index, timeline_width, timeline_viewport_width, timeline_viewport_x, block_height, var_format) { +async function load_signal_and_get_timeline(signal_ref_index, timeline_zoom, timeline_viewport_width, timeline_viewport_x, block_height, var_format) { return await invoke2("load_signal_and_get_timeline", { signal_ref_index, - timeline_width, + timeline_zoom, timeline_viewport_width, timeline_viewport_x, block_height, diff --git a/frontend/typescript/pixi_canvas/pixi_canvas.ts b/frontend/typescript/pixi_canvas/pixi_canvas.ts index 4d24b6b..bf3340c 100644 --- a/frontend/typescript/pixi_canvas/pixi_canvas.ts +++ b/frontend/typescript/pixi_canvas/pixi_canvas.ts @@ -29,7 +29,7 @@ enum VarFormat { type TimelineGetter = ( signal_ref_index: number, - timeline_width: number, + timeline_zoom: number, timeline_viewport_width: number, timeline_viewport_x: number, row_height: number, @@ -41,16 +41,16 @@ export class PixiController { // -- FastWave-specific -- var_signal_rows: Array = []; var_signal_rows_container = new Container(); - timeline_width: number; + // @TODO reset `timeline_*` on file unload? + timeline_zoom: number; timeline_viewport_width: number; timeline_viewport_x: number; row_height: number; row_gap: number; - previous_parent_width: number | null; timeline_getter: TimelineGetter; constructor( - timeline_width: number, + timeline_zoom: number, timeline_viewport_width: number, timeline_viewport_x: number, row_height: number, @@ -59,13 +59,12 @@ export class PixiController { ) { this.app = new Application(); // -- FastWave-specific -- - this.timeline_width = timeline_width; + this.timeline_zoom = timeline_zoom; this.timeline_viewport_width = timeline_viewport_width; this.timeline_viewport_x = timeline_viewport_x; this.row_height = row_height; this.row_gap = row_gap; this.app.stage.addChild(this.var_signal_rows_container); - this.previous_parent_width = null; this.timeline_getter = timeline_getter; } @@ -76,15 +75,12 @@ export class PixiController { // Default automatic Pixi resizing according to the parent is not reliable // and the `app.renderer`'s `resize` event is fired on every browser window size change - async resize(width: number, height: number) { - this.app.resize(); + async resize(width: number, _height: number) { // -- FastWave-specific -- - const width_changed = width !== this.previous_parent_width; - this.previous_parent_width = width; - if (width_changed) { - this.timeline_viewport_width = width; - await this.redraw_all_rows(); - } + this.timeline_viewport_width = width; + await this.redraw_all_rows(); + // -- // -- + this.app.queueResize(); } destroy() { @@ -100,8 +96,8 @@ export class PixiController { this.app.destroy(rendererDestroyOptions, options); } - get_timeline_width() { - return this.timeline_width; + get_timeline_zoom() { + return this.timeline_zoom; } get_timeline_viewport_width() { @@ -118,7 +114,7 @@ export class PixiController { await Promise.all(this.var_signal_rows.map(async row => { const timeline = await this.timeline_getter( row.signal_ref_index, - this.timeline_width, + this.timeline_zoom, this.timeline_viewport_width, this.timeline_viewport_x, this.row_height, @@ -133,7 +129,7 @@ export class PixiController { if (typeof row !== 'undefined') { const timeline = await this.timeline_getter( row.signal_ref_index, - this.timeline_width, + this.timeline_zoom, this.timeline_viewport_width, this.timeline_viewport_x, this.row_height, @@ -151,6 +147,15 @@ export class PixiController { } } + async zoom_or_pan(wheel_delta_y: number, shift_key: boolean) { + if (shift_key) { + this.timeline_viewport_x -= Math.sign(wheel_delta_y) * 20; + } else { + this.timeline_zoom -= Math.sign(wheel_delta_y) * 0.1; + } + this.redraw_all_rows(); + } + remove_var(index: number) { if (typeof this.var_signal_rows[index] !== 'undefined') { this.var_signal_rows[index].destroy(); diff --git a/frontend/typescript/tauri_glue/tauri_glue.ts b/frontend/typescript/tauri_glue/tauri_glue.ts index 37b6d1c..2945a41 100644 --- a/frontend/typescript/tauri_glue/tauri_glue.ts +++ b/frontend/typescript/tauri_glue/tauri_glue.ts @@ -23,7 +23,7 @@ export async function get_hierarchy(): Promise { export async function load_signal_and_get_timeline( signal_ref_index: number, - timeline_width: number, + timeline_zoom: number, timeline_viewport_width: number, timeline_viewport_x: number, block_height: number, @@ -31,7 +31,7 @@ export async function load_signal_and_get_timeline( ): Promise { return await invoke("load_signal_and_get_timeline", { signal_ref_index, - timeline_width, + timeline_zoom, timeline_viewport_width, timeline_viewport_x, block_height, diff --git a/shared/src/lib.rs b/shared/src/lib.rs index 1a6d68a..63f2435 100644 --- a/shared/src/lib.rs +++ b/shared/src/lib.rs @@ -17,7 +17,7 @@ pub struct Timeline { #[derive(Serialize, Deserialize, Debug, Default)] #[serde(crate = "serde")] pub struct TimelineBlock { - pub x: u32, + pub x: i32, pub width: u32, pub height: u32, pub label: Option, diff --git a/shared/src/signal_to_timeline.rs b/shared/src/signal_to_timeline.rs index ceea93f..e49ed22 100644 --- a/shared/src/signal_to_timeline.rs +++ b/shared/src/signal_to_timeline.rs @@ -3,39 +3,32 @@ use crate::*; pub fn signal_to_timeline( signal: &wellen::Signal, time_table: &[wellen::Time], - mut timeline_width: u32, + timeline_zoom: f64, timeline_viewport_width: u32, - timeline_viewport_x: u32, + timeline_viewport_x: i32, block_height: u32, var_format: VarFormat, ) -> Timeline { - println!("timeline_width: {timeline_width}"); - println!("timeline_viewport_width: {timeline_viewport_width}"); - println!("timeline_viewport_x: {timeline_viewport_x}"); - println!("_____"); const MIN_BLOCK_WIDTH: u32 = 3; // Courier New, 16px, sync with `label_style` in `pixi_canvas.rs` const LETTER_WIDTH: f64 = 9.61; const LETTER_HEIGHT: u32 = 18; const LABEL_X_PADDING: u32 = 10; - if timeline_width == 0 { - timeline_width = timeline_viewport_width; - } - let Some(last_time) = time_table.last().copied() else { return Timeline::default(); }; let last_time = last_time as f64; - let timeline_width = timeline_width as f64; + let timeline_viewport_x = timeline_viewport_x as f64; + let timeline_width = timeline_viewport_width as f64 * timeline_zoom; let mut x_value_pairs = signal .iter_changes() .map(|(index, value)| { let index = index as usize; let time = time_table[index] as f64; - let x = time / last_time * timeline_width; + let x = time / last_time * timeline_width + timeline_viewport_x; (x, value) }) .peekable(); @@ -46,7 +39,7 @@ pub fn signal_to_timeline( let next_block_x = if let Some((next_block_x, _)) = x_value_pairs.peek() { *next_block_x } else { - timeline_width + timeline_width + timeline_viewport_x }; let block_width = (next_block_x - block_x) as u32; @@ -70,7 +63,7 @@ pub fn signal_to_timeline( }; let block = TimelineBlock { - x: block_x as u32, + x: block_x as i32, width: block_width, height: block_height, label, diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index ce5315f..3b45d05 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -42,9 +42,9 @@ async fn get_hierarchy(store: tauri::State<'_, Store>) -> Result, @@ -60,7 +60,7 @@ async fn load_signal_and_get_timeline( shared::signal_to_timeline( signal, time_table, - timeline_width, + timeline_zoom, timeline_viewport_width, timeline_viewport_x, block_height, -- 2.50.1 From 7a43a9ae4fc8cede8ef7d26689f26f39a517b289 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Kav=C3=ADk?= Date: Wed, 12 Jun 2024 00:10:08 +0200 Subject: [PATCH 21/23] zoom with offset x --- frontend/src/waveform_panel/pixi_canvas.rs | 8 ++++++-- frontend/typescript/bundles/pixi_canvas.js | 7 ++++++- frontend/typescript/pixi_canvas/pixi_canvas.ts | 8 +++++++- shared/src/signal_to_timeline.rs | 2 ++ 4 files changed, 21 insertions(+), 4 deletions(-) diff --git a/frontend/src/waveform_panel/pixi_canvas.rs b/frontend/src/waveform_panel/pixi_canvas.rs index eb9f26d..69e5960 100644 --- a/frontend/src/waveform_panel/pixi_canvas.rs +++ b/frontend/src/waveform_panel/pixi_canvas.rs @@ -86,7 +86,11 @@ impl PixiCanvas { // @TODO rewrite to a native Zoon API raw_el.event_handler(clone!((controller) move |event: events_extra::WheelEvent| { if let Some(controller) = controller.lock_ref().as_ref() { - controller.zoom_or_pan(event.delta_y(), event.shift_key()); + controller.zoom_or_pan( + event.delta_y(), + event.shift_key(), + event.offset_x() as u32, + ); } })) }) @@ -180,7 +184,7 @@ mod js_bridge { pub fn set_var_format(this: &PixiController, index: usize, var_format: JsValue); #[wasm_bindgen(method)] - pub fn zoom_or_pan(this: &PixiController, wheel_delta_y: f64, shift_key: bool); + pub fn zoom_or_pan(this: &PixiController, wheel_delta_y: f64, shift_key: bool, offset_x: u32); #[wasm_bindgen(method)] pub fn remove_var(this: &PixiController, index: usize); diff --git a/frontend/typescript/bundles/pixi_canvas.js b/frontend/typescript/bundles/pixi_canvas.js index 4e4ad9d..469c0c7 100644 --- a/frontend/typescript/bundles/pixi_canvas.js +++ b/frontend/typescript/bundles/pixi_canvas.js @@ -35217,11 +35217,16 @@ var PixiController = class { this.redraw_row(index); } } - async zoom_or_pan(wheel_delta_y, shift_key) { + async zoom_or_pan(wheel_delta_y, shift_key, offset_x) { if (shift_key) { this.timeline_viewport_x -= Math.sign(wheel_delta_y) * 20; } else { + const offset_x_ratio = offset_x / this.timeline_viewport_width; + const old_timeline_width = this.timeline_viewport_width * this.timeline_zoom; this.timeline_zoom -= Math.sign(wheel_delta_y) * 0.1; + const new_timeline_width = this.timeline_viewport_width * this.timeline_zoom; + const timeline_width_difference = new_timeline_width - old_timeline_width; + this.timeline_viewport_x -= timeline_width_difference * offset_x_ratio; } this.redraw_all_rows(); } diff --git a/frontend/typescript/pixi_canvas/pixi_canvas.ts b/frontend/typescript/pixi_canvas/pixi_canvas.ts index bf3340c..ca82560 100644 --- a/frontend/typescript/pixi_canvas/pixi_canvas.ts +++ b/frontend/typescript/pixi_canvas/pixi_canvas.ts @@ -147,11 +147,17 @@ export class PixiController { } } - async zoom_or_pan(wheel_delta_y: number, shift_key: boolean) { + async zoom_or_pan(wheel_delta_y: number, shift_key: boolean, offset_x: number) { if (shift_key) { this.timeline_viewport_x -= Math.sign(wheel_delta_y) * 20; } else { + // @TODO fix, bounds + const offset_x_ratio = offset_x / this.timeline_viewport_width; + const old_timeline_width = this.timeline_viewport_width * this.timeline_zoom; this.timeline_zoom -= Math.sign(wheel_delta_y) * 0.1; + const new_timeline_width = this.timeline_viewport_width * this.timeline_zoom; + const timeline_width_difference = new_timeline_width - old_timeline_width; + this.timeline_viewport_x -= timeline_width_difference * offset_x_ratio; } this.redraw_all_rows(); } diff --git a/shared/src/signal_to_timeline.rs b/shared/src/signal_to_timeline.rs index e49ed22..cdd6505 100644 --- a/shared/src/signal_to_timeline.rs +++ b/shared/src/signal_to_timeline.rs @@ -23,6 +23,8 @@ pub fn signal_to_timeline( let timeline_viewport_x = timeline_viewport_x as f64; let timeline_width = timeline_viewport_width as f64 * timeline_zoom; + // @TODO hide blocks not visible in the viewport + let mut x_value_pairs = signal .iter_changes() .map(|(index, value)| { -- 2.50.1 From f324b57f71a39321aa2e0d8982b13a7253e3cb0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Kav=C3=ADk?= Date: Fri, 14 Jun 2024 01:50:45 +0200 Subject: [PATCH 22/23] hide invisible blocks --- frontend/typescript/bundles/pixi_canvas.js | 8 ++++---- frontend/typescript/pixi_canvas/pixi_canvas.ts | 10 +++++----- shared/src/signal_to_timeline.rs | 13 +++++++++---- 3 files changed, 18 insertions(+), 13 deletions(-) diff --git a/frontend/typescript/bundles/pixi_canvas.js b/frontend/typescript/bundles/pixi_canvas.js index 469c0c7..27976c4 100644 --- a/frontend/typescript/bundles/pixi_canvas.js +++ b/frontend/typescript/bundles/pixi_canvas.js @@ -35219,14 +35219,14 @@ var PixiController = class { } async zoom_or_pan(wheel_delta_y, shift_key, offset_x) { if (shift_key) { - this.timeline_viewport_x -= Math.sign(wheel_delta_y) * 20; + this.timeline_viewport_x += Math.sign(wheel_delta_y) * 20; } else { const offset_x_ratio = offset_x / this.timeline_viewport_width; const old_timeline_width = this.timeline_viewport_width * this.timeline_zoom; - this.timeline_zoom -= Math.sign(wheel_delta_y) * 0.1; + this.timeline_zoom -= Math.sign(wheel_delta_y) * this.timeline_zoom * 0.5; const new_timeline_width = this.timeline_viewport_width * this.timeline_zoom; const timeline_width_difference = new_timeline_width - old_timeline_width; - this.timeline_viewport_x -= timeline_width_difference * offset_x_ratio; + this.timeline_viewport_x += timeline_width_difference * offset_x_ratio; } this.redraw_all_rows(); } @@ -35304,7 +35304,7 @@ var VarSignalRow = class { this.draw(); } draw() { - if (this.app.screen === null) { + if (this.app === null || this.app.screen === null) { return; } this.row_container_background.width = this.app.screen.width; diff --git a/frontend/typescript/pixi_canvas/pixi_canvas.ts b/frontend/typescript/pixi_canvas/pixi_canvas.ts index ca82560..f3c60b9 100644 --- a/frontend/typescript/pixi_canvas/pixi_canvas.ts +++ b/frontend/typescript/pixi_canvas/pixi_canvas.ts @@ -149,15 +149,15 @@ export class PixiController { async zoom_or_pan(wheel_delta_y: number, shift_key: boolean, offset_x: number) { if (shift_key) { - this.timeline_viewport_x -= Math.sign(wheel_delta_y) * 20; + this.timeline_viewport_x += Math.sign(wheel_delta_y) * 20; } else { - // @TODO fix, bounds + // @TODO bounds const offset_x_ratio = offset_x / this.timeline_viewport_width; const old_timeline_width = this.timeline_viewport_width * this.timeline_zoom; - this.timeline_zoom -= Math.sign(wheel_delta_y) * 0.1; + this.timeline_zoom -= Math.sign(wheel_delta_y) * this.timeline_zoom * 0.5; const new_timeline_width = this.timeline_viewport_width * this.timeline_zoom; const timeline_width_difference = new_timeline_width - old_timeline_width; - this.timeline_viewport_x -= timeline_width_difference * offset_x_ratio; + this.timeline_viewport_x += timeline_width_difference * offset_x_ratio; } this.redraw_all_rows(); } @@ -265,7 +265,7 @@ class VarSignalRow { draw() { // Screen can be null when we are, for instance, switching between miller columns and tree layout // and then the canvas has to be recreated - if (this.app.screen === null) { + if (this.app === null || this.app.screen === null) { return; } diff --git a/shared/src/signal_to_timeline.rs b/shared/src/signal_to_timeline.rs index cdd6505..e9fc24f 100644 --- a/shared/src/signal_to_timeline.rs +++ b/shared/src/signal_to_timeline.rs @@ -23,14 +23,12 @@ pub fn signal_to_timeline( let timeline_viewport_x = timeline_viewport_x as f64; let timeline_width = timeline_viewport_width as f64 * timeline_zoom; - // @TODO hide blocks not visible in the viewport - let mut x_value_pairs = signal .iter_changes() .map(|(index, value)| { let index = index as usize; let time = time_table[index] as f64; - let x = time / last_time * timeline_width + timeline_viewport_x; + let x = time / last_time * timeline_width - timeline_viewport_x; (x, value) }) .peekable(); @@ -38,16 +36,23 @@ pub fn signal_to_timeline( // @TODO parallelize? let mut blocks = Vec::new(); while let Some((block_x, value)) = x_value_pairs.next() { + if block_x >= (timeline_viewport_width as f64) { + break; + } + let next_block_x = if let Some((next_block_x, _)) = x_value_pairs.peek() { *next_block_x } else { - timeline_width + timeline_viewport_x + timeline_width - timeline_viewport_x }; let block_width = (next_block_x - block_x) as u32; if block_width < MIN_BLOCK_WIDTH { continue; } + if block_x + (block_width as f64) <= 0. { + continue; + } // @TODO cache? let value = var_format.format(value); -- 2.50.1 From 09eab06e4e3e1c54b49aaea1ecaea9ad73f4603b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Kav=C3=ADk?= Date: Fri, 14 Jun 2024 20:28:18 +0200 Subject: [PATCH 23/23] pan & zoom boundaries + related gifs --- README.md | 16 +++++- ...video_simple_vcd.gif => video_desktop.gif} | Bin docs/video_zoom_formatting.gif | Bin 0 -> 626538 bytes docs/video_zoom_formatting_simple.gif | Bin 0 -> 174086 bytes frontend/src/platform.rs | 9 ++-- frontend/src/platform/browser.rs | 19 ++++--- frontend/src/waveform_panel/pixi_canvas.rs | 50 ++++++++++++------ frontend/typescript/bundles/pixi_canvas.js | 20 +++++-- .../typescript/pixi_canvas/pixi_canvas.ts | 21 ++++++-- shared/src/signal_to_timeline.rs | 4 +- src-tauri/src/lib.rs | 19 ++++--- 11 files changed, 106 insertions(+), 52 deletions(-) rename docs/{video_simple_vcd.gif => video_desktop.gif} (100%) create mode 100644 docs/video_zoom_formatting.gif create mode 100644 docs/video_zoom_formatting_simple.gif diff --git a/README.md b/README.md index 7cfd3a9..158b34d 100644 --- a/README.md +++ b/README.md @@ -4,11 +4,23 @@ ---

- fastwave_screenshot_firefox + Fastwave - Browser (Firefox) + Browser (Firefox)

- fastwave_video_desktop + Fastwave - Desktop, miller columns and tree + Desktop, miller columns and tree +

+ +

+ Fastwave - Zoom, pan and basic number formats + Zoom, pan and basic number formats +

+ +

+ Fastwave - Zoom and all formats + Zoom and all formats

--- diff --git a/docs/video_simple_vcd.gif b/docs/video_desktop.gif similarity index 100% rename from docs/video_simple_vcd.gif rename to docs/video_desktop.gif diff --git a/docs/video_zoom_formatting.gif b/docs/video_zoom_formatting.gif new file mode 100644 index 0000000000000000000000000000000000000000..0ade85fbe84a781cca7966e65f49d0272ad2193f GIT binary patch literal 626538 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

cHFwZ$>kyyG+g(ksu5Vg% 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

TH{3WfCo~2A|G=a_ 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ςm+vJe_FuTqb9bW0vsn(8+#O3e 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

GFpE&gum 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%0D+#I){N88c@WbkD1p*-*Z! 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

1N}c~6O*-``idYpVh_o-6Hg+50-dz3-Z7 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 literal 0 HcmV?d00001 diff --git a/frontend/src/platform.rs b/frontend/src/platform.rs index 58903f9..73c7f73 100644 --- a/frontend/src/platform.rs +++ b/frontend/src/platform.rs @@ -38,13 +38,14 @@ pub async fn load_signal_and_get_timeline( var_format: shared::VarFormat, ) -> shared::Timeline { platform::load_signal_and_get_timeline( - signal_ref, + signal_ref, timeline_zoom, timeline_viewport_width, - timeline_viewport_x, - block_height, + timeline_viewport_x, + block_height, var_format, - ).await + ) + .await } pub async fn unload_signal(signal_ref: wellen::SignalRef) { diff --git a/frontend/src/platform/browser.rs b/frontend/src/platform/browser.rs index 796f007..09f94fb 100644 --- a/frontend/src/platform/browser.rs +++ b/frontend/src/platform/browser.rs @@ -87,16 +87,15 @@ pub(super) async fn load_signal_and_get_timeline( waveform.load_signals_multi_threaded(&[signal_ref]); let signal = waveform.get_signal(signal_ref).unwrap(); let time_table = waveform.time_table(); - let timeline = - shared::signal_to_timeline( - signal, - time_table, - timeline_zoom, - timeline_viewport_width, - timeline_viewport_x, - block_height, - var_format, - ); + let timeline = shared::signal_to_timeline( + signal, + time_table, + timeline_zoom, + timeline_viewport_width, + timeline_viewport_x, + block_height, + var_format, + ); timeline } diff --git a/frontend/src/waveform_panel/pixi_canvas.rs b/frontend/src/waveform_panel/pixi_canvas.rs index 69e5960..532eded 100644 --- a/frontend/src/waveform_panel/pixi_canvas.rs +++ b/frontend/src/waveform_panel/pixi_canvas.rs @@ -53,7 +53,12 @@ impl PixiCanvas { let task_with_controller = Mutable::new(None); // -- FastWave-specific -- let timeline_getter = Rc::new(Closure::new( - |signal_ref_index, timeline_zoom, timeline_viewport_width, timeline_viewport_x, row_height, var_format| { + |signal_ref_index, + timeline_zoom, + timeline_viewport_width, + timeline_viewport_x, + row_height, + var_format| { future_to_promise(async move { let signal_ref = wellen::SignalRef::from_index(signal_ref_index).unwrap_throw(); let timeline = platform::load_signal_and_get_timeline( @@ -84,15 +89,17 @@ impl PixiCanvas { })) .update_raw_el(|raw_el| { // @TODO rewrite to a native Zoon API - raw_el.event_handler(clone!((controller) move |event: events_extra::WheelEvent| { - if let Some(controller) = controller.lock_ref().as_ref() { - controller.zoom_or_pan( - event.delta_y(), - event.shift_key(), - event.offset_x() as u32, - ); - } - })) + raw_el.event_handler( + clone!((controller) move |event: events_extra::WheelEvent| { + if let Some(controller) = controller.lock_ref().as_ref() { + controller.zoom_or_pan( + event.delta_y(), + event.shift_key(), + event.offset_x() as u32, + ); + } + }), + ) }) .after_insert(clone!((controller, timeline_getter) move |element| { Task::start(async move { @@ -100,8 +107,8 @@ impl PixiCanvas { 1., width.get(), 0, - row_height, - row_gap, + row_height, + row_gap, &timeline_getter ); pixi_controller.init(&element).await; @@ -140,8 +147,16 @@ mod js_bridge { type TimelineViewportX = i32; type RowHeight = u32; type VarFormatJs = JsValue; - type TimelineGetter = - Closure TimelinePromise>; + type TimelineGetter = Closure< + dyn FnMut( + SignalRefIndex, + TimelineZoom, + TimelineViewportWidth, + TimelineViewportX, + RowHeight, + VarFormatJs, + ) -> TimelinePromise, + >; // Note: Add all corresponding methods to `frontend/typescript/pixi_canvas/pixi_canvas.ts` #[wasm_bindgen(module = "/typescript/bundles/pixi_canvas.js")] @@ -184,7 +199,12 @@ mod js_bridge { pub fn set_var_format(this: &PixiController, index: usize, var_format: JsValue); #[wasm_bindgen(method)] - pub fn zoom_or_pan(this: &PixiController, wheel_delta_y: f64, shift_key: bool, offset_x: u32); + pub fn zoom_or_pan( + this: &PixiController, + wheel_delta_y: f64, + shift_key: bool, + offset_x: u32, + ); #[wasm_bindgen(method)] pub fn remove_var(this: &PixiController, index: usize); diff --git a/frontend/typescript/bundles/pixi_canvas.js b/frontend/typescript/bundles/pixi_canvas.js index 27976c4..d542b5e 100644 --- a/frontend/typescript/bundles/pixi_canvas.js +++ b/frontend/typescript/bundles/pixi_canvas.js @@ -35223,10 +35223,22 @@ var PixiController = class { } else { const offset_x_ratio = offset_x / this.timeline_viewport_width; const old_timeline_width = this.timeline_viewport_width * this.timeline_zoom; - this.timeline_zoom -= Math.sign(wheel_delta_y) * this.timeline_zoom * 0.5; - const new_timeline_width = this.timeline_viewport_width * this.timeline_zoom; - const timeline_width_difference = new_timeline_width - old_timeline_width; - this.timeline_viewport_x += timeline_width_difference * offset_x_ratio; + const new_zoom = this.timeline_zoom - Math.sign(wheel_delta_y) * this.timeline_zoom * 0.5; + const new_timeline_width = this.timeline_viewport_width * new_zoom; + if (new_timeline_width < this.timeline_viewport_width) { + this.timeline_zoom = 1; + this.timeline_viewport_x = 0; + } else { + const timeline_width_difference = new_timeline_width - old_timeline_width; + this.timeline_viewport_x += timeline_width_difference * offset_x_ratio; + this.timeline_zoom = new_zoom; + } + } + const timeline_width = this.timeline_viewport_width * this.timeline_zoom; + if (this.timeline_viewport_x < 0) { + this.timeline_viewport_x = 0; + } else if (this.timeline_viewport_x + this.timeline_viewport_width > timeline_width) { + this.timeline_viewport_x = timeline_width - this.timeline_viewport_width; } this.redraw_all_rows(); } diff --git a/frontend/typescript/pixi_canvas/pixi_canvas.ts b/frontend/typescript/pixi_canvas/pixi_canvas.ts index f3c60b9..04e0935 100644 --- a/frontend/typescript/pixi_canvas/pixi_canvas.ts +++ b/frontend/typescript/pixi_canvas/pixi_canvas.ts @@ -151,13 +151,24 @@ export class PixiController { if (shift_key) { this.timeline_viewport_x += Math.sign(wheel_delta_y) * 20; } else { - // @TODO bounds const offset_x_ratio = offset_x / this.timeline_viewport_width; const old_timeline_width = this.timeline_viewport_width * this.timeline_zoom; - this.timeline_zoom -= Math.sign(wheel_delta_y) * this.timeline_zoom * 0.5; - const new_timeline_width = this.timeline_viewport_width * this.timeline_zoom; - const timeline_width_difference = new_timeline_width - old_timeline_width; - this.timeline_viewport_x += timeline_width_difference * offset_x_ratio; + const new_zoom = this.timeline_zoom - Math.sign(wheel_delta_y) * this.timeline_zoom * 0.5; + const new_timeline_width = this.timeline_viewport_width * new_zoom; + if (new_timeline_width < this.timeline_viewport_width) { + this.timeline_zoom = 1; + this.timeline_viewport_x = 0; + } else { + const timeline_width_difference = new_timeline_width - old_timeline_width; + this.timeline_viewport_x += timeline_width_difference * offset_x_ratio; + this.timeline_zoom = new_zoom; + } + } + const timeline_width = this.timeline_viewport_width * this.timeline_zoom; + if (this.timeline_viewport_x < 0) { + this.timeline_viewport_x = 0; + } else if (this.timeline_viewport_x + this.timeline_viewport_width > timeline_width) { + this.timeline_viewport_x = timeline_width - this.timeline_viewport_width; } this.redraw_all_rows(); } diff --git a/shared/src/signal_to_timeline.rs b/shared/src/signal_to_timeline.rs index e9fc24f..f2d05b6 100644 --- a/shared/src/signal_to_timeline.rs +++ b/shared/src/signal_to_timeline.rs @@ -38,7 +38,7 @@ pub fn signal_to_timeline( while let Some((block_x, value)) = x_value_pairs.next() { if block_x >= (timeline_viewport_width as f64) { break; - } + } let next_block_x = if let Some((next_block_x, _)) = x_value_pairs.peek() { *next_block_x @@ -52,7 +52,7 @@ pub fn signal_to_timeline( } if block_x + (block_width as f64) <= 0. { continue; - } + } // @TODO cache? let value = var_format.format(value); diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 3b45d05..d985c1c 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -56,16 +56,15 @@ async fn load_signal_and_get_timeline( waveform.load_signals_multi_threaded(&[signal_ref]); let signal = waveform.get_signal(signal_ref).unwrap(); let time_table = waveform.time_table(); - let timeline = - shared::signal_to_timeline( - signal, - time_table, - timeline_zoom, - timeline_viewport_width, - timeline_viewport_x, - block_height, - var_format, - ); + let timeline = shared::signal_to_timeline( + signal, + time_table, + timeline_zoom, + timeline_viewport_width, + timeline_viewport_x, + block_height, + var_format, + ); Ok(serde_json::to_value(timeline).unwrap()) } -- 2.50.1