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
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
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
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
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
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
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
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
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
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
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
David Wendt
fc50a688fb
core: Update stream time after processing tags
2023-06-30 16:14:28 -06:00
David Wendt
4dd9508471
avm1: Implement onStatus events for NetStream
2023-06-30 16:14:28 -06:00
David Wendt
63b27a4a20
avm2: Pass status events through to AVM2.
2023-06-30 16:14:28 -06:00
David Wendt
757ae40abc
core: Add stubs for stream event triggers
2023-06-30 16:14:28 -06:00