58 Commits

Author SHA1 Message Date
Adam Barth
91a783bf62 Rename Widget.root to Widget.renderObject
The name `root` is confusing because this value isn't the root of anything.
It's just the associated `RenderObject` instance.
2015-08-17 14:15:26 -07:00
Viktor Lidholt
f49a490dc0 Adds SoundManager class 2015-08-17 12:49:32 -07:00
Viktor Lidholt
d028875510 Adds a new ActionDelay class to sprites 2015-08-17 09:23:13 -07:00
Viktor Lidholt
e17f6b7b06 Adds background music for demo game 2015-08-13 16:00:29 -07:00
Viktor Lidholt
4530e45710 Unifies interfaces for SoundTrackPlayer and SoundEffectPlayer 2015-08-13 16:00:29 -07:00
Viktor Lidholt
a750da5606 Adds a SoundTrackPlayer class 2015-08-13 16:00:29 -07:00
Viktor Lidholt
3d31273e65 Rename SoundCompleteCallback to SoundEffectStreamCallback 2015-08-13 16:00:29 -07:00
Viktor Lidholt
fa82f1a6e1 Refactors names of sound effect classes 2015-08-13 16:00:29 -07:00
Viktor Lidholt
6895312218 Removes the ability to jump to different positions in sound effects (this isn't supported on Android) 2015-08-13 16:00:29 -07:00
Viktor Lidholt
b529445fae Adds sounds to demo game 2015-08-13 12:35:32 -07:00
Viktor Lidholt
86a8e06a90 Adds sound support to sprite api 2015-08-13 12:35:32 -07:00
Viktor Lidholt
5cf3b58f66 Merge pull request #577 from vlidholt/master
Fixes issue in sprite
2015-08-13 12:33:40 -07:00
Adam Barth
c80603cf0e Add PaintingContext which has-a sky.Canvas instead of is-a sky.Canvas
We'll need this for compositing because we need to switch out the sky.Canvas
when we switch compositing layers.
2015-08-13 10:18:33 -07:00
Viktor Lidholt
d8c1d99c25 Fixes issue in sprite 2015-08-12 10:25:55 -07:00
Viktor Lidholt
87a50f412d Adds API docs to particle systems and removes redundant property 2015-08-11 16:25:58 -07:00
Viktor Lidholt
238ac8abdc Adds API docs to sprite Node and Node3D 2015-08-11 14:33:45 -07:00
Viktor Lidholt
db8bdbe619 Adds API docs to sprite ColorSequence and Layer 2015-08-11 14:13:57 -07:00
Viktor Lidholt
1e0ceaf1ac Merge pull request #561 from vlidholt/master
Adds documentation for sprite actions
2015-08-11 14:04:22 -07:00
Viktor Lidholt
7d5dece1db Adds documentation for actions. 2015-08-11 12:19:07 -07:00
Viktor Lidholt
7d3a6c4a78 Merge pull request #527 from vlidholt/master
Adds optional rect property to sprite layer class
2015-08-11 09:11:09 -07:00
Adam Barth
9f228349e9 Use ImageResource instead of Future<sky.Image>
Using ImageResource solves two problems:

1) Listeners can be notified synchronously when the sky.Image is already
   available. This change removes flash of 0x0 layout when moving an
   already-cached image around in the render tree.

2) In the future, when we support animated images, we can notify listeners
   multiple times whenever a new image is available.
2015-08-10 20:43:32 -07:00
Ian Fischer
3a2fd489fa Merge pull request #528 from iansf/asteroids_move_main
Move main.dart to lib/main.dart for the game
2015-08-10 15:06:54 -07:00
Ian Fischer
1d661379c9 Move game/main.dart to game/lib/main.dart. 2015-08-10 15:05:54 -07:00
Viktor Lidholt
9b898cffac Adds optional rect property to sprite layer class 2015-08-10 14:43:34 -07:00
Viktor Lidholt
35bdbbfee0 Updates demo game with changes to Sprites and Nodes 2015-08-10 12:37:44 -07:00
Viktor Lidholt
7b4f41e36c Adds new Layer class 2015-08-10 12:37:12 -07:00
Viktor Lidholt
32359d4b62 Refactors Sprite class to use SpritePaint mix-in for setting paint properties 2015-08-10 12:36:08 -07:00
Viktor Lidholt
e4b8d8a84a Improves particle performance by never having doubles as null (5% gain in performance test) 2015-08-10 10:05:35 -07:00
Ian Fischer
d44ed7dfc3 Move example out of sky/packages to //examples 2015-08-07 17:04:50 -07:00
Ian Fischer
82404e030a Move sky/examples to sky/sdk/lib/example, and code changes to support that change. Fixes T277.
R=abarth@chromium.org

Review URL: https://codereview.chromium.org/1218593002.
2015-06-26 15:06:40 -07:00
Viktor Lidholt
2e32c6721d Adds support for rotated textures
Adds documentation to Texture and SpriteSheet

R=abarth@chromium.org

Review URL: https://codereview.chromium.org/1212073002.
2015-06-25 13:13:33 -07:00
Ian Fischer
82d1eb2fdb Decouple Canvas from DisplayList and map Picture and PictureRecorder more directly to their Skia counterparts.
Also changes the framework dart code to use the
refactored APIs and fixes the various examples and
tests.

R=abarth@chromium.org, ianh@chromium.org

Review URL: https://codereview.chromium.org/1190123003.
2015-06-24 10:21:45 -07:00
Viktor Lidholt
9b1985c237 Adds basic sprite sheet support to sprites
Adds drawImageRect to Canvas bindings

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/1204783003.
2015-06-23 16:38:28 -07:00
Viktor Lidholt
639e47bd7f Adds API documentation, improves the API names, and cleans up code.
R=ianh@google.com

Review URL: https://codereview.chromium.org/1201983004.
2015-06-22 10:13:23 -07:00
Viktor Lidholt
43d97f6903 Correctly handle touches together with zPosition
Renames hitTest to isPointInside

Refactor sorting of children in nodes

Fixes zPosition in sprites and hides internal methods

Adds scaleX / scaleY properties

R=abarth@chromium.org

Review URL: https://codereview.chromium.org/1190393004.
2015-06-19 11:15:58 -07:00
Viktor Lidholt
b06190fb7b Adds a SpriteWidget and simplifies sample game setup
R=abarth@chromium.org

Review URL: https://codereview.chromium.org/1197493002.
2015-06-19 09:14:12 -07:00
Viktor Lidholt
627aeff31a Optimizes sprite transformations for box to node
Enabling/disabling of handling multiple pointers
Adds basic touch handling

R=abarth@chromium.org

Review URL: https://codereview.chromium.org/1179413009.
2015-06-18 15:29:26 -07:00
Hixie
d2d11a04a1 Cleanup of SkyBinding, and resultant yak shaving.
Some files are moved by this:
  Copy framework/node.dart into types/ - preparing for framework/'s decomissioning.
  Move app/scheduler.dart into sky/scheduler.dart - "app" doesn't really make sense.

As part of the SkyBinding cleanup, I made the hit-testing less
RenderBox-specific, by having the HitTestEntry.target member be a
HitTestTarget, which is an interface with the handleEvent() function,
which is then implemented by RenderBox. In theory, someone could now
extend hit testing from the RenderBox world into their own tree of
nodes, and take part in all the same dispatch logic automatically.

This involved moving all the hit testing type definitions into a new
sky/hittest.dart file.

Renamed SkyBinding._app to SkyBinding._instance for clarity.

Moved code around in SkyBinding so that related things are together.

Made WidgetSkyBinding use the existing SkyBinding.instance singleton
logic rather than having its own copy.

I also added some stub README.md files that describe dependencies.

R=abarth@chromium.org

Review URL: https://codereview.chromium.org/1187393002.
2015-06-17 19:54:11 -07:00
Adam Barth
8e5245c9a1 Implement ColorFilter in widgets/basic.dart
Also, trim the redundant |Mode| suffix from the TransferMode names.

R=ianh@google.com

Review URL: https://codereview.chromium.org/1188003006.
2015-06-17 17:06:27 -07:00
Viktor Lidholt
abc8eaa505 Places demo game in a OneChildRenderObjectWrapper and adds a star field and nebula for background
R=abarth@chromium.org

Review URL: https://codereview.chromium.org/1187153002.
2015-06-16 10:59:24 -07:00
Viktor Lidholt
6c7a619f99 Updates game for new AppView API
Deletes old test game

Demo game is now playable

Updates demo game with steering and changes in sprites

Fixes smaller bugs in sprites

Refactor class names in game demo

Strips Box2D from game

Fixes ordering in game node

Adds frameRate property to SpriteBox and improves update methods.

Fixes node to box transformations for hit tests

Fixes minor code issues

R=abarth@chromium.org

Review URL: https://codereview.chromium.org/1179333002.
2015-06-15 09:11:16 -07:00
Adam Barth
17d3b4957a Rename all the things
This CL moves the bulk of the SkyView code out of the |framework| directory
because the |framework| directory was redundant in Dart package import
declarations.

TBR=ianh@google.com

Review URL: https://codereview.chromium.org/1177383006.
2015-06-13 09:46:52 -07:00
Matt Perry
cc5fde4e61 Fix bustage from my previous CL: "Color.fromARGB" becomes "new Color.fromARGB".
R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/1184523002.
2015-06-11 15:59:10 -04:00
Matt Perry
7357aa443b Remove redundant Paint.setARGB in favor of assigning to Paint.color.
R=abarth@chromium.org

Review URL: https://codereview.chromium.org/1182563002.
2015-06-11 15:43:53 -04:00
Matt Perry
a523d7f3ea Fix up constructor naming style for MaskFilter and ColorFilter.
R=abarth@chromium.org

Review URL: https://codereview.chromium.org/1179913002.
2015-06-11 13:15:20 -04:00
Viktor Lidholt
dcb0fa4312 Adds hit tests and transformations between coordinate systems in sprites
Sprite nodes use Point instead of Vector2

Updates sprite test app

Refactors accounting for pivot points in sprites

Adds abstract NodeWithSize class in Sprites.

Refactors SpriteNode to Sprite

Refactors TransformNode to Node (may need to find another name as it conflicts with Sky's Node).

Sprite system now uses and caches transformation matrices.

R=abarth@chromium.org

Review URL: https://codereview.chromium.org/1180703002.
2015-06-11 08:44:22 -07:00
Adam Barth
ac7f2ff860 Ink splashes should start at the touch point
Previously, they always started at the center of the RenderInkWell. Now we
remember the local coordinates we computed during the hit test and provide that
information when handling the event.

R=ianh@google.com

Review URL: https://codereview.chromium.org/1180553002.
2015-06-10 13:55:20 -07:00
Viktor Lidholt
3260d9988d Adds support for zOrder and references to parent nodes in sprites, also start of new test app.
R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/1177563004.
2015-06-10 09:21:01 -07:00
Matt Perry
5a0b18490f Change the ColorFilter constructor to ColorFilter.Mode, in case we want to add
more ColorFilter types.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/1163373007.
2015-06-09 14:55:52 -04:00
Hixie
37f0b0240b Convert everything in the Sky API from degrees to radians.
Radians are the one true angle unit.

R=abarth@chromium.org

Review URL: https://codereview.chromium.org/1164393002
2015-06-08 14:38:06 -07:00