Skip to content

Conversation

@simoninns
Copy link
Collaborator

Bar graphs render correctly from x-axis + fast frame navigation with minimal overhead (throttled and timed updates + minimal repaint area for frame marker updates).

Test environment showed source frame rendering at about 60 FPS after changes - some slow down when rendering graphs (of course) but not any where close to the previous builds in terms of performance degradation.

Commit 1: 6bdeb47 - Bar graph mode and refactoring

Added bar graph mode to plotwidget class and refactored class naming. This fixes issue #976

Renamed PlotCurve → PlotSeries for better semantic clarity
Added PlotStyle enum with Lines and Bars modes
Implemented bar rendering in PlotSeries::updatePath() - bars draw from y=0 to data point
Updated all 4 analysis dialogues to use new naming

Commit 2: 28d0665 - Timer-based throttled updates

Optimized frame updates with timer-based throttling

Added QTimer with 16ms interval (~60 FPS) to throttle rapid frame updates
Updates only happen when dialogs are visible (skip when hidden)
Added showEvent() override to apply pending updates when dialog opens
Prevents processing on every single frame during rapid navigation

Commit 3: 3dc75d2 - Optimized marker rendering (current HEAD)

Drastically reduced plot time during seeking

Optimized PlotMarker::boundingRect() to return only the marker line area (±2px margin)
Added prepareGeometryChange() call before position updates
Prevents unnecessary repainting of entire plot area - only redraws thin marker line

…ing for better clarity around it's functionality
…processing is done and, when open, update is timer based (not every frame). Optimizes frame updates.
…ata to drastically reduce the plot time when seeking in ld-analyse.
@simoninns simoninns merged commit 0d422bf into happycube:main Dec 7, 2025
2 checks passed
@simoninns simoninns deleted the issues-20251207 branch December 7, 2025 09:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant