)]}'
{
  "log": [
    {
      "commit": "8b4072d3fb9bb49d774d97689a065204beca1752",
      "tree": "1356548f2453c28d23458375943c2b21bd91ceb4",
      "parents": [
        "e72a6e977b8436a993c427cf489f2ae05fdeface"
      ],
      "author": {
        "name": "Raph Levien",
        "email": "raph@google.com",
        "time": "Mon Jul 30 15:50:00 2012 -0700"
      },
      "committer": {
        "name": "Raph Levien",
        "email": "raph@google.com",
        "time": "Mon Jul 30 15:53:16 2012 -0700"
      },
      "message": "Fix bug 6892600 Font (character pairs) rendering issue\n\nAlignment on paint for actual glyph drawing needs to always be left,\neven when drawing centered or right aligned text. The x offset for\nalignment is applied by OpenGLRenderer::drawText (and needs to be early\nin the pipeline for quickReject to work). Similar change needed for\ndrawing drop shadow.\n\nAlso fixes bug with mispositioned underline (offset for alignment has\nalready been applied once, no need to do it again in\ndrawTextDecorations).\n\nChange-Id: Id3dcd62de5536a26b158d768889273a1492b35d6\n"
    },
    {
      "commit": "c25259519f1b74bb62a2b051b74537f073436b5c",
      "tree": "f9fe9429a2a5e2692fa3d64dd0da18fdc6dfa477",
      "parents": [
        "33806e25b176efb11a5ee8b0f038bfda8f933f0d"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jul 27 16:41:22 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jul 27 16:41:22 2012 -0700"
      },
      "message": "Rename drawGeneralText to drawText\n\nChange-Id: I5062ea5b0605fc7af27f410fafc930d10f38e926\n"
    },
    {
      "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "8bd12ea8001f72f4450e318e43c50dbc46b4869c",
      "tree": "9b4edec9a02b98392cad6871b579139bb62cc92a",
      "parents": [
        "87b16c803932e8d54889cdb60117034fdc2ef75c",
        "a44a63ac5c29b2cc57df95ec495def8cdddd9c6f"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Apr 26 14:06:41 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 26 14:06:41 2012 -0700"
      },
      "message": "Merge \"Decode common GL error codes when logging frame error status\" into jb-dev"
    },
    {
      "commit": "a44a63ac5c29b2cc57df95ec495def8cdddd9c6f",
      "tree": "476fde78dde6caa2ab5053d2ba2e2c6b344404eb",
      "parents": [
        "8f8d9fb52c65e50a32babf67ef764e173d2a5473"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Apr 26 14:05:02 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Apr 26 14:05:02 2012 -0700"
      },
      "message": "Decode common GL error codes when logging frame error status\n\nChange-Id: I38b333eea53aef20340ce48dfcb0dd30a223f7a8\n"
    },
    {
      "commit": "a75fbc3c76dfe6a1c678b66f83cef878e3f3cdf4",
      "tree": "adb91464ca79fb962644d559a48f482c5ee2d87d",
      "parents": [
        "85973212e9a63590118c2ad8937798bc1aa62687",
        "c2c9543c135ffc4e18c7db0e817112ac03e3e97a"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Apr 26 12:27:56 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 26 12:27:56 2012 -0700"
      },
      "message": "Merge \"On new content, attach functor directly\" into jb-dev"
    },
    {
      "commit": "c189ef53220059acf2adedc92ac4ac7e6a993e6b",
      "tree": "faf8d04864c0276bf4d5166cc72eb0b5fe77e68b",
      "parents": [
        "1b8f499a14a4340d3422d95c7f6fdc8c0c72b3a4"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Apr 25 20:02:53 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Apr 25 20:02:53 2012 -0700"
      },
      "message": "Ensure we start every frame in the proper GL state\nBug #6345013, #6314960\n\nChange-Id: I6985f7f233eb6a5f9223e9f4be3f323154b5dbf0\n"
    },
    {
      "commit": "c2c9543c135ffc4e18c7db0e817112ac03e3e97a",
      "tree": "59bab91aaec14c1682d7f8500d552c21f1326fe9",
      "parents": [
        "7725180c646d1976a2a2097735862a75ec47c544"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Apr 25 15:13:52 2012 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Apr 25 15:42:59 2012 -0700"
      },
      "message": "On new content, attach functor directly\n\nbug:6323847\n\ndepends on external/webkit change: https://android-git.corp.google.com/g/#/c/184314/\n\nChange-Id: Ibdf997f3ee4f5c5c1ea5a320556813f175fea93f\n"
    },
    {
      "commit": "3d745c03ace18ee59c539e1b7f1df13f22beb57d",
      "tree": "33caa47aa08df523b6f34ec38a25845418c20f10",
      "parents": [
        "ba6be8a62dcdb3ffd210cd36b9af4e3a658eac47"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Apr 23 20:36:17 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Apr 23 20:36:17 2012 -0700"
      },
      "message": "Fix the build before the bot yells at me.\n\nChange-Id: Ice7fe02b684ad662262aae3cac7a48a835ebcad5\n"
    },
    {
      "commit": "ba6be8a62dcdb3ffd210cd36b9af4e3a658eac47",
      "tree": "04f9b4d5589333970c91e51af6280a5859b78460",
      "parents": [
        "88fffb7a34313d5e94b3974d444d07bd6a4879a4"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Apr 23 18:22:09 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Apr 23 20:29:31 2012 -0700"
      },
      "message": "Prevent WebView from crashing when detached from the window\nBug #6365056\n\nWebView enqueues a functor in the hardware renderer to handle\nanimations and this functor is called at a later time by the\nhardware renderer. However, the functor was not removed from\nthe queue when WebView was removed from the window. This could\ncause the hardware renderer to attempt to execute an invalid\nfunctor and lead to a crash.\n\nChange-Id: I9d38e80f3fdc5e29d4d0cdfa1e893c251a954508\n"
    },
    {
      "commit": "1271e2cc80b01d577e9db339459ef0222bb9320d",
      "tree": "d308bb451af2ecf76715ec0389de3e95b60e6d5a",
      "parents": [
        "003952ba33f711963ad26588b2aca293deb8d50a"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri Apr 20 09:54:27 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Apr 23 11:13:17 2012 -0700"
      },
      "message": "Remove USE_DISPLAY_LIST_PROPERTIES flag\n\nThis flag was still hanging around pending any need to disable\nDisplayList properties. But things seem stable, so it\u0027s time to clean up\nand simplify the code.\n\nAt the same time, I reduced redundance in DisplayList dimensions. We\nused to call drawDisplayList() with width/height parameters that were\nused to do a clip reject. This is redundant with the DisplayList properties\nthat set the bounds of the DisplayList; the left/right and top/bottom properties\nrepresent the same width/height properties formerly used in drawDisplayList().\nThe new approach is to not pass dimensions to drawDisplayList(), but to\ninstead pull those dimensions directly from the DisplayList when needed.\n\nChange-Id: I8871beff03b1d4be95f7c6e079c31a71d31e0c56\n"
    },
    {
      "commit": "a23eed808a1ae4ec0d818c0a9238385e797fd056",
      "tree": "5255c66fa7fe89763e19e0c2b0476c6b3a52a2fe",
      "parents": [
        "b187d52f8adaad068997595118f32cb02d7a9013"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu Apr 12 15:19:04 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu Apr 12 15:20:16 2012 -0700"
      },
      "message": "Fix layer blending bug\n\nCached layers were sometimes retaining an obsolete blending\nvalue, causing artifacts where translucent objects were disappearing\ncompletely. Also, added extra tracing info for DisplayLists.\n\nIssue #6303668 Flickering views during SwipeHelper drag\n\nChange-Id: I66ce158652c4a3ed316040585b40b1744e1fad0c\n"
    },
    {
      "commit": "7b6a75872bd2df96a23453d31c2e2e7fcc373554",
      "tree": "4ef0ab122aa11dc7b039693cfce420b8be063996",
      "parents": [
        "d1f3de40ba50f0a3c4545139ea57242612f52971"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed Apr 11 14:32:02 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed Apr 11 14:32:02 2012 -0700"
      },
      "message": "Pass width/height parameters to webview\n\nWhen webview draws into an fbo layer, it needs to know the\nsize of that surface to create the rendering transform appropriately.\nThis change copies in the current viewport size to the structure that\nis passed to the webview.\n\nChange-Id: I7160b0836d00834134c799c95a439cdc045e2035\n"
    },
    {
      "commit": "65924a3e56c2e7ac863f8e25e9f9a58b9db7d513",
      "tree": "b7e3da17b6ebfb31eb9bb7e13adb8345e6f793bb",
      "parents": [
        "7c8fd157da36b68529b08b820051ce775f84a9bf"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Apr 05 17:52:11 2012 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Apr 05 17:52:11 2012 -0700"
      },
      "message": "fix functor flag parsing, tweak process delay\n\nChange-Id: I0a679cc33f92ff6fd2e33db9ad58b52622def012\n"
    },
    {
      "commit": "fda531c9e4e49cfd962d3784b3501f6a1e64dc22",
      "tree": "87adda86eddc128b9b4ec4ea917cd37323a94c07",
      "parents": [
        "30bd284cca7540be3eba2e7874a2c69e051771ce",
        "7b63142d2f4bc32beacedcc761453b8aea1f3a86"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Apr 04 11:53:28 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 04 11:53:28 2012 -0700"
      },
      "message": "Merge \"Disable AA lines vertex attrib arrays after rendering\""
    },
    {
      "commit": "7b63142d2f4bc32beacedcc761453b8aea1f3a86",
      "tree": "97efda39b916945683bb98f954438cb86c8a01e5",
      "parents": [
        "2946445b560fde5e63df17f5a2db60c8349fe532"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Apr 04 11:38:54 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Apr 04 11:38:54 2012 -0700"
      },
      "message": "Disable AA lines vertex attrib arrays after rendering\n\nChange-Id: I2f035e9d87f4f97bc1e37355c84570fd58df0374\n"
    },
    {
      "commit": "8c8c2400923bd5b0ab1f52adc4f2232dbf690d91",
      "tree": "5c45fa37ab5c4a3666bf5fb15d9b3c108009ca05",
      "parents": [
        "af92c532e7e0fc076aa8fb55c43f8964dba16fcb",
        "e0aa84b7dc087e999e20055dcc04cb6a48d5bd62"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Apr 03 19:33:06 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 03 19:33:06 2012 -0700"
      },
      "message": "Merge \"Optimize FBOs composition\""
    },
    {
      "commit": "e0aa84b7dc087e999e20055dcc04cb6a48d5bd62",
      "tree": "1aebdbebe17e17239231c890710b5b1c9c0ac4ae",
      "parents": [
        "5c88fc744db977ef26887df9605beaa409394806"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Apr 03 19:30:26 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Apr 03 19:30:26 2012 -0700"
      },
      "message": "Optimize FBOs composition\n\nChange-Id: Ifc8eada8922509373c0e4c3b2ed75b6f08d098de\n"
    },
    {
      "commit": "db8c9a6a4d9bf8c39f834b25611926caf21380f6",
      "tree": "5a1ef2e49ea05c5a28477fcf8525ca66e8e31890",
      "parents": [
        "b3fa3960a03ef553e58bf1add88029a6c072c6b6"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed Mar 21 18:54:18 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Tue Apr 03 14:02:17 2012 -0700"
      },
      "message": "Optimization of alpha with DisplayList properties\n\nSome views (such as ImageView and TextView) handle non-opaque alpha\nvalues directly. This was originally an optimization, but we can handle it faster\nin many cases without this optimization when DisplayList properties are enabled.\nBasically, if a view has non-overlapping rendering, we set the alpha value directly\non the renderer (the equivalent of setting it on the Paint object) and draw each\nprimitive with that alpha value. Doing it this way avoids re-creating DisplayLists\nwhile getting the same speedup that onSetAlpha() used to get pre-DisplayList properties.\n\nChange-Id: I0f7827f075d3b35093a882d4adbb300a1063c288\n"
    },
    {
      "commit": "e2eaf6997d429249904f842092b075f3da92c5be",
      "tree": "2187a2a450cdf80d9b1ea10eb53d7d15b09753e6",
      "parents": [
        "7eae9cb4e732934741c66f3c76a1c1f7d556af43",
        "5c88fc744db977ef26887df9605beaa409394806"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Apr 02 17:49:20 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 02 17:49:20 2012 -0700"
      },
      "message": "Merge \"Prevent crash when flushing the layers cache Bug #6258973\""
    },
    {
      "commit": "5c88fc744db977ef26887df9605beaa409394806",
      "tree": "3c782510909ace46a555514d9b08044289107406",
      "parents": [
        "6db53c34a7fe8fdc2a8775dc5a400776e2716d38"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Apr 02 17:43:05 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Apr 02 17:45:25 2012 -0700"
      },
      "message": "Prevent crash when flushing the layers cache\nBug #6258973\n\nWhen flushing the layer caches we would attempt to delete the FBOs\nassociate with layers in the cache. The FBO property was however not\nalways properly cleared when recycling layers.\n\nChange-Id: I7dedfe391d659a0849f1e1d84df17313b2c6e2b2\n"
    },
    {
      "commit": "8f3b8e32993d190a26c70c839a63d8ce4c3b16d9",
      "tree": "8e49ffa8f5405f22b8bb12be9e5607ec6a0fc00a",
      "parents": [
        "e6c966caa3aff3099e6fb00caefa10387f57b9c3"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Mar 27 16:33:45 2012 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Apr 02 15:15:07 2012 -0700"
      },
      "message": "Allow fine-grained control over functors execution\n\nAdds non-drawing execution mode\n\nChange-Id: I82f92cf1b9a3b9ff2ca6d7427c4e02b73e04e6bf\n"
    },
    {
      "commit": "b85967b9af76e1e60f7a96603e2567a6449d2e04",
      "tree": "e1df4cdf8baa0315ee6296feb238d1722dcf7370",
      "parents": [
        "b3cbd0b4d827577b3b8ad34106779c67a48701dd"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Mar 26 14:37:51 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Tue Mar 27 08:17:54 2012 -0700"
      },
      "message": "Re-enabling DisplayList properties\n\nSeveral issues came up after DisplayList properties were enabled,\nso they were disabled pending fixes. Those issues have been fixed, so\nDisplayList properties are once again being enabled by default. This\nCL both re-enables these properties (in View.java and DisplayListRenderer.h)\nand fixes the various issues that enabling them caused the first time around.\n\nRelated issues (all currently marked as Fixed, though that was simply because\nDL properties were disabled - this CL provides the real fixes now that\nDL properties are enabled by default):\nIssue #6198276 Text input broken\nIssue #6198472 Native crash at pc 00076428 in many different apps in JRM80\nIssue #6204173 Date/time picker isn\u0027t rendering all parts of UI\nIssue #6203941 All Apps overscroll effect is rendered weirdly/has flickering\nIssue #6200058 CAB rendering issue - not drawing items?\nIssue #6198578 Front camera shows black screen after taking picture.\nIssue #6232010 Layers not recreated when children change (DisplayList properties)\n\nChange-Id: I8b5f9ec342208ecb20d3e6a60d26cf7c6112ec8b\n"
    },
    {
      "commit": "6554943a1dd6854c0f4976900956e556767b49e1",
      "tree": "82d43bbb28af4feeb6c358077ac1083ca3598e7b",
      "parents": [
        "a9dd820184ee4d083bd9b2af735dcf50b78fc6cd"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Mar 26 16:45:05 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Mar 26 16:45:05 2012 -0700"
      },
      "message": "Use a status_t return type for GL functors\n\nWebView needs more fine-grained control over the behavior of the\nframework upon execution of the display lists. The new status_t\nallows WebView to requests its functor to be re-executed directly\nwithout causing a redraw of the entire hierarchy.\n\nChange-Id: I97a8141dc5c6eeb6805b6024cc1e76fce07d24cc\n"
    },
    {
      "commit": "a1cff5043d0fbd78fcf9c48e7658e56a5b0c2de3",
      "tree": "01a809b1ae5a50b8721f05c540a76570794d828c",
      "parents": [
        "bdc5afeee57a943adac3896297fab74b96b307c1"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Tue Feb 21 13:43:44 2012 -0800"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Mar 12 15:41:48 2012 -0700"
      },
      "message": "Handle view properties at the native level\n\nBasic functionality of handling View properties (transforms,\nleft/right/top/bottom, and alpha) at the native DisplayList level.\nThis logic is disabled for now (via compile-time flags in View.java and\nDisplayListRenderer.h) as we continue work on it (there is no advantage\nto the new approach until we optimize invalidation and rendering paths\nto use the new code path).\n\nChange-Id: I370c8d21fbd291be415f55515ab8dced6f6d51a3\n"
    },
    {
      "commit": "55fd2c9b2e87986b03cb58676bdf46bc6d5f1c36",
      "tree": "d992f9e11ac37f021fba69d0de76575864e4902d",
      "parents": [
        "887c2eea31a9ef2bc27186773e173e083eee7314"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Mar 09 17:36:01 2012 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Mar 09 17:37:29 2012 -0800"
      },
      "message": "Don\u0027t bind data to missing uniforms\n\nChange-Id: Ib9d1f14eb0bef04e0910baa4eaf3e49cce81c0ce\n"
    },
    {
      "commit": "2bf68f063b0077ddef6ebfe54f2ae5e063c2c229",
      "tree": "da02b6113cb29371fb1e7321ffaf567bdf0fca8a",
      "parents": [
        "d8f45c16a896d76d06550a91d78e8c5a3a57275a"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Mar 02 13:37:47 2012 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Mar 02 13:37:47 2012 -0800"
      },
      "message": "Deferred layer updates\n\nChange-Id: I83d9e564fe274db658dcee9e0cc5bbf9223ebb49\n"
    },
    {
      "commit": "dd7c8e4c68205d39109d4317dd0c9b05ed43e8e5",
      "tree": "918bc3b0d69d8be0cf2d978a2b3a6291f6884f2b",
      "parents": [
        "9777173eb6c9eb97c7921c8288ebc65e3ab3ce6f"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Mar 01 12:08:38 2012 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Mar 01 12:08:38 2012 -0800"
      },
      "message": "Small tweak to Canvas.drawPath() GL implementation\n\nChange-Id: I1d668a912996e1267bcf2127058888e489a2d9b3\n"
    },
    {
      "commit": "9777173eb6c9eb97c7921c8288ebc65e3ab3ce6f",
      "tree": "0c2749e602c75cf72a3a2d6ffd480a47f975fdd5",
      "parents": [
        "765dcf32307dbd93ce43f064c426ce157be2d2ae"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Feb 28 18:17:02 2012 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Feb 29 19:14:37 2012 -0800"
      },
      "message": "Full implementation of Canvas.drawPath()\n\nChange-Id: I23223b89770a0cd2b4762365bead9bfddb094290\n"
    },
    {
      "commit": "03d58520c3eb6bb7efb7235bfd957550533d6725",
      "tree": "97b131fd746d7857a005dc2a93d64469ebbcb7fc",
      "parents": [
        "325740fb444af8fc7fb0119b2e30ce322c2ae134"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Feb 24 17:54:07 2012 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Feb 24 17:54:07 2012 -0800"
      },
      "message": "More infrastructure for Canvas.drawTextOnPath\n\nChange-Id: Iff42b24e342650d06fa4e2fa9db6c28da820ff01\n"
    },
    {
      "commit": "325740fb444af8fc7fb0119b2e30ce322c2ae134",
      "tree": "7739e7e56c5835f8f161e8cbed17346083390176",
      "parents": [
        "34c55d30858cba1e58c38e7d8e175d25cf0b33c4"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Feb 24 16:48:34 2012 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Feb 24 16:48:34 2012 -0800"
      },
      "message": "Add hooks to implement Canvas.drawTextOnPath() in GL\n\nChange-Id: I165c9e05facf5365aa6850605688e538640c7fcc\n"
    },
    {
      "commit": "33f6beb10f98e8ba96250e284876d607055d278d",
      "tree": "215fc7d5624b6b41a018374f5d19f7dac84cf72b",
      "parents": [
        "445c83c7755fae179cf3328e89307e2775e97a5e"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Feb 16 19:24:51 2012 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Feb 17 13:10:00 2012 -0800"
      },
      "message": "Record possible clip rejects when recording display lists\n\nThis optimization allows us to quickly skip operations that lie\nentirely outside of the known bounds of a display list. Because\nof ViewGroup.setClipChildren, we must keep the operations recorded\nin the display list. setClipChildren(false) is however a very\nuncommon operation and we will therefore often benefit from this\nnew optimization.\n\nChange-Id: I0942c864e55298e6dccd9977d15adefbce3ba3ad\n"
    },
    {
      "commit": "211370fd943cf26905001b38b8b1791851b26adc",
      "tree": "03db29f15516e381b8f4553a87756c03c64d028a",
      "parents": [
        "a403a2e0f0d55a709821a6310de849176dc9b426"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Feb 01 16:10:55 2012 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Feb 01 16:10:55 2012 -0800"
      },
      "message": "Add optional metadata to initiliaze the render threat.\n\nThe render threat is likely to break your application if you initiate it.\nAs such it must be explicitely requested using the following meta-data\ntag in your manifest\u0027s application tag:\n\n\u003cmeta-data android:name\u003d\"android.graphics.renderThread\" android:value\u003d\"true\" /\u003e\n\nChange-Id: Ibf0a48af2a0d091562bf6907eac970e3d1d601c4\n"
    },
    {
      "commit": "13631f3da855f200a151e7837ed9f6b079622b58",
      "tree": "ca21323b115baaa572ba94428e58283e0b6afeef",
      "parents": [
        "275345b0871c6b269709c3d6a25d9fae03f7922a"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jan 30 17:41:55 2012 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jan 30 17:41:55 2012 -0800"
      },
      "message": "Add debug markers to OpenGLRenderer\n\nThese markers will be used to group the GL commands by View in the\nOpenGL ES debugging tool. This will help correlate individual GL\ncalls to higher level components like Views.\n\nChange-Id: I73607ba2e7224a80ac32527968261ee008f049c6\n"
    },
    {
      "commit": "530041d3191ce817832a0108514617768e43cda6",
      "tree": "8705f42f34dd66983b6782c23b6046c65d1fdfff",
      "parents": [
        "f10d69f30107f27465684630460615443783f2bc"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jan 25 18:56:29 2012 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jan 30 12:04:17 2012 -0800"
      },
      "message": "Add stencil buffer to the EGL config\n\nChange-Id: If76c0cd6127534d90f9526b75c0f8e56259c6722\n"
    },
    {
      "commit": "5ff9df658230d49e42c43586997a02d8e4dd417e",
      "tree": "4b6f2b97036285bd8e114c2f476bcfd0c812d4c9",
      "parents": [
        "36d7549181af397cfaf879f46e407e762e0e8cba"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jan 23 17:09:05 2012 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jan 23 17:09:05 2012 -0800"
      },
      "message": "Add full support for Canvas.setDrawFilter()\n\nChange-Id: I0ad35d0603c4eeda469014803be14c1dcdde918c\n"
    },
    {
      "commit": "671d6cf460531825a321edb200523d0faa7792c9",
      "tree": "7fde21ba8f48911629c3dd67a1138bd6a569c084",
      "parents": [
        "fb9ffe02609c9c4ffca64927e72bc935cfe87768"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jan 18 12:39:17 2012 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jan 18 18:00:12 2012 -0800"
      },
      "message": "Full support for Canvas.drawPosText\n\nThis also introduces a small optimization when rendering text.\n\nChange-Id: Iff620ac97bf878eaac406bccc6daa07052c93890\n"
    },
    {
      "commit": "eb9a5367e8f0e970db8509ffb2584f5376bc62ed",
      "tree": "b1edb8a663363a150fa25545f035372defbe7b70",
      "parents": [
        "d1d4bb70704e8f37d0823837eacdae21ebe0ed05"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jan 17 17:39:26 2012 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jan 17 17:39:26 2012 -0800"
      },
      "message": "First pass at implementing Canvas.drawPosText() in GL\n\nChange-Id: Ia3ac347e95d57eb86c63045156c8dbc0572b03cb\n"
    },
    {
      "commit": "3762c311729fe9f3af085c14c5c1fb471d994c03",
      "tree": "7d4caccad80ac7327c7bff96dafc857d5f4631ad",
      "parents": [
        "7a939077bd14521c7d351af98df7ed75a8ec9c15"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Fri Jan 06 19:20:56 2012 +0000"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Sun Jan 08 13:19:13 2012 +0000"
      },
      "message": "Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF)  DO NOT MERGE\n\nSee https://android-git.corp.google.com/g/#/c/157220\n\nBug: 5449033\nChange-Id: Ic9c19d30693bd56755f55906127cd6bd7126096c\n"
    },
    {
      "commit": "5baa3a62a97544669fba6d65a11c07f252e654dd",
      "tree": "109755e1595b438873d34b981e31f84ea64bd2a5",
      "parents": [
        "173ab4d61077c49f115b82eff34f97fda5a7273a"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Tue Dec 20 16:23:08 2011 +0000"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Tue Jan 03 22:38:27 2012 +0000"
      },
      "message": "Rename (IF_)LOGD(_IF) to (IF_)ALOGD(_IF)  DO NOT MERGE\n\nSee https://android-git.corp.google.com/g/156016\n\nBug: 5449033\nChange-Id: I4c4e33bb9df3e39e11cd985e193e6fbab4635298\n"
    },
    {
      "commit": "82bc7a772747fcf8a6fe7097f70bf2981429ffe9",
      "tree": "c4991ea3e2f27ab029616ab2f87ce6413b639e0d",
      "parents": [
        "b8f90a0e6eae582778bbe10b6347acbf5fc69bfb"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jan 03 14:13:39 2012 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jan 03 14:14:55 2012 -0800"
      },
      "message": "Properly restore the GL scissor after a GL draw functor\nBug #5781254\n\nChange-Id: I1dc4809563a793b6b579814951d4d73b4c34bf32\n"
    },
    {
      "commit": "8f85e80b64b89fd38cc23b129f61ec36ddde7f15",
      "tree": "bac2bd06357532f524277551c7606ad2471f7be8",
      "parents": [
        "2d4fd364843d3efc6e6ee59ccc5beb513a86d789"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Dec 14 19:23:32 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Dec 14 19:23:32 2011 -0800"
      },
      "message": "Generate even fewer GL commands\n\nChange-Id: I0f4dcacb03ef5ee7f6ebd501df98bfead5f0a7f8\n"
    },
    {
      "commit": "2d4fd364843d3efc6e6ee59ccc5beb513a86d789",
      "tree": "e6314681f94a7fcd0355a5700ecf65d9e3e0c5bb",
      "parents": [
        "ec31f83bd3af1f900d1ee9116b15f56904c66dcd"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Dec 13 22:00:19 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Dec 13 22:00:19 2011 -0800"
      },
      "message": "Reduce the number of active texture changes\n\nChange-Id: I94046bdfe20740c26c8183822e3002d692fde7c4\n"
    },
    {
      "commit": "a1d3c91afbd52c7e8b01f4a9060c5459f02ae7a5",
      "tree": "25fabe19bc7667a756c27aec7b541acee0f49def",
      "parents": [
        "e829bc0f0364e942bed01536d115a5c08d25d776"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Dec 13 14:55:06 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Dec 13 14:58:14 2011 -0800"
      },
      "message": "Further reduce the number of GL commands sent to the driver\n\nChange-Id: Id922b2a166ea4573b767c27d3195e11c70320b23\n"
    },
    {
      "commit": "15bc6437f8b4cf10dba55c7638d349e7b9563f4f",
      "tree": "18e054e26a43a757fec54387571ae2d1aadbea1c",
      "parents": [
        "5009f65c9a676b64869e638e08ec0294e20d7e6e"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Dec 13 13:11:32 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Dec 13 13:11:32 2011 -0800"
      },
      "message": "Reduce the number of GL commands generated by the UI\n\nThis optimization along with the previous one lets us render an\napplication like Gmail using only 30% of the number of GL commands\npreviously required\n\nChange-Id: Ifee63edaf495e04490b5abd5433bb9a07bc327a8\n"
    },
    {
      "commit": "f3a910b423db7ad79cf61518bdd9278c048ad0d8",
      "tree": "a0ae14d597ee14202ec6ca60cedfb446ff470379",
      "parents": [
        "d71dd367af604571c7d00ca473184a1b9240eca2"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Dec 12 20:35:21 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Dec 12 20:35:21 2011 -0800"
      },
      "message": "Optimize state changes\n\nChange-Id: Iae59bc8dfd6427d0967472462cc1994987092827\n"
    },
    {
      "commit": "d71dd367af604571c7d00ca473184a1b9240eca2",
      "tree": "c39db3ed12ca360773e3ede3462bd86ce6c4c28c",
      "parents": [
        "39d252a6632d057d5077f7eaf1b8ed7a142f3397"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Dec 12 19:03:35 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Dec 12 19:03:35 2011 -0800"
      },
      "message": "Minimize the amount of data uploaded to draw text\n\nChange-Id: I6313ac039291c9cd93aadafe3566ad9d60cab42d\n"
    },
    {
      "commit": "39d252a6632d057d5077f7eaf1b8ed7a142f3397",
      "tree": "c840b4084ba7fb8be54b0d387953cc6a15decbdd",
      "parents": [
        "f44e66fcf70aa4a354deca72dfbd3b29c29302be"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Dec 12 18:14:06 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Dec 12 18:14:06 2011 -0800"
      },
      "message": "Various OpenGL optimizations\n\nChange-Id: Ib0742c96f10f5f50e7e5148b742c31b6c232d127\n"
    },
    {
      "commit": "3e263fac8c9c0e0fb242186b514a7af8efb40961",
      "tree": "c4333a2489886c933172a5cd271c8bda0796324a",
      "parents": [
        "6752d0ab029a185a42e34e7a933b669e6ed19e89"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Dec 12 16:47:48 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Dec 12 16:47:48 2011 -0800"
      },
      "message": "Keep shaders to render properly\n\nI don\u0027t know who\u0027s to blame, SGX or Tegra2 but one of those two GPUs is not\nfollowing the OpenGL ES 2.0 spec.\n\nChange-Id: I2624e0efbc9c57d571c55c8b440a5e43f08a54f2\n"
    },
    {
      "commit": "9c4b79af221b53f602f946faa9ff317a596a0c39",
      "tree": "134a3a19b685c55dc23a08ae8929fb292333f768",
      "parents": [
        "e98ae0a050d6ce4b3e2aec7c070a87922086c256"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Nov 10 19:23:58 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Dec 06 16:37:10 2011 -0800"
      },
      "message": "Discard framebuffer rendering queues when discarding layers\nBug #5581817\n\nChange-Id: Ie30700a29059d2ea60eb7bd3f8bd20ac48a149ab\n"
    },
    {
      "commit": "8f9a9f61ab793d9387a5942b307e74324704893b",
      "tree": "999b4e35822f96473165bf861d5c7e908f19140f",
      "parents": [
        "cac5fd3e09e9dc918753d4aff624bf29a367ade3"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Dec 05 11:53:26 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Dec 05 11:53:26 2011 -0800"
      },
      "message": "Clip text correctly\nBug #5706056\n\nA newly introduced optimization relied on the display list renderer\nto properly measure text to perform fast clipping. The paint used\nto measure text needs to have AA and glyph id encoding set to return\nthe correct results. Unfortunately these properties were set by\nthe GL renderer and not by the display list renderer. This change\nsimply sets the properties in the display list renderer instead.\n\nThis change also improves the error message printed out when the\napplication attempts to use a bitmap larger than the max texture\nsize.\n\nChange-Id: I4d84e1c7d194aed9ad476f69434eaa2c8f3836a8\n"
    },
    {
      "commit": "cac5fd3e09e9dc918753d4aff624bf29a367ade3",
      "tree": "6d1db0b5ed0cf9ce616f7e8d969da81f7f606b66",
      "parents": [
        "d21b6e1fe337b35f62cf2028e9bd0637fd009a75"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Dec 01 20:08:50 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Dec 01 20:08:50 2011 -0800"
      },
      "message": "Faster text clipping\n\nChange-Id: I03a00c4261d81a416b1ad7b86ce2d432c71908b4\n"
    },
    {
      "commit": "d21b6e1fe337b35f62cf2028e9bd0637fd009a75",
      "tree": "8831d34e2dd0335c158c2aa12bee68452745c8c5",
      "parents": [
        "28147b654bba8ae2b7976e58aa7869255e436b0b"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Nov 30 20:21:23 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Nov 30 20:21:23 2011 -0800"
      },
      "message": "Optimize away unnecessary state changes\n\nChange-Id: I0f6816f9f6234853575ecee5033186ad19e76380\n"
    },
    {
      "commit": "d3ea6b40bb8f0fbc2a877963db1ab4fa0fc02b2f",
      "tree": "2f0be21ad21c6efc24597d5cadbadd5645da091c",
      "parents": [
        "589364c7179e764f4e8b9c0d53f45a1abf528aa8",
        "3892889952b0ad3fa0b095c96d8ae2ae110585e2"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Nov 28 15:47:16 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 28 15:47:16 2011 -0800"
      },
      "message": "am 38928899: am 8990cb57: Merge \"Fix flashing wifi dialog after rotating back from landscape.\" into ics-mr1\n\n* commit \u00273892889952b0ad3fa0b095c96d8ae2ae110585e2\u0027:\n  Fix flashing wifi dialog after rotating back from landscape.\n"
    },
    {
      "commit": "08837c246c9c27902c59b41c8661c2f27a4aa2bc",
      "tree": "ef44ddbbbe0ffe253fff53baa2701d8c747db570",
      "parents": [
        "425c595acb798ed9652b5a1f0e5412cbd8e3873d"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Nov 28 11:53:21 2011 -0800"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Nov 28 15:19:22 2011 -0800"
      },
      "message": "Fix flashing wifi dialog after rotating back from landscape.\n\nThere was an error in some of the OpenGL layer logic such that we would\noccasionally set up a layer for rendering and then not clean up when it was\ndone. This caused future OpenGL rendering to go into that layer instead of\nto the buffers being displayed on the screen, resulting in artifacts including\nflashes and displaying of stale content. This happened specifically when\nusing the wifi settings dialog with the InputMethod keyboard displayed,\nbut it was probably visible in other situations as well.\n\nIssue #5628248: Flickering/flashing after entering password for WiFi\n\nChange-Id: I38139f620b310f4309570fa7224552d2ee633999\n"
    },
    {
      "commit": "c28e574037b2bfc8c2ea24593299aa20ae9078f8",
      "tree": "38a75bdcc25887e4c9f2c640227fce4d2635079a",
      "parents": [
        "0ce49783083bf81cc1ea812e029fc94e1625a8fd",
        "a2fabf4a109d46f99ff7370aa05e48c1708c2838"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Nov 22 12:42:06 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Nov 22 12:42:06 2011 -0800"
      },
      "message": "am a2fabf4a: am 303a0695: Merge \"Draw in the correct FBO after invoking a GL functor Bug #5650514\" into ics-mr1\n\n* commit \u0027a2fabf4a109d46f99ff7370aa05e48c1708c2838\u0027:\n  Draw in the correct FBO after invoking a GL functor Bug #5650514\n"
    },
    {
      "commit": "421458aad764cd9d1403d2540ab979b336b02341",
      "tree": "403620dc73a58422834e39e2ba04059ea1ed1274",
      "parents": [
        "7859c1842c1f2e3c43415dfb5337a0b005bdb1c4"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Nov 21 15:14:37 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Nov 21 15:14:37 2011 -0800"
      },
      "message": "Draw in the correct FBO after invoking a GL functor\nBug #5650514\n\nAfter invoking a GL functor, libhwui restores a few OpenGL states\nincluding the current FBO. The renderer was however making the\nwrong assumption that the FBO to restore to was the base layer\ninstead of the FBO associated with the current canvas state.\n\nChange-Id: Ie565500832ebffd673f6a43b83422d6cc05470a0\n"
    },
    {
      "commit": "28a5ec9613a824d2ec15ce5e5cec77a6fcf444d5",
      "tree": "07bea7361a1fefe863809e83e585f4d0b194ec7d",
      "parents": [
        "196c215a8b89499a353cf023488a04888431a6b0",
        "2cfb873c9f0b56f2c7d694a21c968511223933af"
      ],
      "author": {
        "name": "Dave Burke",
        "email": "daveburke@google.com",
        "time": "Mon Nov 14 12:30:04 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 14 12:30:04 2011 -0800"
      },
      "message": "am 2cfb873c: am 9d66da8a: Merge \"Revert \"Discard framebuffer rendering queues when discarding layers\"\" into ics-mr1\n\n* commit \u00272cfb873c9f0b56f2c7d694a21c968511223933af\u0027:\n  Revert \"Discard framebuffer rendering queues when discarding layers\"\n"
    },
    {
      "commit": "7077506f9945b87b02bdd47ffce75a5b813c821c",
      "tree": "303448affa31375afa0a721d8d5555801ead8454",
      "parents": [
        "cde433c5f75fd4ac2ab31e9fc34654750d1e83f8"
      ],
      "author": {
        "name": "Dave Burke",
        "email": "daveburke@google.com",
        "time": "Mon Nov 14 11:39:30 2011 -0800"
      },
      "committer": {
        "name": "Dave Burke",
        "email": "daveburke@google.com",
        "time": "Mon Nov 14 11:39:30 2011 -0800"
      },
      "message": "Revert \"Discard framebuffer rendering queues when discarding layers\"\n\nThis reverts commit da96f8ac2c1c35a54f3f36e6d776cb386a251d03.\n"
    },
    {
      "commit": "3f511aaf1cb9dfa69e2f4225a5bd41bec0864cc7",
      "tree": "70f0bfe3328a8d573208abbf3a12e5a883c48f7a",
      "parents": [
        "e7a8aae0a60cdb251fb83eba2ccb35c5f00a0cdf",
        "a16ee9390e1fcea8ff7cbefd253659c37f2999a3"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Nov 14 07:49:07 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 14 07:49:07 2011 -0800"
      },
      "message": "am a16ee939: am 28587497: Merge \"Discard framebuffer rendering queues when discarding layers Bug #5581817\" into ics-mr1\n\n* commit \u0027a16ee9390e1fcea8ff7cbefd253659c37f2999a3\u0027:\n  Discard framebuffer rendering queues when discarding layers Bug #5581817\n"
    },
    {
      "commit": "da96f8ac2c1c35a54f3f36e6d776cb386a251d03",
      "tree": "646abfdfeee4346b422943924182162f4a3cdf84",
      "parents": [
        "50a66f0e9c5a85a6af4a99eb66656a69eba24572"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Nov 10 19:23:58 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Nov 10 19:23:58 2011 -0800"
      },
      "message": "Discard framebuffer rendering queues when discarding layers\nBug #5581817\n\nChange-Id: If612846ec5f7793710fc4df152791fb32c506551\n"
    },
    {
      "commit": "ef9bb3c3ea3aa08071ea0c32a505b379c322e5b5",
      "tree": "2c7e9eac12b3ac3ace044d9f1f0c8b11d59176ae",
      "parents": [
        "688ff9a7d6c42d4b26f1a72f963d09203f774c3f"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Mon Oct 17 11:06:46 2011 -0700"
      },
      "committer": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Tue Nov 01 17:16:08 2011 -0700"
      },
      "message": "Fix bug #5438102 Double Arabic harakat overlap instead of stack In TextView\n\nIMPORTANT: this change needs two patches for Harfbuzz:\n- one concerning hb_utf16_script_run_prev() which was not returning the correct \"previous\" script\n- one for the \"script_properties\" table that was missing Arabic code point ranges and declaring\nHB_Script_Inherited instead of HB_Script_Arabic\n\nThe current change is doing the following:\n- pass the correct typeface for Harbuzz shaping (depending on the script of the run)\n- offset correctly the glyphIDs returned by Harfbuzz\n\nWe need to offset the glyphsID as Harfbuzz will return local glyphIDs (meaning in the\nlocal range of the font used for shapping).\n\nWe then cannot use those glyphIDs when we are using a fallback Font (Arabic, Hebrews...)\nbecause the FontRenderer needs glyphIDs in the range of all the Fonts (including the fallbacks)\n\nChange-Id: I494897435bbc59293b02392ee2059cebcdf0e571\n"
    },
    {
      "commit": "e707859415f4c8e1c01228dfaa58fb0a690d442e",
      "tree": "880dfbda361e41286f0cda9789889a7b64c9a106",
      "parents": [
        "ee5954a8fe890a373f6e651c50ca5a2c53dac756"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Fri Oct 28 14:32:20 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Fri Oct 28 14:32:20 2011 -0700"
      },
      "message": "Load identity matrix when calling Canvas.setMatrix(null)\nBug #5446826\n\nChange-Id: I3a7817f266b17e9abe948500816d629edd9a2822\n"
    },
    {
      "commit": "2ffefd48e20d311b38c0673edadb27c1f6ad328b",
      "tree": "1adeefe99d2ca6b006ea87dcb3324949e990462e",
      "parents": [
        "e080af37544f5d7d0cc8140289ac96dd21a8742d"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Sep 08 15:33:03 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Sep 08 15:33:03 2011 -0700"
      },
      "message": "Add support for 3 new blend modes when blending with framebuffer:\n  Add\n  Multiply\n  Screen\n\nChange-Id: I92a3c2612c86613087568bf0c03cc6f92b5ded44\n"
    },
    {
      "commit": "8a3957d43bcae93fbb9f6b4b4c3de8abdb3c953c",
      "tree": "53c8d8bbf6c229316644bdc8d492a658ceb8a4e3",
      "parents": [
        "7a57009c3ab5e4a55db448596a650261e878c975"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Sep 07 17:55:15 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Sep 07 17:55:15 2011 -0700"
      },
      "message": "Add reminder in the code to fix T-junctions\n\nChange-Id: I52b112694f930e641f01fb78dc55412986023411\n"
    },
    {
      "commit": "04c9d8c2ffd028c35c750bac0a4a7b79e48059b5",
      "tree": "5f81921f30f373d4377f470e06193b242b3c8ae4",
      "parents": [
        "189887e0ae171c1b7601991442104a30e56c50ab"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Aug 25 14:01:48 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Aug 25 14:01:48 2011 -0700"
      },
      "message": "Optimize display lists\n\nRemove redundant or useless operations\n\nChange-Id: If989b4eaa9143eef4254c38b39959aeed1f2b9ab\n"
    },
    {
      "commit": "631582f7f7a3c879a5fba81f2bc082e4826758aa",
      "tree": "20cfea489e2f22d08104ea3a7391f596df43beb4",
      "parents": [
        "6816972eb69ee8b294553dac92b3c1ad5b1ca1f7"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Aug 24 11:51:35 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Aug 24 11:51:35 2011 -0700"
      },
      "message": "Enable linear filter when scaling bitmaps\nBug #5205673\n\nChange-Id: I8b0f90877df6b6c6757d35dcf6cd14e79e840b96\n"
    },
    {
      "commit": "6816972eb69ee8b294553dac92b3c1ad5b1ca1f7",
      "tree": "6174bc7bba14ffc748bff13bbebcd62f6f6a1f9a",
      "parents": [
        "91bd59dbda75d176a79d5c42cccce0a9b0391bde"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Aug 22 17:33:33 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Aug 22 17:33:33 2011 -0700"
      },
      "message": "Don\u0027t use bilinear filtering on unscaled bitmaps\nBug #5198590\n\nChange-Id: I4333d850501ac849eeeeb247e4178dd469b9de3d\n"
    },
    {
      "commit": "302a9df1d50373c82923bb84ff665dfce584fb22",
      "tree": "01a6e183b3c0f49676730a679397a31692942f8d",
      "parents": [
        "95a78c38373bb99258d83a6ab2c92825d979f200"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Aug 16 13:55:02 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Aug 16 13:55:02 2011 -0700"
      },
      "message": "Add an API to set the transform on a TextureView\u0027s surface texture.\nBug #5156689\n\nChange-Id: I635a625885c9b832a60d44ece0de7613ceb84109\n"
    },
    {
      "commit": "9d865512f1a39bac6bed612b24023213d5a1fb1d",
      "tree": "ab2c197947927eb61cbb54faa460b85cd0e7e155",
      "parents": [
        "e63a4f35c94f32dbc13533ddfb7334f9706be844"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Aug 11 17:31:42 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Aug 11 17:37:02 2011 -0700"
      },
      "message": "Remove unnecessary private API\n\nChange-Id: I2ecb367528ec0691c07153a3d163b82a6ca33fdf\n"
    },
    {
      "commit": "b50149825fae95b2918bcf67b2ddb773b9797068",
      "tree": "0a7e7b7deda72360adfabed3bc7d64eeccc7311c",
      "parents": [
        "a7ffaee29892cc38ae2327017b6670adafef711b"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jul 28 15:39:12 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jul 28 15:40:47 2011 -0700"
      },
      "message": "Correctly apply linear filter to drawBitmap(Rect, Rect)\n\nChange-Id: I1049282e1996b1020c92cb7bec46e9f28e94e967\n"
    },
    {
      "commit": "e3c26851dc315b730ea0fe5ef35bb1db81f6d675",
      "tree": "bc3fbae626f785fa38e40d4f5ab3737777d9a1ef",
      "parents": [
        "29d23ecfd8612ecd4a7b2140acd344934b73a558"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jul 25 16:36:01 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jul 25 16:36:01 2011 -0700"
      },
      "message": "Improve rendering performance on some GPUs\n\nThis change sets textures filtering to GL_NEAREST by default. GL_LINEAR\nfiltering is only used when textures are transformed with a scale or\na rotation. This helps save a couple of fps on some GPUs.\n\nChange-Id: I1efaa452c2c79905f00238e54d886a37203a2ac1\n"
    },
    {
      "commit": "f2fc460a9512500d9d5749fbaada88903d8e3b22",
      "tree": "6751bbfd9de2084b19d03e8995e52569cbd98cfb",
      "parents": [
        "566b3efb25299d2a9c8ae827522802bad965426a"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jul 19 15:20:03 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jul 19 15:20:03 2011 -0700"
      },
      "message": "Reduce the fade area to save bandwidth.\n\nChange-Id: I8ccea17fc1fb3c132329baa0acc1b3d5a140a5c6\n"
    },
    {
      "commit": "b2479153b743df9e54f7e17c7132a5ecd87fa453",
      "tree": "9c57ccc10e57d9743dfa0bbc92b41ba0a060c85b",
      "parents": [
        "cfacbeadffb5dccbf0434d9c05b19430a5237c3b"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jul 08 11:57:29 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jul 08 11:57:29 2011 -0700"
      },
      "message": "Correctly position layers.\n\nChange-Id: I1678b1c5bdab140b44e56556c50ab8329255f18a\n"
    }
  ],
  "next": "ec19b4a764d512091a780fc93ced567dfbf80914"
}
