)]}'
{
  "commit": "fa6e59865cd1de99a3dfe06b5681f8aae266317e",
  "tree": "5fa6787fa8a9d7f422f92510c25eb35f11bde1d7",
  "parents": [
    "dd5cc310886c2a615608aab843d929677ecb81fb"
  ],
  "author": {
    "name": "luigi-rosso",
    "email": "hello@rive.app",
    "time": "Fri Jun 07 00:44:49 2024 +0000"
  },
  "committer": {
    "name": "luigi-rosso",
    "email": "hello@rive.app",
    "time": "Fri Jun 07 00:44:49 2024 +0000"
  },
  "message": "Get rid of MetricsPath.\n\nThis lets us trim a raw path directly which means all the trim path logic from the editor can now be pushed down to the C++ runtime, even for the case where the rendering is still happening via Skia/Impeller, all our path operations can be done in C++ (without using RenderPath/MetricsPath/RenderMetricsPath/OnlyMetricsPath/etc). Basically, I needed to do this now to not have as many edge cases in the editor for the difference between using our runtime to render with PLS vs Flutter.\n\nIt also quite greatly simplifies the code! More lines removed than added!\n\nSome tests will fail as I think we\u0027re using the MetricsPath in some other parts of the code, but that can be refactored following the patterns used here...\n\nIt also means that most of our runtime now speaks RawPath which means we can optimize/reserve memory ahead of time in a lot of cases (not doing that yet).\n\nDiffs\u003d\n8486c3445 Get rid of MetricsPath. (#7371)\n\nCo-authored-by: Luigi Rosso \u003cluigi-rosso@users.noreply.github.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6e06eb9b76d2d9e8d3c81bec53618a15add0bb7b",
      "old_mode": 33188,
      "old_path": ".rive_head",
      "new_id": "8bafa5248f7a799cb92100935301ee4a7bb0cc6a",
      "new_mode": 33188,
      "new_path": ".rive_head"
    },
    {
      "type": "modify",
      "old_id": "b8fdea356faf7d78a79579adef10578631d86e2f",
      "old_mode": 33188,
      "old_path": "include/rive/artboard.hpp",
      "new_id": "d93d91de9e296788c16e830f8233d0e827ba4093",
      "new_mode": 33188,
      "new_path": "include/rive/artboard.hpp"
    },
    {
      "type": "modify",
      "old_id": "604e5782af4025ac6aeb1ba80ed15d64fc4ba073",
      "old_mode": 33188,
      "old_path": "include/rive/constraints/follow_path_constraint.hpp",
      "new_id": "a59b0f672a7f51c34d5e84c64f0a2e6d70011a27",
      "new_mode": 33188,
      "new_path": "include/rive/constraints/follow_path_constraint.hpp"
    },
    {
      "type": "delete",
      "old_id": "7311b9cd11968ded1cd68342b6cb9cdb0445a155",
      "old_mode": 33188,
      "old_path": "include/rive/shapes/metrics_path.hpp",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "9e8df0b57f965636d2fa39c3aa3263cbd808880a",
      "old_mode": 33188,
      "old_path": "include/rive/shapes/paint/fill.hpp",
      "new_id": "97291e6135fc62f26c615f6336c3eff063f8bf21",
      "new_mode": 33188,
      "new_path": "include/rive/shapes/paint/fill.hpp"
    },
    {
      "type": "modify",
      "old_id": "36735807b58662a3b531b11d71eb8340b69a6cf7",
      "old_mode": 33188,
      "old_path": "include/rive/shapes/paint/shape_paint.hpp",
      "new_id": "388fb134ffcf4deee18a51c4ebce100143bf0f39",
      "new_mode": 33188,
      "new_path": "include/rive/shapes/paint/shape_paint.hpp"
    },
    {
      "type": "modify",
      "old_id": "592eb8ff08f586b8f99899c63b0a79b685a291c5",
      "old_mode": 33188,
      "old_path": "include/rive/shapes/paint/stroke.hpp",
      "new_id": "7663669b849d16749191947d2ae0f6521696b9f2",
      "new_mode": 33188,
      "new_path": "include/rive/shapes/paint/stroke.hpp"
    },
    {
      "type": "modify",
      "old_id": "2276d947e403d0e959ce8b2c16abe9bf96fcdab6",
      "old_mode": 33188,
      "old_path": "include/rive/shapes/paint/stroke_effect.hpp",
      "new_id": "72ed7165e192bf4df577227d52a5ef7dd14abde5",
      "new_mode": 33188,
      "new_path": "include/rive/shapes/paint/stroke_effect.hpp"
    },
    {
      "type": "modify",
      "old_id": "3c55ffb99bd656e556e58e635024b7291084073e",
      "old_mode": 33188,
      "old_path": "include/rive/shapes/paint/trim_path.hpp",
      "new_id": "d9374819d1425bd6357e084fa9f1a4b6fc16fda0",
      "new_mode": 33188,
      "new_path": "include/rive/shapes/paint/trim_path.hpp"
    },
    {
      "type": "modify",
      "old_id": "5732cfbe7e1a87f29afe95ed39bb6e74ef3f85eb",
      "old_mode": 33188,
      "old_path": "include/rive/shapes/path.hpp",
      "new_id": "d5ba979da82452c513b01e9acc1ad226c1007a9f",
      "new_mode": 33188,
      "new_path": "include/rive/shapes/path.hpp"
    },
    {
      "type": "modify",
      "old_id": "aa6ccbc89e5aa39f8ece4ad7478f096a2b768275",
      "old_mode": 33188,
      "old_path": "include/rive/shapes/path_composer.hpp",
      "new_id": "b9b3c8fda751ab773eb09df60bfaa63520a5f8b9",
      "new_mode": 33188,
      "new_path": "include/rive/shapes/path_composer.hpp"
    },
    {
      "type": "modify",
      "old_id": "690cccaed4f977430db6d2a6c09066b57adab64f",
      "old_mode": 33188,
      "old_path": "include/rive/shapes/shape_paint_container.hpp",
      "new_id": "7ba4d766c4852ce6bc8433a33627e95a13c337ea",
      "new_mode": 33188,
      "new_path": "include/rive/shapes/shape_paint_container.hpp"
    },
    {
      "type": "modify",
      "old_id": "4458ecf55a02b0e930aa7d3e0ab4c74a06e11dc3",
      "old_mode": 33188,
      "old_path": "src/artboard.cpp",
      "new_id": "6fb08e7a1a5607c8cf20f92bcd1bf8603134a9a4",
      "new_mode": 33188,
      "new_path": "src/artboard.cpp"
    },
    {
      "type": "modify",
      "old_id": "0b8096f67acbde12ac80b140f9246be384ab68d3",
      "old_mode": 33188,
      "old_path": "src/constraints/follow_path_constraint.cpp",
      "new_id": "199a0db416f9a19edc34ba7a5b700f92edf7a28a",
      "new_mode": 33188,
      "new_path": "src/constraints/follow_path_constraint.cpp"
    },
    {
      "type": "delete",
      "old_id": "f66aa5e4ac20e01de2d9a04c7a4a1b462f19291d",
      "old_mode": 33188,
      "old_path": "src/shapes/metrics_path.cpp",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "60c39d882f59925615d52aafb5e2ee1cc53a409d",
      "old_mode": 33188,
      "old_path": "src/shapes/paint/fill.cpp",
      "new_id": "466b61a7f5161c7c9bad93ace96e9fe76cef79e0",
      "new_mode": 33188,
      "new_path": "src/shapes/paint/fill.cpp"
    },
    {
      "type": "modify",
      "old_id": "a32b7b38bbd1ae6fa747c790c4f321a3a0c1a6d4",
      "old_mode": 33188,
      "old_path": "src/shapes/paint/stroke.cpp",
      "new_id": "b0d7348b352cb8ba3382c6e4c54e9a4be66182a8",
      "new_mode": 33188,
      "new_path": "src/shapes/paint/stroke.cpp"
    },
    {
      "type": "modify",
      "old_id": "7fad54242d4bfef4765e6a0cac3296be2056a8c5",
      "old_mode": 33188,
      "old_path": "src/shapes/paint/trim_path.cpp",
      "new_id": "6b0e334ff3974440030b083e9d296907d70e5b34",
      "new_mode": 33188,
      "new_path": "src/shapes/paint/trim_path.cpp"
    },
    {
      "type": "modify",
      "old_id": "5354580905b7cf082bd30f63077c147ab8a67b47",
      "old_mode": 33188,
      "old_path": "src/shapes/path.cpp",
      "new_id": "cdf45aa2fb914a356feeb0e0ff76f7ec6b7f58b3",
      "new_mode": 33188,
      "new_path": "src/shapes/path.cpp"
    },
    {
      "type": "modify",
      "old_id": "e0bf032cef11695e0e82f9787d281f6df76e2b45",
      "old_mode": 33188,
      "old_path": "src/shapes/path_composer.cpp",
      "new_id": "71a4c00e0cc51dc8dcf15d1745a10e1affc7b103",
      "new_mode": 33188,
      "new_path": "src/shapes/path_composer.cpp"
    },
    {
      "type": "modify",
      "old_id": "e37b474918f150c813c931303157615a92db9304",
      "old_mode": 33188,
      "old_path": "src/shapes/shape.cpp",
      "new_id": "01310ed48e2c8b3ce6cc2d6dbc7fff13f077188f",
      "new_mode": 33188,
      "new_path": "src/shapes/shape.cpp"
    },
    {
      "type": "modify",
      "old_id": "a0232dbd2b23cb30f2d91f16c9ef24da9e3be01a",
      "old_mode": 33188,
      "old_path": "src/shapes/shape_paint_container.cpp",
      "new_id": "ab9057a18a674a7ba7091f433dea8f83c4f9c63a",
      "new_mode": 33188,
      "new_path": "src/shapes/shape_paint_container.cpp"
    },
    {
      "type": "modify",
      "old_id": "e1b13434b553f12dd377311151ef9e21089992e7",
      "old_mode": 33188,
      "old_path": "src/text/text_style.cpp",
      "new_id": "a2a81eae0fe8283b1c29519644915d19f2f7d29a",
      "new_mode": 33188,
      "new_path": "src/text/text_style.cpp"
    },
    {
      "type": "modify",
      "old_id": "58376354e6d3731ab3882f5afcf901e89cebb80d",
      "old_mode": 33188,
      "old_path": "tess/test/triangulation_test.cpp",
      "new_id": "d2a4b018333ba44ca4ae5876943aed5e189b2fa1",
      "new_mode": 33188,
      "new_path": "tess/test/triangulation_test.cpp"
    },
    {
      "type": "modify",
      "old_id": "c9164d6881a183028a2b351f20dbf56ab075b5d0",
      "old_mode": 33188,
      "old_path": "test/contour_measure_test.cpp",
      "new_id": "35483665c6b1b17d624a70981d6930cbe16b674b",
      "new_mode": 33188,
      "new_path": "test/contour_measure_test.cpp"
    },
    {
      "type": "delete",
      "old_id": "cde4727616db50390afa3cfb7cd49b2bcb775af3",
      "old_mode": 33188,
      "old_path": "test/metrics_path_test.cpp",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "bd58078685cc004ab4f5bc680fedac0415ba7fa6",
      "old_mode": 33188,
      "old_path": "test/path_test.cpp",
      "new_id": "a664075305d9b989e86a6da4561063f703c5dee2",
      "new_mode": 33188,
      "new_path": "test/path_test.cpp"
    }
  ]
}
