CanvasTerminal.withCanvas constructor
CanvasTerminal.withCanvas(
- CanvasElement canvas,
- CanvasRenderer renderer,
- int pixelWidth,
- int pixelHeight, [
- int? scale,
- Vec2? minSize,
Builds a CanvasTerminal using the given html.CanvasElement and a
pre-configured CanvasRenderer. Will update the canvas to fit into the
supplied pixel dimensions (or the given minSize
columns and rows) using
the given or current scale
.
Implementation
factory CanvasTerminal.withCanvas(html.CanvasElement canvas,
CanvasRenderer renderer, int pixelWidth, int pixelHeight,
[int? scale, Vec2? minSize]) {
scale ??= html.window.devicePixelRatio.toInt();
var cols = pixelWidth ~/ renderer.charWidth;
var rows = pixelHeight ~/ renderer.charHeight;
if (minSize != null) {
cols = math.max<int>(cols, minSize.x);
rows = math.max<int>(rows, minSize.y);
}
var cWidth = cols * renderer.charWidth;
var cHeight = rows * renderer.charHeight;
canvas.width = cWidth * scale;
canvas.height = cHeight * scale;
canvas.style.width = '${cWidth}px';
canvas.style.height = '${cHeight}px';
// do our best to get pixel-perfect rendering
canvas.style.imageRendering = 'pixelated';
canvas.style.fontSmoothing = 'none';
return CanvasTerminal._(canvas, renderer, cols, rows);
}