Lord-McSweeney
a2150cbbbf
avm2: Implement IExternalizable interface
2023-03-02 01:32:43 -06:00
Nathan Adams
fcaa17308c
avm2: Workaround haxe calling addChild(this) before super()
2023-03-02 00:38:24 +01:00
Aaron Hill
f282331204
core: Call `overwrite_cpu_pixels_from_gpu` just before we draw
...
If we bail out early, we want to preserve the current GPU -> CPU
sync.
2023-03-01 12:30:22 -06:00
Aaron Hill
076016b1be
avm2: Get XMLList 'filter' syntax working
...
This requires the ability to do a limited 'set_property',
as well as `get_enumerant_value`.
To prevent modification of XMLLists derived from queries,
I've introduced a `target` field on `XMLList`. This is
`None` for lists created with `new XMLList()`, and `Some`
when the list was derived from a query on an existing `XML`
/`XMLList`. We only allow `set_property` when `target` is `None`:
this is enough for filtering to work, and prevents silent incorrect
execution when trying to modify an existing node.
2023-03-01 12:04:02 -06:00
Aaron Hill
44a301e16a
avm2: Add `attribute` and `attributes` methods to `XML/XMLList`
2023-03-01 10:51:21 -06:00
Aaron Hill
1099218fdd
avm2: Stub Mouse.supportsCursor and Mouse.supportsNativeCursor
...
Since these are static properties, Ruffle previously (correctly)
returned `undefined` for SWFs that tried to access them, intead
of throwing an error.
2023-03-01 09:30:10 -06:00
Aaron Hill
78c9de7b8f
avm2: Fix constructing empty XMLList
...
A default empty text node should only be created for XML.
2023-03-01 15:57:34 +01:00
Aaron Hill
61a664fec6
core: Produce an error when BitmapData.draw call is unsupported
2023-02-28 18:20:53 -06:00
EmperorBale
9338f1daa8
avm2: Fix default domain when loading movieclip
2023-02-28 13:04:24 -08:00
Marty_SVK
9c844678b5
avm2: Stub TextField.condenseWhite
2023-02-28 21:25:01 +01:00
relrelb
b3fd1a47c6
core: Require `SwfMovie::url`
2023-02-28 19:05:20 +02:00
Lord-McSweeney
c01edc90bc
avm2: Stub `flash.text.StyleSheet` ( #9747 )
2023-02-28 16:35:47 +00:00
Nathan Adams
91a54f9e41
avm2: Use flags.set(foo) instead of |= foo
2023-02-28 16:25:12 +01:00
Nathan Adams
545193b098
swf: Deduplicate GradientFilter again
2023-02-28 16:25:12 +01:00
Nathan Adams
07d441a750
core: Don't impl FilterAvm2Ext for individual Filter structs
2023-02-28 16:25:12 +01:00
Nathan Adams
f79015e201
render: Use swf Filter types where possible. Gradient types had to be split into duplicate classes to allow for different trait impls based on which gradient filter type it is.
2023-02-28 16:25:12 +01:00
Nathan Adams
b8f7c66980
core: map_point in DisplacementMapFilter is i32 not u32
2023-02-28 16:25:12 +01:00
Nathan Adams
30a114a441
tests: Add avm2/convolution_filter test for swf->core->avm2 and avm2->core->avm2 testing
2023-02-28 16:25:12 +01:00
Nathan Adams
3777210117
core: Angle from swf tag is in radians, convert it to degrees
2023-02-28 16:25:12 +01:00
Nathan Adams
acc3180db7
core: Strength in filters is a f32, not u8
2023-02-28 16:25:12 +01:00
Nathan Adams
1408252ca3
core: Switch DisplayObjectBase::filters from avm2 objects to Vec<Filter>
2023-02-28 16:25:12 +01:00
Nathan Adams
e39fbe871d
render: Add Filter::GradientGlowFilter
2023-02-28 16:25:12 +01:00
Nathan Adams
bb38a7fa55
render: Add Filter::GradientBevelFilter
2023-02-28 16:25:12 +01:00
Nathan Adams
c8030d047d
render: Add Filter::GlowFilter
2023-02-28 16:25:12 +01:00
Nathan Adams
c9656c429e
render: Add Filter::DropShadowFilter
2023-02-28 16:25:12 +01:00
Nathan Adams
dbe2efff00
render: Add Filter::DisplacementMapFilter
2023-02-28 16:25:12 +01:00
Nathan Adams
f9c7303f01
render: Add Filter::ConvolutionFilter
2023-02-28 16:25:12 +01:00
Nathan Adams
9c1f6ea129
render: Add Filter::BevelFilter
2023-02-28 16:25:12 +01:00
Nathan Adams
5ee3a4b512
avm2: Extract out the Value -> Filter logic into a trait
2023-02-28 16:25:12 +01:00
Aaron Hill
54eb6e33ca
avm2: Ignore XML comments and processing instructions by default
...
This matches the default value of the settings on XML.
2023-02-27 15:53:39 -06:00
EmperorBale
4adb7853b7
avm2: Add concurrent classes
2023-02-27 12:27:37 -08:00
EmperorBale
d166295ee1
avm2: Add Telemetry class
2023-02-27 12:13:16 -08:00
Aaron Hill
82d03b4062
avm2: Ignore XML declaration and doctype
...
These are completely ignored by AVM2
2023-02-27 13:41:18 -06:00
Aaron Hill
c04b463f1f
avm2: Implement XML.children, XMLList.children, and related methods
2023-02-27 13:25:16 -06:00
Aaron Hill
7f58b92348
avm2: Implement encodeURI and encodeURIComponent
2023-02-27 12:40:39 -06:00
Nathan Adams
cfcd257932
avm2: Xml(foo) converts foo to string
2023-02-27 17:37:28 +01:00
Nathan Adams
38d1478ffa
avm2: Implement Sprite.hitArea
2023-02-27 16:28:14 +01:00
Lord-McSweeney
6630222ba9
avm2: Stub flash.profiler.showRedrawRegions ( #9732 )
2023-02-25 19:52:45 -05:00
Aaron Hill
f9fc4b3179
avm2: Store interfaces from superclases/superinterfaces in ClassObject ( #9728 )
2023-02-25 23:57:50 +00:00
Aaron Hill
c7709dffec
avm2: Handle Event::CData when parsing XML
2023-02-25 17:26:31 -06:00
Adrian Wielgosik
55c59da6ac
avm2: Convert TextFormat to AS
2023-02-25 23:55:43 +01:00
Adrian Wielgosik
35120e9fdc
avm2: Convert Graphics to AS
2023-02-25 23:55:43 +01:00
Adrian Wielgosik
b9dc8a4d52
avm2: Do not box primitives when doing AS-level coercions
2023-02-25 23:31:17 +01:00
Adrian Wielgosik
e063d5b5a8
avm2: Fix coerce_to_boolean on boxed primitives
2023-02-25 23:31:17 +01:00
Lord-McSweeney
16b724246c
Remove stub mention from BitmapData
2023-02-25 23:12:39 +01:00
Lord-McSweeney
f14ef0a4dd
Cleanup globals.as
2023-02-25 23:12:39 +01:00
Lord-McSweeney
9c8f99e9ce
Use AvmError instead of RustError when throwing argumentError in Stage.
2023-02-25 23:12:39 +01:00
Lord-McSweeney
91ae3ae31e
Port Stage overrides to ActionScript
...
And throw IllegalOperationError s.
2023-02-25 23:12:39 +01:00
Lord-McSweeney
e72a935f1b
Move IllegalOperationError up so Stage can use it
2023-02-25 23:12:39 +01:00
Aaron Hill
b26f2fd6fb
avm2: Initial incomplete implementation of XML ( #9647 )
2023-02-25 20:06:36 +00:00