David Wendt
318b018da8
core: `enter_frame` should be an event that all display objects get and can respond to
2022-08-25 19:24:56 -06:00
David Wendt
beb0545b11
tests: Add tests for gotos interacting with frame scripts.
2022-08-25 19:24:56 -06:00
David Wendt
6569edda88
tests: Add a goto-and-stop test that inspects the children after the goto.
2022-08-25 19:24:56 -06:00
David Wendt
c3add3db93
tests: Ignore the `as3_simplebutton_constr_childevents` test as it is broken by fixes I moved to another PR
2022-08-25 19:24:56 -06:00
David Wendt
38f28ce80c
tests: Add a second, more thorough `clickgoto2` test
2022-08-25 19:24:56 -06:00
David Wendt
f16b76866a
tests: Add timeline and stage manipulation tests at user event time.
2022-08-25 19:24:56 -06:00
David Wendt
81eb5ed8ac
tests: Add tests for symbol instantiation in `enterFrame`, `exitFrame`, and `frameConstructed`
2022-08-25 19:24:56 -06:00
David Wendt
27d509f169
tests: Extend the goto tests with more non-looping jumps
2022-08-25 19:24:56 -06:00
David Wendt
4d3788bfe1
tests: Add tests for AS3 gotos during `enterFrame`, `frameConstructed`, and/or `exitFrame`
2022-08-25 19:24:56 -06:00
David Wendt
c10417ddb8
tests: `as3_movieclip_displayevents_timeline` should log events on the root movie clip too
2022-08-25 19:24:56 -06:00
David Wendt
f1d203311f
tests: `as3_movieclip_displayevents_looping` should have a `RemoveObject` in it
2022-08-25 19:24:56 -06:00
David Wendt
ee1f39bba7
tests: `as3_movieclip_displayevents_xyzframeplay` tests should also list what children are on the timeline
2022-08-25 19:24:56 -06:00
David Wendt
b3793f9b4c
tests: Oops, forgot to recompile the exitframe play test.
2022-08-25 19:24:56 -06:00
David Wendt
10955c3a03
tests: Add tests for playing and pausing a movie clip in `enterFrame`, `frameConstructed`, and `exitFrame`
2022-08-25 19:24:56 -06:00
David Wendt
795dafa46a
tests: Fix the test output for `as3_movieclip_displayevents_dblhandler`.
...
The test output for this test is sensitive to where we cut off each frame, because it doesn't stop all of it's handlers at the end of the test. Flash Player will just print lines forever so the end of the test is entirely arbitrary.
2022-08-25 19:24:56 -06:00
David Wendt
1a4b977325
tests: `as3_movieclip_displayevents_timeline` now explicitly winds a clip back and forth to better demonstrate a bug I ran into with frame numbering
2022-08-25 19:24:56 -06:00
David Wendt
0c18e8e99a
tests: Log `this.currentFrame` on every event watcher we can.
2022-08-25 19:24:56 -06:00
David Wendt
72f878bb9d
tests: Add a test for the order of events surrounding `gotoAndStop`
2022-08-25 19:24:56 -06:00
relrelb
d152cc3e64
avm2: Port `Math` to ActionScript
2022-08-25 16:03:08 -07:00
relrelb
4e9cc919a1
avm2: Fix bindings of empty namespace
...
Previously native functions defined inside a `package {}` block
(without a package name) would cause a syntax error by two consecutive
`::`.
2022-08-25 16:03:08 -07:00
Aaron Hill
91247f5779
tests: Only require `ruffle_render_wgpu` dependency with 'imgtests'
...
This should speed up developer workflows when working on non-image
related changes. CI will still run all image tests.
2022-08-25 15:11:18 -07:00
=
211a64b402
webgl: Replace Box<dyn Error> with actual Error enum
2022-08-25 23:43:21 +02:00
=
620820be9e
core: Replaced tag_utils Error with an actual Error enum
2022-08-25 23:43:21 +02:00
=
67eb34fbc5
core: Remove Error from player.rs, it wasn't needed
2022-08-25 23:43:21 +02:00
=
b7dcd26c38
core: Use Cow<str> for FullscreenError in UI backend, as it can't ever be anything else
2022-08-25 23:43:21 +02:00
=
1c7bfd8c5f
core: Use real Error enums for video backend
2022-08-25 23:43:21 +02:00
=
17f261fc1f
wgpu: Descriptors::new is infallible, removed error path
2022-08-25 23:43:21 +02:00
=
b29b30de58
wgpu: Pipelines::new is infallible, removed error path
2022-08-25 23:43:21 +02:00
=
201ed60d67
canvas: Removed generic error, was never actually used - just an Option worked better
2022-08-25 23:43:21 +02:00
=
461c977be0
render: unregister_bitmap is infallible, removed error path
2022-08-25 23:43:21 +02:00
=
03eb769a33
render: Made render use a real Error enum and not generic box<error>
2022-08-25 23:43:21 +02:00
=
726217c6c2
desktop: Use anyhow to replace generic errors with more meaningful ones
2022-08-25 23:43:21 +02:00
=
30e7d23cc0
desktop: Use anyhow errors for desktop audio errors
2022-08-25 23:43:21 +02:00
=
0084991e58
web: Replaced generic error in audio with JsError, as it's the only one thrown
2022-08-25 23:43:21 +02:00
=
5b5ee7d448
core: Made audio backend use actual real error enums, and not box<error>
2022-08-25 23:43:21 +02:00
=
2d2869f44f
core: Font::from_swf_tag is currently infallible, remove error path
2022-08-25 23:43:21 +02:00
=
1df8de5bac
core: set_text and set_html_text are currently infallible, remove error path
2022-08-25 23:43:21 +02:00
Mike Welsh
bea757cc92
tests: Adjust function_base_clip_removed test
...
Add test for #5645 .
2022-08-25 00:01:02 -07:00
Mike Welsh
78247a37ab
avm1: Load correct _root and _parent registers if base clip is removed
...
Normally a function closures also closes around its base clip.
If the base clip is removed, and then the function is executed, the
base clip then defaults to `this`.
However, Ruffle was incorrectly using the wrong base clip when
loading the `_root` and `_parent` registers in this case.
Fixes #5645 .
2022-08-25 00:01:02 -07:00
Roman Rogowski
66d144bbdd
core: Fix incorrect rendering of word-wrap text boxes ( close #1095 )
2022-08-24 22:51:51 -07:00
Aaron Hill
b5391c00f6
tests: Re-add per-platform image tests
...
Reverts #7267
The image tests for the upcoming 'DisplayObject.stageRect' support
differ between Linux and Windows, so we need this support again.
To avoid the Linux filename churn that we previously encountered,
we now only include the platform and graphics backend in the filename
(e.g. `expected-linux-Vulkan`). This may result in some unexpected
'mismatched image' test failures if GHA updates to a version of Lavapipe
that changes rendering output, but this should be relatively easy to
notice.
2022-08-24 21:29:53 -07:00
relrelb
a8edce8294
core: Remove unneeded `Box`
2022-08-24 22:36:20 +03:00
Aaron Hill
c7216bf842
avm2: Set URLRequest.method default to GET
...
This was missed when I added 'method'
2022-08-23 17:54:10 -05:00
onkrot
14abd01e91
avm2: Pull flash.crypto package method from globals to crypto.as
2022-08-23 09:58:19 -05:00
onkrot
db22992b86
avm2: Pull flash.utils package methods from globals to utils.as
2022-08-23 09:58:19 -05:00
onkrot
1a243bdd86
avm2: Implement all remaining matrix methods
2022-08-23 10:44:12 +02:00
Aaron Hill
86e6983943
avm2: Partially implement Loader.load
...
This PR implements the `Loader.load` method, as well as
the associated `LoaderInfo` properties and events.
We can now load in an external AVM2 SWf: it will be added
as a child of `Loader` object, and will render properly
to the screen.
Limitations:
* The only supported `URLRequest` property is `url`
* `LoaderContext` is not supported at all - we always use the default
behavior
* Only `Loader.load` is implemented - we do not yet support unloading.
* We fire a plain 'Event' for the 'progress' event, instead of using
the (not yet implemented) 'ProgressEvent' class
The main changes in this PR are:
* The AVM2 `Loader` class now has an associated display object,
`LoaderDisplay`. This is basically a stub, and just renders
its single child (if it exists).
* `LoaderStream::Stage` is renamed to `LoaderStream::NotYetLoaded`.
This is used for both the `Stage` and an 'uninitialized'
`Loader.contentLoaderInfo`. In both cases, certain properties throw
errors, while others return actual values.
* The rust `Loader` manager now handles both AVM1 and AVM2 movie loads.
2022-08-22 19:36:29 -07:00
dependabot[bot]
60b03bdcf2
build(deps): bump thiserror from 1.0.31 to 1.0.32
...
Bumps [thiserror](https://github.com/dtolnay/thiserror ) from 1.0.31 to 1.0.32.
- [Release notes](https://github.com/dtolnay/thiserror/releases )
- [Commits](https://github.com/dtolnay/thiserror/compare/1.0.31...1.0.32 )
---
updated-dependencies:
- dependency-name: thiserror
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-08-22 18:00:39 -07:00
dependabot[bot]
349a9bf31e
build(deps): bump chrono from 0.4.19 to 0.4.20
...
Bumps [chrono](https://github.com/chronotope/chrono ) from 0.4.19 to 0.4.20.
- [Release notes](https://github.com/chronotope/chrono/releases )
- [Changelog](https://github.com/chronotope/chrono/blob/main/CHANGELOG.md )
- [Commits](https://github.com/chronotope/chrono/compare/v0.4.19...v0.4.20 )
---
updated-dependencies:
- dependency-name: chrono
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-08-22 17:27:36 -07:00
dependabot[bot]
25a77869ab
build(deps): bump serde from 1.0.143 to 1.0.144
...
Bumps [serde](https://github.com/serde-rs/serde ) from 1.0.143 to 1.0.144.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.143...v1.0.144 )
---
updated-dependencies:
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-08-22 16:51:56 -07:00