nosamu
bb15c90d82
avm2: Implement XML.hasSimpleContent and hasComplexContent
2023-05-22 06:17:37 -05:00
Aaron Hill
6ac4e5256d
avm2: Check parent domain in export_class
...
The `export_class` function mirrors `export_definition`, and needs
to avoid exporting something already defined in a parent domain.
2023-05-21 17:37:54 -05:00
relrelb
c230dcf0f8
avm1: Migrate `BitmapData` to `NativeObject`
2023-05-21 21:02:14 +03:00
nosamu
7dfc36c6fc
web: Support pasting from clipboard
2023-05-21 15:26:42 +02:00
nosamu
ee956927b7
core: Fix TextField.maxChars handling and address other reviews
2023-05-21 15:26:42 +02:00
nosamu
4e579b7e68
core: Move left/right arrow handling to `text_control_input`
2023-05-21 15:26:42 +02:00
nosamu
0dbb4c46e4
core: Move `Delete` and `Backspace` handling to `text_control_input()`
...
Co-authored-by: jmckiern <jmckiern@tcd.ie>
2023-05-21 15:26:42 +02:00
nosamu
fab72ac01c
core: Implement handling of text control input
...
Co-authored-by: jmckiern <jmckiern@tcd.ie>
2023-05-21 15:26:42 +02:00
jmckiern
67d74047a9
core: Add clipboard_content getter
2023-05-21 15:26:42 +02:00
Aaron Hill
95b0b29310
avm2: Initial implementation of URLStream
...
This is based on URLLoader, and doesn't actualy 'stream' data -
it all becomes available once the request finishes. However, this
is good enough to get Sniper Team working.
2023-05-21 15:00:08 +02:00
TÖRÖK Attila
65117499fd
chore: Bump regress and toml dependencies
2023-05-21 14:42:01 +02:00
Aaron Hill
54cf9065fb
core: Don't create a fake root clip when instantiating Stage
...
AVM2 can handle a missing root movie, and AVM1 doesn't seem
to rely on having a root movie during Stage initialization.
2023-05-21 08:11:11 +03:00
Lord-McSweeney
7c9b0378f6
nit: avm2: Fix stub message in Socket
2023-05-21 07:31:50 +03:00
iwannabethedev
7b12cb882f
core: Fix error message in 'pixelDissolve()'.
2023-05-21 01:47:06 +02:00
iwannabethedev
0f30b378b0
core: Re-arrange internal implementation of 'pixelDissolve()'.
2023-05-21 01:47:06 +02:00
iwannabethedev
deae231176
core: Clean up TODOs in 'pixelDissolve()'.
2023-05-21 01:47:06 +02:00
iwannabethedev
6f98d39c25
core: Implement 'pixelDissolve()' for AVM1.
2023-05-21 01:47:06 +02:00
iwannabethedev
40c40f278c
core: 'pixelDissolve()' bug fix and clean-up.
2023-05-21 01:47:06 +02:00
iwannabethedev
1bd9f82496
core: Implements `BitmapData.pixelDissolve()` for AVM2.
...
The changes have automated tests for them.
The implementation has not been implemented or tested for AVM1 yet.
2023-05-21 01:47:06 +02:00
Aaron Hill
ad77cb0209
core: Refactor Loader to properly load images
...
We now run all of the completion logic (including adding
the new DisplayObject as a child) in `Loader::movie_loader_complete`.
Previously, some of this logic was run from `Loader::preload_tick`,
which meant that loaded images did not have the logic run.
Also, `BitmapData` and `Bitmap` instances (with corresponding AVM2
objects) are now properly constructed for loaded images.
2023-05-20 18:35:10 -05:00
Toad06
b88e19ef6c
avm1: Filter buttons that use a `keyPress` event
2023-05-21 01:13:26 +02:00
Aaron Hill
5d62ef90f2
wgpu: Use intermediate buffer for Context3DCommand::CopyBitmapToTexture
...
In a previous PR, I introduced an optimization that used
`copy_texture_to_texture` to copy directly from a BitmapData GPU
texture to a Stage3D GPU texture.
Unfortunately, this optimization is incorrect. A BitmapData GPU
texture can be modified at any time by normal AVM2 code - in
particular, in might be modified before we submit the encoded
`copy_texture_to_texture` command. This shows up in Sniper Team,
which re-uses BitmapData objects for multiple distinct textures.
The previous 'optimization' resulted in the wrong BitmapData contents
getting uploaded to a texture (since it was changed before the copy
command was submitted).
2023-05-20 17:38:26 -05:00
Aaron Hill
0864853d44
avm2: Allow passing `null` to `Context3D.setProgram`
...
This clears the vertex and fragment shader programs
(bringing the Context3D back to its initial state).
2023-05-20 16:23:03 -05:00
EmperorBale
53acdee979
avm2: Remove NOPMD comments
2023-05-20 13:59:12 -07:00
EmperorBale
78c8aa2a0d
core: Remove linter code
2023-05-20 13:59:12 -07:00
Tom Schuster
2af58dc832
avm2: Support set on XMLList with a single child
...
XMLList with a single child should behave like an XML object.
2023-05-19 20:10:47 -05:00
Lord-McSweeney
0948bf7bbd
avm2: Implement Capabilities.playerType and Capabilities.version (and mark the other Capabilities getters as stubs)
2023-05-19 16:54:46 -05:00
Aaron Hill
6025878aab
avm2: Respect SKIP_INVISIBLE for DisplayObject
...
Previously, we allowed mouse picks of certain invisible
DisplayObjects, even when HitTestOptions::SKIP_INVISIBLE
was set.
2023-05-19 08:12:00 -05:00
Aaron Hill
5c68bceb7b
avm2: Set 'bubbles' to 'false' for rollOut and rollOver events
...
This matches the Flash Player documentation. Since we were
manually traversing the displayobject hierarching when firing
the event, we ended up firing duplicate events to parents
because bubbling was enabled.
2023-05-18 19:01:55 -05:00
Aaron Hill
7004e98b23
avm2: Don't validate Context3DVertexBufferFormat when buffer is null
...
This matches Flash Player's behavior - some SWFS try to pass in 'null'
for both the buffer and format.
2023-05-18 15:14:29 -05:00
renovate[bot]
f969bdce71
fix(deps): update wasm-bindgen
2023-05-17 06:44:50 +03:00
Aaron Hill
75569e1311
avm2: Throw error for invalid Stage3D back buffer size
2023-05-16 17:36:22 -05:00
Aaron Hill
12e815d383
core: Take 'self' instead of '&mut self' in `replace_with_movie`
2023-05-15 20:01:02 +03:00
renovate[bot]
5b26d1b2ee
fix(deps): update wasm-bindgen
2023-05-15 10:00:49 +03:00
Lord-McSweeney
b24fc7c07f
avm2: Improve Shader stub
2023-05-15 09:40:43 +03:00
iwannabethedev
d0f8061c85
core: documentation changes.
2023-05-15 00:51:54 +02:00
iwannabethedev
8c92cecb60
core: Add documentation to Color.
2023-05-15 00:51:54 +02:00
iwannabethedev
9de2abe8b8
core: Fix wrong color form used.
2023-05-15 00:51:54 +02:00
relrelb
4a26ceb14b
render: Use `swf::Point<Twips>` in more places
2023-05-14 22:48:41 +03:00
relrelb
220f8cd1cf
render: Use `swf::Point<Twips>` in `shape_hit_test()`
2023-05-14 22:48:41 +03:00
relrelb
598c8cde0e
render: Use `swf::Point<Twips>` in `DrawCommand::CurveTo`
2023-05-14 22:48:41 +03:00
relrelb
544e445d2f
render: Use `swf::Point<Twips>` in `DrawCommand::LineTo`
2023-05-14 22:48:41 +03:00
relrelb
e5c7d70f3f
render: Use `swf::Point<Twips>` in `DrawCommand::MoveTo`
2023-05-14 22:48:41 +03:00
Lord-McSweeney
3079ae30a5
avm2: Stub SharedObject.setProperty
2023-05-14 19:01:24 +03:00
Nathan Adams
a9ba46594f
chore: Updated translations from Crowdin
2023-05-14 13:31:32 +02:00
Lord-McSweeney
017a44084f
avm2: nit: Provide error number (2025) in error message for validate_remove_operation
2023-05-13 21:30:47 +03:00
Aaron Hill
729d5a2c65
avm2: Don't overwrite existing entry in `export_class`
...
This makes the behavior consistent with `export_definition`
2023-05-13 11:15:54 +03:00
Aaron Hill
3c6820c6e1
avm2: Check length and copy vector in Matrix3D constructor
2023-05-13 11:00:31 +03:00
iwannabethedev
476ff4aeef
core: Fix drawing on cpu with color transform.
...
Taken directly from this commit, credits to Dinnerbone:
9b76090e1f
2023-05-12 22:42:44 +02:00
Toad06
2e972b8f32
avm1: `button.useHandCursor` can hold any value
2023-05-12 01:13:28 +03:00