)]}'
{
  "log": [
    {
      "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": "a2a70723b8cbda4354d23f901f995623e819012c",
      "tree": "4c58b998473a64955a5177109b55ddda21d24ef8",
      "parents": [
        "2b17db773e12deffecbc26e9aa591fb4d2e9f917"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Dec 17 12:58:24 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Dec 17 23:31:44 2015 +0000"
      },
      "message": "Simplify ClipArea to prefer Rect args\n\nChange-Id: I8af83d01dc5dd8009a0cd235dd8b59dab61d8560\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": "ac02eb9035a13a3d09c2def9ed63d04225eb2509",
      "tree": "f6305a3b32606d77e81eb1ff5766c22daa5506d7",
      "parents": [
        "117e6daa420763e956c2125da09707b60cbaa33e"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Oct 05 12:23:46 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Oct 05 14:16:26 2015 -0700"
      },
      "message": "Remove confusing behavior of Rect::intersect() and rename\n\nbug:24670525\n\nRemoves silly \u0027do nothing if rects do not intersect\u0027 behavior, and\nchanges the name to clarify the difference (contrasting against\nSkRect::intersect())\n\nbug:24670525\n\nChange-Id: Id2ca1cfea1a9d720d4dc70b251f426d9916f8b53\n"
    },
    {
      "commit": "4d3e704b04c6abd7995df640d12662b0271f6c7b",
      "tree": "65e46a4e9a9b921ddb8bca77ff9dca13cc6e37ed",
      "parents": [
        "e4a6f925621e9360238869ae28f7df1b4c2d97de"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Aug 20 12:54:25 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Aug 20 15:00:11 2015 -0700"
      },
      "message": "Remove return values from clipping operations\n\nbug:22530947\n\nAlso switch mode to enum class\n\nChange-Id: Iabb38634c01f2e3203b1b715967d8828d95da190\n"
    },
    {
      "commit": "8ce8f3f4d68a7750bc02b5254ebbd8658281e675",
      "tree": "d3a5bcc9fa72f5ccd59a52e3b032c604f4ba1c96",
      "parents": [
        "db8fa48ed0864125a07f2bbe078fd60abd875ac7"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Jul 16 13:07:45 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Jul 16 13:31:41 2015 -0700"
      },
      "message": "Fix clip area behavior for REPLACE op\n\nbug:22291400\n\nWork around clippath-clipped-to-view-bounds behavior by\nimplementing REPLACE op fast path, avoiding the transition to\nSkRegion/SkPath.\n\nChange-Id: I63c1cf961db2d6e3759d83914de1036c9ac7497a\n"
    },
    {
      "commit": "e30b53cec5eb6eaa5d24231feb3207b917c1baab",
      "tree": "386c65cec91fa48e12cec5b46bf0f6795bc094a2",
      "parents": [
        "b13f44bc6ee65e155c54f645ab4aa6786feeb162"
      ],
      "author": {
        "name": "Tom Hudson",
        "email": "tomhudson@google.com",
        "time": "Mon Mar 30 15:59:02 2015 -0400"
      },
      "committer": {
        "name": "Tom Hudson",
        "email": "tomhudson@google.com",
        "time": "Mon Mar 30 16:57:43 2015 -0400"
      },
      "message": "Enter RectangleMode when the clip region is a rectangle\n\nClipArea\u0027s region mode implementation store the region\u0027s boundary in\na rectangle, and if the region is that rectangle, set its region to\nempty.  This is a bug, since as long as the ClipArea is in region\nmode it treats its region as determinitive. When the next clipping\noperation comes in, it is tested against the empty region instead of\nagainst the valid rect.\n\nDiscovered via Skia GM testing.\n\nChange-Id: I3bbc4e81c8d68636061f830156e017e9b5c7e587\n"
    },
    {
      "commit": "487a92caef2eb90a62e8f8d7a6fe6315f1c1d8d8",
      "tree": "6515f9b52f874f5f076a25df83a353de10a3da14",
      "parents": [
        "382d6a9ed2360ceb462ea46a60f0f106fdb52540"
      ],
      "author": {
        "name": "Rob Tsuk",
        "email": "robtsuk@google.com",
        "time": "Tue Jan 06 13:22:54 2015 -0800"
      },
      "committer": {
        "name": "Rob Tsuk",
        "email": "robtsuk@google.com",
        "time": "Wed Jan 14 17:24:58 2015 -0800"
      },
      "message": "Clipping performance improvements\n\nCreate a ClipArea class to handle tracking clip regions. This class can\nselect the most efficient implementation depending on the types of\nclipping presented.\n\nClipArea re-used the rectangle and region-based clipping\nimplementations as well as adding a \"list of rotated rectangles\"\napproach that is more efficient for rotated views with children.\n\nChange-Id: I2133761a2462ebc0852b394220e265974b3086f0\n"
    }
  ]
}
