Commit Graph

2239 Commits

Author SHA1 Message Date
relrelb c284a2e47e tests: Add export_assets 2021-01-15 11:48:29 -08:00
relrelb abfa08c964 core: Allow exports to be overridden
Per SWF19 p.54, the latter export name is used.
2021-01-15 11:48:29 -08:00
TÖRÖK Attila a01ea70514 core/avm1: Implement BitmapData.copyPixels() 2021-01-14 13:02:55 -08:00
cheezeygeek 1911708ad1 avm1: Fix onChange firing, remove unwraps, revert as_broadcaster 2021-01-13 15:47:20 -08:00
cheezeygeek b3cd9b0f89 avm1: Implement listeners and onChanged for TextField (close #2297) 2021-01-13 15:47:20 -08:00
Mike Welsh df82194823 tests: Add test for case insensitive Object.registerClass in SWF6 2021-01-13 15:38:38 -08:00
Mike Welsh 3c31336c93 chore: Rename some getters 2021-01-13 15:38:38 -08:00
Moulins 26a2b6e4f7 core: Add test for `Object.registerClass` return values 2021-01-13 15:38:38 -08:00
Moulins f394953331 core: Reimplement `Object.registerClass`.
Maintain an external mapping from symbol names to registered
constructors to properly handle `registerClass` being called on
not-yet-available symbols.

SWFs v6 and v7+ each have a separate global mapping, with
different case sensitivities.

Also returns the correct boolean value to the AVM.

Fixes #2343 and #1864.
2021-01-13 15:38:38 -08:00
Mike Welsh 9bb36885bb web: Add backgroundColor option and support bgcolor attribute
Add `backgroundColor` setting to the config options, allowing
a user to override the background color of an SWF. The polyfill
will now look for the `bgcolor` HTML attribute on the embed
and fill in this setting appropriately.
2021-01-13 11:57:19 -08:00
Mike Welsh 4820d5b044 core: Change Player::background_color to an Option
Player::background_color is now an Option. SetBackgroundColor will
change the background color of the player only when this is None,
i.e. only if no background color has yet been set.

This matches the behavior of the offical Flash Player, for example,
if a parent SWF is missing a SetBackgroundColor tag and loads a
child SWF, the child SWF's SetBackgroundColor tag takes effect.

This is anticipating adding a `bgcolor` option to the web builds,
allowing the HTML embed to override the bgcolor.
2021-01-13 11:57:19 -08:00
Adrian Wielgosik 7242bfb5f0
avm1: In ASSetPropFlags, don't crash on flags > 7 2021-01-13 11:55:35 -08:00
dependabot-preview[bot] a73e85ea6d build(deps): bump rand from 0.8.1 to 0.8.2
Bumps [rand](https://github.com/rust-random/rand) from 0.8.1 to 0.8.2.
- [Release notes](https://github.com/rust-random/rand/releases)
- [Changelog](https://github.com/rust-random/rand/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-random/rand/compare/0.8.1...0.8.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-01-13 04:17:41 -08:00
Mike Welsh 63f2b4f02f avm1: Remove Error::ConstructorFailed
Not necessary now that native constructors can return differing
types. `new BitmapData` can return undefined.
2021-01-12 09:13:24 -08:00
Mike Welsh cd68d4f76a avm1: Properly implement Object constructor 2021-01-12 09:13:24 -08:00
Mike Welsh e93f3b5d3b tests: Add test for Object constructor 2021-01-12 09:13:24 -08:00
Mike Welsh df500282cd avm1: Use the return value of built-in ctors as `this`
* Built-in constructors now return the newly constructed object,
   which will be used as `this`. This allows for constructors such
   as `new Object` which can return differing types.
 * Adjust `FunctionObject::constructor` to take both a constructor
   and a function. Add `constructor_to_fn!` macro to turn most
   simple native constructors into a function that discards the
   return value.
 * Change `TObject::construct` to return `Value` instead of `Object`.
   This is necessary for constructors that return primitive values.
2021-01-12 09:13:24 -08:00
Mike Welsh 4e27818952 core: Don't recreate objects when switching button states
When switching button states, previously we cleared all children
and recreated children for the new state. Now any children that
exist in both states are persisted and not recreated.

Fixes #2354.
2021-01-11 14:06:22 -08:00
Mike Welsh 6b2b0eb2c6 core: Allow mouse picking of children inside buttons
Particularly fixes cases of button-inside-button (#2354).
2021-01-11 14:06:22 -08:00
Toad06 7480e836ec web: Changes from review 2021-01-11 13:16:00 -08:00
TÖRÖK Attila cce3a8199d web: Add a config option to disable the message about unsupported content 2021-01-10 16:02:23 -08:00
Mike Welsh 484ac03ca8 tests: Test removeMovieClip on non-movieclips 2021-01-09 18:31:04 -08:00
Mike Welsh bab88ede8c fix 2021-01-09 18:31:04 -08:00
MrCheeze ff15b67192 avm1: Allow RemoveSprite/removeMovieClip on any display object 2021-01-09 18:31:04 -08:00
Mike Welsh 6638aebde8 tests: Add test verifying proper getBytesTotal value 2021-01-09 14:29:19 -08:00
MrCheeze 5915f2a841 core: Return uncompressed length for getBytesLoaded/Total 2021-01-09 14:29:19 -08:00
Adrian Wielgosik 828dbcb00c Don't panic on invalid JPEG sizes in DefineBitsJpeg* 2021-01-08 13:38:41 -08:00
dependabot-preview[bot] f80d74a3d7 build(deps): bump smallvec from 1.6.0 to 1.6.1
Bumps [smallvec](https://github.com/servo/rust-smallvec) from 1.6.0 to 1.6.1.
- [Release notes](https://github.com/servo/rust-smallvec/releases)
- [Commits](https://github.com/servo/rust-smallvec/compare/v1.6.0...v1.6.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-01-08 12:09:49 -08:00
relrelb 030ff398ef desktop: Handle fullscreen keyboard shortcut in its own case 2021-01-08 11:59:08 -08:00
relrelb abe608fd4d desktop: Add fullscreen keyboard shortcut 2021-01-07 12:49:36 -08:00
Mike Welsh 44e9185a5f core: Adjust culling area based on letterbox setting 2021-01-07 11:46:07 -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 bacb66b97b core: Move Letterbox to config module 2021-01-07 11:46:07 -08:00
Mike Welsh 8728804f28 web: Add letterbox config option 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
Mike Welsh 03b5edd4d1 render: Remove RenderBackend::draw_letterbox
Move letterbox draw logic to `Player`, using renderer.draw_rect
2021-01-07 11:46:07 -08:00
CUB3D 063c8a1234 chore: Fix formatting 2021-01-06 18:06:30 -08:00
CUB3D 01557fba5a core: Add flash.filters.GradientGlowFilter 2021-01-06 18:06:30 -08:00
CUB3D 0cab167e4c core: Add flash.filters.GradientBevelFilter + refactor existing filters 2021-01-06 18:06:30 -08:00
Moulins 02c591958e core/avm1: don't run onLoadInit handler if movie loading failed
Replace Loader::Movie::loader_complete flag by an enum to distinguish
between success and failure.

Fixes #2123
2021-01-06 16:00:58 -08:00
relrelb 468b2ca487
core: Ignore SetBackgroundColor in child movie clips 2021-01-06 16:00:11 -08:00
Callum Thomson 75081c8149
avm1: Implement flash.filters.ConvolutionFilter avm1 built-in 2021-01-04 18:26:11 -08:00
relrelb 9a8edda8a6 chore: Update lyon to 0.17.1 2021-01-04 18:08:14 -08:00
relrelb de761f5b7c chore: Update bitstream-io to 1.0.0 2021-01-04 15:23:36 -08:00
TÖRÖK Attila 21e071384d core/avm1: Handle object aliasing in BitmapData.copyChannel by cloning 2021-01-04 15:10:01 -08:00
dependabot-preview[bot] 51641dad60 build(deps): bump rand from 0.8.0 to 0.8.1
Bumps [rand](https://github.com/rust-random/rand) from 0.8.0 to 0.8.1.
- [Release notes](https://github.com/rust-random/rand/releases)
- [Changelog](https://github.com/rust-random/rand/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-random/rand/compare/0.8.0...0.8.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-01-04 15:08:40 -08:00
Mike Welsh fae1d6fd6a chore: Appease clippy 2021-01-04 13:17:26 -08:00
Adrian Wielgosik de38bb48eb
core: Fake passage of time to fool busy-loop frame limiters 2021-01-04 12:19:20 -08:00
Kamil Gierada 49a69c8109
core: ADPCM decoder produces less artifacts 2021-01-02 16:44:28 -08:00
Mike Welsh 4c12f27e46 tests: Add tests for #1671 2021-01-02 16:19:08 -08:00