Note: This release has breaking changes.
- REFACTOR: Update _TestBlock on collision_callback_benchmark_test to use named parameters (#3975). (9601dd71)
- PERF: Skip lifecycle processing work when the queue is empty (#3978). (e2fe2006)
- PERF: Compose one transform for polygon global vertices and hoist the circle center out of the edge loop (#4046). (0bd4ba81)
- PERF: Cache camera render closures instead of allocating per frame (#3979). (f212fbca)
- PERF: Only test polygon edges inside the hitbox overlap and drop allocations from segment intersection (#4045). (a9a3dd92)
- PERF: Cache the rotation and skip redundant work in Transform2D (#4024). (569b1737)
- PERF: Insertion-sort the sweep broadphase and swap-remove its active list (#3983). (55eaec4d)
- PERF: Replace generator-based tree teardown and propagation with an explicit collection pass (#3981). (f7246c10)
- PERF: Make render contexts and debug caches lazily allocated (#3980). (8f6bb045)
- FIX: Unwind the context trace consistently after event delivery (#4037). (f219f7f6)
- FIX: Recognize every input callbacks mixin when hit testing (#3994). (58247cbb)
- FIX: Reset AdvancedButtonComponent state when a tap is cancelled (#4049). (04358b21)
- FIX: Adapt to Flutter 3.47 (#3995). (0453bad6)
- FIX: Keep TextComponent glyphs in place when its paint changes (#4041). (5390a7db)
- FIX: Scan the lifecycle queue without its iterator in dequeueAdd/dequeueRemove (#4021). (b4578fc6)
- FIX: Clear removing state on the moved child instead of its new parent (#3958). (8bd84750)
- FIX: Add a version constraint to the material_ui dependency (#4075). (7ce35d85)
- FIX: Correct parent context lookup on LocationContextEvent (#4036). (5b5c6063)
- FIX: Keep currentCameras balanced when componentsAtPoint is not fully iterated (#3971). (783f4041)
- FIX: Require touch slop before DragCallbacks accepts a drag (#4017). (a4c39877)
- FIX: Prevent text layouting to break punctuation on adjacent spans (#4060). (ba16cf80)
- FEAT: Add support to use convex/concave Path shapes in PolygonComponent, PolygonHitbox and Polygon (#4048). (95bc6120)
- FEAT: Add inspect, set, pause, resume, step, debug and overlay commands to flame_cli (#4055). (8bbd6b3a)
- FEAT: Add game snapshots and a new flame_cli package to take them from the terminal (#4054). (1d17085f)
- FEAT: Add input, world snapshot and diff commands to flame_cli (#4057). (60996d95)
- FEAT: Add WidgetComponent to render Flutter widgets in the component tree (#4053). (e2d8edc3)
- FEAT: Lock random seeds in the flutter/tests customer testing run (#4052). (c35f9d80)
- FEAT: Adding the package attribute to widgets missing it (#4034). (fa41947b)
- FEAT: Promote PathComponent to a standard component (#4050). (e98199fb)
- FEAT: Removing prefix from asset loaders (#4015). (11972dfb)
- FEAT: Support allowsMultiPointerDrag on DragCallbacks (#4033). (0b608950)
- DOCS: Correct docs about drag/scale events on pointer leave (#4035). (00ab4c57)
- BREAKING REFACTOR: Kill old gesture listener shared interfaces (#4038). (4fec3774)
- BREAKING REFACTOR: Remove events handled property (#3976). (98e65544)
- BREAKING REFACTOR: Clean up deprecated MultiDragDispatcher / MultiDragDispatcher aliases (#3977). (9196241b)
- BREAKING PERF: Flatten the update traversal behind a CustomTraversal seam (#3960). (9510e09f)
- BREAKING PERF: Replace the OrderedSet children container with a flat sorted-array ComponentList (#4019). (ab6ef3e3)
- BREAKING FIX: Remove middle intersection point on shared line segments in collision detection (#4004). (e7daba34)
- BREAKING FIX: Do not delegate onDragCancel to onDragEnd by default (#3934). (d5be1122)
- BREAKING FIX: Wait for the whole component tree to load before starting the game (#3998). (34dcedc4)
- BREAKING FIX: Wait for children added in onLoad before marking a component as loaded (#3999). (6f2e2b78)
- BREAKING FEAT: Kill MouseMovementDetector and rename PointerMove* to MouseMove* (#4011). (7fd33dee)
- BREAKING FEAT: Return a list instead of a set from the collision detection methods (#4003). (698f2619)
- BREAKING FEAT: Make
TimerandTimerComponentAPIs consistent (#4076). (87a0265a) - BREAKING FEAT: Kill ScrollDetector in favour of ScrollCallbacks (#4005). (d415867b)
- BREAKING FEAT: Rename GameWidget.controlled to GameWidget.managed (#3961). (d99224e5)
- BREAKING FEAT: Kill MultiTouchTapDetector and MultiTouchDragDetector (#4000). (167da17d)
- BREAKING FEAT: Replace the particle system with a data-oriented particle system (#3948). (2e7a11dd)
- BREAKING FEAT: Kill ScaleDetector in favour of ScaleCallbacks (#3996). (4dd8782f)
- BREAKING FEAT: Migrate flame_forge2d to the Box2D v3 based forge2d (#3952). (9081a0f9)
- BREAKING FEAT: Making add,addAll sync methods (#3968). (52710ca6)
- BREAKING FEAT: Rename Game.paused to Game.isPaused (#3992). (b261be32)
- BREAKING FEAT: Make transparent hit-test opt-in via DeferHitTestToComponents (#4062). (94f692f6)
- BREAKING CHORE: Kill legacy Force Press event API (#3989). (d6d4bfa2)
- BREAKING CHORE: Kill legacy Vertical/Horizontal drag detectors (#3993). (e291f1cf)
- BREAKING CHORE: Kill HasGameReference (#4030). (0f5ca11d)
- BREAKING CHORE: Kill PanDetector and the old event system (#4031). (4e9e50f4)
- BREAKING CHORE: Rename HasWorldReference to HasWorldRef for consistency with HasGameRef (#4039). (cced5ccd)
- BREAKING CHORE: Remove deprecated old event classes with replacements (#3987). (619d7b5d)
Published to pub.dev: https://pub.dev/packages/flame/versions/2.0.0-dev.0