)]}'
{
  "log": [
    {
      "commit": "996e57c84368058be793897ebc355b917a59abc2",
      "tree": "11d598d07a5153872cd496fd3ca7d4a1a3bdecb8",
      "parents": [
        "219dfa4d392851c1ffd7147cb78d4236658a79d8"
      ],
      "author": {
        "name": "Raph Levien",
        "email": "raph@google.com",
        "time": "Mon Jul 23 15:22:52 2012 -0700"
      },
      "committer": {
        "name": "Raph Levien",
        "email": "raph@google.com",
        "time": "Mon Jul 23 16:52:20 2012 -0700"
      },
      "message": "Hardware implementation of glyph positioning (bug 5443796)\n\nThis implementation adds a drawGeneralText() method to the OpenGL\nRenderer, which supports both a global x, y position, an array of\nindividual glyph positions, and also a length parameter (which enables\ndrawing of underline and strikethrough. It also adds the method to the\ndisplay list (with marshalling and unmarshalling).\n\nWith this change, the existing drawText() method is removed entirely, as\nit\u0027s subsumed by the new method. It\u0027s easy enough to revert to the old\nfunctionality if needed by passing in a NULL positions array.\n\nChange-Id: I8c9e6ce4309fd51cc5511db85df99f6de8f4f6f5\n"
    },
    {
      "commit": "98ba89492a477114148fcb1f89675e41679ca7cc",
      "tree": "89db302c556fdbb61cc1e2e21adceb30a8e53372",
      "parents": [
        "00755fed35e4a91291c42a8a47bed8b957e9f8e1"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jul 20 16:50:03 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jul 20 16:58:45 2012 -0700"
      },
      "message": "Make gradients look slightly better\n\nChange-Id: Ib12c628a88b9ec6af1214ce6e5cb14cfde40485e\n"
    },
    {
      "commit": "00755fed35e4a91291c42a8a47bed8b957e9f8e1",
      "tree": "0e680f4f9791bc8eef13ea7c0cce60ceeb86f8f6",
      "parents": [
        "0cb48705ad6e4be93c57d528be2230d0504340b3",
        "416a847633680d94efb926837efdc18726d54918"
      ],
      "author": {
        "name": "Raph Levien",
        "email": "raph@google.com",
        "time": "Fri Jul 20 14:24:19 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 20 14:24:20 2012 -0700"
      },
      "message": "Merge \"Add drop shadow for drawPosText in hwui renderer.\""
    },
    {
      "commit": "416a847633680d94efb926837efdc18726d54918",
      "tree": "0a5d914259e9ae5fa040e179ba5630d7102a49ad",
      "parents": [
        "592b29f4ad3d46b483b2d6ed2c5cfac8d139afe8"
      ],
      "author": {
        "name": "Raph Levien",
        "email": "raph@google.com",
        "time": "Thu Jul 19 22:48:17 2012 -0700"
      },
      "committer": {
        "name": "Raph Levien",
        "email": "raph@google.com",
        "time": "Fri Jul 20 12:55:30 2012 -0700"
      },
      "message": "Add drop shadow for drawPosText in hwui renderer.\n\nThis patch adds support for drop shadows (setShadowLayer) for\ndrawPosText in the hwui renderer. In and of itself, it\u0027s not very\nimportant, but it\u0027s on the critical path for correct mark positioning,\ntracked as bug 5443796.\n\nThe change itself is fairly straightforward - it basically just adds an\nextra \"positions\" argument to all draw and measure methods on the code\npath for drawing drop shadowed text, as well as to the cache key for\ncached shadow textures.\n\nChange-Id: Ic1cb63299ba61ccbef31779459ecb82aa4a5e672\n"
    },
    {
      "commit": "8dcfd5e836341b4a803b04d104a930bb312182d3",
      "tree": "cd2b75a4431f7ecfd869e007c5c15031e74298ed",
      "parents": [
        "0aa87bbfc41e8b5f52de701ac17b4e66a7a7b609"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jul 20 11:36:03 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jul 20 11:47:57 2012 -0700"
      },
      "message": "Clamp gradient textures to max GL texture size\n\nChange-Id: I8ce4e50988f5194fe5ce4bde7945ec01673af3cd\n"
    },
    {
      "commit": "0aa87bbfc41e8b5f52de701ac17b4e66a7a7b609",
      "tree": "f50322171f390068559517c3fc12d3c2909a67c1",
      "parents": [
        "3a136fc0e8eefc4fbff679414cbe003368a4f298"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jul 20 11:14:32 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jul 20 11:14:32 2012 -0700"
      },
      "message": "Fix crash with new LookupGammaFontRenderer\nBug #6853934\n\nChange-Id: I15e6ca73bfe00eff1a37c4b9d2f7f709ee018eb6\n"
    },
    {
      "commit": "eb61cd8296ed7e3f3aef5bd430d846aa54d5d7e2",
      "tree": "baf241a0b6912a8304843a542dfadf4b869474c1",
      "parents": [
        "63553478130f78d44c8fbeaebc610e19925544a5"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jul 18 20:26:02 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jul 18 20:39:45 2012 -0700"
      },
      "message": "Optimize gradient textures\n\nCompute the size of the backing textures based on the maximum possible\nnumber of shades in the gradient.\n\nChange-Id: I2d7f20477d31b81e9735f2c1d83ebdd0dbcbe340\n"
    },
    {
      "commit": "63553478130f78d44c8fbeaebc610e19925544a5",
      "tree": "b73f59284d74901222a6b11095f9bd0dd0c2d370",
      "parents": [
        "8e025de5fb3ab1c099541e3a387123170bf9d1a9"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jul 18 20:04:14 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jul 18 20:04:14 2012 -0700"
      },
      "message": "Remove vendor specific precision qualifier\n\nChange-Id: I0a56ca7a5a399ec94993d3cea0c4aff6c0f86e39\n"
    },
    {
      "commit": "8e025de5fb3ab1c099541e3a387123170bf9d1a9",
      "tree": "f3d2ec5c2856535302a886108c878b207ace8bfd",
      "parents": [
        "04299385c681140239b0dc31d9780d087d2b4d7c"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jul 18 17:44:07 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jul 18 19:12:11 2012 -0700"
      },
      "message": "Note to self\n\nChange-Id: Ic5699bdbf880ad68748c827bb5b4976b12d4d413\n"
    },
    {
      "commit": "04299385c681140239b0dc31d9780d087d2b4d7c",
      "tree": "99e4ac5e64f2f02f525433853c5bb2d5395d2403",
      "parents": [
        "dfab50d8b97a90dca279b119ebe439f595616ffa"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jul 18 17:15:41 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jul 18 17:15:41 2012 -0700"
      },
      "message": "Clip lines, AA rects and points correctly\n\nChange-Id: I900dd986f397b66f133e6021aa4c2539e7abc2b9\n"
    },
    {
      "commit": "dfab50d8b97a90dca279b119ebe439f595616ffa",
      "tree": "378565e2719064de008f9e249630abd023fca1b8",
      "parents": [
        "2e6f5ca77bc65e3fcc1857088ef6d16201b928ad"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jul 18 17:06:37 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jul 18 17:06:37 2012 -0700"
      },
      "message": "Tweak text gamma correction\n\nChange-Id: Icd3326e6a054d6020c3ed61c8459394bc87401dd\n"
    },
    {
      "commit": "6e25e38e43f9e7f71397dfab7ed32c81c7bf7d46",
      "tree": "0bca4ce1b09dee6f3bfeb941ca324b4ca91a1eff",
      "parents": [
        "accf721ebdf4d3da53e8ae09572650775bfe10f8"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jul 18 15:50:29 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jul 18 16:28:44 2012 -0700"
      },
      "message": "Add a new method for text gamma correction\n\nTo select the gamma correction method, adb shell setprop hwui.text_gamma_correction\nwith one of the following values:\n\nlookup3\nlookup\nshader3\nshader\n\nSee Properties.h for more information about these different methods.\nYou can also control gamma correction using the following properties:\n\nhwui.text_gamma\nhwui.text_gamma.black_threshold\nhwui.text_gamma.white_threshold\n\nChange-Id: I47970b804d2c590c37d3da5008db094241579e25\n"
    },
    {
      "commit": "95c21d0546e36ade3e0601394f5b625541836545",
      "tree": "87d736063e8b6e9a3b175a243154e9ce200df72f",
      "parents": [
        "8a4ac610e1aaf04931ac1af54b146a7fc8e66114"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jul 17 17:46:03 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jul 17 17:48:04 2012 -0700"
      },
      "message": "Correctly pre-clip paths when recording display lists\n\nExternal bug: http://code.google.com/p/android/issues/detail?id\u003d34946\n\nDisplayListRenderer::drawPath was not invoking quickReject() properly,\npassing x,y,width,height instead of left,top,right,bottom. A path\ncould thus get rejected when it should be drawn instead.\n\nWhile working on this change I found a similar issue with another\ndrawing command, drawBitmapData().\n\nChange-Id: I56484e8c101768cde6a78625290872f7849dd5ee\n"
    },
    {
      "commit": "8a4ac610e1aaf04931ac1af54b146a7fc8e66114",
      "tree": "72a29e07d41dbf1e85966ec70acba688a93ec90c",
      "parents": [
        "41a48e4a9984eff92705a0c52104b0abd365521a"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jul 17 17:32:48 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jul 17 17:32:48 2012 -0700"
      },
      "message": "Don\u0027t clear the dirty clip flag if it\u0027s not applied\nBug #6833979\n\nChange-Id: I0ea78b7f31a557a335de10d910d03b0520029080\n"
    },
    {
      "commit": "4121063313ac0d6f69f6253cac821d0c1c122086",
      "tree": "b076706786610f6c87c275355b8853289cbfd0f7",
      "parents": [
        "157bd5749f40b0330fccf3ef159d922742103ef2"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jul 16 17:04:24 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jul 16 17:04:24 2012 -0700"
      },
      "message": "Add shader-based text gamma correction\n\nTo enable it, the system property ro.hwui.text_gamma_shader must be\nset to true. For testing, DEBUG_FONT_RENDERER_FORCE_SHADER_GAMMA\ncan be set to 1 in libhwui/Debug.h.\n\nChange-Id: If345c6b71b67ecf1ef2e8847b71f30f3ef251a27\n"
    },
    {
      "commit": "157bd5749f40b0330fccf3ef159d922742103ef2",
      "tree": "9876c3d6bb52cc90ae06e40651b928b83147b322",
      "parents": [
        "be6f9dc1e71b425b7ac1c40c0a2c72d03eb9fbee"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jul 16 15:17:38 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jul 16 15:17:38 2012 -0700"
      },
      "message": "Add makefile flags for perf\n\nChange-Id: Ibcb6e1c883551273c3392cdaa40cd0b71a3bfa70\n"
    },
    {
      "commit": "be6f9dc1e71b425b7ac1c40c0a2c72d03eb9fbee",
      "tree": "f921cb8f62118e8943d3e49ff34deb3334bf4fcf",
      "parents": [
        "ef863701ae20f985439abacd84dceac130804cbc"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jul 16 12:41:17 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jul 16 12:41:17 2012 -0700"
      },
      "message": "Don\u0027t copy paints for 9patches\n\nChange-Id: I863100a0dc53fec1a3a1b2acbdeb76e6049ffe58\n"
    },
    {
      "commit": "b1d0a4ed21168fefcb82232c8f22cb95d60acb85",
      "tree": "bb7cf461df68f47b83f1e302610504b534284a38",
      "parents": [
        "dd0d0ba654cea3051e44ba9ae20ac4b269e123c0"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jul 13 18:25:35 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jul 13 18:25:35 2012 -0700"
      },
      "message": "Refactor GammaFontRenderer\n\nThis change is the first step to a shader-based text antialias\ngamma correction.\n\nChange-Id: I9eb02d4c56cb95d05219f712290c865b46141954\n"
    },
    {
      "commit": "c9cf9e5459c05f05b29ec81b0e83e154816f7595",
      "tree": "54e271e1a95109f9e6ce7c88f1edd63b3248dff9",
      "parents": [
        "bb033ea3620a2c30f85a91986aa09a37960c8366",
        "586cae3ac69c0c667fbf8a954edbd399f620a717"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jul 13 15:31:30 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 13 15:31:30 2012 -0700"
      },
      "message": "Merge \"Improve rendering speed by disabling scissor tests\""
    },
    {
      "commit": "586cae3ac69c0c667fbf8a954edbd399f620a717",
      "tree": "400d845a02c1ff3e36db59835072bf23efa789e7",
      "parents": [
        "9c0b188e4231bcb967234f3646c178d22d8a9f50"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jul 13 15:28:31 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jul 13 15:28:31 2012 -0700"
      },
      "message": "Improve rendering speed by disabling scissor tests\n\nThis change improves execution of display lists, particularly on\ntiled renderers. The goal is to disable the scissor test as\noften as possible. Drawing commands are rarely clipped by View\nbounds so most of them can be drawn without doing a scissor test.\n\nThe speed improvements scale with the number of views and drawing\ncommands.\n\nChange-Id: Ibd9b5e051a3e4300562463805acc4fd744ba6266\n"
    },
    {
      "commit": "489041dd4192e594f2180ea7bff705894ab4031d",
      "tree": "a049cbbf0db529aff9476ce5073f6a69793d83cc",
      "parents": [
        "899274ca3921df41796fecd7674cadceef783593",
        "9c0b188e4231bcb967234f3646c178d22d8a9f50"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jul 13 12:21:32 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 13 12:21:32 2012 -0700"
      },
      "message": "Merge \"Text shadow alpha handling incorrect\""
    },
    {
      "commit": "9c0b188e4231bcb967234f3646c178d22d8a9f50",
      "tree": "97da5988fb8cbcdda4242e2a900d7cd8d4a2abe0",
      "parents": [
        "f877308f77f7c6f3edd91618a092207dd3be9077"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jul 13 12:13:07 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jul 13 12:13:07 2012 -0700"
      },
      "message": "Text shadow alpha handling incorrect\n\nExternal bug: http://code.google.com/p/android/issues/detail?id\u003d34879\n\nThis CL also fixes a bug where a View\u0027s alpha would be applied twice.\n\nChange-Id: I13a1546228f44d4c169259414b6fa103a6e4a0fa\n"
    },
    {
      "commit": "401b1f85746ab7005907747a59534def967d825b",
      "tree": "50998a8004375af416e259cc221d1d5c59140160",
      "parents": [
        "b8405c78fc609d8fb63d9bc7544b23918489ed47",
        "f877308f77f7c6f3edd91618a092207dd3be9077"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jul 12 18:02:37 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 12 18:02:37 2012 -0700"
      },
      "message": "Merge \"Remove obsolete optimization\""
    },
    {
      "commit": "f877308f77f7c6f3edd91618a092207dd3be9077",
      "tree": "57954a9b36692a12d0c881664c3774d378828a5b",
      "parents": [
        "7d3082a3f09e32e7c42b2896e90902157039b10e"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jul 12 18:01:00 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jul 12 18:01:00 2012 -0700"
      },
      "message": "Remove obsolete optimization\n\nChange-Id: I2d43c009c62a7f4a4a2e0a6303bdfa692c4b8c8c\n"
    },
    {
      "commit": "f0af1d5cb255f136d2fff773be7518ffd7ae3b93",
      "tree": "3759f544ac8bb80b5eb8cd8c40265cf536ca7f52",
      "parents": [
        "7d3082a3f09e32e7c42b2896e90902157039b10e"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jul 11 18:31:21 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jul 11 18:31:21 2012 -0700"
      },
      "message": "Remove unused View.flushLayer() API\n\nChange-Id: I5d4c7388afb5265964ab6b769cc0abfee9745c84\n"
    },
    {
      "commit": "4b447b91debda9c9a0e230cab9e140e356b2a305",
      "tree": "df6f200b93e6bbc5345d439a00e6d9a22fc9e406",
      "parents": [
        "0cedfe09e5083a274a8c449ca52f735a177e1817"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jun 26 15:03:38 2012 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jun 26 15:03:38 2012 -0700"
      },
      "message": "Add mode when open(O_CREAT) is used.\n\nWhen creating a new file using open(..., O_CREAT), it is an error\nto fail to specify a creation mode. If a mode is not specified, a\nrandom stack provided value is used as the \"mode\".\n\nThis will become a compile error in a future Android change.\n\nChange-Id: I8635e8b69587ed107253870d991c3fcf563ca876\n"
    },
    {
      "commit": "4930649d35dcec1f234124e8b4f8abfac8ba6ea6",
      "tree": "d7fd5cc352cf1adfe398fac4a2fd62b723194dea",
      "parents": [
        "42db93691896740e47918e212bed7668464a3b9d",
        "68cefd201809372a547257a273b805cabbd0da68"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jun 12 12:43:36 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jun 12 12:43:36 2012 -0700"
      },
      "message": "am 68cefd20: Merge \"Textured text calls could be invisible Bug #6597730\" into jb-dev\n\n* commit \u002768cefd201809372a547257a273b805cabbd0da68\u0027:\n  Textured text calls could be invisible Bug #6597730\n"
    },
    {
      "commit": "16c88085255c71a1a8fc034129aa2dcc61e1ddd0",
      "tree": "d582a3cff3847c2befee35dccd94d2b1e02b018c",
      "parents": [
        "527ee91b60426b5a344e9905c7f9a14d6d26219e"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jun 11 16:03:47 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jun 11 16:11:56 2012 -0700"
      },
      "message": "Textured text calls could be invisible\nBug #6597730\n\nText would sometimes not appear when rendered with textured content\n(BitmapShader, LinearGradientShader, etc.) This was due to a misuse\nof OpenGL texture unit in FontRenderer. Textured text normally uses\ntwo texture units:\n- texture unit 0 for the font cache\n- texture unit 1 for the textured content (gradient, etc.)\n\nRecent changes to the font renderer allow it to bind new textures\nwhile processing the text\u0027s geometry (this happens when caches get\nfull or when switching font size for instance.) The bindings were\ndone without ensuring the texture unit was the correct one\n(unit 0), thus replacing the content of another texture unit\n(unit 1).\n\nThis lead to text being drawn using the font cache itself as the\ncontent texture, making the text invisible.\n\nChange-Id: I392b4c884f09223305f6cbc6253e2ef9a98944c9\n"
    },
    {
      "commit": "ca43c96127e9f7cdab8ee70638a2445347eebd08",
      "tree": "5b8d2f0da706563d55079b98bdee84706245ba84",
      "parents": [
        "7c5c86d7624646554156339b5f48e110fc53d8ed",
        "44b2fe3fc114ee5f7273c6b0fee2cc999bf244a2"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu Jun 07 09:45:16 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 07 09:45:16 2012 -0700"
      },
      "message": "am 44b2fe3f: Track canvas clearing for swap buffers logic.\n\n* commit \u002744b2fe3fc114ee5f7273c6b0fee2cc999bf244a2\u0027:\n  Track canvas clearing for swap buffers logic.\n"
    },
    {
      "commit": "44b2fe3fc114ee5f7273c6b0fee2cc999bf244a2",
      "tree": "8d54bda8c5b7021be5d923beb641a9efb22dcf30",
      "parents": [
        "43fa4c5261a732decae3bbfaea2a00f8bb9b709c"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed Jun 06 19:03:58 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu Jun 07 06:25:04 2012 -0700"
      },
      "message": "Track canvas clearing for swap buffers logic.\n\nA previous fix made it necessary for a frame to render something to GL\nin order to cause a call to eglSwapBuffers(). Besides the calls being\ntracked as part of issuing a DisplayList, there is also a potential call\nto clear the canvas (via glClear()) on non-opaque surfaces. This call is also\ngood to track, since a surface that gets cleared without any other drawing operations\nis worth flipping to the screen (to erase old contents on that surface).\n\nThis fix tracks the status of the pre-draw operations to find out whether\nglClear() was called and then sets the drawing status appropriately.\n\nIssue #6606422 QuickContact dismissal is janky again (Tracking)\n\nChange-Id: I5fcaccfdc9293dd46b83f2fc279730a5d2740ebf\n"
    },
    {
      "commit": "6d99a024647ff845179311d611dcf031965ba96d",
      "tree": "21b3459c325505a75e28c08500cea43be7ff4eae",
      "parents": [
        "310c067e234c7dfdf5e78b7fd3702ed753170fb2",
        "8f1f714f831bf8bf10f94211c42e36ef2851810d"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Jun 06 16:47:57 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 06 16:47:57 2012 -0700"
      },
      "message": "am 8f1f714f: Merge \"Revert \"Add more temporary logging for investigating detachFunctor\"\" into jb-dev\n\n* commit \u00278f1f714f831bf8bf10f94211c42e36ef2851810d\u0027:\n  Revert \"Add more temporary logging for investigating detachFunctor\"\n"
    },
    {
      "commit": "932b7f6765968bd526c03512f3805fbc3924dc29",
      "tree": "bc2597383e0c8973b78627690856f883686526a6",
      "parents": [
        "35b691f056159e938a256420f6d3dec1ebf8bfd9"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Jun 06 13:59:33 2012 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Jun 06 14:02:55 2012 -0700"
      },
      "message": "Revert \"Add more temporary logging for investigating detachFunctor\"\n\nbug:6608646\n\nThis reverts commit 8857b2f76abad1e4ec742dfd85d0c997880be376\n\nChange-Id: I1563b5974c52b84201ae448298f804eb0dcc235d\n"
    },
    {
      "commit": "34e5f5a534d915f253ae51cbcfe15c12e25a78a4",
      "tree": "147ecd3055f6f3a1689f730ce6c9733ef1dad336",
      "parents": [
        "4a683a343083ec2b8aed1ee63669dbade6c0379f",
        "3676b137ecf2f24e88e8a3567c11234e7d4416d2"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jun 05 12:31:31 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jun 05 12:31:31 2012 -0700"
      },
      "message": "am 3676b137: Merge \"Add more temporary logging for investigating detachFunctor\" into jb-dev\n\n* commit \u00273676b137ecf2f24e88e8a3567c11234e7d4416d2\u0027:\n  Add more temporary logging for investigating detachFunctor\n"
    },
    {
      "commit": "8857b2f76abad1e4ec742dfd85d0c997880be376",
      "tree": "adb739712e251a296933fb5eeae700f823b0e072",
      "parents": [
        "0c01222ff6507c6e3eaeec7070a510201165d6f3"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jun 05 10:53:20 2012 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jun 05 11:24:46 2012 -0700"
      },
      "message": "Add more temporary logging for investigating detachFunctor\n\nbug:6596807\nChange-Id: Ic9e34e323b12a887f2e8df0773a6155627b6a64f\n"
    },
    {
      "commit": "78f04a364f8cd7dc3a7a0aaf73c96a6cc84718b6",
      "tree": "8b292f7d036f30087f535c3f617c8aef13b6c8ef",
      "parents": [
        "ba58221769575d1129c61fe0da9030986eb899bd",
        "51df04b93e8e362edd867abd7efaf1659b8b8b82"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jun 04 13:13:34 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jun 04 13:13:34 2012 -0700"
      },
      "message": "am 51df04b9: Port the legacy velocity tracker strategy.\n\n* commit \u002751df04b93e8e362edd867abd7efaf1659b8b8b82\u0027:\n  Port the legacy velocity tracker strategy.\n"
    },
    {
      "commit": "ba58221769575d1129c61fe0da9030986eb899bd",
      "tree": "cca06da3f48e1d399703b31f9bec74bae1188881",
      "parents": [
        "2fd6baef5911d3bb481d1a603180d7371d43df41",
        "a5b0698231459ac5b54cf8e8952ac5c2b2b2198b"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jun 04 13:13:30 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jun 04 13:13:30 2012 -0700"
      },
      "message": "am a5b06982: Implement a second order integrating VT strategy.\n\n* commit \u0027a5b0698231459ac5b54cf8e8952ac5c2b2b2198b\u0027:\n  Implement a second order integrating VT strategy.\n"
    },
    {
      "commit": "2fd6baef5911d3bb481d1a603180d7371d43df41",
      "tree": "2cdda034ced17990e057fa8ef21e3237d402448e",
      "parents": [
        "524d8ee8e0fd8d8be8273a5b59886371d6fa77b8",
        "18f329e9480fca75210bb7496e5b4bc987b4ad8f"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jun 04 13:13:27 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jun 04 13:13:27 2012 -0700"
      },
      "message": "am 18f329e9: Implement a weighted least squares VelocityTracker strategy.\n\n* commit \u002718f329e9480fca75210bb7496e5b4bc987b4ad8f\u0027:\n  Implement a weighted least squares VelocityTracker strategy.\n"
    },
    {
      "commit": "51df04b93e8e362edd867abd7efaf1659b8b8b82",
      "tree": "5c416d400d53da96891465fd5b602e063925622b",
      "parents": [
        "a5b0698231459ac5b54cf8e8952ac5c2b2b2198b"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Jun 03 23:14:14 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jun 04 12:34:03 2012 -0700"
      },
      "message": "Port the legacy velocity tracker strategy.\n\nFor comparison purposes, port the legacy velocity tracker\nalgorithm as it behaved prior to ICS.\n\nBug: 6413587\nChange-Id: I7e8e56584dcdb1a3c660ca9d8f9c5bd5d868e449\n"
    },
    {
      "commit": "a5b0698231459ac5b54cf8e8952ac5c2b2b2198b",
      "tree": "cc91df96eaa76fe98969e40f9b4e9b4dd0babbd3",
      "parents": [
        "18f329e9480fca75210bb7496e5b4bc987b4ad8f"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Jun 03 22:46:07 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jun 04 12:34:03 2012 -0700"
      },
      "message": "Implement a second order integrating VT strategy.\n\nBug: 6413587\nChange-Id: I51bc7b8cbff22b10b728fc84ee15370e9984dd55\n"
    },
    {
      "commit": "18f329e9480fca75210bb7496e5b4bc987b4ad8f",
      "tree": "8be6eebdeb6dfd2cd64e0715048db571209a7096",
      "parents": [
        "433927c52f2758e3e69f69d7e03d571ee4f18a26"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Jun 03 14:18:26 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jun 04 12:34:03 2012 -0700"
      },
      "message": "Implement a weighted least squares VelocityTracker strategy.\n\nNo change to the default strategy.\n\nBug: 6413587\nChange-Id: I08eb6f9a511e65ad637359b55b5993c26ba93b40\n"
    },
    {
      "commit": "767bc6d26c98594525ed7dd94e8880335e15e8a8",
      "tree": "7e5a977d8c4486530f198baec39934267cd1decb",
      "parents": [
        "7d3fa093bbd34e19f6b580b6258c8ea4e138c777",
        "1fbbc0716f9b70c6dcee00c4550757077ef7f7b5"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Jun 03 21:19:16 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sun Jun 03 21:19:16 2012 -0700"
      },
      "message": "am 1fbbc071: Merge \"Implement an integrating VelocityTracker strategy.\" into jb-dev\n\n* commit \u00271fbbc0716f9b70c6dcee00c4550757077ef7f7b5\u0027:\n  Implement an integrating VelocityTracker strategy.\n"
    },
    {
      "commit": "7d3fa093bbd34e19f6b580b6258c8ea4e138c777",
      "tree": "33ed4f33968d5cfabad258135588f9c3aa1e7e71",
      "parents": [
        "66a10964b0aa56e07263005e6a41a87ecd2dd2d7",
        "f47e76e2c78e78e26110786e99548d718d177c32"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Jun 03 21:19:13 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sun Jun 03 21:19:13 2012 -0700"
      },
      "message": "am f47e76e2: Merge \"Make velocity tracker strategy configurable.\" into jb-dev\n\n* commit \u0027f47e76e2c78e78e26110786e99548d718d177c32\u0027:\n  Make velocity tracker strategy configurable.\n"
    },
    {
      "commit": "1fbbc0716f9b70c6dcee00c4550757077ef7f7b5",
      "tree": "3e6ba76e20907a8f1073e9872d12a82903043bc6",
      "parents": [
        "f47e76e2c78e78e26110786e99548d718d177c32",
        "53dd12a66884540b87fe428383e2f79d0f5e32ba"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Jun 03 21:16:38 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Jun 03 21:16:38 2012 -0700"
      },
      "message": "Merge \"Implement an integrating VelocityTracker strategy.\" into jb-dev"
    },
    {
      "commit": "f47e76e2c78e78e26110786e99548d718d177c32",
      "tree": "654c967f3332be1ee918cc4d8ab1f35451db7e13",
      "parents": [
        "cc822a769e752c2845dc795f05b7b35b5b3f6614",
        "9eb7d86181729c3eb769d71123c4ce9ffc868f08"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Jun 03 21:16:18 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Jun 03 21:16:18 2012 -0700"
      },
      "message": "Merge \"Make velocity tracker strategy configurable.\" into jb-dev"
    },
    {
      "commit": "53dd12a66884540b87fe428383e2f79d0f5e32ba",
      "tree": "7493fd04d9e2ad3143b679b9ae30829877ef38e4",
      "parents": [
        "9eb7d86181729c3eb769d71123c4ce9ffc868f08"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jun 01 13:24:04 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Jun 03 19:23:58 2012 -0700"
      },
      "message": "Implement an integrating VelocityTracker strategy.\n\nThis algorithm better tolerates certain kinds of errors in the\ntouch input than the least squares strategy but it may underestimate\nthe velocity of accelerating movements.  This algorithm is\nmainly of interest as a baseline for testing and comparison with the\nleast squares algorithm, which remains the default.\n\nBug: 6413587\nChange-Id: I8ddb50084e44875e234717907e5b06d03f59788c\n"
    },
    {
      "commit": "9eb7d86181729c3eb769d71123c4ce9ffc868f08",
      "tree": "5844b6bfd4c9eac8bc5015fa54f5255a376805c8",
      "parents": [
        "6e8e41a336dfc0c43b672fd105a23aa48c93ec67"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jun 01 12:39:25 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Jun 03 19:21:49 2012 -0700"
      },
      "message": "Make velocity tracker strategy configurable.\n\nThis change is very useful for testing purposes because it makes it\neasy to compare different implementations to see how they behave.\n\nThere is no change to the current default strategy.\n\nBug: 6413587\nChange-Id: I4d8567aa4160571ba9fa397ce419882cd9366749\n"
    },
    {
      "commit": "d0140062db85ae17e807e514fe14d2d0581645fb",
      "tree": "c85e199b3a86be812aa720a15099aea545ced392",
      "parents": [
        "c3895253bb833611df8c8f62347ede70153eb5b9",
        "561ff8a74e3d9ea15f58d9b6534da9ea5a63d84b"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri Jun 01 07:32:39 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jun 01 07:32:39 2012 -0700"
      },
      "message": "am 561ff8a7: Merge \"Skip eglSwapBuffers() call when we do not draw to GL\" into jb-dev\n\n* commit \u0027561ff8a74e3d9ea15f58d9b6534da9ea5a63d84b\u0027:\n  Skip eglSwapBuffers() call when we do not draw to GL\n"
    },
    {
      "commit": "486590963e2207d68eebd6944fec70d50d41116a",
      "tree": "7a176c6cda01c64980c5c27f9bf495b64d08c84f",
      "parents": [
        "20c15a4271ea3a7fb2210430bfc53f611603cf76"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu May 31 15:21:51 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu May 31 17:22:27 2012 -0700"
      },
      "message": "Skip eglSwapBuffers() call when we do not draw to GL\n\nThe fix is to track when we issue GL drawing commands, and to skip the\ncall to eglSwapBuffers() when a DisplayList does not result in\nany actual rendering calls to GL.\n\nIssue #6364143 QuickMuni list items and buttons flicker instead of fade\n\nChange-Id: I60a02c61a58c32d92481a1e814b4c8a49c6a37a3\n"
    },
    {
      "commit": "9970bbac1f4951f5910aa5148e189a0a284f9e46",
      "tree": "07e56758856d22832e257d1b05760c3ff7df2da7",
      "parents": [
        "ddf573d6091b99199bfde93a58ef51db796c7b0f",
        "3534e13486a0081b1229e698f13bd3a37efa3fb0"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue May 22 17:22:19 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 22 17:22:19 2012 -0700"
      },
      "message": "am 3534e134: Merge \"Avoid crash if onDetachedFromWindow called after destroy\" into jb-dev\n\n* commit \u00273534e13486a0081b1229e698f13bd3a37efa3fb0\u0027:\n  Avoid crash if onDetachedFromWindow called after destroy\n"
    },
    {
      "commit": "3534e13486a0081b1229e698f13bd3a37efa3fb0",
      "tree": "c2efe65a2e556c6559745e41e7379e8d9435e805",
      "parents": [
        "2d243bc62a899f7af77886a2a2a82872d63226bb",
        "9e08012869f77f212186a5d5856831a85fb73d40"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue May 22 17:20:07 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 22 17:20:07 2012 -0700"
      },
      "message": "Merge \"Avoid crash if onDetachedFromWindow called after destroy\" into jb-dev"
    },
    {
      "commit": "9e08012869f77f212186a5d5856831a85fb73d40",
      "tree": "716edb488c20ac96334f2d4e5f8b85f1f4438784",
      "parents": [
        "f8dafa14e058cdc2f408b59be7911abaceb73c47"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue May 22 16:00:19 2012 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue May 22 16:52:00 2012 -0700"
      },
      "message": "Avoid crash if onDetachedFromWindow called after destroy\n\nThis also removes the temporary logging from commit\nf8dafa14e058cdc2f408b59be7911abaceb73c47.\n\nbug:6535911\nChange-Id: Icf1d0438b349a0e92e7d9cefed57a252eed2b9b0\n"
    },
    {
      "commit": "49413bcccbd735be4e8ad4cf98b3ab2f892225e4",
      "tree": "56e7e97f3386a199d6e1f1a7340464f9e5b858a9",
      "parents": [
        "5ba87a007629375bf0a2e1a45cd1954adef65338",
        "7a9328a3118725389564fe2a9b926837fa3d58a9"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue May 22 14:41:35 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 22 14:41:35 2012 -0700"
      },
      "message": "am 7a9328a3: Merge \"Add temporary functor lifetime logging\" into jb-dev\n\n* commit \u00277a9328a3118725389564fe2a9b926837fa3d58a9\u0027:\n  Add temporary functor lifetime logging\n"
    },
    {
      "commit": "7a9328a3118725389564fe2a9b926837fa3d58a9",
      "tree": "d58f465a269c10e94a4a30f6e2929b8980687c27",
      "parents": [
        "e5a4a3dc1648844f06d29efd42c9306c3cdf177e",
        "f8dafa14e058cdc2f408b59be7911abaceb73c47"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue May 22 14:39:13 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 22 14:39:13 2012 -0700"
      },
      "message": "Merge \"Add temporary functor lifetime logging\" into jb-dev"
    },
    {
      "commit": "5ba87a007629375bf0a2e1a45cd1954adef65338",
      "tree": "080bc3aec1e3e2aeee5c0d72b84ad26931a35ec0",
      "parents": [
        "f6f269499030cdd7fea708e01e34405906ad9a46",
        "e5a4a3dc1648844f06d29efd42c9306c3cdf177e"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue May 22 14:32:20 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 22 14:32:20 2012 -0700"
      },
      "message": "am e5a4a3dc: Merge \"Ensure we always set the proper blending mode Bug #6527305\" into jb-dev\n\n* commit \u0027e5a4a3dc1648844f06d29efd42c9306c3cdf177e\u0027:\n  Ensure we always set the proper blending mode Bug #6527305\n"
    },
    {
      "commit": "e5a4a3dc1648844f06d29efd42c9306c3cdf177e",
      "tree": "bf396dc3918ac55847b1929599cbd3c632e24b0f",
      "parents": [
        "638e012d2b5c2b075b48f86d08daec9b36319cfc",
        "ddf74373616c89e0880a28a2185fd7ce3db91de6"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue May 22 14:28:58 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 22 14:28:58 2012 -0700"
      },
      "message": "Merge \"Ensure we always set the proper blending mode Bug #6527305\" into jb-dev"
    },
    {
      "commit": "f8dafa14e058cdc2f408b59be7911abaceb73c47",
      "tree": "a3de994c2147cc21885a021199a24d82060527bb",
      "parents": [
        "c8538ade8df2c2f013f8b93094912057ee1cc417"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue May 22 13:29:40 2012 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue May 22 14:26:15 2012 -0700"
      },
      "message": "Add temporary functor lifetime logging\n\nbug:6535911\n\nChange-Id: Ida5cc1def7fe1fc314317bbc5df50e1465753deb\n"
    },
    {
      "commit": "ddf74373616c89e0880a28a2185fd7ce3db91de6",
      "tree": "dab9856ef8a857b0b107c2f471b089605a6c73b1",
      "parents": [
        "51f7c6b3620549429cd6c62e38bace43085e04fb"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue May 22 14:07:07 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue May 22 14:08:10 2012 -0700"
      },
      "message": "Ensure we always set the proper blending mode\nBug #6527305\n\nAt the beginning of a frame, always set the blending mode that we\nthink GL is using just in case it was modified by another entity\n(for instance a WebView functor.)\n\nChange-Id: I0e1d0abee8a2abb2b8e7622aed28346e89562c06\n"
    },
    {
      "commit": "1ff2c7fe91f25b85478e71f19a4528fc5fde00ba",
      "tree": "b00271280c626ceffa14e3596d6f40ac1549f107",
      "parents": [
        "fd2e67cfbfe27352b253212331a32b5be9d1bd67",
        "12fd5db435043681371ca7e9694744d71b6ba271"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue May 22 13:13:17 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 22 13:13:17 2012 -0700"
      },
      "message": "am 12fd5db4: Merge \"Don\\\u0027t clear the functor at every draw\" into jb-dev\n\n* commit \u002712fd5db435043681371ca7e9694744d71b6ba271\u0027:\n  Don\u0027t clear the functor at every draw\n"
    },
    {
      "commit": "c8538ade8df2c2f013f8b93094912057ee1cc417",
      "tree": "f938473c2ecd51d8cfdede8c2ae3404b37b60767",
      "parents": [
        "0eaeb69d1c4849da8ab1df70b84e90837193df67"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue May 22 11:54:06 2012 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue May 22 11:54:06 2012 -0700"
      },
      "message": "Don\u0027t clear the functor at every draw\n\ninstead clear functors at invoke time, and let them detach themselves as needed.\n\nbug:6511995\nChange-Id: I9115fcadffb27eb850c1d1773c098d3d2e22788b\n"
    },
    {
      "commit": "d568e4d2ac0ba100c91c0e24b969c6efc726172a",
      "tree": "fa51ecbe89c373d4f60cdff32ac6271e1496249e",
      "parents": [
        "a4cae2847eb086742ff9d3b24a469242bd9ddae1",
        "196a7dae6387b118f73c78b7ae16ebfa604ae249"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri May 18 15:59:44 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri May 18 15:59:44 2012 -0700"
      },
      "message": "am 196a7dae: Merge \"Sanitize display list properties\" into jb-dev\n\n* commit \u0027196a7dae6387b118f73c78b7ae16ebfa604ae249\u0027:\n  Sanitize display list properties\n"
    },
    {
      "commit": "f26c8be01bb218619e073a209c9d57fe9d26c517",
      "tree": "6b00b9fb738143b19c3e3ec2496becc0e5309722",
      "parents": [
        "7e22a223afa63c591ef56cb325163e5e82046822"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri May 18 10:58:45 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri May 18 10:58:45 2012 -0700"
      },
      "message": "Sanitize display list properties\n\nThe comparisons used in the various properties setters could fail badly\nin some specific conditions. The scale properties in particular did not\nuse the same comparisons.\n\nThis change also clamps alpha to the 0..1 range which avoids overflow\nissues with lowp registers in GLSL computations.\n\nChange-Id: I3e73b584e907a14e2c33d0865ca0d2d4d5bff31d\n"
    },
    {
      "commit": "952a4512a89f3d06068b17732a3ea0926b235c46",
      "tree": "1fbd3be42f8d64f206e7a5435698a8cfcecc1334",
      "parents": [
        "69337714812db8735a66785f62db39f46a70fd26",
        "2298fe223f1ae45d45dbdd69e115a24a8ea2df10"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue May 15 11:32:55 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 15 11:32:55 2012 -0700"
      },
      "message": "am 2298fe22: Merge \"Avoid unnecessary copy when invoking drawBitmap(int[]) Bug #6483390\" into jb-dev\n\n* commit \u00272298fe223f1ae45d45dbdd69e115a24a8ea2df10\u0027:\n  Avoid unnecessary copy when invoking drawBitmap(int[]) Bug #6483390\n"
    },
    {
      "commit": "d5cfec8d34a59f2a4e98b655b5e49775d69ad64c",
      "tree": "930da53f20eb9016dc4f4791ad7bdea213912ed3",
      "parents": [
        "aebfdc231aadab63e51d740a8f3abf97953fd9f2",
        "7b8523aaed11a3b5ee286776023233036ac0759d"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue May 15 11:31:54 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 15 11:31:54 2012 -0700"
      },
      "message": "am 7b8523aa: Merge \"Remove all Dalvik allocations from Cavnas.drawBitmap(int[], ...)\" into jb-dev\n\n* commit \u00277b8523aaed11a3b5ee286776023233036ac0759d\u0027:\n  Remove all Dalvik allocations from Cavnas.drawBitmap(int[], ...)\n"
    },
    {
      "commit": "aebfdc231aadab63e51d740a8f3abf97953fd9f2",
      "tree": "e2235dfcd76d18afcb2d285a48c9053457837221",
      "parents": [
        "634ec69aa9f7e5806098800b504ae94dda1df5f3",
        "e4db99cf87c47730e80dc1431f07f4f1062c648e"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue May 15 11:31:47 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 15 11:31:47 2012 -0700"
      },
      "message": "am e4db99cf: Merge \"Detect when pointer has stopped moving.\" into jb-dev\n\n* commit \u0027e4db99cf87c47730e80dc1431f07f4f1062c648e\u0027:\n  Detect when pointer has stopped moving.\n"
    },
    {
      "commit": "634ec69aa9f7e5806098800b504ae94dda1df5f3",
      "tree": "f97ef50b48d913f0f613208ca2809b3bedf83ebe",
      "parents": [
        "9de702743326deaca9466e49d488ff5c96bcecb7",
        "08b544c7be67343b10a4130611318b8273d06433"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue May 15 11:31:45 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 15 11:31:45 2012 -0700"
      },
      "message": "am 08b544c7: Merge \"Fix pointer indexing issue in VelocityTracker.\" into jb-dev\n\n* commit \u002708b544c7be67343b10a4130611318b8273d06433\u0027:\n  Fix pointer indexing issue in VelocityTracker.\n"
    },
    {
      "commit": "7469f8bb949bef1328877593952b8fe9801a3c67",
      "tree": "256ddcbe5b4a8cd0ca6d7dafe49f5c6bb37c3963",
      "parents": [
        "d83a0800679583ccc99a90a128f8d6c11afbeca4",
        "47a4a50df09b5ab76ee06cb8845fe5a02952ec32"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue May 15 11:31:32 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 15 11:31:32 2012 -0700"
      },
      "message": "am 47a4a50d: Merge \"Improve touch event resampling.\" into jb-dev\n\n* commit \u002747a4a50df09b5ab76ee06cb8845fe5a02952ec32\u0027:\n  Improve touch event resampling.\n"
    },
    {
      "commit": "e2ec70bf92e80800bd5163f56632b9eb14cce290",
      "tree": "c36a6707df306d1e052878ef34735e3ce7b893e2",
      "parents": [
        "6b65cfbe97b366ee2df4584c3ef80fd065e06cc9",
        "00ff47484f8137aa3e59f680ff07d2662cfb4088"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue May 15 11:31:08 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 15 11:31:08 2012 -0700"
      },
      "message": "am 00ff4748: Merge \"More VelocityTracker refactoring.\" into jb-dev\n\n* commit \u002700ff47484f8137aa3e59f680ff07d2662cfb4088\u0027:\n  More VelocityTracker refactoring.\n"
    },
    {
      "commit": "769bccea292329e16fe6211e10cf54cf38896b1b",
      "tree": "b29684f6d128c88d146b6eddc53d28c94322703c",
      "parents": [
        "f0e5e27bf416e43dd1018a965c271ebb69080e54",
        "c9ade202ed6a43a4edba6596492aa810530b88b6"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue May 15 11:30:21 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 15 11:30:21 2012 -0700"
      },
      "message": "am c9ade202: Merge \"Forget the name of a texture after freeing Bug #6408362\" into jb-dev\n\n* commit \u0027c9ade202ed6a43a4edba6596492aa810530b88b6\u0027:\n  Forget the name of a texture after freeing Bug #6408362\n"
    },
    {
      "commit": "f0e5e27bf416e43dd1018a965c271ebb69080e54",
      "tree": "3530ff1a4513555ceb8eac148fcc6cb2bc43cd57",
      "parents": [
        "97c5ca3422d7031c18311b732936c81a2ef55a4c",
        "2be45697f93291e1740c3b7e4ba0af5d4ae81ed6"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue May 15 11:30:00 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 15 11:30:00 2012 -0700"
      },
      "message": "am 2be45697: Merge \"Fix two memory leaks Bug #6408362\" into jb-dev\n\n* commit \u00272be45697f93291e1740c3b7e4ba0af5d4ae81ed6\u0027:\n  Fix two memory leaks Bug #6408362\n"
    },
    {
      "commit": "49c5fc0b9e850497233e189ff9dcc71a78ebe6e7",
      "tree": "7e67e74c97f750a1f04855071f54c357d0857a5b",
      "parents": [
        "66757217a6d8e6a156d15be55bf77940e2e6194b"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue May 15 11:10:01 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue May 15 11:15:24 2012 -0700"
      },
      "message": "Avoid unnecessary copy when invoking drawBitmap(int[])\nBug #6483390\n\nChange-Id: I4d2d725ef50c9401b4bd998b6160128102b40745\n"
    },
    {
      "commit": "7b8523aaed11a3b5ee286776023233036ac0759d",
      "tree": "58c6c71a289be050dc1faa97b7eeb7e97ae9e05d",
      "parents": [
        "e4db99cf87c47730e80dc1431f07f4f1062c648e",
        "e651cc6239616a202f6e96ebc2ed93b4b8b3627c"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon May 14 20:12:09 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 14 20:12:09 2012 -0700"
      },
      "message": "Merge \"Remove all Dalvik allocations from Cavnas.drawBitmap(int[], ...)\" into jb-dev"
    },
    {
      "commit": "e651cc6239616a202f6e96ebc2ed93b4b8b3627c",
      "tree": "7aa90f8cccc91555bd652d0a88a898a026cdc333",
      "parents": [
        "99a6ddd4cd8762654a575eb4ac3d0e5431d919b8"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon May 14 19:44:40 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon May 14 19:44:40 2012 -0700"
      },
      "message": "Remove all Dalvik allocations from Cavnas.drawBitmap(int[], ...)\n\nChange-Id: Ie28538a2104d21154fdc78a56525e7403f08287d\n"
    },
    {
      "commit": "8efd02cc49602a65efba7938f81e10b8917fa659",
      "tree": "8a1537e46eddcddcf2bf9ef7d02a50dccb88f962",
      "parents": [
        "b0708669f9612778f62bd363a461a97bb198e5e3",
        "00fdfe4106922502232d747d87bedc5343b5d4be"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon May 14 19:34:12 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 14 19:34:12 2012 -0700"
      },
      "message": "am 00fdfe41: Merge \"Properly pre-cache latin glyphs Bug #6408362\" into jb-dev\n\n* commit \u002700fdfe4106922502232d747d87bedc5343b5d4be\u0027:\n  Properly pre-cache latin glyphs Bug #6408362\n"
    },
    {
      "commit": "e4db99cf87c47730e80dc1431f07f4f1062c648e",
      "tree": "de24f68470ac6de5d7ccc274a0a424e8aa632cef",
      "parents": [
        "08b544c7be67343b10a4130611318b8273d06433",
        "90729403d50488566eb4ae0e09bb1be21979a633"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon May 14 19:18:15 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 14 19:18:15 2012 -0700"
      },
      "message": "Merge \"Detect when pointer has stopped moving.\" into jb-dev"
    },
    {
      "commit": "08b544c7be67343b10a4130611318b8273d06433",
      "tree": "55964ac3c37a8fbc0cc5d9a9f888c0af2e48da1d",
      "parents": [
        "a5b2d487005e967eb43b5e077713d6f9bc819fe4",
        "dcab190bd23f632f278af448b0c85b4cadcc6692"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon May 14 19:17:48 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 14 19:17:48 2012 -0700"
      },
      "message": "Merge \"Fix pointer indexing issue in VelocityTracker.\" into jb-dev"
    },
    {
      "commit": "90729403d50488566eb4ae0e09bb1be21979a633",
      "tree": "52f3abce5411493e204de30f273bfa955c95af59",
      "parents": [
        "dcab190bd23f632f278af448b0c85b4cadcc6692"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon May 14 18:46:18 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon May 14 18:57:05 2012 -0700"
      },
      "message": "Detect when pointer has stopped moving.\n\nSome input devices do not generate ACTION_MOVE events while all\npointers have stopped, thereby lulling the VelocityTracker into\na false sense of complacency.  Before handling the following sample,\nreset the VelocityTracker state so as not to be influenced by\nearlier samples before the pointer stopped.  The velocity after\nstopping is assumed to be discontinuous.\n\nBug: 6413587\nChange-Id: I6387bc036ff141d083d3d17a89e37eeaa3188349\n"
    },
    {
      "commit": "47a4a50df09b5ab76ee06cb8845fe5a02952ec32",
      "tree": "ca04808017f0c7d61b7f886af9aecf0db109ff65",
      "parents": [
        "8ce2d78aa89e89e9a5607d8809bf6d248508a531",
        "7174a491bc1f89da65eaef3be25f3ea3f3e3bab5"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon May 14 18:52:59 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 14 18:52:59 2012 -0700"
      },
      "message": "Merge \"Improve touch event resampling.\" into jb-dev"
    },
    {
      "commit": "dcab190bd23f632f278af448b0c85b4cadcc6692",
      "tree": "a5ef26d407c976a8d6cc5504393a54636b68b834",
      "parents": [
        "7174a491bc1f89da65eaef3be25f3ea3f3e3bab5"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon May 14 18:44:17 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon May 14 18:44:17 2012 -0700"
      },
      "message": "Fix pointer indexing issue in VelocityTracker.\n\nVelocityTracker was implicitly assuming that the pointer ids in\na MotionEvent were ordered.  That is not necessarily the case\nso we need to be careful while copying the pointer coordinates out.\n\nBug: 6413587\nChange-Id: I3b23a954f893eebdf786f2a94207149b092ef036\n"
    },
    {
      "commit": "7174a491bc1f89da65eaef3be25f3ea3f3e3bab5",
      "tree": "2171b655c03b965e92a68889ff5bdfea6da10757",
      "parents": [
        "85bd0d62830a098c1bdc720dfdcf4fe1b18b657c"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon May 14 17:00:27 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon May 14 18:31:53 2012 -0700"
      },
      "message": "Improve touch event resampling.\n\nFixed a few bugs related to the id-to-index mapping for\npointer coordinates.\n\nTightened the bounds on the resampling time interval to\navoid predicting too far into the future.\n\nOnly lerp X and Y components of motion events.\n\nAlter the future to satisfy past predictions.  (Rewrite touch\nevents to conceal obvious discontinuities.)\n\nAdded a system property to control whether resampling is enabled\nfor debugging purposes.\n\nBug: 6375101\nChange-Id: I35972d63278bc4e78148053a4125ad9abeebfedb\n"
    },
    {
      "commit": "00ff47484f8137aa3e59f680ff07d2662cfb4088",
      "tree": "2514eedba6d4ecf505067b34e04a653ca2457ba7",
      "parents": [
        "dbd98bfecb34eb3f7101994a6026c7a68ea1e8a9",
        "85bd0d62830a098c1bdc720dfdcf4fe1b18b657c"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon May 14 17:12:32 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 14 17:12:32 2012 -0700"
      },
      "message": "Merge \"More VelocityTracker refactoring.\" into jb-dev"
    },
    {
      "commit": "99a6ddd4cd8762654a575eb4ac3d0e5431d919b8",
      "tree": "998293d1bb9efd6b3e0fe2dcb6c994a377c98d8b",
      "parents": [
        "9d9758ae30a59dcf594e0d26ba5d4ee153a3e44a"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon May 14 15:32:18 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon May 14 15:32:18 2012 -0700"
      },
      "message": "Forget the name of a texture after freeing\nBug #6408362\n\nFontRenderer allocates large font textures when more room is needed\nto store all the glyphs used by an application. Thse large textures\nare the first to be freed when memory needs to be reclaimed by the\nsystem. When freeing a texture, the renderer would however not set\nthe texture name to an invalid name, leading future allocations to\nbe performed on the same texture name. That name could have by then\nbe recycled by the driver and returned by a call to glGenTexture\nand used to create an entirely different texture. This would cause\nthe font renderer to point to the wrong texture, thus leading to\nthe \"corruptions.\"\n\nChange-Id: I8a1e80e5b79e8f21d1baf5320c090df4f2066cd4\n"
    },
    {
      "commit": "9d9758ae30a59dcf594e0d26ba5d4ee153a3e44a",
      "tree": "9e9699b094cb5bc74c9cd1b4249d2b35c42114bd",
      "parents": [
        "ae91c4cbc79ea910753be65e2f1d7899abcb4da2"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon May 14 15:19:58 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon May 14 15:19:58 2012 -0700"
      },
      "message": "Fix two memory leaks\nBug #6408362\n\nChange-Id: I58543938e7b64d83504e11e97b0dd21ef8ebf3b6\n"
    },
    {
      "commit": "ae91c4cbc79ea910753be65e2f1d7899abcb4da2",
      "tree": "9391544d7731f84a661da570357be4f6c99cbf8d",
      "parents": [
        "2411c3361eb2c15b09a8bfadf5c7c4a3de092ea0"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon May 14 14:00:27 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon May 14 14:06:02 2012 -0700"
      },
      "message": "Properly pre-cache latin glyphs\nBug #6408362\n\nChange-Id: Ie11644c5a9e2d87d3b851b7e619e5f04b60a7e02\n"
    },
    {
      "commit": "85bd0d62830a098c1bdc720dfdcf4fe1b18b657c",
      "tree": "7b1d7b8335caabd8d2f641e5b56a31ff58d6d2b7",
      "parents": [
        "0d607fbe546ac943de38dad33ae681b09efec6ea"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun May 13 15:30:42 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun May 13 16:10:57 2012 -0700"
      },
      "message": "More VelocityTracker refactoring.\n\nBug: 6413587\nChange-Id: Ida1152e7a34d5fe5caab5e6b5e1bc79f6c7a25e6\n"
    },
    {
      "commit": "ce8b9c33b3dec887355b1ef7359d8282a6443d33",
      "tree": "e4594a1e52f5ddf2c0cb91f8ff773b7bce6b7d11",
      "parents": [
        "5794bf2b0ece5dc480513feffcf424d86f44951b",
        "15e8439905cfae4605d101ae96a2694e69fb5017"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Sat May 12 16:26:18 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat May 12 16:26:18 2012 -0700"
      },
      "message": "am 15e84399: Merge \"Add call sites for OpenGL\\\u0027s debug label extension\" into jb-dev\n\n* commit \u002715e8439905cfae4605d101ae96a2694e69fb5017\u0027:\n  Add call sites for OpenGL\u0027s debug label extension\n"
    },
    {
      "commit": "dfa1046ecab165eb0daf5caa8475e993350f4a2b",
      "tree": "90cf67b49d82feaad76749749c38c59239bc2b08",
      "parents": [
        "2d97a70ff8bbac5ea807003d65b64e3b255e82bc"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Sat May 12 16:18:58 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Sat May 12 16:22:35 2012 -0700"
      },
      "message": "Add call sites for OpenGL\u0027s debug label extension\n\nChange-Id: I9c689127e8166cbef92c935f8aa07217ab806dda\n"
    },
    {
      "commit": "47272c932ab6157022aaefd015e5d1df9dc5bd2f",
      "tree": "4d509641b27418312e4d9499266716e4df16eb36",
      "parents": [
        "08df9eac6e7ef246afb5ccd9d7cccadcb131e7b2",
        "b12b6b5116e3d76474296b45f570693bb10d6c99"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri May 11 14:06:30 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri May 11 14:06:30 2012 -0700"
      },
      "message": "am b12b6b51: Merge \"Minor refactoring before starting on velocity tracker changes.\" into jb-dev\n\n* commit \u0027b12b6b5116e3d76474296b45f570693bb10d6c99\u0027:\n  Minor refactoring before starting on velocity tracker changes.\n"
    },
    {
      "commit": "8a90e6e3174083f274538567d851f98478fc83e9",
      "tree": "2ac01015731bac0d759c8e7b6526ffa4874a369b",
      "parents": [
        "2f0957607411b99810226ad38d59cf18718b86d0"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri May 11 12:24:35 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri May 11 12:32:56 2012 -0700"
      },
      "message": "Minor refactoring before starting on velocity tracker changes.\n\nBug: 6413587\nChange-Id: I5eba2bb57193bff78cb3740de5f87aca0b31d154\n"
    },
    {
      "commit": "d9155605abe9111b1e708cf773c4e6ecfffb59e2",
      "tree": "9e89b971581580863c572f3a64ace1ed890474da",
      "parents": [
        "aecb9b59e6c9e9a864bf4b302f978fb950df09ff",
        "aa9972943cab627db9b10e5c9c4bb80f99f8a4bd"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed May 09 01:48:04 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 09 01:48:04 2012 -0700"
      },
      "message": "am aa997294: Merge \"Revert \"Add temporary functor lifetime logging\"\" into jb-dev\n\n* commit \u0027aa9972943cab627db9b10e5c9c4bb80f99f8a4bd\u0027:\n  Revert \"Add temporary functor lifetime logging\"\n"
    },
    {
      "commit": "aa9972943cab627db9b10e5c9c4bb80f99f8a4bd",
      "tree": "66e77c9e649a8c1eabb4c907c2178e1106d9f200",
      "parents": [
        "59f3f5853cd05103b5a83f5ddbe584a5270a9c6b",
        "12d434a9be03214e9c673580a6f55128eec9b3f9"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue May 08 13:35:09 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 08 13:35:09 2012 -0700"
      },
      "message": "Merge \"Revert \"Add temporary functor lifetime logging\"\" into jb-dev"
    },
    {
      "commit": "12d434a9be03214e9c673580a6f55128eec9b3f9",
      "tree": "3020622d2ae2b33fd5c48bf43ae395d471ab8dca",
      "parents": [
        "2fe99801e81bb7c0ff846b536cbb7a12707410ed"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue May 08 13:07:13 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 08 13:07:13 2012 -0700"
      },
      "message": "Revert \"Add temporary functor lifetime logging\"\n\nbug:6445573\n\nThis reverts commit 2fe99801e81bb7c0ff846b536cbb7a12707410ed"
    },
    {
      "commit": "48fa47174268a7e94e3e39fdd02785d97be3d446",
      "tree": "67ee3bc66727afbf2f0c7cdda1a2f3a58a35ee27",
      "parents": [
        "22135e46b167ed45337ba41bd306d93e5fa67841",
        "4bbcae7eb80704d919d8115d523196798e208439"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon May 07 13:21:52 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 07 13:21:52 2012 -0700"
      },
      "message": "am 4bbcae7e: Merge \"Fix issue where scale-animating text would jump temporarily a few pixels\" into jb-dev\n\n* commit \u00274bbcae7eb80704d919d8115d523196798e208439\u0027:\n  Fix issue where scale-animating text would jump temporarily a few pixels\n"
    },
    {
      "commit": "4bbcae7eb80704d919d8115d523196798e208439",
      "tree": "c6a50af0b94836f8adec0acbe058003e8922c51c",
      "parents": [
        "d8efe42496806b483bbacea28d2456e8b2eac4fb",
        "d3efd6920e64d0207a0655640297d87d4937ee27"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon May 07 13:20:00 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 07 13:20:00 2012 -0700"
      },
      "message": "Merge \"Fix issue where scale-animating text would jump temporarily a few pixels\" into jb-dev"
    },
    {
      "commit": "d3efd6920e64d0207a0655640297d87d4937ee27",
      "tree": "22054ead2157be4ed8db2147a9507e9f94e0e86c",
      "parents": [
        "73b61d67109c9a4267b93c238bb9cbab7b1304c4"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon May 07 12:18:19 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon May 07 12:18:19 2012 -0700"
      },
      "message": "Fix issue where scale-animating text would jump temporarily a few pixels\n\nSome logic in the native matrix code would determine that a matrix was\n\u0027pureTranslate\u0027 based on the scale values of a matrix being close-enough to 1,\nwhich was within a very small epsilon. This works in general, because screen space\ncoordinates make that epsilon value irrelevant, so close-enough really is close-enough.\n\nHowever, TextView, when centering text, works in a coordinate system that is quite\nhuge, with left/right values about 500,000. These numbers multiplied times that small\nepsilon value would give a result that was significant, and would cause a miscalculation\nof up to 4-5 pixels, causing the snap that we\u0027d see for a couple of frames as the\nscale got \"close enough\" to 1.\n\nThe fix is to remove the optimization of \"close enough\". What we really need the matrix to\ndo is to identify itself as being translate-only when no scale as been set (which is the\ndefault). For the purposes of that check, it is good enough to simply check the values against\n1 directly. Similarly, the bounds-check logic needs to check against 0 and 1 directly.\n\nIssue #6452687: Glitch when changing scale of a view containing text\n\nChange-Id: I167fb45d02201fb879deea0e5a7ca95e38128e17\n"
    },
    {
      "commit": "d92c5c03d0fafe6f4c5f689eabd5024a4bbf262d",
      "tree": "861c2130ad32ec9a690b8ad13eeeece7188604ff",
      "parents": [
        "722211ed8384122e85c45c0490a6fa411d255130",
        "6c5f4cd074e1ec4fd22a807aab409586f9b6b45f"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri May 04 10:48:52 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri May 04 10:48:52 2012 -0700"
      },
      "message": "am 6c5f4cd0: Merge \"Fix hang/crash in native path code\" into jb-dev\n\n* commit \u00276c5f4cd074e1ec4fd22a807aab409586f9b6b45f\u0027:\n  Fix hang/crash in native path code\n"
    },
    {
      "commit": "d34dd71800d9a1077e58c3b7f2511c46848da417",
      "tree": "464ac603e38b3c8593cc03d244892ee3fb3502a6",
      "parents": [
        "5380cdc2e1adc8511b05e7623efb44d67be88418"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed May 02 18:50:34 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu May 03 11:14:50 2012 -0700"
      },
      "message": "Fix hang/crash in native path code\n\nAn optimization for paths is to only create a texture for the original native\nPath object, and have all copies of that object use that texture. This works in\nmost cases, but sometimes that original path object may get destroyed (when the\nSDK path object is finalized) while we are still referencing and using that object\nin the DisplayList code. This causes undefined errors such as crashes and hanging\nas we iterate through the operations of a destroyed (and garbage-filled) path object.\n\nThe fix is to use the existing ResourceCache to refcount the original path until\nwe are done with it.\n\nIssue #6414050 Analytics Dogfood App crashes reliably on Jellybean\n\nChange-Id: I5dbec5c069f7d6a1e68c13424f454976a7d188e9\n"
    },
    {
      "commit": "0e693b249d7bf63c483654682778f6172c27a8b7",
      "tree": "0427a96c59b7c8593d5d21630bfd1e25eaaaf903",
      "parents": [
        "84cf8e9ceea097f2f613151f49b6a5e908e5bb47",
        "3421f9fd6847faa0bbf3f1d8e1c8424bce52a9a4"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed May 02 17:30:36 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 02 17:30:36 2012 -0700"
      },
      "message": "am 3421f9fd: Merge \"Add temporary functor lifetime logging\" into jb-dev\n\n* commit \u00273421f9fd6847faa0bbf3f1d8e1c8424bce52a9a4\u0027:\n  Add temporary functor lifetime logging\n"
    },
    {
      "commit": "2fe99801e81bb7c0ff846b536cbb7a12707410ed",
      "tree": "3cdd741a9ce1897bbd08ee8f4a81e57cd5271cd0",
      "parents": [
        "e849230f444653e692024b4321044cb9f6188919"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed May 02 13:34:22 2012 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed May 02 16:37:24 2012 -0700"
      },
      "message": "Add temporary functor lifetime logging\n\nbug:6405861\n\nNote: revert once the above bug is verified fixed\n\nChange-Id: Iae04ec6ffa73a2711f96e128d60011bcb5864b5c\n"
    },
    {
      "commit": "c3cca66404571454ee13b341925fe45efd5036e6",
      "tree": "9e78312726afd7ea7cd995d83e4694628ac5a6ff",
      "parents": [
        "48661a65a945367cfc65cbb4b7b39dd0cec92627",
        "0632b35b6828cd4324b3d218c2e38f895e819aad"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue May 01 18:41:00 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 01 18:41:00 2012 -0700"
      },
      "message": "am 0632b35b: Merge \"Improve handling of built-in keyboard.\" into jb-dev\n\n* commit \u00270632b35b6828cd4324b3d218c2e38f895e819aad\u0027:\n  Improve handling of built-in keyboard.\n"
    },
    {
      "commit": "0632b35b6828cd4324b3d218c2e38f895e819aad",
      "tree": "671bc68d2d73cc08001ad1fda16795bd8bf6f3d4",
      "parents": [
        "5a00661bd6a1bfe82656c51d23a3ac6be99602a2",
        "daa3753a04699724d2cfe824ac1f5a266d643a05"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue May 01 18:39:00 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 01 18:39:00 2012 -0700"
      },
      "message": "Merge \"Improve handling of built-in keyboard.\" into jb-dev"
    }
  ],
  "next": "daa3753a04699724d2cfe824ac1f5a266d643a05"
}
