Kamil Jarosz
8b2c9d8157
avm2: Add stub for winding behavior of drawing triangles in Graphics
...
Currently, even-odd winding rule is used to render triangles,
but FP uses non-zero.
2024-06-19 23:24:55 +02:00
Kamil Jarosz
14ac29e435
avm2: Handle wrong number of coords when drawing triangles in Graphics
...
FP throws an error when the number of coordinates is odd for the indexed
version, and when is not divisible by 6 for the non-indexed version.
2024-06-19 23:24:55 +02:00
Kamil Jarosz
86a3086808
avm2: Fix errors thrown when culling has wrong value in Graphics
...
The errors differ between Graphics.drawTriangles and GraphicsTrianglePath.
The former throws 2004, whereas the latter throws 2008.
2024-06-19 23:24:55 +02:00
Kamil Jarosz
64acc7b3ad
avm2: Ignore out of range and non-integer triangle indices in Graphics
...
This behavior imitates FP's behavior.
2024-06-19 23:24:55 +02:00
Kamil Jarosz
2b9289e1b2
avm2: Implement culling for drawing triangles in Graphics
2024-06-19 23:24:55 +02:00
Kamil Jarosz
4993d70594
avm2: Unify drawing triangles in graphics.rs
...
There were two implementations for drawing triangles: one for
Graphics.drawTriangles, and the other for GraphicsTrianglePath.
However, they behave almost identically, so this patch uses
draw_triangles_internal for both.
2024-06-19 23:24:55 +02:00
Kamil Jarosz
9e1248d130
avm2: Add make_error_1125
2024-06-19 23:24:55 +02:00
Nathan Adams
4d12e0e5b4
core: Implement LocalConnection
2024-06-19 21:54:25 +02:00
Kamil Jarosz
0f534c837f
avm2: Improve drawing paths in Graphics
...
This patch improves drawing paths in Graphics:
* no error is thrown when there are 0 commands,
* no error is thrown when there are missing data points,
* an error is thrown when the number of coordinates is odd,
* no error is thrown and command processing is stopped
when an unknown command is encountered,
* the vector with parsed commands is removed, as it's not needed.
2024-06-19 20:58:33 +02:00
Kamil Jarosz
fae1500cc6
avm2: Add make_error_2004
2024-06-19 20:58:33 +02:00
Kamil Jarosz
687e049dc1
debug_ui: Add option to draw layout boxes for EditText
2024-06-19 20:12:43 +02:00
TÖRÖK Attila
35f5227e2d
core,desktop: Update `wgpu` to `v0.20.1`, bump `egui`
2024-06-18 23:10:43 +02:00
Lord-McSweeney
9c8e4d7dce
core: Remove `DataFormat` for `URLLoader` loads since we can just check the string field
...
Also, don't set the data as variables if there is no data to set.
2024-06-18 20:56:50 +02:00
Lord-McSweeney
7a1ee0e109
core: `URLLoader` should check the data format after loading finishes, not when starting a load
2024-06-18 20:56:50 +02:00
Crowdin Bot
a731b82b54
chore: Update translations from Crowdin
2024-06-17 14:57:20 +02:00
Adrian Wielgosik
cacfb5a6a4
avm2: Fix and unify converting SWF's 1-based to 0-based slot indexing
2024-06-16 16:11:17 -07:00
Tom Schuster
4463a69c87
avm2: Implement namespace support for flash.xml
2024-06-15 22:26:57 +02:00
Crowdin Bot
8fb214ea71
chore: Update translations from Crowdin
2024-06-14 22:41:19 +02:00
Lord-McSweeney
18c50df838
avm2: Don't get the `Class` class by using `instance_of` in `into_finished_class`
2024-06-13 23:49:52 +02:00
Lord-McSweeney
1705870951
avm2: Class initializers will be called twice when constructing two `ClassObject`s for one `Class`
2024-06-13 23:49:52 +02:00
Lord-McSweeney
7e7032d908
avm2: Remove `constructor`, `native_constructor`, and `call_handler` fields from `ClassObject`
...
They were already present on `Class`
2024-06-13 23:49:52 +02:00
dependabot[bot]
52404bc3aa
build(deps): bump the cargo-minor group with 6 updates
...
Bumps the cargo-minor group with 6 updates:
| Package | From | To |
| --- | --- | --- |
| [clap](https://github.com/clap-rs/clap ) | `4.5.4` | `4.5.7` |
| [url](https://github.com/servo/rust-url ) | `2.5.0` | `2.5.1` |
| [linkme](https://github.com/dtolnay/linkme ) | `0.3.26` | `0.3.27` |
| [regex](https://github.com/rust-lang/regex ) | `1.10.4` | `1.10.5` |
| [zip](https://github.com/zip-rs/zip2 ) | `2.1.2` | `2.1.3` |
Updates `clap` from 4.5.4 to 4.5.7
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.4...v4.5.7 )
Updates `url` from 2.5.0 to 2.5.1
- [Release notes](https://github.com/servo/rust-url/releases )
- [Commits](https://github.com/servo/rust-url/compare/v2.5.0...v2.5.1 )
Updates `linkme` from 0.3.26 to 0.3.27
- [Release notes](https://github.com/dtolnay/linkme/releases )
- [Commits](https://github.com/dtolnay/linkme/compare/0.3.26...0.3.27 )
Updates `regex` from 1.10.4 to 1.10.5
- [Release notes](https://github.com/rust-lang/regex/releases )
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/regex/compare/1.10.4...1.10.5 )
Updates `zip` from 2.1.2 to 2.1.3
- [Release notes](https://github.com/zip-rs/zip2/releases )
- [Changelog](https://github.com/zip-rs/zip2/blob/master/CHANGELOG.md )
- [Commits](https://github.com/zip-rs/zip2/compare/v2.1.2...v2.1.3 )
---
updated-dependencies:
- dependency-name: clap
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-minor
- dependency-name: url
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-minor
- dependency-name: linkme
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-minor
- dependency-name: quick-xml
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo-minor
- dependency-name: regex
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-minor
- dependency-name: zip
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-06-13 01:05:26 +02:00
Crowdin Bot
4fa5853f88
chore: Update translations from Crowdin
2024-06-13 00:44:49 +02:00
Nathan Adams
c9b111996f
web: Make serde (more-)optional in core
2024-06-13 00:22:33 +02:00
Kamil Jarosz
e8dbd58306
core: Use DisplayObject.movie() instead of context.swf where applicable
...
This prevents problems in case of mixed-AVM content.
2024-06-13 00:06:10 +02:00
Kamil Jarosz
39e8a15db5
core: Update focus after handling press, not before
...
Updating focus before handling press caused onRollOut
to be fired before onPress, but it should be fired after.
2024-06-12 23:49:06 +02:00
TÖRÖK Attila
516c56db15
chore: Suppress a `clippy::doc_lazy_continuation` beta lint false positive
2024-06-12 23:09:39 +02:00
TÖRÖK Attila
0d25b5dba8
chore: Fix `clippy::needless_borrows_for_generic_args` beta lint
2024-06-12 22:42:18 +02:00
TÖRÖK Attila
6b4ee7dfde
chore: Fix most `clippy::doc_lazy_continuation` beta lints
2024-06-12 22:42:18 +02:00
Lord-McSweeney
0e062c4b9b
avm2: Replace two more uses of `instance_of` with `instance_class`
2024-06-12 19:46:32 +02:00
Lord-McSweeney
97f75cc0b4
avm2: Move interface logic from `ClassObject` to `Class`
2024-06-12 19:46:32 +02:00
Lord-McSweeney
90c370d61b
avm2: Always store a Class on vtable
2024-06-12 19:46:32 +02:00
Lord-McSweeney
2c9028d2f9
avm2: Replace most uses of `instance_of` with `instance_class`
...
Also store a Class -> alias mapping instead of a ClassObject -> alias mapping for AMF.
2024-06-12 19:46:32 +02:00
Crowdin Bot
3b9bb3f5db
chore: Update translations from Crowdin
2024-06-10 00:02:16 +02:00
Adrian Wielgosik
bc85638920
avm2: Port registerClassAlias logic to Rust
2024-06-09 09:14:20 -07:00
Kamil Jarosz
142fc1d232
core: Prevent copying and cutting text from a password field
2024-06-09 15:38:35 +02:00
Kamil Jarosz
c23ec0782a
core: Prevent pasting empty string when the clipboard is empty
2024-06-09 15:38:35 +02:00
Kamil Jarosz
a2751c3c0f
core: Add English translations for copy/paste context menu
2024-06-09 15:38:35 +02:00
Kamil Jarosz
6117c3c68e
core: Add copy/paste context menu for EditText
...
This menu is shown when the EditText is focused and the mouse hovers over it.
It has the following elements, which may be disabled
when e.g. the field is not editable / selectable:
* Cut,
* Copy,
* Paste,
* Delete,
* Select All.
2024-06-09 15:38:35 +02:00
Kamil Jarosz
0910104c3b
core: Add EditText::is_text_control_applicable
...
This method is useful for checking whether the given text control code
may be applied to the current state of the EditText.
2024-06-09 15:38:35 +02:00
Kamil Jarosz
1f3c230691
core: Pass UpdateContext to ContextMenuState::build_builtin_items
...
This simplifies code, as we do not have to access
the same elements over and over.
2024-06-09 15:38:35 +02:00
Adrian Wielgosik
2955add845
avm2: In Array.sortOn, behave better in presence of nonsense args
2024-06-09 11:11:57 +02:00
Lord-McSweeney
1d1eb6c966
avm2: Fix `NewClass` not popping the base class and better null propagation in optimizer
2024-06-08 14:25:43 -07:00
Lord-McSweeney
bb7a315afd
avm2: Misc. optimizer improvements
2024-06-08 14:25:43 -07:00
Nathan Adams
70fca6fa0a
web: Add create_audio to builder
2024-06-08 08:42:04 +02:00
Nathan Adams
3fa8735e97
web: Don't parse config in Rust, do it in Typescript with some tests
2024-06-08 08:42:04 +02:00
Lord-McSweeney
6e53f98068
avm2: Fix performance regression
...
A `ScriptObject` was being allocated on every `call_method` call
2024-06-08 00:31:29 +02:00
Kamil Jarosz
2704e1f506
core: Implement setting tabChildren for AVM1 for debug UI
2024-06-08 00:12:53 +02:00
Kamil Jarosz
b43f23ce9a
core: Move a tabChildren-related comment to the proper place
2024-06-08 00:12:53 +02:00
Kamil Jarosz
191e879172
avm2: Properly implement Stage.tabChildren
...
Stage.tabChildren does not modify the value of tabChildren of the stage,
but rather sets the tabChildren of the root movie.
2024-06-08 00:12:53 +02:00