Add Canvas nullcheck to render function
This commit is contained in:
parent
572406b963
commit
4c6dff35c3
3 changed files with 19 additions and 9 deletions
|
@ -25,8 +25,9 @@ class SimulationComponent implements OnInit {
|
||||||
canvas.context2D.fillRect(0, 0, canvas.width, canvas.height);
|
canvas.context2D.fillRect(0, 0, canvas.width, canvas.height);
|
||||||
canvas.context2D.setFillColorRgb(0, 255, 0);
|
canvas.context2D.setFillColorRgb(0, 255, 0);
|
||||||
canvas.context2D.fillText('''
|
canvas.context2D.fillText('''
|
||||||
If you see this\n
|
If you see this
|
||||||
the app is broken :(
|
|
||||||
|
the canvas did not load correctly :(
|
||||||
''', canvas.width / 2 - 50, canvas.height / 2);
|
''', canvas.width / 2 - 50, canvas.height / 2);
|
||||||
// engineService.create(canvas);
|
// engineService.create(canvas);
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,7 +22,7 @@ class Engine {
|
||||||
num _updateLag = 0.0;
|
num _updateLag = 0.0;
|
||||||
num _drawLag = 0.0;
|
num _drawLag = 0.0;
|
||||||
|
|
||||||
final html.CanvasElement canvas;
|
html.CanvasElement canvas;
|
||||||
Grid _grid = new Grid(GRID_X, GRID_Y);
|
Grid _grid = new Grid(GRID_X, GRID_Y);
|
||||||
bool running = false;
|
bool running = false;
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@ class Engine {
|
||||||
}
|
}
|
||||||
|
|
||||||
void clear() {
|
void clear() {
|
||||||
_grid = new Grid(100, 100);
|
_grid = new Grid(GRID_X, GRID_Y);
|
||||||
running = false;
|
running = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -78,8 +78,7 @@ class Engine {
|
||||||
}
|
}
|
||||||
|
|
||||||
void render([num interp]) {
|
void render([num interp]) {
|
||||||
// print("rendering");
|
if(canvas != null) _grid.render(canvas, interp);
|
||||||
_grid.render(canvas, interp);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void addPattern(
|
void addPattern(
|
||||||
|
|
|
@ -1,12 +1,22 @@
|
||||||
@TestOn('browser')
|
@TestOn('browser')
|
||||||
|
|
||||||
import 'dart:html';
|
|
||||||
|
|
||||||
import 'package:rules_of_living/src/Engine.dart';
|
import 'package:rules_of_living/src/Engine.dart';
|
||||||
import 'package:test/test.dart';
|
import 'package:test/test.dart';
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
test("Engine can be instantiated without canvas", () {
|
test("Engine can be instantiated without canvas", () {
|
||||||
expect(Engine(), isNot(throwsA(anything)));
|
expect(Engine(), isNot(throwsNoSuchMethodError));
|
||||||
|
});
|
||||||
|
|
||||||
|
test("Engine does not throw errors when calling render directly", () {
|
||||||
|
Engine sut = new Engine();
|
||||||
|
// anonymous function necessary since throws can not use functions with args
|
||||||
|
expect(() => sut.render(), isNot(throwsNoSuchMethodError));
|
||||||
|
});
|
||||||
|
|
||||||
|
test("Engine does not throw errors when processing without attached canvas", () {
|
||||||
|
Engine sut = new Engine();
|
||||||
|
// anonymous function necessary since throws can not use functions with args
|
||||||
|
expect(() => sut.process(1000), isNot(throwsNoSuchMethodError));
|
||||||
});
|
});
|
||||||
}
|
}
|
Loading…
Reference in a new issue