Commit Graph

915 Commits

Author SHA1 Message Date
renovate[bot] 8d193f8944 fix(deps): update rust crate winit to 0.29.15 2024-03-13 23:07:24 +01:00
Crowdin Bot a60d781fb4 chore: Update translations from Crowdin 2024-03-13 22:44:32 +01:00
Crowdin Bot 1a66916c6c chore: Update translations from Crowdin 2024-03-13 08:06:34 +01:00
Colin Kinloch 787b6f5dfb desktop: Make clipboard support optional
On wayland ruffle only supports `wlr-data-control-unstable-v1` which is
not intended to be supported by all compositors.
2024-03-12 20:32:23 +01:00
TÖRÖK Attila aa834e6530 desktop: Turn off default features of `image` 2024-03-12 00:24:59 +01:00
Nathan Adams eaab481dcc desktop: Default RUST_LOG to warn,ruffle=info,avm_trace=info 2024-03-11 21:28:25 +01:00
Nathan Adams a5fe7e1c81 desktop: Add log filename pattern (e.g. with timestamp) to preferences 2024-03-11 21:28:25 +01:00
Nathan Adams 6585ffdd28 desktop: Log to ruffle.log in addition to stdout 2024-03-11 21:28:25 +01:00
Daniel Williams 4927baf290
desktop: URL-decode the window title (fix #15454) 2024-03-11 16:54:56 +00:00
Crowdin Bot 60d7b14c59 chore: Update translations from Crowdin 2024-03-08 22:19:45 +01:00
Nathan Adams 6971a1aa5e desktop: Persist volume to disk 2024-03-07 20:38:06 +01:00
Nathan Adams e18055d351 desktop: Don't translate opengl, metal etc 2024-03-07 20:38:06 +01:00
Crowdin Bot 6fc7a1beaf chore: Update translations from Crowdin 2024-03-07 11:39:50 +01:00
renovate[bot] a916369f21 fix(deps): update rust dependencies 2024-03-06 21:58:40 +01:00
renovate[bot] 7201efdec1 fix(deps): update rust crate winit to 0.29.14 2024-03-06 16:55:52 +01:00
Kamil Jarosz 3d04971ae4 desktop: Make WinitAsyncExecutor thread-safe and prevent deadlocks
Not thread-safe WinitAsyncExecutor was wrapped with a Mutex, making
any access to the instance exclusive. It was problematic, because
when a task was awoken from within another task, it resulted in
a deadlock, because the mutex was not reentrant.

This patch makes WinitAsyncExecutor thread-safe and changes how tasks
are locked. Specifically, instead of locking all tasks, only
the currently executed task is being locked. This allows waking any
other task from within it.
2024-03-05 23:14:08 +01:00
Crowdin Bot de8f63ec88 chore: Update translations from Crowdin 2024-03-05 22:56:34 +01:00
Tom Schuster 587fdff1ac chore: Update `cpal` to `0.15.3`
This reduces the number of duplicate `nix` versions by one.
2024-03-05 14:24:29 +01:00
Nathan Adams 571f60abff desktop: Document preferences a little 2024-03-05 00:02:27 +01:00
Nathan Adams c713f56ac0 desktop: Allow changing the audio output device 2024-03-05 00:02:27 +01:00
Nathan Adams 09dfa6427e desktop: Allow changing the language in Preferences 2024-03-05 00:02:27 +01:00
Nathan Adams baa0c5c7cd desktop: Use custom (de)serialization for preferences, not serde 2024-03-05 00:02:27 +01:00
Nathan Adams ed56c70b55 desktop: Only show possibly-available backends for the current system 2024-03-05 00:02:27 +01:00
Nathan Adams d62963c2d4 desktop: Rename config.rs to preferences.rs 2024-03-05 00:02:27 +01:00
Nathan Adams 8b589a9620 desktop: If the preferred graphics backend is unavailable, pick another one and warn 2024-03-05 00:02:27 +01:00
Nathan Adams b9c6db1cb9 desktop: Add preferences dialog, allow setting of graphics backend/power 2024-03-05 00:02:27 +01:00
Nathan Adams 8df7efb662 desktop: Load graphics preferences from disk 2024-03-05 00:02:27 +01:00
Nathan Adams acd01e2eb0 desktop: Add GlobalPreferences struct, prep for storing preferences to disk 2024-03-05 00:02:27 +01:00
Nathan Adams 6136d14179 desktop: Add --save-directory 2024-03-05 00:02:27 +01:00
Nathan Adams 145275af86 desktop: Remove backwards compatibility code from 3 years ago 2024-03-05 00:02:27 +01:00
renovate[bot] fae1c458ec fix(deps): update rust dependencies 2024-03-04 22:18:19 +01:00
TÖRÖK Attila 755fa6cded chore: Switch `fluent-templates` back from `master` to `v0.9.0` 2024-03-04 11:05:08 +01:00
TÖRÖK Attila 9e8c406cd9 desktop: Introduce a `TaskKey` type for the slotmap in `executor.rs` 2024-03-03 21:18:39 +01:00
TÖRÖK Attila 5b920b8447 chore: Deduplicate the `fluent-templates` dependency 2024-03-02 19:54:00 +01:00
TÖRÖK Attila 55773f0205 chore: Replace `generational-arena` with `slotmap` 2024-03-02 19:42:11 +01:00
renovate[bot] 90bf13ebd2 fix(deps): update rust crate winit to 0.29.13 2024-03-02 19:17:37 +01:00
Kamil Jarosz a0f2941a2e desktop: Update winit to 0.29.12
This fixes critical crashes on X11
2024-03-01 12:10:37 +01:00
Crowdin Bot 4e87d34068 chore: Update translations from Crowdin 2024-03-01 11:15:11 +01:00
Tom Schuster a03355458f desktop: Add gamepad support using gilrs 2024-02-28 21:21:09 +01:00
Kamil Jarosz 9bc6700531 desktop: Get rid of busy waiting in connect_socket
This patch makes connect_socket await on recv
instead of spin and wake the CPU each 10 milliseconds.
2024-02-28 19:42:54 +01:00
Kamil Jarosz f5d52272ca desktop: Flush pending data before socket closes
This patch makes sure that any pending data is sent before
the socket closes. Without this fix Ruffle ignored the data sent
right before calling socket.close.
2024-02-28 19:42:54 +01:00
Kamil Jarosz f6907a5c73 desktop: Add tests for connect_socket
Add tests for ExternalNavigatorBackend::connect_socket.
2024-02-28 19:42:54 +01:00
Kamil Jarosz 2535b926a7 desktop: Add WinitFutureSpawner
This improves testability, decouples ExternalNavigatorBackend
from the event loop, and improves readability.

Instead of passing a channel to send the future to and an event loop
to poll, a WinitFutureSpawner is created which performs the
action of spawning a future and polling the event loop.
2024-02-28 19:42:54 +01:00
Kamil Jarosz cc8b0aa5dd core: Use async channels in NavigatorBackend
This has several advantages:
1. it allows using async variants of send and recv,
2. it adds consistency as until now Receiver was async,
   and Sender was not.
2024-02-28 19:42:54 +01:00
TÖRÖK Attila e56a4597cc desktop: chore: Update winit to 0.29.11 2024-02-27 22:43:59 +01:00
renovate[bot] 9cdb2f31cc fix(deps): update rust dependencies 2024-02-26 08:14:26 +01:00
TÖRÖK Attila d2e854fb73 nit: desktop/navigator: Fix a typo in a comment: ownerhsip -> ownership 2024-02-22 21:14:41 +01:00
Kamil Jarosz 98c0dc4616 desktop: Prevent resource leak on reload
This patch makes TaskHandle reference the executor by a weak reference.
Prior to this change, there was a possibility of a resource leak, where
the executor, its tasks, and resources held by them were not properly
dropped due to existing references to the executor.

This manifested by e.g. unclosed sockets after reload, which required
the whole program to be restarted in order to be closed properly.
2024-02-21 21:45:01 -05:00
renovate[bot] 6b89737093 fix(deps): update rust dependencies 2024-02-19 11:32:22 +01:00
renovate[bot] 1651b7a5b0 desktop: chore: Update `egui` to 0.26.2 2024-02-16 01:52:41 +01:00
Crowdin Bot 45c5d8f10c chore: Update translations from Crowdin 2024-02-12 00:25:24 +01:00
Crowdin Bot 5c6930d72e chore: Update translations from Crowdin 2024-02-09 17:56:24 +01:00
TÖRÖK Attila 28c380cfac desktop: Update egui to 0.26.0 2024-02-05 19:05:10 +01:00
Kamil Jarosz 50b5f29c0a text: Make enter add a new line in multiline fields 2024-02-03 13:40:07 +01:00
Kamil Jarosz 0657d2daa2 text: Add advanced horizontal text control codes 2024-02-01 20:18:29 +01:00
Crowdin Bot f64688f138 chore: Update translations from Crowdin 2024-01-30 23:55:48 +01:00
renovate[bot] 3737725a21 fix(deps): update rust dependencies 2024-01-30 09:23:15 +01:00
Nathan Adams e778e5ed58 desktop: Fix context menu, use new approach rather than trying to hack activate egui's menu 2024-01-27 09:44:31 +01:00
Crowdin Bot 4769a45999 chore: Update translations from Crowdin 2024-01-26 22:54:04 +01:00
arthomnix 3e82ba9a63 desktop: Allow specifying WGPU instance flags from environment 2024-01-26 22:33:18 +01:00
David Wendt 006c3af4b8 core: Add backend method for getting the expected length of a response. 2024-01-25 23:24:09 -07:00
David Wendt 91dd9563bb core: Add method to read downloads in chunks instead of all-at-once. 2024-01-25 23:24:09 -07:00
David Wendt 06eb2e1ee8 core: `Request` is now a trait. Body download is deferred to a second async method. 2024-01-25 23:24:09 -07:00
Crowdin Bot 917c1c08f7 chore: Update translations from Crowdin 2024-01-25 00:49:31 +01:00
Crowdin Bot a916f6e7a2 chore: Update translations from Crowdin 2024-01-23 23:01:01 +01:00
Crowdin Bot 430463ecd3 chore: Update translations from Crowdin 2024-01-23 12:38:25 +01:00
Aaron Hill dbcefd060f debug_ui: Add 'Show Domains' menu to view domains and classes
This opens a searchable list (similar to what we have for display
objects), which shows a tree of Domains and their associated classes.

Currently, clicking on the domain/class buttons doesn't do anything.
In a follow-up, I'm planning to add additional windows to display
information about a class.
2024-01-23 11:34:14 +01:00
renovate[bot] 262dff83a4 fix(deps): update rust dependencies 2024-01-22 03:09:33 +01:00
Nathan Adams 4d16e24889 wgpu: Update wgpu and naga to 0.19 2024-01-21 19:36:08 +01:00
Isao Mishima d7df55fd7b
desktop: Change the default Japanese fonts (#14877) 2024-01-21 15:21:48 +01:00
Tom Schuster e0f5b8906d desktop: Support device font with a non-zero index 2024-01-19 19:21:48 +01:00
Kamil Jarosz d89ab3dc83 desktop: Fix doubling inputted characters
Fix a bug introduced by f65060e8.
The text input event was triggered two times: at key press and release.
This patch makes sure that text input is triggered only on key press.
2024-01-18 00:21:19 +01:00
TÖRÖK Attila d153290fd6 nits: Fix a whole bunch of typos all over the place 2024-01-17 23:59:19 +01:00
Daniel Jacobs 8f2292c2c7 core: Add error for loading invalid SWF files and display as appropriate 2024-01-17 17:38:47 -05:00
Nathan Adams f65060e8c9 desktop: Update winit to 0.29.10 and egui to 0.25.0 2024-01-16 21:10:36 +01:00
renovate[bot] 3c115238fd fix(deps): update rust dependencies 2024-01-16 01:13:38 +01:00
Crowdin Bot 3f17d1c778 chore: Update translations from Crowdin 2024-01-16 00:48:30 +01:00
TÖRÖK Attila 078b264c19 desktop: Support F13..F24 keys 2024-01-11 22:40:37 +01:00
Nathan Adams d89e4536b3 core: Support Japanese font defaults 2024-01-10 23:15:26 +01:00
Crowdin Bot 6e1e26e0e8 chore: Update translations from Crowdin 2024-01-08 23:28:34 +01:00
Tom Schuster 4db87a9643 desktop: define default fonts 2024-01-08 23:00:18 +01:00
Tom Schuster 2a2bcbbfbc desktop: Load device fonts from system 2024-01-08 23:00:18 +01:00
renovate[bot] a328deab11 fix(deps): update rust dependencies 2024-01-08 02:59:04 +01:00
Crowdin Bot 1325181a59 chore: Update translations from Crowdin 2024-01-06 09:30:28 +01:00
TÖRÖK Attila 217585daa8 chore: Delegate `[lints]` in `Cargo.toml` of all packages to the workspace 2024-01-05 11:28:19 +01:00
renovate[bot] 91d0520a43 fix(deps): update rust dependencies 2024-01-01 02:03:54 +01:00
renovate[bot] 216a8f3b14 fix(deps): update rust dependencies 2023-12-25 10:09:07 +01:00
Crowdin Bot 9523022cdd chore: Update translations from Crowdin 2023-12-23 13:26:37 +01:00
TÖRÖK Attila f9aa6dbea4 chore: Fix a beta clippy lint: `clippy::blocks_in_conditions` 2023-12-23 13:06:47 +01:00
Tom Schuster e3d8a279ad core: load_device_font register function must be &mut 2023-12-22 13:47:48 +01:00
Crowdin Bot ba6ba842d7 chore: Update translations from Crowdin 2023-12-18 23:28:34 +01:00
renovate[bot] 0e5ef32654 fix(deps): update rust dependencies 2023-12-18 08:16:28 +01:00
nosamu 989988631f desktop: Fix egui scaling
Fixes #14413
2023-12-17 22:14:14 -08:00
Aaron Hill 287ca8801a avm2: Implement AIR playerglobal versioning
This builds on our existing playerglobal versioning support
to add in AIR versioning. We closely follow the avmplus implementation:

* When an SWF is loaded, we chose either a FlashPlayer or AIR
APIVersion for its SWF version, based on our configured player runtime.
* When loading playerglobals, we look at the player runtime. In AIR
  mode, we map FlashPlayer-versioned definitions to the closest AIR
  version. This ensures that all runtime APIVersions are in the
  same series (either AIR or FlashPlayer). In FlashPlayer mode,
  all AIR-versioned definitions get mapped to VM_INTERNAL, hiding
  them from user code.

Part of our existing api versioning code was implemented incorrectly.
Within playerglobals, we need to treat all unmarked namespaces as
VM_INTERNAL - this allows things like playerglobal script
initializer "initproperty" opcodes to see any VM_INTERNAL AIR
definitions (when we run under FlashPlayer mode). Previously, we
were using AllVersions, which would result in those VM_INTERNAL
definitions being hidden from other playerglobal code, which is
not correct.

Using this support, I've added a stub for the AIR-only
'flash.net.DatagramSocket'. I've also extended the test framework
with a new 'player_options.runtime' config option, which can be
set to "AIR" or "FlashPlayer" to configure the test runtime mode.

I've also added two new tests:
* 'air_hidden_lookup' runs under the FlashPlayer runtime, and verifies
  that a list of classes (currently just "DatagramSocket" are
  inacessible).
* 'air_datagram_socket', which uses `player_options.runtime = "AIR"`
  to construct an instance of `flash.net.DatagramSocket`. We can
  extend this test once we implement more of `DatagramSocket`

With this commit, we have all of the needed infrastructure to start
implementing and testing AIR-only classes and methods.
2023-12-16 19:11:50 -05:00
TÖRÖK Attila bf9cf92af8 render/wgpu: Update wgpu to 0.18.0, naga to 0.14.1, naga_oil to 0.11.0, egui to 0.24.1 2023-12-14 01:36:42 +01:00
Tom Schuster 0fad4c23d2 desktop: Also spoof top.location.href 2023-12-13 20:10:39 +01:00
Crowdin Bot 9a02ca76ff chore: Update translations from Crowdin 2023-12-12 19:08:09 +01:00
bi4k8 4d07e43bc4
desktop: Add "wayland-data-control" feature for arboard
This fixes a crash on start when running under Wayland.
2023-12-11 10:08:15 +00:00
renovate[bot] 40b92e69f7 fix(deps): update rust dependencies 2023-12-05 21:08:16 +01:00
Crowdin Bot 9477856079 chore: Update translations from Crowdin 2023-12-02 23:25:09 +01:00