)]}'
{
  "commit": "d276194d24fe718a134a7107977cea99b8d8d1fb",
  "tree": "75853b6d9308ba95e8656612a76f6f0ab8ef8549",
  "parents": [
    "a0fca85afda49bfcde77c0244dd2c41aebcdc4cc"
  ],
  "author": {
    "name": "mjtalbot",
    "email": "hello@rive.app",
    "time": "Tue Oct 17 16:04:05 2023 +0000"
  },
  "committer": {
    "name": "mjtalbot",
    "email": "hello@rive.app",
    "time": "Tue Oct 17 16:04:05 2023 +0000"
  },
  "message": "add ability to attach callbacks when resolving file asset listeners\n\nBascially add tracking of fileAssetReferencers from file assets, so that when file assets update, they can tell things that reference them to update also.\n\nits worth looking at the rive-flutter \u0026 runtime implementations\n\nin cpp it looks like we can hook into the delete hooks nicely to clean up after ourselves (so that when artboards get collected we are not holding references to them from file assets)\n\nin dart this is more of a problem, however using weakReferences we do end up seeing artboards go out of scope\nbut weakReferences requires us to bump to a min dart of 2.17 (we are 2.14 in flutter \u0026 2.12 in our editor atm)\n\nthe update here also uses the referencers to mark fonts dirty when fonts are set, which causes them to be updated on the next draw cycle\n\n(video showing font updates working properly now in dart)\n\nhttps://github.com/rive-app/rive/assets/1216025/d65ea2cf-95d6-4412-b8f5-368cda609d0b\n\n(video showing how referencers get collected and trashed in dart, it looks like we hold onto about 10 of them at a time.. but they do drop off over time. also we start with 2 references, the main artboard and the artboard instance)\n\nhttps://github.com/rive-app/rive/assets/1216025/b11b7b46-aa9d-4dcc-bc11-f745d8449575\n\nDiffs\u003d\n7bc216b03 add ability to attach callbacks when resolving file asset listeners (#6068)\n\nCo-authored-by: Maxwell Talbot \u003ctalbot.maxwell@gmail.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "70cb24cc99c795a42e73f8332b59369d11c0b635",
      "old_mode": 33188,
      "old_path": ".rive_head",
      "new_id": "9efff06a7d4538e65e74e3fb116b0efd2a544684",
      "new_mode": 33188,
      "new_path": ".rive_head"
    },
    {
      "type": "modify",
      "old_id": "5227dc5c5bd7bbcaeece2817f6785d9ebe9066d9",
      "old_mode": 33188,
      "old_path": "dev/core_generator/pubspec.yaml",
      "new_id": "4fb6c606415cce6c75c7c67729ebd4bf83366beb",
      "new_mode": 33188,
      "new_path": "dev/core_generator/pubspec.yaml"
    },
    {
      "type": "modify",
      "old_id": "ad6b8abab4b34512aa3ed49900d30de855582deb",
      "old_mode": 33188,
      "old_path": "include/rive/assets/file_asset.hpp",
      "new_id": "8091299dd9bb6e81df08f9e5b972f53881b70fe8",
      "new_mode": 33188,
      "new_path": "include/rive/assets/file_asset.hpp"
    },
    {
      "type": "modify",
      "old_id": "df300e71c8f3f8c63dcaa5d341bcc9730de8d428",
      "old_mode": 33188,
      "old_path": "include/rive/assets/file_asset_referencer.hpp",
      "new_id": "1d5797a699ad8a73dfc7faca3ca92a780bf06a35",
      "new_mode": 33188,
      "new_path": "include/rive/assets/file_asset_referencer.hpp"
    },
    {
      "type": "modify",
      "old_id": "421a4049bc3c0ab1732c2deeb381869bebe54435",
      "old_mode": 33188,
      "old_path": "include/rive/shapes/image.hpp",
      "new_id": "554c25b93b240699eb56b100cca9a55111810577",
      "new_mode": 33188,
      "new_path": "include/rive/shapes/image.hpp"
    },
    {
      "type": "modify",
      "old_id": "3bef0631729ad2109608edf2be209207e2a9ddb3",
      "old_mode": 33188,
      "old_path": "include/rive/text/text_style.hpp",
      "new_id": "fd82c31bbe508df5efa1141e0b252db008328ebb",
      "new_mode": 33188,
      "new_path": "include/rive/text/text_style.hpp"
    },
    {
      "type": "modify",
      "old_id": "bbecf39319cfed61352cc50f62a0a33a2f7f5b3b",
      "old_mode": 33188,
      "old_path": "src/assets/file_asset_referencer.cpp",
      "new_id": "6c3fee2f97c7b659391de920301ee180ca24da00",
      "new_mode": 33188,
      "new_path": "src/assets/file_asset_referencer.cpp"
    },
    {
      "type": "modify",
      "old_id": "8f41ffca2ab0d5261cb8891fe197c1a4fd3243c9",
      "old_mode": 33188,
      "old_path": "src/assets/font_asset.cpp",
      "new_id": "a398e55ca0584d0c3ee2a4e7dd9047e6d7537f33",
      "new_mode": 33188,
      "new_path": "src/assets/font_asset.cpp"
    },
    {
      "type": "modify",
      "old_id": "f0e49a90c4577c69f41be4a1a0c095a1a894deaa",
      "old_mode": 33188,
      "old_path": "src/importers/backboard_importer.cpp",
      "new_id": "19eb762cc6e7daa56ef7c9923a8a17e2d5d13002",
      "new_mode": 33188,
      "new_path": "src/importers/backboard_importer.cpp"
    },
    {
      "type": "modify",
      "old_id": "7d3c2cd7ba1448b27f828bcbaa9ff7065fb82d1d",
      "old_mode": 33188,
      "old_path": "src/shapes/image.cpp",
      "new_id": "6f40b3656136ec4b00b2c212f01ecad4290c57f3",
      "new_mode": 33188,
      "new_path": "src/shapes/image.cpp"
    },
    {
      "type": "modify",
      "old_id": "21e5b6555c3517ea8e4c256d6fcc709e66c245b9",
      "old_mode": 33188,
      "old_path": "src/text/text_style.cpp",
      "new_id": "a43a1c85007413f0789e3bb7125893f7ede1d74d",
      "new_mode": 33188,
      "new_path": "src/text/text_style.cpp"
    },
    {
      "type": "modify",
      "old_id": "0d100c0bae981de08ff0676bc840f0f040f7c085",
      "old_mode": 33188,
      "old_path": "viewer/build/premake5_viewer.lua",
      "new_id": "6c061813be64c56933f47b1563b08983359e473f",
      "new_mode": 33188,
      "new_path": "viewer/build/premake5_viewer.lua"
    },
    {
      "type": "modify",
      "old_id": "2dde428d8f900c81dba1625bb314adf4e7734101",
      "old_mode": 33188,
      "old_path": "viewer/include/viewer/viewer_content.hpp",
      "new_id": "f19f138dcbfb6334d7f844051c63113116d9f2ba",
      "new_mode": 33188,
      "new_path": "viewer/include/viewer/viewer_content.hpp"
    },
    {
      "type": "modify",
      "old_id": "5b94ea3ef4d8937751a32ba605ec4f4c13093074",
      "old_mode": 33188,
      "old_path": "viewer/src/viewer_content/scene_content.cpp",
      "new_id": "6e6660400a59dee8531865a1fb33f8da384ac5c5",
      "new_mode": 33188,
      "new_path": "viewer/src/viewer_content/scene_content.cpp"
    },
    {
      "type": "modify",
      "old_id": "354f6f8947efca4f989d67ebd6ea8e439ee156c1",
      "old_mode": 33188,
      "old_path": "viewer/src/viewer_content/viewer_content.cpp",
      "new_id": "e41da5119a4f2f8407dfd7e6c874244f9a92c229",
      "new_mode": 33188,
      "new_path": "viewer/src/viewer_content/viewer_content.cpp"
    }
  ]
}
