@jbrowse/plugin-wiggle
Version:
JBrowse 2 wiggle adapters, tracks, etc.
19 lines (18 loc) • 961 B
JavaScript
import { renderToAbstractCanvas, updateStatus } from '@jbrowse/core/util';
import { rpcResult } from '@jbrowse/core/util/librpc';
import { collectTransferables } from '@jbrowse/core/util/offscreenCanvasPonyfill';
import { drawDensity } from "../drawDensity.js";
import { serializeWiggleFeature } from "../util.js";
export async function renderDensity(renderProps, features) {
const { height, regions, bpPerPx, statusCallback = () => { } } = renderProps;
const region = regions[0];
const width = (region.end - region.start) / bpPerPx;
const { reducedFeatures, ...rest } = await updateStatus('Rendering plot', statusCallback, () => renderToAbstractCanvas(width, height, renderProps, ctx => drawDensity(ctx, { ...renderProps, features })));
const serialized = {
...rest,
features: reducedFeatures.map(serializeWiggleFeature),
height,
width,
};
return rpcResult(serialized, collectTransferables(rest));
}