relrelb
65be2adc63
wgpu: Bump to `0.13.0`
...
Based on the work in #6717 , plus additional adaptions mentioned in
https://github.com/gfx-rs/wgpu/blob/master/CHANGELOG.md#wgpu-013-2022-06-30 ,
and more not-mentioned but required changes.
Also bump `wasm-bindgen` to `0.2.81` (along with its helper crates), as
required by the new `wgpu` version.
Note that I don't fully understand some of the required changes, notably:
* `wgpu::PresentMode::Mailbox` no longer works on my machine (Windows 11) -
The `wgpu` documentation says that `wgpu::PresentMode::Fifo` is the
only guaranteed to be supported, so I switched over to it instead.
* `self.staging_belt.recall()` doesn't return a `Future` anymore -
I assume it became synchronous so I simply removed the `executor`
from there.
2022-07-02 16:44:37 -07:00
Toad06
e219cb3b1c
avm1: Fire `onData` function and event when calling `loadVariables`
2022-07-02 10:22:48 -07:00
relrelb
981fa0568c
chore: `derive(Default)` for enums
...
It's available since stable Rust 1.62.0.
2022-07-02 09:23:04 -07:00
relrelb
9b9301fbaf
chore: Appease clippy
2022-07-02 09:22:18 -07:00
dependabot[bot]
79a341d106
build(deps-dev): bump typedoc from 0.22.17 to 0.23.3 in /web
...
Bumps [typedoc](https://github.com/TypeStrong/TypeDoc ) from 0.22.17 to 0.23.3.
- [Release notes](https://github.com/TypeStrong/TypeDoc/releases )
- [Changelog](https://github.com/TypeStrong/typedoc/blob/master/CHANGELOG.md )
- [Commits](https://github.com/TypeStrong/TypeDoc/compare/v0.22.17...v0.23.3 )
---
updated-dependencies:
- dependency-name: typedoc
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-07-02 01:25:17 +03:00
dependabot[bot]
99db3e5f6e
build(deps-dev): bump @wdio/static-server-service in /web
...
Bumps [@wdio/static-server-service](https://github.com/webdriverio/webdriverio ) from 7.20.0 to 7.20.3.
- [Release notes](https://github.com/webdriverio/webdriverio/releases )
- [Changelog](https://github.com/webdriverio/webdriverio/blob/main/CHANGELOG.md )
- [Commits](https://github.com/webdriverio/webdriverio/compare/v7.20.0...v7.20.3 )
---
updated-dependencies:
- dependency-name: "@wdio/static-server-service"
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-07-02 00:46:55 +03:00
dependabot[bot]
1cc3660924
build(deps-dev): bump eslint from 8.17.0 to 8.18.0 in /web
...
Bumps [eslint](https://github.com/eslint/eslint ) from 8.17.0 to 8.18.0.
- [Release notes](https://github.com/eslint/eslint/releases )
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md )
- [Commits](https://github.com/eslint/eslint/compare/v8.17.0...v8.18.0 )
---
updated-dependencies:
- dependency-name: eslint
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-07-02 00:46:40 +03:00
dependabot[bot]
94bf3bdbce
build(deps-dev): bump webpack-cli from 4.9.2 to 4.10.0 in /web
...
Bumps [webpack-cli](https://github.com/webpack/webpack-cli ) from 4.9.2 to 4.10.0.
- [Release notes](https://github.com/webpack/webpack-cli/releases )
- [Changelog](https://github.com/webpack/webpack-cli/blob/master/CHANGELOG.md )
- [Commits](https://github.com/webpack/webpack-cli/compare/webpack-cli@4.9.2...webpack-cli@4.10.0 )
---
updated-dependencies:
- dependency-name: webpack-cli
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-07-02 00:46:28 +03:00
dependabot[bot]
fa4b556e03
build(deps-dev): bump stylelint-config-standard in /web
...
Bumps [stylelint-config-standard](https://github.com/stylelint/stylelint-config-standard ) from 25.0.0 to 26.0.0.
- [Release notes](https://github.com/stylelint/stylelint-config-standard/releases )
- [Changelog](https://github.com/stylelint/stylelint-config-standard/blob/main/CHANGELOG.md )
- [Commits](https://github.com/stylelint/stylelint-config-standard/compare/25.0.0...26.0.0 )
---
updated-dependencies:
- dependency-name: stylelint-config-standard
dependency-type: direct:development
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-07-01 23:39:13 +03:00
dependabot[bot]
31029f7414
build(deps-dev): bump chai-html from 2.0.1 to 2.1.0 in /web
...
Bumps [chai-html](https://github.com/i-like-robots/chai-html ) from 2.0.1 to 2.1.0.
- [Release notes](https://github.com/i-like-robots/chai-html/releases )
- [Changelog](https://github.com/i-like-robots/chai-html/blob/main/changelog.md )
- [Commits](https://github.com/i-like-robots/chai-html/compare/v2.0.1...v2.1.0 )
---
updated-dependencies:
- dependency-name: chai-html
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-07-01 23:33:21 +03:00
dependabot[bot]
3cc38eec1e
build(deps-dev): bump @typescript-eslint/parser in /web
...
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser ) from 5.27.0 to 5.30.3.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases )
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md )
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.30.3/packages/parser )
---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-07-01 23:33:11 +03:00
dependabot[bot]
09621e641a
build(deps-dev): bump @wdio/mocha-framework in /web
...
Bumps [@wdio/mocha-framework](https://github.com/webdriverio/webdriverio ) from 7.19.5 to 7.20.3.
- [Release notes](https://github.com/webdriverio/webdriverio/releases )
- [Changelog](https://github.com/webdriverio/webdriverio/blob/main/CHANGELOG.md )
- [Commits](https://github.com/webdriverio/webdriverio/compare/v7.19.5...v7.20.3 )
---
updated-dependencies:
- dependency-name: "@wdio/mocha-framework"
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-07-01 23:33:01 +03:00
dependabot[bot]
ffee0deeac
build(deps-dev): bump webpack-dev-server from 4.9.1 to 4.9.3 in /web
...
Bumps [webpack-dev-server](https://github.com/webpack/webpack-dev-server ) from 4.9.1 to 4.9.3.
- [Release notes](https://github.com/webpack/webpack-dev-server/releases )
- [Changelog](https://github.com/webpack/webpack-dev-server/blob/master/CHANGELOG.md )
- [Commits](https://github.com/webpack/webpack-dev-server/compare/v4.9.1...v4.9.3 )
---
updated-dependencies:
- dependency-name: webpack-dev-server
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-07-01 23:32:49 +03:00
Aaron Hill
b56eace008
avm2: Implement property type coercions
...
Properties can be declared with a type
(e.g. `var foo:MyClass = new MyClass();`). When
`set_property`/`init_property` is invoked for that property,
the VM will attempt to coerce the value to the provided type,
throwing an error if this fails. This can have observable behavior
consequences - if a property has type `integer`, for example, then
storing a floating point `Number` to that property will cause the
value to be coerced to an integer. Some SWFs (e.g. 'Solarmax') rely
on this behavior in order to implicitly coerce a floating point value
that's later used for array indexing.
This PR implements property type coercions in Ruffle. There are several
important considerations:
* The class lookup for property types needs to be done lazily, since
we can have a cycle between two classes (e.g. `var prop1:Class2;`
and `var prop2:Class1` in two different classes).
* The class lookup uses special rules (different from
`resolve_definition`), and does *not* use `ScopeStack/`ScopeTree`
This means that a private class can specified as a property name -
the lookup will succeed without using a scope, even though
`flash.utils.getDefinitionByName` would fail with the same name
* The specialized 'Vector' classes (e.g "Vector$int") can be used
as property types, even though they cannot be lookup up normally.
Some Ruffle class definitions were previously using nonexistent
classes as property types (e.g. "BareObject") - these are fixed
in this PR.
2022-06-30 21:34:26 -07:00
Moulins
c7bf11ece5
avm1: More accurate handling of preload/suppress flags in functions
...
- Handle the case where both preload aud suppress flags are
set for the same variable;
- Remove `arguments` field in `Activation`; instead use a normal
local definition;
- When `suppress_this` is set, inherit the `this` value from parent
activation. (This isn't entirely correct, as FP's `this` is mutable
and seems to be part of the scope chain, but this would require a
larger refactoring)
2022-06-29 16:02:13 -07:00
Moulins
aa1e53e0e3
avm1: Refactor Executable::exec
...
- reduce rightwards drift by exiting early
- outline some code into separate methods on Avm1Function
2022-06-29 16:02:13 -07:00
Moulins
58b4342355
avm1: add failing test for preload/suppress flags on functions
2022-06-29 16:02:13 -07:00
Aaron Hill
a79aa08f08
core: Free render backend resources on `BitmapData.dispose`
...
Currently, all three render backends hold on texture-related
resources indefinitely (`register_bitmap` pushes to a `Vec`,
and never removes anything). As a result, the resources used
by the render backend (which may include GPU memory) will grow
over time, even if the corresponding `BitmapData` has been deallocated.
This commit adds a new `unregister_bitmap` method, which is called from
`BitmapData.dispose`. All render backs are changed to now use an
`FnvHashMap<BitmapHandle, _>` instead of a `Vec`, allowing us to
remove individual entries.
Currently, we only call `unregister_bitmap in response to
`BitmapData.dispose` - when `BitmapData` is freed by the
garbage collector, `unregister_bitmap` is *not* called.
This will be addressed in a future PR.
2022-06-29 15:16:43 -07:00
Adrian Wielgosik
4d1bf7e00c
avm2: Refactor AVM2 bare object creation
2022-06-29 15:12:39 -07:00
Adrian Wielgosik
f31d4c2498
avm2: Remove SystemPrototypes.
2022-06-29 15:12:39 -07:00
Aaron Hill
1c5312d6c8
avm2: Declare 'dataFormat' property on URLLoader
...
This ensures that a sealed subclass can still access it.
2022-06-28 09:30:58 +03:00
dependabot[bot]
2fce315938
build(deps): bump gif from 0.11.3 to 0.11.4
...
Bumps [gif](https://github.com/image-rs/image-gif ) from 0.11.3 to 0.11.4.
- [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.3...v0.11.4 )
---
updated-dependencies:
- dependency-name: gif
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-06-28 00:51:23 +03:00
dependabot[bot]
c043093f13
build(deps): bump quote from 1.0.19 to 1.0.20
...
Bumps [quote](https://github.com/dtolnay/quote ) from 1.0.19 to 1.0.20.
- [Release notes](https://github.com/dtolnay/quote/releases )
- [Commits](https://github.com/dtolnay/quote/compare/1.0.19...1.0.20 )
---
updated-dependencies:
- dependency-name: quote
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-06-28 00:09:48 +03:00
dependabot[bot]
d6171f8a06
build(deps): bump smallvec from 1.8.0 to 1.8.1
...
Bumps [smallvec](https://github.com/servo/rust-smallvec ) from 1.8.0 to 1.8.1.
- [Release notes](https://github.com/servo/rust-smallvec/releases )
- [Commits](https://github.com/servo/rust-smallvec/compare/v1.8.0...v1.8.1 )
---
updated-dependencies:
- dependency-name: smallvec
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-06-28 00:09:36 +03:00
dependabot[bot]
94e670c7c5
build(deps): bump indexmap from 1.9.0 to 1.9.1
...
Bumps [indexmap](https://github.com/bluss/indexmap ) from 1.9.0 to 1.9.1.
- [Release notes](https://github.com/bluss/indexmap/releases )
- [Changelog](https://github.com/bluss/indexmap/blob/master/RELEASES.md )
- [Commits](https://github.com/bluss/indexmap/compare/1.9.0...1.9.1 )
---
updated-dependencies:
- dependency-name: indexmap
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-06-28 00:09:12 +03:00
David Wendt
632052f49e
core: Manually fire late `added`/`addedToStage` events on AVM2 roots
2022-06-26 19:50:35 -07:00
Aaron Hill
9f1cd4dea8
avm2: Don't try to set MovieClip child with default name
...
Flash Player only sets children with explicit names.
2022-06-26 19:34:21 -07:00
Aaron Hill
53cdba96d3
avm2: Convert flash.geom.Matrix to ActionScript
...
I've kept the rust `flash.geom` module, even though it's now empty,
since we'll need to add things like `flash.geom.Transform` native
methods in the future.
2022-06-24 12:34:12 -05:00
relrelb
48e4d80d0a
avm2: Implement `flash.net.SharedObjectFlushStatus`
2022-06-24 18:28:33 +03:00
relrelb
13d8565b12
avm2: Implement `flash.net.URLRequestMethod`
2022-06-24 18:28:33 +03:00
relrelb
4e29df5796
avm2: Implement `flash.net.URLRequestHeader`
2022-06-24 18:28:33 +03:00
relrelb
8398dc4ae8
avm2: Port `flash.net.URLLoaderDataFormat` to ActionScript
2022-06-24 18:28:33 +03:00
relrelb
781954bd86
avm2: Implement `flash.display.TriangleCulling`
2022-06-24 18:28:33 +03:00
relrelb
32df3b762c
avm2: Port `flash.display.StageScaleMode` to ActionScript
2022-06-24 18:28:33 +03:00
relrelb
29692b4a49
avm2: Port `flash.display.StageQuality` to ActionScript
2022-06-24 18:28:33 +03:00
relrelb
121d17dd94
avm2: Port `flash.display.StageDisplayState` to ActionScript
2022-06-24 18:28:33 +03:00
relrelb
1f1c2b91cd
avm2: Port `flash.display.StageAlign` to ActionScript
2022-06-24 18:28:33 +03:00
relrelb
1a8f6ef6aa
avm2: Port `flash.display.SpreadMethod` to ActionScript
2022-06-24 18:28:33 +03:00
relrelb
206aee3d28
avm2: Implement `flash.display.ShaderPrecision`
2022-06-24 18:28:33 +03:00
relrelb
f51d20ca64
avm2: Implement `flash.display.ShaderParameterType`
2022-06-24 18:28:33 +03:00
relrelb
790880a508
avm2: Port `flash.display.Scene` to ActionScript
2022-06-24 18:28:33 +03:00
relrelb
5817c1761b
avm2: Stub `Array` in ActionScript
2022-06-24 18:28:33 +03:00
relrelb
3745ab57db
avm2: Port `flash.display.SWFVersion` to ActionScript
2022-06-24 18:28:33 +03:00
relrelb
14830adb54
avm2: Port `flash.display.PixelSnapping` to ActionScript
2022-06-24 18:28:33 +03:00
relrelb
d6e1b8bbc1
avm2: Implement `flash.display.PNGEncoderOptions`
2022-06-24 18:28:33 +03:00
relrelb
f0a8ba9b87
avm2: Port `flash.display.LineScaleMode` to ActionScript
2022-06-24 18:28:33 +03:00
relrelb
8b8b320064
avm2: Port `flash.display.JointStyle` to ActionScript
2022-06-24 18:28:33 +03:00
relrelb
e5806bb3d4
avm2: Implement `flash.display.JPEGXREncoderOptions`
2022-06-24 18:28:33 +03:00
relrelb
53401cc51d
avm2: Implement `flash.display.JPEGEncoderOptions`
2022-06-24 18:28:33 +03:00
relrelb
6779e406ce
avm2: Port `flash.display.InterpolationMethod` to ActionScript
2022-06-24 18:28:33 +03:00