)]}'
{
  "log": [
    {
      "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": "cb52d6760078197cd6d0c16349348dd2ad16a88c",
      "tree": "bbce61abcabc4031bcef8783ecba3280975d4b0f",
      "parents": [
        "748025579912f92609cadd71786805e10281858d",
        "02e88f23a65c602e83d7a46c0925e653b948e418"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Nov 28 16:11:27 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 28 16:11:27 2011 -0800"
      },
      "message": "am 02e88f23: am 46685db9: Merge \"Fix crash in existing applications Bug #5659476\" into ics-mr1\n\n* commit \u002702e88f23a65c602e83d7a46c0925e653b948e418\u0027:\n  Fix crash in existing applications Bug #5659476\n"
    },
    {
      "commit": "46685db957cc01cef4ba198aafe44d99fe31f62c",
      "tree": "0a04fceefb38ca16d539c917fa3a8143b213da17",
      "parents": [
        "da822367886d68f997153c7edd5368f3dfb6d58d",
        "ff98fa5a847f66e591287154c634ef7895a9549c"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Nov 28 16:06:52 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 28 16:06:52 2011 -0800"
      },
      "message": "Merge \"Fix crash in existing applications Bug #5659476\" into ics-mr1"
    },
    {
      "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": "ff98fa5a847f66e591287154c634ef7895a9549c",
      "tree": "87df4b0743e2b8b8d80ef85eaaa93bdad6f3eecf",
      "parents": [
        "e35581ad5ad635f9dcfe4ab6a432c48b46b782cd"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Nov 28 09:35:09 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Nov 28 14:55:56 2011 -0800"
      },
      "message": "Fix crash in existing applications\nBug #5659476\n\nThe FontRenderer was not cleaning up its temporary state, leading\nto crashes when invoking renderDropShadow.\n\nChange-Id: I43b24820dd5625af8c080bbe11b64de2f74164b2\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": "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": "d9e688cab3015d858110fb8240cf7378c6befd82",
      "tree": "806f5e09090a6cf467666009a165e5f63155ae2f",
      "parents": [
        "e3571f633a825738d785b587e91798a3d0876740"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Nov 11 15:40:13 2011 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Nov 11 22:14:07 2011 -0800"
      },
      "message": "Clean up GenerationCache.\n\nUse const references to keys and values where appropriate to avoid\ncopying them unnecessarily.\n\nDeleted some dead code.\n\nSimplified a few pieces that were doing unnecessary redundant work.\n\nChange-Id: Ib2145b7094a40db2d679e05dafe050fe1e87b846\n"
    },
    {
      "commit": "1333742bedc9b462024302f302e3a7f27053df66",
      "tree": "f7cf76c82246c9fad4481ad232f17dfa81f57d45",
      "parents": [
        "0ed4c7f8cc8462d434c3a0103790b38fdbb8f392",
        "cb0db0306b5849a35d3d99eea1b34ce019c6f0d8"
      ],
      "author": {
        "name": "Akwasi Boateng",
        "email": "akwasi.boateng@ti.com",
        "time": "Fri Nov 11 15:34:19 2011 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Nov 11 15:34:19 2011 +0000"
      },
      "message": "am cb0db030: Merge branch \\\u0027ics-mr1-plus-aosp\\\u0027 of ssh://android-git:29418/platform/frameworks/base into ics-mr1-plus-aosp\n\n* commit \u0027cb0db0306b5849a35d3d99eea1b34ce019c6f0d8\u0027:\n  Make the overridden ImageView#setVisibility remotable\n  Clamp non-monotonic stats instead of dropping.\n  DO NOT MERGE. Fix leak in LayoutTransition\n  Fix lastVisible/global rects\n  Fix Wimax-less build.\n  Fix leak in LayoutTransition\n  Deferring wallpaper update to improve workspace scrolling (issue 5506959)\n  Terminate EGL when an app goes in the background\n  boot animation is dithered and scaled\n  Fix NdefRecord byte-stream constructor.\n  PopupWindow dismiss() can get into a recursive loop.\n  Fold WiMAX state into the mobile RSSI.\n  Remove dedicated wimax icon to fix RSSI layout.\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": "8ff6b9ebeeb24a6161ec6098e6bfdf8790ee5695",
      "tree": "b6caef363611d37aa58a1b92d96b0b8e2e9f50c4",
      "parents": [
        "36a7f2a9adfa21ec31f00d496fef82e68931c860"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Nov 09 20:10:18 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Nov 10 16:44:49 2011 -0800"
      },
      "message": "Terminate EGL when an app goes in the background\n\nThis does not happen on high end gfx devices. This happens\nonly if only one EGL context is initialized in the current\nprocess.\n\nChange-Id: Ibd1737efdf84eef8a84108b05795440d1ae9964e\n"
    },
    {
      "commit": "9039e43ab1edac9e81f1308a7f3380cff4e9fa27",
      "tree": "7982add0aed212e2c1f171a0d48ad3eb3a8e6a2e",
      "parents": [
        "08d153fb8e3c92716405d9303cc700095308a8af",
        "2ccc47b89868d4f39683e0e2bd057ce95d7d1217"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Sat Nov 05 19:33:49 2011 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Nov 05 19:33:49 2011 +0000"
      },
      "message": "am 2ccc47b8: Merge \"Memory optimizations for libhwui Bug #5566149\" into ics-mr1\n\n* commit \u00272ccc47b89868d4f39683e0e2bd057ce95d7d1217\u0027:\n  Memory optimizations for libhwui Bug #5566149\n"
    },
    {
      "commit": "eca0ca2424afc1e98912405906edfc32f7733e16",
      "tree": "9f49527f35d77b0de3ee49f76e1b7bc99fac3ac6",
      "parents": [
        "650ee281ae9e007ce82ea79ff18bab9ef49503de"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Nov 04 15:12:29 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Nov 04 16:23:47 2011 -0700"
      },
      "message": "Memory optimizations for libhwui\nBug #5566149\n\nLazily initialize font renderers\nKeep 60% of the texture cache when an app goes to the background\nDelete least used font renderer when going to the background\nDelete all font renderers on full memory trim\n\nChange-Id: I3c2454d46dc1107ec0f0f72a9ce69cbbcc8825e7\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": "5e7c469c7a3039af7696789a797f8d91a45227eb",
      "tree": "f66d7d042190f6ec0418dd04db3853d803fcb2d5",
      "parents": [
        "a62f172215727a1e00af0cb934904e00926a86c9"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Oct 20 20:31:50 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Oct 20 20:33:07 2011 -0700"
      },
      "message": "Make sure 9patches are not filtered when not necessary\nBug #5383406\n\nChange-Id: I061c8069a4d9f4eaf45671283710b564639eeb32\n"
    },
    {
      "commit": "a62f172215727a1e00af0cb934904e00926a86c9",
      "tree": "50607048135ed1ad0c2eed331a61b2e18c002743",
      "parents": [
        "2c183fa5bf666c5f6b2221fd04db8ee3c738d1fd"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Oct 19 17:06:19 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Oct 19 17:06:19 2011 -0700"
      },
      "message": "Correctly dump DrawPatch operations in display lists\n\nChange-Id: I8cd1c764ddc184ce45727913fa2a23a3d81b337e\n"
    },
    {
      "commit": "5cd5c3f7e4df99f47e3def6e3707b9eb8205aef3",
      "tree": "30b4ba78109dad6bfdf2f22136740c01ec4fecb3",
      "parents": [
        "856d4e1a872b5aed6792b33e0360554cb3d19eed"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Oct 17 17:10:02 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Oct 17 17:10:02 2011 -0700"
      },
      "message": "Return early when we cannot allocate a hardware layer\nBug #5462308\n\nChange-Id: I52dab809662f6f42a49ca03edc50f6b98fc35a06\n"
    },
    {
      "commit": "71e36aa7db69449e210d0791284cb810a7471c07",
      "tree": "61c2bdf8c5ed556f30116c8da442ae196f8310eb",
      "parents": [
        "7953745dd565167113f8cbfc461bc0521d32d870"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Oct 12 14:11:32 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Oct 12 14:11:32 2011 -0700"
      },
      "message": "Add missing public native API\n\nChange-Id: Ie3bc706b2ac91d686a5b888e8ae841820e9d37c7\n"
    },
    {
      "commit": "7953745dd565167113f8cbfc461bc0521d32d870",
      "tree": "f45d34b4b7a6c19c0a639be68e6455a116a93bca",
      "parents": [
        "0bbd8d8273c1dde9e0504f67bd8eb159bef2406a"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Oct 12 13:48:51 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Oct 12 13:48:51 2011 -0700"
      },
      "message": "Reduce the size of libhwui by 50%\n\nThis change removes unnessary symbols. All symbols are hidden by\ndefault, public APIs with exported symbols are explicitly marked\nwith ANDROID_API.\n\nChange-Id: I692fde432a86c12108de1cfd1f6504919a7d5f3f\n"
    },
    {
      "commit": "a9dc86b21defc26db0d71f276aff5c3af0b62ff5",
      "tree": "e4274c53c5839ef4d6c658bc8b145a67db9568fb",
      "parents": [
        "098ffcd521cd272ee3a63174759cceeda618d2ef"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Oct 11 14:06:21 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Oct 11 14:06:21 2011 -0700"
      },
      "message": "Correctly apply transforms when getting a TextureView\u0027s bitmap\nBug #5439406\n\nChange-Id: I271a9a2e38f5b3600dc158f8f442a6b0893f472b\n"
    },
    {
      "commit": "5a6d3a4c0311318e6f1d4ee06aa47606e055a81b",
      "tree": "58c483c6db1c6e1205ab3d44ee03dfe3c551c8f4",
      "parents": [
        "2eaa0d73fab087b2309269f463f395705d236c78"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Oct 07 15:03:24 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Oct 07 15:03:24 2011 -0700"
      },
      "message": "Stupid fixed point math.\nBug #5423215\n\nChange-Id: I39379e1f8fb4d59de4ede6e4fe7cf7a2c7cc625a\n"
    },
    {
      "commit": "ed7a8fc768df158241819f062a12dafdaf8a628d",
      "tree": "d9a6e1cf1bd27733c9a4f077a1cd735f9d9fe755",
      "parents": [
        "e0ef70abf56a02d9d6bf31f4f09c62ae69a94c9f"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Oct 04 19:21:27 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Oct 04 19:21:27 2011 -0700"
      },
      "message": "Canvas.getClipBounds() was broken and unreliable with OpenGL ES 2.0\n\nThis bug was affecting several third party applications. The bug was\nintroduced by an optimization that prevented the local clip to be\nrecomputed when needed.\n\nChange-Id: I7b5c464db21b5ff1a7274af75a3a64d0e9d84772\n"
    },
    {
      "commit": "59c7f80dd20258cefa1fc4bdd3c9a709a8dd53b8",
      "tree": "0dfddd8b5652e0efe219b75f8d65fe5ef33a3a0a",
      "parents": [
        "9622e20486955e3a3c2f45c61b23650fb35e6559"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Sep 29 17:21:45 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Sep 29 17:21:45 2011 -0700"
      },
      "message": "TextureView works best when it draws stuff.\nBug #5391188\n\nChange-Id: I5e754881ccb08ff288ebd60de77282c9cbcf3f86\n"
    },
    {
      "commit": "83b186a246e8ffd52b91a17c0019dd8c9c9d21b1",
      "tree": "0cd1c181c99cb42a8775a27b7911e62d20945ddd",
      "parents": [
        "4b5441a7201a2f28becf3ab7fb33694f137e1998"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Sep 19 16:00:46 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Sep 19 16:50:07 2011 -0700"
      },
      "message": "fix the float Rect in OpenGLRenderer to handle NANs\n\n- we want functions like isEmpty() to return true if NANs are\ninvolved in the Rect\n\n- also clean-up the intersect familly of calls\n\n- minor cleanup in the int32_t Rect as well\n\nThese played a role in http://b/5331198.\n\nBug: 5331198\n\nChange-Id: I5369725ab482e4b83da9f1bd4cee5256e5de75b2\n"
    },
    {
      "commit": "13ede62fd77acdf158f7210043fe48644cb4a589",
      "tree": "8c6a38f65e0969f39773a85303e413ab85dc8f71",
      "parents": [
        "aab55bf3e323b73062bd932682886b19c062a8a0"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Sep 16 12:00:05 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Sep 16 12:00:05 2011 -0700"
      },
      "message": "Make LTE_FLOAT a strict weak order.\nBug: 5327776\n\nCurrently LTE_FLOAT isn\u0027t even a valid partial order, let alone\na strict weak order as needed by binary search.  Consequently,\nKeyedVectors with keys whose types have operator\u003c using LTE_FLOAT\nsometimes find the wrong values!\n\nThis problem affects several graphics caches including the\nTextLayoutCache.\n\n(This is still not a total order because NaNs are not comparable\nbut hopefully we don\u0027t ever search for NaNs this way!)\n\nChange-Id: Ic447a34c7d87f681ee81538f22a0937a039072dd\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": "799833a8b451a04be201d25ae72213e8562f7774",
      "tree": "e500503c24c747cda8884987cd8a0ae28ff0e666",
      "parents": [
        "94d5e9ad6533864f098b99c231d69c77230a828f"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Aug 30 14:41:48 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Aug 30 14:41:48 2011 -0700"
      },
      "message": "Text would disappear when the font size is 75px.\nBug #5230196\n\nYes, 75px. Any other font size would work. Don\u0027t ask.\n\nChange-Id: I96c7db9926a97f65128d60c8238c3640ee2444ba\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": "28d8ff6dbcc1b137131c70b72b4dbd211db7fbd9",
      "tree": "38a49302ac1bd3c05a85bb09ce26e5c5d45debd6",
      "parents": [
        "6d97842849bed82affbd45251529f85f0958a6b8"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Aug 22 14:01:34 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Aug 22 14:01:34 2011 -0700"
      },
      "message": "Move constants to the correct header\n\nChange-Id: Id4bd14f72487bd7156cd2e1930eaf97b47896273\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": "e5df231434357424cea8d2b8d0cdf31253a98110",
      "tree": "af027aa4179ea0885c45472d8364101f7ab885f7",
      "parents": [
        "1329192fc317b60a4ebcc4d058d8545f6f8743aa"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Aug 12 14:23:53 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Aug 12 14:23:53 2011 -0700"
      },
      "message": "Make sure we correctly copy caches keys.\nBug #5136067\n\nChange-Id: I366e840bef44415436dc7b13d89cfb610feed663\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": "4974bc1be68a77cf9709a8c50ef6de06ce8a3a0d",
      "tree": "db01a34325101d69722648f539b6f4b488913f94",
      "parents": [
        "1eb1f72ccd8c021e9989645a024dcd20ff678420"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Aug 08 10:55:55 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Aug 08 10:55:55 2011 -0700"
      },
      "message": "Prevent crash when purging the gradients cache.\nBug #5133876\n\nChange-Id: I3d1fa4e29498044796d725337ac93e6a1e8f0bcb\n"
    },
    {
      "commit": "bd496bc3d481f9cfc39007d22372d3a1a8809f96",
      "tree": "1c69e8c136dd81e68459c8b9870e0fac4bd6ae10",
      "parents": [
        "6805545649f2b194859033df94602492b9ec086e"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Aug 02 17:32:41 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Aug 02 17:32:41 2011 -0700"
      },
      "message": "Paint style and stroke width affect text rendering.\nBug #5112207\n\nChange-Id: Ic34037ace21a5058ba23dd15e51aae58c998454d\n"
    },
    {
      "commit": "6203f6c8147069976342be8f42add797a50f9557",
      "tree": "cb623a81ace2133781fe04d57d5e08aee7aa8121",
      "parents": [
        "0965a3244b4c3009d08db2e084cdcb681ef66d26"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Aug 01 18:56:21 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Aug 01 18:56:21 2011 -0700"
      },
      "message": "Reduce the amount of data cached by the gradients cache.\n\nChange-Id: I8546f5a5ecf38031c9a40bdcc434d4c7f22da63d\n"
    },
    {
      "commit": "a60c3889718f4513a6c9d8b80f655db5d6346905",
      "tree": "e0a43ec5fbc9031aa839ccb5be2064cfd85181fc",
      "parents": [
        "e5ea4403ce58982522554b7ff23f41e6551923c1"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Aug 01 15:28:16 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Aug 01 15:28:16 2011 -0700"
      },
      "message": "Use high precision iterators on specific GPUs\nBug #5098359\n\nChange-Id: I52ee8c7b4c9e8d4c7bedb684eaf7bef6c44c74b9\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": "65b345fa22b878e141b8fd8ece9c208df00fa40f",
      "tree": "587ba028a74320da19f8eeddbd4a2fb377e68cb4",
      "parents": [
        "6d7475d666baefaa3ba9f0dcee25238739454241"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jul 27 18:51:50 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jul 27 18:51:50 2011 -0700"
      },
      "message": "Reclaim more memory, more often.\n\nYay.\n\nChange-Id: I04557ad575c307a55088549f48f0e9ad994b7275\n"
    },
    {
      "commit": "6d7475d666baefaa3ba9f0dcee25238739454241",
      "tree": "3050764e37c2d8610e143549074206f171dc6c66",
      "parents": [
        "eea60692b060737faeaa02bb30f5b79e2202b482"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jul 27 16:28:21 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jul 27 16:29:39 2011 -0700"
      },
      "message": "Destroy layers and flush layers cache when a window is destroyed.\n\nChange-Id: I3fa1bc3ff50fb99e3d2e490925bd6b0a0f809fff\n"
    },
    {
      "commit": "eea60692b060737faeaa02bb30f5b79e2202b482",
      "tree": "3dcf0aee4e80c38b0475250767a37901e686fde7",
      "parents": [
        "912a7b32d0c59ba38265c5dd6ff84ce93f909a7f"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jul 26 20:35:55 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jul 26 20:35:55 2011 -0700"
      },
      "message": "Improve layers debugging\n\nChange-Id: Ia4950dd5f0e0a224ecb69c581d33aa4f32260a7c\n"
    },
    {
      "commit": "912a7b32d0c59ba38265c5dd6ff84ce93f909a7f",
      "tree": "e4a7ef6e99a302ce7489d773b004dfb984fa2c30",
      "parents": [
        "7c0d89ac97260634c3687c8c8136328c967d68ed"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jul 26 18:57:28 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jul 26 18:57:28 2011 -0700"
      },
      "message": "Make sure we have a current EGL context when invoking EGL\nBug #5081795\n\nChange-Id: Iee3382d362a71c1e6c5c498b319bf7f7bcf5a2f0\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": "162a0217563f4665da6eb183dfce0fef740f641f",
      "tree": "ee9130762f9873df9118dfd05b1f4f8987feb406",
      "parents": [
        "ac1fe6f8460448d379721677a064868e103a2260"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Jul 21 17:02:54 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Jul 21 17:15:48 2011 -0700"
      },
      "message": "Decouple GLES20RecordingCanvas lifetime from GLES20DisplayList.\nBug: 5062011\n\nPreviously, each GLES20DisplayList would hold onto an instance of\nGLES20RecordingCanvas.  In turn, each GLES20RecordingCanvas\nheld onto an SkWriter with a 16Kb buffer along with several other\nobjects.  With one display list per view and hundreds of views,\nthe overhead could add up to a few megabytes.\n\nEnsured that the GLES20RecordingCanvas is reset as soon as\nthe display list has been constructed, thereby promptly freeing\nthe 16Kb buffer.\n\nChanged GLES20DisplayList so that it acquires a GLES20RecordingCanvas\nfrom a pool as needed and recycles it when done.\n\nRemoved some dead code and cruft related to the construction of\nGLES20Canvas objects in general.  Some code was written with the\nassumption that the underlying renderer object could change\nbehind the scenes or might be lazily constructed, but that isn\u0027t\nactually the case so we can simplify things.\n\nRemoved an unnecessary weak reference from GLES20DisplayList\nto the View.  It isn\u0027t actually used anywhere.\n\nFixed a bug in GLES20DisplayList where isValid() would return\ntrue while the display list was being recorded.  This is incorrect\nbecause the native display list might not actually exist.  Worse,\neven if the native display list does exist, it is stale and\npotentially refers to old Bitmaps that have been GC\u0027d (because the\nmBitmaps list was cleared when recording started).\n\nChange-Id: Ib12d5483688cb253478edeb0156d34c476c2566b\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": "bdf7609867a3f886455c51dba91623a86cceb6e2",
      "tree": "269a199e3f566c6ac967412e13d2c72dc9cf20bf",
      "parents": [
        "d94b71de3b465c9c113f5b09c7cd5f221370af23"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jul 18 15:00:43 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jul 18 15:00:43 2011 -0700"
      },
      "message": "Trim OpenGLRenderer\u0027s memory usage whenever possible\n\nChange-Id: I9225077184f374b1a43300add15cc1d5b6869d1c\n"
    },
    {
      "commit": "042f7d64b5ccd7b5b73e7e9814a84576f04fb7d4",
      "tree": "66221ac5ac0764e2d7832a13385b52b00bd7cc38",
      "parents": [
        "8c55a9a57e4f13ec420c3de7b3abfdcf454f6633"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Jul 13 09:49:43 2011 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Jul 13 09:51:00 2011 -0700"
      },
      "message": "Fix debugging for hwui caches\n\nDebugging code attempted to delete a stack item.\n\nAlso, the flag fields weren\u0027t exactly clear, so rewrite it so it\u0027s\nclear that kDebugMoreCaches is a combined flag.\n\nChange-Id: If42b7f0f754919343301da5656aee5943cc9bd4a\n"
    },
    {
      "commit": "40c4b86b72d416585335940f928124426d715e59",
      "tree": "c756ad5004f059a975f4ded4d544717ae732bfb1",
      "parents": [
        "d4b5795e5efd05be7e482e013dfdec519ad2601e"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jul 08 16:50:15 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jul 08 16:50:15 2011 -0700"
      },
      "message": "Align paths on pixel boundaries when rasterizing in bitmaps.\nBug #5003739\n\nChange-Id: I3dfbf4eb92e2c870f33c96947a7d6439e3730965\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": "9ff3cb57ee46ac5242a7d8f08e0c66189fda2e66",
      "tree": "09e73432da50b6d8b70beef7755e775ff46327a9",
      "parents": [
        "3602153e320134ced447ad2ed8f4d667d55195d7"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jun 28 14:02:11 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jun 28 14:02:11 2011 -0700"
      },
      "message": "Fix parameter order evaluation issue.\n\nThis problem was affecting Android builds with gcc/x86.\n\nChange-Id: Ibb7978413c89bd1ac09f0d1ea78f5cb4fe61f6ed\n"
    },
    {
      "commit": "4a5a71518a71a44dbccb3af9a08b82056ea748b3",
      "tree": "d04dafb488a7bfde32e153980a6831c84f93833e",
      "parents": [
        "80429c458506485904715180d10584092a5cd082"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jun 24 17:53:53 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jun 24 17:53:53 2011 -0700"
      },
      "message": "Don\u0027t set texture parameters on every frame.\n\nChange-Id: Iec368405ad6a4ccfd569a0b3b4d681871a770396\n"
    },
    {
      "commit": "80429c458506485904715180d10584092a5cd082",
      "tree": "7a7daee4889e2f9dd679a98b12e38ccb2dbed743",
      "parents": [
        "58f4edb7701bf20925468fa5fd1a06a461ff085b"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jun 24 17:20:32 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jun 24 17:20:32 2011 -0700"
      },
      "message": "Properly tear down TextureView\n\nChange-Id: Ic23cd9257889d0abe8cc3fc1d04a66d0505e383e\n"
    },
    {
      "commit": "02ccac69fd1c0a03c24c5f3ace0ad4bed337b1fd",
      "tree": "60531b505178d4fb169abc83567d5d8db4f14ed0",
      "parents": [
        "b0b1b11b965598cb8fb724e636ebb58a77d437b5"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jun 24 13:20:23 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jun 24 13:20:23 2011 -0700"
      },
      "message": "Code cleanup\n\nChange-Id: I64c346004e0adf9a776d0315534d4fe445f0c0ca\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": "d586ad9c9fec80aa1d24d6b53cd2c8d5b47fe868",
      "tree": "285a0e4d4d7b471a8a3c8e41957283dcb9f09f43",
      "parents": [
        "83c033de06cd2af243ecf8e2c4b87cd2de2b786e"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jun 22 16:14:36 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jun 22 17:10:00 2011 -0700"
      },
      "message": "Fix another memory leak in OpenGLRenderer\n\nChange-Id: I23ed56891452a05cf3ca13f6919c4fef90d5ff4e\n"
    },
    {
      "commit": "f6a63ae3a7004a8eca87fca5a66cfb6aef4e86b5",
      "tree": "dda8a54686dc15261602a0953c8564fb2322ffdb",
      "parents": [
        "c989d867f2580a99cde25fab0e49e445aea33f2f"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jun 22 15:13:09 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jun 22 15:13:09 2011 -0700"
      },
      "message": "Fix memory leak in OpenGLRenderer.\n\nWhen creating a display list, matrices are duplicated locally. They\nwere however never deleted, thus causing apps to slowly leak memory\n(a matrix is about 40 bytes.)\n\nChange-Id: Iac465b720d4c4c9b5ca3fce870c0c912c14a74ab\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": "98029c825b9234e6b90721d910cc180885fcab1d",
      "tree": "0091be00b155882643ffe2a3f88d6df1c297aa3f",
      "parents": [
        "5d5d1ff2d5daadec48c6c95e86d6d644390c02e6"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jun 17 15:47:07 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jun 17 15:47:07 2011 -0700"
      },
      "message": "Fix rendering issue with paths when the stroke width is 0\n\nChange-Id: I5d8ac23dc69e9e17df4ef6b5195186b5207e2524\n"
    },
    {
      "commit": "77a811610f99e21da7f88dafef60d09f345d0506",
      "tree": "f9342ace8ae4541f75c17a3f8531d3c6090de474",
      "parents": [
        "113543c909baadb911cfda6acef056137e16f191"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jun 14 16:45:55 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jun 14 17:06:53 2011 -0700"
      },
      "message": "Add TextureView.getBitmap()\n\nThis API can be used to get a Bitmap copy of the content of a\nTextureView.\n\nChange-Id: I07522216c353720fba5cab333174f58f484eb911\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": "d2ba50ab861ec0950bda18dd0f463b687e66249f",
      "tree": "4c20851d228c57b6635254fcea1710491aa71ed4",
      "parents": [
        "bc7cdb6783d059249133b1c0baf52c305c6b4a33"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri May 27 10:21:07 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri May 27 10:21:07 2011 -0700"
      },
      "message": "Prettify memory dump.\n\nChange-Id: I071c6a04a144a96955d85f56dffc6162288ee33e\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": "44984ea0cb3702384d023b5f211deda3c4b0b656",
      "tree": "2ee6fb3780dc0e1cfd3b6d2837569bc5f8fe3a60",
      "parents": [
        "3a9e712aca65ac49e7155e98e5d6b815da76f94b"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu May 19 13:50:47 2011 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu May 19 16:39:37 2011 -0700"
      },
      "message": "Enable large font rendering with GPU acceleration\n\nChange-Id: I7b022100fb0762613f9cf7753dbb0217e1e75f8d\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": "6fca9884b3ea24d5775af4cf713fd81506913a39",
      "tree": "374fa71493a7fe3fb1c871d67ef4928ebf28369a",
      "parents": [
        "466e3a22db283958a1da71cc60a23ce3976a3659"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Apr 25 14:49:07 2011 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Apr 25 14:50:04 2011 -0700"
      },
      "message": "Minor cleanup in GLrenderer code\n\nChanged the way we use bitcodes for one of the rendering\noptions to make the code cleaner.\n\nChange-Id: Ifaa965f228dbdad297a40da93bfbe63373986e35\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": "9c1e23baf5bfbebd1aebbd6d9a18c225325567ce",
      "tree": "00eeed008fc5b296391adfcb20a610e37849cf87",
      "parents": [
        "827107f4ec7d9a53d7bb6e4071858252f263fa8c"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu Mar 24 10:51:31 2011 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri Apr 01 13:24:53 2011 -0700"
      },
      "message": "Add logging of graphics acceleration info to bugreports\n\nChange-Id: I9fa4cda6ccf92df9d1c644ccdc0e7274a30106e0\n"
    },
    {
      "commit": "ad575f4dda3391baf9fcab927e65afbee32e7b95",
      "tree": "1d7a59a8adbd122fe02dac849462171e76ca3d1c",
      "parents": [
        "8a40f6a6324387b324c998cd9d6af900f1dca5ab",
        "1af23a32d879db330eb5a08b21090ec60b604a32"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Mar 24 16:05:13 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 24 16:05:13 2011 -0700"
      },
      "message": "Merge \"When deleting a path, remove it from the path cache. Bug #4170585\""
    }
  ],
  "next": "8a40f6a6324387b324c998cd9d6af900f1dca5ab"
}
