David Wendt
524f5fe57f
avm2: Impl `Stage.color`'s setter
2021-04-26 01:15:42 -07:00
David Wendt
6c6bd74af9
avm2: Impl `Stage.displayState`'s getter
2021-04-26 01:15:42 -07:00
David Wendt
ae080fd65f
avm2: Impl `flash.display.StageDisplayState`
2021-04-26 01:15:42 -07:00
David Wendt
b858f74139
avm2: Impl `Stage.contentsScaleFactor`
2021-04-26 01:15:42 -07:00
David Wendt
247f7e3de4
avm2: Impl `Stage.color`
2021-04-26 01:15:42 -07:00
David Wendt
d7a0d15fd8
avm2: Expose `Stage.browserZoomFactor`
2021-04-26 01:15:42 -07:00
David Wendt
0c6584ca03
core: Store the viewport's scale factor on the stage
2021-04-26 01:15:42 -07:00
David Wendt
98788ef194
avm2: Impl `flash.display.StageAlign`
2021-04-26 01:15:42 -07:00
David Wendt
2a30887660
avm2: Support the half-broken `loaderInfo` on the `Stage`
2021-04-26 01:15:42 -07:00
David Wendt
ef4db9ba16
avm2: Add overrides for every property that cannot be set on the `Stage`.
...
Yes, this includes properties that aren't implemented yet. They'll return a different error, but they'll still error out regardless, so I'm fine with this.
2021-04-26 01:15:42 -07:00
David Wendt
bc9affb09d
tests: Add tests for stage access and basic display object properties
2021-04-26 01:15:42 -07:00
David Wendt
716d492006
avm2: The stage's name should be `null`, not an empty string; and setting it should except.
2021-04-26 01:15:42 -07:00
David Wendt
01f74f6eb1
avm2: Add a convenience method for marking a builtin override trait.
2021-04-26 01:15:42 -07:00
David Wendt
8452e23382
avm2: Allow access to the `Stage`, both directly and indirectly
2021-04-26 01:15:42 -07:00
David Wendt
ba66c62947
core: Ensure `Stage` always has an AVM2 representation
2021-04-26 01:15:42 -07:00
David Wendt
81de112774
avm2: Add `Stage` class stub
2021-04-26 01:15:42 -07:00
David Wendt
7f4a99ca60
core: Add a `root_clip` method for `Stage` and make everything grabbing depth 0 off the stage use it
2021-04-26 01:15:42 -07:00
David Wendt
36e486b1d0
core: We don't need `CollectWrapper` anymore
2021-04-26 01:15:42 -07:00
David Wendt
f6fe0a84a2
core: Move the viewport and stage dimensions into the `Stage`.
2021-04-26 01:15:42 -07:00
David Wendt
c09bd0520c
core: Run all of the steps of a frame update on the `Stage`
2021-04-26 01:15:42 -07:00
David Wendt
b021d04345
core: Correct order of viewport bounds in render context
2021-04-26 01:15:42 -07:00
David Wendt
4e4f1dce26
core: `Stage` should render it's children
2021-04-26 01:15:42 -07:00
David Wendt
7341fa0554
core: Remove the explicit view bounding box and instead have all the culling code ask the `Stage` what it's bounding box is
2021-04-26 01:15:42 -07:00
David Wendt
67724bfc71
core: Move most of the player rendering code into the `Stage`'s render method.
2021-04-26 01:15:42 -07:00
David Wendt
44af21b398
core: `Letterbox` should be `Collect`
2021-04-26 01:15:42 -07:00
David Wendt
6bf3206d95
core: Replace `context.levels` with a root stage
2021-04-26 01:15:42 -07:00
David Wendt
0011753914
core: Add the ability to iterate over the depth list of any container
2021-04-26 01:15:42 -07:00
David Wendt
14430b9eb0
core: Add a `Stage` display object type
2021-04-26 01:15:42 -07:00
Mike Welsh
c422a66aa6
chore: Appease clippy
...
Fix `bool_assert_comparison` and `from_iter_instead_of_collect` lints.
2021-04-24 21:42:30 -07:00
Mike Welsh
d43b033caa
tests: Add tests for BitmapData max size
2021-04-24 16:16:24 -07:00
relrelb
bab0ae8f30
avm1: Limit width and height of BitmapData
2021-04-24 16:16:24 -07:00
relrelb
c78501f2bd
avm1: Fix panic in BitmapData.loadBitmap
...
BitmapData.loadBitmap is not subject to the size limit. That is,
it can load larger bitmaps than the BitmapData constructor.
Fix panic for large bitmaps by not invoking the BitmapData constructor
directly. This should also improve performance.
Do the same for BitmapData.clone.
2021-04-24 16:16:24 -07:00
relrelb
2d3a4910fc
avm1: Correct BitmapData constructor
...
* Extract is_size_valid, which respects 3 different limits:
SWF<=9, SWF10 and SWF>=11.
* Delay is_size_valid check after all arguments coercing.
* Swap the transparency and fill_color parameters of init_pixels.
2021-04-24 16:16:24 -07:00
Mike Welsh
d34b72cc47
web: Expose SWF metadata to JavaScript
...
Add `RufflePlayer.metadata` that exposes the SWF header fields to
JavaScript.
Add `RufflePlayer.readyState` and fire a `loadedmetadata` event
once the metadata is available, mimicking the HTML5 media APIs.
2021-04-23 16:58:24 -07:00
Mike Welsh
33a73c5262
tests: Bump test script timeout
2021-04-23 16:57:28 -07:00
Mike Welsh
d58bc9b5c5
core: Disable script timeout in debug builds
2021-04-23 16:57:28 -07:00
David Wendt
f33976f4c0
avm2: Store symbol / class relationships using the class constructor, not the prototype.
2021-04-23 00:26:10 -07:00
David Wendt
0ee9e0f820
tests: Add a test for constructing symbol classes in AVM2
2021-04-23 00:26:10 -07:00
David Wendt
aa6dc600c0
avm2: Treat construction of symbol classes as symbol instantiation.
2021-04-23 00:26:10 -07:00
David Wendt
815d0fb540
core: Add `DisplayObject` method for setting the AVM2 side of a display object
2021-04-23 00:26:10 -07:00
David Wendt
9b19cc1570
Store the movie associated with a given symbol being constructed.
2021-04-23 00:26:10 -07:00
David Wendt
282508a281
core: Make the AVM2 constructor registry global
2021-04-23 00:26:10 -07:00
David Wendt
b1be111a4e
core: Store constructor prototypes in the constructor registry when defining symbols
2021-04-23 00:26:10 -07:00
David Wendt
555d97006a
core: Add an AVM2 constructor registry
2021-04-23 00:26:10 -07:00
David Wendt
68c270e7c0
avm2: Impl `Eq`, `Hash` for `Object` using ptr values
2021-04-23 00:26:10 -07:00
TÖRÖK Attila
3f583088a2
core/avm1: Coerce Rectangle and Point parameter fields to f64 first
2021-04-21 18:46:03 -07:00
TÖRÖK Attila
22306cc8d9
core/avm1: Switch to i32 in BitmapData.merge(), clamp *_mult parameters
2021-04-21 18:46:03 -07:00
TÖRÖK Attila
40eedb6405
core/avm1: Implement BitmapData.merge()
2021-04-21 18:46:03 -07:00
dependabot-preview[bot]
63e8c0c88a
build(deps): bump syn from 1.0.69 to 1.0.70
...
Bumps [syn](https://github.com/dtolnay/syn ) from 1.0.69 to 1.0.70.
- [Release notes](https://github.com/dtolnay/syn/releases )
- [Commits](https://github.com/dtolnay/syn/compare/1.0.69...1.0.70 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-04-21 18:31:39 -07:00
Adrian Wielgosik
8176e0a633
avm2: minor changes to domain memory
...
* Do not use as_bytearray_mut when we don't need mutability
* Set default domain memory size to 1024b.
2021-04-21 15:08:13 -07:00
CUB3D
9812fab9f8
chore: Format and fix clippy lints
2021-04-21 00:33:11 -07:00
CUB3D
7c4eb0d7ff
avm2: Implement ApplicationDomain.domainMemory
2021-04-21 00:33:11 -07:00
CUB3D
b3b1e69fc2
avm2: Store ByteArrayObject in Domain rather than ByteArrayStorage
2021-04-21 00:33:11 -07:00
CUB3D
4dc1210b37
avm2: Use try_into for converting slice->array
2021-04-21 00:33:11 -07:00
CUB3D
98d9bd06b6
avm2: Remove more unused code from test
2021-04-21 00:33:11 -07:00
CUB3D
d6a3b5bfda
avm2: Remove unused code from test
2021-04-21 00:33:11 -07:00
CUB3D
397ceed33c
avm2: Dont panic when domain memory not available
2021-04-21 00:33:11 -07:00
CUB3D
136add866a
chore: Fix clippy lints
2021-04-21 00:33:11 -07:00
CUB3D
63120806bf
avm2: Correct Sxi8 and Sxi16
2021-04-21 00:33:11 -07:00
CUB3D
6d2339b151
avm2: Add tests for Op::Sxi1
2021-04-21 00:33:11 -07:00
CUB3D
f34579926c
chore: Format
2021-04-21 00:33:11 -07:00
CUB3D
99edb5ab2b
avm2: Implement Op::Sxi1
2021-04-21 00:33:11 -07:00
CUB3D
9ffa4f1f50
avm2: Implement Op::Lf64
2021-04-21 00:33:11 -07:00
CUB3D
b4736413fa
avm2: Implement Op::Sf64
2021-04-21 00:33:11 -07:00
CUB3D
2b4becf41f
avm2: Implement Op::Lf32
2021-04-21 00:33:11 -07:00
CUB3D
509392db8e
avm2: Implement Op::Sf32
2021-04-21 00:33:11 -07:00
CUB3D
dce2626482
avm2: Use from/to_le_bytes
2021-04-21 00:33:11 -07:00
CUB3D
35d7c5a7e3
chore: Format
2021-04-21 00:33:11 -07:00
CUB3D
ae9d5fd328
avm2: Implement Op::Li32
2021-04-21 00:33:11 -07:00
CUB3D
951d557a90
avm2: Implement Op::Si32
2021-04-21 00:33:11 -07:00
CUB3D
96ad0e3d00
avm2: Implement Op::Li16
2021-04-21 00:33:11 -07:00
CUB3D
aaaf6ace3e
avm2: Implement Op::Si16
2021-04-21 00:33:11 -07:00
CUB3D
f437539f73
avm2: Some domain memory is available by default and error when range invalid
2021-04-21 00:33:11 -07:00
CUB3D
5a0cdf60bc
avm2: Implement Op::Si8 and Op::Li8 badly
2021-04-21 00:33:11 -07:00
CUB3D
12a198f671
avm2: Implement Op::Coerce and add tests
2021-04-21 00:33:11 -07:00
CUB3D
c2969895b2
avm2: Add domain memory tests
2021-04-21 00:33:11 -07:00
CUB3D
89c01dca18
swf: Add support for AVM2 domain memory opcodes
2021-04-21 00:33:11 -07:00
TÖRÖK Attila
46ddc31254
avm2: Call the super initializer of LoaderInfo after construction
2021-04-19 18:16:47 -07:00
Mike Welsh
cbe685f8d5
tests: Update transform test to verify color transform rounding
2021-04-19 15:47:52 -07:00
Mike Welsh
0552d26551
core: Use Fixed8 and i16 for ColorTransform
...
Use the proper types for ColorTransform:
* Fixed8 (8.8) format for multiplicative component
* i16 format for additive component
This matches the behavior of Flash (for example, alpha only changes
in units of 1/256).
2021-04-19 15:47:52 -07:00
dependabot-preview[bot]
9c466c65da
build(deps): bump syn from 1.0.67 to 1.0.69
...
Bumps [syn](https://github.com/dtolnay/syn ) from 1.0.67 to 1.0.69.
- [Release notes](https://github.com/dtolnay/syn/releases )
- [Commits](https://github.com/dtolnay/syn/compare/1.0.67...1.0.69 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-04-18 23:54:37 -07:00
relrelb
cd8ab813a4
avm1: Return an unboxed undefined in `TransformObject` constructor
...
This is now possible thanks to #2415 .
2021-04-17 09:27:29 -07:00
relrelb
6d68460196
tests: Expand funky_function_calls
2021-04-17 09:25:24 -07:00
relrelb
95cffdc2f9
avm1: Pass undefined this for CallMethod with non-string method_name
...
This isn't the most accurate behavior, since it should be an unboxed
Value, but currently it's not possible due to #843 .
2021-04-17 09:25:24 -07:00
relrelb
6a34070e76
tests: Expand sound
...
Check Sound.duration and Sound.getDuration() for detached sounds.
Check rounding behavior of Sound.duration and Sound.getDuration()
behind a comment because NullAudioBackend doesn't respect durations.
TODO: Uncomment it once NullAudioBackend returns real durations.
2021-04-17 09:11:50 -07:00
relrelb
e3478248ac
avm1: Implement Sound.getDuration() and Sound.setDuration()
...
These seem to be undocumented.
Looks like Sound.getDuration() behaves exactly as Sound.duration,
and Sound.setDuration() does nothing.
2021-04-17 09:11:50 -07:00
relrelb
6310e31023
avm1: Sound.duration should return undefined when no sound is attached
...
Previously it returned 0.
2021-04-17 09:11:50 -07:00
relrelb
4d41297b04
avm1: Remove reduntant new_ret_no_self annotation
...
Per https://rust-lang.github.io/rust-clippy/master/#new_ret_no_self ,
`new_ret_no_self` applies only to functions named `new`.
`TObject::create_bare_object` used to be named `new`, but was renamed
in 79af3ffe44
.
2021-04-16 15:25:22 -07:00
relrelb
1f934c5fc6
avm1: Remove redundant newlines
2021-04-16 15:25:22 -07:00
relrelb
dac60da936
avm1: ValueObject::boxed -> coerce_to_object
2021-04-16 15:25:22 -07:00
relrelb
0f8f0986e9
chore: Use matches!(...) in more places
2021-04-16 15:25:22 -07:00
relrelb
9dc63a7831
core: Remove redundant tuple
2021-04-16 15:25:22 -07:00
relrelb
a2e162be0d
avm1: Add Value::is_primitive
...
This provides a more convenient and readable way compared to
using matches!(Value::Object(_)).
2021-04-16 15:25:22 -07:00
relrelb
2ba6cada5b
avm1: Reserve arguments capacity
...
This prevents unnecessary re-allocations.
2021-04-16 15:25:22 -07:00
Chris Midgley
d89f0bbbfe
fix: looks like contentType is ignored (at least in FP6)
2021-04-16 12:36:49 -07:00
Chris Midgley
ba185418b9
chore: fmt
2021-04-16 12:36:49 -07:00
Chris Midgley
6c619495f4
chore: fix warnings
2021-04-16 12:36:49 -07:00
Chris Midgley
8e6bba1525
avm1: implement send_and_load
2021-04-16 12:36:49 -07:00
Chris Midgley
f1b07bd75b
avm1: set contentType on xml; fix initial contentType on load_vars.
2021-04-16 12:36:49 -07:00
dependabot-preview[bot]
f90d58703a
build(deps): bump pretty_assertions from 0.7.1 to 0.7.2
...
Bumps [pretty_assertions](https://github.com/colin-kiegel/rust-pretty-assertions ) from 0.7.1 to 0.7.2.
- [Release notes](https://github.com/colin-kiegel/rust-pretty-assertions/releases )
- [Changelog](https://github.com/colin-kiegel/rust-pretty-assertions/blob/main/CHANGELOG.md )
- [Commits](https://github.com/colin-kiegel/rust-pretty-assertions/compare/v0.7.1...v0.7.2 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-04-15 14:30:00 -07:00