Aaron Hill
51fe1e9754
core: Handle `DirtyState::CpuModified` in `overwrite_cpu_pixels`
...
If we're going to overwrite the CPU pixels with the result of a
GPU operation, make sure the GPU texture is up to date with the
latest CPU pixels. I've also renamed the method to
`overwrite_cpu_pixels_from_gpu` to better reflect how it should
be used.
2023-02-11 11:37:00 -06:00
Bale
73e9fd55fb
avm2: Make sure scripts get initialized after all scripts have been loaded when lazy init is disabled ( #9478 )
...
* avm2: Initialize scripts **after** all scripts have been loaded
* tests: Add test for eager initialization
2023-02-11 00:38:38 +00:00
Aaron Hill
4b76d1b32a
core: Support using URLVariables as a POST request body ( #9489 )
...
This is needed by the Newgrounds API. We don't have the ability
to make fake requests to HTTP urls in our test frameworks,
so I haven't added any tests for this. However, I tested locally
that this allows the Newgrounds API to work (and got a medal
in Cloud Wars).
2023-02-11 00:18:10 +00:00
nosamu
c1fe3ded25
chore: remove unnecessary FromStr impl for LoadBehavior
2023-02-10 00:56:17 -08:00
nosamu
1a65a0942c
desktop: Add --letterbox option
2023-02-09 23:43:25 -08:00
EmperorBale
e7612f571d
avm2: Implement ScopeChain caching
2023-02-09 10:51:12 -08:00
golfinq
37ec94f95b
Avm2: Implement Stage.invalidate
2023-02-08 17:47:21 -07:00
Aaron Hill
a818dd0918
core: Use colorTransform in DisplayObject.setTransform
2023-02-08 20:56:46 +01:00
Adrian Wielgosik
61a5161a20
avm2: Convert most errors in get/set/initproperty to AVM errors
2023-02-07 18:50:15 -06:00
Adrian Wielgosik
c844d2ab6f
avm2: Only store actually-passed arguments to 'arguments'
2023-02-07 18:35:30 -06:00
Nathan Adams
ac9b6e3ecb
avm2: Mark Dictionary(true) and TimerEvent.updateAfterEvent() as stubs
2023-02-07 20:34:59 +01:00
Nathan Adams
e5f44b0f05
avm2: Replaced stubs in actionscript with new stub system
2023-02-07 20:34:59 +01:00
Nathan Adams
bdbf54ecd4
core: Added ability to mark stubs inside actionscript
2023-02-07 20:34:59 +01:00
Nathan Adams
dff558170e
avm2: Implement BitmapData.getPixels()
2023-02-07 19:10:25 +01:00
Nathan Adams
25cc6f3243
avm2: Change MovieClip::frame_scripts to Vec<Option<Avm2Object>>, where index is frame num
2023-02-07 18:26:27 +01:00
Nathan Adams
43d9c3deed
avm2: Make sure SoundChannel.soundTransform always returns a value
2023-02-07 18:26:27 +01:00
Nathan Adams
bc7773596b
avm2: addFrameScript allows null to unset the script, and only allows one script per frame
2023-02-07 18:26:27 +01:00
CUB3D
48f4df51a5
avm1: Correct depth calculation for AVM1 clips pending removal and add tests
2023-02-06 10:53:45 -07:00
CUB3D
2d11a250da
avm1: Retrieving the child of a container should prioritise lowest depth
2023-02-06 10:53:45 -07:00
CUB3D
a356be15fe
avm1: Only delay removals on AVM1, check for dynamic unload handlers
2023-02-06 10:53:45 -07:00
CUB3D
755425ebfa
avm1: Delay clip removals when a child has an unload listener
...
When removing a clip, first check if it has an unload event listener somewhere
it's hierarchy.
If it does, enqueue the removal to happen on the next frame, by moving it to a negative depth.
2023-02-06 10:53:45 -07:00
Nathan Adams
50fd7aeff5
core: Add quality options to the context menu
2023-02-06 16:08:04 +01:00
Nathan Adams
a220703618
core: Made PlayerBuilder take quality instead of setting it after the Player was made
2023-02-06 16:08:04 +01:00
Nathan Adams
d8e924affc
render: Add RenderBackend::set_quality method, and call it from core
2023-02-06 16:08:04 +01:00
Nathan Adams
12bd38b338
core: Changed Player::set_quality to take in a StageQuality directly
2023-02-06 16:08:04 +01:00
Nathan Adams
b270d1bbd7
render: Move StageQuality from core to render
2023-02-06 16:08:04 +01:00
Nathan Adams
00c7e8f634
avm2: Fixed bytearray compress/decompress methods setting position of resulting bytearray
2023-02-05 19:22:01 +01:00
Nathan Adams
e798d69299
avm2: Convert ByteArray EOF to avm error
2023-02-05 19:22:01 +01:00
Nathan Adams
c14f022837
core: Use overwrite_cpu_pixels in apply_filter
2023-02-05 18:41:43 +01:00
Nathan Adams
7476b3b0e0
avm2: Added a bunch of missing filter classes
2023-02-05 18:41:43 +01:00
Nathan Adams
42f3ee923f
avm2: Mark unsupported filters as stubs
2023-02-05 18:41:43 +01:00
Nathan Adams
3411a04cef
render: Made render specific Filter enum & structs, as swf ones don't map 1:1 to potential filters
2023-02-05 18:41:43 +01:00
Nathan Adams
b5a250e16f
render: Changed render_offscreen to return an Option instead of an Result
2023-02-05 18:41:43 +01:00
Nathan Adams
e73389aa71
wgpu: Implement blur filter
2023-02-05 18:41:43 +01:00
Nathan Adams
284a58c817
avm2: Implement BitmapData.apply_filter for ColorMatrixFilter
2023-02-05 18:41:43 +01:00
Lord-McSweeney
a369e71af6
Appease clippy again
2023-02-03 23:32:22 +01:00
Lord-McSweeney
83087f9f23
Change stubs to use new macro method
2023-02-03 23:32:22 +01:00
Lord-McSweeney
a6ea1ef4a7
Appease clippy
2023-02-03 23:32:22 +01:00
Lord-McSweeney
add115e97f
State "Stub" instead of "Implement"
...
...and fix a format issue.
2023-02-03 23:32:22 +01:00
Lord-McSweeney
963f3240f2
Stub DisplayObject.opaqueBackground
2023-02-03 23:32:22 +01:00
nosamu
12c67d5068
desktop: Improve --help messages
2023-02-03 21:17:56 +01:00
Nathan Adams
198e40fd2e
avm2: Changed return values of a bunch of stubs per PR feedbck
2023-02-01 21:45:12 +01:00
Nathan Adams
8e917c473e
avm2: Replaced stubs in Proxy with new format
2023-02-01 21:45:12 +01:00
Nathan Adams
b28e921fb9
avm2: Replaced stubs in Keyboard with new format
2023-02-01 21:45:12 +01:00
Nathan Adams
99e723a1cb
avm2: Replaced stubs in TextField with new format
2023-02-01 21:45:12 +01:00
Nathan Adams
2a36f9b871
avm2: Replaced stubs in StaticText with new format
2023-02-01 21:45:12 +01:00
Nathan Adams
ff768a1e73
avm2: Replaced stubs in Font with new format
2023-02-01 21:45:12 +01:00
Nathan Adams
af73a1a292
avm2: Replaced stubs in Security with new format
2023-02-01 21:45:12 +01:00
Nathan Adams
e48926799c
avm2: Replaced stubs in SharedObject with new format
2023-02-01 21:45:12 +01:00
Nathan Adams
408482cd21
avm2: Replaced stubs in ObjectEncoding with new format
2023-02-01 21:45:12 +01:00
Nathan Adams
69101af66b
avm2: Replaced stubs in SoundMixer with new format
2023-02-01 21:45:12 +01:00
Nathan Adams
834ac93350
avm2: Replaced stubs in Sound with new format
2023-02-01 21:45:12 +01:00
Nathan Adams
cb1fa72d6f
avm2: Replaced stubs in Transform with new format
2023-02-01 21:45:12 +01:00
Nathan Adams
a576903f0c
avm2: Replaced stubs in IndexBuffer3D with new format
2023-02-01 21:45:12 +01:00
Nathan Adams
24169a3577
avm2: Replaced stubs in Stage with new format
2023-02-01 21:45:12 +01:00
Nathan Adams
6a6e81ad6a
avm2: Replaced stubs in LoaderInfo with new format
2023-02-01 21:45:12 +01:00
Nathan Adams
33dbe82b4f
avm2: Replaced stubs in InteractiveObject with new format
2023-02-01 21:45:12 +01:00
Nathan Adams
46ed595186
avm2: Replaced stubs in Graphics with new format
2023-02-01 21:45:12 +01:00
Nathan Adams
0abfb79c62
avm2: Replaced stubs in DisplayObjectContainer with new format
2023-02-01 21:45:12 +01:00
Nathan Adams
0e522fd58b
avm2: Replaced stubs in displayobject with new format
2023-02-01 21:45:12 +01:00
Nathan Adams
fb0578ee26
avm2: Replaced stubs in bitmapdata with new format
2023-02-01 21:45:12 +01:00
Nathan Adams
10ec9a1a74
avm2: Replaced stubs in namespace with new format (but still err as I don't know what to return otherwise)
2023-02-01 21:45:12 +01:00
Nathan Adams
8f53f5414c
avm2: Replaced stubs in bitmap with new format
2023-02-01 21:45:12 +01:00
Nathan Adams
44981af409
avm1: Replaced all existing stub warnings with new stub system
2023-02-01 21:45:12 +01:00
Nathan Adams
366f8bef43
core: Add feature known_stubs to retrieve all known stubs
2023-02-01 21:45:12 +01:00
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