renovate[bot]
3057aa59dd
chore(deps): lock file maintenance rust dependencies
2023-06-25 21:53:00 -04:00
renovate[bot]
f62dd17284
fix(deps): update rust crate indexmap to v2
2023-06-25 20:27:33 -04:00
Nathan Adams
0ca206ce4f
core: Add dumb filter list inside debug ui
2023-06-25 21:58:46 +02:00
Nathan Adams
628d8f66ad
render: Add filters to BitmapCacheEntry
2023-06-25 21:58:46 +02:00
Lord-McSweeney
a38dec3f9c
core: Erase filters in GotoPlaceObject::new if initial PlaceObject has none
2023-06-25 18:27:54 +02:00
Lord-McSweeney
0dba2ac37c
core: Overwrite filters in GotoPlaceObject::merge
2023-06-25 18:27:54 +02:00
Lord-McSweeney
2d02886f5a
avm2+tests: Support CData in XML.toXMLString; add test
2023-06-25 00:25:47 -04:00
Nathan Adams
f24aabf74e
core: Don't hold a borrow on Avm1Button whilst adding children - fixes #11706
2023-06-24 22:33:42 +02:00
MrCheeze
1baccb483a
core: Apply filters when modifying an object, not just when instantiating
2023-06-24 17:22:32 +02:00
Nathan Adams
6d77ff1fc4
core: Store just abcd fields of Matrix inside BitmapCache, as we don't use tx/ty
2023-06-24 01:42:04 +02:00
Nathan Adams
4f9cc4e3c4
core: Clear this on scrollRect, not just ancestors
2023-06-24 01:42:04 +02:00
Nathan Adams
668cc31fa4
chore: Comment changes regarding cacheAsBitmap
2023-06-24 01:42:04 +02:00
Nathan Adams
a5b28b50bf
core: Don't invalidate things more than once per frame, to avoid repeat walking of the DO tree
2023-06-24 01:42:04 +02:00
Nathan Adams
cdb0774642
core: Hook up DisplayObject::opaque_background
2023-06-24 01:42:04 +02:00
Nathan Adams
ee444853b4
avm1: Implement MovieClip.cacheAsBitmap
2023-06-24 01:42:04 +02:00
Nathan Adams
d94c73cebe
core: Rename bitmap cache methods and make clear which one is preference and which one is actual
2023-06-24 01:42:04 +02:00
Nathan Adams
9795fc9311
core: Invalidate ancestors on scrollRect changes
2023-06-24 01:42:04 +02:00
Nathan Adams
f0b72ee89c
core: Add cacheAsBitmap debug buttons
2023-06-24 01:42:04 +02:00
Nathan Adams
f81b1f83b9
core: Fix panic in recursive set_maskee/set_masker
2023-06-24 01:42:04 +02:00
Nathan Adams
1a9bec3062
core: Don't use cacheAsBitmap when bitmapdata.draw() as it'll keep reinvalidating it
2023-06-24 01:42:04 +02:00
Nathan Adams
f43560ab88
render: Switch to providing cacheAsBitmap entries all at once on submit frame
2023-06-24 01:42:04 +02:00
Nathan Adams
2594453831
render: Add render_offscreen_for_cache for more optimised CacheAsBitmap
2023-06-24 01:42:04 +02:00
Nathan Adams
5a67b2dcb7
core: Don't rerender cacheAsBitmap if the color transform changes (unlike Flash - but it should be fine!)
2023-06-24 01:42:04 +02:00
Nathan Adams
d49a8ce0e6
core: Invalidate cacheAsBitmap when drawing api is used
2023-06-24 01:42:04 +02:00
Nathan Adams
cc8edb3bf1
core: Invalidate cacheAsBitmap when various more properties change
2023-06-24 01:42:04 +02:00
Nathan Adams
27db3e70b4
core: Invalidate cacheAsBitmap when transform changes
2023-06-24 01:42:04 +02:00
Nathan Adams
0f01efb322
core: Invalidate cacheAsBitmap when video change
2023-06-24 01:42:04 +02:00
Nathan Adams
41991da624
core: Invalidate cacheAsBitmap when texts change
2023-06-24 01:42:04 +02:00
Nathan Adams
932291bbad
core: Invalidate cacheAsBitmap when morphs change
2023-06-24 01:42:04 +02:00
Nathan Adams
8a3ccdd080
core: Invalidate cacheAsBitmap when graphics change
2023-06-24 01:42:04 +02:00
Nathan Adams
c39217e139
core: Invalidate cacheAsBitmap when children are added or removed
2023-06-24 01:42:04 +02:00
Nathan Adams
fe742194b1
core: Implement cacheAsBitmap behaviour
2023-06-24 01:42:04 +02:00
Niv.Kaminer
69b09ab1ef
avm2: Implement Serialization for ByteArrayObject
2023-06-23 08:29:53 -04:00
Crowdin Bot
b1149cd267
chore: Update translations from Crowdin
2023-06-23 11:49:47 +02:00
Fancy2209
9ab4c163c7
Fix TouchEvent.as ( #11685 )
...
* Update TouchEvent.as
* Oops
2023-06-23 08:14:23 +00:00
Lord-McSweeney
8127971dfd
avm2: Remove AIR-only FocusDirection class
2023-06-22 08:47:10 +03:00
Lord-McSweeney
f6360b343e
avm2: flash.sampler stubs
2023-06-21 21:03:29 +03:00
Nathan Adams
a078d91c31
core: Simplify open_character_button a bit
2023-06-21 18:27:12 +02:00
Nathan Adams
8dd3b50da6
core: Deemphasise invalid rects in debug ui
2023-06-21 18:27:12 +02:00
Nathan Adams
00e02d1511
core: Add debug window to list known movies
2023-06-21 18:27:12 +02:00
Nathan Adams
c0247c020a
swf: Add write_swf_raw_tags for reconstructing a swf from its parts
2023-06-21 18:27:12 +02:00
Nathan Adams
4e0628b730
core: Refactor out a show_avm2_value for debugger
2023-06-21 18:27:12 +02:00
Nathan Adams
e6b087dbc2
core: Remove swf saving for now, we need to reconstruct the swf from the data
2023-06-21 18:27:12 +02:00
Nathan Adams
d8e6bf7535
core: Show root DO's in debug view
2023-06-21 18:27:12 +02:00
Nathan Adams
0523a5b149
core: Remove UpdateContext param from DisplayObject::avm2_root()
2023-06-21 18:27:12 +02:00
Nathan Adams
647006b8d0
core: Add more avm2 debug info
2023-06-21 18:27:12 +02:00
Nathan Adams
5b429e3bf5
core: Add filtering to avm2 debug window
2023-06-21 18:27:12 +02:00
Nathan Adams
89962cf970
core: Add avm2 objects to debug menu
2023-06-21 18:27:12 +02:00
Nathan Adams
aaf9ecfa32
core: Add AVM1 values to debug UI
2023-06-21 18:27:12 +02:00
Nathan Adams
afdd617d29
avm1: Add include_hidden: bool to get_keys()
2023-06-21 18:27:12 +02:00
Nathan Adams
310b03b570
core: Add searching to DO debug children list
2023-06-21 18:27:12 +02:00
Nathan Adams
c5a1ca0e57
core: Show invalid bounds + selfbounds/scrollrect on DO debug info
2023-06-21 18:27:12 +02:00
Nathan Adams
c8a41e327a
core: Add character info to DO debug window
2023-06-21 18:27:12 +02:00
Nathan Adams
b24cc60a5d
core: Add swf info to debug menu
2023-06-21 18:27:12 +02:00
Nathan Adams
cb2349e33a
core: Store character name<->id map, not name<->character, so we can query id for name
2023-06-21 18:27:12 +02:00
Adrian Wielgosik
b3c40ecda1
avm2: Optimize coerce_to_primitive for boxed primitives
2023-06-21 00:20:03 +02:00
Crowdin Bot
67a5a2923f
chore: Update translations from Crowdin
2023-06-20 23:52:03 +02:00
Nathan Adams
6b76af2d40
core: Fix avm2button bounding box
2023-06-20 23:22:53 +02:00
Toad06
18fb5064d3
avm1: Correct `matrix::object_to_matrix_or_default`
2023-06-19 21:09:06 +03:00
relrelb
a8f9033091
avm1: Make `DisplayPropertyMap` immutable
2023-06-18 07:50:10 +03:00
Toad06
22ae6bfec3
avm1: Correct `WaitForFrame` and `WaitForFrame2` actions
2023-06-17 19:23:18 -05:00
Lord-McSweeney
b02d8900c5
avm2: Remove or validate some uses of coerce_to_object
2023-06-17 22:40:14 +02:00
Adrian Wielgosik
6ccb6e7fdd
Revert "avm2: Throw TypeError when 'astype' receives a null/undefined class"
...
This reverts commit ce0ba7795c
.
2023-06-17 22:40:14 +02:00
Crowdin Bot
ca549e482c
chore: Update translations from Crowdin
2023-06-17 19:25:33 +02:00
renovate[bot]
7a21756ddb
chore(deps): lock file maintenance rust dependencies
2023-06-17 11:00:52 -05:00
Nathan Adams
6208c50273
core: Simplify TDisplayObject::swf_version(), we don't need to iterate the heirarchy
2023-06-17 10:37:13 +02:00
Aaron Hill
69fce3f7f8
wpgu: Initial implementation of PixelBender shader execution ( #11441 )
...
* wpgu: Initial implementation of PixelBender shader execution
The implementation is split across four crates:
* `ruffle_render` now holds the main PixelBender bytecode parsing
implementation (previously, this was in `ruffle_core`).
* `ruffle_core` holds some helper functions for converting between
AVM2 `Value`s and the PixelBender vector types.
* `naga-pixelbender` (newly created) constructs a Naga `Module`
from parsed PixelBender bytecode
* `ruffle_render_wgpu` sets up the render pipeline for the shader
constructed by `naga-pixelbender`, and actually executes the shader.
The Actionscript-side shader parameters are passed in through uniforms.
This allows us to cache the compiled `naga::Module` and associated
wgpu types inside `ShaderData`, when it's first created. Each invocation
of a `ShaderJob` only needs to create a bind group and render pass.
Limitations:
* Only a few of the PixelBender opcodes are implemented - however, this is
enough to get Stemlands cannon rotation working, as well as a cool
"donut" shader that I found and included as a test.
* PixelBender matrix types are not supported.
* Only BitmapData is supported as an input/output type - Flash Player
also supports using Vector and ByteArray
* ShaderJob execution is always synchronous.
* Adjust comments
* Address review comments
2023-06-15 22:50:24 +00:00
Lord-McSweeney
b998fc0197
avm2: Minimal stub of ShaderFilter
2023-06-15 16:42:12 -05:00
renovate[bot]
fc933f485f
fix(deps): update wasm-bindgen
2023-06-15 20:50:04 +02:00
Aaron Hill
f257979b86
avm2: Use a separate domain for playerglobals
...
We create a separate child domain, which is accessible
from the Stage and the root movieclip.
This prevents ActionScript from loading classes into the
special playerglobals domain (Domain.parentDomain is modified
to return null instead of the playerglobals domain when applicable),
so the native method lookup logic will never run for user code.
2023-06-15 12:57:39 -05:00
Aaron Hill
ad97322807
avm2: Implement ErrorObject.display without using Activation
...
This lets us print the full error message and stack stacke
in contexts where an Activation is not available, including
the `Debug` impl.
The 'name' and 'error' fields are accessed using hardcodd slot
ids. This is pretty hacky, but will work until we have better
handling of slot properties.
2023-06-15 09:31:36 -05:00
Aaron Hill
87850abd19
avm2: Improve support for deleting XML attributes and children
...
We now support deleting named children, as well as attributes.
Additionally, I've fixed our handling of `XML.parent()` - we now
properly set the parent when a child is created, and clear the parent
when `delete` is used.
2023-06-15 09:02:09 -05:00
Lord-McSweeney
b4b726d7ab
avm2: nit: Add error number in error message for BitmapData.drawWithQuality
2023-06-14 20:32:06 -05:00
Aaron Hill
cd2c7f6f2f
tests: Enable tracing_subscriber in tests
...
Previously, we weren't displaying any Ruffle logs when running tests.
2023-06-14 17:15:31 -05:00
AllinolCP
e4d86ec9e7
core: implement screen resolution for capabilities ( #11156 )
2023-06-14 20:49:13 +00:00
Lord-McSweeney
f649344f64
avm2: nit: Fix warning message in Avm2::peek
2023-06-14 19:16:08 +02:00
Lord-McSweeney
6006aa82c2
avm2+tests: Support primitives besides null in MovieClip.addFrameScript; add test
2023-06-14 18:16:39 +02:00
nosamu
202fe2f1bb
core: Add options to set and force the stage alignment
2023-06-14 16:04:14 +02:00
Nathan Adams
0b86c02c5c
desktop: Fix interaction between egui and ruffle cursors
2023-06-14 13:43:17 +02:00
Lord-McSweeney
f5528aab75
avm2+tests: Implement Object.length and Object.init; add test for Object.length
2023-06-14 12:37:00 +02:00
Lord-McSweeney
10a8acb166
avm2: Stub NetConnection.addHeader
2023-06-13 20:51:08 -05:00
nosamu
60d3788466
avm2: Improve PerspectiveProjection stub
2023-06-13 19:31:18 -05:00
Adrian Wielgosik
128416cccd
avm2: Support Array(...) without new
2023-06-14 00:34:13 +02:00
Aaron Hill
40318f905e
avm2: Implement call handler for XMLList
...
This delegates to the XMLList constructor, just as
the XML call handler delegates to the XML constructor.
2023-06-13 17:20:11 -05:00
nosamu
61f1cf88a5
avm2: Throw AVM error in Array constructor
2023-06-13 23:54:13 +02:00
Mike Welsh
c4e4eba63f
avm2: Implement BitmapData.setVector
2023-06-12 18:34:51 -05:00
Aaron Hill
a006e96a44
avm2: Set named field in parent to null when child is removed
...
If a child named 'foo' is removed by the timeline (without
having been previous added/removed from the timeline by ActionScript),
then the 'foo' field in the parent will be set to null. This occurs
even if the 'foo' field in the parent is not currently set to
the child 'foo' (e.g. 'this.foo = someOtherObject' was executed by
ActionScript).
2023-06-12 17:33:02 -05:00
Moulins
d04fc61bb5
core: slightly simplify string interner by using new hashbrown APIs
...
- we can now get a `&RawTable` from a `&HashSet`, meaning we can store a
`HashSet` directly in the interner;
- `RawTable::iter_hash` now allows the removal of already-yielded
elements during iteration, which simplifies `WeakSet::entry`
2023-06-12 22:58:20 +02:00
relrelb
1dc28d898e
avm1: Migrate `Transform` to `NativeObject`
2023-06-12 20:16:45 +03:00
Aaron Hill
2dfc0bac5b
core: Log url when movie fetch fails
2023-06-12 10:55:13 -05:00
Crowdin Bot
834297f110
chore: Update translations from Crowdin
2023-06-12 12:28:05 +02:00
Aaron Hill
ce0ba7795c
avm2: Throw TypeError when 'astype' receives a null/undefined class
2023-06-12 02:31:03 -05:00
Aaron Hill
7e56c20973
avm2: Implement KeyboardEvent.updateAfterEvent
2023-06-12 01:44:46 -05:00
Aaron Hill
6b808a9a9d
avm2: Stub Matrix3D-related methods on Transform
...
This allows verification to succeed on classes that override these
methods.
2023-06-12 01:17:39 -05:00
Lord-McSweeney
b7088695fe
avm2: Stub undocumented TextField.insertXMLText
2023-06-11 11:17:21 -05:00
relrelb
226a2be2bd
core: Fix drag constraint with `lockCenter` set to `false`
...
Previously `last_mouse_position` was updated irrespectively of
whether the dragged object was inside or outside the constraint
box. Change it follow mouse deltas, after clamping is performed.
Fixes #11254 .
2023-06-11 07:34:14 +03:00
Lord-McSweeney
dced6445ee
avm2: Stub flash.net.getClassByAlias and improve flash.net.registerClassAlias stub
2023-06-10 16:09:57 -05:00
Lord-McSweeney
4d8feeab2e
avm2+tests: Fix String.substr with negative second value, add tests
2023-06-10 15:48:45 -05:00
Aaron Hill
cfb23d1f97
avm2: Implement AMF serialization of XML objects
2023-06-10 12:13:07 -05:00
relrelb
dcb6bbe50b
avm1: Migrate `GradientGlowFilter` to `NativeObject`
2023-06-10 12:46:22 +03:00
Nathan Adams
75979b561a
avm1: Rename try_resolve_level -> get_level, resolve_level -> get_or_create_level
2023-06-10 10:37:15 +02:00
Nathan Adams
38a3f67000
avm1: Don't create _levelN for unloadMovieNum(N)
2023-06-10 10:37:15 +02:00
AllinolCP
44ff49aa53
core: Fix status code implementation for AVM1 and implement HTTPStatusEvent.HTTP_STATUS for avm2 ( #11360 )
2023-06-10 03:06:26 +00:00
renovate[bot]
a621472336
chore(deps): lock file maintenance rust dependencies
2023-06-09 20:17:25 +03:00
Aaron Hill
a387476de7
core: Unify loader event handler and AVM2 data into MovieLoaderVMData
...
`AVM2Data` was always provided with
`MovieLoaderEventHandler::Avm2LoaderInfo`, so we can unify
them into a single enum.
2023-06-09 11:47:11 -05:00
Toad06
2894f01d50
avm1: Implement `MovieClip.lineGradientStyle`
2023-06-09 17:36:34 +02:00
Toad06
181aac46b0
avm1: Don't fail if base clip is invalid in `GetProperty`/`SetProperty`
2023-06-09 16:59:27 +02:00
Nathan Adams
137986c384
core: Add PlayerBuilder::with_external_interface
2023-06-09 13:03:46 +02:00
Aaron Hill
59b219cda6
avm2: Run 'nested goto frame' for entire Stage and orphans
...
When we run a 'goto', a weird "nested frame" gets triggered.
Previously, we were only calling `construct_frame` on the target
MovieClip as part of this "nested frame". However, Flash Player
seems to treat this (in some ways) like a normal frame - *all*
objects on the Stage (and orphans) have `construct_frame` called.
In particular, `gotoAndStop`/`gotoAndPlay` is called during
an "enterFrame" event handler, then unrelated objects on the Stage
will have their children constructed during the execution of
`gotoAndStop`/`gotoAndPlay`. The same logic holds for frame scripts.
This fixes a bug in Steamlands, which relies on children on the main
timeline being constructed immediately following a call to `gotoAndStop`
on an orphan (originally triggered from an "enterFrame" handler).
2023-06-08 22:17:27 -05:00
Lord-McSweeney
455b96710e
avm2: Fix MouseCursorData.frameRate stubs
2023-06-07 22:39:41 -05:00
Aaron Hill
9d8ac81b58
avm2: Use WeakObject in `broadcast_list`
...
This ensures that we don't keep the underlying listener
object alive after all event listeners (including broadcast
listeners) have been unregistered.
2023-06-07 21:15:26 -05:00
EmperorBale
4815ca5e90
avm2: Implement WeakObject
...
This also adds a new required function to TObject called `downgrade`, that will convert the `Object` to a `WeakObject`.
2023-06-07 17:51:26 -07:00
EmperorBale
5e20b079d9
avm2: Add weak variant of every object
2023-06-07 17:51:26 -07:00
Toad06
8ce8b775a7
avm1: Fix coercion order in SWFv4 actions
2023-06-08 01:33:08 +02:00
Moulins
3f1bcecfbb
avm1: Add version gate for `{MovieClip, Button}.blendMode`
...
Theses properties are only available on SWF >= 8
2023-06-08 01:18:06 +02:00
Moulins
b71b8f9de5
avm1: fix coercions for the `blendMode` property of display objects
...
`mc.blendMode = 3` is a valid way of modifying the blend mode of a DO;
on the other hand, booleans and objects *shouldn't* be coerced.
2023-06-08 01:18:06 +02:00
Crowdin Bot
93f5869005
chore: Update translations from Crowdin
2023-06-08 00:57:49 +02:00
Aaron Hill
0e0399963e
avm2: Throw exception when ExternalInterface is not available
2023-06-07 17:24:25 -05:00
Aaron Hill
b240f05390
avm2: Stub Graphics.beginShaderFill
2023-06-07 17:06:33 -05:00
Aaron Hill
1efcd584c2
avm2: Wrap orphan list in an `Rc` for correct iteration behavior
...
When we iterate over the orphan list to run frame lifecyle methods,
the orphan list may be modified (e.g. an event listener creates a new
orphan object). To ensure that we iterate over all of the orphans
originally present, this commit wraps the orphan list in an `Rc`
(just like we do for the render list). Modifications to the list use
`Rc::make_mut`, and iteration operates on a clone of the `Rc`.
2023-06-07 16:23:06 -05:00
Aaron Hill
d2999a2572
core: Fix parsing of PixelBender sampleNearest and sampleLinear
...
This fixes a panic on startup for Sniper Team
2023-06-07 15:59:31 -05:00
Aaron Hill
ccb5027de0
avm2: Preserve MultinameFlags::ATTRIBUTE when filling a lazy Multiname
2023-06-07 14:08:10 -05:00
Aaron Hill
638471fc2d
avm2: Stub flash.printing.PrintJob
2023-06-07 03:47:29 -05:00
Aaron Hill
5fd7dc2c9b
core: Correctly handle '.' and '<' in obfuscated QNames
...
QName can contain characters like '.' and '<' as part of the
package or class name (though this requires editing the SWF
or using a nonstandard compiler). This broke our attempt to parse
generic type paramters by looking for '.<'
Instead, our 'Vector' special casing now operates on the unparsed
'AVMString' name, instead of attempting to construct a 'QName'.
This means that we don't need to handle generic paramters at
all for obfuscated names (which will never start with '__AS3__'
or 'Vector.<')
This fixes a bug in Red Ball 4v3, which has an obfuscated class
'!D.<H'
2023-06-06 18:12:58 -05:00
Aaron Hill
0d5ead4c02
core: Ignore newer PlaceObject tag in same frame with duplicate depth
...
If we have two PlaceObject tags in the same frame with the same depth,
only the first one actually places an object. The second one is ignored
(Flash Player logs a warning).
2023-06-06 14:50:07 -05:00
Aaron Hill
d037038170
avm2: Make `caller_domain` an `Option`, and call `expect` when actually needed
...
There are only a few places where we actually need to use the
`caller_domain`, so we don't actually need it available for most native
method calls. This means that `Activation::from_nothing` can be used
in the vast majority of cases without causing a panic later on.
2023-06-06 21:05:19 +02:00
Nathan Adams
10134467c9
avm2: Don't error on removeChildren() for empty containers - fixes #11382
2023-06-05 18:30:08 -05:00
renovate[bot]
f1fe998869
chore(deps): lock file maintenance rust dependencies
2023-06-04 22:53:18 -05:00
relrelb
9c8e212641
avm1: Migrate `GradientBevelFilter` to `NativeObject`
2023-06-03 21:33:12 +03:00
Nathan Adams
136417c58c
core: Make debug windows scrollable
2023-06-03 09:11:06 +02:00
Nathan Adams
85f6fd3889
core: Add movie clip info to debug menu
2023-06-03 09:11:06 +02:00
Nathan Adams
a26a64d88f
core: Format Rectangle to 2 decimal places
2023-06-03 09:11:06 +02:00
Nathan Adams
c9d0a08863
core: Move debug children list's button into header
2023-06-03 09:11:06 +02:00
Nathan Adams
9f384df27b
core: Don't have dynamic_root in UpdateContext unless egui feature is enabled
2023-06-03 09:11:06 +02:00
Nathan Adams
a641c564de
core: Show debug rect on hovering stuff
2023-06-03 09:11:06 +02:00
Nathan Adams
16ce9aa437
core: Add debug rects to debugger
2023-06-03 09:11:06 +02:00
Nathan Adams
a6b8883acd
core: Add mask/masker/clip info to debug UI
2023-06-03 09:11:06 +02:00
Nathan Adams
59eceb8b7a
core: Add AVM1 path to debug UI
2023-06-03 09:11:06 +02:00
Nathan Adams
77bd1cd1c8
core: Add depth and color transform to debug ui
2023-06-03 09:11:06 +02:00
Nathan Adams
e12e2a2e54
core: Initial Debug UI
2023-06-03 09:11:06 +02:00
Nathan Adams
eb70a4f361
core: Update gc_arena to 63dab12871321e0e5ada10ff1f1de8f4cf1764f9
2023-06-03 09:11:06 +02:00
Aaron Hill
2cd518013c
wgpu: Don't skip alpha/erase blend modes for BitmapData.draw ( #11323 )
...
We can skip these when we're drawing to a fresh buffer, but not when we're blending over an existing BitmapData texture.
2023-06-02 21:16:05 +00:00
relrelb
e5da68c1df
avm1: Migrate `ConvolutionFilter` to `NativeObject`
2023-06-02 23:39:02 +03:00
Aaron Hill
21429cc205
avm2: Add PixelBender bytecode parsing to ShaderData
...
We now parse PixelBender bytecode, and populate the parameters
from the bytecode on `ShaderData`. This is enough to progress
Steamlands, which needs to access dynamically set properties
on `ShaderData`
Bytecode execution is not implemented yet.
2023-06-02 15:23:32 -05:00
Aaron Hill
999e2f5b71
wgpu: Implement Context3D.setScissorRectangle
2023-06-02 14:56:14 -05:00
relrelb
abb0e33431
chore: Use Rust's `OnceCell`/`OnceLock`
...
They were stabilized in Rust 1.70.0, which was released yesterday.
This removes the `once_cell` dependency.
2023-06-02 22:21:38 +03:00
Lord-McSweeney
5fdbfe2fd4
avm2: Partial implementation of Loader.unload
2023-05-31 21:03:18 -05:00
Aaron Hill
8b257ef6da
avm2: Always run `construct_frame` in `initialize_for_allocator`
...
When we create a DisplayObject from ActionScript, we should always
run `construct_frame` on it, regardless of what frame phase we
are currently in.
This fixes a regression in Fancy Pants World 4 Part 1, where entering
the first door produced an error.
2023-05-31 17:33:25 -05:00
Crowdin Bot
6dc3743f4b
chore: Update translations from Crowdin
2023-05-30 23:21:28 +02:00
relrelb
c952106ee3
avm1: Correct `ActionCloneSprite` and `duplicateMovieClip()`
...
* `ActionCloneSprite` coerces `depth` before `target`.
* `duplicateMovieClip()` coerces `name` before `depth`.
* `duplicateMovieClip()` returns `undefined` on SWF<6.
2023-05-30 23:10:36 +03:00