Remove unnecessary super.render calls (#1084)

* Remove unnecessary super.render calls

* Update tutorial and docs
This commit is contained in:
Lukas Klingsbo
2021-11-11 11:50:01 +01:00
committed by GitHub
parent ca7dc2af50
commit 0a7b87e202
38 changed files with 5 additions and 50 deletions

View File

@ -83,7 +83,6 @@ class GameOverPanel extends PositionComponent with HasGameRef<MyGame> {
@override
void render(Canvas canvas) {
if (visible) {
super.render(canvas);
} // If not visible none of the children will be rendered
}
}
@ -101,10 +100,6 @@ render from the top left corner (0.0). Your render method should not handle wher
component should be rendered. To handle where and how your component should be rendered use the
`position`, `angle` and `anchor` properties and flame will automatically handle the rest for you.
If you really want to handle the canvas translations yourself you can just omit the
`super.render(canvas)` line and suppress the warning, but for most use cases this is not
recommended.
If you want to know where on the screen the bounding box of the component is you can use the
`toRect` method.

View File

@ -7,7 +7,7 @@ that extends from `Game`. Once applied you can access the current fps by using t
like shown in the example below.
```dart
class MyGame extends Game with FPSCounter {
class MyGame extends FlameGame with FPSCounter {
static final fpsTextConfig = TextConfig(color: BasicPalette.white.color);
@override

View File

@ -57,7 +57,6 @@ class Background extends PositionComponent with HasGameRef {
@override
void render(Canvas c) {
super.render(c);
c.drawRect(hugeRect, white);
}
}

View File

@ -47,7 +47,6 @@ class MovableSquare extends SquareComponent
@override
void render(Canvas c) {
super.render(c);
final text = '(${x.toInt()}, ${y.toInt()})';
textRenderer.render(c, text, size / 2, anchor: Anchor.center);
}
@ -96,7 +95,6 @@ class Map extends Component {
@override
void render(Canvas canvas) {
super.render(canvas);
canvas.drawRect(bounds, _paintBg);
canvas.drawRect(bounds, _paintBorder);
}

View File

@ -51,7 +51,6 @@ class MyCollidable extends PositionComponent
@override
void render(Canvas canvas) {
super.render(canvas);
renderHitboxes(canvas);
}

View File

@ -76,7 +76,6 @@ abstract class MyCollidable extends PositionComponent
@override
void render(Canvas canvas) {
super.render(canvas);
renderHitboxes(canvas, paint: _activePaint);
if (_isDragged) {
final localCenter = (scaledSize / 2).toOffset();

View File

@ -30,7 +30,6 @@ class Square extends PositionComponent with HasGameRef<Priority>, Tappable {
@override
void render(Canvas canvas) {
super.render(canvas);
canvas.drawRect(size.toRect(), paint);
}
}

View File

@ -107,7 +107,6 @@ class Compass extends PositionComponent {
@override
void render(Canvas canvas) {
super.render(canvas);
canvas.drawCircle(Offset(_radius, _radius), _radius, _bgPaint);
canvas.drawPath(_marksPath, _marksPaint);
}
@ -144,7 +143,6 @@ class CompassArrow extends PositionComponent {
@override
void render(Canvas canvas) {
super.render(canvas);
canvas.drawPath(_northPath, _northPaint);
canvas.drawPath(_southPath, _southPaint);
}
@ -193,7 +191,6 @@ class CompassRim extends PositionComponent {
@override
void render(Canvas canvas) {
super.render(canvas);
canvas.drawCircle(Offset(_radius, _radius), _radius - _width / 2, _bgPaint);
canvas.drawCircle(Offset(_radius, _radius), _radius - _width, _marksPaint);
canvas.drawPath(_marksPath, _marksPaint);

View File

@ -15,7 +15,6 @@ class HoverableSquare extends PositionComponent with Hoverable {
@override
void render(Canvas canvas) {
super.render(canvas);
canvas.drawRect(size.toRect(), isHovered ? _grey : _white);
}
}

View File

@ -15,7 +15,6 @@ class TappableSquare extends PositionComponent with Tappable {
@override
void render(Canvas canvas) {
super.render(canvas);
canvas.drawRect(size.toRect(), currentPaint);
}

View File

@ -17,7 +17,6 @@ class TappableSquare extends PositionComponent with Tappable {
@override
void render(Canvas canvas) {
super.render(canvas);
canvas.drawRect(size.toRect(), _beenPressed ? _grey : _white);
}

View File

@ -561,7 +561,6 @@ class TrafficLightComponent extends Component {
@override
void render(Canvas c) {
super.render(c);
c.drawRect(rect, Paint()..color = currentColor);
}

View File

@ -20,7 +20,6 @@ class RenderedTimeComponent extends TimerComponent {
@override
void render(Canvas canvas) {
super.render(canvas);
textPaint.render(
canvas,
'Elapsed time: ${timer.current.toStringAsFixed(3)}',

View File

@ -20,6 +20,7 @@
- `randomColor` method in the `Color` extension
- Calling super-method in `.render()` is now optional
- Components that manipulate canvas state are now responsible for saving/restoring that state
- Remove `super.render` calls that are no longer needed
- Fixed typo in error message
## [1.0.0-releasecandidate.16]

View File

@ -26,8 +26,6 @@ class Square extends PositionComponent {
@override
void render(Canvas c) {
super.render(c);
c.drawRect(size.toRect(), white);
c.drawRect(const Rect.fromLTWH(0, 0, 3, 3), red);
c.drawRect(Rect.fromLTWH(width / 2, height / 2, 3, 3), blue);

View File

@ -36,8 +36,6 @@ class CustomPainterComponent extends PositionComponent {
@override
@mustCallSuper
void render(Canvas canvas) {
super.render(canvas);
painter?.paint(canvas, size.toSize());
}
}

View File

@ -66,8 +66,6 @@ class IsometricTileMapComponent extends PositionComponent {
@override
void render(Canvas c) {
super.render(c);
final size = effectiveTileSize;
for (var i = 0; i < matrix.length; i++) {
for (var j = 0; j < matrix[i].length; j++) {

View File

@ -36,7 +36,6 @@ class NineTileBoxComponent extends PositionComponent {
@mustCallSuper
@override
void render(Canvas c) {
super.render(c);
nineTileBox.drawRect(c, size.toRect());
}
}

View File

@ -116,7 +116,6 @@ class ParallaxComponent<T extends FlameGame> extends PositionComponent
@mustCallSuper
@override
void render(Canvas canvas) {
super.render(canvas);
parallax?.render(canvas);
}

View File

@ -25,7 +25,6 @@ class ParticleComponent extends Component {
/// [Particle] within this [Component].
@override
void render(Canvas canvas) {
super.render(canvas);
particle.render(canvas);
}

View File

@ -34,7 +34,6 @@ class ShapeComponent extends PositionComponent {
@override
void render(Canvas canvas) {
super.render(canvas);
shape.render(canvas, paint);
}

View File

@ -91,7 +91,6 @@ class SpriteAnimationComponent extends PositionComponent with HasPaint {
@mustCallSuper
@override
void render(Canvas canvas) {
super.render(canvas);
animation?.getSprite().render(
canvas,
size: size,

View File

@ -102,7 +102,6 @@ class SpriteAnimationGroupComponent<T> extends PositionComponent with HasPaint {
@mustCallSuper
@override
void render(Canvas canvas) {
super.render(canvas);
animation?.getSprite().render(
canvas,
size: size,

View File

@ -21,7 +21,6 @@ class SpriteBatchComponent extends Component {
@override
void render(Canvas canvas) {
super.render(canvas);
spriteBatch?.render(
canvas,
blendMode: blendMode,

View File

@ -71,7 +71,6 @@ class SpriteComponent extends PositionComponent with HasPaint {
@mustCallSuper
@override
void render(Canvas canvas) {
super.render(canvas);
sprite?.render(
canvas,
size: size,

View File

@ -48,7 +48,6 @@ class SpriteGroupComponent<T> extends PositionComponent with HasPaint {
@mustCallSuper
@override
void render(Canvas canvas) {
super.render(canvas);
sprite?.render(
canvas,
size: size,

View File

@ -187,7 +187,6 @@ class TextBoxComponent<T extends TextRenderer> extends PositionComponent {
if (_cache == null) {
return;
}
super.render(c);
c.save();
c.scale(1 / pixelRatio);
c.drawImage(_cache!, Offset.zero, _imagePaint);

View File

@ -57,7 +57,6 @@ class TextComponent<T extends TextRenderer> extends PositionComponent {
@mustCallSuper
@override
void render(Canvas canvas) {
super.render(canvas);
_textRenderer.render(canvas, text, Vector2.zero());
}
}

View File

@ -33,7 +33,6 @@ class MyComponent extends PositionComponent with Tappable, HasGameRef {
@override
void render(Canvas canvas) {
super.render(canvas);
isRenderCalled = true;
}

View File

@ -17,7 +17,6 @@ class TestComponent extends PositionComponent {
@override
void render(Canvas c) {
super.render(c);
c.drawRect(size.toRect(), _paint);
}
}

View File

@ -100,7 +100,6 @@ class BGComponent extends Component with HasGameRef {
@override
void render(Canvas c) {
super.render(c);
c.drawRect(gameRef.size.toRect(), paint);
}
}

View File

@ -20,13 +20,13 @@ class FlareActorComponent extends PositionComponent {
}
@override
@mustCallSuper
void render(Canvas canvas) {
super.render(canvas);
flareAnimation.render(canvas, size);
}
@mustCallSuper
@override
@mustCallSuper
void update(double dt) {
super.update(dt);
flareAnimation.advance(dt);

View File

@ -5,7 +5,6 @@ import 'dart:ui' as ui;
import 'package:flame/components.dart';
import 'package:flutter/rendering.dart';
import 'package:rive/rive.dart';
// ignore_for_file: implementation_imports
import 'package:rive/src/rive_core/math/aabb.dart';
import 'package:rive/src/rive_core/math/mat2d.dart';
@ -47,7 +46,6 @@ class RiveComponent extends PositionComponent {
@override
void render(ui.Canvas canvas) {
super.render(canvas);
_renderer.render(canvas, size.toSize());
}

View File

@ -16,7 +16,6 @@ class SvgComponent extends PositionComponent {
@override
void render(Canvas canvas) {
super.render(canvas);
svg.render(canvas, size);
}
}

View File

@ -15,7 +15,6 @@ class TiledComponent extends Component {
@override
void render(Canvas canvas) {
super.render(canvas);
tileMap.render(canvas);
}

View File

@ -7,7 +7,6 @@ class Player extends PositionComponent {
@override
void render(Canvas canvas) {
super.render(canvas);
canvas.drawRect(size.toRect(), _paint);
}
}

View File

@ -45,7 +45,6 @@ class Player extends PositionComponent {
@override
void render(Canvas canvas) {
super.render(canvas);
canvas.drawRect(size.toRect(), _paint);
}
}

View File

@ -41,7 +41,6 @@ class Player extends PositionComponent {
@override
void render(Canvas canvas) {
super.render(canvas);
canvas.drawRect(size.toRect(), _paint);
}
@ -133,7 +132,7 @@ removed from the Flutter widget tree.
Before we close this step, there is one small improvement that we can do. Right now, we are loading
the sprite and passing it to our component. For now, this may seen fine, but imagine a game with
a lot of components; if the game is responsible for loading assets for all coponents, our code can
a lot of components; if the game is responsible for loading assets for all components, our code can
become a mess quite fast.
Just like `FlameGame`, components also have an `onLoad` method that can be overridden to do