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.
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)
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.
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.
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)
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).
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.
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.
- 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
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.