)]}'
{
  "log": [
    {
      "commit": "c2379070a46f208bce490b938e0673ba00373e2e",
      "tree": "03de6d4d7a829847d8b072de23ca0c37d963f472",
      "parents": [
        "596d4e7230ae1858aaafbae7987e46d65181f1bd"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Dec 11 14:29:51 2014 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Dec 11 14:29:51 2014 -0800"
      },
      "message": "Correct layer size formatting in trace\n\nbug:18722704\nChange-Id: Icef9aaa62633b2d86ad250f43d4c8fa5cc0b6842\n"
    },
    {
      "commit": "faa79ff9d964de940660d2226d5b06ded9294597",
      "tree": "f0cffdaa4de22117f6a47268a17d52f79e1e0bad",
      "parents": [
        "293f0f380b514658f63474b714053fda0e92569f"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Dec 01 13:44:21 2014 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Dec 01 15:47:10 2014 -0800"
      },
      "message": "Clip outline to View clip bounds for shadow computation\n\nbug:18509823\n\nThis allows animations of View clipBounds (and other callers of\nsetClipBounds) to affect shadows, instead of leaving them floating.\n\nChange-Id: I249fa4b371a170cb0c54001f5b0e0097e109b8b8\n"
    },
    {
      "commit": "ee6606519d22805c1caf23a3c75cde9fc97b34eb",
      "tree": "923b1bdc3095cacfb77cc3d0b3ea0e29c24acc90",
      "parents": [
        "d0f6b4f6297373e569e383edc21aaa3f87591e0b",
        "b5a5435a77bae40b55053ccde93b1ed45d0e8329"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Nov 25 18:45:10 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 25 18:45:11 2014 +0000"
      },
      "message": "Merge \"Improve DisplayList state output\" into lmp-mr1-dev"
    },
    {
      "commit": "b5a5435a77bae40b55053ccde93b1ed45d0e8329",
      "tree": "6589f39a057fd5af9147e05abcb2ecb37cc79c4a",
      "parents": [
        "6c912b7d056c67b41fd46f31de168795e97c2336"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Nov 21 14:54:35 2014 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Nov 21 16:23:00 2014 -0800"
      },
      "message": "Improve DisplayList state output\n\nbug:17991451\n\nLog hardware layers and shadow casting\n\nChange-Id: I2ae40f270d18f5b2a5af985513e0f5e8841216c2\n"
    },
    {
      "commit": "70850ea258cbf91477efa57a1f1a23cc0044cc93",
      "tree": "674621c2adc816afae2a1d09291fcd4af12b08e7",
      "parents": [
        "6c912b7d056c67b41fd46f31de168795e97c2336"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Nov 18 10:49:23 2014 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Nov 19 17:24:30 2014 -0800"
      },
      "message": "Improve logging around performance critical events\n\nbug:17702227\n\nAdd details useful to developers (such as layer size/View name), and\nswitch away from logging implementation names/details, since they\nare generally not relevant to developers.\n\nChange-Id: Iee605d182f241450f7e75a6d0c283d51fa1312f5\n"
    },
    {
      "commit": "a35778c799e8073a42b9e22191bde9d838327ab7",
      "tree": "f4d74fc026f8dcf6d8ea8e5a18be30a14b990b70",
      "parents": [
        "b9744c1c1f5e8cc936da7f1832665f77ad5bb18f"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Nov 06 09:45:10 2014 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Nov 06 09:45:10 2014 -0800"
      },
      "message": "Yank ResourceCache out of Caches\n\nBug: 17947547\n\nPull the ResourceCache (aka, ref-counting side channel) out of\nCaches so that DisplayListRenderer doesn\u0027t use Caches, avoiding\nthe risk of instantiating Caches on the wrong thread or\nwithout a GL context\n\nChange-Id: I7d63b70b3b0a0163308c5dedd6ef255eadebe8fd\n"
    },
    {
      "commit": "0e89e2b7bcb2c035e8cee77f93120e7c5617f8d2",
      "tree": "8fcd1f768f08fbeb2cd13425a2bf15b7670428f2",
      "parents": [
        "141823ec6313d9545b8354ea1e3e017a1da3cfa8"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Oct 31 14:49:06 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Oct 31 15:30:10 2014 -0700"
      },
      "message": "Layer changes\n\nBug: 17208461\n\n* Switch Layer to be VirtualLightRefBase instead of\n  Caches\u0027 side-channel ref-counting\n* Include active layers in gfxinfo dump\n* Run gfxinfo dump on the correct thread\n* Dump gfxinfo on Layer creation failure\n\nChange-Id: I28d195699e2334518e215ab28c7a17355aee9678\n"
    },
    {
      "commit": "5c9d717d3e7064db76d2a01223af51379dadf2c3",
      "tree": "cc8069129707905f8754d2250bbcf2d929467009",
      "parents": [
        "9b67a1a232dc0e1cda346271c3a9d118228001ee"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Oct 22 11:32:27 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Oct 22 11:32:27 2014 -0700"
      },
      "message": "Fix damage bug\n\nBug: 18087374\nChange-Id: Ie183392122c73f93010fb3f4be071c924b352966\n"
    },
    {
      "commit": "059476a24502500bbc277b86f9a4f7e840d1b5f5",
      "tree": "459eafb5f8b26b16e754b6e1a0a86c50d9371b7d",
      "parents": [
        "ec89863adec09dbf980b2d2c90c0fa5e78ffa7a9"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Sep 29 17:09:53 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Oct 01 11:14:55 2014 -0700"
      },
      "message": "Avoid creating Caches instance with gfxinfo dump\n\nbug:17509891\nChange-Id: I182851068ba04926d60226b3ace95efea59eac45\n"
    },
    {
      "commit": "c166b6c4fc3e1158ca08cfed24639409161055cf",
      "tree": "0d63318f0e1dbb9cfb7b705ac1f29e6e1c7921f0",
      "parents": [
        "cfc102685c6e9286f76b8cd5c2ed2318e9b2901e"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Sep 05 19:55:30 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Sep 05 19:55:30 2014 -0700"
      },
      "message": "Fix save count offsetting within DisplayList chunks\n\nbug:17388541\nChange-Id: I7cb1139b8cd30f72ae7c6de2074c3c5865b8f309\n"
    },
    {
      "commit": "6dad93eff6cb62aded9d07bc3381cf1cbea468b9",
      "tree": "70bdff3ab45d42d81468fc4930a02f639043d6a5",
      "parents": [
        "46edee0994354e828bd6d0bffe60b6036b8c1388",
        "443a714fa7c0dd07fee3527cc5bc3d3ca1fb7d44"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Sep 05 01:06:07 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 05 01:06:08 2014 +0000"
      },
      "message": "Merge \"Yet more layer tracking logging\" into lmp-dev"
    },
    {
      "commit": "443a714fa7c0dd07fee3527cc5bc3d3ca1fb7d44",
      "tree": "4e1fd44948c6bc7324d6e3cb66af261f864530e5",
      "parents": [
        "2388750612b1fe54d31a47e0a40c1e6cf5a0cedd"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Sep 04 17:40:05 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Sep 04 17:40:05 2014 -0700"
      },
      "message": "Yet more layer tracking logging\n\n Bug: 17208461\n\nChange-Id: I55e7d0921eb565867e966d68b798b7b92c391b55\n"
    },
    {
      "commit": "2d3f9033f8803d471720be60228d9894dd385488",
      "tree": "ae2fe0eef1725e9cabaae6f0915d03f3fa016b65",
      "parents": [
        "e7baf5afc07127854e5791d93f05e6b46633bc47",
        "e83cbd451868a734bfac07ccd680d5617080b579"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Sep 04 21:06:09 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 04 21:06:10 2014 +0000"
      },
      "message": "Merge \"Prioritize reveal clipping over Outline clipping\" into lmp-dev"
    },
    {
      "commit": "e83cbd451868a734bfac07ccd680d5617080b579",
      "tree": "eb2c39e190850694b67ad3f6e810a08f63e60282",
      "parents": [
        "01abcaa295fc4eec7442a575d160b0ce2c250127"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Sep 03 17:52:24 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Sep 04 14:05:10 2014 -0700"
      },
      "message": "Prioritize reveal clipping over Outline clipping\n\nbug:15780987\nbug:17350602\n\nAlso update docs around clipping nesting behavior,\nand some Z ordering behavior.\n\nChange-Id: Iaa204350a0adfdcbd8c4b821fb4a9c0ae22f2613\n"
    },
    {
      "commit": "80068b735eb4ef26f0d9dbcb0fbc5e4982c5c215",
      "tree": "7fb407f4d861574e2342c34dbc5ce0b572cff996",
      "parents": [
        "7de5c43c80af066597e2aa0468415bc0e882e135",
        "998a6d81896df8b662cc10ddeb35087b78b38d72"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Aug 28 23:04:31 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 28 23:04:32 2014 +0000"
      },
      "message": "Merge \"Track buildLayer calls, destroy if unused\" into lmp-dev"
    },
    {
      "commit": "998a6d81896df8b662cc10ddeb35087b78b38d72",
      "tree": "33af22fd2b087c8935fc2f6b4b03a71495ed83ef",
      "parents": [
        "e9a204f04465c26a32a15c237b985def8c2b4a90"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Aug 28 15:35:53 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Aug 28 15:55:26 2014 -0700"
      },
      "message": "Track buildLayer calls, destroy if unused\n\n Bug: 17208461\n\nChange-Id: Ibdb104a493285d77a6891c5e74e38a52c7014da9\n"
    },
    {
      "commit": "bf939b2671ba0618e0cdca3e6c75d59f35a83bba",
      "tree": "826fb7f4b734c5444a699250c60fc2b0a54ca851",
      "parents": [
        "86469f5962a595688ed73825778c5f6d528d7735",
        "c3e75f9d54b3629b3fd27afafa2e07bd07dad9b3"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Aug 28 17:27:23 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 28 17:27:24 2014 +0000"
      },
      "message": "Merge \"Update transform isolation to handle command chunks\" into lmp-dev"
    },
    {
      "commit": "119907cd2575c56b1ebf66348b52e67aaf6a88d8",
      "tree": "9990e37a560021560316ac2cfc6cf4c64df9cb92",
      "parents": [
        "1698297daf8068bc9e6971d43744d48f1672bab2"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Aug 14 09:02:01 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Aug 27 17:44:25 2014 -0700"
      },
      "message": "Animator stuff\n\n Bug: 17228458\n\nChange-Id: Id884a429a512f9cd2be0ed16dbd0f10e92b4440d\n"
    },
    {
      "commit": "c3e75f9d54b3629b3fd27afafa2e07bd07dad9b3",
      "tree": "80da7c0eda4235a9c4f3d3e71a4fb0c039b91652",
      "parents": [
        "780617faa2c9b3dbcb902da06a486149c5bddbb3"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Aug 27 15:34:52 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Aug 27 15:43:42 2014 -0700"
      },
      "message": "Update transform isolation to handle command chunks\n\nbug:15570351\n\nPrevent drawing transformations on a ViewGroup\u0027s canvas from directly\naffecting the transformation of the children through the renderer,\nsince it\u0027s already baked into mTransformFromParent at record time.\n\nChange-Id: I6310a2260dfe4def0bde1fd2c5b93791a645d586\n"
    },
    {
      "commit": "8afd0f245cc0c4a0366f39f41b5f78e47ee83be3",
      "tree": "220f6cac192fe822650d4676ef3996da5fb02ad9",
      "parents": [
        "cc3e5d5cd197ad45e051e31fd85af28588af4cf7"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Aug 21 17:41:57 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Aug 25 15:35:40 2014 -0700"
      },
      "message": "Create z reordering boundaries around dispatchDraw\n\nbug:16012254\n\nThis means rendernodes with a Z will no longer be drawn at the end of\ntheir parent\u0027s DisplayList, but at the end of the associated reorder\nregion (DisplayListData::Chunk).\n\nChange-Id: Ia033fee9d9a4db567b2a8d5e90fc57a4d0a64544\n"
    },
    {
      "commit": "7d3734491516fdda47059f2a36c1de9fa39dd8a9",
      "tree": "62083fddcb4ee769330279b88ccd91b676d0dc4c",
      "parents": [
        "2b5d920e800d89b695f01bfe704d12f6d53902ec",
        "9eb9f6f8cbbbd87d45da8071aa54cb066a797723"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Aug 21 20:26:17 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 21 20:26:18 2014 +0000"
      },
      "message": "Merge \"Don\u0027t run animators in buildLayer\" into lmp-dev"
    },
    {
      "commit": "9eb9f6f8cbbbd87d45da8071aa54cb066a797723",
      "tree": "aa193a48886ab29dd158028a48475cc63e43383d",
      "parents": [
        "94f6878bbd98753aa60fd80f5a73b5f198579b04"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Aug 21 11:23:05 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Aug 21 11:23:05 2014 -0700"
      },
      "message": "Don\u0027t run animators in buildLayer\n\n Bug: 17172689\n\nChange-Id: Ib47d589c002543327fa336718440f9f8c95524e0\n"
    },
    {
      "commit": "c71bfcaa182e3d4fd9874362d3b4781fda934a21",
      "tree": "cbb11e94b0a849bb86b13206d9a4693d33b61890",
      "parents": [
        "3acf66f5580b9e411ff20674c676de0901d4b459"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Aug 21 10:18:58 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Aug 21 10:18:59 2014 -0700"
      },
      "message": "Fix layer shadow transform crash\n\nbug:17180252\n\nChange-Id: Ia648b8c98a217a3a4973917bf255d1397802cbbe\n"
    },
    {
      "commit": "69e5adffb19135d51bde8e458f4907d7265f3e23",
      "tree": "022fc23512ae5adfbe3f86351305bc9f4538a68a",
      "parents": [
        "e222e359a0aab985488a711f6edb76820fe8c6df"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Aug 14 13:34:01 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Aug 15 00:59:44 2014 +0000"
      },
      "message": "Define shadow casting behavior within layers\n\nbug:15860114\n\nSavelayers and HW layers both now support shadow casting.\n\nFor save layers, the light source should always be correct, for HW\nlayers, the light source position is set when the layer is created,\nand updated when it is resized.\n\nChange-Id: Ie85567dd43c2bb0a0b08fd0bd4db41efa793ac2b\n"
    },
    {
      "commit": "b3cca876c2e11b865cb4f83abe2c48a60b95af5b",
      "tree": "adb26b979dae1340e5c0bd6a976874f14c7f36fd",
      "parents": [
        "c28aceb11e736382bc7ee749483ea5f23299ad78"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Aug 08 18:42:51 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Aug 12 12:33:01 2014 -0700"
      },
      "message": "Fix ripples projecting to scrolled view\n\nbug:16873774\n\n1) Fix projectionReceiveIndex, which could in some cases point at\ntranslate/restore ops.\n\n2) Use background translateX / translateY for projected RenderNodes.\nThis makes them match background position, and thus properly account\nfor scroll.\n\nChange-Id: Idbd5700858fd67c5abea0270a1012952fe09ac22\n"
    },
    {
      "commit": "a7c2ea20c43ab797bef5801530687e22e83def8f",
      "tree": "a5456b7d3cf8fb9f49a330bb626d490ba3de3742",
      "parents": [
        "5c8ea2c369deab75719fe7c7301846a8ef955702"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Aug 08 13:21:00 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Aug 08 20:24:34 2014 +0000"
      },
      "message": "Fix damage for layers for projection receivers\n\n Bug: 16880228\n\nChange-Id: I59ab760a21f49cc2cac0d8936b173cff292e6114\n"
    },
    {
      "commit": "7466986d2055eb8711f36a85ac539b1572ffe805",
      "tree": "6c560d37db0e9f709e8b3114c126423ce99488fc",
      "parents": [
        "f06009542390472872da986486d385001e91a2a7"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Aug 07 17:27:30 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Aug 08 00:52:54 2014 +0000"
      },
      "message": "Fix leak of SkPathRefs\n\nbug:15939479\n\nSkPath objects owned by DisplayListOps weren\u0027t being torn down, and\nthus weren\u0027t releasing their SkPathRef innards.\n\nChange-Id: I2581e124600a93a399ef3251f456c02ab52839a8\n"
    },
    {
      "commit": "dc0349bebafb486b044655f3c146450b527a5123",
      "tree": "7c8adca04e1efb56856e9f5ada96ba0014f7c5ff",
      "parents": [
        "33559c96ad4f2847ad2667c6035b8afe2afe2970"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Aug 06 15:28:07 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Aug 06 22:28:47 2014 +0000"
      },
      "message": "Add missing null check\n\n Bug: 16352267\n\nChange-Id: Ib60baa6d22ec02ba623a297660e2e3ecc7557d0f\n"
    },
    {
      "commit": "c79eabcd3c6306bb2ec75f9584b79e661f265127",
      "tree": "aa1959c28429f0493de2fa70c9e799dfb34866b7",
      "parents": [
        "43cc8bbbbd5e6418cdfa0fa4b26c9f5c3a28c029"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Aug 05 11:03:42 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Aug 05 20:54:28 2014 +0000"
      },
      "message": "roundOut layer damage\n\n Bug: 16734708\n\nChange-Id: I8815b7cf5f74be6deda98aaaf7cde85509def373\n"
    },
    {
      "commit": "77b5cad3efedd20f2b7cc14d87ccce1b0261960a",
      "tree": "5acf378a0aa0477ef585d71a0b9e6c56cfd1d6c9",
      "parents": [
        "f660edb25a99282ce86b91804cd0145c1ef54bab"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Jul 30 18:23:07 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Jul 31 12:29:57 2014 -0700"
      },
      "message": "Add outline alpha\n\nbug:16140822\nbug:16566746\n\nThis allows background drawables to alter the opacity of a shadow\nbeing cast with their own alpha values.\n\nChange-Id: I49698cc7c1bf4b2b55ffe2f82899543ca62bc61c\n"
    },
    {
      "commit": "af4d04cab6d48ae0d6a5e79bd30f679af87abaad",
      "tree": "b1fe9d83f5ccc32b1e0db8f002d2d3035368dfac",
      "parents": [
        "3d1856f4449f02a9a3bda06738c3eb83df96f88b"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jul 29 12:50:14 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Jul 30 17:15:50 2014 +0000"
      },
      "message": "Use RoundRect clipping for circle reveal animation\n\nbug:16630975\n\nAlso, remove inverse clipping feature from reveal animator.\n\nChange-Id: I770a4eb48cd123b0ca0f39d16a0f3eefd1be3653\n"
    },
    {
      "commit": "590b8d3601a518f6c3e00a28e88add36142bde22",
      "tree": "49028c5103fa9c63d725a983c912ae1fe30d3ed7",
      "parents": [
        "9679410db578e179c7559e7a52bb21c8082e9631",
        "09d5cddf67b676018700bcc10a72242641cd7eec"
      ],
      "author": {
        "name": "Bo Liu",
        "email": "boliu@google.com",
        "time": "Mon Jul 28 21:44:10 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 24 20:48:02 2014 +0000"
      },
      "message": "Merge \"Add kModeSync\" into lmp-dev"
    },
    {
      "commit": "09d5cddf67b676018700bcc10a72242641cd7eec",
      "tree": "92b8ab435be040a30ba9cb2d77246aaaca68e5a1",
      "parents": [
        "4f994eb2ddbe68b0eada89dcaae34c079df55c7e"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Jul 24 10:36:08 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Jul 24 10:36:08 2014 -0700"
      },
      "message": "Add kModeSync\n\n Bug: 16526750\n\nChange-Id: I4c087160e80432739321172fd57880846c8de6e0\n"
    },
    {
      "commit": "a753f4c6cb8558795e673df1896532cd148781e2",
      "tree": "ec290b59a9cc91bb71402b8643fbc976f95c82d2",
      "parents": [
        "543650bb10b1104dd4ebb81e4a9bbebf9fb4c535"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Jul 24 12:39:17 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Jul 25 20:56:50 2014 +0000"
      },
      "message": "Move ClipBounds to native\n\nbug:15698973\n\nAlso simplifies RenderNode LTRB properties\n\nChange-Id: I09263a697b71d325a46b57cd5250a2b165f251c8\n"
    },
    {
      "commit": "1aa5d2d7068147ff781cfe911a93f01593a68c79",
      "tree": "63d8676a5a062deb3a95caee0c5a39ce19471df2",
      "parents": [
        "71d34ec5bed6fe723cf5f85c1ffb64e0d9380967"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Jul 24 13:38:28 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Jul 24 14:28:08 2014 -0700"
      },
      "message": "Fix ALL compile warnings\n\n All warnings/errors fixed for GCC \u0026 Clang\n\nChange-Id: I2ece3a136a5ae97a9acc3069537ed986238b5fd3\n"
    },
    {
      "commit": "0645128b80621edee70f8cab4afb208fe0c26bec",
      "tree": "8c12a055a0231303726cf2b6724b5b7264ca7357",
      "parents": [
        "94ca6cd7c932689b8018d1b118ddcd6b7a9eab27"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Jul 21 10:25:54 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jul 22 15:15:11 2014 -0700"
      },
      "message": "Make setter methods on Outline call setEmpty() based on params\n\nbug:16142564\n\nAdditionally, better define behavior around null outline providers:\n\nA view with an empty outline, and setClipToOutline\u003dtrue will not be\nrendered, though one with a null outline provider\n(and thus no outline) will be.\n\nChange-Id: Ic9549841b107b2eb51b417c66058a0cd69dd89eb\n"
    },
    {
      "commit": "dcba6725e8b9d3eba9ad7a01258d6aa974feafba",
      "tree": "994a519302533fc1073eeafda8bf74933531dd56",
      "parents": [
        "114c68cec40a995fb6f3ef0ab110ee8b59ab0cba"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Jul 08 13:59:49 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Jul 08 14:14:55 2014 -0700"
      },
      "message": "Fix layers lifecycle issues\n\n Bug: 16118540\n\n Fix an issue where we could have a reference to a Layer after\n the GL context was destroyed\n\nChange-Id: I7bfd909d735ca6b942ebe188fc10099422eb6d95\n"
    },
    {
      "commit": "83601538918620e63f5a765d3eaab3a63494b454",
      "tree": "cf719c7e7ec4bcf473f9d5b7e567f8a39d8d2704",
      "parents": [
        "e45ceae67f06a43f5e659397377bfb70544a75c5"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Jul 08 15:37:18 2014 +0000"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Jul 08 15:44:41 2014 +0000"
      },
      "message": "Revert \"Fix destroyHardwareResources\"\n\nThis reverts commit bac48c4d0c6f71f67074a430cd365ea2e15924b8.\n\nChange-Id: Iba8b729d5e91ca31976fc2bdf9c1dd5fdb19de9a\n"
    },
    {
      "commit": "ec0c92548071801c81e02ca72b9864739e1c080c",
      "tree": "829bbba8e3351d5cce26e477111fa424549c2431",
      "parents": [
        "eb2263dd72ed40b47337fcd12189a4f268584b8b"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Jul 07 16:30:41 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Jul 07 23:37:40 2014 +0000"
      },
      "message": "Fix destroyHardwareResources\n\n The UI thread needs to know whether or not the display list is\n valid, so bring back View.destroyHardwareResources and instead\n have the native side assert that View did the right thing\n\nChange-Id: I4f8dee6e9c13ec7ab520becdc5cfe20e92a76f8f\n"
    },
    {
      "commit": "f47a594f5250b1914c36423ee6b371f0b8db09d0",
      "tree": "f86289c7b515c2111fde3ce11e7fca384bc2f603",
      "parents": [
        "dd59aba6c7e142eae14d5f29ea6873a5b9790174"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Jun 30 16:20:04 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Jun 30 16:36:26 2014 -0700"
      },
      "message": "Fix onTrimMemory for HardwareRenderer\n\n Also fixes detachFunctor possibly drawing after return\n\n Bug: 15189843\n Bug: 15990672\n\nChange-Id: I64c48cb674c461a8eeaba407b697e09f72c98ce3\n"
    },
    {
      "commit": "68bfe0a37a0dcef52abd81688d8520c5d16e1a85",
      "tree": "b67e0671dba8221a16fcf880daeaf1e271499e9f",
      "parents": [
        "6507f2e03a90244e08fb62f9b55653ba3230d0b7"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Jun 24 15:34:58 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Jun 26 10:45:43 2014 -0700"
      },
      "message": "Animator refactoring \u0026 fixes\n\n Tweaks animators to have less unnecessary refcounting\n\n Pull animator management out into seperate class\n\n More control to tweak animator lifecycle, such as doing\n Java-side handling of start delay by attaching but not\n starting the animator\n\nChange-Id: I4ff8207580ca11fb38f45ef0007b406e0097281c\n"
    },
    {
      "commit": "3b20251a355c88193c439f928a84ae69483fb488",
      "tree": "33c878ebacf17cf03d089404474fa66ca041ffb9",
      "parents": [
        "97a6c20a6a52c9429ed2c8837086f3003e5da274"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Jun 23 13:13:08 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Jun 23 15:26:49 2014 -0700"
      },
      "message": "No-fail invokeFunctor\n\n Bug: 15513308\n Bug: 15449247\n\nChange-Id: I13a29f9c8d4975cdda6dcb33b6332c2555ff0f7c\n"
    },
    {
      "commit": "a7090e0cfd7c719a6d4c03aae34f5db98754cbdd",
      "tree": "7bfae2588126476042f33b9dd01ca0b9cf368e2e",
      "parents": [
        "104ef50048a1d12f323b3e70ccc28dd509d3ea24"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Jun 20 16:01:00 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Jun 23 09:57:07 2014 -0700"
      },
      "message": "Update \u0027DisplayList\u0027 vs \u0027RenderNode\u0027 naming in several places\n\nChange-Id: I635c6627d098b661fb9b0ba1bd42fa6d7277d287\n"
    },
    {
      "commit": "3281442aa75872b8947f0b0a5203257c6849129d",
      "tree": "6484ad9c30a42eec7ac2bc83179114cb0e0df591",
      "parents": [
        "6ab7c1e7da4047e3fbfee03ef6b199418ff570de",
        "80d4902196899d1325cd9f52c06ae0174cf9bd4c"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Jun 20 23:21:20 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 20 02:09:17 2014 +0000"
      },
      "message": "Merge \"Wrap ViewGroup content in save/restore to protect composited children\""
    },
    {
      "commit": "80d4902196899d1325cd9f52c06ae0174cf9bd4c",
      "tree": "659794797f8161ca9580fc17cc5c44bbbe3c304e",
      "parents": [
        "6b2df21ecacfa6826a85cabdf8d6fe0e81fe11d9"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Jun 20 15:03:43 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Jun 20 16:18:58 2014 -0700"
      },
      "message": "Wrap ViewGroup content in save/restore to protect composited children\n\nbug:15570351\n\nPos Z composited children are drawn before the primary restore for a\nRenderNode. This means that without an additional save/restore (which\nwraps the content) they aren\u0027t protected from transformations/clips\nthat happen within the ViewGroup\u0027s DisplayList.\n\nAlso changes RenderNode to use OpenGLRenderer tag for displaylist\ndumping consistency, and simplifies the entry points into RenderNode\ndrawing, since the distinction between tree root vs tree internal is\nno longer important.\n\nChange-Id: I2621eba0592c74d71f85a91a4ab3d0da2d7468d3\n"
    },
    {
      "commit": "c25e506f7fc08790c0532f927f31310a2ca778b7",
      "tree": "65317bcbeeb38b60a74306be22f8c37276196ffe",
      "parents": [
        "ce9f308063cc2bc7851f3f58c881da8a7271eecc"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Jun 18 14:21:29 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Jun 18 14:31:52 2014 -0700"
      },
      "message": "Throw ISE on too-big-views-with-layers\n\n Bug: 12971954\n\nChange-Id: I3ef995e91f236014b0a72a90846ef19ce6dc42b1\n"
    },
    {
      "commit": "ce9f308063cc2bc7851f3f58c881da8a7271eecc",
      "tree": "f153d877f331bd2d20e43b87aeafb0e531bff941",
      "parents": [
        "4193730ad8d3c17f807a6b2f7df16510491a3432"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Jun 17 16:18:09 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Jun 18 07:19:50 2014 -0700"
      },
      "message": "Fix dirty calculation for layer updates\n\n Bug: 15682142\n\n Defer early return of alpha \u003c\u003d 0 for damage accumulation until\n popTransform() so that layer updates will be performed regardless\n of alpha\n\nChange-Id: Ifb94dd3ed2d96d610e6f2f3071933903016273a5\n"
    },
    {
      "commit": "293e868bfc1b07aad2cb2ebeee5b07424852c510",
      "tree": "e69fa95ca66fae973e1d5ea8c668788abbd3d221",
      "parents": [
        "29956069637f456df23d391a59bc77e545b02e05"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Jun 17 10:34:02 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Jun 17 10:56:00 2014 -0700"
      },
      "message": "Handle Z in DA\n\n Bug: 15671775\n\nChange-Id: I33c7a70e78ef523ffd03165fb6c39d8e04d04f1f\n"
    },
    {
      "commit": "25fbb3fa1138675379102a44405852555cefccbd",
      "tree": "510d62715f870f85fc4eea8a781c0265e7eebae5",
      "parents": [
        "a447d29c65fb811cd184775a3476101a1cede929"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Jun 12 13:46:45 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Jun 12 19:25:33 2014 -0700"
      },
      "message": "Move LayerType to RenderNode\n\nChange-Id: Icb79a5015cb0362b1f3a66d09007450730135a97\n"
    },
    {
      "commit": "a447d29c65fb811cd184775a3476101a1cede929",
      "tree": "0be082c0fdf19035551bf3671208fd606b430ab2",
      "parents": [
        "f8333cc38126c7efb1b95958ca7d7c825253bc58"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Jun 11 18:39:44 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Jun 12 09:13:45 2014 -0700"
      },
      "message": "Fix DA bugs\n\n * Now aware of transform of DrawDisplayListOp\n * Supports projection\n\n Bug: 15539677\n Bug: 15506680\n\nChange-Id: Ic16f482cd48c3add12e49eca529281be12b93491\n"
    },
    {
      "commit": "e4267ea4f20740c37c01bfb6aefcf61fddc4566a",
      "tree": "0d00c8bff43f8b0cbe4284e51299f5ca128c83c3",
      "parents": [
        "79c7de77a7da9cbcb9428ab6203987feb35a427f"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Jun 03 15:53:15 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Jun 04 12:21:26 2014 -0700"
      },
      "message": "Even FASTER damage calculations!\n\n * Now with more native!\n * Less matrix math thanks to bulk-property-update support!\n * Zero JNI on the View.damageInParent() path!\n * Fully aware of RT-driven animators!\n * Likely full of new and exciting bugs!\n * But it also fixes at least 1 existing invalidate bug!\n\nChange-Id: Ie0773f85a60850ff2668370c58defef2e8aa079f\n"
    },
    {
      "commit": "b2367cbf396f564cb6c66c0aaa51710ffa7bc052",
      "tree": "63f2adef21e715af93eedfd269758fb4e8746423",
      "parents": [
        "c2e1dcd428e1959870f24bef254f17e4fa9eea36",
        "139088228faa7f3c446af7387e017933998a5570"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Fri May 30 15:34:33 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 30 15:34:34 2014 +0000"
      },
      "message": "Merge \"Update HWUI matrix API\""
    },
    {
      "commit": "fe5e7b7346a54537b980796ceeca66bfdbd05561",
      "tree": "4036571ea103cd41fbd5fe3a805191c1bef9898c",
      "parents": [
        "45d01929291eba56e1bce582192941446b86bf5a"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri May 23 17:42:28 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu May 29 15:00:29 2014 -0700"
      },
      "message": "Enable debug stuffs\n\n Bug: 14596762\n * dumpsys gfxinfo implemented\n * profile GPU visual_bars implemented\n\nChange-Id: Icb948a9d5af5989b5615504d0d76ade64b93ef5b\n"
    },
    {
      "commit": "139088228faa7f3c446af7387e017933998a5570",
      "tree": "33b24be0cb5793d47f77fe9eee5beceb772e6cd0",
      "parents": [
        "1015efb143b51a5d31f2f932528f295cfa1add1f"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Tue Dec 10 12:28:58 2013 -0500"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Thu May 29 16:51:23 2014 -0400"
      },
      "message": "Update HWUI matrix API\n\n1. more closely mirror Skia API by using const ref instead of ptrs\n2. store SkMatrix in the drawOp instead of the linear allocation heap\n\nChange-Id: I4b9f6f76b9f7d19325e29303d27b793679fd4823\n"
    },
    {
      "commit": "61317325b7b4b4ffafd9400ab5966e8d7c67df2e",
      "tree": "314290dd297344c3b8eb62030deef402067e6233",
      "parents": [
        "d6a91b0bb64b17dcf4ae635f428dfd4ad310f73e"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed May 21 13:03:52 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed May 21 13:04:10 2014 -0700"
      },
      "message": "Disable shadow drawing for empty/null outlines\n\nChange-Id: I60d0f326cfab97d88c49d17cf32e619b5e60b94a\n"
    },
    {
      "commit": "c9ee304c91b5572f0c1cd95e9bd1e4a84e28587d",
      "tree": "bfa9e5965d749b815ac7e55cea6b7b204db70cca",
      "parents": [
        "6c536eac59adf6e11694ba3800222ad03fe93d1f",
        "deeda3d337aed1eee218b89a7aba5992ced371f0"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri May 16 00:37:28 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 16 00:37:29 2014 +0000"
      },
      "message": "Merge \"Round rect outline clipping\""
    },
    {
      "commit": "deeda3d337aed1eee218b89a7aba5992ced371f0",
      "tree": "15e13e84727baebce58b735e34ef5d198fd84389",
      "parents": [
        "fe4c1e225d147fe9cb5d7c121b7d6d11a312844e"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon May 05 19:09:33 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu May 15 16:36:12 2014 -0700"
      },
      "message": "Round rect outline clipping\n\nChange-Id: Iee9cf4f719f6f1917507b69189ad114fa365917b\n"
    },
    {
      "commit": "ff941dcd815021bb20d6504eb486acb1e50592c3",
      "tree": "1d417ed425ed1c08598689f302b31e23d73036f2",
      "parents": [
        "951ecb77c5dfe69a4d19d26429286111333ab123"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed May 14 16:34:14 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu May 15 08:53:39 2014 -0700"
      },
      "message": "Animator start value...\n\nChange-Id: Ifd35ed95a28c625086d7fa97764fe63ab4a997f1\n"
    },
    {
      "commit": "2bcad176757386d906157bb898167fbcebe9f55e",
      "tree": "a0327df35ecd89f09e53491c21463087f98a2ac0",
      "parents": [
        "a7e089f28c494f3c34e77f924b273acdbcf3ddd2"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed May 14 18:11:23 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed May 14 18:11:23 2014 -0700"
      },
      "message": "Remove Path based outline clipping\n\nChange-Id: Ic5ccd98a7517b46e768e53d6b0c8fdcda305fb2c\n"
    },
    {
      "commit": "f9be77940e365036fecd8cc0e491e8545c34e79b",
      "tree": "1f15905e518d09309bb35b863d7697deb2975f78",
      "parents": [
        "5d039c458c67e8c08334e597a6a8781eda6aab13"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri May 02 18:21:16 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon May 05 12:35:30 2014 -0700"
      },
      "message": "Make RenderNodeAnimator and WebView play nice\n\nChange-Id: Ifaefcf510b2d377663fc86f60608d6ec9be8329a\n"
    },
    {
      "commit": "52244fff29042926e21fa897ef5ab11148e35299",
      "tree": "2cc7b2f6dd47fe7863c6bc2b6a806e275c149ba9",
      "parents": [
        "abc975f539b4ea06c05b11ec56b0abe7c6fd95aa"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu May 01 21:27:37 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri May 02 13:43:46 2014 -0700"
      },
      "message": "Add CanvasProperty for drawCircle\n\nChange-Id: Icbcc030f5033d2094e567d7c519b9d672f2aac1c\n"
    },
    {
      "commit": "52622668f91c69ec718b356d2e0f8555fc88435f",
      "tree": "85853f422b9fca99135bc08c2c1d5bc2be47a5c6",
      "parents": [
        "406c51b360cb224e2cb4773eabd04d05d29793f8"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Apr 30 14:19:56 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Apr 30 14:19:56 2014 -0700"
      },
      "message": "Use resize, not reserve\n\nReserve ensures the underlying buffer is the correct size, but\niterating across it is not necessarily valid. Use resize() instead\nto ensure that the iterator access is valid\n\nChange-Id: I35ff5f4416bb94cf4ce2c6acf72ffd17ab3e523a\n"
    },
    {
      "commit": "e45b1fd03b524d2b57cc6c222d89076a31a08bea",
      "tree": "31ad10387f2b59b3ee9d4396be44fce67228ca75",
      "parents": [
        "627aad9c200cb19aa505504dcd232a3710e96a25"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Apr 15 09:50:16 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Apr 29 10:42:11 2014 -0700"
      },
      "message": "RenderThread animator support\n\nChange-Id: Icf29098edfdaf7ed550bbe9d49e9eaefb4167084\n"
    },
    {
      "commit": "cc39e16cb98855f35079941b5e7e6eac2b7bc388",
      "tree": "f37cb0ce9da11a018446adfb83c756f5e76e77f1",
      "parents": [
        "802667b20b2170ddce94d70a022b68b64b9a7493"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Apr 25 18:34:11 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Apr 28 14:33:33 2014 -0700"
      },
      "message": "Add elevation, Z properties to View\n\nChange-Id: I3dd3b683a66e248a0fdf2ca69d1e962615b0daf9\n"
    },
    {
      "commit": "717f39c7d98c7e4b08f7bb88102c720cb8990004",
      "tree": "6a8ab946315d05b15836f92c2f995de416d040ad",
      "parents": [
        "f4201925d9e3d01e7a2a1db07c8186e4ba9a0fb5",
        "3f085429fd47ebd32ac2463b3eae2a5a6c17be25"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Apr 24 00:08:08 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 24 00:08:09 2014 +0000"
      },
      "message": "Merge \"Clip TouchFeedbackDrawable effect to receiver Outline\""
    },
    {
      "commit": "3f085429fd47ebd32ac2463b3eae2a5a6c17be25",
      "tree": "2930b7ee50ce98092fde97546a3d546c817038f1",
      "parents": [
        "fbb54b8363b66e0b22d519ee20d1a50e8b5340ee"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Apr 15 16:18:08 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Apr 23 16:15:11 2014 -0700"
      },
      "message": "Clip TouchFeedbackDrawable effect to receiver Outline\n\nProjected RenderNodes are now wrapped with a ClipRect or masked\nSaveLayer, so that they are clipped to the outline of the projection\nreceiver surface.\n\nChange-Id: I1d4afc1bb5d638d650bc0b1dac51a498f216773e\n"
    },
    {
      "commit": "e0bb87d4bdbd3b08ab6a8569c8e564ed59b8a5a7",
      "tree": "00cc21b9b9ee4237245829ae0eb55abe935f26e8",
      "parents": [
        "ceb5d17f6a2f5c144948ada1d59ec4f12da64799"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Apr 22 17:55:41 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Apr 23 13:23:30 2014 -0700"
      },
      "message": "Fix translationZ matrix computation\n\nbug:14259972\n\nEnsure that translationZ is applied for true3dTransform property\ntransformations, even if the node doesn\u0027t have any other\ntransformation properties set.\n\nAdditionally, use fuzzy compare for translationZ, similar to\nrotationX/Y, since they\u0027re expenive to leave set in rounding error\ncases.\n\nChange-Id: Idafa4423cc7751a8f433237b1f576aa7abb74f6e\n"
    },
    {
      "commit": "860d155f866cc15a725e7ce03763280987f24901",
      "tree": "1ade6b4f5c2c0910c088469b95255eb66ce0cb53",
      "parents": [
        "db8b130a19484cb6018667905e64d42ab793654f"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Apr 11 19:15:05 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Apr 14 13:17:25 2014 -0700"
      },
      "message": "Fix issue with bitmap uploading\n\n Bug: 13912749\n\nChange-Id: Ic23fa1d280118dc93dc2716a4a24cc0bbbdca595\n"
    },
    {
      "commit": "286ffe4b28d2c004ce98f7ddb3a5f34441ab0d80",
      "tree": "ba94b0e5379e56f60ae5802169fdc50fd0ec4c62",
      "parents": [
        "dd35634cb0059b4b745161eb80234d8e8da38033",
        "143912fef8eff58146705849a0ba441ab6163409"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Apr 11 22:46:20 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 11 22:46:20 2014 +0000"
      },
      "message": "Merge \"Remove use-after-free signal in RenderNode\""
    },
    {
      "commit": "143912fef8eff58146705849a0ba441ab6163409",
      "tree": "fcb26a8040ad41abe6d55457de06842e4dbc0702",
      "parents": [
        "494fb7b58a21a7a9a8eba3bacecffe115edcb8c6"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Apr 11 13:47:36 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Apr 11 13:48:46 2014 -0700"
      },
      "message": "Remove use-after-free signal in RenderNode\n\nbug:9321162\n\nmDestroyed is no longer useful, as RenderNode is ref counted (not to\nmention having its lifecycle significantly redesigned).\n\nChange-Id: I429b9dd7740362c85d6416fbae567f0d47098e4e\n"
    },
    {
      "commit": "f7483e3af0513a1baa8341d403df2e0c0896a9ff",
      "tree": "1e528710efbfe016882e4e389c2c647a9c4a78b3",
      "parents": [
        "23d2dd3da15b4312cc55c4d7b0bcf70719655e65"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Apr 11 08:54:47 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Apr 11 12:57:53 2014 -0700"
      },
      "message": "Simplify matrix calculations\n\n Bug: 13913604\n\nChange-Id: I2c0f85a34e1e520050a5a6131306d6b7c352d827\n"
    },
    {
      "commit": "f4198b713e43c0c0f9adac74203cf24c2a49b802",
      "tree": "ed1e56915cfd87dbc949d72a49ccaf3ee122881b",
      "parents": [
        "8e1f918738abf70a4dc86dbb12b386a9deea37f8"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Apr 09 17:00:04 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Apr 09 17:00:04 2014 -0700"
      },
      "message": "Merge hasFunctors \u0026 pushStaging into prepareTree\n\n Bug: 13902607\n Fixes synchronous mode for WebView in HardwareLayers\n\nChange-Id: I90de1e26dcfd9b75cc2f03bac72705fc23237b68\n"
    },
    {
      "commit": "8de65a8e05285df52a1e6f0c1d5616dd233298a7",
      "tree": "267faf9277b441030b6276ca6a3a34424bb9aee8",
      "parents": [
        "10bdb4b9e966f0a3d8e1099bf8eff4c41c31981c"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Apr 09 15:23:38 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Apr 09 15:48:00 2014 -0700"
      },
      "message": "Switch DisplayListData to a staging model\n\n Bug: 13912977\n\nChange-Id: I5b2f664e797be22a58300964f57ceb4fab60528c\n"
    },
    {
      "commit": "087bc0c14bdccf7c258dce0cdef46a69a839b427",
      "tree": "cab73aeed8e9a0bc8e74243a35c026ab0b321e08",
      "parents": [
        "ce16215d7b4d9bedfc62e172dc44ab439afef13a"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Apr 04 16:20:08 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Apr 07 14:53:08 2014 -0700"
      },
      "message": "Refcount RenderNode\n\nChange-Id: I7a86db8acc2b78ef33d987a43a119f5933d7d752\n"
    },
    {
      "commit": "49e6c73913e9bee58ea5e3984be151ee8e033163",
      "tree": "db10cba6a686b5a2435eee07b18dfb285b2cb972",
      "parents": [
        "8754b73bf81aa0164f3e2a1a429ba0fda39202de"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Mar 31 12:34:11 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Apr 02 18:38:25 2014 -0700"
      },
      "message": "Move most TransformationInfo properties to RenderNode\n\nThis change dedupes the various properties that were represented both\nin TransformationInfo, and RenderProperties on the native side.\n\nRenderNode (and its associated properties) are now permanently\nattached to a View in SW or HW. The native copy of these properties\nare their sole representation.\n\nAlpha to come in a later CL.\n\nAlso fixed issue with copying RenderNode\u0027s transform, and added\nsupport of deleting RenderNodes in software rendering.\n\nChange-Id: Ideb6e7f32b780e87aa1c32637c368356b3eee3a1\n"
    },
    {
      "commit": "b265e2ca50b6ceb2fd2987ef1f7d063b1bde19ae",
      "tree": "c5dd068e025de701ebfdeacf00247368fbecb12a",
      "parents": [
        "08c96b5515f061f61e13b348f6022ce7c586e4c4"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Mar 27 15:50:09 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Mar 28 14:43:22 2014 -0700"
      },
      "message": "Support shadows on the root RenderNode\n\nbug:13211941\n\nCleans up some of the RenderNode method naming\n\nAlso removes unnecessary clip/save/restores, clipping shadows\npredictably, as drawn by the parent, before drawing (and clipping,\netc.) the shadow casting child.\n\nChange-Id: I795115e1fb869bbbdd7be43e279b97490fecc7e0\n"
    },
    {
      "commit": "08c96b5515f061f61e13b348f6022ce7c586e4c4",
      "tree": "1644ff53adbf7fc55aecc2720faa9727d9d0de43",
      "parents": [
        "83ee4429f13896c82f3f29c8164888f1f6fe8309",
        "024433f89684e1f9cb7b15ade7c480c9346fbe4d"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Mar 28 18:00:02 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 28 18:00:03 2014 +0000"
      },
      "message": "Merge \"Disable shadow overdraw avoidance in the inverse clip case\""
    },
    {
      "commit": "024433f89684e1f9cb7b15ade7c480c9346fbe4d",
      "tree": "981c0a0fdaa0b70be66899855806c1ce879b579e",
      "parents": [
        "1dd9c53a40b7c147767c63e10a47eb5cb6f8e197"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Mar 26 13:19:14 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Mar 27 16:01:04 2014 -0700"
      },
      "message": "Disable shadow overdraw avoidance in the inverse clip case\n\nThe caster is effectivly transparent, so skip the optimization just as\nis done for alpha \u003c 1.0\n\nChange-Id: I3d294222adf0137e20c1fb5808313d487e92e0a8\n"
    },
    {
      "commit": "07b6c552e6243c4f69a9c07ed9a08df78ff6d25e",
      "tree": "c0d47b9ded4422dde56cf6e66d8c8af0fd4d252b",
      "parents": [
        "ca04d7185369073ca0a291f37ec3680037711d44",
        "668f0e38ef0277d55d3118af37e17b8c435df85c"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Mar 27 17:11:31 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 27 17:11:31 2014 +0000"
      },
      "message": "Merge \"Async drawing!\""
    },
    {
      "commit": "668f0e38ef0277d55d3118af37e17b8c435df85c",
      "tree": "d0703be6cce376c8a982d7c491445d2e94009375",
      "parents": [
        "bcad68ad80e5a44e5dc6988eddb8acabdc01a737"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Mar 26 15:10:40 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Mar 27 10:00:04 2014 -0700"
      },
      "message": "Async drawing!\n\nChange-Id: I7e728356f58af88174328a8c0b90d27b128bfe01\n"
    },
    {
      "commit": "8c271ca63b62061fd22cfee78fd6a574b44476fd",
      "tree": "e4b6a9d863aec687273be89373d2fc432cf29c30",
      "parents": [
        "5e44cadfd69c210c11f80cfe599718617a0e6676"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Mar 25 10:33:01 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Mar 25 16:03:48 2014 -0700"
      },
      "message": "Add private circular reveal API on View/RenderNode\n\nChange-Id: I139c8e12b354083149a665f6768f3f6931a8dd15\n"
    },
    {
      "commit": "5bf11bb98f5dbe278c257355d24c181237abd68c",
      "tree": "14874c48911b4e0b275b6c026f8ec8a4c94e5db8",
      "parents": [
        "41c2d2cec3f46b28f535e9cd7f5b9da02280ccfe"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Mar 25 10:22:09 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Mar 25 10:22:09 2014 -0700"
      },
      "message": "Add missing null check\n\n Bug: 13635394\n mDisplayListData can be null, make sure\n to check for that before trying to walk through the\n children list in updateProperties\n\nChange-Id: I8d97b1656c1acf47b7c5df8a8771b0f30907261d\n"
    },
    {
      "commit": "d0a0b2a3140bfb1819a116413ce9d81886697a07",
      "tree": "0040f371f29280deb83d1fd55f2db86e30d58c37",
      "parents": [
        "de02cdc1e95cea19b2ddef26d60ad1d109bd507c"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Mar 20 16:28:56 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Mar 24 15:31:34 2014 -0700"
      },
      "message": "Add stagingProperties\n\nChange-Id: Ic7de551f8843fd70a77f738e33028e25c020bb3c\n"
    },
    {
      "commit": "b49f446c98096c4790a11d9b5bc83a4e585278c9",
      "tree": "04be3e4844f1f39df2b9f598d5e50d6e969e1080",
      "parents": [
        "ac6e97a5a69738a1d32794fc76ca639201639501"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Mar 20 12:44:20 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Mar 24 11:37:06 2014 -0700"
      },
      "message": "Rework Outline API, remove isolatedZVolume remnants\n\nChange-Id: I30c2fe832dcb98fa6329b1a595b3d3aafbdcad6b\n"
    },
    {
      "commit": "113e0824d6bddf4376240681f9cf6a2deded9498",
      "tree": "2f69dbe16fef8fa7ccae1d1fe2ee68e1c162d062",
      "parents": [
        "db62c232b953fd882a8f55daf736ae4098e8f278"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Mar 18 09:22:59 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Mar 19 16:40:04 2014 -0700"
      },
      "message": "Move RenderNode to own file\n\nChange-Id: I9380d161fd3ddd7b569c262dd8e7aa0c96151b1e\n"
    }
  ]
}
