)]}'
{
  "log": [
    {
      "commit": "7df9ff2a08fd4bbd9b2e734a357cffcf64675df9",
      "tree": "a5e07ff04d17eb280e90ee2e439d057a3d89e2c7",
      "parents": [
        "6354f440dae9f051b99d62e488a7263215342940"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Feb 10 16:08:08 2016 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Feb 11 00:42:23 2016 +0000"
      },
      "message": "Fix all LA memory leaks forever!\n\nBug: 27072626\n\nOr at least fix this one and make it harder to leak\ngoing forward. static_asserts are cool, use them liberally\n\nAlso makes allocation via LA (slightly) faster by fixing create*\nvariants to use rvalue references \u0026 std::forward, preventing\nan accidental pass-by-value\n\nChange-Id: I18fd696a93dd6ea49c8d8c587d4c8bee56dbfdf5\n"
    },
    {
      "commit": "e537330ead4111cae74668bbc25a332e186d6c91",
      "tree": "d73486362948e23296173ce418594bb654acea13",
      "parents": [
        "499d83f21e7ffb687788bba1668b05fe38f6ebaf"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Feb 11 00:36:34 2016 +0000"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Feb 11 00:36:34 2016 +0000"
      },
      "message": "Revert \"Fix all LA memory leaks forever!\"\n\nThis reverts commit 499d83f21e7ffb687788bba1668b05fe38f6ebaf.\n\nChange-Id: Ia893ae16ebbeae68e49cd13a20587104b73d39a0\n"
    },
    {
      "commit": "499d83f21e7ffb687788bba1668b05fe38f6ebaf",
      "tree": "3323a0a06c5a7a5492aedec8e8ffe7730fd955b0",
      "parents": [
        "28d901e53b67bfebe680234aeecfc9b81d56b408"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Feb 10 16:08:08 2016 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Feb 10 16:11:26 2016 -0800"
      },
      "message": "Fix all LA memory leaks forever!\n\nBug: 27072626\n\nOr at least fix this one and make it harder to leak\ngoing forward. static_asserts are cool, use them liberally\n\nAlso makes allocation via LA (slightly) faster by fixing create*\nvariants to use rvalue references \u0026 std::forward, preventing\nan accidental pass-by-value\n\nChange-Id: I5e0e36e72c6dd93324194ebf9a95f8204f05f261\n"
    },
    {
      "commit": "766431aa57c16ece8842287a92b2e7208e3b8ac3",
      "tree": "9897854d78c4d3615df67e97fd4f65a865729e32",
      "parents": [
        "2343f8dfcd1b1d0a503463740b85616a966cc299"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Thu Feb 04 22:17:11 2016 +0000"
      },
      "committer": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Thu Feb 04 16:29:51 2016 -0800"
      },
      "message": "Revert \"Revert \"VectorDrawable native rendering - Step 4 of MANY\"\"\n\nThis reverts commit 5a11e8d0ba21624025b89ac63bbd18befa55be0e.\n\nChange-Id: I7a48b59c4f930dad65ddc8590c25a12636244ea2\n"
    },
    {
      "commit": "5a11e8d0ba21624025b89ac63bbd18befa55be0e",
      "tree": "5166f73696e1ea08cde286757403fa944f40efc0",
      "parents": [
        "95085d154b1ea6b4db3ae14d39a1c8c8a6560f78"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Thu Feb 04 20:04:10 2016 +0000"
      },
      "committer": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Thu Feb 04 20:59:00 2016 +0000"
      },
      "message": "Revert \"VectorDrawable native rendering - Step 4 of MANY\"\n\nb/26949340 and b/26975469, b/26975079 as well \n\nThis reverts commit f276acd98457bcaabc9e79a17a736b3b484f005e.\n\nChange-Id: I4b55177daf0d289bc03604c71fd4bf579f65073a\n"
    },
    {
      "commit": "37fd29f2842c4b92ba3ddbba2f9a5024ce103783",
      "tree": "9d6540a664b974f36961ddd0eff8802681779b38",
      "parents": [
        "c8ca8ceba067e5f439560275fd9529646f2b569a",
        "7fc1b0349bc2ac8c880120dc5611f703faa7f06f"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Feb 04 19:08:59 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 04 19:08:59 2016 +0000"
      },
      "message": "Merge \"Fix ripple clipping + quick rejection\""
    },
    {
      "commit": "7fc1b0349bc2ac8c880120dc5611f703faa7f06f",
      "tree": "6eb28dc729ca8fcecc3be81bffb27828e32052e9",
      "parents": [
        "d38308e4d0599836f9c5446ba9d6edbc0713c428"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Feb 03 19:45:06 2016 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Feb 03 20:09:00 2016 -0800"
      },
      "message": "Fix ripple clipping + quick rejection\n\nbug:26524690\n\nDon\u0027t intersect the first clip with the viewport. Instead, the first\nclip op should always be a replace op.\n\nAdditionally, only quick reject nodes that clip to bounds, since some\nnodes (like ripples) draw outside their own bounds.\n\nChange-Id: I96a52029f360328aba19af7349888cc0a026b5b1\n"
    },
    {
      "commit": "bcda2da5fe9ab9ee1fe765e1e80a49c12c86cdca",
      "tree": "82c746fde0f21b8022496fdc9afe43945f429175",
      "parents": [
        "7b5e869730fcee6fb2b88218c7899ef05ed5c075",
        "6e068c0182f6f85bccb855a647510724d1c65a13"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Feb 03 01:17:37 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 03 01:17:37 2016 +0000"
      },
      "message": "Merge \"Early kickoff of shadow tasks\""
    },
    {
      "commit": "6e068c0182f6f85bccb855a647510724d1c65a13",
      "tree": "8ee074307867bfcdc9c8a708aa6ae03f1d9b7ecc",
      "parents": [
        "d38308e4d0599836f9c5446ba9d6edbc0713c428"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Jan 15 16:15:30 2016 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Feb 02 17:10:25 2016 -0800"
      },
      "message": "Early kickoff of shadow tasks\n\nbug:26562703\n\nChange-Id: I7cdf18f2c662380bd31c7ffeefd5c3f569e5c1c6\n"
    },
    {
      "commit": "f276acd98457bcaabc9e79a17a736b3b484f005e",
      "tree": "b9efee10194c520b09a4813f7b8074be9a2f99c8",
      "parents": [
        "650e3b70e4aa2fa9acf2f9c6ce211c4b46862c15"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Thu Jan 07 13:49:26 2016 -0800"
      },
      "committer": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Tue Feb 02 15:04:01 2016 -0800"
      },
      "message": "VectorDrawable native rendering - Step 4 of MANY\n\nThis CL runs VectorDrawable animation on RenderThread. The changes in this CL\ninclude:\n- Convert all the animators in AnimatorSet for AVD into a set of RenderNodeAnimators.\n- Hook up the new animators with RenderThread\n- Add drawOp in RecordingCanvas for drawing VD so that during the animation\n  on RenderThread, all the property changes on VD can be reflected on the screen.\n\nTODO:\n- Implement reverse and reset for AVD.\n\nChange-Id: I2df1d754f2db0ad098d9c15dde4bb2bdfafc2315\n"
    },
    {
      "commit": "c3bd56811268a074ffb9513bde0d940199e7ad16",
      "tree": "3f912ab3a94046c8246a0063db362fece2a92946",
      "parents": [
        "c9fd313f94f7e0dc1f1f865290a2eb1b1897d2ad"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Jan 25 12:01:12 2016 -0800"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Jan 26 12:49:28 2016 -0800"
      },
      "message": "Restore code to draw backdrop and content nodes\n\nbug: 26626661\nChange-Id: I9e4dd41708e8ed93d3cf64242ad81815a653d269\n"
    },
    {
      "commit": "5f1c64ef76f6728f3805763b26093fc4590a2bf6",
      "tree": "08b2cecf8cc1ed38be959763ff428b16d4067e91",
      "parents": [
        "9457a20dd5c044682e59afe2794814951372c31b",
        "14de0415bb7c9a98b2585f92ce89fd8f3d2a53be"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Jan 26 18:06:04 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 26 18:06:04 2016 +0000"
      },
      "message": "Merge \"Temporarily workaround merged bitmap bug\""
    },
    {
      "commit": "14de0415bb7c9a98b2585f92ce89fd8f3d2a53be",
      "tree": "fa31a28faf77474273091c49a34a5f174f0facdb",
      "parents": [
        "c52ac0b9e2dc9d060f21498ac59404ec7fd1e846"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Jan 26 09:01:30 2016 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Jan 26 09:01:30 2016 -0800"
      },
      "message": "Temporarily workaround merged bitmap bug\n\nBug: 26569206\n\nMerged bitmap ops are buggy, just turn them off for\nnow to unblock testing\n\nChange-Id: Ic0151bb3f23b1843107806659a64b26fd6d6e19e\n"
    },
    {
      "commit": "eecff56fed5dd5206acfbc5007b4912081b36d3b",
      "tree": "5e9b0e3dcf6add0bde182a791d9ba9040c16dafa",
      "parents": [
        "36c297f426b2d1337658d781bc6cbd60b04ce4e8"
      ],
      "author": {
        "name": "Florin Malita",
        "email": "fmalita@google.com",
        "time": "Mon Dec 21 10:43:01 2015 -0500"
      },
      "committer": {
        "name": "Florin Malita",
        "email": "fmalita@google.com",
        "time": "Mon Jan 25 15:48:00 2016 -0500"
      },
      "message": "Add internal Canvas save flags\n\nSkia\u0027s SkCanvas::SaveFlags are being deprecated.  This CL introduces\nthe equivalent android::SaveFlags, converts all internal clients to\nthe new enum, and switches the saveLayer glue to the\nSaveLayerRec-based API.\n\nChange-Id: Icb1785f4e7c0f652b1f04b34a1e3ccb063c408f3\n"
    },
    {
      "commit": "e9c5fd888b1b33d6651bc640450b4f62e67c99f4",
      "tree": "3bb0ba8ec701606ca2d70b8cc21b8d220890857a",
      "parents": [
        "477e26cf931290f6b3353fab43a05406eea223f9"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jan 12 18:59:38 2016 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Jan 13 11:13:01 2016 -0800"
      },
      "message": "Skip layer updates for layerless nodes\n\nbug:26535405\n\nChange-Id: I4d5ea8401f59815715c5b51f88d549474876160c\n"
    },
    {
      "commit": "f158b49c888f722194afe5a80539a2b020c130bc",
      "tree": "83d2e40497f2ea9ca439653d5ef334263c92c61b",
      "parents": [
        "89ceb5c97745c6901620c20eb0828a5c2f768f4f"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jan 12 14:45:08 2016 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jan 12 14:45:08 2016 -0800"
      },
      "message": "Rename Reorderers to Builders\n\nChange-Id: I9bb5a2e70055e2f6d14912fbd86ab72ac0d6e20c\n"
    },
    {
      "commit": "84ad6149db0e1dc98ed3778ee4fc2ab685765d9a",
      "tree": "48c06d0e5d9f773d38a94c97aa78f9c061776f8d",
      "parents": [
        "b250a834e433b4f483e8d8362a6fda8d6594c7b8"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jan 12 12:09:19 2016 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jan 12 12:19:51 2016 -0800"
      },
      "message": "Fix a couple crashes in the new reorderer\n\nAlso fixes the layer clear scissor logic in BakedOpRenderer, fixing a\nflicker.\n\nChange-Id: I61106a18938ea35e31f0a0b585b5743544245773\n"
    },
    {
      "commit": "b250a834e433b4f483e8d8362a6fda8d6594c7b8",
      "tree": "4effddedd8fe6ad96acfa03853761dc537d6ec6c",
      "parents": [
        "ae10e1368c78034e0fd88010220d6e5e684a2f3a"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Jan 11 19:28:17 2016 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Jan 11 19:28:19 2016 -0800"
      },
      "message": "Fix deep copy of entry queue\n\nalso fixes several 64 bit compilation issues\n\nChange-Id: I1825f822d02be72c21bdcd07cefa68217856ddc2\n"
    },
    {
      "commit": "5ea1724be4d3b6039818f91fc087e1216c1463d5",
      "tree": "04c3a8a7b6c2dfe8d3ce4cc665c2bebc3af47e39",
      "parents": [
        "7435eb148e72382126e9073183e881357bb38a8b"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Jan 11 14:07:59 2016 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Jan 11 15:35:52 2016 -0800"
      },
      "message": "Rename OpReorderer to FrameReorderer\n\nAlso separate LayerReorderer into its own files.\n\nChange-Id: Iafb6a156f760f62f831f6288fd0dadf1db25da24\n"
    },
    {
      "commit": "7435eb148e72382126e9073183e881357bb38a8b",
      "tree": "f090018a61fcaa754f53f7c3dce66a5068311c77",
      "parents": [
        "d1d533610aad279f7ae9037f0e4b3dd865bb0a24"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Jan 07 17:41:40 2016 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Jan 08 16:05:35 2016 -0800"
      },
      "message": "Unclipped savelayer support in new renderer\n\nbug:22480459\n\nChange-Id: I89dd5de8d7d008a1e298d227d767aabff5c96e27\n"
    },
    {
      "commit": "b87eadda1818034ce03d85f30388384d1ac65916",
      "tree": "78f9bf3ca2500c739f31e2229ddf186302ecb9e2",
      "parents": [
        "b4f4dc4e4db5fd65cd457eecd3c98cfa11367615"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Jan 06 09:16:05 2016 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Jan 07 15:42:45 2016 -0800"
      },
      "message": "Partial unclipped save layer support\n\nNot yet implemented in renderer.\n\nChange-Id: I491ec6e7886bfa313d1db71dd5981690d45b78a9\n"
    },
    {
      "commit": "7cbf63da4f29e5a6b131796eb3b67fd9ff1521b8",
      "tree": "dcbb1ebf2429b79af2d696615768d43cb99820ca",
      "parents": [
        "903d1b7642945b560394db7fac1f4e0fafec44d7"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Jan 06 13:46:52 2016 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Jan 06 14:04:22 2016 -0800"
      },
      "message": "Rework op macros\n\nMakes it simpler to add defer-only or render-only opps.\n\nChange-Id: I6c8ec64e76d419635429055cff6d96360d21706d\n"
    },
    {
      "commit": "e4db79de127cfe961195f52907af8451026eaa20",
      "tree": "94be898632cc176b599aa2997072e91628d16dd3",
      "parents": [
        "33e9b426da2863cdd9e675cde018b450a66e9ab4"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Dec 22 16:32:23 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Jan 04 17:00:03 2016 -0800"
      },
      "message": "Stencil support in new recorder/reorderer\n\nbug:22480459\nbug:26358504\n\nAdds complex (non-rectangular) clipping support, and overdraw\nvisualization. Doesn\u0027t support stencil clipping in layers.\n\nChange-Id: I8d10c7f1d2769ab5756774ca672344cc09901f87\n"
    },
    {
      "commit": "93e53e09dde84a5a6d6931b81198d94e2ae1c6eb",
      "tree": "82e55d2de28d85ecce7444596ff982debb20244e",
      "parents": [
        "3a0ea6254d9ff95d09ca4ab099ac513f6804ec77"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Dec 17 18:42:44 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Dec 18 10:07:16 2015 -0800"
      },
      "message": "Fix merged op clipping issue\n\nChange-Id: I48cd5e92f3e62dcd189a4411a71aa7a40ce5498c\n"
    },
    {
      "commit": "d2dfd8f128b632ed99418ab2b32949c939a9a369",
      "tree": "ef9446320399a05cf5bf2e1d7d4a6a177c261960",
      "parents": [
        "d7448e65e243754f31890baef29dff187dc2e5e5"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Dec 16 14:27:20 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Dec 16 15:35:40 2015 -0800"
      },
      "message": "Add TextureView support to new renderer/reorderer\n\nbug:22480459\n\nChange-Id: I2e4c0bc6b904706132f3f5087ededc9cac9b40fb\n"
    },
    {
      "commit": "d7448e65e243754f31890baef29dff187dc2e5e5",
      "tree": "49c1784cf2cccce9618ee0412ee311d0fdecce83",
      "parents": [
        "20754c5a112e418c11cc88176283db2c4bf2efd6"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Dec 15 10:34:36 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Dec 16 10:27:17 2015 -0800"
      },
      "message": "Add TextOnPath support to new reorderer/renderer\n\nbug:22480459\n\nChange-Id: I302048ec09901420c15003e21e44a551cc59c7ad\n"
    },
    {
      "commit": "e29ce6f51d681af7649c0a7cddee97c471e43eb5",
      "tree": "0f6caa8d9d85d3c47cb16a00ae7e141e9ed06de5",
      "parents": [
        "f928d4aa45346b7e5fc640096c80d61d53fdd8ad"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Dec 10 16:25:13 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Dec 15 10:40:54 2015 -0800"
      },
      "message": "Add functor support to new reorderer/renderer\n\nbug:22480459\n\nChange-Id: I95df7e0504f62d254e8ffbd8d65ed5d763080b9c\n"
    },
    {
      "commit": "268a9c0f29c16a64d5819c7dbe8b0633baedab83",
      "tree": "1507677fa4bd363188c6829b9d6d8052678b2dfe",
      "parents": [
        "c7964751d6745992065ec7c22d2a7feb51a0efe7"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Dec 09 18:05:12 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Dec 10 11:09:27 2015 -0800"
      },
      "message": "Add property animations to new reorderer/renderer\n\nbug:22480459\n\nChange-Id: Id8091038004245a56deb48bf3625edfd08ab8681\n"
    },
    {
      "commit": "f09ff5aa57bff01cb17595fb7ca8e48d238a6acd",
      "tree": "ea54bb5ef1da5a1e2522746689dfc45167a816bb",
      "parents": [
        "a6f28e352d48c285b78f35c8c70dcafb82325dbb"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Dec 08 17:21:58 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Dec 09 16:06:09 2015 -0800"
      },
      "message": "Add bitmapmesh, rect, and patch rendering\n\nbug:22480459\n\nChange-Id: Id9e9146997dd018b3e4e785c2bc13689e3cf7c3c\n"
    },
    {
      "commit": "386aa031793bb037ec43b6cdbd8908c343cc86cb",
      "tree": "7b1e48a1288255466d9115e137fae8346de47418",
      "parents": [
        "e0b2f2e270ae14b9deaaa31acd7ef535ff963e32"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Dec 07 17:08:25 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Dec 09 11:29:04 2015 -0800"
      },
      "message": "Add more shape drawing to new reorderer/renderer\n\nbug:22480459\n\nAdd support for outsetting final bounds based on stroke.\n\nChange-Id: I659318ccec51882bba1906ce3c7042288ce35c30\n"
    },
    {
      "commit": "15c3f19a445b8df575911a16e8a6dba755a084b5",
      "tree": "5e3a71be6407e696ce6256c3825eb94632fbc541",
      "parents": [
        "e920098f31860824ca714f10b2e72dbff5442184"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Dec 03 12:16:56 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Dec 07 12:34:46 2015 -0800"
      },
      "message": "Merged op dispatch in OpReorderer\n\nbug:22480459\n\nAlso switches std::functions to function pointers on OpReorderer, and\nswitches AssetAtlas\u0027 entry getter methods to using pixelRef pointers,\nso it\u0027s clear they\u0027re the keys.\n\nChange-Id: I3040ce5ff4e178a8364e0fd7ab0876ada7d4de05\n"
    },
    {
      "commit": "8d1f2120fe80b23ab03c7168e3b6b2d13bafe2e7",
      "tree": "7c514201847e983de760f491c60f1bbed0b07bf6",
      "parents": [
        "95cdbd6f6d0fd8f4ec9d68a3ed8845a1ac6aa541"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Nov 24 16:40:09 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Nov 25 14:09:24 2015 -0800"
      },
      "message": "Support projection in OpReorderer\n\nbug:22480459\n\nChange-Id: Iceb71732dc50957cfb47fa1ba9b8e18e6fc51132\n"
    },
    {
      "commit": "a1717271caac5e8ea3808c331d4141ac01a42134",
      "tree": "3f49ac6c386aa4166f5a82ecec2fd87458c88e25",
      "parents": [
        "ee35d738f46f01ce71ac8bde665d71ac3a35cbb9"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Nov 19 13:02:43 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Nov 20 11:03:18 2015 -0800"
      },
      "message": "Initial text support in new reorderer/renderer\n\nRemoves obsolete drawPosText codepath, and unifies text decoration behavior.\n\nChange-Id: I9c563249ab688a3394445a0e7fe1b9d0661f6f7c\n"
    },
    {
      "commit": "8ecf41c61a5185207a21d64681e8ebc2502b7b2a",
      "tree": "94592cbff1b686302433a68a74b01bdb3b44d487",
      "parents": [
        "b20dbf6c6a19d6f6f69791eba7492c4480e8f113"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Nov 16 10:27:59 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Nov 17 14:50:49 2015 -0800"
      },
      "message": "Add temporary layer alpha fallback to OpReorderer\n\nAlso adds logic to clip temporary layers to viewport both for\nefficiency and to allow large ones (such as the fallback case) to fit\nin max texture size.\n\nChange-Id: Iee51495220f5ca1dc7e6f5fd3615db2e896efd74\n"
    },
    {
      "commit": "98787e6c9b2c10b1ab7820bdac168686025b924a",
      "tree": "4bc65070a5f3c460c3b2a6c358d990b300010457",
      "parents": [
        "9fded232a9548a304e0145011df8849fba0dcda7"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Nov 13 10:55:30 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Nov 16 11:21:18 2015 -0800"
      },
      "message": "Finish shadow support in new reorderer/renderer\n\nNow passes alphas and light radius, and correctly transforms light\ncenter for layers.\n\nAlso fixes begin-frame/layer clears to be damage rect aware.\n\nChange-Id: I3b1415cd7bf1518c510145ebebdb745f494a2542\n"
    },
    {
      "commit": "d3daa3198e2212c985c634821682d5819346b653",
      "tree": "2c00e31c98ccfac6dc9ce38e65b95324e44d41b3",
      "parents": [
        "6d9df3974b93b962376ca996e1bfd109286a3f90"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Nov 06 10:59:56 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Nov 11 13:32:37 2015 -0800"
      },
      "message": "Add shadow support to new reorderer/renderer\n\nDoesn\u0027t yet use correct lighting info (esp. in layers), or\ntessellate shadows asynchronously\n\nChange-Id: I9ccec24b28869be42138a9bb234b1af874291a44\n"
    },
    {
      "commit": "161f54b2d4160b8d3f3da9eba5746da5162e4821",
      "tree": "392dc082f84e8d20ed831c15893053fc7a44d9a4",
      "parents": [
        "679f9863f9390083f91b5e6f8048cbfd7922766e"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Nov 05 11:08:52 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Nov 05 15:45:59 2015 -0800"
      },
      "message": "Add z-reordering support to OpReorderer\n\nChange-Id: I3fa969fe53cf648d145810f69fa7dada376c0b9a\n"
    },
    {
      "commit": "76caecf421b42e9b8294a65f62ff2d90b55a337b",
      "tree": "74ff2357d77c6b831aa3723d9f38416b3cef0d67",
      "parents": [
        "429c5b93ff66e82fa3fd65475489fde133c66002"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Nov 02 19:17:45 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Nov 05 15:25:12 2015 -0800"
      },
      "message": "Add more RenderNode property support in OpReorderer path\n\nChange-Id: I0163fe91d8145e33019739c191bbab0432a5f9aa\n"
    },
    {
      "commit": "0b7e8245db728d127ada698be63d78b33fc6e4da",
      "tree": "b7138962e159b3359cb08735098d34779a5ce78e",
      "parents": [
        "8462bad554c2c0f5639c00dd7f1f32e9567c8e04"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Oct 28 16:50:44 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Nov 02 12:59:38 2015 -0800"
      },
      "message": "Initial HW layer support in new reorderer/renderer\n\nShares vast majority of clipped savelayer code, with only minor\ndifferences in lifecycle.\n\nDoesn\u0027t yet handle fill region, resize, or window transform.\n\nChange-Id: Iabdd71811590d2b937eb11e1b01ce556ade54a5a\n"
    },
    {
      "commit": "5854b34881b1a747ac80b5077869ef270a92b1f4",
      "tree": "9b25f2320950929e03a772bc985ea40df50d5e4b",
      "parents": [
        "ac7062e7f1716f137f14299c28e3c638cf4bdb9f"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Oct 26 15:49:56 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Oct 27 16:44:50 2015 -0700"
      },
      "message": "Rework receiver/dispatcher design slightly, and replace Layer usage.\n\nSwitched from \u0027renderer/info\u0027 to \u0027dispatcher/renderer\u0027 to make their\ninteraction more natural. The new BakedOpRenderer is more similar in\nresponsibilities to the OpenGLRenderer, as it manages layer and frame\nlifecycles, and performs the actual rendering.\n\nHowever, it\u0027s still simpler because the BakedOpDispatcher handles\nmapping Canvas drawing ops to Glops, and the OpReorderer handles almost\nall canvas state operations.\n\nAlso switch BakedOpRenderer to use the new OffscreenBuffer, which\nserves as a lightweight Layer replacement, with a much simpler\nlifecycle.\n\nChange-Id: Ie0e2e248503400041d49729d813d485d28c76eb3\n"
    },
    {
      "commit": "818c9fbf1d76d5df19253ba4eb964efa939ec9ec",
      "tree": "6fa7a565ae56d5c92a5905b19c9a20f675b0526b",
      "parents": [
        "914e362d1884a79588e848f6f87772e4e3fc73b2"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Oct 23 14:33:42 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Oct 26 15:51:48 2015 -0700"
      },
      "message": "Initial version of clipped saveLayer in new pipeline\n\nAdditionally disables usage of FBO cache, so FBO destruction safely\ninteracts with renderstate caching.\n\nChange-Id: I25c277cb7afec2ca33bf226445d6c8867a15a915\n"
    },
    {
      "commit": "6fe991e5e76f9af9dab960100d5768d96d5f4daa",
      "tree": "20616f2c371e188492b48a9c759530b06047550a",
      "parents": [
        "387d1b25b58bb2bb80d983b7db7ddac22731a552"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Oct 20 09:39:42 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Oct 21 18:19:37 2015 -0700"
      },
      "message": "Work to support saveLayer in new pipeline\n\nclipped SaveLayers will now be pulled to the beginning of the frame,\nprior to drawing FBO 0. This will remove the need for switching FBOs\nmid-frame.\n\nChange-Id: I4d8dc1f845e84e9b49d5acdf4f4703eef4a9cb06\n"
    },
    {
      "commit": "b36af87f8275f4b982906f88193ec27600f2746a",
      "tree": "e2523b8fdff8b73761869a0075ff6ca8d455ae71",
      "parents": [
        "5419280fb325eaf52102cf543deebb95a10a0871"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Oct 16 14:23:12 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Oct 19 11:32:28 2015 -0700"
      },
      "message": "Use LinearStdAllocator in DisplayList\n\nbug:24300128\n\nThis removes most of the remaining calls to malloc when\nrecording DisplayLists.\n\nChange-Id: If928bd53dac0f145aadc436a62759086b67da0ed\n"
    },
    {
      "commit": "003cc3dec8e2a92e51086fbcd5ee1bb236efa701",
      "tree": "8259dbf89955c599183f241268ce7704d6f2fc93",
      "parents": [
        "e4436e325c7756b162d99b05ece3dd9c38ce3a44"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Oct 16 10:24:55 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Oct 16 10:38:34 2015 -0700"
      },
      "message": "Rename DisplayListData to DisplayList\n\nChange-Id: I25f6bb88ffdf9baf7e8e4e2a294aa8c9d2a4605b\n"
    },
    {
      "commit": "ddf2215d9807b641dbcb304779ef6b530f876ac7",
      "tree": "ca20de2796daee1718925929c00d2ada55415c23",
      "parents": [
        "80435a7fcd98e5ad1a0537a9646be2fca575f3bb"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Oct 14 17:42:47 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Oct 15 09:38:15 2015 -0700"
      },
      "message": "Add partial damage support to new draw path\n\nChange-Id: I612578fd181240de71297c9a28bc9a8f350764a7\n"
    },
    {
      "commit": "b565df13a9e5c7b1d7d93bdfa4a793752d66d3cc",
      "tree": "4a2dadd3b2c95663c23a626eff75962a0b8d4ce2",
      "parents": [
        "b08949151f8dfc7a72ea6696f2e6067c2b1643bb"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Oct 05 13:00:52 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Oct 14 16:10:40 2015 -0700"
      },
      "message": "Initial commit of new Canvas operation recording / replay\n\nDone:\n- drawRect, drawBitmap, drawColor, drawPaint, drawRenderNode, drawRegion\n- Recording with new DisplayList format\n- batching \u0026 reordering\n- Stateless op reorder\n- Stateless op rendering\n- Frame lifecycle (clear, geterror, cleanup)\n\nNot done:\n- SaveLayer (clipped and unclipped)\n- HW layers\n- Complex clipping\n- Ripple projection\n- Z reordering\n- Z shadows\n- onDefer prefetching (text + task kickoff)\n- round rect clip\n- linear allocation for std collections\n- AssetAtlas support\n\nChange-Id: Iaf98c1a3aeab5fa47cc8f9c6d964420abc0e7691\n"
    }
  ]
}
