)]}'
{
  "log": [
    {
      "commit": "8f3b8e32993d190a26c70c839a63d8ce4c3b16d9",
      "tree": "8e49ffa8f5405f22b8bb12be9e5607ec6a0fc00a",
      "parents": [
        "e6c966caa3aff3099e6fb00caefa10387f57b9c3"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Mar 27 16:33:45 2012 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Apr 02 15:15:07 2012 -0700"
      },
      "message": "Allow fine-grained control over functors execution\n\nAdds non-drawing execution mode\n\nChange-Id: I82f92cf1b9a3b9ff2ca6d7427c4e02b73e04e6bf\n"
    },
    {
      "commit": "b85967b9af76e1e60f7a96603e2567a6449d2e04",
      "tree": "e1df4cdf8baa0315ee6296feb238d1722dcf7370",
      "parents": [
        "b3cbd0b4d827577b3b8ad34106779c67a48701dd"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Mar 26 14:37:51 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Tue Mar 27 08:17:54 2012 -0700"
      },
      "message": "Re-enabling DisplayList properties\n\nSeveral issues came up after DisplayList properties were enabled,\nso they were disabled pending fixes. Those issues have been fixed, so\nDisplayList properties are once again being enabled by default. This\nCL both re-enables these properties (in View.java and DisplayListRenderer.h)\nand fixes the various issues that enabling them caused the first time around.\n\nRelated issues (all currently marked as Fixed, though that was simply because\nDL properties were disabled - this CL provides the real fixes now that\nDL properties are enabled by default):\nIssue #6198276 Text input broken\nIssue #6198472 Native crash at pc 00076428 in many different apps in JRM80\nIssue #6204173 Date/time picker isn\u0027t rendering all parts of UI\nIssue #6203941 All Apps overscroll effect is rendered weirdly/has flickering\nIssue #6200058 CAB rendering issue - not drawing items?\nIssue #6198578 Front camera shows black screen after taking picture.\nIssue #6232010 Layers not recreated when children change (DisplayList properties)\n\nChange-Id: I8b5f9ec342208ecb20d3e6a60d26cf7c6112ec8b\n"
    },
    {
      "commit": "6554943a1dd6854c0f4976900956e556767b49e1",
      "tree": "82d43bbb28af4feeb6c358077ac1083ca3598e7b",
      "parents": [
        "a9dd820184ee4d083bd9b2af735dcf50b78fc6cd"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Mar 26 16:45:05 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Mar 26 16:45:05 2012 -0700"
      },
      "message": "Use a status_t return type for GL functors\n\nWebView needs more fine-grained control over the behavior of the\nframework upon execution of the display lists. The new status_t\nallows WebView to requests its functor to be re-executed directly\nwithout causing a redraw of the entire hierarchy.\n\nChange-Id: I97a8141dc5c6eeb6805b6024cc1e76fce07d24cc\n"
    },
    {
      "commit": "a1cff5043d0fbd78fcf9c48e7658e56a5b0c2de3",
      "tree": "01a809b1ae5a50b8721f05c540a76570794d828c",
      "parents": [
        "bdc5afeee57a943adac3896297fab74b96b307c1"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Tue Feb 21 13:43:44 2012 -0800"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Mar 12 15:41:48 2012 -0700"
      },
      "message": "Handle view properties at the native level\n\nBasic functionality of handling View properties (transforms,\nleft/right/top/bottom, and alpha) at the native DisplayList level.\nThis logic is disabled for now (via compile-time flags in View.java and\nDisplayListRenderer.h) as we continue work on it (there is no advantage\nto the new approach until we optimize invalidation and rendering paths\nto use the new code path).\n\nChange-Id: I370c8d21fbd291be415f55515ab8dced6f6d51a3\n"
    },
    {
      "commit": "55fd2c9b2e87986b03cb58676bdf46bc6d5f1c36",
      "tree": "d992f9e11ac37f021fba69d0de76575864e4902d",
      "parents": [
        "887c2eea31a9ef2bc27186773e173e083eee7314"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Mar 09 17:36:01 2012 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Mar 09 17:37:29 2012 -0800"
      },
      "message": "Don\u0027t bind data to missing uniforms\n\nChange-Id: Ib9d1f14eb0bef04e0910baa4eaf3e49cce81c0ce\n"
    },
    {
      "commit": "2bf68f063b0077ddef6ebfe54f2ae5e063c2c229",
      "tree": "da02b6113cb29371fb1e7321ffaf567bdf0fca8a",
      "parents": [
        "d8f45c16a896d76d06550a91d78e8c5a3a57275a"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Mar 02 13:37:47 2012 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Mar 02 13:37:47 2012 -0800"
      },
      "message": "Deferred layer updates\n\nChange-Id: I83d9e564fe274db658dcee9e0cc5bbf9223ebb49\n"
    },
    {
      "commit": "dd7c8e4c68205d39109d4317dd0c9b05ed43e8e5",
      "tree": "918bc3b0d69d8be0cf2d978a2b3a6291f6884f2b",
      "parents": [
        "9777173eb6c9eb97c7921c8288ebc65e3ab3ce6f"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Mar 01 12:08:38 2012 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Mar 01 12:08:38 2012 -0800"
      },
      "message": "Small tweak to Canvas.drawPath() GL implementation\n\nChange-Id: I1d668a912996e1267bcf2127058888e489a2d9b3\n"
    },
    {
      "commit": "9777173eb6c9eb97c7921c8288ebc65e3ab3ce6f",
      "tree": "0c2749e602c75cf72a3a2d6ffd480a47f975fdd5",
      "parents": [
        "765dcf32307dbd93ce43f064c426ce157be2d2ae"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Feb 28 18:17:02 2012 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Feb 29 19:14:37 2012 -0800"
      },
      "message": "Full implementation of Canvas.drawPath()\n\nChange-Id: I23223b89770a0cd2b4762365bead9bfddb094290\n"
    },
    {
      "commit": "03d58520c3eb6bb7efb7235bfd957550533d6725",
      "tree": "97b131fd746d7857a005dc2a93d64469ebbcb7fc",
      "parents": [
        "325740fb444af8fc7fb0119b2e30ce322c2ae134"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Feb 24 17:54:07 2012 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Feb 24 17:54:07 2012 -0800"
      },
      "message": "More infrastructure for Canvas.drawTextOnPath\n\nChange-Id: Iff42b24e342650d06fa4e2fa9db6c28da820ff01\n"
    },
    {
      "commit": "325740fb444af8fc7fb0119b2e30ce322c2ae134",
      "tree": "7739e7e56c5835f8f161e8cbed17346083390176",
      "parents": [
        "34c55d30858cba1e58c38e7d8e175d25cf0b33c4"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Feb 24 16:48:34 2012 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Feb 24 16:48:34 2012 -0800"
      },
      "message": "Add hooks to implement Canvas.drawTextOnPath() in GL\n\nChange-Id: I165c9e05facf5365aa6850605688e538640c7fcc\n"
    },
    {
      "commit": "33f6beb10f98e8ba96250e284876d607055d278d",
      "tree": "215fc7d5624b6b41a018374f5d19f7dac84cf72b",
      "parents": [
        "445c83c7755fae179cf3328e89307e2775e97a5e"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Feb 16 19:24:51 2012 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Feb 17 13:10:00 2012 -0800"
      },
      "message": "Record possible clip rejects when recording display lists\n\nThis optimization allows us to quickly skip operations that lie\nentirely outside of the known bounds of a display list. Because\nof ViewGroup.setClipChildren, we must keep the operations recorded\nin the display list. setClipChildren(false) is however a very\nuncommon operation and we will therefore often benefit from this\nnew optimization.\n\nChange-Id: I0942c864e55298e6dccd9977d15adefbce3ba3ad\n"
    },
    {
      "commit": "211370fd943cf26905001b38b8b1791851b26adc",
      "tree": "03db29f15516e381b8f4553a87756c03c64d028a",
      "parents": [
        "a403a2e0f0d55a709821a6310de849176dc9b426"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Feb 01 16:10:55 2012 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Feb 01 16:10:55 2012 -0800"
      },
      "message": "Add optional metadata to initiliaze the render threat.\n\nThe render threat is likely to break your application if you initiate it.\nAs such it must be explicitely requested using the following meta-data\ntag in your manifest\u0027s application tag:\n\n\u003cmeta-data android:name\u003d\"android.graphics.renderThread\" android:value\u003d\"true\" /\u003e\n\nChange-Id: Ibf0a48af2a0d091562bf6907eac970e3d1d601c4\n"
    },
    {
      "commit": "13631f3da855f200a151e7837ed9f6b079622b58",
      "tree": "ca21323b115baaa572ba94428e58283e0b6afeef",
      "parents": [
        "275345b0871c6b269709c3d6a25d9fae03f7922a"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jan 30 17:41:55 2012 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jan 30 17:41:55 2012 -0800"
      },
      "message": "Add debug markers to OpenGLRenderer\n\nThese markers will be used to group the GL commands by View in the\nOpenGL ES debugging tool. This will help correlate individual GL\ncalls to higher level components like Views.\n\nChange-Id: I73607ba2e7224a80ac32527968261ee008f049c6\n"
    },
    {
      "commit": "530041d3191ce817832a0108514617768e43cda6",
      "tree": "8705f42f34dd66983b6782c23b6046c65d1fdfff",
      "parents": [
        "f10d69f30107f27465684630460615443783f2bc"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jan 25 18:56:29 2012 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jan 30 12:04:17 2012 -0800"
      },
      "message": "Add stencil buffer to the EGL config\n\nChange-Id: If76c0cd6127534d90f9526b75c0f8e56259c6722\n"
    },
    {
      "commit": "5ff9df658230d49e42c43586997a02d8e4dd417e",
      "tree": "4b6f2b97036285bd8e114c2f476bcfd0c812d4c9",
      "parents": [
        "36d7549181af397cfaf879f46e407e762e0e8cba"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jan 23 17:09:05 2012 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jan 23 17:09:05 2012 -0800"
      },
      "message": "Add full support for Canvas.setDrawFilter()\n\nChange-Id: I0ad35d0603c4eeda469014803be14c1dcdde918c\n"
    },
    {
      "commit": "671d6cf460531825a321edb200523d0faa7792c9",
      "tree": "7fde21ba8f48911629c3dd67a1138bd6a569c084",
      "parents": [
        "fb9ffe02609c9c4ffca64927e72bc935cfe87768"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jan 18 12:39:17 2012 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jan 18 18:00:12 2012 -0800"
      },
      "message": "Full support for Canvas.drawPosText\n\nThis also introduces a small optimization when rendering text.\n\nChange-Id: Iff620ac97bf878eaac406bccc6daa07052c93890\n"
    },
    {
      "commit": "eb9a5367e8f0e970db8509ffb2584f5376bc62ed",
      "tree": "b1edb8a663363a150fa25545f035372defbe7b70",
      "parents": [
        "d1d4bb70704e8f37d0823837eacdae21ebe0ed05"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jan 17 17:39:26 2012 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jan 17 17:39:26 2012 -0800"
      },
      "message": "First pass at implementing Canvas.drawPosText() in GL\n\nChange-Id: Ia3ac347e95d57eb86c63045156c8dbc0572b03cb\n"
    },
    {
      "commit": "3762c311729fe9f3af085c14c5c1fb471d994c03",
      "tree": "7d4caccad80ac7327c7bff96dafc857d5f4631ad",
      "parents": [
        "7a939077bd14521c7d351af98df7ed75a8ec9c15"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Fri Jan 06 19:20:56 2012 +0000"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Sun Jan 08 13:19:13 2012 +0000"
      },
      "message": "Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF)  DO NOT MERGE\n\nSee https://android-git.corp.google.com/g/#/c/157220\n\nBug: 5449033\nChange-Id: Ic9c19d30693bd56755f55906127cd6bd7126096c\n"
    },
    {
      "commit": "5baa3a62a97544669fba6d65a11c07f252e654dd",
      "tree": "109755e1595b438873d34b981e31f84ea64bd2a5",
      "parents": [
        "173ab4d61077c49f115b82eff34f97fda5a7273a"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Tue Dec 20 16:23:08 2011 +0000"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Tue Jan 03 22:38:27 2012 +0000"
      },
      "message": "Rename (IF_)LOGD(_IF) to (IF_)ALOGD(_IF)  DO NOT MERGE\n\nSee https://android-git.corp.google.com/g/156016\n\nBug: 5449033\nChange-Id: I4c4e33bb9df3e39e11cd985e193e6fbab4635298\n"
    },
    {
      "commit": "82bc7a772747fcf8a6fe7097f70bf2981429ffe9",
      "tree": "c4991ea3e2f27ab029616ab2f87ce6413b639e0d",
      "parents": [
        "b8f90a0e6eae582778bbe10b6347acbf5fc69bfb"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jan 03 14:13:39 2012 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jan 03 14:14:55 2012 -0800"
      },
      "message": "Properly restore the GL scissor after a GL draw functor\nBug #5781254\n\nChange-Id: I1dc4809563a793b6b579814951d4d73b4c34bf32\n"
    },
    {
      "commit": "8f85e80b64b89fd38cc23b129f61ec36ddde7f15",
      "tree": "bac2bd06357532f524277551c7606ad2471f7be8",
      "parents": [
        "2d4fd364843d3efc6e6ee59ccc5beb513a86d789"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Dec 14 19:23:32 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Dec 14 19:23:32 2011 -0800"
      },
      "message": "Generate even fewer GL commands\n\nChange-Id: I0f4dcacb03ef5ee7f6ebd501df98bfead5f0a7f8\n"
    },
    {
      "commit": "2d4fd364843d3efc6e6ee59ccc5beb513a86d789",
      "tree": "e6314681f94a7fcd0355a5700ecf65d9e3e0c5bb",
      "parents": [
        "ec31f83bd3af1f900d1ee9116b15f56904c66dcd"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Dec 13 22:00:19 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Dec 13 22:00:19 2011 -0800"
      },
      "message": "Reduce the number of active texture changes\n\nChange-Id: I94046bdfe20740c26c8183822e3002d692fde7c4\n"
    },
    {
      "commit": "a1d3c91afbd52c7e8b01f4a9060c5459f02ae7a5",
      "tree": "25fabe19bc7667a756c27aec7b541acee0f49def",
      "parents": [
        "e829bc0f0364e942bed01536d115a5c08d25d776"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Dec 13 14:55:06 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Dec 13 14:58:14 2011 -0800"
      },
      "message": "Further reduce the number of GL commands sent to the driver\n\nChange-Id: Id922b2a166ea4573b767c27d3195e11c70320b23\n"
    },
    {
      "commit": "15bc6437f8b4cf10dba55c7638d349e7b9563f4f",
      "tree": "18e054e26a43a757fec54387571ae2d1aadbea1c",
      "parents": [
        "5009f65c9a676b64869e638e08ec0294e20d7e6e"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Dec 13 13:11:32 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Dec 13 13:11:32 2011 -0800"
      },
      "message": "Reduce the number of GL commands generated by the UI\n\nThis optimization along with the previous one lets us render an\napplication like Gmail using only 30% of the number of GL commands\npreviously required\n\nChange-Id: Ifee63edaf495e04490b5abd5433bb9a07bc327a8\n"
    },
    {
      "commit": "f3a910b423db7ad79cf61518bdd9278c048ad0d8",
      "tree": "a0ae14d597ee14202ec6ca60cedfb446ff470379",
      "parents": [
        "d71dd367af604571c7d00ca473184a1b9240eca2"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Dec 12 20:35:21 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Dec 12 20:35:21 2011 -0800"
      },
      "message": "Optimize state changes\n\nChange-Id: Iae59bc8dfd6427d0967472462cc1994987092827\n"
    },
    {
      "commit": "d71dd367af604571c7d00ca473184a1b9240eca2",
      "tree": "c39db3ed12ca360773e3ede3462bd86ce6c4c28c",
      "parents": [
        "39d252a6632d057d5077f7eaf1b8ed7a142f3397"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Dec 12 19:03:35 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Dec 12 19:03:35 2011 -0800"
      },
      "message": "Minimize the amount of data uploaded to draw text\n\nChange-Id: I6313ac039291c9cd93aadafe3566ad9d60cab42d\n"
    },
    {
      "commit": "39d252a6632d057d5077f7eaf1b8ed7a142f3397",
      "tree": "c840b4084ba7fb8be54b0d387953cc6a15decbdd",
      "parents": [
        "f44e66fcf70aa4a354deca72dfbd3b29c29302be"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Dec 12 18:14:06 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Dec 12 18:14:06 2011 -0800"
      },
      "message": "Various OpenGL optimizations\n\nChange-Id: Ib0742c96f10f5f50e7e5148b742c31b6c232d127\n"
    },
    {
      "commit": "3e263fac8c9c0e0fb242186b514a7af8efb40961",
      "tree": "c4333a2489886c933172a5cd271c8bda0796324a",
      "parents": [
        "6752d0ab029a185a42e34e7a933b669e6ed19e89"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Dec 12 16:47:48 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Dec 12 16:47:48 2011 -0800"
      },
      "message": "Keep shaders to render properly\n\nI don\u0027t know who\u0027s to blame, SGX or Tegra2 but one of those two GPUs is not\nfollowing the OpenGL ES 2.0 spec.\n\nChange-Id: I2624e0efbc9c57d571c55c8b440a5e43f08a54f2\n"
    },
    {
      "commit": "9c4b79af221b53f602f946faa9ff317a596a0c39",
      "tree": "134a3a19b685c55dc23a08ae8929fb292333f768",
      "parents": [
        "e98ae0a050d6ce4b3e2aec7c070a87922086c256"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Nov 10 19:23:58 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Dec 06 16:37:10 2011 -0800"
      },
      "message": "Discard framebuffer rendering queues when discarding layers\nBug #5581817\n\nChange-Id: Ie30700a29059d2ea60eb7bd3f8bd20ac48a149ab\n"
    },
    {
      "commit": "8f9a9f61ab793d9387a5942b307e74324704893b",
      "tree": "999b4e35822f96473165bf861d5c7e908f19140f",
      "parents": [
        "cac5fd3e09e9dc918753d4aff624bf29a367ade3"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Dec 05 11:53:26 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Dec 05 11:53:26 2011 -0800"
      },
      "message": "Clip text correctly\nBug #5706056\n\nA newly introduced optimization relied on the display list renderer\nto properly measure text to perform fast clipping. The paint used\nto measure text needs to have AA and glyph id encoding set to return\nthe correct results. Unfortunately these properties were set by\nthe GL renderer and not by the display list renderer. This change\nsimply sets the properties in the display list renderer instead.\n\nThis change also improves the error message printed out when the\napplication attempts to use a bitmap larger than the max texture\nsize.\n\nChange-Id: I4d84e1c7d194aed9ad476f69434eaa2c8f3836a8\n"
    },
    {
      "commit": "cac5fd3e09e9dc918753d4aff624bf29a367ade3",
      "tree": "6d1db0b5ed0cf9ce616f7e8d969da81f7f606b66",
      "parents": [
        "d21b6e1fe337b35f62cf2028e9bd0637fd009a75"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Dec 01 20:08:50 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Dec 01 20:08:50 2011 -0800"
      },
      "message": "Faster text clipping\n\nChange-Id: I03a00c4261d81a416b1ad7b86ce2d432c71908b4\n"
    },
    {
      "commit": "d21b6e1fe337b35f62cf2028e9bd0637fd009a75",
      "tree": "8831d34e2dd0335c158c2aa12bee68452745c8c5",
      "parents": [
        "28147b654bba8ae2b7976e58aa7869255e436b0b"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Nov 30 20:21:23 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Nov 30 20:21:23 2011 -0800"
      },
      "message": "Optimize away unnecessary state changes\n\nChange-Id: I0f6816f9f6234853575ecee5033186ad19e76380\n"
    },
    {
      "commit": "d3ea6b40bb8f0fbc2a877963db1ab4fa0fc02b2f",
      "tree": "2f0be21ad21c6efc24597d5cadbadd5645da091c",
      "parents": [
        "589364c7179e764f4e8b9c0d53f45a1abf528aa8",
        "3892889952b0ad3fa0b095c96d8ae2ae110585e2"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Nov 28 15:47:16 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 28 15:47:16 2011 -0800"
      },
      "message": "am 38928899: am 8990cb57: Merge \"Fix flashing wifi dialog after rotating back from landscape.\" into ics-mr1\n\n* commit \u00273892889952b0ad3fa0b095c96d8ae2ae110585e2\u0027:\n  Fix flashing wifi dialog after rotating back from landscape.\n"
    },
    {
      "commit": "08837c246c9c27902c59b41c8661c2f27a4aa2bc",
      "tree": "ef44ddbbbe0ffe253fff53baa2701d8c747db570",
      "parents": [
        "425c595acb798ed9652b5a1f0e5412cbd8e3873d"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Nov 28 11:53:21 2011 -0800"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Nov 28 15:19:22 2011 -0800"
      },
      "message": "Fix flashing wifi dialog after rotating back from landscape.\n\nThere was an error in some of the OpenGL layer logic such that we would\noccasionally set up a layer for rendering and then not clean up when it was\ndone. This caused future OpenGL rendering to go into that layer instead of\nto the buffers being displayed on the screen, resulting in artifacts including\nflashes and displaying of stale content. This happened specifically when\nusing the wifi settings dialog with the InputMethod keyboard displayed,\nbut it was probably visible in other situations as well.\n\nIssue #5628248: Flickering/flashing after entering password for WiFi\n\nChange-Id: I38139f620b310f4309570fa7224552d2ee633999\n"
    },
    {
      "commit": "c28e574037b2bfc8c2ea24593299aa20ae9078f8",
      "tree": "38a75bdcc25887e4c9f2c640227fce4d2635079a",
      "parents": [
        "0ce49783083bf81cc1ea812e029fc94e1625a8fd",
        "a2fabf4a109d46f99ff7370aa05e48c1708c2838"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Nov 22 12:42:06 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Nov 22 12:42:06 2011 -0800"
      },
      "message": "am a2fabf4a: am 303a0695: Merge \"Draw in the correct FBO after invoking a GL functor Bug #5650514\" into ics-mr1\n\n* commit \u0027a2fabf4a109d46f99ff7370aa05e48c1708c2838\u0027:\n  Draw in the correct FBO after invoking a GL functor Bug #5650514\n"
    },
    {
      "commit": "421458aad764cd9d1403d2540ab979b336b02341",
      "tree": "403620dc73a58422834e39e2ba04059ea1ed1274",
      "parents": [
        "7859c1842c1f2e3c43415dfb5337a0b005bdb1c4"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Nov 21 15:14:37 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Nov 21 15:14:37 2011 -0800"
      },
      "message": "Draw in the correct FBO after invoking a GL functor\nBug #5650514\n\nAfter invoking a GL functor, libhwui restores a few OpenGL states\nincluding the current FBO. The renderer was however making the\nwrong assumption that the FBO to restore to was the base layer\ninstead of the FBO associated with the current canvas state.\n\nChange-Id: Ie565500832ebffd673f6a43b83422d6cc05470a0\n"
    },
    {
      "commit": "28a5ec9613a824d2ec15ce5e5cec77a6fcf444d5",
      "tree": "07bea7361a1fefe863809e83e585f4d0b194ec7d",
      "parents": [
        "196c215a8b89499a353cf023488a04888431a6b0",
        "2cfb873c9f0b56f2c7d694a21c968511223933af"
      ],
      "author": {
        "name": "Dave Burke",
        "email": "daveburke@google.com",
        "time": "Mon Nov 14 12:30:04 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 14 12:30:04 2011 -0800"
      },
      "message": "am 2cfb873c: am 9d66da8a: Merge \"Revert \"Discard framebuffer rendering queues when discarding layers\"\" into ics-mr1\n\n* commit \u00272cfb873c9f0b56f2c7d694a21c968511223933af\u0027:\n  Revert \"Discard framebuffer rendering queues when discarding layers\"\n"
    },
    {
      "commit": "7077506f9945b87b02bdd47ffce75a5b813c821c",
      "tree": "303448affa31375afa0a721d8d5555801ead8454",
      "parents": [
        "cde433c5f75fd4ac2ab31e9fc34654750d1e83f8"
      ],
      "author": {
        "name": "Dave Burke",
        "email": "daveburke@google.com",
        "time": "Mon Nov 14 11:39:30 2011 -0800"
      },
      "committer": {
        "name": "Dave Burke",
        "email": "daveburke@google.com",
        "time": "Mon Nov 14 11:39:30 2011 -0800"
      },
      "message": "Revert \"Discard framebuffer rendering queues when discarding layers\"\n\nThis reverts commit da96f8ac2c1c35a54f3f36e6d776cb386a251d03.\n"
    },
    {
      "commit": "3f511aaf1cb9dfa69e2f4225a5bd41bec0864cc7",
      "tree": "70f0bfe3328a8d573208abbf3a12e5a883c48f7a",
      "parents": [
        "e7a8aae0a60cdb251fb83eba2ccb35c5f00a0cdf",
        "a16ee9390e1fcea8ff7cbefd253659c37f2999a3"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Nov 14 07:49:07 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 14 07:49:07 2011 -0800"
      },
      "message": "am a16ee939: am 28587497: Merge \"Discard framebuffer rendering queues when discarding layers Bug #5581817\" into ics-mr1\n\n* commit \u0027a16ee9390e1fcea8ff7cbefd253659c37f2999a3\u0027:\n  Discard framebuffer rendering queues when discarding layers Bug #5581817\n"
    },
    {
      "commit": "da96f8ac2c1c35a54f3f36e6d776cb386a251d03",
      "tree": "646abfdfeee4346b422943924182162f4a3cdf84",
      "parents": [
        "50a66f0e9c5a85a6af4a99eb66656a69eba24572"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Nov 10 19:23:58 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Nov 10 19:23:58 2011 -0800"
      },
      "message": "Discard framebuffer rendering queues when discarding layers\nBug #5581817\n\nChange-Id: If612846ec5f7793710fc4df152791fb32c506551\n"
    },
    {
      "commit": "ef9bb3c3ea3aa08071ea0c32a505b379c322e5b5",
      "tree": "2c7e9eac12b3ac3ace044d9f1f0c8b11d59176ae",
      "parents": [
        "688ff9a7d6c42d4b26f1a72f963d09203f774c3f"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Mon Oct 17 11:06:46 2011 -0700"
      },
      "committer": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Tue Nov 01 17:16:08 2011 -0700"
      },
      "message": "Fix bug #5438102 Double Arabic harakat overlap instead of stack In TextView\n\nIMPORTANT: this change needs two patches for Harfbuzz:\n- one concerning hb_utf16_script_run_prev() which was not returning the correct \"previous\" script\n- one for the \"script_properties\" table that was missing Arabic code point ranges and declaring\nHB_Script_Inherited instead of HB_Script_Arabic\n\nThe current change is doing the following:\n- pass the correct typeface for Harbuzz shaping (depending on the script of the run)\n- offset correctly the glyphIDs returned by Harfbuzz\n\nWe need to offset the glyphsID as Harfbuzz will return local glyphIDs (meaning in the\nlocal range of the font used for shapping).\n\nWe then cannot use those glyphIDs when we are using a fallback Font (Arabic, Hebrews...)\nbecause the FontRenderer needs glyphIDs in the range of all the Fonts (including the fallbacks)\n\nChange-Id: I494897435bbc59293b02392ee2059cebcdf0e571\n"
    },
    {
      "commit": "e707859415f4c8e1c01228dfaa58fb0a690d442e",
      "tree": "880dfbda361e41286f0cda9789889a7b64c9a106",
      "parents": [
        "ee5954a8fe890a373f6e651c50ca5a2c53dac756"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Fri Oct 28 14:32:20 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Fri Oct 28 14:32:20 2011 -0700"
      },
      "message": "Load identity matrix when calling Canvas.setMatrix(null)\nBug #5446826\n\nChange-Id: I3a7817f266b17e9abe948500816d629edd9a2822\n"
    },
    {
      "commit": "2ffefd48e20d311b38c0673edadb27c1f6ad328b",
      "tree": "1adeefe99d2ca6b006ea87dcb3324949e990462e",
      "parents": [
        "e080af37544f5d7d0cc8140289ac96dd21a8742d"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Sep 08 15:33:03 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Sep 08 15:33:03 2011 -0700"
      },
      "message": "Add support for 3 new blend modes when blending with framebuffer:\n  Add\n  Multiply\n  Screen\n\nChange-Id: I92a3c2612c86613087568bf0c03cc6f92b5ded44\n"
    },
    {
      "commit": "8a3957d43bcae93fbb9f6b4b4c3de8abdb3c953c",
      "tree": "53c8d8bbf6c229316644bdc8d492a658ceb8a4e3",
      "parents": [
        "7a57009c3ab5e4a55db448596a650261e878c975"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Sep 07 17:55:15 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Sep 07 17:55:15 2011 -0700"
      },
      "message": "Add reminder in the code to fix T-junctions\n\nChange-Id: I52b112694f930e641f01fb78dc55412986023411\n"
    },
    {
      "commit": "04c9d8c2ffd028c35c750bac0a4a7b79e48059b5",
      "tree": "5f81921f30f373d4377f470e06193b242b3c8ae4",
      "parents": [
        "189887e0ae171c1b7601991442104a30e56c50ab"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Aug 25 14:01:48 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Aug 25 14:01:48 2011 -0700"
      },
      "message": "Optimize display lists\n\nRemove redundant or useless operations\n\nChange-Id: If989b4eaa9143eef4254c38b39959aeed1f2b9ab\n"
    },
    {
      "commit": "631582f7f7a3c879a5fba81f2bc082e4826758aa",
      "tree": "20cfea489e2f22d08104ea3a7391f596df43beb4",
      "parents": [
        "6816972eb69ee8b294553dac92b3c1ad5b1ca1f7"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Aug 24 11:51:35 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Aug 24 11:51:35 2011 -0700"
      },
      "message": "Enable linear filter when scaling bitmaps\nBug #5205673\n\nChange-Id: I8b0f90877df6b6c6757d35dcf6cd14e79e840b96\n"
    },
    {
      "commit": "6816972eb69ee8b294553dac92b3c1ad5b1ca1f7",
      "tree": "6174bc7bba14ffc748bff13bbebcd62f6f6a1f9a",
      "parents": [
        "91bd59dbda75d176a79d5c42cccce0a9b0391bde"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Aug 22 17:33:33 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Aug 22 17:33:33 2011 -0700"
      },
      "message": "Don\u0027t use bilinear filtering on unscaled bitmaps\nBug #5198590\n\nChange-Id: I4333d850501ac849eeeeb247e4178dd469b9de3d\n"
    },
    {
      "commit": "302a9df1d50373c82923bb84ff665dfce584fb22",
      "tree": "01a6e183b3c0f49676730a679397a31692942f8d",
      "parents": [
        "95a78c38373bb99258d83a6ab2c92825d979f200"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Aug 16 13:55:02 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Aug 16 13:55:02 2011 -0700"
      },
      "message": "Add an API to set the transform on a TextureView\u0027s surface texture.\nBug #5156689\n\nChange-Id: I635a625885c9b832a60d44ece0de7613ceb84109\n"
    },
    {
      "commit": "9d865512f1a39bac6bed612b24023213d5a1fb1d",
      "tree": "ab2c197947927eb61cbb54faa460b85cd0e7e155",
      "parents": [
        "e63a4f35c94f32dbc13533ddfb7334f9706be844"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Aug 11 17:31:42 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Aug 11 17:37:02 2011 -0700"
      },
      "message": "Remove unnecessary private API\n\nChange-Id: I2ecb367528ec0691c07153a3d163b82a6ca33fdf\n"
    },
    {
      "commit": "b50149825fae95b2918bcf67b2ddb773b9797068",
      "tree": "0a7e7b7deda72360adfabed3bc7d64eeccc7311c",
      "parents": [
        "a7ffaee29892cc38ae2327017b6670adafef711b"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jul 28 15:39:12 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jul 28 15:40:47 2011 -0700"
      },
      "message": "Correctly apply linear filter to drawBitmap(Rect, Rect)\n\nChange-Id: I1049282e1996b1020c92cb7bec46e9f28e94e967\n"
    },
    {
      "commit": "e3c26851dc315b730ea0fe5ef35bb1db81f6d675",
      "tree": "bc3fbae626f785fa38e40d4f5ab3737777d9a1ef",
      "parents": [
        "29d23ecfd8612ecd4a7b2140acd344934b73a558"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jul 25 16:36:01 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jul 25 16:36:01 2011 -0700"
      },
      "message": "Improve rendering performance on some GPUs\n\nThis change sets textures filtering to GL_NEAREST by default. GL_LINEAR\nfiltering is only used when textures are transformed with a scale or\na rotation. This helps save a couple of fps on some GPUs.\n\nChange-Id: I1efaa452c2c79905f00238e54d886a37203a2ac1\n"
    },
    {
      "commit": "f2fc460a9512500d9d5749fbaada88903d8e3b22",
      "tree": "6751bbfd9de2084b19d03e8995e52569cbd98cfb",
      "parents": [
        "566b3efb25299d2a9c8ae827522802bad965426a"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jul 19 15:20:03 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jul 19 15:20:03 2011 -0700"
      },
      "message": "Reduce the fade area to save bandwidth.\n\nChange-Id: I8ccea17fc1fb3c132329baa0acc1b3d5a140a5c6\n"
    },
    {
      "commit": "b2479153b743df9e54f7e17c7132a5ecd87fa453",
      "tree": "9c57ccc10e57d9743dfa0bbc92b41ba0a060c85b",
      "parents": [
        "cfacbeadffb5dccbf0434d9c05b19430a5237c3b"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jul 08 11:57:29 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jul 08 11:57:29 2011 -0700"
      },
      "message": "Correctly position layers.\n\nChange-Id: I1678b1c5bdab140b44e56556c50ab8329255f18a\n"
    },
    {
      "commit": "ec19b4a764d512091a780fc93ced567dfbf80914",
      "tree": "d984af1d55edf6bb305ca36617db679bc546f23a",
      "parents": [
        "9ace8f5e79e76893fe4ca9e4d10f6c4056330485"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jul 07 21:05:04 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jul 07 21:27:14 2011 -0700"
      },
      "message": "Use NEAREST filtering mode for TextureView.getBitmap().\n\nChange-Id: I4649062bbdf18ebba7924bdf578f39ad8f6576ac\n"
    },
    {
      "commit": "9ace8f5e79e76893fe4ca9e4d10f6c4056330485",
      "tree": "dac712f57ecba04e50aac7c5934498d9be89c8a1",
      "parents": [
        "f61970fc79e9c5cf340fa942597628242361864a"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jul 07 20:50:11 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jul 07 20:50:11 2011 -0700"
      },
      "message": "Use NEAREST filtering for layers whenever possible.\n\nChange-Id: Id5bee1bd4a322cf93e8000b08e18f1e1b058648e\n"
    },
    {
      "commit": "a9489274d67b540804aafb587a226f7c2ae4464d",
      "tree": "2e181f440cfdda41da82e3763523b437af0fcf8f",
      "parents": [
        "d586ad9c9fec80aa1d24d6b53cd2c8d5b47fe868"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jun 22 20:58:11 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jun 22 20:58:11 2011 -0700"
      },
      "message": "Add the ability to specify the opacity of a TextureView\n\nTextureView assumes its content is opaque by default.\n\nChange-Id: Iba873423566a5b67c388081838bd910dceba32ba\n"
    },
    {
      "commit": "d6b2a00dd43257d1498b09175bff63663f6cb861",
      "tree": "458956fbcc18eb53ddc81fd7a4d1bf64ee3c7a92",
      "parents": [
        "98029c825b9234e6b90721d910cc180885fcab1d"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jun 17 17:45:59 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jun 17 17:45:59 2011 -0700"
      },
      "message": "Add error checking to LayerRenderer::copyLayer\n\nThis method is invoked by TextureView.getBitmap() and failures must be\ncaught to avoid leaving the GL context in a potentially bad state.\n\nChange-Id: I620de395ba1bc20154de58c81963223dc55cac78\n"
    },
    {
      "commit": "54be1cdf3d63095512120fa7ced5c16e462abffa",
      "tree": "01f454747cc08f12375ae1ce458b0ef07beecbef",
      "parents": [
        "40b62576ffeea06e481cae40db89455c2ddf8a63"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jun 13 19:04:27 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jun 13 19:04:27 2011 -0700"
      },
      "message": "Batch glCopyTexImage() calls to get about 15 fps back on SGX.\n\nChange-Id: I04079e070739c1e46df3e90fc388c335e2a7d2b9\n"
    },
    {
      "commit": "181d0a6ccedee03789919d53c46540a8df751896",
      "tree": "9a18b084e28573c7625b4f1db25fb12fd05f8f71",
      "parents": [
        "59a12cae208790dd202656f50a40a53ef49baeeb"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jun 09 18:52:38 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jun 09 18:52:38 2011 -0700"
      },
      "message": "Don\u0027t apply AA to rects with no rotation/perspective.\n\nChange-Id: I21138d4d0589cc28f1dcffb8b675cd81a9900e24\n"
    },
    {
      "commit": "67ffc36a79ce3a9a0b5da28b65123864b7d2597f",
      "tree": "c59ba66ffc9e45b58a06ab746647fa7f23f6bbd2",
      "parents": [
        "c5e626c3934d00bbfb13d48c640ba86a06aad49d"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jun 03 18:50:11 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jun 03 18:51:11 2011 -0700"
      },
      "message": "Measure text with the appropriate text encoding.\nBug #4546327\n\nChange-Id: I8eb593b03a81145e08be92579706ddd775feb0a2\n"
    },
    {
      "commit": "726aeba80ffc6778a9bc3e0ee957b8d644183505",
      "tree": "2a270831f12cfa6dd69a07e9068c76c3b737754e",
      "parents": [
        "f09ef51889f75289b041f9e9f949b7b82ed5b686"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jun 01 14:52:00 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jun 01 14:55:42 2011 -0700"
      },
      "message": "Add support to OpenGLRendere to draw BiDi text.\nBug #4350336\n\nChange-Id: I1cf31693f7ca9653fa3a41b5b91c27ef288d680f\n"
    },
    {
      "commit": "f09ef51889f75289b041f9e9f949b7b82ed5b686",
      "tree": "abb6fa101bbf18deec6edbd1d799cf7eb31a2b41",
      "parents": [
        "a4fa2cd1c007c2bd0f330f6a3ffde2949d9574c5"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri May 27 11:43:46 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri May 27 11:43:46 2011 -0700"
      },
      "message": "Fix issue with drawColor(color, Mode.Clear)\n\nChange-Id: I486b24a5b609c6f8adb0276037ddb24af2b888b2\n"
    },
    {
      "commit": "1e59f9d10d164f156221f6d34b932f06cdd29f1f",
      "tree": "bf37ea0028b41c83646021e90b11a9536909bae2",
      "parents": [
        "f504a2fa144504ca1efd39a4ef9208e3d4d336c5"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu May 26 18:39:34 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu May 26 18:39:34 2011 -0700"
      },
      "message": "Fix texture coordinates for sub-bitmap rendering.\n\nChange-Id: I05a31775e03f5b223a55a5144d420351abac89be\n"
    },
    {
      "commit": "f504a2fa144504ca1efd39a4ef9208e3d4d336c5",
      "tree": "3d797f8910ac7615bddfc073435d8a26fcb80e61",
      "parents": [
        "3453b1c584f456a18f17d74a72c044b4e39c6405"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu May 26 16:40:55 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu May 26 16:40:55 2011 -0700"
      },
      "message": "Correctly implement the CLEAR xfermode.\n\nThe previous implementation was using glBlendFunc with the parameters\nGL_ZERO/GL_ZERO which doesn\u0027t work for text, paths and other alpha\nsources (anti-aliasing.) The correct implementation is GL_ZERO/\nGL_ONE_MINUS_SRC_ALPHA.\n\nChange-Id: I4cca65e57b6a37bbf5a41d382cb0648ee8e11e79\n"
    },
    {
      "commit": "d39d1affe82cb8c21d32baaa5fbb2d6afb806f8e",
      "tree": "05f6bcaf8113b7428c7f8315ee8a540ad91940e1",
      "parents": [
        "7b06e3516ccd452224d9b160c8cf54c3b9f3597d"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Mon May 16 13:09:42 2011 -0400"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Mon May 16 15:30:40 2011 -0400"
      },
      "message": "Updates resulting from the Skia merge (revision 1327)\n\nChange-Id: I2a8f5869dbe95bb594f2ba5d7278f9b330e6f17a\n"
    },
    {
      "commit": "9dec462c1f522533620be3c70f2fc60e69368c1a",
      "tree": "41edf6e4ef55ef8027af8c1007f85c372cb4a913",
      "parents": [
        "6ebbc077404a2ae1c82c746faa7b941901340569",
        "2ea75880142152b3a9993cb245754d73c05749a7"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Fri May 13 11:09:19 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 13 11:09:19 2011 -0700"
      },
      "message": "Merge \"Prepare OpenGLRenderer to use glyphs from TextLayoutCache\""
    },
    {
      "commit": "2ea75880142152b3a9993cb245754d73c05749a7",
      "tree": "35cc62ca30c9a4446a96ad674936dbe6652cfc6c",
      "parents": [
        "f470ced7cdb10a112a526339f92840587918aa6b"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Thu May 12 17:42:06 2011 -0700"
      },
      "committer": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Fri May 13 11:07:38 2011 -0700"
      },
      "message": "Prepare OpenGLRenderer to use glyphs from TextLayoutCache\n\n- add OpenGLRenderer.drawGlyph()\n- refactor glypth logging code\n\nChange-Id: I797e6f1304d3f3f8f6ed31e7f9965d336233d2a4\n"
    },
    {
      "commit": "858aa93ddb6e69e0503382af63bb681b6728aef1",
      "tree": "e6d79eaeef1f9cd204615448da72b63970e3c256",
      "parents": [
        "e4ba346f0f1bb153ec1f9da5c0a4fc96c301efda"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu May 12 09:06:00 2011 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu May 12 14:55:29 2011 -0700"
      },
      "message": "Antialiasing for rectangles\n\nChange-Id: I7ca6931606541ddd504bd5db7f8dc04b9cde8cd9\n"
    },
    {
      "commit": "c54ed966f78b9ee8117931859d62faa6f11fe018",
      "tree": "4e1511aa1408128e2a88cde1a537763accaf2c0a",
      "parents": [
        "3825fef300122ffcc262e56a36a9fc36d8d084b0"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri May 06 14:13:05 2011 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri May 06 14:14:20 2011 -0700"
      },
      "message": "Minor javadoc enhancements\n\nChange-Id: Ic24bb0e1e669989f0cae3a9b8fa064b38c8e7948\n"
    },
    {
      "commit": "3825fef300122ffcc262e56a36a9fc36d8d084b0",
      "tree": "31359d29e4e93d918e7c9f6a866f44a1edfcbc20",
      "parents": [
        "d9fd3d5ca93ba9840a56812752c4b8beaffcdee7",
        "99ecdc480dd4f9b550b2a62ea39f77845a4fec49"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri May 06 13:51:09 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 06 13:51:09 2011 -0700"
      },
      "message": "Merge \"Fix for scaled AA lines\""
    },
    {
      "commit": "99ecdc480dd4f9b550b2a62ea39f77845a4fec49",
      "tree": "e85b2138c79401cb2da03cfc190ce7e81d12bc71",
      "parents": [
        "098b781699981a550500d2e30b4c844af63eb187"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri May 06 12:06:34 2011 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri May 06 12:10:54 2011 -0700"
      },
      "message": "Fix for scaled AA lines\n\nPreviously, the translucent boundary of AA lines would be scaled\nby the line\u0027s transform. It should always be exactly one pixel wide\nin screen space. This fix accounts for scaling for the boundary\nregion, and fixes some AA calculations that make wide/AA lines\nmore correct.\n\nChange-Id: I30df2d5d96315bf3e7ff30be9735282fd5439a39\n"
    },
    {
      "commit": "ed30fd8e9a2d65ee5c8520de55b0089c219f390c",
      "tree": "26ba777cc019d3adcba613427a2bb2feabf9a54f",
      "parents": [
        "098b781699981a550500d2e30b4c844af63eb187"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri Apr 22 16:18:45 2011 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu May 05 07:35:40 2011 -0700"
      },
      "message": "Add ability for hierarchyviewer to output displaylist info\n\nClicking on a node in hierarchyviewer1 and hierarchyviewer2 and then\nclicking the new \"Dump DisplayList\" button will cause the display\nlist for the selected node (including its children) to be output into\nlogcat.\n\nChange-Id: Iad05f5f6cca0f8b465dccd962b501dc18fe6e053\n"
    },
    {
      "commit": "a17de9b493123f0d6e6d0b842150bf29322b7a88",
      "tree": "5a7518cfd3276a2e6ed40504f69fd3f8c3008a34",
      "parents": [
        "f2a4568afca603d3166fd86335abe095cd087393"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed May 04 18:23:12 2011 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed May 04 18:23:12 2011 -0700"
      },
      "message": "Revert \"Add ability for hierarchyviewer to output displaylist info\"\n\nThis reverts commit b2a4b52e8d5e499d33e2765e8c47851bf0266299.\n"
    },
    {
      "commit": "b2a4b52e8d5e499d33e2765e8c47851bf0266299",
      "tree": "fccd7891e4f5ac2b3bb833f226e2c7c23a28202d",
      "parents": [
        "b969d2d9c1771a3a4c813f2c2824522659d26927"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri Apr 22 16:18:45 2011 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed May 04 17:18:27 2011 -0700"
      },
      "message": "Add ability for hierarchyviewer to output displaylist info\n\nClicking on a node in hierarchyviewer1 and hierarchyviewer2 and then\nclicking the new \"Dump DisplayList\" button will cause the display\nlist for the selected node (including its children) to be output into\nlogcat.\n\nChange-Id: Id32f62569ad1ab4d533bc62987f3a7390c1bb4e6\n"
    },
    {
      "commit": "df0a7fbdcff3c683641b7980da50a7d0eebe0876",
      "tree": "bce1f0ec1aecb5735a1dd17a7a5a87f13d7a94b0",
      "parents": [
        "8ef9eaaea8cc27145bf159e45b7d9eaa0aae6d5c",
        "8f0095cd33558e9cc8a440047908e53b68906f5f"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon May 02 18:33:26 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 02 18:33:26 2011 -0700"
      },
      "message": "Merge \"Allows to render with an OpenGL context inside a TextureView.\""
    },
    {
      "commit": "8f0095cd33558e9cc8a440047908e53b68906f5f",
      "tree": "2f55d779bf102e0c134357d89c7de69d0444634a",
      "parents": [
        "3a5c227279011f850036c29e7c0bc96023298d5c"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon May 02 17:24:22 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon May 02 18:32:29 2011 -0700"
      },
      "message": "Allows to render with an OpenGL context inside a TextureView.\n\nChange-Id: I59453f7fc3997f0502a1c5d325d37fed376fabc7\n"
    },
    {
      "commit": "99585adeb4167ca357a72eb866f34c1af944f4b9",
      "tree": "ba993a2167fb880c98e29e4d2bd46933e182b1cf",
      "parents": [
        "71a0dab1ca962c2827be0221a7fbcc065dc3cbb8"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon May 02 15:00:16 2011 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon May 02 15:08:38 2011 -0700"
      },
      "message": "Line endcaps for AA lines are now antialiased.\n\nAlso fixed other minor issues with AA and line rendering.\n\nChange-Id: Icd4638d27c70e2ee0f28b5d9a2b97d8b29e8ac4d\n"
    },
    {
      "commit": "ad44445c772efe66fdf063aa8f78d7ae3233570e",
      "tree": "8097234b893dbc0dfe050a0a98e7acecce74b28b",
      "parents": [
        "efe2a0e6ac8183c98dfe969928509e3b32903b40",
        "aa6c24c21c727a196451332448d4e3b11a80be69"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Apr 28 18:47:01 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 28 18:47:01 2011 -0700"
      },
      "message": "Merge \"New widget: TextureView Bug #4343984\""
    },
    {
      "commit": "aa6c24c21c727a196451332448d4e3b11a80be69",
      "tree": "27114ab3852d31723d885f3846ee874a07247126",
      "parents": [
        "9fc27819d75e24ad63d7b383d80f5cb66a577a0d"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Apr 28 18:40:04 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Apr 28 18:46:19 2011 -0700"
      },
      "message": "New widget: TextureView\nBug #4343984\n\nTextureView can be used to render media content (video, OpenGL,\nRenderScript) inside a View.\n\nThe key difference with SurfaceView is that TextureView does\nnot create a new Surface. This gives the ability to seamlessly\ntransform, animate, fade, etc. a TextureView, which was hard\nif not impossible to do with a SurfaceView.\nA TextureView also interacts perfectly with ScrollView,\nListView, etc. It allows application to embed media content\nin a much more flexible way than before.\n\nFor instance, to render the camera preview at 50% opacity,\nall you need to do is the following:\n\nmTextureView.setAlpha(0.5f);\nCamera c \u003d Camera.open();\nc.setPreviewTexture(mTextureView.getSurfaceTexture());\nc.startPreview();\n\nTextureView uses a SurfaceTexture to get the job done. More\nAPIs are required to make it easy to create OpenGL contexts\nfor a TextureView. It can currently be done with a bit of\nJNI code.\n\nChange-Id: Iaa7953097ab5beb8437bcbbfa03b2df5b7f80cd7\n"
    },
    {
      "commit": "75e3ef048d8826f0db58f117403ce412e1d076a7",
      "tree": "f720e1a1cf871eb8997e535f6ea708521e123041",
      "parents": [
        "2ef1ce494c923a9163de08f5cda6259e23134761",
        "8a5cc92a150bae38ec43732d941b38bb381fe153"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed Apr 27 14:26:40 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 27 14:26:40 2011 -0700"
      },
      "message": "Merge \"Fix various hw-accelerated line/point bugs\""
    },
    {
      "commit": "8a5cc92a150bae38ec43732d941b38bb381fe153",
      "tree": "24bf32e7fcc20ab94e64f57e6f72bd8762d3bdf9",
      "parents": [
        "b4a56f10d875dc62a9c73008f98596c7e32fc249"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Tue Apr 26 07:28:09 2011 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed Apr 27 14:23:29 2011 -0700"
      },
      "message": "Fix various hw-accelerated line/point bugs\n\nAll accelerated lines are now rendered as quads. Hairlines used to\nbe rendered as GL_LINES, but these lines don\u0027t render the same as our\nnon-accelerated lines, so we\u0027re using quads for everything. Also, fixed\na bug in the way that we were offsetting quads (and not offseting points)\nto ensure that our lines/points actuall start on the same pixels as\nSkia\u0027s.\n\nChange-Id: I51b923cc08a9858444c430ba07bc8aa0c83cbe6a\n"
    },
    {
      "commit": "9fc27819d75e24ad63d7b383d80f5cb66a577a0d",
      "tree": "a5d490bc034404c4a2ddcba95c4fdbfd0d01d6db",
      "parents": [
        "2d039219adbeaad1a481267bca021b1a8645b481"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Apr 27 14:21:41 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Apr 27 14:21:41 2011 -0700"
      },
      "message": "Correctly compute tex coords for rect layers.\nBug #4192695\n\nThis change also fixes Javadoc links in the framework.\n\nChange-Id: Ia548bcb18baba5d6fe6a4a04a2278e3a3bd465b2\n"
    },
    {
      "commit": "740bf2bb2e900d3db2292b5909b4b4c6e90320e6",
      "tree": "9c6759f83ab467d849ef8072e262fe7ac55b8c71",
      "parents": [
        "3a03eeedafb3e3335b56bdb9c0a2f02104d32299"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Apr 26 15:33:10 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Apr 26 15:33:10 2011 -0700"
      },
      "message": "Apply shaders/filters to text drop shadows.\nBug #4318323\n\nThis change also fixes the fact that shaders were not modulated\nby the paint\u0027s color when drawing paths.\n\nChange-Id: Id88804143aea06c895d4cbcdbe106d660230aa5a\n"
    },
    {
      "commit": "6cfdf4538049e4b96f50d8c0fe3119664420cc34",
      "tree": "766190868e274776121ec8b3d41669d223d9c78e",
      "parents": [
        "b86a6ea41dadae6ee1915cdb9406c51193e97555"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri Apr 22 16:42:10 2011 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri Apr 22 16:42:10 2011 -0700"
      },
      "message": "Fix bitfield bug with vertex shader selection\n\nChange-Id: I8bd3005f363afb52e6624806efb3e04c4a56ee18\n"
    },
    {
      "commit": "5b0200bd47e8a9a4dc8d2e6c3a110d522b30bf82",
      "tree": "905d0c539f0ed9a4e6ae6538bd6ab7f74efeefb8",
      "parents": [
        "3ad604b3d8a3ae87ee3f7545677bacc8f11159c0"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed Apr 13 17:58:08 2011 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu Apr 21 11:47:05 2011 -0700"
      },
      "message": "Enable anti-aliasing for hw-accelerated lines\n\nDraw anti-aliased lines with OpenGL by constructing a quad with\na border that fades out (to mimic fragment coverage).\n\nChange-Id: Ib81a3e62d663acdf1b46b401ac4aa7ee9855cc7e\n"
    },
    {
      "commit": "8a40f6a6324387b324c998cd9d6af900f1dca5ab",
      "tree": "876575c8bc54d2478814861720950e0839f69387",
      "parents": [
        "9c78930046a6e393764b58e6d7d4648963306d3f",
        "f147340bd117c16a67287e2f6ca9ded651bb32b2"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu Mar 24 16:04:22 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 24 16:04:22 2011 -0700"
      },
      "message": "Merge \"Fix bug with accelerated translucent rendering\""
    },
    {
      "commit": "f147340bd117c16a67287e2f6ca9ded651bb32b2",
      "tree": "695fc01badf4bea220a31765249f2edff90282a0",
      "parents": [
        "15cb32ed9d189526d5a98add386b28cea6bc46b7"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu Mar 24 15:55:05 2011 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu Mar 24 15:55:05 2011 -0700"
      },
      "message": "Fix bug with accelerated translucent rendering\n\nThere was a bug in the dirty region optimizations when\nusing alpha layers. This prevented translucent objects from\nbeing drawn at all in many situations.\n\nChange-Id: I23e9bce3595fbd6fe2bda15e8753a0f35baffb82\n"
    },
    {
      "commit": "5b7a3150a6dbf193b371854b66fa654937633d3a",
      "tree": "a748b2ad0bc5eaec4dde172a2065304f47e74063",
      "parents": [
        "80bbfb19eefe3cb9be8833b136381cece069e24d"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Mar 23 17:15:38 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Mar 23 17:18:44 2011 -0700"
      },
      "message": "Don\u0027t crash when omitting paint to drawBitmap() with A8 configs.\n\nChange-Id: I3d630554ad82fa846385274d12d0434e890ef45d\n"
    },
    {
      "commit": "ed6fcb034b44d9a6ac2fc72fee6030417811f234",
      "tree": "42a469fd5b0eabb1fd3b6a34243d57c081eee764",
      "parents": [
        "67ac217a81f34ee3d35df84b38f3456843c40706"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Mar 21 13:11:28 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Mar 21 13:11:49 2011 -0700"
      },
      "message": "Add support for drawPoint() and drawPoints().\n\nChange-Id: I01bef50c08ec3160f8d40dc060b2cf6c2e4d7639\n"
    },
    {
      "commit": "67ac217a81f34ee3d35df84b38f3456843c40706",
      "tree": "7d6bda2903af512621d1fd775d186b4f374bd591",
      "parents": [
        "a168d7372132d6c87835878794b6ed43d0d282fd"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Mar 18 17:14:27 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Mar 18 17:14:27 2011 -0700"
      },
      "message": "Fix hairline rendering.\n\nChange-Id: Ib6129b446b53678b1b955d8516418370cbae4f10\n"
    },
    {
      "commit": "a168d7372132d6c87835878794b6ed43d0d282fd",
      "tree": "08649fab2d90c649d9d518ca672ec453d5e742e9",
      "parents": [
        "b29cfbf768eab959b31410aafc0a99e20249e9d7"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Mar 18 16:50:13 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Mar 18 16:50:13 2011 -0700"
      },
      "message": "Correctly apply filters to Alpha8 bitmaps.\n\nThis change also removes unnecessary operations from display lists.\n\nChange-Id: I627f85861982731f0ee7705b48b36d9c56f22f39\n"
    },
    {
      "commit": "40667676e542a9daeafeac9904c30004e8706fd3",
      "tree": "601160198237fde4f32a152f5ee03ab1de55e7fd",
      "parents": [
        "b18a047de574f188b2c7633164f15ab3c9e40b5b"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Mar 18 14:34:03 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Mar 18 14:36:44 2011 -0700"
      },
      "message": "Optimize rect-shaped layers.\n\nThis brings back an optimization disabled in HC-MR1. This time the\ncorrect geometry is generated to avoid unnecessary blending.\n\nChange-Id: Id56404dc46bb84c75facc25c18488a690741b592\n"
    },
    {
      "commit": "08aa2cbd5e62e7ca140f78f8bea0477a19880fd9",
      "tree": "12e37d2b0cba0d0913f71374b1e5298fe41d4daf",
      "parents": [
        "4d733f520707a3b52410297b5e16bb289c40e73b"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Mar 17 11:06:57 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Thu Mar 17 12:04:04 2011 -0700"
      },
      "message": "Send WebView the current transform and whether we\u0027re drawing a layer.\nBug #3275491\n\nThese can be used by WebView to correctly apply alpha and geometric\ntransforms.\n\nChange-Id: I2ecd4376d68df886dead3c9240317de33f56828f\n"
    },
    {
      "commit": "80911b851764b073310fd0bffdf4a7db0d8fdd0b",
      "tree": "854e09626693907162ed479408abd619e280ddc4",
      "parents": [
        "fc59176241f498ad4eeb4237800c2eb5edd9efcd"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Mar 16 15:30:12 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Mar 16 15:31:33 2011 -0700"
      },
      "message": "Modify the GL renderer\u0027s functor to pass the clip to WebView\n\nChange-Id: If5efe399ca58f3000b2883e24e9f3736a2025184\n"
    },
    {
      "commit": "6217a71cd281003a376d998269d577d26a61c206",
      "tree": "3fbaaf391a24d8d4f3c009accb4b9c911a939709",
      "parents": [
        "ad37cd3b5d3de9dd0858af04fbccd102e8ff4b0e"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Mar 15 16:32:28 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Mar 15 16:32:28 2011 -0700"
      },
      "message": "Fix performance issue in Launcher\nBug #3515248\n\nThe problem is caused by the fast path when compositing layers on screen.\nThe fast path draws a single quad using glDrawArrays() whereas the general\npath draws an arbitrary mesh using glDrawElements(). It looks like there\u0027s\nan issue in the driver since glDrawArrays() is significantly slower than\nglDrawElements() for a quad (6 vertices!)\n\nThis change just gets rid of the fast path.\n\nChange-Id: Ib2361253ec67f44a988270f76c183422f12ce537\n"
    },
    {
      "commit": "ad37cd3b5d3de9dd0858af04fbccd102e8ff4b0e",
      "tree": "39023e1c98a3a727296eec906b8070ff2af279ea",
      "parents": [
        "57fccf12e1e71089aa01cbf9867314f82db4e6f9"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Mar 15 11:12:25 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Mar 15 11:12:25 2011 -0700"
      },
      "message": "Fix disappearing edges in lists/scrollviews/etc.\nBug #4093871\n\nThis bug was introduced by a change that modified the way fade areas\nare cleared. The previous change relied on Rect::intersect() to empty\nthe intersected rect when the two rects don\u0027t intersect. Unfortunately\nthis is not what intersect() does. The fix is rather simple and\nsets the layer\u0027s bounds to empty when they don\u0027t intersect with the\nclip or the viewport. This has the side effect of ignoring the layer\nwhich is the expected result.\n\nChange-Id: Icf0038b9a476c53f8eff7084136aba3033d093e6\n"
    },
    {
      "commit": "7b5b6abf852c039983eded25ebe43a70fef5a4ab",
      "tree": "918c9bd4b35e0790a9d01fdf88bafd90b952101e",
      "parents": [
        "c7fcc5076fb2988fba699a2167d19475fd58ed0b"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Mar 14 18:05:08 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Mar 14 18:05:08 2011 -0700"
      },
      "message": "Fix rendering artifact in edge fades.\nBug #4092053\n\nThe problem always existed but was made visible by partial invalidation.\nWhen saving a layer, the renderer would try to postpone glClear()\noperations until the next drawing command. This however does not work\nsince the clip might have changed. The fix is rather simple and\nsimply gets rid of this \"optimization\" (that turned out to be\nusless anyway given how View issues saveLayer() calls.)\n\nThis change also fixes an issue with gradients (color stops where\nnot properly computed when using a null stops array) and optimizes\ndisplay lists rendering (quickly rejects larger portions of the\ntree to avoid executing unnecessary code.)\n\nChange-Id: I0f5b5f6e1220d41a09cc2fa84c212b0b4afd9c46\n"
    },
    {
      "commit": "cabfcc1364eb7e4de0b15b3574fba45027b45cfc",
      "tree": "f38e237ba2009dcacb5082a99928aad379a7adc0",
      "parents": [
        "9b7146db6d9c0586b98b062fbcdb3fac6cc54d19"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Mar 07 18:06:46 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Mar 07 18:09:03 2011 -0800"
      },
      "message": "Add support for partial invalidates in WebView\nBug #3461349\n\nThis change also fixes two bugs that prevented partial invalidates\nfrom working with other views. Both bugs were in our EGL implementation:\nthey were preventing the caller from comparing the current context/surface\nwith another context/surface. This was causing HardwareRenderer to always\nredraw the entire screen.\n\nChange-Id: I33e096b304d4a0b7e6c8f92930f71d2ece9bebf5\n"
    },
    {
      "commit": "84962f2fe6ce779c583cc54b11a9de2b6a568117",
      "tree": "1732500726ef522e7f54b006fbcae8ae1bc6805d",
      "parents": [
        "40a787f89a6f4c20f2c7fce29e5bc53954305f34"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Mar 02 15:43:44 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Mar 02 15:43:44 2011 -0800"
      },
      "message": "We need to go deeper.\nBug #3431907\n\nWhen drawing layers inside a layer, the wrong target FBO would be used.\nThis would happen for instance with app widgets using a ViewFlipper\nin Launcher. The ViewFlipper uses a fade animation that triggers a\ncall to saveLayerAlpha(), which in turns creates an FBO. If this happened\nduring a scroll, the ViewFlipper\u0027s FBO would be composited back directly\ninside FBO 0, i.e. the screen. This properly initializes the snapshots\nof hardware layers to use the layer\u0027s FBO as the default compositing\ntarget instead of using 0.\n\nThis problem did not happen when drawing hardware layers inside\nhardware layers because LayerRenderer already takes care of figuring\nout the FBO it needs to composite into. The bug would occur only\nwith layers generated with saveLayer() and its saveLayerAlpha()\nvariation.\n\nLayers inside hardware layers insider layers inside hardware layers\nnow work properly.\n\nChange-Id: Ibe852301087f3d414ad8a18436eebc81f8ac66f5\n"
    },
    {
      "commit": "d643bb56fdf21973ea75984f0816b7dc024698df",
      "tree": "fa0b758dfebc484db04a7d7f052ac8c961e35b10",
      "parents": [
        "321dce646dc3c2ecfbd72a693d8d9294a6119736"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Mar 01 14:55:21 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Mar 01 14:55:21 2011 -0800"
      },
      "message": "Correctly mark layers dirty when drawing WebView.\n\nChange-Id: I7ae0c3cfa0916d8fbeaf01e8da127c621a06a0f4\n"
    }
  ],
  "next": "4368c449d7baa398e67eb4d96467f1de8862c5bb"
}
