Commit Graph

179 Commits

Author SHA1 Message Date
Mike Welsh da2dd3b36c core: Implement sound transforms and Sound.setPan 2021-01-27 15:25:04 -08:00
Mike Welsh 34f60b127a core: Add AudioManager to handle actively playing sounds
Add an AudioManager struct to handle this list of actively playing
sounds. This will maintain information for each sound instance,
such as the owning display object, AVM1 object, etc.

This will allow us to implement the awkward AVM1 Sound API in a
fairly backend-agnostic way.
2021-01-27 15:25:04 -08:00
Mads Marquart 4c3783b6ff desktop: Also use flashvars parameters when running local files 2021-01-26 16:27:20 -08:00
Mads Marquart ad137a2377 desktop: Change Windows Subsystem to not launch unnecessary console
Basically just copied from what alacritty is doing:
530de00049/alacritty/src/main.rs

There are two functional changes:
- When launching normally, you no longer see a console window quickly flashing
- When launching via. console, the program is detached (but still logs to the console)
2021-01-25 01:31:14 -08:00
Mike Welsh da1e2801a2 chore: Appease clippy 2021-01-18 21:23:50 -08:00
Toad06 7480e836ec web: Changes from review 2021-01-11 13:16:00 -08:00
MrCheeze c2470d39fc desktop: Increase window maximum size to 32767x32767
By default, winit limits the window size to the screen resolution.
Since some flashes are larger than this, increase the limit to an
arbitrarily-chosen larger constant.
2021-01-10 15:11:34 -08:00
MrCheeze 054db37ba0 desktop: Fix rendering when window is has unexpected size (close #1631)
Winit's WindowBuilder will sometimes create a window whose size is
smaller than requested. Therefore, instead of assuming the actual
window size is requested size * scaling, just check what the true
size is. (window.inner_size() also takes scaling into account.)

This fixes at least one issue where rendering would fail on Windows
with the Vulkan backend due to the incorrect size being used.
2021-01-10 15:11:34 -08:00
relrelb 55f348f014 desktop: Prevent entering/exiting fullscreen repeatedly 2021-01-08 11:59:08 -08:00
relrelb b2867aa3b9 desktop: Add fullscreen exit keyboard shortcut
Flash Player also exits fullscreen when escape is pressed.
2021-01-08 11:59:08 -08:00
relrelb 030ff398ef desktop: Handle fullscreen keyboard shortcut in its own case 2021-01-08 11:59:08 -08:00
Mike Welsh cb9bdcdfdb desktop: Hook up DesktopUiBackend::is_fullscreen 2021-01-07 12:49:36 -08:00
relrelb 6270156c74 desktop: Change fullscreen shortcut to Alt+Enter
And also remove the Escape shortcut because it might interfere with
games.
2021-01-07 12:49:36 -08:00
relrelb abe608fd4d desktop: Add fullscreen keyboard shortcut 2021-01-07 12:49:36 -08:00
Mike Welsh 01aca9f861 web: Remove upgrade_to_https param from Ruffle::new
Grab it from the `config` directly instead of using an extra param.
2021-01-07 11:46:07 -08:00
Mike Welsh e9da6a13f0 core: Add letterbox setting
Player::set_letterbox can be used to control the letterbox behavior.
 * Letterbox::Off => no letterbox (flash behavior)
 * Letterbox::Fullscreen => letterbox only in fullscreen (web default)
 * Letterbox::On => always letterbox (desktop default)
2021-01-07 11:46:07 -08:00
dependabot-preview[bot] 54367aafa0 build(deps): bump isahc from 0.9.14 to 1.0.2
Bumps [isahc](https://github.com/sagebind/isahc) from 0.9.14 to 1.0.2.
- [Release notes](https://github.com/sagebind/isahc/releases)
- [Commits](https://github.com/sagebind/isahc/compare/0.9.14...1.0.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-01-03 00:26:19 -08:00
Mike Welsh 94cb6e1680 desktop: Avoid panic on fetching invalid URLs 2020-12-31 16:36:02 -08:00
Mike Welsh 6aafb46b49 desktop: Don't render while minimized
On desktop, don't render while the window is minimized.

In the wgpu backend, don't panic if swap chain fails to grab a
texture. Instead recreate the swap chain and bail on the current
frame.

Fixes panic when minimizing with the wgpu vulkan backend (#2065).
2020-12-28 16:00:13 -08:00
Mike Welsh 8222d3095b desktop: Add --timedemo benchmark
Add --timedemo for benchmarking, which will run the given SWF as
quickly as possible for 5000 frames or the end of the root
timeline, whichever comes first. The total duration will be output
upon completion.
2020-12-26 23:59:12 -08:00
Sam Morrow 38bdb8b39a web/desktop: Add basic dialog handling (closes #1978) 2020-12-23 19:08:18 -08:00
Mike Welsh 367404ddd8 core: SharedObjects are bucketed by domain
Key SharedObjects on the domain and path where the SWF is hosted,
and implement the localPath and secure parameters.

Fix #855.
2020-12-22 14:18:06 -08:00
Sam Morrow c4d7b24629 web: Fix cors issues with http (close ruffle-rs#1486) 2020-12-14 05:51:28 -08:00
Sam Morrow d5e597052e desktop: Add file dialogs to Ruffle if no FILE argv V2 (close #1774)
Introduce file dialogs if no FILE argv is passed.
Use altered version of due to https://github.com/jdm/tinyfiledialogs-rs/issues/19
2020-12-04 13:04:43 -08:00
Mike Welsh b7d28e5e7e chore: Remove unnecessary debug output 2020-11-29 02:33:09 -08:00
Mike Welsh dafe7e5027 avm1: Implement Key.getAscii 2020-11-29 02:31:10 -08:00
Nathan Adams eca4ba0313 desktop: Potentially fixed panic when windows can't make a path absolute 2020-11-26 14:04:18 -08:00
Mike Welsh 2939339330 desktop: Workaround bug in generational-arena 2020-10-25 20:41:20 -07:00
Colin Berry 5a93c7ffa0 desktop: Follow Redirects 2020-10-20 23:31:23 -07:00
Colin Berry 67d9b91448 desktop: Make Proxy behave during initial load 2020-10-20 23:31:23 -07:00
Colin Berry c51a31fde8 desktop: Support URL paths and Proxy options 2020-10-20 23:31:23 -07:00
Mike Welsh 8ee09ffc0c desktop: Switch task to ready state on wake 2020-10-20 23:18:42 -07:00
Nathan Adams 3f46567fc1 render: Remove PowerPreference::Default as it's no longer in wgpu 2020-10-14 13:59:25 -07:00
Nathan Adams a2593b0d52 desktop: Expose wgpu tracing through a `render_trace` feature and `--trace-path` argument 2020-10-14 13:59:25 -07:00
Nathan Adams 5862e7ba6b desktop: Add -Pkey=value for adding flashvars/properties 2020-10-12 15:28:16 -07:00
Nathan Adams 536352a0d3 render: Move wgpu options out from desktop and into wgpu render crate 2020-10-10 13:43:18 -07:00
Mike Welsh b41ea6e2fc chore: Switch from sample to dasp crate
sample renamed into dasp. Switch to this crate and also use the
latest git revision, which fixed some compiler errors on nightly.

Also remove unnecessary sample dependency in exporter Cargo.toml.
2020-10-07 23:19:41 -07:00
Mike Welsh a81f050e14 chore: Bump to winit 0.23 2020-10-04 13:04:27 -07:00
Sean-Thomas 5701312527 desktop: Implement play/pause for CPAL backend
- removed default implementations for `play()` and `pause()` methods for AudioBackend trait
- Implemented `play()` and `pause()` methods for CPAL audio backend
- Implemented empty block for `play()` and `pause()` methods for NULL audio backend
2020-09-29 11:05:23 -07:00
Mike Welsh ead845ff33 chore: Appease clippy 2020-09-26 18:19:37 -07:00
Nathan Adams de009c7673 core: Add Log backend, for capturing trace output specific to a movie 2020-09-13 13:51:39 -07:00
Nathan Adams 0b5713557b desktop: Implement LocaleBackend for desktop 2020-09-02 17:12:31 -07:00
Nathan Adams 86eb6f2e50 avm1: Implement Date - #249 2020-09-02 17:12:31 -07:00
Nathan Adams 932cb750ba desktop: Add help documentation to command line arguments 2020-09-02 12:06:25 -07:00
Nathan Adams 7273c85034 desktop: Add --power (or -p) option for choosing a graphics power preference (high for dedicated gpu, low for integrated, default for situational best) 2020-09-02 12:06:25 -07:00
Nathan Adams 3e09767c7a desktop: Add --graphics (or -g) option for choosing a graphics backend (vulkan/metal/dx12/dx11 right now) 2020-09-02 12:06:25 -07:00
Nathan Adams cb2461920b core: HTTP request values need to preserve order 2020-08-28 11:53:32 -07:00
Mike Welsh 3d17efd941 desktop: Wire up mouse wheel events 2020-08-23 13:38:59 -07:00
Mike Welsh 227ad0dc0a desktop: Fix #1025, invalid audio stream config on ALSA
When using ALSA, cpal was returning bogus sample rates from
`Device::supported_output_configs`, causing the audio stream to
fail to initialize.

Use `Device::default_output_config` instead.
2020-08-21 13:39:42 -07:00
Mike Welsh 88b3d35e27 chore: Fix ambiguous call in audio
Nightly was complaining because `array.map` may be added in future
Rust versions.
2020-08-14 14:25:02 -07:00