Commit Graph

4631 Commits

Author SHA1 Message Date
CUB3D 391b3a9dfb avm2: Selecting the child of a SimpleButton should select the button, not the child
This fixes ingame menu buttons in BLOCnog
2022-12-18 13:32:24 -07:00
CUB3D fa44d61bc5 avm2: MouseEnabled shouldn't affect abillity to select children
Fixes #8694
2022-12-18 13:32:24 -07:00
CUB3D 690191dbdf avm2: Fix SimpleButton bounds 2022-12-18 13:32:24 -07:00
CUB3D f1401d6837 avm2: Fix hittests on depth=0 children 2022-12-18 13:32:24 -07:00
Mike Welsh c30eb38741 audio: Rename symphonia feature to mp3 2022-12-17 22:48:42 -08:00
Mike Welsh d162363c2f audio: Remove minimp3 feature 2022-12-17 22:48:42 -08:00
Moulins 625f09a91a avm1: remove unused GcCell in ArrayObject and SuperObject 2022-12-17 21:12:43 -08:00
Moulins 62e64c714e avm1: remove most of the contents of impl_custom_object! macro
The delegating methods are moved to default implementations on the
TObject trait, delegating to self.raw_script_object()
2022-12-17 21:12:43 -08:00
Moulins eadbf92454 avm1: rename TObject::{as => raw}_script_object & remove Option in ret. type
Usage of TObject::as_script_object was always followed by an unwrap, and
only SuperObject returned None.
The name change is intended to make clearer the fact that using the
returned object may bypass special behavior.
2022-12-17 21:12:43 -08:00
David Wendt 1255bf1c59 core: Don't fire init events on AVM2 until the first frame has been constructed. 2022-12-17 20:47:49 -08:00
Mike Welsh 696c9062d3 chore: Inherit cargo metadata from workspace
Use workspace inheritance added in Rust 1.64 to de-duplicate
various settings across all packages.
2022-12-16 15:53:59 -08:00
Adrian Wielgosik 870745e0ef avm2: Make pop_stack #[must_use] 2022-12-16 14:40:22 -08:00
Adrian Wielgosik 7df920b255 avm2: Support indexing with QNames 2022-12-16 14:40:22 -08:00
Adrian Wielgosik d2dfdb9a0b avm2: Collapse PackageNamespace to Namespace 2022-12-16 12:51:01 -08:00
relrelb 14747f26fd chore: Fix `clippy::uninlined_format_args` for `avm_debug!`
Though this is not currently enforced by Clippy.
2022-12-15 08:59:38 +02:00
relrelb bd9078addf chore: Fix `clippy::uninlined_format_args` lints 2022-12-15 08:59:38 +02:00
nosamu f904f20796 avm2: Stub SharedObject.clear and SharedObject.size 2022-12-15 08:41:28 +02:00
Adrian Wielgosik 92998e2c91 avm2: Translate ExternalInterface to AS 2022-12-14 17:57:45 +01:00
Adrian Wielgosik 5e115ed038 avm2: Stub more parts of LocalConnection and UrlRequest 2022-12-13 10:22:20 +01:00
Adrian Wielgosik c8314da8d3 avm2: Fix aliasing in BitmapData.copyChannel 2022-12-13 01:24:49 +01:00
Callum Thomson 20c9a3d765
AVM2: Implement System.setClipboard (#8751)
* avm2: Implement System.setClipboard

* web: Add comment to set_clipboard_content
2022-12-13 01:05:23 +01:00
CUB3D 02360b28dc avm2: Implement basic flash.net.navigateToURL 2022-12-13 00:34:10 +01:00
dependabot[bot] b1c4e6f143 build(deps): bump serde from 1.0.149 to 1.0.150
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.149 to 1.0.150.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.149...v1.0.150)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-12 21:21:45 +01:00
nosamu 1aaaf6d421 avm2: Stub SharedObject.close 2022-12-10 21:38:19 -06:00
Adrian Wielgosik 2bb4e2e549 core: Fix failing builds without avm_debug feature 2022-12-07 00:34:01 +01:00
David Wendt 8678325686 core: `Loader` must pass enter/construct frame lifecycle events to children or loaded SWFs won't work 2022-12-06 20:10:30 +01:00
Adrian Wielgosik e351f9f19b core: use ctrl+alt+f to dump DO render tree 2022-12-05 19:49:41 -07:00
Adrian Wielgosik 7b64fcf5fa avm2: Fix indirect event dispatching 2022-12-06 00:44:17 +01:00
dependabot[bot] 061f261c50 build(deps): bump syn from 1.0.104 to 1.0.105
Bumps [syn](https://github.com/dtolnay/syn) from 1.0.104 to 1.0.105.
- [Release notes](https://github.com/dtolnay/syn/releases)
- [Commits](https://github.com/dtolnay/syn/compare/1.0.104...1.0.105)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-05 23:15:10 +01:00
dependabot[bot] 3b285f8cf2 build(deps): bump serde from 1.0.148 to 1.0.149
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.148 to 1.0.149.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.148...v1.0.149)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-05 22:35:48 +01:00
kmeisthax f79208c75f
avm2: Fix no-op gotos (#8667)
* tests: Add a test for issue #8630

* core: No-op gotos in AS3 do not actually do anything, even though they emit events

Fixes issue #8630

* tests: Add more tests for various #8630-adjacent cases

* tests: Ignore the tests with script removal as they expect MovieClip children to be nulled upon removal

* chore: Case sensitive filesystem fix

Co-authored-by: Adrian Wielgosik <adrian.wielgosik@gmail.com>
2022-12-05 18:19:29 +01:00
wsxarcher c8e39da1e0 avm2: Implement filefilter filereference 2022-12-04 15:10:48 +01:00
Toad06 dcf1fb4ffd avm1: Various minor fixes in filters 2022-12-04 14:19:41 +01:00
Aaron Hill 1b3070ab85 core: Make `BitmapHandle` hold a trait object instead of an id
`BitmapHandle` now holds `Arc<dyn BitmapHandleImpl>`.
This allows us to move all of the per-bitmap backend data into
`BitmapHandle`, instead of holding an id to a backend-specific
hashmap.

This fixes the memory leak issue with bitmaps. Once the AVM side of a
bitmap (`Bitmap`/`BitmapData`) gets garbage-collected, the
`BitmapHandle` will get dropped, freeing all of the GPU resources
assoicated with the bitmap.
2022-12-03 19:44:44 -06:00
Adrian Wielgosik 0861153626 swf: make Clippy happy 2022-12-03 22:18:22 +01:00
David Wendt ce35313094 Revert "Revert "avm2: Implement `TextField` scrolling parameters""
This reverts commit f08aa19cb7.
2022-12-02 21:41:20 -05:00
Adrian Wielgosik f08aa19cb7 Revert "avm2: Implement `TextField` scrolling parameters"
This reverts commit 230ef315a2.
2022-12-02 18:22:19 -07:00
David Wendt 230ef315a2 avm2: Implement `TextField` scrolling parameters 2022-12-02 22:40:22 +01:00
Marco Bartoli f2080e6d57
avm2: implement get and set of displayobject filters (#8623) 2022-12-01 02:31:35 +01:00
dependabot[bot] 83487ae5d1 build(deps): bump serde from 1.0.147 to 1.0.148
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.147 to 1.0.148.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.147...v1.0.148)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-30 10:04:26 +01:00
dependabot[bot] e3923e0d3d build(deps): bump syn from 1.0.103 to 1.0.104
Bumps [syn](https://github.com/dtolnay/syn) from 1.0.103 to 1.0.104.
- [Release notes](https://github.com/dtolnay/syn/releases)
- [Commits](https://github.com/dtolnay/syn/compare/1.0.103...1.0.104)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-29 20:47:36 -07:00
Calvin304 5d5a56a7a3 avm2: Address feedback to DropShadowFilter stub 2022-11-27 09:46:18 -05:00
Calvin304 e46fc4fe8a avm2: stub DropShadowFilter 2022-11-27 09:46:18 -05:00
Marco Grassi 0c851ecfde don't include all the features in chrono to avoid including the vulnerable time dependency 2022-11-26 14:04:59 -05:00
Marco Grassi ad81b3bf14 upgrade lock and toml dependencies 2022-11-26 14:04:59 -05:00
Aaron Hill b8745f0ff1 avm2: Partially implement Stage3D for wgpu backend
This PR implements core 'stage3D' APIs. We are now able
to render at least two demos from the Context3D docs - a simple
triangle render, and a rotating cube.

Implemented in this PR:
* Stage3D access and Context3D creation
* IndexBuffer3D and VertexBuffer3D creation, uploading, and usage
* Program3D uploading and usage (via `naga-agal`)
* Context3D: configureBackBuffer, clear, drawTriangles, and present

Not yet implemented:
* Any 'dispose()' methods
* Depth and stencil buffers
* Context3D texture apis
* Scissor rectangle

General implementation strategy:

A new `Object` variant is added for each of the Stage3D objects
(VertexBuffer3D, Program3D, etc). This stores a handle to the
parent `Context3D`, and (depending on the object) a handle
to the underlying native resource, via `Rc<dyn
SomeRenderBackendTrait>`).

Calling methods on Context3D does not usually result in an immediate
call to a `wgpu` method. Instead, we queue up commands in our
`Context3D` instance, and execute them all on a call to `present`.
This avoids some nasty wgpu lifetime issues, and is very similar
to the approah we use for normal rendering.

The actual rendering happens on a `Texture`, with dimensions
determined by `createBackBuffer`. During 'Stage' rendering,
we render all of these Stage3D textures *behind* the normal
stage (but in front of the overall stage background color).
2022-11-25 21:43:00 -07:00
Toad06 460458812b avm1: Correct some properties in SWFv4 2022-11-25 20:35:59 -07:00
Aaron Hill 3bef8c4fd6 render: Remove `get_bitmap_pixels` and store data in `Character::Bitmap`
We only called `get_bitmap_pixels` when creating a `BitmapData`
for an SWF-provided `Bitmap`. We now store the initial pixels
in `Character::Bitmap`, and use them to initialize a `BitmapData`
when needed.

This lets us simplify the wgpu backend, which no longer needs
to store a `Bitmap` object. In addition to saving space for
`BitmapData` objects that lack an SWF `Bitmap`, this will make
it easier to move data from `bitmap_registry` into `BitmapHandle`
itself.
2022-11-25 16:08:42 -07:00
Mark Richins d345523d02 Fix conflicts 2022-11-23 20:45:37 -07:00
Mark Richins 9941701b3a Fix: change twips_2d to use x and y and fix bug 2022-11-23 20:45:37 -07:00