Class ThreadTimelineComponent

java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
eu.svjatoslav.sixth.e3d.gui.ThreadTimelineComponent
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable

public class ThreadTimelineComponent extends JComponent
Per-thread activity timeline for the Developer Tools window — the software-renderer equivalent of a GPU frame profiler's occupancy view.

One row per worker thread, plus the render and present threads pinned to the top. Worker rows are labeled CPU 01..N in a stable order. Time on the X axis, interval kind as color. Black gaps are idle time — the spots where a core had no work, which is what this view exists to find. In a perfectly pipelined renderer every worker row is solid: when transform of frame N+1 (yellow-green) starts appearing inside paint of frame N (blue), the pipeline is overlapping as intended.

While recording, the view shows a live-scrolling window of the last ~100 ms. After Record is toggled off the capture freezes and can be scrolled back through the whole retained history (the ring buffer keeps roughly the last 10+ seconds at typical task rates) with the scrollbar or the mouse wheel.

Reads the ThreadActivityRecorder ring buffer directly on repaint; recording itself is toggled from the parent panel.

See Also:
  • Field Details

    • scrollBar

      public final JScrollBar scrollBar
      Scrollbar for navigating a frozen capture, in milliseconds scrolled back from the latest recorded interval. Owned here so the component can keep the model in sync with the capture length; the parent panel adds it below the timeline.
  • Constructor Details

    • ThreadTimelineComponent

      public ThreadTimelineComponent()
  • Method Details