)]}'
{
  "commit": "8f690ee10184172fa6d7c737e512806425108198",
  "tree": "4472873145f2cb4cd0d72f4967911f64be402c39",
  "parents": [
    "de8474c5d27d279828fe45973c28b6d2af085a9f"
  ],
  "author": {
    "name": "luigi-rosso",
    "email": "hello@rive.app",
    "time": "Fri Sep 23 23:10:03 2022 +0000"
  },
  "committer": {
    "name": "luigi-rosso",
    "email": "hello@rive.app",
    "time": "Fri Sep 23 23:10:03 2022 +0000"
  },
  "message": "Line breaker\n\nUpdating the line breaker to support:\n- forced line breaks (return characters)\n- store break points in context of runs (no searching when breaking)\n- perform alignment (center/left/right)\n\nIn order to implement tests for this in Rive, I moved the Harfbuzz shaper into Rive (conditionally compiled out) but now we can test line-breaking logic in Rive core.\n\nSince I had to update some of the build scripts, I ran the same new premake formatter we\u0027ve been using.\n\n\u003cimg width\u003d\"910\" alt\u003d\"CleanShot 2022-09-19 at 21 03 53@2x\" src\u003d\"https://user-images.githubusercontent.com/454182/191164998-6b7b131b-b624-41c7-81d2-c2e01a050680.png\"\u003e\n\nDiffs\u003d\na1d921c85 Line breaker (#4249)\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b3b272fb127a34f37ca86533bbec220dac25c216",
      "old_mode": 33188,
      "old_path": ".github/workflows/tests.yml",
      "new_id": "a38c6f7f3cbd1c16cdb1666a7b9751fb008134c1",
      "new_mode": 33188,
      "new_path": ".github/workflows/tests.yml"
    },
    {
      "type": "modify",
      "old_id": "46e81b3f3aef99fcc536f1a93ad9db99757d94be",
      "old_mode": 33188,
      "old_path": ".gitignore",
      "new_id": "f2ba18fa10dc63c1370c1f509d914fa3a8b652e1",
      "new_mode": 33188,
      "new_path": ".gitignore"
    },
    {
      "type": "modify",
      "old_id": "4f0e5060c3319e721684b2cb1459b1c056cce57c",
      "old_mode": 33188,
      "old_path": ".rive_head",
      "new_id": "f2f0e152ee96b250654030229502915980b634a0",
      "new_mode": 33188,
      "new_path": ".rive_head"
    },
    {
      "type": "modify",
      "old_id": "cf1149aa8d3a92800b57cb6babd40a787ccf5ad2",
      "old_mode": 33261,
      "old_path": "build/macosx/build_rive.sh",
      "new_id": "d2026024e9070c38d2bf9097d1b487a0560c4145",
      "new_mode": 33261,
      "new_path": "build/macosx/build_rive.sh"
    },
    {
      "type": "modify",
      "old_id": "685ba8e2207640c343d7884b9d397c1282f18c96",
      "old_mode": 33188,
      "old_path": "build/premake5.lua",
      "new_id": "9cafaf2703f0409398d267c785b5d3ce74f9820d",
      "new_mode": 33188,
      "new_path": "build/premake5.lua"
    },
    {
      "type": "modify",
      "old_id": "57c3947eafa24aee3e31f17de8995f4f68f89ad6",
      "old_mode": 33188,
      "old_path": "dependencies/premake5_harfbuzz.lua",
      "new_id": "9c312481ea6a808a58eda2dd99f9eeef029694dd",
      "new_mode": 33188,
      "new_path": "dependencies/premake5_harfbuzz.lua"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2dcdd50c3c7c244185c388bf22e82fc0c3be60ee",
      "new_mode": 33188,
      "new_path": "dependencies/windows/config_directories.bat"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e22541393c977079077ca727e559aaf605008abf",
      "new_mode": 33188,
      "new_path": "dependencies/windows/get_harfbuzz.bat"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "77687b719cb0c45e40070815716d0e68a23352a8",
      "new_mode": 33188,
      "new_path": "dependencies/windows/get_premake5.bat"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a238f75156cfd97c6c286b8b70f9ca46567335f9",
      "new_mode": 33188,
      "new_path": "dev/test.bat"
    },
    {
      "type": "modify",
      "old_id": "7235c68233eba65ec1181c187402604064901810",
      "old_mode": 33261,
      "old_path": "dev/test.sh",
      "new_id": "3a0ea333351b64ec6f84ebdc133f498a55560544",
      "new_mode": 33261,
      "new_path": "dev/test.sh"
    },
    {
      "type": "modify",
      "old_id": "30acf4a16ecfb27b6f77f499c33636f8dfb8d45d",
      "old_mode": 33188,
      "old_path": "dev/test/premake5.lua",
      "new_id": "07a3d350ca8fae39a7837bf0a2c275ae926b7136",
      "new_mode": 33188,
      "new_path": "dev/test/premake5.lua"
    },
    {
      "type": "modify",
      "old_id": "6c5b70b086286978d7ecfd10689cec7e21631f4f",
      "old_mode": 33188,
      "old_path": "include/rive/render_text.hpp",
      "new_id": "b9c35a1a6c03be1924f9b09cae6934c61ab48f17",
      "new_mode": 33188,
      "new_path": "include/rive/render_text.hpp"
    },
    {
      "type": "rename",
      "old_id": "47bcc9c5da88eb645be0381ced4f0c94fb191347",
      "old_mode": 33188,
      "old_path": "skia/renderer/include/renderer_utils.hpp",
      "new_id": "47bcc9c5da88eb645be0381ced4f0c94fb191347",
      "new_mode": 33188,
      "new_path": "include/rive/renderer_utils.hpp",
      "score": 100
    },
    {
      "type": "modify",
      "old_id": "270a780cc5b2ecd427aed749895fb6def215bc71",
      "old_mode": 33188,
      "old_path": "include/rive/simple_array.hpp",
      "new_id": "48fd694a591f81aec936b89aa8349ff3bce6e7d2",
      "new_mode": 33188,
      "new_path": "include/rive/simple_array.hpp"
    },
    {
      "type": "modify",
      "old_id": "d8477d3bdc8bd3a83ed23e5268a3596aea2adc80",
      "old_mode": 33188,
      "old_path": "include/rive/text/line_breaker.hpp",
      "new_id": "37d50d0a2f998c8e8841e619adb3a46d8cc8f8a8",
      "new_mode": 33188,
      "new_path": "include/rive/text/line_breaker.hpp"
    },
    {
      "type": "rename",
      "old_id": "0ebac543a5d09f20091d1d085f412f85fb74e70b",
      "old_mode": 33188,
      "old_path": "skia/renderer/include/renderfont_hb.hpp",
      "new_id": "0ebac543a5d09f20091d1d085f412f85fb74e70b",
      "new_mode": 33188,
      "new_path": "include/rive/text/renderfont_hb.hpp",
      "score": 100
    },
    {
      "type": "modify",
      "old_id": "05601b1f35f2c6fb56111a78d0a9440b0c29b465",
      "old_mode": 33261,
      "old_path": "skia/renderer/build/macosx/build_skia_renderer.sh",
      "new_id": "d3710a5401543b544666e4f0512ac7a563f5aee6",
      "new_mode": 33261,
      "new_path": "skia/renderer/build/macosx/build_skia_renderer.sh"
    },
    {
      "type": "modify",
      "old_id": "d779fe82710ef536299b0e786bbe73099aef0950",
      "old_mode": 33188,
      "old_path": "skia/renderer/build/premake5.lua",
      "new_id": "b2c71c00b5351b4ad6866676de128b827eecf697",
      "new_mode": 33188,
      "new_path": "skia/renderer/build/premake5.lua"
    },
    {
      "type": "modify",
      "old_id": "89dc0cb672894bc240a328ba0b01eba84459bdcc",
      "old_mode": 33188,
      "old_path": "skia/renderer/src/renderfont_coretext.cpp",
      "new_id": "8cf73e917a4ac368b5cf7f5d843bc012703d3fcd",
      "new_mode": 33188,
      "new_path": "skia/renderer/src/renderfont_coretext.cpp"
    },
    {
      "type": "modify",
      "old_id": "4f460238981eae8a50ad33fea4fe7d8e26b70714",
      "old_mode": 33188,
      "old_path": "src/renderer.cpp",
      "new_id": "6fb5c17e7f947733540724344a2725a426ab0a23",
      "new_mode": 33188,
      "new_path": "src/renderer.cpp"
    },
    {
      "type": "modify",
      "old_id": "ef567d85e43660b8931a9e27ec379b6b9ac0c0ad",
      "old_mode": 33188,
      "old_path": "src/simple_array.cpp",
      "new_id": "cd4ecfcf83cb3066837b6e635defb84f4b4e89e5",
      "new_mode": 33188,
      "new_path": "src/simple_array.cpp"
    },
    {
      "type": "modify",
      "old_id": "5bb7899b0ac63d7d0d9510cb3eb4920cb310a936",
      "old_mode": 33188,
      "old_path": "src/text/line_breaker.cpp",
      "new_id": "d862e41cf0932760229fb425a14b98222a5e4e53",
      "new_mode": 33188,
      "new_path": "src/text/line_breaker.cpp"
    },
    {
      "type": "rename",
      "old_id": "72b8a5b670dba9f4b9bd8ea4bdbc7392e90f7a71",
      "old_mode": 33188,
      "old_path": "skia/renderer/src/renderfont_hb.cpp",
      "new_id": "7e97f2a44e8f22f1bd85c5e6dd4c993adef0e6c5",
      "new_mode": 33188,
      "new_path": "src/text/renderfont_hb.cpp",
      "score": 86
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c56b83105a525bc32fddc92e906f98440b3b3147",
      "new_mode": 33188,
      "new_path": "test/line_break_test.cpp"
    },
    {
      "type": "modify",
      "old_id": "e3847a0916b1de5dfd26a5144e1fe6930ea2331f",
      "old_mode": 33188,
      "old_path": "test/simple_array_test.cpp",
      "new_id": "cdfd3f290229a7b921b677c21fe7d4bb72d413a7",
      "new_mode": 33188,
      "new_path": "test/simple_array_test.cpp"
    },
    {
      "type": "modify",
      "old_id": "f5c5cd1424b2e89c3b497edcdc6eb973e45ee4eb",
      "old_mode": 33261,
      "old_path": "viewer/build/macosx/build_viewer.sh",
      "new_id": "dbb480304dde0112b110902cce189ecc34c51738",
      "new_mode": 33261,
      "new_path": "viewer/build/macosx/build_viewer.sh"
    },
    {
      "type": "modify",
      "old_id": "417cbac1566647c3ff14ce80901f54224a4c70e4",
      "old_mode": 33188,
      "old_path": "viewer/build/premake5_viewer.lua",
      "new_id": "a7d79a090d33740951c2183b0297661c55490034",
      "new_mode": 33188,
      "new_path": "viewer/build/premake5_viewer.lua"
    },
    {
      "type": "modify",
      "old_id": "fc1990cca6ef73fb5bfd5dc2a9b00c54525dcc9e",
      "old_mode": 33188,
      "old_path": "viewer/src/viewer_content/text_content.cpp",
      "new_id": "1897700a89ba850ca2593efe5d47579a36eea746",
      "new_mode": 33188,
      "new_path": "viewer/src/viewer_content/text_content.cpp"
    }
  ]
}
