Commit Graph

4549 Commits

Author SHA1 Message Date
Toad06 caecc519cd avm1: Minimal implementation of `LoadVars.getBytesTotal` and `LoadVars.getBytesLoaded` 2022-11-20 22:00:36 -07:00
David Wendt ecdef4c6f4 core: Empty text lines should still have a height. 2022-11-20 17:13:48 -07:00
David Wendt 425bea45f8 avm1: `TextFormat.getTextExtent` uses the height of all boxes in the layout 2022-11-20 17:13:48 -07:00
David Wendt 66bf03908b avm1: Implement `TextFormat.getTextExtent` 2022-11-20 17:13:48 -07:00
David Wendt 83db53202e core: Add empty boxes for empty lines *without* breaking multiple-format lines. 2022-11-20 17:13:48 -07:00
David Wendt 88c3cf0c72 core: The leading for a given line is stated using the text format's leading, not the font's leading. 2022-11-20 17:13:48 -07:00
David Wendt 59f01a40f1 core: Empty lines should also generate a layout box. 2022-11-20 17:13:48 -07:00
David Wendt 5f7344259a avm2: Impl `TextField.numLines` and `.getLineMetrics` 2022-11-20 17:13:48 -07:00
David Wendt 1efa29baa6 core: Add methods for introspecting text metrics on an `EditText`. 2022-11-20 17:13:48 -07:00
Adrian Wielgosik 7e2b876ab3 avm2: Refactor context menu field bool checks into macro 2022-11-17 22:03:54 -05:00
Adrian Wielgosik e840d1f71c core: Support AVM2 context menu (sans callbacks) 2022-11-17 22:03:54 -05:00
Toad06 182c3b78e4 avm1: onData fails if the loaded data is an empty string 2022-11-17 20:51:11 -05:00
dependabot[bot] b3debc96af build(deps): bump clap from 4.0.22 to 4.0.24
Bumps [clap](https://github.com/clap-rs/clap) from 4.0.22 to 4.0.24.
- [Release notes](https://github.com/clap-rs/clap/releases)
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md)
- [Commits](https://github.com/clap-rs/clap/compare/v4.0.22...v4.0.24)

---
updated-dependencies:
- dependency-name: clap
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-15 09:33:20 +02:00
TÖRÖK Attila 08270efee7 avm2: Implement SoundMixer.computeSpectrum() 2022-11-10 19:11:29 -05:00
TÖRÖK Attila 2b4d8d9c6e core,desktop: Add and implement AudioBackend::get_sample_history() 2022-11-10 19:11:29 -05:00
Moulins fb8caad783 core: rename TInteractiveObject::{ibase => raw_interactive}(_mut)
To match with TDisplayObjectContainer::raw_container(_mut) introduced
in previous commit.
2022-11-09 23:39:15 -05:00
Moulins 0bc01c239f core: remove impl_display_object_container! macro
It is replaced by two accessor methods on the trait + default
implementations of all other methods.
2022-11-09 23:39:15 -05:00
dependabot[bot] 9303304e3b build(deps): bump clap from 4.0.18 to 4.0.22
Bumps [clap](https://github.com/clap-rs/clap) from 4.0.18 to 4.0.22.
- [Release notes](https://github.com/clap-rs/clap/releases)
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md)
- [Commits](https://github.com/clap-rs/clap/compare/v4.0.18...v4.0.22)

---
updated-dependencies:
- dependency-name: clap
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-08 00:25:12 +02:00
relrelb c516fef65d swf: Simplify read of `PlaceObject` tags
`tag_length` isn't really necessary since each tag is read using
a dedicated `swf::Reader`, which keeps track of the tag boundary
internally.

As a result, `tag_len` can be avoided passed around many times in
`movie_clip.rs`.
2022-11-08 00:05:41 +02:00
moulins 8cbd527e4c
avm1: Small cleanups in ActionQueue (#8486)
- Use a fixed-size array instead of a Vec for the queues
- Remove unwanted plurals in methods and types names
2022-11-06 07:39:11 +02:00
Moulins e121c82b10 avm1: remove manual bit-wrangling in declare_properties! macro
Now that the relevant compiler ICE is fixed, we can use the Attribute
constants directly
2022-11-03 09:19:11 +02:00
Adrian Wielgosik 3458cd92e4 avm2: Support DO.getBounds, (partial) getRect 2022-11-01 22:46:34 +01:00
relrelb 89f3445d62 swf: Introduce and use `Rectangle::width()` and `Rectangle::height()` 2022-11-01 09:49:04 +02:00
Aaron Hill 68471723b3 core: Fix clippy format string lint 2022-10-27 08:49:39 +03:00
relrelb fb7ba9c9a0 core: Extract `Graphic::drawing`
That returns a non-`Option` `Drawing`, and has no `.unwrap()`s.
2022-10-26 09:05:42 +03:00
relrelb 7dfc5b6e2e core: Extract `MovieClip::drawing`
That returns a non-`Option` `Drawing`. This avoids many `.unwrap()`s
in AVM1.
2022-10-26 09:05:42 +03:00
relrelb d3c6d9d148 avm1: Require a `MovieClip` in `MovieClip.duplicateMovie`
A `MovieClip` must be instantiated from an ID of a `MovieClip`.
2022-10-26 09:05:42 +03:00
dependabot[bot] d589130634 build(deps): bump serde from 1.0.145 to 1.0.147
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.145 to 1.0.147.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.145...v1.0.147)

---
updated-dependencies:
- dependency-name: serde
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-25 09:54:26 +03:00
dependabot[bot] 3c7e9235f6 build(deps): bump futures from 0.3.24 to 0.3.25
Bumps [futures](https://github.com/rust-lang/futures-rs) from 0.3.24 to 0.3.25.
- [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/compare/0.3.24...0.3.25)

---
updated-dependencies:
- dependency-name: futures
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-25 09:19:27 +03:00
dependabot[bot] c9f5524748 build(deps): bump clap from 4.0.15 to 4.0.18
Bumps [clap](https://github.com/clap-rs/clap) from 4.0.15 to 4.0.18.
- [Release notes](https://github.com/clap-rs/clap/releases)
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md)
- [Commits](https://github.com/clap-rs/clap/compare/v4.0.15...v4.0.18)

---
updated-dependencies:
- dependency-name: clap
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-25 09:00:26 +03:00
dependabot[bot] 6cedd3c04d build(deps): bump syn from 1.0.102 to 1.0.103
Bumps [syn](https://github.com/dtolnay/syn) from 1.0.102 to 1.0.103.
- [Release notes](https://github.com/dtolnay/syn/releases)
- [Commits](https://github.com/dtolnay/syn/compare/1.0.102...1.0.103)

---
updated-dependencies:
- dependency-name: syn
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-25 01:14:33 +02:00
Aaron Hill 7dcb333991 avm2: Remove dead code from MovieClip constructor
The call to `super_init` will initialize a `DisplayObject` (if unset)
in the `Sprite` constructor, using exactly the same logic that we're
attempting to use. The code in `MovieClip` is unreachable, and can
be deleted.
2022-10-24 11:46:20 -05:00
DragonGamesStudios 84f3739ece
core: Fixed a typo in messages on pressing Ctrl+Alt+D (#8360) 2022-10-23 16:44:33 +03:00
Aaron Hill 919b38f20b avm2: Stub Graphics.beginGradientFill 2022-10-22 17:58:13 -05:00
Aaron Hill 9dd0914bda core: Add root movie URL spoofing (desktop only).
The desktop player now takes a `--spoof-url` argument, which overrides
the movie URL provided to ActionScript. This does not affect non-root
movies loaded through `Loader`.
2022-10-22 15:24:14 -05:00
Adrian Wielgosik 7ccf7a4c69 avm2: Add missing set_object2 impl to Bitmap 2022-10-22 19:42:24 +02:00
Aaron Hill 4cb122461e avm2: Implement DisplayObject.cacheAsBitmap
The underlying flag currently does nothing, but this allows
SWFs to continue executing.
2022-10-20 18:37:35 -05:00
David Wendt 058a7a8b66 desktop: Allow specifying the load behavior for desktop 2022-10-18 16:47:49 -06:00
David Wendt 74d77a3df0 core: Add a player setting for if movies are allowed to execute before loading finishes 2022-10-18 16:47:49 -06:00
dependabot[bot] 71a4f569af build(deps): bump proc-macro2 from 1.0.46 to 1.0.47
Bumps [proc-macro2](https://github.com/dtolnay/proc-macro2) from 1.0.46 to 1.0.47.
- [Release notes](https://github.com/dtolnay/proc-macro2/releases)
- [Commits](https://github.com/dtolnay/proc-macro2/compare/1.0.46...1.0.47)

---
updated-dependencies:
- dependency-name: proc-macro2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-18 07:28:01 +03:00
Adrian Wielgosik bdc041677a render: Bail on attempts on panicking recursive render, part 2. 2022-10-17 18:02:21 -05:00
Aaron Hill 45515be0a3 render: Improve support for BitmapData.draw
This PR fixes a numbe of interconnected bugs:
* We weren't consistently uploading a dirty BitmapData to the render
  backend before drawing to/from it.
* BitmapData.draw should *not* add a fill color - it should draw over
  the current contents of the BitmapData
* After drawing to a non-transparent BitmapData, we need to manually
  set the opacity back to 255 for each pixel (the drawing process
  takes transparency into account, but the opacity information is
  thrown away at the end).
2022-10-17 12:53:38 -05:00
relrelb 86ef4bd7fe core: Simplify `Bitmap` creation
Change `Bitmap::new()` to accept a `ruffle_render::bitmap::Bitmap`
directly, instead of `width`, `height` and `bitmap_handle`. As a
consequence, all `RenderBackend::register_bitmap_*` methods are no
longer necessary - we can use `ruffle_redner::utils::*` to obtain
a `ruffle_render::bitmap::Bitmap` right before calling `Bitmap::new()`.
2022-10-17 20:05:30 +03:00
David Wendt 36844e5e2f chore: Use explicit `.clamp`
Also, update the tests to confirm that this doesn't break NaN handling.
2022-10-16 14:55:07 -06:00
David Wendt 10ad603566 avm1: Implement `TextField.antiAliasType`, `.gridFitType`, `.sharpness`, and `.thickness`.
Notably this required removing a few parameter checks from core that turned out to be AS3-only.
2022-10-16 14:55:07 -06:00
David Wendt 7155f88601 avm2: Implement `TextField.antiAliasType`, `.gridFitType`, `.sharpness`, and `.thickness`. 2022-10-16 14:55:07 -06:00
David Wendt b8693a3932 core: Retain Advanced render settings in Normal mode, even though they won't be used there. 2022-10-16 14:55:07 -06:00
relrelb 760f9e29df avm1: Migrate `BevelFilter` to `NativeObject` 2022-10-16 11:48:59 +03:00
relrelb 1cbc906b04 avm1: Migrate `BlurFilter` to `NativeObject` 2022-10-15 16:00:30 +03:00
relrelb 178bf4fe24 chore: Extract Cargo `edition` to `[workspace.package]`
This is possible since Rust 1.64.0: https://blog.rust-lang.org/2022/09/22/Rust-1.64.0.html#cargo-improvements-workspace-inheritance-and-multi-target-builds
2022-10-14 22:13:29 +03:00