Mike Welsh
66256dd3be
swf: SwfStr no longer contains encoding
...
SwfStr is now an unsized slice analogous to `str` or `bstr`.
The desired encoding must be supplied when converting to String.
2021-01-20 15:02:31 -08:00
Mike Welsh
61628a74fc
swf: Rename and organize some util methods
...
* SwfRead -> SwfReadExt
* SwfWrite -> SwfWriteExt
* read_swf_header -> decompress_swf
* read_swf -> parse_swf
2021-01-20 15:02:31 -08:00
Mike Welsh
1d9c11e145
swf: Add SwfStr type to handle encodings in SWF<6
2021-01-20 15:02:31 -08:00
Mike Welsh
19034b76e4
swf: Return slices in swf::Reader
...
Avoid copies by returning slices of the decompressed input.
2021-01-20 15:02:31 -08:00
klemens
9488a3fb97
spelling fixes
2021-01-18 22:07:39 -08:00
Mike Welsh
da1e2801a2
chore: Appease clippy
2021-01-18 21:23:50 -08:00
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