public attach()

in web/src/app/timeline/canvas/timeline_renderer.service.ts [262:337]


  public attach(
    canvasWrapper: HTMLElement,
    canvasSizeObserver: Observable<CanvasSize>,
  ) {
    this.canvasWrapper = canvasWrapper;
    this._canvasSize = canvasSizeObserver.pipe(
      filter((v) => v.height > 0 && v.width > 0),
      debounceTime(TimelineRendererService.MINIMUM_REFRESH_PERIOD),
      share(),
    );
    this.refleshGL();

    // Redraw timelines in the response to the depending property change
    combineLatest([
      this.glContext,
      this.canvasSize,
      this.scrollingStrategy.offsetToFirstItemFromVisibleArea,
      this.scrollingStrategy.stickyTimelines,
      this.scrollingStrategy.visibleItemRange,
      this.scrollingStrategy.perRowScrollingProperties,
      this.rowRenderers,
      this.dataStore.$timeRange,
      this.selectionManager.selectedTimeline,
      this.selectionManager.highlightedTimeline,
      this.selectionManager.highlightedChildrenOfSelectedTimeline,
      this.dataStore.allLogs,
      this.selectionManager.selectedLogIndex,
      this.selectionManager.highlightLogIndices,
      this.dataStore.filteredOutLogIndicesSet,
      this.viewState.pixelPerTime,
      this.viewState.timeOffset,
      this.viewState.devicePixelRatio,
    ]).subscribe(
      ([
        gl,
        canvasSize,
        offsetToFirstItemFromVisibleArea,
        stickyTimelines,
        visibleItemRange,
        perRowScrollingProperties,
        rowRenderers,
        timeRange,
        selectedTimeline,
        highlightedTimeline,
        highlightedByParent,
        logs,
        selectedLog,
        highlightLogs,
        filteredLogs,
        pixelPerTime,
        timeOffset,
        pixelRatio,
      ]) => {
        this.onRender(
          gl,
          canvasSize,
          offsetToFirstItemFromVisibleArea,
          visibleItemRange,
          perRowScrollingProperties,
          rowRenderers,
          timeRange,
          stickyTimelines,
          selectedTimeline,
          highlightedTimeline,
          highlightedByParent,
          logs,
          selectedLog,
          filteredLogs,
          highlightLogs,
          pixelPerTime,
          timeOffset,
          pixelRatio,
        );
      },
    );
  }