Nathan Adams
2b48f579e6
avm1: Implement MovieClip.filters
2023-07-05 19:18:00 +02:00
Nathan Adams
681ff3dd24
avm1: Add helper method to get/set strength in filter objects
2023-07-05 19:18:00 +02:00
Crowdin Bot
36a950cf1e
chore: Update translations from Crowdin
2023-07-05 18:57:39 +02:00
Aaron Hill
e716b3fd7f
avm2: Implement XML.descendants for attributes
...
We were previously only ever checking children,
and not attributes.
In order to avoid matching both attributes and elements
with a given name in 'descendants', `E4xNode::matches_name`
now checks `is_attribute` on the provided `Multiname`. This
requries changing several other parts of the codebase to
properly set this flag on `Multinames` provided by ActionScript.
2023-07-04 19:38:30 -04:00
Aaron Hill
f7cbe3b7cd
avm2: Implement Graphics.copyFrom
2023-07-04 16:12:29 -04:00
Aaron Hill
3401971729
web: Use Rc, Cell, and RefCell for non-thread-safe types
2023-07-04 20:50:46 +02:00
Aaron Hill
3006356410
render: Suppress clippy::arc_with_non_send_sync for now
2023-07-04 20:50:46 +02:00
Aaron Hill
2499db4874
desktop: Use Rc and RefCell for non-thread-safe types
2023-07-04 20:50:46 +02:00
Aaron Hill
f22bef99b4
core: Fix some Clippy lints on the latest nightly
2023-07-04 20:50:46 +02:00
Lord-McSweeney
275c42b39c
core: Correctly apply blend modes and filters from button records
2023-07-04 20:24:12 +02:00
Lord-McSweeney
c943866745
core+avm1: Implement FLV onCuePoint for AVM1
2023-07-04 00:36:25 +02:00
Crowdin Bot
ad7e73f77b
chore: Update translations from Crowdin
2023-07-03 20:38:26 +02:00
Nathan Adams
146d565c02
render: Add Filter::scale() and use it to scale filter values (currently just blur_)
2023-07-03 20:13:40 +02:00
Nathan Adams
4ac13de2f3
wgpu: Switch PASS_SCALES to be accumulative scales, for better calculation of size upfront
2023-07-03 20:13:40 +02:00
renovate[bot]
13b1078142
chore(deps): lock file maintenance rust dependencies
2023-07-03 08:28:13 +03:00
Aaron Hill
768eaa1a01
avm2: Store at most a single type parameter in names/clasess
...
The only generic class is `Vector`, which only has a single parameter.
However, we currently store a list of type parameters in several places,
which requires redundant checks that the list only has one entry.
Instead, we now store an `Option` everwhere except for
`swf::Multiname::TypeName` (since the actual SWF format supports
multiple type parameters). We still perform the same check when loading
bytecode (the swf Multiname should only have at most one type
parameter), but the rest of the codebase can deal with an `Option`
instead.
2023-07-02 16:02:53 -04:00
Aaron Hill
2bcfabef53
desktop: Use `SubscriberInitExt::init` to capture `log` output
...
This method redirects output from the `log` crate to `tracing`,
which lets us get naga/wgpu logs.
2023-07-02 15:38:35 -04:00
Aaron Hill
26101ae979
render: Add 'renderdoc' feature/module for manual frame capture
...
This feature is disabled by default. When enabled, you can use
`ruffle_render::renderdoc::begin_frame_capture` and
`ruffle_render::renderdoc::end_frame_capture` to manually trigger
a RenderDoc frame capture (if Ruffle wasn't launched by RenderDoc,
this logs an error).
This is very useful when debugging Stage3D/PixelBender bugs, as you
can produce a capture containing only the relevant graphics calls.
2023-07-02 13:59:19 -04:00
Aaron Hill
b77c1fc78f
core: Fix Nightly clippy lint
2023-07-02 14:32:45 +02:00
Aaron Hill
f7c50865a0
core: Update formatting with latest nightly 'cargo fmt'
2023-07-02 14:32:45 +02:00
TÖRÖK Attila
0fe8469d24
chore: Run `npm update --save` in `web`
...
Also `npm install` to make sure `package-lock.json` is clean.
2023-07-02 13:55:24 +02:00
Crowdin Bot
80588d614d
chore: Update translations from Crowdin
2023-07-02 11:41:18 +02:00
Adrian Wielgosik
bd043c09c7
cargo fmt
2023-07-01 23:38:09 +02:00
David Wendt
679f179a60
docs: Document the aliasing situation with `VideoSource::Swf`
2023-07-01 23:38:09 +02:00
David Wendt
d382b29fb1
core: Allocate a new `VideoSource` when attaching netstreams rather than attaching the stream to every instance of the video
2023-07-01 23:38:09 +02:00
David Wendt
b2544618ab
core: `VideoStream` should not hold the last decoded frame as this data structure is shared across multiple instances of the same character
2023-07-01 23:38:09 +02:00
Adrian Wielgosik
7eb7f2ee2c
avm2: Correctly set and use Video class from Rust
2023-07-01 22:45:20 +02:00
Lord-McSweeney
7ad864ca02
avm2+tests: Implement Matrix3D.copyColumnFrom; add a test
2023-07-01 15:23:29 -04:00
Aaron Hill
6e1f00edf2
render: Implement more PixelBender features ( #11800 )
2023-07-01 13:50:43 -04:00
Aaron Hill
710be15f78
core: Bail out of operations::color_transform if [xy]_min==[xy]_max
...
In the special case where y_min==y_max==(height-1),
we would create a bad 'encompassing' region - subtracing
one from the max would make it smaller than the min,
causing `PixelRegion::encompassing_pixels` to treat it
as the minimum, and add one to `height - 1`
There's no work to do when x_min==x_max or y_min==y_max,
so we can also skip the sync and GC write in this case.
2023-07-01 09:55:59 -04:00
Nathan Adams
5e608764ec
core: Add debug feature to find display objects by mouse
2023-07-01 12:58:32 +02:00
renovate[bot]
898b2c8948
chore(deps): lock file maintenance node.js dependencies
2023-07-01 12:20:10 +03:00
Aaron Hill
c2fcdf6fd6
avm2: Implement Stage3D.requestContext3DMatchingProfiles
...
For now, we just ignore the parameters and call requestContext3D
2023-06-30 23:22:56 -04:00
Crowdin Bot
29a5c6a4cd
chore: Update translations from Crowdin
2023-07-01 00:47:31 +02:00
David Wendt
32524d3abd
core: AVM2 display object allocators always ensure both halves of the display object are connected correctly
2023-06-30 16:14:28 -06:00
TÖRÖK Attila
c7bbed958c
tests: Add test of ScreenVideo FLVs (contributed by torokati44)
2023-06-30 16:14:28 -06:00
David Wendt
8ac8b926ac
core: If a video does not have an `onMetaData` block, register a compatible-ish datastream so that we can still play the video
2023-06-30 16:14:28 -06:00
David Wendt
b9aaaf5259
flv: ScreenVideo v2 also wants the FLV video data byte
2023-06-30 16:14:28 -06:00
David Wendt
3ff1db014f
flv: Screen Video wants the FLV `VideoData` header byte
2023-06-30 16:14:28 -06:00
David Wendt
21b7e70d09
docs: Keep documentation of the old `num_frames` options until we can remove them
2023-06-30 16:14:28 -06:00
David Wendt
ff1ed66729
flv: VP6 video packets have a horizontal and vertical adjustment before the actual video data.
2023-06-30 16:14:28 -06:00
David Wendt
98ee78be1a
avm2: Make netstream event initialization more concise
2023-06-30 16:14:28 -06:00
David Wendt
04ee039d3c
avm2: Use `ParametersExt` to grab parameters in `Video.init()`
2023-06-30 16:14:28 -06:00
David Wendt
faf8fb5d3f
avm2: Move as much `Video` initialization as possible into an instance allocator function
2023-06-30 16:14:28 -06:00
David Wendt
45e6f07009
core: Pause the stream if we hit a tag parsing error.
2023-06-30 16:14:28 -06:00
David Wendt
af0149c476
core: Log netstream signature verification errors
2023-06-30 16:14:28 -06:00
David Wendt
b639af1ada
avm2: `Video.init` doesn't need to call `super_init`
2023-06-30 16:14:28 -06:00
David Wendt
4f4a205637
tests: Add images to the netstream tests
2023-06-30 16:14:28 -06:00
David Wendt
d2f806a901
core: The AVM2 version of this test wants a spurious status event
2023-06-30 16:14:28 -06:00
David Wendt
ab21b5b106
core: The stop event is `NetStream.Play.Stop`
2023-06-30 16:14:28 -06:00