Nathan Adams
43d9c3deed
avm2: Make sure SoundChannel.soundTransform always returns a value
2023-02-07 18:26:27 +01:00
Nathan Adams
bc7773596b
avm2: addFrameScript allows null to unset the script, and only allows one script per frame
2023-02-07 18:26:27 +01:00
CUB3D
48f4df51a5
avm1: Correct depth calculation for AVM1 clips pending removal and add tests
2023-02-06 10:53:45 -07:00
CUB3D
6b6e07c7cb
test: Update unload fla
2023-02-06 10:53:45 -07:00
CUB3D
2d11a250da
avm1: Retrieving the child of a container should prioritise lowest depth
2023-02-06 10:53:45 -07:00
CUB3D
a356be15fe
avm1: Only delay removals on AVM1, check for dynamic unload handlers
2023-02-06 10:53:45 -07:00
CUB3D
755425ebfa
avm1: Delay clip removals when a child has an unload listener
...
When removing a clip, first check if it has an unload event listener somewhere
it's hierarchy.
If it does, enqueue the removal to happen on the next frame, by moving it to a negative depth.
2023-02-06 10:53:45 -07:00
Nathan Adams
a220703618
core: Made PlayerBuilder take quality instead of setting it after the Player was made
2023-02-06 16:08:04 +01:00
Nathan Adams
1cb3ea7bf9
wgpu: Store quality, not sample_count, and calculate the correct sample count per format
2023-02-06 16:08:04 +01:00
Nathan Adams
00c7e8f634
avm2: Fixed bytearray compress/decompress methods setting position of resulting bytearray
2023-02-05 19:22:01 +01:00
Nathan Adams
e73389aa71
wgpu: Implement blur filter
2023-02-05 18:41:43 +01:00
Nathan Adams
284a58c817
avm2: Implement BitmapData.apply_filter for ColorMatrixFilter
2023-02-05 18:41:43 +01:00
Nathan Adams
5e2f1a66eb
tests: Enable tests that no longer need to be ignored
2023-02-04 15:26:45 -06:00
Nathan Adams
06361ce01d
tests: Add overlay_onto_stage test to ensure blend buffers are cleared before use
2023-01-29 20:45:01 +01:00
Moulins
e36b03bce9
core::html: correctly encode text in FormatSpans::to_html
...
Fixes issue #9327
2023-01-29 11:19:16 -06:00
CUB3D
f829157deb
avm1: Defining a local that already exists on the target of a with scope, defines it on the target not the parent
2023-01-29 18:05:25 +01:00
Nathan Adams
7b1c101c81
wgpu: Fix repeat & reflect gradients
2023-01-29 17:17:44 +01:00
Nathan Adams
85dc100ee9
avm2: Implement Sprite.dropTarget - though it's wrong right now
2023-01-29 00:52:52 +01:00
Nathan Adams
d918d47f66
tests: Temporarily remove EditText from text_blocks_clicks as it's broken in ruffle atm
2023-01-29 00:39:06 +01:00
Nathan Adams
8108e64bfa
tests: Add avm1 text_blocks_clicks test
2023-01-29 00:39:06 +01:00
Aaron Hill
184734267d
tests: Deny unknown fields when deserializing test.toml files
...
This will catch typos and misplaced options when modifying tests.
2023-01-28 16:27:43 -06:00
Nathan Adams
b14831417a
tests: Added avm2 click_test test from #9287 , ignored as it fails
2023-01-28 13:13:37 -07:00
Nathan Adams
666a55e503
tests: Added avm1 click_test test from #9287 , ignored as it fails
2023-01-28 13:13:37 -07:00
Aaron Hill
daeb132e53
tests: Handle trailing newlines more consistently
...
Previously, we would strip trailing newlines from the contents
of 'output.txt' files, and skip adding a trailing newline after
the final recorded `trace` call.
To reduce the amount of processing we do of expected/ruffle output,
and to make fpcompare tests easier, I've removed the special handling
of newlines. When recording `trace` calls, we now build up a single
large `String`, with a newline after every `trace` message. When
reading in an 'output.txt' file, we do not strip any newlines.
This required adding trailings newlines to lots of 'output.txt' files,
to match the behavior of Ruffle and Flash (the last 'trace' message
ends with a newline, just like every other 'trace' message).
2023-01-28 13:59:00 -06:00
Nathan Adams
48c9cdd5ad
tests: Ported visual tests from ruffle-rs/visual-tests repo
2023-01-28 12:15:59 -07:00
Nathan Adams
a6c6ae13fe
tests: Adjust tolerance of existing image tests
2023-01-28 12:15:59 -07:00
Nathan Adams
051927775c
tests: Clippy lint
2023-01-28 12:15:59 -07:00
Nathan Adams
9c4190b20b
tests: Readd suffix to actual/difference files
2023-01-28 12:15:59 -07:00
Nathan Adams
67ec70d960
tests: Set default log filter to warn for wgpu
2023-01-28 12:15:59 -07:00
Nathan Adams
cdb2c5fe04
tests: Allow image tolerance & max_outliers on image comparison tests. Changed all existing image tests to use 1 sample count since this changes them all anyway
2023-01-28 12:15:59 -07:00
Nathan Adams
d70d9067ec
tests: Fix clippy lints
2023-01-28 12:15:59 -07:00
Nathan Adams
4ef88eaaa0
tests: Fix imgchecks feature compiling
2023-01-28 12:15:59 -07:00
Nathan Adams
c73aa5b9d5
tests: Add sample_count to render options
2023-01-28 12:15:59 -07:00
Nathan Adams
cbe17c4455
tests: Filter early to avoid creating test info (and thus wgpu) for tests that won't run
2023-01-28 12:15:59 -07:00
Nathan Adams
9b43836d1d
tests: Allow executing of with_renderer tests always, but image comparison is still gated
2023-01-28 12:15:59 -07:00
Nathan Adams
836468b6dd
tests: Add player_options.with_renderer option, automatically set when image = true
2023-01-28 12:15:59 -07:00
Nathan Adams
6acf6009ef
tests: Made PlayerOptions non optional (just empty default), and it works with a PlayerBuilder instead of a Player
2023-01-28 12:15:59 -07:00
Nathan Adams
e614f788af
tests: Refactor code so all testing goes through Test::test(), allows for approximations with custom hooks
2023-01-28 12:15:59 -07:00
Nathan Adams
8b02045c6b
tests: Readd custom assert_eq
2023-01-28 12:15:59 -07:00
Nathan Adams
a340318486
tests: Refactor runner methods to take in &Test and not direct values
2023-01-28 12:15:59 -07:00
Nathan Adams
56bc2b5051
tests: Added Test::should_run()
2023-01-28 12:15:59 -07:00
Nathan Adams
dda8debadc
tests: Move shared object tests to their own file
2023-01-28 12:15:59 -07:00
Nathan Adams
792d68d370
tests: Move TestLogBackend to runner
2023-01-28 12:15:59 -07:00
Nathan Adams
99da686822
tests: Move external interface tests to their own file
2023-01-28 12:15:59 -07:00
Nathan Adams
ccc7c0a424
tests: Move ExternalInterfaceTestProvider to its own mod
2023-01-28 12:15:59 -07:00
Nathan Adams
c5ab440083
tests: Move run_test(test) to Test::run()
2023-01-28 12:15:59 -07:00
Nathan Adams
6384034e47
tests: Move test_swf_with_hooks to util/runner
2023-01-28 12:15:59 -07:00
Nathan Adams
ce8cb9501b
tests: Move test_swf_approx to util/runner
2023-01-28 12:15:59 -07:00
Nathan Adams
818897b74e
tests: Move run_swf to util/runner
2023-01-28 12:15:59 -07:00
Nathan Adams
4418431bfe
tests: Move assert_eq to utils
2023-01-28 12:15:59 -07:00
Nathan Adams
a741f373b4
tests: Take in a &Path for various paths
2023-01-28 12:15:59 -07:00
Nathan Adams
83af3e6b4e
tests: Extract Test struct that contains all the info for a test
2023-01-28 12:15:59 -07:00
Nathan Adams
ff8506d351
tests: Extract TestOptions::read() for parsing a file
2023-01-28 12:15:59 -07:00
Nathan Adams
316df5b415
tests: Extract TestOptions into its own file
2023-01-28 12:15:59 -07:00
Nathan Adams
7d234956eb
tests: Move tests away from giant macro to individual test.toml files that describe the test
2023-01-27 13:53:43 +01:00
Aaron Hill
6fe7af58d5
Move back to upstream wgpu repository
...
We're relying on unreleased changes, so we depend on the latest commit
from their repository.
2023-01-23 11:31:04 +01:00
EmperorBale
954a7513f8
tests: Update date tests
2023-01-16 21:48:00 +01:00
Nathan Adams
8db8e4669a
wgpu: Implement Multiply blend mode as a trivial blend
2023-01-12 10:54:03 -05:00
Nathan Adams
09608c2abc
wgpu: Implement Screen blend mode as a trivial blend
2023-01-12 10:54:03 -05:00
dependabot[bot]
b7986406a8
build(deps): bump regex from 1.7.0 to 1.7.1
...
Bumps [regex](https://github.com/rust-lang/regex ) from 1.7.0 to 1.7.1.
- [Release notes](https://github.com/rust-lang/regex/releases )
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/regex/compare/1.7.0...1.7.1 )
---
updated-dependencies:
- dependency-name: regex
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-01-12 14:27:19 +02:00
MrCheeze
d1b01c9db7
tests: Update AVM2 currentLabels test for case insensitivity
2023-01-10 11:28:56 -05:00
CUB3D
ea6ea8074a
tests: Add tests for BitmapData.threshold, fix issues found as a result
2023-01-10 13:59:06 +01:00
MrCheeze
c2ad376e2c
tests: Add test for AVM2 hitTestPoint (without shapeFlag) and hitTestObject.
...
This is a port of a similar regression test written for AVM1.
AVM1 also has a test for hitTestPoint with shapeFlag=true, but it can't
be ported for now, because the implementation of AVM2 hit testing is not
yet accurate enough for it.
2023-01-10 12:53:20 +01:00
Nathan Adams
7a9e8b4771
core: Made NullNavigatorBackend no longer use unwraps
2023-01-10 11:10:46 +01:00
CUB3D
84d0111a14
avm1: Add test for with scope nesting
2023-01-10 10:34:10 +01:00
CUB3D
ca82ff65de
avm1: Defining a local in a with scope should actually define it on the parent scope
2023-01-10 10:34:10 +01:00
Aaron Hill
40d8751d67
avm2: Implement clipRect parameter for BitmapData.draw
2023-01-08 16:11:55 -05:00
Aaron Hill
1b71e288fd
Remove 'gc_context lifetime
...
The latest `gc-arena` makes this unnecessary - we can just
use our `'a` lifetime for `MutationContext`
2023-01-06 19:20:39 -05:00
MrCheeze
41df7fdc59
avm2: For old swf versions, invalid goto labels jump to frame 1 ( fix #8954 )
...
The regression test for this was edited directly in JPEXS, so there is
no corresponding fla to compile into the swf.
2023-01-03 17:10:06 -07:00
MrCheeze
77104ca473
avm2: Improve accuracy of gotoAndPlay / gotoAndStop (partially fix #8954 )
...
Partially based on AVM1 implementation, partially based on the new
regression tests added in this commit.
2023-01-03 17:10:06 -07:00
nosamu
664a86161a
avm2: Fix `for each..in` loops over Dictionary values
2023-01-03 16:52:15 -07:00
Nathan Adams
c6045a4f24
wgpu: Multiply can't be trivial blend mode because of 0 alpha
2023-01-03 03:39:13 +01:00
Nathan Adams
df8ead3f96
tests: New multiply blend mode image
2023-01-03 03:39:13 +01:00
Nathan Adams
81f4741300
wgpu: Default msaa on mobiles to 2x, same as webgl backend
2023-01-03 03:39:13 +01:00
Nathan Adams
864f404f2f
tests: Add blendmode visual tests
2023-01-03 03:39:13 +01:00
Nathan Adams
45339e037e
tests: Added new output of bitmapdata_draw tests for github agents. Seems visually identical.
2023-01-03 03:39:13 +01:00
EmperorBale
0e2fbe4cf7
tests: Update date tests
2023-01-02 11:43:03 -08:00
EmperorBale
8b9bae8ca6
tests: Add test for LoaderContext.applicationDomain
2022-12-28 17:25:11 -05:00
dependabot[bot]
6f430bb40d
build(deps): bump serde from 1.0.151 to 1.0.152
...
Bumps [serde](https://github.com/serde-rs/serde ) from 1.0.151 to 1.0.152.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.151...v1.0.152 )
---
updated-dependencies:
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-12-28 10:55:35 +02:00
David Wendt
54bae0265b
tests: `instantiation_on_enterframe_gotoandstop` is missing a line of output
2022-12-27 20:15:49 -07:00
David Wendt
534f1cf06c
tests: Adrian's tests look like they want 2 frames of execution
2022-12-27 20:15:49 -07:00
Adrian Wielgosik
825613ec8c
tests: Add tests for various PlaceObject situations we didn't catch before.
...
There is no source as these SWFs were handmade in JPEXS.
2022-12-27 20:15:49 -07:00
dependabot[bot]
c7ba2d4e87
build(deps): bump serde_json from 1.0.89 to 1.0.91
...
Bumps [serde_json](https://github.com/serde-rs/json ) from 1.0.89 to 1.0.91.
- [Release notes](https://github.com/serde-rs/json/releases )
- [Commits](https://github.com/serde-rs/json/compare/v1.0.89...v1.0.91 )
---
updated-dependencies:
- dependency-name: serde_json
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-12-20 08:35:32 +02:00
dependabot[bot]
9db6ace65f
build(deps): bump serde from 1.0.150 to 1.0.151
...
Bumps [serde](https://github.com/serde-rs/serde ) from 1.0.150 to 1.0.151.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.150...v1.0.151 )
---
updated-dependencies:
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-12-20 00:48:45 +01:00
CUB3D
acfb149316
tests: Add tests for button hittests, update hitTestPoint with onStage tests
2022-12-18 13:32:24 -07:00
Mike Welsh
696c9062d3
chore: Inherit cargo metadata from workspace
...
Use workspace inheritance added in Rust 1.64 to de-duplicate
various settings across all packages.
2022-12-16 15:53:59 -08:00
Adrian Wielgosik
7df920b255
avm2: Support indexing with QNames
2022-12-16 14:40:22 -08:00
Adrian Wielgosik
d2dfdb9a0b
avm2: Collapse PackageNamespace to Namespace
2022-12-16 12:51:01 -08:00
relrelb
bd9078addf
chore: Fix `clippy::uninlined_format_args` lints
2022-12-15 08:59:38 +02:00
dependabot[bot]
b1c4e6f143
build(deps): bump serde from 1.0.149 to 1.0.150
...
Bumps [serde](https://github.com/serde-rs/serde ) from 1.0.149 to 1.0.150.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.149...v1.0.150 )
---
updated-dependencies:
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-12-12 21:21:45 +01:00
Adrian Wielgosik
7b64fcf5fa
avm2: Fix indirect event dispatching
2022-12-06 00:44:17 +01:00
dependabot[bot]
3b285f8cf2
build(deps): bump serde from 1.0.148 to 1.0.149
...
Bumps [serde](https://github.com/serde-rs/serde ) from 1.0.148 to 1.0.149.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.148...v1.0.149 )
---
updated-dependencies:
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-12-05 22:35:48 +01:00
kmeisthax
f79208c75f
avm2: Fix no-op gotos ( #8667 )
...
* tests: Add a test for issue #8630
* core: No-op gotos in AS3 do not actually do anything, even though they emit events
Fixes issue #8630
* tests: Add more tests for various #8630-adjacent cases
* tests: Ignore the tests with script removal as they expect MovieClip children to be nulled upon removal
* chore: Case sensitive filesystem fix
Co-authored-by: Adrian Wielgosik <adrian.wielgosik@gmail.com>
2022-12-05 18:19:29 +01:00
wsxarcher
c8e39da1e0
avm2: Implement filefilter filereference
2022-12-04 15:10:48 +01:00
Adrian Wielgosik
0861153626
swf: make Clippy happy
2022-12-03 22:18:22 +01:00
Marco Bartoli
f2080e6d57
avm2: implement get and set of displayobject filters ( #8623 )
2022-12-01 02:31:35 +01:00
dependabot[bot]
83487ae5d1
build(deps): bump serde from 1.0.147 to 1.0.148
...
Bumps [serde](https://github.com/serde-rs/serde ) from 1.0.147 to 1.0.148.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.147...v1.0.148 )
---
updated-dependencies:
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-11-30 10:04:26 +01:00
Marco Grassi
ad81b3bf14
upgrade lock and toml dependencies
2022-11-26 14:04:59 -05:00
Aaron Hill
b8745f0ff1
avm2: Partially implement Stage3D for wgpu backend
...
This PR implements core 'stage3D' APIs. We are now able
to render at least two demos from the Context3D docs - a simple
triangle render, and a rotating cube.
Implemented in this PR:
* Stage3D access and Context3D creation
* IndexBuffer3D and VertexBuffer3D creation, uploading, and usage
* Program3D uploading and usage (via `naga-agal`)
* Context3D: configureBackBuffer, clear, drawTriangles, and present
Not yet implemented:
* Any 'dispose()' methods
* Depth and stencil buffers
* Context3D texture apis
* Scissor rectangle
General implementation strategy:
A new `Object` variant is added for each of the Stage3D objects
(VertexBuffer3D, Program3D, etc). This stores a handle to the
parent `Context3D`, and (depending on the object) a handle
to the underlying native resource, via `Rc<dyn
SomeRenderBackendTrait>`).
Calling methods on Context3D does not usually result in an immediate
call to a `wgpu` method. Instead, we queue up commands in our
`Context3D` instance, and execute them all on a call to `present`.
This avoids some nasty wgpu lifetime issues, and is very similar
to the approah we use for normal rendering.
The actual rendering happens on a `Texture`, with dimensions
determined by `createBackBuffer`. During 'Stage' rendering,
we render all of these Stage3D textures *behind* the normal
stage (but in front of the overall stage background color).
2022-11-25 21:43:00 -07:00
Aaron Hill
4b8cd45f4b
avm2: Partially implement StaticText ( #8343 )
...
This is linked to the legacy DisplayObject::Text, which can
only be created by Flash CS6 (but is allowed in AVM2 swfs).
The 'StaticText' class cannot be constructed from ActionScript.
To support this, I've added support for native initializers to
playerglobal. This allows us to throw an exception in the
ActionScript constructor in Test.as, and do nothing in the native
intiializer (so that we can construct it from a DisplayObject).
I've left StaticText.text unimplemented for now, since it will require
dealing with Glyphs
Co-authored-by: kmeisthax <dcrkid@yahoo.com>
2022-11-23 18:30:47 -05:00