Nathan Adams
4a0529dedc
core: Add Stub and StubCollection for tracking stubs used during a movie
2023-02-01 21:45:12 +01:00
renovate[bot]
caaf6d5c87
fix(deps): update rust dependencies
2023-01-31 09:39:42 -06:00
nosamu
5ee3b821dd
core: Fix DO render tree display
2023-01-29 11:58:59 -06: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
Aaron Hill
c6eb25194e
core: Bump flash-lso to latest commit
...
This deduplicates some dependencies, and removes
a future-incompat warning from `nom`.
2023-01-29 17:31:10 +01:00
Nathan Adams
85dc100ee9
avm2: Implement Sprite.dropTarget - though it's wrong right now
2023-01-29 00:52:52 +01:00
Daniel Jacobs
6697848b92
avm1: Don't ignore mouse_pick on static text ( fix #9274 )
2023-01-29 00:39:06 +01:00
Daniel Jacobs
b00628f45d
avm2: Add warning to MouseEvent.updateAfterEvent
2023-01-28 14:31:52 -06:00
Daniel Jacobs
65a0aaeb7b
avm2: Stub MouseEvent.updateAfterEvent
...
Basically a direct copy of https://github.com/ruffle-rs/ruffle/pull/7653
2023-01-28 14:31:52 -06:00
Aaron Hill
7ba960987c
core: Display class name in ErrorObject debug impl
...
This lets us know something about the type of error
that was thrown, and doesn't require an Activation/UpdateContext.
2023-01-24 20:38:45 -06:00
TÖRÖK Attila
e77b1e379c
core/audio: mp3: Use MpaReader instead of the deprecated Mp3Reader from Symphonia
2023-01-24 20:10:40 -06:00
renovate[bot]
8b6eef1715
fix(deps): update rust dependencies
2023-01-24 20:10:40 -06:00
Daniel Jacobs
0a04b22a79
avm2: Stub simple flash.text.engine enums
2023-01-23 13:51:26 -06:00
MartySVK
ad688b45da
avm2: added Stage.fullScreenSourceRect stub ( #9265 )
...
* avm2: added Stage.fullScreenSourceRect
* fixing checks I hope
2023-01-22 16:29:12 -05:00
Aaron Hill
e2954821ea
core: Take two - delay reading image back from render backend using `SyncHandle` ( #9184 )
...
* Take two: Delay reading image back from render backend using `SyncHandle`
This allows us to avoid blocking immediately after a `BitmapData.draw` call.
Instead, we only attempt to use the `SyncHandle` when performing an operation
that requires the CPU-side pixels (e.g. BitmapData.getPixel or BitmapData.setPixel).
In the best case, the SWF will never explicitly access the pixels of
the target BitmapData, removing the need to ever copy back the render backend
image to our BitmapData. If the SWF doesn't require access to the pixels immediately,
we can delay copying the pixels until they're actually needed, hopefully allowing
the render backend to finish processing the BitmapData.draw operation in
the backenground before we need the result.
Now that the CPU and GPU pixels can be intentionally out of sync with
each other, we need to ensure that we don't accidentally expose 'stale'
CPU-side pixels to ActionScript (which needs to remain unaware of
our internal laziness). We now use a wrapper type `BitmapDataWrapper`
to enforce that the `SyncHandle` is consumed before accessing the
underlying `BitmapData.
* core: Skip GPU->CPU sync for source and target BitmapData during draw
* Introduce DirtyState enum
2023-01-21 21:08:04 +00:00
MartySVK
6d5f6385a5
avm2: added TextField.restrict stub ( #9218 )
...
* added TextField.restrict stub
Co-authored-by: Martin Mravec <marty.devil@gmail.com>
2023-01-19 22:23:33 -05:00
Adrian Wielgosik
fb4d2d3f04
avm2: Implement TextField.maxChars
2023-01-19 01:24:47 +01:00
Nathan Adams
5f72ebaef9
core: Don't call avm2 callstack method if there's no callstack
2023-01-19 00:50:56 +01:00
Nathan Adams
f5d69f5ad8
avm2: Corrected panic messages in date code
2023-01-16 21:48:00 +01:00
EmperorBale
3287173da3
avm2: Fix edge case when setting fullYear of date
2023-01-16 21:48:00 +01:00
EmperorBale
6bb079cc60
avm2: Remove some useless else statements in date
2023-01-16 21:48:00 +01:00
MrCheeze
ebe5eed143
avm2: Fix corner case when goto same frame multiple times ( close #9018 )
...
This change makes it so that if there is a goto to a specific frame,
then a frame script is registered for that frame, and then a goto to the
same frame again, the frame script will not be skipped. At least one movie
appears to depend on this behaviour.
2023-01-16 18:37:19 +01:00
nosamu
952aa2d5f9
avm2: Correct name of rollover event
2023-01-14 20:04:33 +01:00
Aaron Hill
3a6c8d9796
core: Use BitmapData instead of separate `initial_data` field
...
Now that a `Bitmap` always stores a `BitmapData`, we can read the pixels
directly from the `BitmapData`, instead of duplicating them in an
`initial_data` field
2023-01-14 01:28:22 -05:00
Aaron Hill
b5796f9016
core: Derive Default for FramePhase
2023-01-13 20:37:52 +01:00
Calvin304
6c71f5b2a6
avm2: Naive DefineButtonSound impl for Avm2Button
2023-01-11 17:45:39 -05:00
Nathan Adams
9cd850d30e
render: Make render_offscreen return a sync handle which can be used to get the texture at a later time
2023-01-11 16:53:33 -05:00
Nathan Adams
133044b06b
avm2: Fix start_drag with negative width or height
2023-01-11 00:09:01 +01:00
MrCheeze
0597ae56e6
core: Make AVM2 frame labels case sensitive
2023-01-10 11:28:56 -05:00
renovate[bot]
630558a936
fix(deps): update rust dependencies
2023-01-10 16:37:40 +01:00
Moulins
3b1c981d25
Clears the AVM1 stack after executing bytecode
...
AVM1 bytecode may leave the operand stack unbalanced, and this will
cause a slow memory leak if the stack is never cleared.
2023-01-10 14:14:17 +01:00
CUB3D
c6bd431864
avm1: Deduplicate threshold operations
2023-01-10 13:59:06 +01:00
CUB3D
ea6ea8074a
tests: Add tests for BitmapData.threshold, fix issues found as a result
2023-01-10 13:59:06 +01:00
CUB3D
70f071b347
avm1: Implement Bitmapdata.threshold
2023-01-10 13:59:06 +01:00
CUB3D
8db909a7d4
desktop: Allow specifying player version
2023-01-10 13:13:30 +01:00
MrCheeze
bf6342bd4b
avm2: Fix hitTestPoint not transforming coordinates to world space
...
This behaviour is essentially copied from avm1 movie_clip.rs's hit_test.
Seems to fix several flashes that had broken collision until now.
2023-01-10 12:53:20 +01:00
Nathan Adams
724609e323
audio: Don't panic when reading an invalid mp3, bubble the error up
2023-01-10 11:10:46 +01:00
Nathan Adams
3b24d849e7
audio: Removed unwraps in mixer.rs and replaced with reasoned expects
2023-01-10 11:10:46 +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
Nathan Adams
a37e070724
core: Use Color::WHITE for draw_rect when we don't care, as it's just identity color transform and thus cheaper
2023-01-10 09:39:28 +01:00
Nathan Adams
53d6fa4d8b
render: Make render commands take in an actual value, not ref for immediate cloning
2023-01-10 09:39:28 +01:00
Adrian Wielgosik
14ee9b43fb
avm2: Replace ok_or by ok_or_else
2023-01-09 21:01:39 +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
Moulins
d332a174c3
Bump `gc-arena` to current master revision
...
This required small changes to some Debug impls that were missed in #8964
2023-01-06 18:22:43 -05:00
Nathan Adams
a7738bec69
core: Added a few simple tracing::instruments
2023-01-06 04:25:22 +01:00
Nathan Adams
13fd830e7c
core: Switch from log to tracing
2023-01-06 04:25:22 +01:00