Nathan Adams
61e464099c
core: Add initial drawing API to MovieClip
2020-05-20 14:54:40 +02:00
Nathan Adams
7ab6703fc9
render: Add RenderBackend::replace_shape method
2020-05-20 14:54:40 +02:00
Nathan Adams
4c80ae150c
core: Make DistilledShape use Boundingbox and not Rectangle
...
Rectangle more represents compressed swf data and isn't suited for performing operations, and the drawing api will be generating these dynamically
2020-05-20 14:54:33 +02:00
Nathan Adams
f7b5f14f65
core: Make RenderBack::register_bitmap* methods return a Result ( fixes #531 )
2020-05-19 07:12:36 -07:00
dependabot-preview[bot]
6134ae091f
build(deps): bump generational-arena from 0.2.7 to 0.2.8
...
Bumps [generational-arena](https://github.com/fitzgen/generational-arena ) from 0.2.7 to 0.2.8.
- [Release notes](https://github.com/fitzgen/generational-arena/releases )
- [Changelog](https://github.com/fitzgen/generational-arena/blob/master/CHANGELOG.md )
- [Commits](https://github.com/fitzgen/generational-arena/compare/0.2.7...0.2.8 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-18 23:54:45 -07:00
dependabot-preview[bot]
41a8b01fe7
build(deps): bump quote from 1.0.5 to 1.0.6
...
Bumps [quote](https://github.com/dtolnay/quote ) from 1.0.5 to 1.0.6.
- [Release notes](https://github.com/dtolnay/quote/releases )
- [Commits](https://github.com/dtolnay/quote/compare/1.0.5...1.0.6 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-18 08:38:24 +00:00
dependabot-preview[bot]
3b163c2b6e
build(deps): bump syn from 1.0.21 to 1.0.22
...
Bumps [syn](https://github.com/dtolnay/syn ) from 1.0.21 to 1.0.22.
- [Release notes](https://github.com/dtolnay/syn/releases )
- [Commits](https://github.com/dtolnay/syn/compare/1.0.21...1.0.22 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-16 09:46:08 +00:00
dependabot-preview[bot]
1f0e695465
build(deps): bump fnv from 1.0.6 to 1.0.7
...
Bumps [fnv](https://github.com/servo/rust-fnv ) from 1.0.6 to 1.0.7.
- [Release notes](https://github.com/servo/rust-fnv/releases )
- [Commits](https://github.com/servo/rust-fnv/compare/v1.0.6...v1.0.7 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-14 19:05:48 +00:00
dependabot-preview[bot]
1641d05d00
build(deps): bump syn from 1.0.20 to 1.0.21
...
Bumps [syn](https://github.com/dtolnay/syn ) from 1.0.20 to 1.0.21.
- [Release notes](https://github.com/dtolnay/syn/releases )
- [Commits](https://github.com/dtolnay/syn/compare/1.0.20...1.0.21 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-13 17:18:29 +00:00
dependabot-preview[bot]
e22da9ac4c
build(deps): bump quote from 1.0.4 to 1.0.5
...
Bumps [quote](https://github.com/dtolnay/quote ) from 1.0.4 to 1.0.5.
- [Release notes](https://github.com/dtolnay/quote/releases )
- [Commits](https://github.com/dtolnay/quote/compare/1.0.4...1.0.5 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-13 14:42:48 +00:00
Mike Welsh
031f5d6501
core: Avoid undefined behavior in f64_to_wrapping functions
2020-05-13 02:41:50 -07:00
Mike Welsh
b59140ee01
render: Add support for GIF decoding in DefineBitsJPEG tags
2020-05-13 00:15:09 -07:00
Mike Welsh
5d84d33710
render: Handle PNG data in DefineBitsJPEG tags ( fix #530 )
2020-05-13 00:15:09 -07:00
dependabot-preview[bot]
f68edb37b5
build(deps): bump syn from 1.0.19 to 1.0.20
...
Bumps [syn](https://github.com/dtolnay/syn ) from 1.0.19 to 1.0.20.
- [Release notes](https://github.com/dtolnay/syn/releases )
- [Commits](https://github.com/dtolnay/syn/compare/1.0.19...1.0.20 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-12 00:10:19 -07:00
Nathan Adams
b82b869950
core: Don't panic when NullNavigatorBackend can't do futures
2020-05-11 01:09:07 -07:00
Nathan Adams
2343074c56
core: Make RenderBackend downcastable
2020-05-11 01:09:07 -07:00
Nathan Adams
edcd1e6d65
core: Add keyboard shortcut to dump every variable (ctrl+alt+V, same as Flash Player)
2020-05-10 23:39:54 -07:00
Nathan Adams
c787e28fcd
render: Introduce a DistilledShape and use that instead of swf::Shape for the rendering API
2020-05-10 22:03:56 -07:00
Nathan Adams
5767fb1772
swf: Added utility method for `Color::from_rgb(rgb, alpha)`
2020-05-10 22:03:56 -07:00
Nathan Adams
601715aa19
render: Merge begin_frame and clear as they're always called together
2020-05-10 22:03:56 -07:00
dependabot-preview[bot]
60ca1da468
build(deps): bump syn from 1.0.18 to 1.0.19
...
Bumps [syn](https://github.com/dtolnay/syn ) from 1.0.18 to 1.0.19.
- [Release notes](https://github.com/dtolnay/syn/releases )
- [Commits](https://github.com/dtolnay/syn/compare/1.0.18...1.0.19 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-11 03:12:14 +00:00
Nathan Adams
054e6f1ac6
chore: Fix new rust check lint about std::mem::replace
2020-05-10 03:29:25 -07:00
Nathan Adams
bac99368be
chore: Fix new clippy lints about cloning
2020-05-10 03:29:25 -07:00
dependabot-preview[bot]
a81adfa336
build(deps): bump num_enum from 0.4.3 to 0.5.0
...
Bumps [num_enum](https://github.com/illicitonion/num_enum ) from 0.4.3 to 0.5.0.
- [Release notes](https://github.com/illicitonion/num_enum/releases )
- [Commits](https://github.com/illicitonion/num_enum/compare/0.4.3...0.5.0 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-10 10:27:38 +00:00
dependabot-preview[bot]
08a786a213
build(deps): bump libflate from 0.1.27 to 1.0.0
...
Bumps [libflate](https://github.com/sile/libflate ) from 0.1.27 to 1.0.0.
- [Release notes](https://github.com/sile/libflate/releases )
- [Commits](https://github.com/sile/libflate/compare/0.1.27...1.0.0 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-05 08:12:26 +00:00
Nathan Adams
47a44a5fe8
desktop: Prime window with known width/height of the movie
2020-05-04 16:07:38 -07:00
Nathan Adams
51d9f3ef36
core: Change Player::new to take in a SwfMovie, not &[u8]
2020-05-04 16:07:38 -07:00
Nathan Adams
84f6b4d06e
core: Set init_object values after prototype but before constructor
2020-05-03 12:46:55 -07:00
Nathan Adams
96d1f8fd30
tests: Add test for order of init_object vs constructor when attaching movies
2020-05-03 12:46:55 -07:00
Nathan Adams
0152f384ea
core: Run any on(construct) events at the appropriate time
2020-05-03 12:46:55 -07:00
Nathan Adams
2b9219e8f9
tests: Add test for undocumented on(construct) property (note: this swf is hand-crafted)
2020-05-03 12:46:55 -07:00
Mike Welsh
f09bd8c079
core: Clean up tick/render loop
...
Don't call `render` from `Player::tick`; instead, require the
frontends to explicitly call `render` when they wish to redraw.
The frontend can query `Player::needs_render` to see if the stage
is dirty and needs a redraw. Update desktop and web to use this
new method.
This fits better with the newer winit event loop model, which
requires explicitly calling `request_redraw`, and should avoid
spurious renders.
2020-05-02 04:25:21 -07:00
Mike Welsh
6339c74d67
render: Add wgpu backend (merge #527 )
...
Adds a wgpu-rs render backend.
2020-05-02 03:42:05 -07:00
Nathan Adams
8384847084
avm1: Deleting on a non-object is a silent failure & warning, not a hard error
2020-04-30 14:18:54 -07:00
dependabot-preview[bot]
04660a9540
build(deps): bump quote from 1.0.3 to 1.0.4
...
Bumps [quote](https://github.com/dtolnay/quote ) from 1.0.3 to 1.0.4.
- [Release notes](https://github.com/dtolnay/quote/releases )
- [Commits](https://github.com/dtolnay/quote/compare/1.0.3...1.0.4 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-30 21:18:17 +00:00
Nathan Adams
99d15aef0d
render: Cache color transforms in wgpu backend, don't re-upload unchanged values
2020-04-30 16:33:41 +02:00
dependabot-preview[bot]
014df249a8
build(deps): bump jpeg-decoder from 0.1.18 to 0.1.19
...
Bumps [jpeg-decoder](https://github.com/image-rs/jpeg-decoder ) from 0.1.18 to 0.1.19.
- [Release notes](https://github.com/image-rs/jpeg-decoder/releases )
- [Changelog](https://github.com/image-rs/jpeg-decoder/blob/master/CHANGELOG.md )
- [Commits](https://github.com/image-rs/jpeg-decoder/commits )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-28 04:54:23 +00:00
Mike Welsh
8aa12d181f
render: Remove RenderBackend::draw_pause_overlay
2020-04-27 04:45:53 -07:00
David Wendt
ed29b1c3bb
It turns out Macromedia just used an undocumented but user-modifiable property called `__constructor__` to store the constructor.
...
A previous version of this PR (whose history has been scrubbed, but go check 918d88abe68b7467a4194738b95e5bf3e9b5bb72 if you're curious) implemented a new `TObject` property which basically every line of code that dealt with object construction had to populate. It was terrible.
2020-04-25 14:37:24 -04:00
David Wendt
bb879870ec
Add test for the constructor property on v6 and v7 SWFs
2020-04-25 13:25:21 -04:00
Nathan Adams
b3322acc8c
tests: Copy as2_super_and_this test for manual prototype setting, used by mx (currently broken)
2020-04-25 13:25:20 -04:00
David Wendt
aaa6f481ac
Add a v6 version of the super-and-this test, which is exactly the same source compiled to SWF version 6.
2020-04-25 13:25:20 -04:00
David Wendt
17d96a0fa6
Constructing a new object sets `constructor` on that object for SWFv6 and lower.
2020-04-25 13:25:20 -04:00
David Wendt
b8fd1eac9c
Invoke virtual setters defined in the prototype chain.
...
This is accomplished via two new `TObject` methods: `has_own_virtual` and `call_setter`. If an object does not contain it's own version of a property, it will first crawl the prototype chain to see if there is an overwritable virtual. If so, it will invoke that prototype's setter.
A bit of borrow finangling was required to do this; `super` now no longer caches it's proto and constr values and instead dynamically constructs them. This also means it can't be downcasted to `Executable` anymore.
With this commit, virtual setters and super-setters now work correctly.
2020-04-25 13:25:19 -04:00
David Wendt
35197f889f
`Property.set` should return a `ReturnValue` as it can potentially execute AVM code
2020-04-25 13:25:19 -04:00
David Wendt
e76ba4de87
Method calls on `super` objects should substitute the child object instead of itself as `this`.
2020-04-25 13:25:19 -04:00
David Wendt
869cbd17da
Extend `as2_super_and_this` to cover accessing object properties in super-methods, super-getters, and super-setters.
2020-04-25 13:25:18 -04:00
David Wendt
9c5cd79e2c
Refactor how `SuperObject` works to use `base_proto` and avoid handing copies of itself as `this`.
...
This allows supercalled functions to properly read and mutate the object they were called on.
2020-04-25 13:25:18 -04:00
David Wendt
f3b3db51cb
Alter AVM1 to keep track of each function call's *base prototype*: the object from which a particular function was retrieved from.
...
A base prototype is only applicable in cases where a method is being called as a property on an object. Bare function calls, `apply`/`call` calls, and so on do not generate a base prototype.
We also add a convenience method, `call_method`, to all objects. This method automatically calculates the correct base prototype for a method call on an object, which is the only operation that should generate base prototypes.
2020-04-25 13:25:18 -04:00
David Wendt
15a19f4cf8
Add test from @Dinnerbone that checks to make sure super-called functions can still initialize the object they are a part of.
2020-04-25 13:25:17 -04:00