| Index: sky/examples/game/lib/sprite_box.dart
|
| diff --git a/sky/examples/game/lib/sprite_box.dart b/sky/examples/game/lib/sprite_box.dart
|
| index 1fb0b0806eba04ca593d8731caff2134abbacd8b..9125b44f4fb10684ce20e444a15d9149f594a978 100644
|
| --- a/sky/examples/game/lib/sprite_box.dart
|
| +++ b/sky/examples/game/lib/sprite_box.dart
|
| @@ -14,7 +14,7 @@ class SpriteBox extends RenderBox {
|
| // Member variables
|
|
|
| // Root node for drawing
|
| - Node _rootNode;
|
| + NodeWithSize _rootNode;
|
|
|
| // Tracking of frame rate and updates
|
| double _lastTimeStamp;
|
| @@ -23,8 +23,8 @@ class SpriteBox extends RenderBox {
|
|
|
| // Transformation mode
|
| SpriteBoxTransformMode transformMode;
|
| - double _systemWidth;
|
| - double _systemHeight;
|
| +// double _systemWidth;
|
| +// double _systemHeight;
|
|
|
| // Cached transformation matrix
|
| Matrix4 _transformMatrix;
|
| @@ -33,7 +33,7 @@ class SpriteBox extends RenderBox {
|
|
|
| // Setup
|
|
|
| - SpriteBox(Node rootNode, [SpriteBoxTransformMode mode = SpriteBoxTransformMode.nativePoints, double width=1024.0, double height=1024.0]) {
|
| + SpriteBox(NodeWithSize rootNode, [SpriteBoxTransformMode mode = SpriteBoxTransformMode.nativePoints]) {
|
| assert(rootNode != null);
|
| assert(rootNode._spriteBox == null);
|
|
|
| @@ -45,8 +45,8 @@ class SpriteBox extends RenderBox {
|
|
|
| // Setup transform mode
|
| transformMode = mode;
|
| - _systemWidth = width;
|
| - _systemHeight = height;
|
| +// _systemWidth = rootNode.size.width;
|
| +// _systemHeight = rootNode.size.height;
|
|
|
| _scheduleTick();
|
| }
|
| @@ -60,10 +60,10 @@ class SpriteBox extends RenderBox {
|
|
|
| // Properties
|
|
|
| - double get systemWidth => _systemWidth;
|
| - double get systemHeight => _systemHeight;
|
| + double get systemWidth => rootNode.size.width;
|
| + double get systemHeight => rootNode.size.height;
|
|
|
| - Node get rootNode => _rootNode;
|
| + NodeWithSize get rootNode => _rootNode;
|
|
|
| void performLayout() {
|
| size = constraints.constrain(Size.infinite);
|
| @@ -152,44 +152,49 @@ class SpriteBox extends RenderBox {
|
| double offsetX = 0.0;
|
| double offsetY = 0.0;
|
|
|
| + double systemWidth = rootNode.size.width;
|
| + double systemHeight = rootNode.size.height;
|
| +
|
| switch(transformMode) {
|
| case SpriteBoxTransformMode.stretch:
|
| - scaleX = size.width/_systemWidth;
|
| - scaleY = size.height/_systemHeight;
|
| + scaleX = size.width/systemWidth;
|
| + scaleY = size.height/systemHeight;
|
| break;
|
| case SpriteBoxTransformMode.letterbox:
|
| - scaleX = size.width/_systemWidth;
|
| - scaleY = size.height/_systemHeight;
|
| + scaleX = size.width/systemWidth;
|
| + scaleY = size.height/systemHeight;
|
| if (scaleX > scaleY) {
|
| scaleY = scaleX;
|
| - offsetY = (size.height - scaleY * _systemHeight)/2.0;
|
| + offsetY = (size.height - scaleY * systemHeight)/2.0;
|
| }
|
| else {
|
| scaleX = scaleY;
|
| - offsetX = (size.width - scaleX * _systemWidth)/2.0;
|
| + offsetX = (size.width - scaleX * systemWidth)/2.0;
|
| }
|
| break;
|
| case SpriteBoxTransformMode.scaleToFit:
|
| - scaleX = size.width/_systemWidth;
|
| - scaleY = size.height/_systemHeight;
|
| + scaleX = size.width/systemWidth;
|
| + scaleY = size.height/systemHeight;
|
| if (scaleX < scaleY) {
|
| scaleY = scaleX;
|
| - offsetY = (size.height - scaleY * _systemHeight)/2.0;
|
| + offsetY = (size.height - scaleY * systemHeight)/2.0;
|
| }
|
| else {
|
| scaleX = scaleY;
|
| - offsetX = (size.width - scaleX * _systemWidth)/2.0;
|
| + offsetX = (size.width - scaleX * systemWidth)/2.0;
|
| }
|
| break;
|
| case SpriteBoxTransformMode.fixedWidth:
|
| - scaleX = size.width/_systemWidth;
|
| + scaleX = size.width/systemWidth;
|
| scaleY = scaleX;
|
| - _systemHeight = size.height/scaleX;
|
| + systemHeight = size.height/scaleX;
|
| + rootNode.size = new Size(systemWidth, systemHeight);
|
| break;
|
| case SpriteBoxTransformMode.fixedHeight:
|
| - scaleY = size.height/_systemHeight;
|
| + scaleY = size.height/systemHeight;
|
| scaleX = scaleY;
|
| - _systemWidth = size.width/scaleY;
|
| + systemWidth = size.width/scaleY;
|
| + rootNode.size = new Size(systemWidth, systemHeight);
|
| break;
|
| case SpriteBoxTransformMode.nativePoints:
|
| break;
|
|
|