=
b7dcd26c38
core: Use Cow<str> for FullscreenError in UI backend, as it can't ever be anything else
2022-08-25 23:43:21 +02:00
=
726217c6c2
desktop: Use anyhow to replace generic errors with more meaningful ones
2022-08-25 23:43:21 +02:00
=
30e7d23cc0
desktop: Use anyhow errors for desktop audio errors
2022-08-25 23:43:21 +02:00
=
5b5ee7d448
core: Made audio backend use actual real error enums, and not box<error>
2022-08-25 23:43:21 +02:00
Aaron Hill
98c7f443ce
core: Only store viewport dimensions in `RenderBackend`
...
Previously, the viewport height and width were stored in
both `Stage` and the `RenderBackend`. Any changes to the viewport
dimensions (e.g. due to window resizing) needed to be updated in both
places to keep our handling of the viewport consistent.
This PR adds a new `ViewportDimensions` type, which holds the
width, height, and scale factor. It is stored inside the
`RenderBackend` impl, and is retrieved using the newly added
method `RenderBackend.get_viewport_dimensions`. After a `Player`
has been constructed, any code that needes access to the viewport
dimensions will ultimate go through this method.
Unfortunately, `Stage` needs to use the viewport dimensions
in `build_matrices`. Therefore, any code modifying the viewport
dimensions should go through `player.set_viewport_dimensions`,
which ensures that the stage matrices are rebuilt after the render
backend is updated.
2022-08-22 13:44:30 -07:00
relrelb
e42a6b62e6
core: Require `target` in `NavigatorBackend::navigate_to_url`
...
Make the `target` parameter just a `String` instead of an `Option<String>`.
`None` is not needed as it's totally equivalent to an empty string.
2022-08-06 11:20:03 +03:00
relrelb
afd24cad12
desktop: Tiny cleanup
2022-07-09 11:06:39 +03:00
relrelb
f643048c1c
core: Introduce `Request`
...
Which holds both a URL and what was `RequestOptions` formerly.
2022-07-09 09:43:42 +03:00
relrelb
4978158638
chore: Resolve `clap` deprecation warnings
...
As suggested in https://github.com/clap-rs/clap/blob/master/CHANGELOG.md#320---2022-06-13 .
2022-06-17 07:58:21 +03:00
relrelb
102fc46ca2
desktop: Fetch root movie asynchronously
...
Use `Player::fetch_root_movie` for loading the root movie, as an
early preparation for chunked loading.
2022-06-06 21:02:09 +03:00
relrelb
0097a75703
desktop: Organize UI event loop
...
Run (almost) all event handlers regardless of whether a movie is loaded
or not. This will be useful for rendering a blank screen before a
movie has been loaded.
2022-06-06 21:02:09 +03:00
Robert Setter
6114f14fe0
Updating the verbiage for the AS3 warnings to try and reduce the number of support questions about it. ( #7106 )
...
* Updating AS3 warning verbiage.
* Updating AS3 verbiage
* Increase root font size
* Refining font size.
* correcting font size in .message
2022-05-29 15:08:46 +03:00
Mike Welsh
32bf7e1412
chore: Appease clippy
2022-05-22 02:34:18 -07:00
bbb651
cf820b4f95
desktop: Add fullscreen command line option
2022-05-20 19:51:22 -07:00
relrelb
87ce0f56b7
core: Remove `NavigatorBackend::resolve_relative_url`
...
The resolved URL only used by `NavigatorBackend::fetch`. So simply
inline `NavigatorBackend::resolve_relative_url` into `NavigatorBackend::fetch`,
per implementation.
2022-05-07 09:06:53 -07:00
relrelb
ea665d91f2
core: Introduce and use `Response::url`
2022-05-07 09:06:53 -07:00
relrelb
2517d8de4b
core: Introduce struct `Response`
...
Currently it's a trivial wrapper around `Vec<u8>`, but more fields
will be added in the future (e.g. response URL, HTTP status code).
2022-05-07 09:06:53 -07:00
Mike Welsh
1eb06908c8
core: Make PlayerBuilder::build infallible
2022-04-29 09:14:32 -07:00
Mike Welsh
f48182ef3d
core: Add various settings to PlayerBuilder
2022-04-29 09:14:32 -07:00
Mike Welsh
e1e2b1008a
core: Add PlayerBuilder
2022-04-29 09:14:32 -07:00
relrelb
86da42459c
desktop: Use `Arc::new_cyclic`
...
It became stable on Rust 1.60.0.
2022-04-29 09:11:58 -07:00
relrelb
66492441f1
desktop: De-duplicate file reading code
...
Unify the sandboxed and non-sandboxed cases.
2022-04-08 16:51:59 -07:00
relrelb
7497fb7008
core: Change `Player::set_root_movie` to accept a `SwfMovie`
...
Move the `Arc::new` to within the function.
2022-04-08 15:16:25 -07:00
David Wendt
c664f0b9ba
desktop: Add a `sandbox` feature that opens a native file picker to request access to movie subresources.
...
We notify the user with a message box first to explain why we need them to pick a file.
2022-03-30 11:37:25 -07:00
relrelb
ad944800be
core: Perfer `Loader`'s `FetchError`
...
`NetworkError` and `NetworkUnavailable` were rarely used, and they
were very similar to `FetchError`.
2022-03-17 20:31:59 -07:00
relrelb
8a17d88c77
core: Remove `NavigatorBackend::time_since_launch`
...
`core` already depends on the `instant` crate which abstracts
`std::instant::Instant` and polyfills it on Web. Use it to replace
`NavigatorBackend::time_since_launch` in order to make `NavigatorBackend`
a little smaller and more simple.
2022-03-17 00:08:44 +02:00
relrelb
031126a1b8
core: Remove `LocaleBackend`
...
Previously there were 3 implementations of `LocaleBackend`:
`DesktopLocaleBackend`, `WebLocaleBackend` and `NullLocaleBackend`.
While `DesktopLocaleBackend`, `WebLocaleBackend` were identical,
`NullLocaleBackend` always returned a fixed date/time for tests
determinism.
Unify them in a single file, and use `cfg!(test)` and a new dedicated
`deterministic` feature to decide whether to mock date/time or not.
This should not cause any behavioral changes.
2022-03-16 19:57:53 +02:00
relrelb
5da7149aaf
desktop: Access `App` fields directly
...
I think older Rust versions couldn't handle this, but I may be wrong.
Anyway, now it works and is more straight-forward.
2022-03-16 18:49:59 +02:00
relrelb
32f5cd22a4
desktop: Split `movie` and `movie_url`
...
This makes the code a little more readble.
2022-03-14 21:59:16 +02:00
relrelb
83287e4d48
desktop: Store only `bool` instead of `SwfMovie`
...
Because it was only used as such.
2022-03-14 21:59:16 +02:00
relrelb
a3f858c510
desktop: Turn `load_from_file_dialog` into `pick_file`
...
This deduplicates some code (the calls to `parse_url` and `load_movie`),
plus makes the path choosing flow more linear.
2022-03-14 21:59:16 +02:00
relrelb
d22186c088
desktop: Extract `parse_url` from `load_movie_from_path`
...
And change `load_movie_from_path` to `load_movie`.
2022-03-14 21:59:16 +02:00
relrelb
8ad8122b68
desktop: Change return type of `App::run` to `!`
...
The never type is already stable for function return types.
2022-03-14 21:59:16 +02:00
relrelb
7a591b885c
desktop: Remove `loop` from `App::run`
...
`winit::event_loop::EventLoop::run` never returns, so there's no
point calling it over and over again.
2022-03-14 21:59:16 +02:00
Chris Midgley
453b0f1fe3
desktop: swap out tinyfiledialogs for rfd
2022-02-23 22:45:26 +02:00
Mike Welsh
d5986a7294
desktop: Don't swallow Escape key ( fix #6135 )
2022-01-25 00:22:28 -08:00
relrelb
82b4c6ef27
core: Support mouse buttons in `KeyCode`
...
Add `MouseLeft`, `MouseRight` and `MouseMiddle` to `KeyCode` for
AVM1's `Key.isDown()` function.
2022-01-10 01:18:49 -08:00
relrelb
6396c21bc0
core: Rename `PlayerEvent::MouseLeft` to `MouseLeave`
...
So it's not consfusing with `KeyCode::MouseLeft`.
2022-01-10 01:18:49 -08:00
relrelb
07c5330456
core: Introduce `InputManager`
...
`InputManager` encapsulates the common logic that previously the
`UiBackend`s used to implement.
2021-12-15 14:20:30 -08:00
relrelb
0e3168f99e
desktop: Small event-related cleanups
...
* Use `match state` for `MouseInput` events.
* Remove `ReceivedCharacter` handling from `DesktopUiBackend::handle_event`.
2021-11-25 07:35:33 +02:00
relrelb
cbce91365c
desktop: Track `keys_down` by `KeyCode`
...
This makes `DesktopUiBackend::is_key_down` a simple one-line check.
Also unify the handling code of `ElementState::Pressed` and `ElementState::Released`,
which had a lot of common code.
2021-11-25 07:35:33 +02:00
Tal Hayon
7ed38850fd
core: implement displayState for Stage in avm1/2
2021-11-11 16:20:05 -07:00
Adrian Wielgosik
8cc00f32bb
chore: Stop using traits available in prelude
2021-10-21 10:24:05 -07:00
dependabot[bot]
40aeffb91d
build(deps): bump clap from 3.0.0-beta.4 to 3.0.0-beta.5
...
Bumps [clap](https://github.com/clap-rs/clap ) from 3.0.0-beta.4 to 3.0.0-beta.5.
- [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/commits )
---
updated-dependencies:
- dependency-name: clap
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2021-10-18 14:50:19 -07:00
Chris Midgley
b0e3698c44
desktop: correct error when passing an invalid absolute windows filepath
2021-10-09 11:26:45 -07:00
relrelb
3aeffce365
desktop: Refactor clap settings
...
* Fix #5252 by passing `multiple_occurrences = true`.
* Remove `case_insensitive = true`.
* Reformat comments a bit.
2021-09-08 16:04:09 -07:00
Mike Welsh
94d02fa653
core: Add AudioMixer to core
...
Pull out the audio mixing code from desktop and add it to core.
This will allow other backends to use it (such as the web audio
backend) to get consistent audio across all platforms.
2021-09-07 16:48:34 -07:00
Tal Hayon
4625ca0e0b
web: fix base param
2021-09-07 16:45:35 -07:00
David Wendt
116fb1f323
avm2: Impl `Sound.play`
...
This does not (yet) implement the third `SoundTransform` parameter on `play`.
2021-09-03 16:47:02 -06:00
David Wendt
3b6eea2a1d
core: Report sound duration as `f64` and round down in AS1
2021-09-03 16:47:02 -06:00