Aaron Hill
bbb5619bc9
tests: Add TextField Event.CHANGE test and update test input format
2023-07-05 18:00:59 -04:00
Aaron Hill
4695d1fa63
avm2: Implement 'change' event for TextField
2023-07-05 18:00:59 -04:00
Adrian Wielgosik
87ede6a052
avm2: Set correct `this` values in function calls
2023-07-05 22:36:20 +02:00
Aaron Hill
852367b09b
wgpu: Use a vec4f for pixelbender ZEROED_OUT_OF_RANGE_MODE_INDEX
...
This could really be a single f32 (or even a boolean), but wgpu
on web requires a minimum size of 16 bytes for uniforms.
2023-07-05 21:23:22 +02:00
Aaron Hill
2d1da4d18e
avm2: Throw TypeError when trying to parse malformed XML
...
Scratch detects if a string is valid XML by trying to construct
an XML object, and catching the thrown error.
2023-07-05 19:41:23 +02:00
Nathan Adams
a99b30927f
avm1: Panic if we see a shader filter
2023-07-05 19:18:00 +02:00
Nathan Adams
4fc170e5bd
avm1: Implement gradient filters conversions
2023-07-05 19:18:00 +02:00
Nathan Adams
bfedfbaa98
avm1: Implement displacement map filter conversions
2023-07-05 19:18:00 +02:00
Nathan Adams
8a767492e6
avm1: Implement drop shadow filter conversions
2023-07-05 19:18:00 +02:00
Nathan Adams
40b4f9bafa
avm1: Implement glow filter conversions
2023-07-05 19:18:00 +02:00
Nathan Adams
30027bc03e
avm1: Implement convolution filter conversions
2023-07-05 19:18:00 +02:00
Nathan Adams
df6064b2e9
avm1: Implement color matrix filter conversions
2023-07-05 19:18:00 +02:00
Nathan Adams
b3629669bd
avm1: Implement blur filter conversions
2023-07-05 19:18:00 +02:00
Nathan Adams
73bc637ad7
avm1: Implement bevel filter conversions
2023-07-05 19:18:00 +02:00
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