Fix ASCII rasterizer scaling for CLI
Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
This commit is contained in:
@@ -26,22 +26,13 @@ class _WolfFlutterRendererState
|
||||
@override
|
||||
Color get scaffoldColor => const Color.fromARGB(255, 4, 64, 64);
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_renderedFrame?.dispose();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
void performRender() {
|
||||
// Avoid overlapping render calls since decodeImageFromPixels is async
|
||||
if (_isRendering) return;
|
||||
_isRendering = true;
|
||||
|
||||
// 1. Rasterize the frame into the pixel buffer
|
||||
_rasterizer.render(widget.engine, _frameBuffer);
|
||||
|
||||
// 2. Convert raw pixels to a Flutter ui.Image
|
||||
ui.decodeImageFromPixels(
|
||||
_frameBuffer.pixels.buffer.asUint8List(),
|
||||
_frameBuffer.width,
|
||||
@@ -61,13 +52,16 @@ class _WolfFlutterRendererState
|
||||
|
||||
@override
|
||||
Widget buildViewport(BuildContext context) {
|
||||
// If we don't have a frame yet, show the loading state
|
||||
if (_renderedFrame == null) {
|
||||
return const CircularProgressIndicator(color: Colors.white24);
|
||||
}
|
||||
|
||||
return Padding(
|
||||
padding: const EdgeInsets.all(16.0),
|
||||
child: AspectRatio(
|
||||
aspectRatio: 4 / 3,
|
||||
child: CustomPaint(
|
||||
painter: BufferPainter(_renderedFrame),
|
||||
),
|
||||
child: CustomPaint(painter: BufferPainter(_renderedFrame)),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user