TÖRÖK Attila
b282d1325a
core: Pass on H.264 packets from FLV streams to the video backend
2024-05-30 20:22:33 +02:00
sleepycatcoding
007a532717
avm2: Implement XMLList.contains
2024-05-30 00:43:45 +03:00
Tom Schuster
1fe1b8d67d
avm2: Introduce an E4XNamespace type (NFCI)
2024-05-29 22:37:40 +02:00
Kamil Jarosz
c32b27c294
core: Fix stop() when executing attachMovie in DoInitAction
...
This fixes a bug where the code in the first frame of a movie clip
could have been executed after the second frame
(so that instructions like stop did not work properly).
That is because when the first frame was executed in preload
(e.g. for a sprite attached using attachMovie), the actions were queued,
the second frame was executed in run_frame, and then the actions from
the first frame were executed.
Ensuring that all actions are executed after preload fixes this issue.
2024-05-28 23:57:13 +02:00
Adrian Wielgosik
2532d7e927
avm2: Refactor Executable->BoundMethod, introduce freestanding exec()
2024-05-28 23:32:21 +02:00
Kamil Jarosz
3bb47db5f9
avm1: Move FunctionObject's base to FunctionObjectData
...
This shrinks AVM1's Object (from 24 to 16 bytes on x64), and
allows future shrinkage of AVM1's Value (e.g. from 24 to 16 bytes
on x64 after putting all strings behind a Gc pointer).
2024-05-28 23:18:11 +02:00
Kamil Jarosz
658e800dfc
core: Drop the focus when it's made invisible
...
When an object has focus and is made invisible,
the focus should be dropped.
2024-05-28 23:01:12 +02:00
Kamil Jarosz
23c1d32990
core: Pass UpdateContext to set_visible
2024-05-28 23:01:12 +02:00
dependabot[bot]
a6a683ffa1
build(deps): bump the cargo-minor group with 2 updates
...
Bumps the cargo-minor group with 2 updates: [serde](https://github.com/serde-rs/serde ) and [proc-macro2](https://github.com/dtolnay/proc-macro2 ).
Updates `serde` from 1.0.202 to 1.0.203
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.202...v1.0.203 )
Updates `proc-macro2` from 1.0.83 to 1.0.84
- [Release notes](https://github.com/dtolnay/proc-macro2/releases )
- [Commits](https://github.com/dtolnay/proc-macro2/compare/1.0.83...1.0.84 )
---
updated-dependencies:
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-minor
- dependency-name: proc-macro2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-05-28 00:48:13 +02:00
sleepycatcoding
cd24b91a82
avm2: Implement XMLList to XML proxy methods
2024-05-27 21:47:22 +02:00
sleepycatcoding
ab0792904b
avm2: Stub XML.add/set/removeNamespace
2024-05-27 21:47:22 +02:00
Nathan Adams
381b0897c9
avm2: Implement ExternalInterface.objectID
2024-05-26 23:00:33 +02:00
Kamil Jarosz
1bf9756b4e
text: Allow selecting text by dragging
...
This patch allows selecting text by pressing and dragging the mouse.
2024-05-26 12:38:16 +02:00
Adrian Wielgosik
bafc5d250e
tests: Add a depdendent string test, with test-only AS3
2024-05-26 12:14:30 +02:00
Adrian Wielgosik
d6dbc5e767
core: Support dependent strings for concatenation
2024-05-26 12:14:30 +02:00
dependabot[bot]
f712c9212c
build(deps): bump syn from 2.0.65 to 2.0.66 in the cargo-minor group
...
Bumps the cargo-minor group with 1 update: [syn](https://github.com/dtolnay/syn ).
Updates `syn` from 2.0.65 to 2.0.66
- [Release notes](https://github.com/dtolnay/syn/releases )
- [Commits](https://github.com/dtolnay/syn/compare/2.0.65...2.0.66 )
---
updated-dependencies:
- dependency-name: syn
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-05-25 17:35:23 +02:00
Aaron Hill
f8e97808e4
core: Store MovieClip avm2_class in MovieClipStatic
...
This is preparation for allowing a class to be linked
to the root movie clip and instantiated.
2024-05-25 10:14:44 -04:00
Kamil Jarosz
0edb7d6890
core: KeyPress events have precedence over tabbing
...
When there's a button that handles KeyPress "Tab" event (code 18),
the tabbing should not be performed.
2024-05-25 01:12:43 +02:00
Kamil Jarosz
277390aab4
core: Render EditText's selection when filters are present
...
This patch ensures that the selection in EditText is rendered even when
filters are present (so that cache as bitmap is enabled).
This is done by invalidating the cached bitmap on selection change.
2024-05-24 23:52:03 +02:00
Kamil Jarosz
8ac7a58d4e
debug_ui: Improve EditText tab
...
This patch adds multiple properties and controls to EditText tab.
This includes for instance:
* border, border color,
* background, background color,
* editable, selectable, word wrap properties,
* autosize, max chars, restrict, etc.
2024-05-24 09:07:21 -04:00
Kamil Jarosz
6c67e7485e
core: Invalidate EditText's bitmap when border is disabled
...
This patch makes sure that the bitmap is invalidated not only when
a border or background was enabled, but also when both were disabled
and the drawing has only been cleared.
2024-05-24 09:07:21 -04:00
sleepycatcoding
671be1a810
avm2: Fix a few XML prototype method signatures
2024-05-21 23:51:35 +02:00
Tom Schuster
3949110f6b
avm2: request_from_url_request should fail when the url property is null
2024-05-21 20:45:20 +02:00
Tom Schuster
f54e3fdbd0
avm2: Introduce the make_error_2007 helper
2024-05-21 20:45:20 +02:00
sleepycatcoding
a5c3474bbc
avm2: Implement Namespace enumeration
2024-05-21 20:26:35 +02:00
Nathan Adams
b9947a2d1c
avm2: Add more Namespace tests and fixed some other cases
2024-05-21 19:57:39 +02:00
Nathan Adams
3692cbbb2e
avm2: Implement Namespace constructor and prefix
2024-05-21 19:57:39 +02:00
TÖRÖK Attila
2dec49941a
chore: Refer to a specific git hash of jpegxr instead of a branch
2024-05-21 18:38:29 +02:00
dependabot[bot]
c0b0b8257f
build(deps): bump the cargo-minor group with 6 updates
...
----
updated-dependencies:
- dependency-name: anyhow
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-minor
- dependency-name: thiserror
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-minor
- dependency-name: syn
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-minor
- dependency-name: proc-macro2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-minor
- dependency-name: crossbeam-channel
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-minor
- dependency-name: zip
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-20 20:56:02 +00:00
Aaron Hill
f301b23f6e
core: Treat NaN rotation as 0.0 when setting scaleX/scaleY
...
The `rotation` value is still reported to ActionScript as `NaN`,
but we treat it as 0.0 when computing the new matrix in the
scaleX/scaleY setters.
2024-05-19 09:52:07 -07:00
Lord-McSweeney
78e9426ba9
avm2: Add some comments for clarification
2024-05-18 17:01:49 -07:00
Lord-McSweeney
c93873a7a2
avm2: Add a note on the `FindProp(Strict)` to `GetScriptGlobals` optimization
2024-05-18 17:01:49 -07:00
Lord-McSweeney
a88d9dc07b
avm2: Simple scoping is not required to optimize GetGlobalScope and GetGlobalSlot
2024-05-18 17:01:49 -07:00
Lord-McSweeney
267e3693ca
Appease clippy
2024-05-18 17:01:49 -07:00
Lord-McSweeney
3fb549f1b5
avm2: Handle lazy multiname in findprop optimization
2024-05-18 17:01:49 -07:00
Lord-McSweeney
eb27151af7
avm2: Don't call global init in optimizer
2024-05-18 17:01:49 -07:00
Lord-McSweeney
12174b5219
avm2: Propagate types from getslot, getglobalscope, and getglobalslot in optimizer
2024-05-18 17:01:49 -07:00
Lord-McSweeney
92de618261
avm2: Fix some very minor bugs with findprop optimization
2024-05-18 17:01:49 -07:00
Lord-McSweeney
796dda1ae0
avm2: Remove `fork_vtable` hack
2024-05-18 17:01:49 -07:00
Lord-McSweeney
767b7b4e44
avm2: Optimize findproperty and findpropstrict to getouterscope, getscopeobject, and getscriptglobals when possible
2024-05-18 17:01:49 -07:00
Lord-McSweeney
f50b68abfd
avm2: Split `GetLex` into `FindPropStrict` and `GetProperty`
2024-05-18 17:01:49 -07:00
Colin
f573f7b141
avm1: Make clip have correct properties when the target of loadClip
2024-05-17 23:07:44 +02:00
dependabot[bot]
5fbf39fd7a
build(deps): bump the cargo-minor group across 1 directory with 7 updates
...
Bumps the cargo-minor group with 7 updates in the / directory:
| Package | From | To |
| --- | --- | --- |
| [async-channel](https://github.com/smol-rs/async-channel ) | `2.3.0` | `2.3.1` |
| [serde](https://github.com/serde-rs/serde ) | `1.0.201` | `1.0.202` |
| [either](https://github.com/rayon-rs/either ) | `1.11.0` | `1.12.0` |
| [syn](https://github.com/dtolnay/syn ) | `2.0.63` | `2.0.64` |
| [toml_edit](https://github.com/toml-rs/toml ) | `0.22.12` | `0.22.13` |
| [insta](https://github.com/mitsuhiko/insta ) | `1.38.0` | `1.39.0` |
| [toml](https://github.com/toml-rs/toml ) | `0.8.12` | `0.8.13` |
Updates `async-channel` from 2.3.0 to 2.3.1
- [Release notes](https://github.com/smol-rs/async-channel/releases )
- [Changelog](https://github.com/smol-rs/async-channel/blob/master/CHANGELOG.md )
- [Commits](https://github.com/smol-rs/async-channel/compare/v2.3.0...v2.3.1 )
Updates `serde` from 1.0.201 to 1.0.202
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.201...v1.0.202 )
Updates `either` from 1.11.0 to 1.12.0
- [Commits](https://github.com/rayon-rs/either/compare/1.11.0...1.12.0 )
Updates `syn` from 2.0.63 to 2.0.64
- [Release notes](https://github.com/dtolnay/syn/releases )
- [Commits](https://github.com/dtolnay/syn/compare/2.0.63...2.0.64 )
Updates `toml_edit` from 0.22.12 to 0.22.13
- [Commits](https://github.com/toml-rs/toml/compare/v0.22.12...v0.22.13 )
Updates `insta` from 1.38.0 to 1.39.0
- [Release notes](https://github.com/mitsuhiko/insta/releases )
- [Changelog](https://github.com/mitsuhiko/insta/blob/master/CHANGELOG.md )
- [Commits](https://github.com/mitsuhiko/insta/compare/1.38.0...1.39.0 )
Updates `toml` from 0.8.12 to 0.8.13
- [Commits](https://github.com/toml-rs/toml/compare/toml-v0.8.12...toml-v0.8.13 )
---
updated-dependencies:
- dependency-name: async-channel
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-minor
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-minor
- dependency-name: either
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo-minor
- dependency-name: syn
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-minor
- dependency-name: toml_edit
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-minor
- dependency-name: insta
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo-minor
- dependency-name: toml
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-05-17 01:41:44 +02:00
Nathan Adams
b25fe69bac
avm1: Implement StyleSheet.load
2024-05-17 00:37:39 +02:00
Nathan Adams
c1e197189d
avm1: Implement most of StyleSheet
2024-05-17 00:37:39 +02:00
TÖRÖK Attila
331d1789da
render,core,desktop: Port to `wgpu` `v0.20.0`, switch to `egui` `master`
2024-05-17 01:19:01 +03:00
Nathan Adams
b8c1263f9e
avm1: Expose NativeObjects through SuperObject - fixes g2conline
2024-05-17 00:02:45 +02:00
Nathan Adams
dfd9a26a7b
avm1: Implement NetConnection, more or less
2024-05-17 00:02:45 +02:00
Kamil Jarosz
aeabe3cbb5
core: Implement proper automatic tab ordering
...
This patch implements proper automatic tab ordering that
behaves exactly the same as in FP.
The automatic order depends only on the position of
the top-left highlight bound corner, referred to as `(x,y)`.
It does not depend on object's size or other corners.
The value of `6y+x` is used to order objects by it.
This means that the next object to be tabbed is the next one
that touches the line `y=-(x-p)/6` (with the smallest `p`).
When two objects have the same value of `6y+x`
(i.e. when the line touches two objects at the same time),
only one of them is included.
This behavior is similar to the naive approach of
"left-to-right, top-to-bottom", but (besides being sometimes
seen as random jumps) takes into account the fact that
the next object to the right may be positioned slightly higher.
This is especially true for objects placed by hand or objects with
different heights (as FP uses the top left corner instead of the center).
This behavior has been discovered experimentally by placing
tabbable objects randomly and bisecting one of their
coordinates to find a difference in behavior.
2024-05-16 21:40:56 +02:00
sleepycatcoding
be8cbd64d6
core/render/web: Make FromStr exclusively for snake_case
2024-05-16 01:14:42 +03:00