|
1 | 1 | import { readConfObject } from '@jbrowse/core/configuration' |
2 | 2 | import { getAdapter } from '@jbrowse/core/data_adapters/dataAdapterCache' |
3 | 3 | import BoxRendererType from '@jbrowse/core/pluggableElementTypes/renderers/BoxRendererType' |
4 | | -import { renderToAbstractCanvas } from '@jbrowse/core/util' |
| 4 | +import { renderToAbstractCanvas, updateStatus } from '@jbrowse/core/util' |
5 | 5 |
|
6 | 6 | import { PileupLayoutSession } from './PileupLayoutSession' |
7 | 7 | import { fetchSequence } from '../util' |
@@ -53,39 +53,39 @@ export default class PileupRenderer extends BoxRendererType { |
53 | 53 | async render(renderProps: RenderArgsDeserialized) { |
54 | 54 | const features = await this.getFeatures(renderProps) |
55 | 55 | const layout = this.createLayoutInWorker(renderProps) |
56 | | - const { colorBy, regions, bpPerPx } = renderProps |
| 56 | + const { statusCallback = () => {}, colorBy, regions, bpPerPx } = renderProps |
57 | 57 | const region = regions[0]! |
58 | | - |
59 | | - const regionSequence = |
60 | | - colorBy?.type === 'methylation' && features.size |
61 | | - ? await this.fetchSequence(renderProps, region) |
62 | | - : undefined |
63 | | - |
| 58 | + const width = (region.end - region.start) / bpPerPx |
64 | 59 | const { layoutRecords, height } = layoutFeats({ |
65 | 60 | ...renderProps, |
66 | 61 | features, |
67 | 62 | layout, |
68 | 63 | }) |
69 | | - const width = (region.end - region.start) / bpPerPx |
70 | | - const { makeImageData } = await import('./makeImageData') |
71 | 64 |
|
72 | | - const res = await renderToAbstractCanvas( |
73 | | - width, |
74 | | - height, |
75 | | - renderProps, |
76 | | - ctx => { |
77 | | - makeImageData({ |
78 | | - ctx, |
79 | | - layoutRecords, |
80 | | - canvasWidth: width, |
81 | | - renderArgs: { |
82 | | - ...renderProps, |
83 | | - layout, |
84 | | - features, |
85 | | - regionSequence, |
86 | | - }, |
| 65 | + const res = await updateStatus( |
| 66 | + 'Rendering alignments', |
| 67 | + statusCallback, |
| 68 | + async () => { |
| 69 | + const regionSequence = |
| 70 | + colorBy?.type === 'methylation' && features.size |
| 71 | + ? await this.fetchSequence(renderProps, region) |
| 72 | + : undefined |
| 73 | + const { makeImageData } = await import('./makeImageData') |
| 74 | + |
| 75 | + return renderToAbstractCanvas(width, height, renderProps, ctx => { |
| 76 | + makeImageData({ |
| 77 | + ctx, |
| 78 | + layoutRecords, |
| 79 | + canvasWidth: width, |
| 80 | + renderArgs: { |
| 81 | + ...renderProps, |
| 82 | + layout, |
| 83 | + features, |
| 84 | + regionSequence, |
| 85 | + }, |
| 86 | + }) |
| 87 | + return undefined |
87 | 88 | }) |
88 | | - return undefined |
89 | 89 | }, |
90 | 90 | ) |
91 | 91 |
|
|
0 commit comments