Commit Graph

4715 Commits

Author SHA1 Message Date
Mike Welsh 711a012fea avm1: Exclude shape children from `StageObject::get_keys`
Non-interactive children such as shapes are not returned when
iterating over the keys of a stage object in AVM1.
2023-04-08 13:37:25 -07:00
Mike Welsh 3716422b37 avm1: Grab correct variables for `MovieClip.loadVariables` and `loadMovie`
The request was being populated with parameters from the local
function scope, not the movieclip that is doing the loading.
2023-04-08 13:37:25 -07:00
relrelb 93a0fd43d6 avm1: Migrate `ColorMatrixFilter` to `NativeObject` 2023-04-08 13:40:32 +03:00
relrelb 3dcf246870 avm1: Migrate `DropShadowFilter` to `NativeObject` 2023-04-08 13:40:32 +03:00
relrelb 814cb00821 avm1: Migrate `GlowFilter` to `NativeObject` 2023-04-08 13:40:32 +03:00
relrelb b74f515c34 avm1: Refactor `BevelFilter` 2023-04-08 13:40:32 +03:00
relrelb cdffc00e94 avm1: Refactor `BlurFilter` 2023-04-08 13:40:32 +03:00
Tom Schuster d9e69563d3 avm2: Implement XMLList.copy 2023-04-07 12:29:49 -05:00
Udeshya 54a8672390
avm2: Trim xml text nodes when being parsed (#10341) 2023-04-06 22:41:46 -05:00
Lord-McSweeney 60ae2edf92 avm2: Use AVM error for invalid bitmapdata error 2023-04-06 11:53:56 -05:00
Aaron Hill 6844d1bf19 avm2: Call 'AS3::concat' in ColorMatrixFilter
This ensures that we call the normal Array concat method
(or a method that overrides it). Some SWFs may define a *public*
concat method in an Array subclass, with a different signature.

Fixes #10552
2023-04-05 22:48:12 -07:00
Aaron Hill 962cf92223 avm2: Implement Context3D.setSamplerStateAt
This fixes pixelated backgrounds in Fancy Pants World 4 Part 3
2023-04-05 16:44:07 -07:00
Toad06 5e165a0682 avm1: Fix some issues with `Selection.getFocus()` and `setFocus()` 2023-04-05 15:53:18 -07:00
Mike Welsh 792cfd82c7 avm2: Implement `Context3D.setColorMask` 2023-04-05 12:22:13 -07:00
Toad06 76b9ed80ba core: Support `maxlength` attribute in EditText 2023-04-05 11:59:17 -07:00
onkrot 19284cb1be avm2: Add more flash.accessibility members 2023-04-05 11:10:46 -07:00
Mike Welsh 37bf6b39e6 core: Remove `RenderContext::allow_mask`
This is now handled by `CommandList::maskers_in_progress`, so core
code does not have to worry about whether or not it can draw a
mask.
2023-04-04 13:10:45 -07:00
Lord-McSweeney 8d527ceed2 avm2: Array-related fixes
1. toString and toLocaleString should only be defined on the prototype.
2. concat should only be defined as an as3 and proto property, not as an instace property.
3. Array doesn't have a valueOf defined directly on it.
2023-04-04 00:43:46 -07:00
TÖRÖK Attila 493971ab8a render: Make RenderBackend::update_texture() take a Bitmap (like register_bitmap()) 2023-04-04 00:15:07 -07:00
TÖRÖK Attila 5f94476b2a render: Add BitmapFormat::Yuv420p and BitmapFormat::Yuva420p 2023-04-04 00:15:07 -07:00
nosamu 315a7c87e5 core: Focus EditText fields only if editable 2023-04-03 23:27:18 -07:00
Mike Welsh bde9765864 avm2: Implement `Matrix3D.transformVector` and `deltaTransformVector` 2023-04-03 17:09:16 -07:00
Nathan Adams 3a297f8adc core: Iterate y then x in bitmapdata operations 2023-04-03 18:25:20 +02:00
Nathan Adams 2a9288870a core: Made operations take in MutationContext instead of &mut UpdateContext where possible 2023-04-03 18:25:20 +02:00
Nathan Adams 4477d65331 core: Made overwrite_cpu_pixels_from_gpu take in MutationContext instead of &mut UpdateContext 2023-04-03 18:25:20 +02:00
Nathan Adams e62e2a94e8 core: Move dummy() from BitmapData to BitmapDataWrapper 2023-04-03 18:25:20 +02:00
Nathan Adams f9a9c05863 avm2: Made fill_bitmap_data_from_symbol return a BitmapDataWrapper, instead of taking in a BitmapData 2023-04-03 18:25:20 +02:00
Nathan Adams ab534bab87 core: Rename BitmapData (of the stage variety) to BitmapGraphicData to separate it from BitmapData of the editable data variety 2023-04-03 18:25:20 +02:00
Nathan Adams e1e4a01f13 avm2: Make BitmapDataObject::from_bitmap_data take BitmapDataWrapper 2023-04-03 18:25:20 +02:00
Nathan Adams 103158101a avm2: Make Object::init_bitmap_data take in BitmapDataWrapper 2023-04-03 18:25:20 +02:00
Nathan Adams a80a1422b0 avm2: Renamed bitmap_data_wrapper into bitmap_data 2023-04-03 18:25:20 +02:00
Nathan Adams 0f81d60db2 avm1: Removed BitmapDataObject::bitmap_data() as it's no longer used (or recommended to use) 2023-04-03 18:25:20 +02:00
Nathan Adams 7ffdcccf8a avm1: Don't sync in BitmapData.loadBitmap() 2023-04-03 18:25:20 +02:00
Nathan Adams f8ef01d2ef avm1: Don't sync a bitmapdata to read its width or height 2023-04-03 18:25:20 +02:00
Nathan Adams c037e014c2 avm1: Don't sync in new Bitmap(x) 2023-04-03 18:25:20 +02:00
Nathan Adams e593541309 avm1: Don't sync bitmapdata when disposing it 2023-04-03 18:25:20 +02:00
Nathan Adams f7da335083 avm2: Renamed as_bitmap_data_wrapper into as_bitmap_data 2023-04-03 18:25:20 +02:00
Nathan Adams 1521c7b6ee avm2: Removed Object::as_bitmap_data() as it's no longer used (or recommended to use) 2023-04-03 18:25:20 +02:00
Nathan Adams b1f7fecacb avm2: Don't sync in new Bitmap(x) 2023-04-03 18:25:20 +02:00
Nathan Adams 444e256708 avm2: Made Bitmap.bitmapData not recreate a new BitmapDataWrapper every time its called 2023-04-03 18:25:20 +02:00
Tom Schuster b0576c2155 avm2: Improve the Sound::extract stub 2023-04-03 00:22:23 -07:00
onkrot d047ecb130 avm2: Add X509 certificate classes 2023-04-02 23:59:37 -07:00
Lord-McSweeney d1b8ec7a7e avm2: Stub Shader 2023-04-02 19:56:14 -07:00
Lord-McSweeney c19031a6fc avm2: Stub ShaderData 2023-04-02 19:56:14 -07:00
Aaron Hill a2fa362091 wgpu: Implement double buffering for Context3D
This matches the Context3D docs. Calling 'present' swaps
the buffers.

I wasn't certain if we actually need a double-buffered depth
texture, but I included one just to be safe.
2023-04-02 19:24:23 -07:00
Aaron Hill 671ebdfa8f wgpu: Execute Context3D commands immediately
Now that most of the complicated Context3D methods have been
implemented, we can simplify the overall design. Instead of queueing
up commands and having `present` execute them in a loop, we
can execute each command immediately. The key insight is that
a `RenderPass` is only needed for `DrawTriangles`, so we don't
have to store it in `Context3D` and deal with complicated lifetime
issues.

The old behavior gave us implicit double-buffering behavior,
since nothing would get rendered until a 'present' call.
Now that a 'drawTriangles' call will immediately submit
a draw command, we need to implement actual double buffering.
This is done in the next commit.
2023-04-02 19:24:23 -07:00
Moulins 9441182b7d avm2: move event dispatch error handling in a single place
The `Avm2::{dispatch, broadcast}_event` methods now log and swallow any
AVM2 error occuring during the dispatch, instead of repeating the
handling code for each caller.

This also introduces some behavioral changes:
- Errors messages are more consistent;
- For consistency with `broadcast_event`, `dispatch_event` panics if
  given a non-event object to dispatch.
2023-04-02 16:52:42 -07:00
Udeshya 34775965ea
avm2: Implement `Transform.pixelBounds` 2023-04-02 23:25:10 +00:00
AllinolCP f0a8e50be1 avm2: implement decodeURI 2023-04-02 14:49:07 -07:00
Tom Schuster 5a18a409f7 avm2: Only reject a single explicit namespace in XML 2023-04-02 16:09:03 -05:00