feat: defined HighFilterQualityCanvas

pull/334/head
alestiago 3 years ago
parent 8957b96ae3
commit 51bf25c670

@ -101,6 +101,14 @@ class PinballGame extends PinballForge2DGame
super.onTapDown(pointerId, info);
}
final HighFilterQualityCanvas _canvas = HighFilterQualityCanvas();
@override
void renderTree(Canvas canvas) {
_canvas.canvas = canvas;
super.renderTree(_canvas);
}
@override
void onTapUp(int pointerId, TapUpInfo info) {
_moveFlippersDown();

@ -52,12 +52,7 @@ mixin ZIndex on Component {
/// The [ZCanvas] allows to postpone the rendering of [ZIndex] components.
///
/// You should not use this class directly.
class ZCanvas implements Canvas {
/// The [Canvas] to render to.
///
/// This is set by [ZCanvasComponent] when rendering.
late Canvas canvas;
class ZCanvas extends _CanvasWrapper {
final List<ZIndex> _zBuffer = [];
/// Postpones the rendering of [ZIndex] component and its children.
@ -79,6 +74,21 @@ class ZCanvas implements Canvas {
..clear();
void _render(Component component) => component.renderTree(canvas);
}
// ignore: public_member_api_docs
class HighFilterQualityCanvas extends _CanvasWrapper {
@override
void drawImageRect(Image image, Rect src, Rect dst, Paint paint) {
if (paint.filterQuality != FilterQuality.high) {
paint.filterQuality = FilterQuality.high;
}
super.drawImageRect(image, src, dst, paint);
}
}
class _CanvasWrapper implements Canvas {
late Canvas canvas;
@override
void clipPath(Path path, {bool doAntiAlias = true}) =>
@ -151,7 +161,12 @@ class ZCanvas implements Canvas {
@override
void drawImageRect(Image image, Rect src, Rect dst, Paint paint) =>
canvas.drawImageRect(image, src, dst, paint);
canvas.drawImageRect(
image,
src,
dst,
paint,
);
@override
void drawLine(Offset p1, Offset p2, Paint paint) =>

Loading…
Cancel
Save