=
0cfbdc0385
core: Made SwfSlice::to_start_and_end return an empty slice in case of errors
2022-08-21 20:12:10 -07:00
Adrian Wielgosik
b18329c8fe
web: Allow modifying player volume via JS
2022-08-20 11:53:42 -07:00
Mike Welsh
b38fce230d
audio: Add AudioBackend::volume/set_volume
2022-08-20 11:53:42 -07:00
David Wendt
f66e54bd03
core: Log a `debug` message every time we run a goto.
2022-08-19 18:52:21 -07:00
David Wendt
fe828d7c24
core: At the end of a goto, fix tag stream desyncs caused by not hitting the target frame.
...
If we try to go to a frame that doesn't exist, or hasn't been loaded yet, we will stop on the last available frame, but skip any tags that would have run there. This is technically a desync, but it hasn't caused any problems so far as any further timeline interaction would trigger a rewind (which isn't affected by desyncs).
Of course, now that we're actually testing the tag stream position it *does* cause problems. We actually have to fix up the position to be correct even though it will never be used (hopefully). It may be prudent to do this outside of the `timeline_debug` feature as well in the future.
2022-08-19 18:52:21 -07:00
David Wendt
30b1d4af2a
tests: Run all tests in timeline debug mode.
2022-08-19 18:52:21 -07:00
David Wendt
32542fdbc8
core: When `timeline_debug` is enabled, assert every goto's tag stream positions against the list of stream boundaries.
2022-08-19 18:52:21 -07:00
David Wendt
72e40423fa
core: Calculate the start and end position of every frame when the `timeline_debug` feature is enabled.
2022-08-19 18:52:21 -07:00
Daniel Jacobs
c2354c1a30
demo: Make open-modal kebab-case
2022-08-19 16:20:06 -07:00
Daniel Jacobs
d8ed2f0d01
demo: Address feedback for metadata color scheme and icon placement
2022-08-19 16:20:06 -07:00
Daniel Jacobs
a2968e6ecb
demo: Use switch statement instead of branches
2022-08-19 16:20:06 -07:00
Daniel Jacobs
7343acf65b
demo: Replace division & Math.round with bitshift (acts like Math.floor)
2022-08-19 16:20:06 -07:00
Daniel Jacobs
86f0813a79
demo: Use Object.entries for simpler code
2022-08-19 16:20:06 -07:00
Daniel Jacobs
9bd1a8c940
demo: Ensure metadata does not overflow 320 x 320 screen
2022-08-19 16:20:06 -07:00
Daniel Jacobs
92a4d7c831
demo: Add uncompressedLength to metadata on demo page
2022-08-19 16:20:06 -07:00
Daniel Jacobs
42cf08d578
demo: Show metadata on information icon click
2022-08-19 16:20:06 -07:00
Daniel Jacobs
75becaf3ba
demo: Add metadata to status bar on the page
2022-08-19 16:20:06 -07:00
Mike Welsh
89cb1212ad
render: Disable most blend modes
...
Avoid blend modes except ADD and SUBTRACT until they can be
implemented properly.
2022-08-19 14:59:08 -07:00
Aaron Hill
8a1e297e26
wgpu: Convert from premultiplied to straight alpha when capturing image
...
The captured WGPU texture uses premultiplied alpha.
This image gets saved as a PNG, so it should use straight alpha.
Note that all of our current image tests have 'alpha = 1.0' for all
of the pixels, so this currently has no effect.
2022-08-19 13:35:07 -07:00
Mike Welsh
f72e02f4b2
core: Add unmultiply_alpha_rgba
2022-08-19 13:35:07 -07:00
relrelb
c7941e7248
avm1: Remove `ScriptObject::bare_object`
...
Use `ScriptObject::new` instead.
2022-08-19 12:22:48 -07:00
relrelb
5cbfcde784
avm1: Remove `ScriptObject::object_cell`
...
Use `ScriptObject::new` instead.
2022-08-19 12:22:48 -07:00
relrelb
04b4a6cabe
avm1: Rename `ScriptObject::object` to `ScriptObject::new`
2022-08-19 12:22:48 -07:00
Aaron Hill
f3feaaf2be
avm1: Set init object properties in reverse order
...
Fixes #7667
This behavior is by setter functions, and some SWFS
depend on it.
2022-08-19 11:49:40 -07:00
Aaron Hill
0cd6d13783
avm2: Stub ContextMenu.builtInItems ( #7652 )
2022-08-18 20:50:42 -04:00
Mike Welsh
7a53322cbb
avm1: Wire up Button.blendMode
2022-08-18 16:38:17 -07:00
Mike Welsh
1e389112a1
avm1: Wire up MovieClip.blendMode
2022-08-18 16:38:17 -07:00
Mike Welsh
b450b99e3e
avm2: Wire up DisplayObject.blendMode
2022-08-18 16:38:17 -07:00
Mike Welsh
bca9b596b9
swf: Implement Display and FromStr for BlendMode
2022-08-18 16:38:17 -07:00
Mike Welsh
2e83bb570d
core: Warn when setting a blend mode
2022-08-18 16:38:17 -07:00
Mike Welsh
04c440e860
webgl: Stub out more blend modes
2022-08-18 16:38:17 -07:00
Mike Welsh
a6b70e60ea
wgpu: Stub out more blend modes
2022-08-18 16:38:17 -07:00
Mike Welsh
0861bc86eb
canvas: Stub out more blend modes
2022-08-18 16:38:17 -07:00
Mike Welsh
7aee05cf75
core: Apply blend mode from PlaceObject tags
...
* Set blend mode in `DisplayObject::apply_place_object`.
* Change `DisplayObject::set_blend_mode` to take `&self`.
2022-08-18 16:38:17 -07:00
Aaron Hill
f7205a02a9
render: Add BlendMode infrastructure and implement BlendMode.ADD
...
Each render backend keeps track of a stack of BlenModes,
which are pushed and popped by 'core' as we render objects
in the displaay tree. For now, I've just implemented BlendMode.ADD,
which maps directly onto blend mode supported by each backend.
All other blend modes (besides 'NORMAL') will produce a warning
when we try to render using them. This may produce a very large amount
of log output, but it's simpler than emitting each warning only once,
and will help to point developers in the right direction when they
get otherwise inexplicable rendering issues (due to a blend mode
not being implemented).
The wgpu implementation is by far the most complicated, as we need
to construct a `RenderPipeline` for each possible
`(BlendMode, MaskState)`. I haven't been able to find any documentation
about the maximum supported number of (simultaneous) WebGPU render
pipelines - if this becomes an issue, we may need to register them
on-demand when a particular blend mode is requested.
2022-08-18 16:38:17 -07:00
Aaron Hill
1e18fc2227
avm2: Convert filters to ActionScript
...
We still don't implement the actual filter logic for `DisplayObject`,
but the classes themselves are fully implemented.
2022-08-17 12:55:03 -07:00
TÖRÖK Attila
b9d2ef4ab5
ci: Explicitly use ubuntu-22.04 image for all CI workflows
...
Because GitHub is really slow in moving the ubuntu-latest alias over
to 22.04, and it's starting to cause issues with the desktop build.
2022-08-17 11:10:10 -07:00
relrelb
a3476e7400
swf: Remove `#[allow(clippy::derive_partial_eq_without_eq)`
...
https://github.com/rust-lang/rust-clippy/issues/8867 is fixed, and
a false positive is no longer reported.
2022-08-16 16:24:21 -07:00
Moulins
03d54262c6
wstr: statically check the size of WString
...
This adds the 'static_assertions' crate as a dependency of
'ruffle_wstr', but this dependency was already present in the dep tree.
2022-08-16 13:47:00 -07:00
Moulins
8806e9921a
wstr: Fix provenance in WString::from_buf_unchecked
...
Get a pointer with provenance over the whole buffer, instead of a
pointer with provenance only to the initialized part.
2022-08-16 13:47:00 -07:00
Moulins
a678a39e85
wstr: implement ToOwned::clone_into for WStr
2022-08-16 13:47:00 -07:00
Moulins
2e255a5bba
wstr: Shrink WString to 16 bytes on 64-bits targets
2022-08-16 13:47:00 -07:00
Moulins
2d60e62b8b
wstr: introduce explicit WStrMetadata type
2022-08-16 13:47:00 -07:00
Mike Welsh
e0c72f4c9a
swf: Bump version to 0.2
2022-08-16 12:59:20 -07:00
dowgird
038264a7a9
avm2: Implement stageFocusRect stub
2022-08-16 13:59:12 -05:00
relrelb
4d8e4111e3
core: Remove `AvmType`
...
Simply use `is_action_script_3()` instead.
2022-08-16 13:04:02 +03:00
dependabot[bot]
4c2d825ea2
build(deps): bump gc-arena from `4882182` to `4743f2d`
...
Bumps [gc-arena](https://github.com/ruffle-rs/gc-arena ) from `4882182` to `4743f2d`.
- [Release notes](https://github.com/ruffle-rs/gc-arena/releases )
- [Commits](4882182850...4743f2d029
)
---
updated-dependencies:
- dependency-name: gc-arena
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-08-16 08:57:38 +03:00
dependabot[bot]
82716d9be3
build(deps): bump bytemuck from 1.11.0 to 1.12.0
...
Bumps [bytemuck](https://github.com/Lokathor/bytemuck ) from 1.11.0 to 1.12.0.
- [Release notes](https://github.com/Lokathor/bytemuck/releases )
- [Changelog](https://github.com/Lokathor/bytemuck/blob/main/changelog.md )
- [Commits](https://github.com/Lokathor/bytemuck/compare/v1.11.0...v1.12.0 )
---
updated-dependencies:
- dependency-name: bytemuck
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-08-16 01:39:03 +03:00
dependabot[bot]
5bbea52b64
build(deps): bump anyhow from 1.0.60 to 1.0.61
...
Bumps [anyhow](https://github.com/dtolnay/anyhow ) from 1.0.60 to 1.0.61.
- [Release notes](https://github.com/dtolnay/anyhow/releases )
- [Commits](https://github.com/dtolnay/anyhow/compare/1.0.60...1.0.61 )
---
updated-dependencies:
- dependency-name: anyhow
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-08-16 01:07:58 +03:00
dependabot[bot]
7ffe92a36a
build(deps): bump clap from 3.2.16 to 3.2.17
...
Bumps [clap](https://github.com/clap-rs/clap ) from 3.2.16 to 3.2.17.
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/v3.2.17/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/v3.2.16...v3.2.17 )
---
updated-dependencies:
- dependency-name: clap
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-08-16 00:30:12 +03:00