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
0a2528b4f9
tests: Add avm2/graphics_draw_path test
...
This test verifies the behavior of drawing paths using Graphics.
2024-06-19 20:58:33 +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
dependabot[bot]
e4a37efddf
build(deps): bump the cargo-minor group across 1 directory with 2 updates
...
Bumps the cargo-minor group with 2 updates in the / directory: [url](https://github.com/servo/rust-url ) and [reqwest](https://github.com/seanmonstar/reqwest ).
Updates `url` from 2.5.1 to 2.5.2
- [Release notes](https://github.com/servo/rust-url/releases )
- [Commits](https://github.com/servo/rust-url/compare/v2.5.1...v2.5.2 )
Updates `reqwest` from 0.12.4 to 0.12.5
- [Release notes](https://github.com/seanmonstar/reqwest/releases )
- [Changelog](https://github.com/seanmonstar/reqwest/blob/master/CHANGELOG.md )
- [Commits](https://github.com/seanmonstar/reqwest/compare/v0.12.4...v0.12.5 )
---
updated-dependencies:
- dependency-name: url
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-minor
- dependency-name: reqwest
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-06-19 00:40:39 +02:00
Kamil Jarosz
b36a6b792b
web: Implement pasting text using Clipboard API
...
Ruffle does not have direct clipboard access on web, so the current
paste implementation from the context menu does not work.
This patch intercepts the paste context menu callback,
and uses the Clipboard API to ask the browser for the clipboard
and update it before calling the callback.
When the Clipboard API is not available or the user denies
clipboard permission, a modal informing the user about
cut, copy, paste shortcuts is displayed.
2024-06-19 00:15:07 +02:00
Kamil Jarosz
60ee0379b7
web: Add clipboard modal informing about shortcuts
...
This modal informs the user that they can use shortcuts
for copy, cut, and paste instead of using the context menu.
This modal is meant to be displayed when the browser
does not support reading the clipboard,
or the user denies permission to the clipboard.
2024-06-19 00:15:07 +02:00
Kamil Jarosz
c2777db656
web: Support async onClick callbacks for context menus
...
The current implementation was synchronous only, so that when
an async callback was used, the menu was being disposed prematurely.
This patch ensures that in case of asynchronous callbacks,
the menu will be disposed after they finish.
2024-06-19 00:15:07 +02:00
Kamil Jarosz
e086ca0719
ci: Enable web_sys_unstable_apis for nightly
...
The custom RUSTFLAGS from CI overrides .cargo/config.toml.
2024-06-19 00:15:07 +02:00
Kamil Jarosz
e75851f4fa
Revert "web: No longer set the `web_sys_unstable_apis` config variable"
...
This reverts commit 5b7c48e43d
.
Co-authored-by: TÖRÖK Attila <torokati44@gmail.com>
2024-06-19 00:15:07 +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
e8339088a7
tests: Add a test case for setting `dataFormat` after calling `load`
2024-06-18 20:56:50 +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
TÖRÖK Attila
4448e37d98
ci: Release and test with Rust 1.78 instead of stable
...
Co-authored-by: Kamil Jarosz <kjarosh256@gmail.com>
2024-06-18 13:59:57 -04:00
dependabot[bot]
c8fdc59bfc
build(deps-dev): bump the npm-minor group in /web with 3 updates
...
Bumps the npm-minor group in /web with 3 updates: [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin ), [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser ) and [@types/firefox-webext-browser](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/firefox-webext-browser ).
Updates `@typescript-eslint/eslint-plugin` from 7.13.0 to 7.13.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases )
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md )
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.13.1/packages/eslint-plugin )
Updates `@typescript-eslint/parser` from 7.13.0 to 7.13.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases )
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md )
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.13.1/packages/parser )
Updates `@types/firefox-webext-browser` from 120.0.3 to 120.0.4
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/firefox-webext-browser )
---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm-minor
- dependency-name: "@typescript-eslint/parser"
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm-minor
- dependency-name: "@types/firefox-webext-browser"
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-06-17 23:43:26 +02:00
dependabot[bot]
0cb9e8003a
build(deps): bump chromedriver from 125.0.3 to 126.0.1 in /web
...
Bumps [chromedriver](https://github.com/giggio/node-chromedriver ) from 125.0.3 to 126.0.1.
- [Commits](https://github.com/giggio/node-chromedriver/compare/125.0.3...126.0.1 )
---
updated-dependencies:
- dependency-name: chromedriver
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-06-17 19:07:47 +02:00
dependabot[bot]
6d9e1e7d20
build(deps-dev): bump the npm-minor group in /web with 5 updates
...
Bumps the npm-minor group in /web with 5 updates:
| Package | From | To |
| --- | --- | --- |
| [prettier](https://github.com/prettier/prettier ) | `3.3.1` | `3.3.2` |
| [webpack](https://github.com/webpack/webpack ) | `5.91.0` | `5.92.0` |
| [tsx](https://github.com/privatenumber/tsx ) | `4.14.0` | `4.15.6` |
| [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc ) | `48.2.9` | `48.2.12` |
| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite ) | `5.2.13` | `5.3.1` |
Updates `prettier` from 3.3.1 to 3.3.2
- [Release notes](https://github.com/prettier/prettier/releases )
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md )
- [Commits](https://github.com/prettier/prettier/compare/3.3.1...3.3.2 )
Updates `webpack` from 5.91.0 to 5.92.0
- [Release notes](https://github.com/webpack/webpack/releases )
- [Commits](https://github.com/webpack/webpack/compare/v5.91.0...v5.92.0 )
Updates `tsx` from 4.14.0 to 4.15.6
- [Release notes](https://github.com/privatenumber/tsx/releases )
- [Changelog](https://github.com/privatenumber/tsx/blob/master/release.config.cjs )
- [Commits](https://github.com/privatenumber/tsx/compare/v4.14.0...v4.15.6 )
Updates `eslint-plugin-jsdoc` from 48.2.9 to 48.2.12
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases )
- [Changelog](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/.releaserc )
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v48.2.9...v48.2.12 )
Updates `vite` from 5.2.13 to 5.3.1
- [Release notes](https://github.com/vitejs/vite/releases )
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md )
- [Commits](https://github.com/vitejs/vite/commits/v5.3.1/packages/vite )
---
updated-dependencies:
- dependency-name: prettier
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm-minor
- dependency-name: webpack
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm-minor
- dependency-name: tsx
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm-minor
- dependency-name: eslint-plugin-jsdoc
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm-minor
- dependency-name: vite
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-06-17 18:55:14 +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
ff322eb19a
avm2: Test more namespace related properties/methods in XMLNode
...
We skip the weird xml: namespace special case for now.
2024-06-15 22:26:57 +02:00
Tom Schuster
4463a69c87
avm2: Implement namespace support for flash.xml
2024-06-15 22:26:57 +02:00
David Wendt
404081876c
swf: Bump version to 0.2.1 in preparation for new package publication
2024-06-15 07:49:59 +02:00
Kamil Jarosz
30cc299ed6
wgpu: Prevent random crashes on desktop by handling SurfaceErrors properly
...
This patch adds proper handling for SurfaceErrors that may happen
when calling get_current_texture(), instead of always panicking.
This fixes random crashes, e.g. when the GPU took too long to
render a frame, or when the surface has unexpectedly changed.
2024-06-14 23:55:50 +02:00
Crowdin Bot
8fb214ea71
chore: Update translations from Crowdin
2024-06-14 22:41:19 +02:00
Daniel Jacobs
22c73e9536
extension: Use nodenext target for tools instead of commonjs
2024-06-13 19:24:46 -04:00
Daniel Jacobs
f4fd851298
extension: Fix zip tool by adding import.meta.url back
2024-06-13 19:24:46 -04:00
Lord-McSweeney
5ce882da9c
tests: Add a test for calling `newclass` twice on the same `Class`
2024-06-13 23:49:52 +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
c3f1a18d20
web: SocketProxy doesn't need serde
2024-06-13 00:22:33 +02:00
Nathan Adams
c9b111996f
web: Make serde (more-)optional in core
2024-06-13 00:22:33 +02:00
Nathan Adams
7eef31046b
render: Make serde optional
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
b7ca9178fd
tests: Add avm1/focus_mouse_rollout test
2024-06-12 23:49:06 +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
Nathan Adams
148fa6bdf1
web: Fixed some remaining references to tools-as-js
2024-06-12 23:33:01 +02:00
Nathan Adams
8c753972ca
web: Replace ts-node with tsx (mostly)
2024-06-12 23:33:01 +02:00
Nathan Adams
9f121947e7
web: Convert extension tools to typescript
2024-06-12 23:33:01 +02:00
Nathan Adams
d5788d0f88
web: Convert core/tools to typescript
2024-06-12 23:33:01 +02:00
Daniel Jacobs
a071b9ea3f
extension: Don't use scripting API for plugin polyfill where unsupported
2024-06-12 23:15:39 +02:00