Commit Graph

9894 Commits

Author SHA1 Message Date
nosamu e7689ac883 Revert "web: Make isTouch locally scoped to showContextMenu"
This completely broke touch detection
2023-07-15 19:14:13 +02:00
MrCheeze 901594b99f
avm2: Do not remove an EditText's selection on unfocus (fix #9006) + implement selectionBegin/selectionEnd/caretIndex (#9067)
* avm2: Do not remove an EditText's selection on unfocus (fix #9006)

There are significant differences between how selection and caret info
work between AVM1 and AVM2.

In AVM1, there is only a single, global selection, which applies to
whichever element is currently focused. Therefore changing the focus
necessarily erases any information of what was selected before. There
can also be no active selection at all.

In AVM2, every text field has its own independent selection info. It is
NOT optional, the default selection is just a caret at position 0. If a
field loses focus, the selection is not rendered, but it is still
present. Movies such as #9006 rely on the same selection still being
there once you give back focus to the field.

Ruffle's model of selections (an Option per text field) is different
from both the AVM1 model (an optional singleton) and the AVM2 model
(mandatory per text field). This fix does not change that, it is only a
narrow fix targeted at 9006.

* avm2: implement selectionBegin/selectionEnd/caretIndex and add a test.

The selection test validates a few situations, including the behaviour
when unfocusing that was fixed in the previous commit.

The test does not validate how the selection changes after replacing
text, as there are still some inaccuracies there.

* avm2: Additional selection fixes needed after merging with master.

1. The default caret for an AVM2 textbox is at the end of the textbox,
   not the beginning.
2. Selection should not be changed when focusing on a textbox in AVM2.
3. Fixed a test whose output.txt didn't actually match the flash player
   output.

* avm2: Make the selection AVM checks compatible with mixed AVM, and revert the on_focus_changed parameters

---------

Co-authored-by: Nathan Adams <dinnerbone@dinnerbone.com>
2023-07-15 16:17:45 +00:00
Nathan Adams 26cf380aa4 avm2: Fix Array.sort(function) 2023-07-15 17:53:05 +02:00
Lord-McSweeney 3e193214df swf: Ignore bad ConstantPool string reads 2023-07-15 12:10:36 +02:00
Lord-McSweeney 61a4ded851 swf: Ignore bad ActionTry opcodes 2023-07-15 12:10:36 +02:00
CUB3D e4bd1908bd chore: Fmt 2023-07-15 11:45:02 +02:00
CUB3D 14712b46c6 chore: Fix clippy lint 2023-07-15 11:45:02 +02:00
CUB3D d7a780f5ea core: Fix caching order, add test 2023-07-15 11:45:02 +02:00
CUB3D 27bc6e9609 avm1: Fix panic on writing self-referential SharedObjects 2023-07-15 11:45:02 +02:00
Abiel Deneke ae1853f639 tests: Add test for `Matrix3D.transformVectors` 2023-07-14 23:39:39 -04:00
Abiel Deneke 4afcadf4fd avm2: Implement `Matrix3D.transformVectors` 2023-07-14 23:39:39 -04:00
Nathan Adams ee7412d733 wgpu: Fix off-by-one in blur size calculation 2023-07-15 01:49:57 +02:00
michiel2005 6b423a7eef Ran cargo fmt 2023-07-14 16:51:07 -06:00
michiel2005 fc32dc3671 Removed some code that was double checking without any need. 2023-07-14 16:51:07 -06:00
michiel2005 c812a8af54 checked for movie equality in check_display_object_equality().
Makes code more readable.
2023-07-14 16:51:07 -06:00
michiel2005 4f605947e5 Well, we don't talk about this mistake. 2023-07-14 16:51:07 -06:00
michiel2005 2307bd7e74 Changed down_object to pressed and removed one issue in my code Lord-McSweeney found 2023-07-14 16:51:07 -06:00
michiel2005 8834b3b42b Added changes as Adrian recommended 2023-07-14 16:51:07 -06:00
michiel2005 412f2880ad Removed a unnecessary variable 2023-07-14 16:51:07 -06:00
michiel2005 90cb88d50e We're also checking for the depth now when searching for displayobjects 2023-07-14 16:51:07 -06:00
michiel2005 aaede767fe Made sure that the objects are actually in the same movie and added a bit of documentation 2023-07-14 16:51:07 -06:00
michiel2005 8141e7b54c avm1: fix buttons that were not clickable after a goto 2023-07-14 16:51:07 -06:00
Moulins 3ea67668c0 render: make Context3D renderers fully GC-agnostic
The 'gc_arena' dependency was only used to manipulate the `GcCell`s
containing the vertex and fragment shaders; replacing these by a
reference to a plain old `Cell` means tha  the Context3D traits and
types do not need to interact with GC'd object anymore.

As a knock-on effect, we can also remove the `Activation` parameter
from most of the `Context3DObject` methods.
2023-07-14 16:06:36 -06:00
Moulins a0ad308de0 avm2: use an inner RefLock instead of GcCell in Context3D-related objects 2023-07-14 16:06:36 -06:00
relrelb 204cf4b2bc avm1: Migrate `Xml` to `NativeObject` 2023-07-14 17:10:10 +03:00
TÖRÖK Attila 49e9376e12 tests/visual: Update avm1/avm2 netstream_play_flv expected images
These changed imperceptibly due to deblocking.
2023-07-14 14:44:23 +02:00
TÖRÖK Attila 39c493ebd5 tests/visual: Disable deblocking for the h263 colorconversion test
Since this functionality was not enabled before, the reference image is
not deblocked. This commit disables deblocking for the test to match the
reference image, and eliminate deblocking as a source of differences.
2023-07-14 14:44:23 +02:00
TÖRÖK Attila f55cbf0a92 tests/visual: Add a basic test for h263 video deblocking 2023-07-14 14:44:23 +02:00
TÖRÖK Attila 39e51a7dcf video/h263: Add a deblocking filter as a postprocessing step 2023-07-14 14:44:23 +02:00
TÖRÖK Attila 765ceb70a0 chore: Bump h263-rs git ref to latest master 2023-07-14 14:44:23 +02:00
Nathan Adams e0886707c5 tests: Exclude WARP for blur_scales_with_screen 2023-07-12 18:51:11 +02:00
Nathan Adams c3fdfc17dd swf: Scale filter distances where appropriate 2023-07-12 18:51:11 +02:00
Nathan Adams 5c13d323b3 wgpu: Implement the undocumented ability to disable compositeSource for glow/shadow 2023-07-12 18:51:11 +02:00
Nathan Adams c9a241f12b wgpu: When sampling outside of blur texture, use 0 2023-07-12 18:51:11 +02:00
Nathan Adams 6f98b3d596 wgpu: Saturate alpha in glow shader 2023-07-12 18:51:11 +02:00
Nathan Adams 8cb6e5bdf0 wgpu: Implement drop shadow filter 2023-07-12 18:51:11 +02:00
Nathan Adams aab03290be wgpu: Add extra set of UVs to glow filter, to support separate blur rects 2023-07-12 18:51:11 +02:00
Nathan Adams aba2394732 wgpu: Respect alpha for glows 2023-07-12 18:51:11 +02:00
Nathan Adams f150a32d86 core: Only scale filters with stage view matrix 2023-07-12 18:51:11 +02:00
Nathan Adams 1aa2ac28c2 wgpu: Slight opimitsation to blur filter by not needing to calculate full_width per fragment 2023-07-12 18:51:11 +02:00
Nathan Adams 30e7a1eac6 core: Account for filter size changes when drawing cacheAsBitmaps 2023-07-12 18:51:11 +02:00
Nathan Adams 8f78fd410b swf: Don't require Coordinate (only Twips) for Rectangles, only when using valid-checking stuff 2023-07-12 18:51:11 +02:00
Nathan Adams d721072825 core: Extract DrawCacheInfo type from big tuple inside render_base 2023-07-12 18:51:11 +02:00
Nathan Adams b30c522f9c wgpu: Implement glow filter 2023-07-12 18:51:11 +02:00
Nathan Adams 44024e77c3 swf: Add inner_blur_filter() method to filters that contain blurs 2023-07-12 18:51:11 +02:00
Nathan Adams f9ec5eb9b8 avm1: Make XMLNode constructor use NativeObject directly 2023-07-12 18:33:58 +02:00
Nathan Adams d4b81cae5c avm1: Migrate XMLNode to NativeObject 2023-07-12 18:33:58 +02:00
Nathan Adams 2459ae5230 chore: Fix clippy 'useless-vec' 2023-07-12 18:17:43 +02:00
renovate[bot] f0607d6a1f chore(deps): lock file maintenance rust dependencies 2023-07-11 22:42:51 +02:00
nosamu 17df97a59a core: Fix panic from oversized bitmap warning
And warn only once per bitmap
2023-07-11 22:02:35 +02:00