Commit Graph

2928 Commits

Author SHA1 Message Date
David Wendt a70e1be466 Add code to instantiate AVM2 movie clips correctly.
This also includes several bits to build an effective VM barrier.
2020-10-06 06:03:22 -07:00
David Wendt 247e79e61a core: Track the VM each movie has pledged to execute on.
This uses a "VM tendency" system wherein the presence of `DoAction` or `DoInitAction` tags defaults the movie to AVM1, while the presence of `DoABC` defaults to AVM2. The presence of a `FileAttributes` tag allows setting the VM tendency in the same manner using it's AS3 bit.

Particularly malformed SWFs may cause execution issues if Flash Player uses a dramatically different system from this.
2020-10-06 06:03:22 -07:00
David Wendt 3128bbcda6 core: Implement `SymbolClass` tag. 2020-10-06 06:03:22 -07:00
David Wendt edd31c4b83 core: Allow pulling the AVM2 Object out of a participating movie clip. 2020-10-06 06:03:22 -07:00
David Wendt f85319aa4c core: Allow `DisplayObject` to hold AVM2 objects.
This requires the use of an intermediary enum called `AvmObject` which can hold either object representation. Currently, it's mostly just being unwrapped as AVM1 objects, which we will need to fix.
2020-10-06 06:03:22 -07:00
David Wendt 63f411d231 avm2: Add `StageObject` object implementation for holding display objects in AVM2. 2020-10-06 06:03:22 -07:00
dependabot-preview[bot] 5f6e3ca3d4 build(deps): bump futures from 0.3.5 to 0.3.6
Bumps [futures](https://github.com/rust-lang/futures-rs) from 0.3.5 to 0.3.6.
- [Release notes](https://github.com/rust-lang/futures-rs/releases)
- [Changelog](https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/futures-rs/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-10-05 13:47:58 -07:00
dependabot-preview[bot] 3b98ee4c8e build(deps-dev): bump copy-webpack-plugin from 6.1.1 to 6.2.0 in /web
Bumps [copy-webpack-plugin](https://github.com/webpack-contrib/copy-webpack-plugin) from 6.1.1 to 6.2.0.
- [Release notes](https://github.com/webpack-contrib/copy-webpack-plugin/releases)
- [Changelog](https://github.com/webpack-contrib/copy-webpack-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/copy-webpack-plugin/compare/v6.1.1...v6.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-10-04 13:10:09 -07:00
Mike Welsh a81f050e14 chore: Bump to winit 0.23 2020-10-04 13:04:27 -07:00
David Wendt 3fb186e5c0 avm1: Remove fscommand debug code 2020-10-01 13:53:00 -07:00
David Wendt 1a77874e04 avm1: For good measure, also unload on empty URL in `ActionGetURL`. 2020-10-01 13:53:00 -07:00
David Wendt bb5c367e91 chore: Remove dbg statement in loaders 2020-10-01 13:53:00 -07:00
David Wendt e73cdd7987 avm1: Actually unload movies when we get an empty URL in `GetURL2` and the target is a sprite. 2020-10-01 13:53:00 -07:00
dependabot-preview[bot] 8c53c9116f build(deps): bump flate2 from 1.0.17 to 1.0.18
Bumps [flate2](https://github.com/rust-lang/flate2-rs) from 1.0.17 to 1.0.18.
- [Release notes](https://github.com/rust-lang/flate2-rs/releases)
- [Commits](https://github.com/rust-lang/flate2-rs/compare/1.0.17...1.0.18)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-09-30 15:47:35 -07:00
dependabot-preview[bot] 238a1f1aa1 build(deps): bump base64 from 0.12.3 to 0.13.0
Bumps [base64](https://github.com/marshallpierce/rust-base64) from 0.12.3 to 0.13.0.
- [Release notes](https://github.com/marshallpierce/rust-base64/releases)
- [Changelog](https://github.com/marshallpierce/rust-base64/blob/master/RELEASE-NOTES.md)
- [Commits](https://github.com/marshallpierce/rust-base64/compare/v0.12.3...v0.13.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-09-30 15:46:55 -07:00
dependabot-preview[bot] e91e8730b4 build(deps): bump chrono from 0.4.18 to 0.4.19
Bumps [chrono](https://github.com/chronotope/chrono) from 0.4.18 to 0.4.19.
- [Release notes](https://github.com/chronotope/chrono/releases)
- [Changelog](https://github.com/chronotope/chrono/blob/main/CHANGELOG.md)
- [Commits](https://github.com/chronotope/chrono/compare/v0.4.18...v0.4.19)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-09-30 15:46:11 -07:00
Mike Welsh 3ddfd516d5 webgl: Set uniforms for all gradient colors
Was mistakenly not uploading all colors. Fixes #1240.
2020-09-29 14:02:25 -07:00
CUB3D f0a02f00b5 core: Changes from review 2020-09-29 11:06:56 -07:00
CUB3D 110b9ec551 core: Fix edge cases and implement rest of bevel filter 2020-09-29 11:06:56 -07:00
CUB3D 2c3ee4d94b core: Add flash.filters.BevelFilter 2020-09-29 11:06:56 -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
Sean-Thomas a9538f81d0 web: Renamed "prime_audio" and "suspend_audio"
Renamed "prime_audio" and "suspend_audio" to "play" and "pause" respectfully.
2020-09-29 11:05:23 -07:00
Sean-Thomas 6b54cc4311 web: Add pause method for web player
Adds a suspend_audio method to compliment prime_audio on WebAudioBackend, as well as logic in player.rs on the set_is_playing method to suspend audio when is_playing is set to false. Exposes pause method for the ruffle player in JavaScript with logic to display the play button when paused.
2020-09-29 11:05:23 -07:00
dependabot-preview[bot] b6f05ecf41 build(deps): bump lyon from 0.16.0 to 0.16.2
Bumps [lyon](https://github.com/nical/lyon) from 0.16.0 to 0.16.2.
- [Release notes](https://github.com/nical/lyon/releases)
- [Changelog](https://github.com/nical/lyon/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nical/lyon/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-09-29 05:25:14 -07:00
dependabot-preview[bot] a8876ada34 build(deps): bump image from 0.23.9 to 0.23.10
Bumps [image](https://github.com/image-rs/image) from 0.23.9 to 0.23.10.
- [Release notes](https://github.com/image-rs/image/releases)
- [Changelog](https://github.com/image-rs/image/blob/master/CHANGES.md)
- [Commits](https://github.com/image-rs/image/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-09-29 04:50:53 -07:00
dependabot-preview[bot] b2eae8011b build(deps-dev): bump eslint from 7.9.0 to 7.10.0 in /web
Bumps [eslint](https://github.com/eslint/eslint) from 7.9.0 to 7.10.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v7.9.0...v7.10.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-09-29 04:23:31 -07:00
Mike Welsh ead845ff33 chore: Appease clippy 2020-09-26 18:19:37 -07:00
Mike Welsh 98d2651e62 tests: Add tests for Array single-param ctor 2020-09-26 14:13:06 -07:00
Mike Welsh 366e8aa926 Array: Fix Array single-param ctor
The Array constructor with a single param sets the length if the
parameter is a number (no coercion is done); otherwise, it is
creates an 1-length Array containing the parameter. Previously
we coerced the parameter to a float.
2020-09-26 14:13:06 -07:00
Mike Welsh 9e13058e04 avm1: Fix list of elements in Array ctor (fix #1195) 2020-09-26 14:13:06 -07:00
David Wendt 6bb6bcab7a core: Store rotations in degrees to avoid floating-point conversion discrepancies. 2020-09-26 14:12:49 -07:00
David Wendt 28bf84bd8b core: Store object scale as percentages to avoid floating point precision problems.
Fixes a specific pattern of preloader design where animations were handled by just making the box bigger every frame until it's 100. Of course, direct equality of f64 is a terrible idea, but it works in Flash, which apparantly must store scale in percentages. So we must, too.
2020-09-26 14:12:49 -07:00
David Wendt f6f084098e tests: Add a test for floating point errors in the AVM1 representation of `_xscale`, `_yscale`, and `_rotation`. 2020-09-26 14:12:49 -07:00
dependabot-preview[bot] 2fc5e6f92e build(deps): bump chrono from 0.4.16 to 0.4.18
Bumps [chrono](https://github.com/chronotope/chrono) from 0.4.16 to 0.4.18.
- [Release notes](https://github.com/chronotope/chrono/releases)
- [Changelog](https://github.com/chronotope/chrono/blob/main/CHANGELOG.md)
- [Commits](https://github.com/chronotope/chrono/compare/v0.4.16...v0.4.18)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-09-26 14:11:15 -07:00
dependabot-preview[bot] c5135fc737 build(deps): bump syn from 1.0.41 to 1.0.42
Bumps [syn](https://github.com/dtolnay/syn) from 1.0.41 to 1.0.42.
- [Release notes](https://github.com/dtolnay/syn/releases)
- [Commits](https://github.com/dtolnay/syn/compare/1.0.41...1.0.42)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-09-26 14:11:01 -07:00
dependabot-preview[bot] b8ab6637bc build(deps-dev): bump eslint-config-prettier in /web
Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 6.11.0 to 6.12.0.
- [Release notes](https://github.com/prettier/eslint-config-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-config-prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-config-prettier/compare/v6.11.0...v6.12.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-09-26 14:09:55 -07:00
dependabot-preview[bot] 6b16b498b1 build(deps): bump chrono from 0.4.15 to 0.4.16
Bumps [chrono](https://github.com/chronotope/chrono) from 0.4.15 to 0.4.16.
- [Release notes](https://github.com/chronotope/chrono/releases)
- [Changelog](https://github.com/chronotope/chrono/blob/main/CHANGELOG.md)
- [Commits](https://github.com/chronotope/chrono/compare/v0.4.15...v0.4.16)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-09-25 13:50:12 -07:00
dependabot-preview[bot] 0dfac7b1ac build(deps): bump gif from 0.11.0 to 0.11.1
Bumps [gif](https://github.com/image-rs/image-gif) from 0.11.0 to 0.11.1.
- [Release notes](https://github.com/image-rs/image-gif/releases)
- [Changelog](https://github.com/image-rs/image-gif/blob/master/Changes.md)
- [Commits](https://github.com/image-rs/image-gif/compare/v0.11.0...v0.11.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-09-25 13:22:07 -07:00
Mike Welsh 313b02d24f webgl: Fall back to canvas if not using hardware acceleration
Display WebGL driver info, detect whether hardware acceleration
is enabled, and fall back to the canvas backend in this case.
2020-09-25 01:22:21 -07:00
Mike Welsh b908b027a9 webgl: Handle errors in renderbuffer creation 2020-09-25 01:22:21 -07:00
Mike Welsh b8f9c5b0a3 webgl: Respect MAX_SAMPLES when creating MSAA buffers 2020-09-25 01:22:21 -07:00
Mike Welsh 816272e46b webgl: Bump max gradient count to 15 2020-09-24 22:55:17 -07:00
Mike Welsh a59f211ae8 chore: Bump clap to 3.0-beta.2 2020-09-21 18:56:46 -07:00
Mike Welsh 802636fbbf chore: Bump to gif 0.11.0 2020-09-21 18:30:27 -07:00
dependabot-preview[bot] 50dcb4ada5 build(deps-dev): bump html-webpack-plugin from 4.4.1 to 4.5.0 in /web
Bumps [html-webpack-plugin](https://github.com/jantimon/html-webpack-plugin) from 4.4.1 to 4.5.0.
- [Release notes](https://github.com/jantimon/html-webpack-plugin/releases)
- [Changelog](https://github.com/jantimon/html-webpack-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jantimon/html-webpack-plugin/compare/v4.4.1...v4.5.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-09-21 13:03:14 -07:00
dependabot-preview[bot] 1b50eb95d7 build(deps-dev): bump copy-webpack-plugin from 6.1.0 to 6.1.1 in /web
Bumps [copy-webpack-plugin](https://github.com/webpack-contrib/copy-webpack-plugin) from 6.1.0 to 6.1.1.
- [Release notes](https://github.com/webpack-contrib/copy-webpack-plugin/releases)
- [Changelog](https://github.com/webpack-contrib/copy-webpack-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/copy-webpack-plugin/compare/v6.1.0...v6.1.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-09-20 06:51:37 -07:00
dependabot-preview[bot] 08f3e5894d build(deps-dev): bump @wdio/local-runner from 6.5.0 to 6.5.2 in /web
Bumps [@wdio/local-runner](https://github.com/webdriverio/webdriverio) from 6.5.0 to 6.5.2.
- [Release notes](https://github.com/webdriverio/webdriverio/releases)
- [Changelog](https://github.com/webdriverio/webdriverio/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webdriverio/webdriverio/compare/v6.5.0...v6.5.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-09-20 06:51:12 -07:00
dependabot-preview[bot] 31bafe7070 build(deps-dev): bump @wdio/cli from 6.5.0 to 6.5.2 in /web
Bumps [@wdio/cli](https://github.com/webdriverio/webdriverio) from 6.5.0 to 6.5.2.
- [Release notes](https://github.com/webdriverio/webdriverio/releases)
- [Changelog](https://github.com/webdriverio/webdriverio/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webdriverio/webdriverio/compare/v6.5.0...v6.5.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-09-20 06:51:01 -07:00
Luca Weiss 8a8075ca99
avm1: Fix registered function names for Sound object (#1209)
The functions are just stubs currently so this shouldn't change any
behavior.
2020-09-19 16:21:50 -07:00
Nathan Adams 4a83641a6c core: Support \r newlines in texts - fixes #1071, #808 2020-09-19 16:18:35 -07:00