Commit Graph

8728 Commits

Author SHA1 Message Date
Nathan Adams ea424f3d1e avm2: Fix panic when constructing custom BitmapData from timeline 2023-03-19 07:47:40 +01:00
MrCheeze 9e71ea9124 web: Allow ExternalInterface.call to call methods of primitive types (close #9105) 2023-03-19 07:18:01 +01:00
Nathan Adams ae25ace3f6 tests: Recreated edittext tests 2023-03-19 06:55:07 +01:00
Nathan Adams 909a399911 tests: Add visual test for font selection 2023-03-19 06:55:07 +01:00
Nathan Adams 9cfd37cab2 core: Respect use_device_font for bullets 2023-03-19 06:55:07 +01:00
Nathan Adams 0f66f7bcb2 core: Fallback font lookup by any font with the same name 2023-03-19 06:55:07 +01:00
Nathan Adams 27f28fb547 avm2: Don't create new texts/sprites/buttons with an empty movie 2023-03-19 06:55:07 +01:00
Lord-McSweeney e5f75ff126 avm2: Fix TextField.getTextFormat arguments
These are used in the Rust handler, but were not correctly set in the AS bindings, leading to errors such as "Attempted to call flash::text::TextField::getTextFormat with 2 arguments (more than 0 is prohibited)"
2023-03-18 21:59:41 -07:00
Mike Welsh dfeba5330e tests: Add AVM1 BitmapData.hitTest test 2023-03-18 19:47:39 -07:00
Mike Welsh ea75dd3739 avm1: Implement BitmapData.hitTest 2023-03-18 19:47:39 -07:00
Mike Welsh b173176fee tests: Add test for #9885
A simpliied test case to test the #9885, where a hang occurred when
a button is removed while executing code in a v5 SWF.
2023-03-18 19:25:16 -07:00
Nicholas Cioli 9876e03ece core: Fix endless loop in `process_swf5_references`
This commit fixes an issue where ruffle locks up while trying to
resolve an item with non-MovieClip parents.
2023-03-18 19:25:16 -07:00
Nathan Adams 60a3765be2 core: Store winding rule in Drawing 2023-03-18 19:14:08 -07:00
Nathan Adams bc9e1d7c14 swf: Rename HAS_FILL_WINDING_RULE to NON_ZERO_WINDING_RULE 2023-03-18 19:14:08 -07:00
Nathan Adams 1004f3fee9 tests: Add a test for a shape with HAS_FILL_WINDING_RULE 2023-03-18 19:14:08 -07:00
Nathan Adams dc17f7dc30 tests: Add a test for rendering a self-intersecting glyph 2023-03-18 19:14:08 -07:00
Nathan Adams 6987c81623 render: Respect HAS_FILL_WINDING_RULE 2023-03-18 19:14:08 -07:00
Nathan Adams e7b812c2cd render: Glyphs are assumed to have HAS_FILL_WINDING_RULE 2023-03-18 19:14:08 -07:00
Tom Schuster e9e342fe23 avm2: Implement String call handler 2023-03-18 17:51:22 -07:00
Tom Schuster 5aac938e86 avm2: Implement XMLList.text() 2023-03-18 12:18:24 -07:00
Tom Schuster c285c1eb75 avm2: Implement XML.text 2023-03-18 11:12:15 -05:00
relrelb 156c76cb94 web: Simplify custom context menu separators logic
Instead deduplicating separators in `RufflePlayer.showContextMenu()`
using DOM attributes, do it right in `RufflePlayer.contextMenuItems()`,
using a simpler approach.
2023-03-18 02:10:08 -07:00
Nathan Adams b46f511326 avm2: Implement GraphicsTrianglePath 2023-03-18 06:27:49 +01:00
Nathan Adams 96bb0b8e2e avm2: Lazily create commands and data in GraphicsPath 2023-03-18 06:27:49 +01:00
Nathan Adams de8958c40b avm2: Implement GraphicsStroke 2023-03-18 06:27:49 +01:00
Nathan Adams 2eaaa9b573 avm2: Implement GraphicsSolidFill 2023-03-18 06:27:49 +01:00
Nathan Adams fe327dc3de avm2: Implement GraphicsPath 2023-03-18 06:27:49 +01:00
Nathan Adams 2567bd2f42 avm2: Implement GraphicsGradientFill 2023-03-18 06:27:49 +01:00
Nathan Adams 7f7fbc2091 avm2: Implement GraphicsEndFill 2023-03-18 06:27:49 +01:00
Nathan Adams 3e84da036f avm2: Implement GraphicsBitmapFill 2023-03-18 06:27:49 +01:00
David Wendt 47f594d108 avm2: Stub `flash.media.Microphone` and depended classes 2023-03-17 20:39:45 -06:00
Aaron Hill 580c18844e naga-agal: Remove 'do_extend'
This was a leftover from before we started usiung vec4 everywhere
for compatibility with AGAL. There are a few specific opcodes that
don't need extension, but it doesn't depend on the destination
register.
2023-03-17 20:11:59 -05:00
Aaron Hill 1e973af747 avm2: Implement Context3D.setRenderToTexture/setRenderToBackBuffer
In the process, I fixed a bug where we were clearing the depth
and stencil buffers with the incorrect value.

This makes Fancy Pants World 4 Part 1 playable to completion
(though there are still some rendering issues that need
to be fixed).
2023-03-17 20:11:59 -05:00
Aaron Hill d8a6195d67 tests: Use 'warn' log level for wpgu crates in regression tests
This makes the test output much less verbose.
2023-03-17 19:42:48 -05:00
David Wendt fe0cbc4cb8 avm2: Stub `flash.media.Camera` 2023-03-17 18:27:45 -06:00
Nathan Adams 3a353e15d1 avm2: Convert transform to use ParametersExt 2023-03-17 20:40:33 +01:00
Nathan Adams 218b621ae3 avm2: Convert external_interface to use ParametersExt 2023-03-17 20:40:33 +01:00
Nathan Adams 2513292566 avm2: Convert event_dispatcher to use ParametersExt 2023-03-17 20:40:33 +01:00
Nathan Adams fda3390aa1 avm2: Convert event to use ParametersExt 2023-03-17 20:40:33 +01:00
Nathan Adams 8db6375c4c avm2: Convert display_object_container to use ParametersExt 2023-03-17 20:40:33 +01:00
Nathan Adams 37f3ea7077 avm2: Convert interactive_object to use ParametersExt 2023-03-17 20:40:33 +01:00
Nathan Adams 82fc05667c avm2: Convert loader to use ParametersExt 2023-03-17 20:40:33 +01:00
Nathan Adams ed9257ee39 avm2: Convert (some of) movie_clip to use ParametersExt 2023-03-17 20:40:33 +01:00
Nathan Adams bc118109e4 avm2: Convert simple_button to use ParametersExt 2023-03-17 20:40:33 +01:00
Nathan Adams 652a8f86d6 avm2: Convert sprite to use ParametersExt 2023-03-17 20:40:33 +01:00
Nathan Adams b19ddbe0fc avm2: Convert stage to use ParametersExt 2023-03-17 20:40:33 +01:00
Tom Schuster 750291c993 avm2: Stub XML settings 2023-03-17 14:25:19 -05:00
Aaron Hill 9ff6ee21df avm2: Handle early class lookup during parameter resolution
This factors out the early-resolution logic I added in `op_coerce`,
making it useable during paramter resolution as well. This lets
a static initializer reference the containing class in parameter
types, even though the ClassObject hasn't yet been initialized.
2023-03-17 13:23:14 -05:00
Aaron Hill ba88b52167 avm2: Correctly apply 'skip_next_enter_frame' to Loader
We were missing the initial 'set_skip_next_enter_frame(true)'
call, and we weren't properly clearing it in `enter_frame`.
Loaders appear to have the same behavior as MovieClips.

This makes us correctly run the first framescript for the loaded
SWF.
2023-03-17 12:44:56 -05:00
nosamu 33f585fa6c avm2: Stub TextField.mouseWheelEnabled 2023-03-17 18:05:14 +01:00