)]}'
{
  "log": [
    {
      "commit": "f147340bd117c16a67287e2f6ca9ded651bb32b2",
      "tree": "695fc01badf4bea220a31765249f2edff90282a0",
      "parents": [
        "15cb32ed9d189526d5a98add386b28cea6bc46b7"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu Mar 24 15:55:05 2011 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu Mar 24 15:55:05 2011 -0700"
      },
      "message": "Fix bug with accelerated translucent rendering\n\nThere was a bug in the dirty region optimizations when\nusing alpha layers. This prevented translucent objects from\nbeing drawn at all in many situations.\n\nChange-Id: I23e9bce3595fbd6fe2bda15e8753a0f35baffb82\n"
    },
    {
      "commit": "ed6fcb034b44d9a6ac2fc72fee6030417811f234",
      "tree": "42a469fd5b0eabb1fd3b6a34243d57c081eee764",
      "parents": [
        "67ac217a81f34ee3d35df84b38f3456843c40706"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Mar 21 13:11:28 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Mar 21 13:11:49 2011 -0700"
      },
      "message": "Add support for drawPoint() and drawPoints().\n\nChange-Id: I01bef50c08ec3160f8d40dc060b2cf6c2e4d7639\n"
    },
    {
      "commit": "67ac217a81f34ee3d35df84b38f3456843c40706",
      "tree": "7d6bda2903af512621d1fd775d186b4f374bd591",
      "parents": [
        "a168d7372132d6c87835878794b6ed43d0d282fd"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Mar 18 17:14:27 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Mar 18 17:14:27 2011 -0700"
      },
      "message": "Fix hairline rendering.\n\nChange-Id: Ib6129b446b53678b1b955d8516418370cbae4f10\n"
    },
    {
      "commit": "a168d7372132d6c87835878794b6ed43d0d282fd",
      "tree": "08649fab2d90c649d9d518ca672ec453d5e742e9",
      "parents": [
        "b29cfbf768eab959b31410aafc0a99e20249e9d7"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Mar 18 16:50:13 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Mar 18 16:50:13 2011 -0700"
      },
      "message": "Correctly apply filters to Alpha8 bitmaps.\n\nThis change also removes unnecessary operations from display lists.\n\nChange-Id: I627f85861982731f0ee7705b48b36d9c56f22f39\n"
    },
    {
      "commit": "40667676e542a9daeafeac9904c30004e8706fd3",
      "tree": "601160198237fde4f32a152f5ee03ab1de55e7fd",
      "parents": [
        "b18a047de574f188b2c7633164f15ab3c9e40b5b"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Mar 18 14:34:03 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Mar 18 14:36:44 2011 -0700"
      },
      "message": "Optimize rect-shaped layers.\n\nThis brings back an optimization disabled in HC-MR1. This time the\ncorrect geometry is generated to avoid unnecessary blending.\n\nChange-Id: Id56404dc46bb84c75facc25c18488a690741b592\n"
    },
    {
      "commit": "08aa2cbd5e62e7ca140f78f8bea0477a19880fd9",
      "tree": "12e37d2b0cba0d0913f71374b1e5298fe41d4daf",
      "parents": [
        "4d733f520707a3b52410297b5e16bb289c40e73b"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Mar 17 11:06:57 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Thu Mar 17 12:04:04 2011 -0700"
      },
      "message": "Send WebView the current transform and whether we\u0027re drawing a layer.\nBug #3275491\n\nThese can be used by WebView to correctly apply alpha and geometric\ntransforms.\n\nChange-Id: I2ecd4376d68df886dead3c9240317de33f56828f\n"
    },
    {
      "commit": "80911b851764b073310fd0bffdf4a7db0d8fdd0b",
      "tree": "854e09626693907162ed479408abd619e280ddc4",
      "parents": [
        "fc59176241f498ad4eeb4237800c2eb5edd9efcd"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Mar 16 15:30:12 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Mar 16 15:31:33 2011 -0700"
      },
      "message": "Modify the GL renderer\u0027s functor to pass the clip to WebView\n\nChange-Id: If5efe399ca58f3000b2883e24e9f3736a2025184\n"
    },
    {
      "commit": "6217a71cd281003a376d998269d577d26a61c206",
      "tree": "3fbaaf391a24d8d4f3c009accb4b9c911a939709",
      "parents": [
        "ad37cd3b5d3de9dd0858af04fbccd102e8ff4b0e"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Mar 15 16:32:28 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Mar 15 16:32:28 2011 -0700"
      },
      "message": "Fix performance issue in Launcher\nBug #3515248\n\nThe problem is caused by the fast path when compositing layers on screen.\nThe fast path draws a single quad using glDrawArrays() whereas the general\npath draws an arbitrary mesh using glDrawElements(). It looks like there\u0027s\nan issue in the driver since glDrawArrays() is significantly slower than\nglDrawElements() for a quad (6 vertices!)\n\nThis change just gets rid of the fast path.\n\nChange-Id: Ib2361253ec67f44a988270f76c183422f12ce537\n"
    },
    {
      "commit": "ad37cd3b5d3de9dd0858af04fbccd102e8ff4b0e",
      "tree": "39023e1c98a3a727296eec906b8070ff2af279ea",
      "parents": [
        "57fccf12e1e71089aa01cbf9867314f82db4e6f9"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Mar 15 11:12:25 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Mar 15 11:12:25 2011 -0700"
      },
      "message": "Fix disappearing edges in lists/scrollviews/etc.\nBug #4093871\n\nThis bug was introduced by a change that modified the way fade areas\nare cleared. The previous change relied on Rect::intersect() to empty\nthe intersected rect when the two rects don\u0027t intersect. Unfortunately\nthis is not what intersect() does. The fix is rather simple and\nsets the layer\u0027s bounds to empty when they don\u0027t intersect with the\nclip or the viewport. This has the side effect of ignoring the layer\nwhich is the expected result.\n\nChange-Id: Icf0038b9a476c53f8eff7084136aba3033d093e6\n"
    },
    {
      "commit": "7b5b6abf852c039983eded25ebe43a70fef5a4ab",
      "tree": "918c9bd4b35e0790a9d01fdf88bafd90b952101e",
      "parents": [
        "c7fcc5076fb2988fba699a2167d19475fd58ed0b"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Mar 14 18:05:08 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Mar 14 18:05:08 2011 -0700"
      },
      "message": "Fix rendering artifact in edge fades.\nBug #4092053\n\nThe problem always existed but was made visible by partial invalidation.\nWhen saving a layer, the renderer would try to postpone glClear()\noperations until the next drawing command. This however does not work\nsince the clip might have changed. The fix is rather simple and\nsimply gets rid of this \"optimization\" (that turned out to be\nusless anyway given how View issues saveLayer() calls.)\n\nThis change also fixes an issue with gradients (color stops where\nnot properly computed when using a null stops array) and optimizes\ndisplay lists rendering (quickly rejects larger portions of the\ntree to avoid executing unnecessary code.)\n\nChange-Id: I0f5b5f6e1220d41a09cc2fa84c212b0b4afd9c46\n"
    },
    {
      "commit": "cabfcc1364eb7e4de0b15b3574fba45027b45cfc",
      "tree": "f38e237ba2009dcacb5082a99928aad379a7adc0",
      "parents": [
        "9b7146db6d9c0586b98b062fbcdb3fac6cc54d19"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Mar 07 18:06:46 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Mar 07 18:09:03 2011 -0800"
      },
      "message": "Add support for partial invalidates in WebView\nBug #3461349\n\nThis change also fixes two bugs that prevented partial invalidates\nfrom working with other views. Both bugs were in our EGL implementation:\nthey were preventing the caller from comparing the current context/surface\nwith another context/surface. This was causing HardwareRenderer to always\nredraw the entire screen.\n\nChange-Id: I33e096b304d4a0b7e6c8f92930f71d2ece9bebf5\n"
    },
    {
      "commit": "84962f2fe6ce779c583cc54b11a9de2b6a568117",
      "tree": "1732500726ef522e7f54b006fbcae8ae1bc6805d",
      "parents": [
        "40a787f89a6f4c20f2c7fce29e5bc53954305f34"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Mar 02 15:43:44 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Mar 02 15:43:44 2011 -0800"
      },
      "message": "We need to go deeper.\nBug #3431907\n\nWhen drawing layers inside a layer, the wrong target FBO would be used.\nThis would happen for instance with app widgets using a ViewFlipper\nin Launcher. The ViewFlipper uses a fade animation that triggers a\ncall to saveLayerAlpha(), which in turns creates an FBO. If this happened\nduring a scroll, the ViewFlipper\u0027s FBO would be composited back directly\ninside FBO 0, i.e. the screen. This properly initializes the snapshots\nof hardware layers to use the layer\u0027s FBO as the default compositing\ntarget instead of using 0.\n\nThis problem did not happen when drawing hardware layers inside\nhardware layers because LayerRenderer already takes care of figuring\nout the FBO it needs to composite into. The bug would occur only\nwith layers generated with saveLayer() and its saveLayerAlpha()\nvariation.\n\nLayers inside hardware layers insider layers inside hardware layers\nnow work properly.\n\nChange-Id: Ibe852301087f3d414ad8a18436eebc81f8ac66f5\n"
    },
    {
      "commit": "d643bb56fdf21973ea75984f0816b7dc024698df",
      "tree": "fa0b758dfebc484db04a7d7f052ac8c961e35b10",
      "parents": [
        "321dce646dc3c2ecfbd72a693d8d9294a6119736"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Mar 01 14:55:21 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Mar 01 14:55:21 2011 -0800"
      },
      "message": "Correctly mark layers dirty when drawing WebView.\n\nChange-Id: I7ae0c3cfa0916d8fbeaf01e8da127c621a06a0f4\n"
    },
    {
      "commit": "4368c449d7baa398e67eb4d96467f1de8862c5bb",
      "tree": "b07523d05935050b5e0f2be84eb9c2ab4096fda4",
      "parents": [
        "4b7c6fa2c0707b7e5b451b31de8a113e945c8e09",
        "cf28957c89127ccfc82d535903c776124665446a"
      ],
      "author": {
        "name": "David Li",
        "email": "davidxli@google.com",
        "time": "Fri Feb 25 12:59:14 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 25 12:59:14 2011 -0800"
      },
      "message": "Merge \"Fix mTexCoordsSlot \u003e 0 check to mTexCoordsSlot \u003e\u003d 0\""
    },
    {
      "commit": "cf28957c89127ccfc82d535903c776124665446a",
      "tree": "c18c613f9798762648cb36a5b3eb7bb9a76ccdd2",
      "parents": [
        "10d63fada8a0e67095422d60b381906ebe5b65ee"
      ],
      "author": {
        "name": "David Li",
        "email": "davidxli@google.com",
        "time": "Fri Feb 25 12:05:44 2011 -0800"
      },
      "committer": {
        "name": "David Li",
        "email": "davidxli@google.com",
        "time": "Fri Feb 25 12:05:44 2011 -0800"
      },
      "message": "Fix mTexCoordsSlot \u003e 0 check to mTexCoordsSlot \u003e\u003d 0\n\n0 Is a valid attribute location.\n\nChange-Id: Ib24335f48efd6cc59e2ab877569d7d0c95f8490a\nSigned-off-by: David Li \u003cdavidxli@google.com\u003e\n"
    },
    {
      "commit": "b37cbec6d06578a72bdd9c2caa3fd964ade71c53",
      "tree": "7b66637451a3b32894edf1882a953e45dcef573f",
      "parents": [
        "a5364ee8942cd9f0546f80f6430812ca2ee59f30"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Feb 24 17:21:29 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Feb 24 17:21:29 2011 -0800"
      },
      "message": "Correctly blend translucent GIF bitmaps.\n\nChange-Id: Ifeb2c1d97a4c6dfeb1a7b5b26f1a3153e9f8da7f\n"
    },
    {
      "commit": "6062c5912dc79704b489fc8c289b78a400ed05ee",
      "tree": "9de24cadd06e34a3f9a7de165f90fbcfc55d2307",
      "parents": [
        "2fad616237ce2db020eb6c0e03084ece291aee3c"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Tue Feb 22 13:55:04 2011 -0500"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Tue Feb 22 16:07:36 2011 -0500"
      },
      "message": "Skia Merge (revision 808)\n\nThis is a companion CL to the one found in /external/skia\n\nChange-Id: If81748545435cab20a5d8479329ab333cb973e16\n"
    },
    {
      "commit": "894df17eee708688c8a6e67941add2017239c790",
      "tree": "6bdce5bbcd62d824227c9e9f30e78db40bba5988",
      "parents": [
        "2e10374dceea41ebab13e5d2834f6767f2c23b3d"
      ],
      "author": {
        "name": "Alex Sakhartchouk",
        "email": "alexst@google.com",
        "time": "Thu Feb 17 16:45:37 2011 -0800"
      },
      "committer": {
        "name": "Alex Sakhartchouk",
        "email": "alexst@google.com",
        "time": "Thu Feb 17 16:45:37 2011 -0800"
      },
      "message": "Fixing font renderer attribute slot locations.\n\nChange-Id: I6377bb641df7d8372d873c00790189f9a190afd6\n"
    },
    {
      "commit": "b18d2d0079b4dbf5675ab79b7111b3dfb3cc1ad0",
      "tree": "36e09ec065df8e1855c6ca3d809dbd59dea935ff",
      "parents": [
        "83a7b963f0070022d98853ea1fb4fa5c81cc5e79"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Feb 10 15:52:54 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Feb 10 15:52:54 2011 -0800"
      },
      "message": "Dirty layers in the area covered by a drawBitmapMesh() call\nBug #3410827\n\nChange-Id: Ic8b4f6201af94497bba86c75819588c78debddc2\n"
    },
    {
      "commit": "c78b5d50f961ac8f696f8282979ae283cacd3574",
      "tree": "e0a11c7b9084ceb5b5ea328c42197045567205f0",
      "parents": [
        "ba27cf756db9ac80608ed61a39a66e94951ecc61"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Feb 04 14:00:42 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Feb 04 14:00:42 2011 -0800"
      },
      "message": "Properly handle dirty rectangles generated from 9-patches\nBug #3409580\n\nThis bug affects anything that draws a 9patch inside a layer, this includes\nlauncher\u0027s workspace, all of the fade animations, etc.\n\nChange-Id: Icbe8ecd158e3d5f44d07516462de68c5d1fb0a8f\n"
    },
    {
      "commit": "3a3133d876caf60ebff2176ad75c3dcf0259148d",
      "tree": "dca8a743e3e8b99eb6b7aaddba3402c82132a9c5",
      "parents": [
        "849d0a37cf2ca6c6a6c2d4d4456495e32e363120"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Feb 01 22:59:58 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Feb 01 23:01:43 2011 -0800"
      },
      "message": "Update layers based on the dirty region.\nBug #3413433\n\nThis helps Launcher when a widget updates during a scroll, or when interacting\nwith widgets on the workspace if layers are still turned on.\n\nChange-Id: Ic7a42eb34f74f4ae988039754f815e2efd1d1e4f\n"
    },
    {
      "commit": "4f09f5417b5c14fd31336dacfff86972e7885a03",
      "tree": "3f086cfaccb190108c414f598e996e5769c1d17b",
      "parents": [
        "3b1fd35c6876f7eb1d15db3095c3e57969783302"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jan 26 22:41:43 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jan 26 22:45:16 2011 -0800"
      },
      "message": "Don\u0027t draw the same triangles several times.\nBug #3388197\n\nChange-Id: Ief1dfd9447f144e9992340a173d2893e5e049129\n"
    },
    {
      "commit": "2b1847ea60650a9f68372abe860415f18b55081d",
      "tree": "1ec502a48a720f8167240c6563af32f235a9bffb",
      "parents": [
        "d30b36d3cdccc7854dedf5e3c020d2f4a8afa7b8"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jan 26 13:43:01 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jan 26 13:43:01 2011 -0800"
      },
      "message": "Remove unused API\n\nChange-Id: I1714fd82a64b752f0350ef4ef9179ce19e089c6a\n"
    },
    {
      "commit": "f90f8171e6acb56f9f87093c01fd586f2140697a",
      "tree": "4f6580623c857cfad197e2ccd48194aa591a981c",
      "parents": [
        "5c4c0d50fc1653fb6158e20d9b0af0325a80287c"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jan 25 22:53:24 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jan 25 22:53:24 2011 -0800"
      },
      "message": "Make sure the opaque bitmap is opaque. GL doesn\u0027t like being lied to.\nBug #3382992\n\nThe result still looks wrong but it works as designed, unfortunately.\n\nChange-Id: I6108e199fa336cb01faaabf6c75faa3b71c2339b\n"
    },
    {
      "commit": "8d2959ddffcdee8b0c2f6387f2e2772c6df474ae",
      "tree": "35da87fcf17b5c678324b4f0c10b6a8dfa084ed6",
      "parents": [
        "5e7f766e99c679110fa95501728bb81a8e396e58"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jan 25 11:03:00 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jan 25 11:03:00 2011 -0800"
      },
      "message": "Remove debugging log left by mistake.\n\nChange-Id: I7d5165b4b682714940cea9886abeedd3f4858057\n"
    },
    {
      "commit": "8168396d1acbcb5fdd29eeda4c30b2803d5283ae",
      "tree": "b46fbc12d304be461abb1592e0f645b6f8df350b",
      "parents": [
        "d88f54c5c4ce59585b8b9e6009836f14c00be743"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jan 24 20:40:18 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jan 24 20:40:18 2011 -0800"
      },
      "message": "Fix rendering issues with animated layers.\nBug #3385247\n\n- The layer\u0027s alpha was interpreted in the wrong range 0..255 instead of 0..1\n- 9-patches would not correctly dirty the layer region, the generated mesh\n  was incorrect\n\nChange-Id: I4916249bedcdb0794929f3796bd17854971efc88\n"
    },
    {
      "commit": "7d7b5490a0b0763e831b31bc11f17d8159b5914a",
      "tree": "7326e41a76618cba25a9757b43db779a607b9bdf",
      "parents": [
        "3dd0908a65095cb6946001ae3039ab87a47b4f33"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jan 24 16:33:45 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jan 24 18:39:56 2011 -0800"
      },
      "message": "Enable partial invalidates when rendering with OpenGL.\n\nChange-Id: Ie8be06c4776b815e8737753eb8003b4fd8936130\n"
    },
    {
      "commit": "daf98e941e140e8739458126640183b9f296a2ab",
      "tree": "e338ad021139d706004b70a38fbbe539ccfbbacf",
      "parents": [
        "57ffc00239edcfe733832771e1429fca20182207"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Jan 10 14:10:36 2011 -0800"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Jan 24 08:43:20 2011 -0800"
      },
      "message": "Use optimized display lists for all hwaccelerated rendering\n\nPreviously, display lists were used only if hardware acceleration\nwas enabled for an application (hardwareAccelerated\u003dtrue) *and* if\nsetDrawingCacheEnabled(true) was called. This change makes the framework\nuse display lists for all views in an application if hardware acceleration\nis enabled.\n\nIn addition, display list renderering has been optimized so that\nany view\u0027s recreation of its own display list (which is necessary whenever\nthe visuals of that view change) will not cause any other display list\nin its parent hierarchy to change. Instead, when there are any visual\nchanges in the hierarchy, only those views which need to have new\ndisplay list content will recreate their display lists.\n\nThis optimization works by caching display list references in each\nparent display list (so the container of some child will refer to its\nchild\u0027s display list by a reference to the child\u0027s display list). Then when\na view needs to recreate its display list, it will do so inside the same\ndisplay list object. This will cause the content to get refreshed, but not\nthe reference to that content. Then when the view hierarchy is redrawn,\nit will automatically pick up the new content from the old reference.\n\nThis optimization will not necessarily improve performance when applications\nneed to update the entire view hierarchy or redraw the entire screen, but it does\nshow significant improvements when redrawing only a portion of the screen,\nespecially when the regions that are not refreshed are complex and time-\nconsuming to redraw.\n\nChange-Id: I68d21cac6a224a05703070ec85253220cb001eb4\n"
    },
    {
      "commit": "a566b7c3aada08d37cf08096c972e3e641bed773",
      "tree": "47ad89183050d1689f72ec701cb172ea2a794aeb",
      "parents": [
        "8b2f5267f16c295f12faab810527cd6311997e34"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Sun Jan 23 16:36:11 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Sun Jan 23 16:36:11 2011 -0800"
      },
      "message": "Fix bitmap meshes to work in display lists.\n\nChange-Id: Ie226d049840942d9ad9cf58e0c19132f49d62a75\n"
    },
    {
      "commit": "8b2f5267f16c295f12faab810527cd6311997e34",
      "tree": "2f81ab177ebfadee474c44f3aa8e44cdc539665e",
      "parents": [
        "c1cd9ba335b293f11e1082447ef08e474710a05f"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Sun Jan 23 16:15:02 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Sun Jan 23 16:15:02 2011 -0800"
      },
      "message": "Add support for arcs.\n\nChange-Id: I96c057ff4eb1b464b03f132da0b85333777bee4f\n"
    },
    {
      "commit": "c1cd9ba335b293f11e1082447ef08e474710a05f",
      "tree": "3f07bf1887e0cd5602c2f1e356e3efe92d7f766b",
      "parents": [
        "f6834478b379856d3e5de92ddce7de0e6ba9fa4a"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Sun Jan 23 14:18:41 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Sun Jan 23 14:18:41 2011 -0800"
      },
      "message": "Add support for ovals and stroked rectangles.\n\nChange-Id: I1292e241386763c82e6622c8f7ed90b0f5b7bd4f\n"
    },
    {
      "commit": "f6834478b379856d3e5de92ddce7de0e6ba9fa4a",
      "tree": "ac7fb70de40ec8487112fd1bcfc3684d980ba718",
      "parents": [
        "b149f5c8d29cda2f2e46559a68467be89714f737"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Sun Jan 23 13:32:12 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Sun Jan 23 13:32:12 2011 -0800"
      },
      "message": "Always render text underline extra.\nBug #3381287\n\nChange-Id: Ibfbc9c51c8dccef216daccc37d835e5dbf143a6a\n"
    },
    {
      "commit": "c88e357d1ed9dadfc0efb3dfbe92f24460674ef5",
      "tree": "af36de378d845f6db755c13191d8118f9711fd8b",
      "parents": [
        "acf36126e4620a0cc36d4e5b1268d15777ea4361"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Sat Jan 22 00:32:12 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Sat Jan 22 00:35:23 2011 -0800"
      },
      "message": "Fix regression with hardware layers.\n\nThe renderer was checking whether the layer\u0027s region is a rect to\ndraw it with a simple quad. This test was done against the layer\u0027s\nregion structure, which was cleared after generating the mesh.\nUnfortunately Region::isRect() returns true when the region is\nempty, which was causing the renderer to always use a quad to\ndraw a mesh on screen.\n\nChange-Id: If4b874579ee0cedcb67367c9efa5c0c98ca55231\n"
    },
    {
      "commit": "5a7b466a2b4b7ced739bd5c31e022de61650545a",
      "tree": "1eef540913ce3a131019586f9187bc8e66f59caa",
      "parents": [
        "c8219299b0003793cee8049b96a3bf7530765eea"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jan 20 19:09:30 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jan 20 19:09:30 2011 -0800"
      },
      "message": "Add support for drawBitmapMesh().\n\nChange-Id: Ic77f9c534bb90dc7b9458299544bd50b8b6ae6a5\n"
    },
    {
      "commit": "ed8f8dd8cf621d6046db7e083f8a36205ed55609",
      "tree": "1f24081c2b6d92fdfbb18edf77e414939e554ede",
      "parents": [
        "818a7bbfb42061d67aae0d5c725cecd0261c9643",
        "01d58e43ede5ca98cbebdd166f9b0c545032c01b"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jan 19 21:52:49 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 19 21:52:49 2011 -0800"
      },
      "message": "Merge \"Add rounded rects and circles support to OpenGLRenderer.\" into honeycomb"
    },
    {
      "commit": "01d58e43ede5ca98cbebdd166f9b0c545032c01b",
      "tree": "6d9976c551fd6ec9f104e5a849c0ad743946af6c",
      "parents": [
        "9335f5b2fde244614184f45d29cc574d1ba8cbba"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jan 19 21:54:02 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jan 19 21:55:10 2011 -0800"
      },
      "message": "Add rounded rects and circles support to OpenGLRenderer.\n\nChange-Id: I6cedf2b495d58de7c0437096809fa9e4518a1b8c\n"
    },
    {
      "commit": "514fb18827186591d66973c2362c859b64b63556",
      "tree": "165318d5eee420728fbf92d1fda3505307ebf834",
      "parents": [
        "9335f5b2fde244614184f45d29cc574d1ba8cbba"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jan 19 14:38:29 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jan 19 14:38:29 2011 -0800"
      },
      "message": "Don\u0027t attempt to create empty layers.\nBug #3369888\n\nChange-Id: Ic17bbd1c04bbf760cb17d0eb9e6767fd6479948c\n"
    },
    {
      "commit": "42f3a4b7c35dd1ea1922356eb3611af8cde05179",
      "tree": "aac476548acfc97b0dd5785ce06008c40b98753a",
      "parents": [
        "a3311ed7a9ddd7ecb066f4731ce4bc3bd3ffd939"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jan 19 13:42:26 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jan 19 13:42:26 2011 -0800"
      },
      "message": "Make embedded hardware layers work.\nBug #3369474\n\nChange-Id: Ib6d7fb44eedda9dc2933b5e1b176f307968af91d\n"
    },
    {
      "commit": "807daf7df615b60ce6fc41355aabe3aa353cebab",
      "tree": "96eeb8bde5042241238946f787d1dbc3a416d6e6",
      "parents": [
        "d6cd572df8067c40b3e0e7e74e58cdb456b33e92"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jan 18 11:19:19 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jan 18 11:19:19 2011 -0800"
      },
      "message": "Add support for skew()\n\nChange-Id: Ia3a9a867f74fd78b61f75179e3788fdc2f0cacd0\n"
    },
    {
      "commit": "f219da5e32e85deb442468ee9a63bb28eb198557",
      "tree": "3d27f5c3a1fcce028ca12aa7dc7331f95d8ae8c0",
      "parents": [
        "a47aa87a19c733e28d9d2db1c4eb7f29d668db7b"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Sun Jan 16 12:54:25 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Sun Jan 16 12:54:25 2011 -0800"
      },
      "message": "Don\u0027t blend transparent pixels when rendering layers.\n\nWith this change, the rendere keeps track of what regions are rendered into\nand generates a mesh that matches these regions exactly. The mesh is used\nto composite the layer on screen.\n\nChange-Id: I1f342576b9134fb29caff7fb8f4c1da179fe956d\n"
    },
    {
      "commit": "1bd1bad0b4a75e633c5edbe802bf6fb4dd765161",
      "tree": "ec6c62135677673e47741385c63ba082d1326fca",
      "parents": [
        "739e34a362518020b4aed3f2dc54be2154c41406"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jan 14 20:07:20 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jan 14 20:07:20 2011 -0800"
      },
      "message": "Preapre region tracking in layers\n\nChange-Id: Ied1fa0d36c99ef4e33cb8fde7e3106a793db3a4c\n"
    },
    {
      "commit": "f5106847fc962d57c7d5c586099b4a382f3e1c3d",
      "tree": "41b3a7768b347b6bf7cd28abc8dbbf4a76943db0",
      "parents": [
        "501053a16dd8b24664856cab5551b246550d1ce5"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jan 14 11:27:12 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jan 14 11:27:12 2011 -0800"
      },
      "message": "Don\u0027t add clipped rects to layer regions.\nBug #3350208\n\nChange-Id: I9266862f1d4d57b4598852e8dfa202b5f5099cce\n"
    },
    {
      "commit": "1e3a431d07cc0a307c6441e9ae1b17d3bf42323e",
      "tree": "dc6611234da5e6a5cbdd117424daa5528f6c4d1f",
      "parents": [
        "ffac7fc5042296a459d0f5a450dbfe20917093dc"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jan 13 17:47:15 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jan 13 17:47:15 2011 -0800"
      },
      "message": "Remove debug code\n\nChange-Id: Idbc54d16adb4d86185d7196ea0297b5019d14ae4\n"
    },
    {
      "commit": "ffac7fc5042296a459d0f5a450dbfe20917093dc",
      "tree": "27a86c15331cd38d7d072e1c2b7bf8829cceeb90",
      "parents": [
        "462433ae94ff33f9591d910b662e63b821549cad"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jan 13 17:21:49 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jan 13 17:22:58 2011 -0800"
      },
      "message": "Add debug logs for display lists.\n\nChange-Id: I7bae8fd96e9eccb51f29f73e4069b4d3e6bdbdd7\n"
    },
    {
      "commit": "ada830f639591b99c3e40de22b07296c7932a33f",
      "tree": "308f469469e96ce7f99d2ec5135e7d44eb858a35",
      "parents": [
        "4f6aff386045000c2c03b903c7109cb42092b7ea"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jan 13 12:13:20 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jan 13 12:13:20 2011 -0800"
      },
      "message": "Cleanup implementation of hardware layers.\n\nThe new implementation relies on OpenGLRenderer\u0027s existing layer\ncode instead of duplicating it. The new code is much cleaner, with\nsimpler and better APIs and allows tracking of drawn regions inside\nlayers. Region tracking is not yet enabled but this will be done\nin a future CL.\n\nChange-Id: Ie826121a2227de8252c77b992a61218defea5143\n"
    },
    {
      "commit": "c038ea358aadca082198f3effc550d33135bf426",
      "tree": "20f93bc3e7e2b90a036618494b73fd9695abb1f1",
      "parents": [
        "1fc883b271707c4206ae20cc9a935d7bd4a7485e"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jan 12 15:08:47 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jan 12 15:08:47 2011 -0800"
      },
      "message": "Reenable region composition pipeline for layers\nBug #3341848\n\nIt works this time!\n\nChange-Id: I0d371d8b2c75c67d4ce5009ddb990fe5e55a0a27\n"
    },
    {
      "commit": "6c319ca1275c8db892c39b48fc54864c949f9171",
      "tree": "d89e4222487db2ccd9a6b03b0d55f8361a7d1856",
      "parents": [
        "b796889671c089fb7e2fc4498aa701d3e8e552a3"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jan 11 14:29:25 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jan 11 17:53:19 2011 -0800"
      },
      "message": "Better backend for hardware layers.\n\nWith this new backend, a hardware layer is only recreated when\nits associated view is udpated. This offers fast composition\nin GL and fast update of the layer in GL as well.\n\nChange-Id: I97c43a612f5955c6bf1c192c8ca4af10fdf1d076\n"
    },
    {
      "commit": "7230a74e9a36dfc6c4346c14e325bf07cd05b380",
      "tree": "0726a708eb545618fde761bd03ed3a1830e34c03",
      "parents": [
        "a07105b7d2a27e6d69407bf96ddb773bddb5e553"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jan 10 22:26:16 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jan 10 22:26:16 2011 -0800"
      },
      "message": "Composite layers as regions.\n\nThis change detects what area of a layer was drawn into and generates a mesh\nto match this area exactly. This can be used to avoid blending empty pixels\nwhen the layer is composited.\nThis change also adds proper layers support to lines rendering and implements\nlayers composition in a more readable way.\n\nChange-Id: I4a5588b98b19bd66891ebdc39631b193c5e31999\n"
    },
    {
      "commit": "a07105b7d2a27e6d69407bf96ddb773bddb5e553",
      "tree": "8a07cde461655b43c768a5e0f20382eed073d410",
      "parents": [
        "c71ad30f0c48ecc0fc7187fbff9aad7839fd98e6"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jan 10 21:14:18 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jan 10 21:14:18 2011 -0800"
      },
      "message": "Better logging of out of memory errors in OpenGLRenderer.\n\nChange-Id: I6b72a084340d8d4b6e0b0a100ed4314d09d441ef\n"
    },
    {
      "commit": "171c592f0b7066acf279863c8a52ddabea49d3db",
      "tree": "eebf9a8c82c6a6d9db6edbf077b9299a96ae36e4",
      "parents": [
        "f0fe6d311d183c5fcf45d5e3e995fc8f9ed12f8b"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jan 06 10:04:23 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jan 06 18:34:30 2011 -0800"
      },
      "message": "New layers API for Views.\n\nThis API can be used to back a view and its children with either a\nsoftware layer (bitmap) or hardware layer (FBO). Layers have\nvarious usages, including color filtering and performance\nimprovements during animations.\n\nChange-Id: Ifc3bea847918042730fc5a8c2d4206dd6c9420a3\n"
    },
    {
      "commit": "b146b1214ef6e4fc75d98779b22434335764cfdb",
      "tree": "8cfdf955b50ced23ea8301da9e66a7ee85f148bd",
      "parents": [
        "33a8cfb0af2e1d5983bc128007ded21bcc4f2da9"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Dec 15 17:06:45 2010 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Dec 15 17:28:30 2010 -0800"
      },
      "message": "Fix text shadow rendering issue.\n\nChange-Id: Ic9eb0d38ad684d2f2c95a4f586f865db911cb872\n"
    },
    {
      "commit": "8d0d4783a0206c5884bf0b958d181f450ba5207d",
      "tree": "ec00f07eadfcaecbdbcd705ec233601e2904ed34",
      "parents": [
        "7dddf275cd7aa3b44ebeea1e34346f0a31308649"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Dec 14 20:13:35 2010 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Dec 14 20:13:35 2010 -0800"
      },
      "message": "Cleanup OpenGLRenderer::drawLines()\n\nChange-Id: I3545a616e964335897c6e4148c431a07a2ce2a8b\n"
    },
    {
      "commit": "86568198f2c83d4ce5c4cd692eda074ba9de9ed2",
      "tree": "4f27494b5e9dba6df25e149fcce6ea13d7940b07",
      "parents": [
        "fa7952dbb86a8aff0c90418aa77dddee3802c23a"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Dec 14 15:55:39 2010 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Dec 14 16:04:12 2010 -0800"
      },
      "message": "Continue cleanup refactoring in OpenGLRenderer.\n\nMethods that still need refactoring:\n    - drawLines\n    - composeLayerRegion\n\nChange-Id: If546641adf598d49c330988803667264fda50ac2\n"
    },
    {
      "commit": "fa7952dbb86a8aff0c90418aa77dddee3802c23a",
      "tree": "dce2d4499eb2d54b46640eaa9a30264dce6e9a2d",
      "parents": [
        "5536841e5452172e7772d84ad5f4a2fc7059c9dd"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Dec 14 13:45:54 2010 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Dec 14 13:45:54 2010 -0800"
      },
      "message": "Colors are in the [0..1] range, not [0..255]\n\nThis fixes rendering in YouTube and other applications.\n\nChange-Id: Ib5f3df632cde97374113ed42f895f136b2796373\n"
    },
    {
      "commit": "5536841e5452172e7772d84ad5f4a2fc7059c9dd",
      "tree": "46b26a1b783f00a011ecbfe9651f442f512e9bd1",
      "parents": [
        "70ca14e08ae197547ac412e8a1210e1ebdfb2eb1"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Dec 14 10:59:41 2010 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Dec 14 10:59:41 2010 -0800"
      },
      "message": "OpenGLRenderer would not render colors \u003c ALPHA_THRESHOLD\nBug #3282805\n\nThis bug was introduced with a previous refactoring. This also fixes\nissues with setting the alpha when drawing bitmaps.\n\nChange-Id: Id47641d26a4536c7e540041f92243bf6db9fc96d\n"
    },
    {
      "commit": "70ca14e08ae197547ac412e8a1210e1ebdfb2eb1",
      "tree": "b5d798c0ae819e6d769b826c5d090ea4f03665a0",
      "parents": [
        "b8c0de2c2726f4e8f0029710047efe0c8e6661ed"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Dec 13 18:24:33 2010 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Dec 13 18:24:33 2010 -0800"
      },
      "message": "Refactor OpenGLRenderer to simplify OpenGL drawing code.\n\nThis is the first step of the refactoring:\n- drawColorRect\n- drawTextureMesh\n\nRemaining methods to refactor:\n- setupTextureAlpha8\n- drawPath\n- setupShadow\n- drawText\n- drawLines\n- composeLayerRegion\n\nChange-Id: I0fced6a05b6b6eee10ee7cef0c3fbdaa6cefab20\n"
    },
    {
      "commit": "32963c393a804db2cd86c24443c2f1c6eee6064b",
      "tree": "78086da15ba0893676941678e2ad5a601dff4924",
      "parents": [
        "25dc3a7dbac2f90f5144035e9c8ed99c09cc3132"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Dec 10 14:43:41 2010 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Dec 10 14:43:41 2010 -0800"
      },
      "message": "Ignore empty layers.\n\nChange-Id: Ib2f99cdab654881fe079306e27d87c5ef9535700\n"
    },
    {
      "commit": "af636ebf5feb2837683fbfe965040cb706b32ec1",
      "tree": "d0173871a1535d549cc1649daa2e1c2262671a52",
      "parents": [
        "3eb3106137aa23ceb19c5817fa43bbe545636430"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Dec 09 17:47:21 2010 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Dec 09 17:47:21 2010 -0800"
      },
      "message": "Don\u0027t set the invisible flag when saving an empty layer.\nBug #3270371\n\nChange-Id: I65e85671c2fb70d74553c91213e5e759e0ac64ee\n"
    },
    {
      "commit": "a957eea78557cb47a91d44d9e6ee641c58cf1c07",
      "tree": "bc6ee438bdb116feee2fef40ada876367544dcbb",
      "parents": [
        "1e8b5fea90e6160f8cdd101767d0a8f6842751fd"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Dec 08 18:34:42 2010 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Dec 08 19:06:58 2010 -0800"
      },
      "message": "New, better line drawing implementation.\nBug #3207544\nBug #3225875\n\nChange-Id: Ibdd1dfc64e01625d5c441f39eb0aa3ee647f6ff5\n"
    },
    {
      "commit": "8ab4079ca27e36e5c584495bcd71b573598ac021",
      "tree": "80b5dca2e6ad9cf75a7215109575a9c2d927b278",
      "parents": [
        "3a3fa1be9ab8e11edc660ecb35ae21ae0b5c8cc2"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Dec 07 13:30:10 2010 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Dec 07 13:30:10 2010 -0800"
      },
      "message": "Fix 9patch rendering\nBug #3253396\n\nSome quads were incorrectly assumed to be degenerate.\n\nChange-Id: I9155699edc3424afe9d5a131886bb9966d46b109\n"
    },
    {
      "commit": "3a3fa1be9ab8e11edc660ecb35ae21ae0b5c8cc2",
      "tree": "a89791749cd509428f2b9b82603ffcf4c64363c7",
      "parents": [
        "6620c6d413f972819fada92b574f0fa9e96d36c1"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Dec 06 18:47:50 2010 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Dec 06 18:47:50 2010 -0800"
      },
      "message": "Draw text decorations correctly.\n\nChange-Id: I237c0ca8bfe9f233e62476e80f72bcea4359398e\n"
    },
    {
      "commit": "6620c6d413f972819fada92b574f0fa9e96d36c1",
      "tree": "0804ffb39cfbdd4490f0adce93ef8cb421f2bd83",
      "parents": [
        "02047f7e88f1d78b29d6d93dc521df279398505d"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Dec 06 18:07:02 2010 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Dec 06 18:07:02 2010 -0800"
      },
      "message": "Correctly render text when coordinates are not integers.\nBug #3225632\n\nChange-Id: If09759e6e95eb2885362ab3ba088cf5aae64c7bf\n"
    },
    {
      "commit": "a5ef39a21683189e5906c9f252b997f0508e350d",
      "tree": "f87616c7a443f8e8d19d40654036653252bf65e4",
      "parents": [
        "d8591020ec5940aa9ac738593a460a8df8cd560a"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Fri Dec 03 16:48:20 2010 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Fri Dec 03 16:48:20 2010 -0800"
      },
      "message": "Don\u0027t render degenerate triangles in 9patches.\nBug #3251983\n\nChange-Id: Ib0b38a7b8111542372f4c4c106b6321c26fe4ad4\n"
    },
    {
      "commit": "6f72bebe92a4db7b5dc83f4ac5b5fd02e3b4e2cd",
      "tree": "50c8b82bd203c9c71821a4cf8b649f73d258eeae",
      "parents": [
        "730666858692ea396f5ad779654b5d86ff90b6ca"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Nov 30 12:04:14 2010 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Nov 30 12:06:39 2010 -0800"
      },
      "message": "Update 9patch structure when rendering with different divs/colors.\nBug #3221488\n\nChange-Id: Ifc9e42a991d630feadc9e8032322f37504d09d6d\n"
    },
    {
      "commit": "fe48f65922d4a3cc4aefe058cee5acec51504a20",
      "tree": "97ea23ae71dade1ef7bf783523bea9cda31dd042",
      "parents": [
        "50c5e4c36e494d092576d42cf2b406abab20510a"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Nov 11 15:36:56 2010 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Nov 11 15:36:56 2010 -0800"
      },
      "message": "Free resources only from the GL context thread.\nBug #3179882\n\nResources were freed following garbage collections on a worker thread.\nThis worker thread had no EGL context, which would cause the renderer\nto incorrectly assume that the memory was liberated.\n\nChange-Id: Ifdb51f94ddf42641e8654522787bfac532976c7c\n"
    },
    {
      "commit": "01d065795794fa56be660d6346e4830eb7e90a41",
      "tree": "bb20f3b363618cb6998aaaa26331e4459d79379c",
      "parents": [
        "a6689ddbba5d7d5e9ad7a07ae84a187497f18121"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Nov 11 12:06:27 2010 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Nov 11 12:06:27 2010 -0800"
      },
      "message": "Reduce number of GL calls when drawing with shaders.\n\nChange-Id: I27aca9f6d381d5c7e363d90a93225d185f2ff4e3\n"
    },
    {
      "commit": "e190aa69756aecfaffabdd4c6d32cb6b3220d842",
      "tree": "3e0b6400e428be77544e2670627eeec8ceb6a434",
      "parents": [
        "c15008e72ec00ca20a271c3006dac649fd07533b"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Nov 10 19:01:29 2010 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Nov 10 19:01:29 2010 -0800"
      },
      "message": "Add new runtime debug flags.\n\nChange-Id: I07955de166a89b5053c6c13f250bb3e2936ca86e\n"
    },
    {
      "commit": "c15008e72ec00ca20a271c3006dac649fd07533b",
      "tree": "a518cebc2b12966bde88c0a3a80ee19b989d17bb",
      "parents": [
        "21c1114dad3a778992479ec8ef514e412a7b2646"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Nov 10 11:59:15 2010 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Nov 10 11:59:15 2010 -0800"
      },
      "message": "Move all debug flags in a single place.\n\nThis change also adds a new memory usage flag. When turned on, the\nfollowing is printed after every frame:\n\nD/OpenGLRenderer( 3723): Current memory usage / total memory usage (bytes):\nD/OpenGLRenderer( 3723):   TextureCache          3766680 / 20971520\nD/OpenGLRenderer( 3723):   LayerCache            3538944 /  8388608\nD/OpenGLRenderer( 3723):   GradientCache          135168 /   524288\nD/OpenGLRenderer( 3723):   PathCache               41180 /  4194304\nD/OpenGLRenderer( 3723):   TextDropShadowCache         0 /  2097152\nD/OpenGLRenderer( 3723):   FontRenderer 0         262144 /   262144\nD/OpenGLRenderer( 3723):   FontRenderer 1         262144 /   262144\nD/OpenGLRenderer( 3723):   FontRenderer 2         262144 /   262144\nD/OpenGLRenderer( 3723): Other:\nD/OpenGLRenderer( 3723):   FboCache                    2 /       12\nD/OpenGLRenderer( 3723):   PatchCache                 31 /      512\nD/OpenGLRenderer( 3723): Total memory usage:\nD/OpenGLRenderer( 3723):   8268404 bytes, 7.89 MB\n\nThis should help tracking possibe memory issues.\n\nChange-Id: I83f483ca1d2dbef904829bce368e33fe5503e8d6\n"
    },
    {
      "commit": "0d200833fdc53f9796698f97c18cefc4a1b82df2",
      "tree": "bef2739584bf97f330eda7c691c011e420cee8e9",
      "parents": [
        "c55fa1b999068fc7f242b88a87270b249ab366eb"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri Nov 05 15:36:16 2010 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Tue Nov 09 06:38:56 2010 -0800"
      },
      "message": "Fix GL rendering of translucent surfaces\n\nGL renderer was not initializing scissor correctly for translucent\nsurfaces, resulting in invisible window backgrounds in some cases\nlike fading popup windows\n\nChange-Id: I87a964986e1ba2c4f59708c8892c5fa71903e6fc\n"
    },
    {
      "commit": "0fe478ea04720a57ef3919dbc23711bc7eba517f",
      "tree": "d498b2893e0890f0bb9dccf44dc392004d68e844",
      "parents": [
        "cce1d2a60bc1ef10ec6beb338ec3d4cf94486c47"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Nov 08 12:08:41 2010 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Nov 08 12:15:28 2010 -0800"
      },
      "message": "Support nested display lists.\n\nChange-Id: I3815a2832fc0f722c668ba8f51c5f177edb77c94\n"
    },
    {
      "commit": "7f78b0c3ae6222b39f6240524390de9764f21764",
      "tree": "63f1de17ded22cd96c91bb6463b80f85fe1fd93b",
      "parents": [
        "d8d7b555cb45bf55f74e89a7cf9312e400f7cd1c"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Nov 04 14:36:26 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Nov 04 14:36:26 2010 -0700"
      },
      "message": "Lines would not set the scissor before drawing.\n\nLines were not drawing in Calendar because they were getting clipped\nby the previous clip rectangle. This change simply updates the scissor\nas needed. This change also reduces the number of state changes in GL.\n\nChange-Id: I41ab13dca3a33cfa6d1a44371c48852ab418b04e\n"
    },
    {
      "commit": "e45362cad94c014d8b3765cb102db0f8c0d92500",
      "tree": "184c8a507c06f077668e294203ae370823fcb5e5",
      "parents": [
        "5ec9924d24495822b589f1a17996655d66273b30"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Nov 03 19:58:32 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Nov 03 19:58:32 2010 -0700"
      },
      "message": "Fix rendering bug with saveLayerAlpha/drawColor.\n\ndrawColor() was not calling quickReject because it fills the clip region\nand thus always passes the test. However, quickReject also checks whether\nthe current layer is invisible. drawColor() now performs the same check\nand avoid drawing inside an invisible layer.\n\nChange-Id: I63d0e9a8a9c0fba774f0f5c3870d58e6ed96fbd1\n"
    },
    {
      "commit": "5ec9924d24495822b589f1a17996655d66273b30",
      "tree": "60a92b5ceb25b980be02cef82ef56ecf55cb7f04",
      "parents": [
        "98444a944c9126898bc4c370f831a79bb3b30bd8"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Nov 03 16:19:08 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Nov 03 16:19:08 2010 -0700"
      },
      "message": "Fix rendering issue with layers.\n\nChange-Id: I1d511ab2707000762a942d32c300a9944ab38603\n"
    },
    {
      "commit": "5b3b35296e8b2c8d3f07d32bb645d5414db41a1d",
      "tree": "bad2ebdbfeb8a3a0be1591d5a357a8280df7d1d2",
      "parents": [
        "2444ddb3d9b59ec45ba50858fcbff639e59b93b1"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Oct 27 18:57:51 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Nov 02 16:17:23 2010 -0700"
      },
      "message": "Optimize FBO drawing with regions.\nThis optimization is currently disabled until Launcher is\nmodified to take advantage of it. The optimization can be\nenabled by turning on RENDER_LAYERS_AS_REGIONS in the\nOpenGLRenderer.h file.\n\nChange-Id: I2fdf59d0f4dc690a3d7f712173ab8db3848b27b1\n"
    },
    {
      "commit": "746b7401ceb86b5f2805f8c0d3b39ac739152015",
      "tree": "757875a6d574e07572088b7c1eed80125299bdff",
      "parents": [
        "0d9275e565551eed57297627188aa39f3897a50b"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Oct 26 16:27:31 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Oct 26 16:27:31 2010 -0700"
      },
      "message": "Remove unnecessary GL calls.\n\nThis change batches calls to glScissor() and removes extra GL\nqueries and glActiveTexture() calls.\n\nChange-Id: I1cd079d314f87cd9c088f95c8d4909c2f860f6aa\n"
    },
    {
      "commit": "3e3ba155fc0ef7a7f40f06762240d9ba22f62b19",
      "tree": "ceaa261fca5f5be2a171e25ecef3376fc24021bd",
      "parents": [
        "8164c2d338781c3a3c4a443941070dca5d88f2a7"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Oct 25 18:33:16 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Oct 25 18:33:16 2010 -0700"
      },
      "message": "Don\u0027t change texture unit when not needed.\n\nChange-Id: Ifa84426d234f2122402cb13533cb5964f1ce95ec\n"
    },
    {
      "commit": "8164c2d338781c3a3c4a443941070dca5d88f2a7",
      "tree": "22f218c64471d29d1cfbc9a55cb8bb530cf78714",
      "parents": [
        "c361da845a205ac35e724c0ca436744d483de7aa"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Oct 25 18:03:28 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Oct 25 18:03:28 2010 -0700"
      },
      "message": "Don\u0027t change textures wrap modes on every draw.\n\nChange-Id: If6d3f313778cc7f3e803a063338539c8b3e165e3\n"
    },
    {
      "commit": "ae88e5e8e9cb6c9539314c4360c5b20f8ec1fefc",
      "tree": "451798ed04880220134161c51b1f417fb8450797",
      "parents": [
        "58ae6db4ff8a9d0910e1183ee8be9a038a2712a6"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Fri Oct 22 17:49:18 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Fri Oct 22 17:49:18 2010 -0700"
      },
      "message": "Fix rendering issue with layers.\n\nA change was made earlier in the renderer to not snap the current clip rect\non every clip operation. The clip rect must not be snapped to pixel boundaries\nbefore being used for pixel precision operations. Some operations were doing\nthis correctly, others were not. For instance, a layer was always created by\nrounding to the correct pixels, but composing a layer was done with a non\nrounded clip, thus resulting in slightly odd behaviors.\n\nChange-Id: I31c2cf0a343450470bcd449c3f13fe37648b9c7c\n"
    },
    {
      "commit": "58ae6db4ff8a9d0910e1183ee8be9a038a2712a6",
      "tree": "3c3186965c778b0019af3bb1cc58f8ccc5f1af6a",
      "parents": [
        "b0be86e08ea124c525eebc41f256a96ee4fc10cc"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Fri Oct 22 11:16:37 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Fri Oct 22 11:16:37 2010 -0700"
      },
      "message": "Don\u0027t use two different variables to refer to mSnapshot.\n\nChange-Id: Ie4a0616d2fe0b040ac14b734a9ddf77bf1f35b0c\n"
    },
    {
      "commit": "ae517591d96be39f5f18a1716c856ade13a8bcc7",
      "tree": "05fbd13d7ea9d793455da764d6852e12429dd8dd",
      "parents": [
        "477d9b2ddc9515e0df088c448ddfb6f9145edce1"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Fri Oct 22 10:40:27 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Fri Oct 22 10:40:27 2010 -0700"
      },
      "message": "Don\u0027t perform glCopyTextImage with coordinates outside the buffer.\n\nBug #3122179\n\nChange-Id: I91ed397e9e553a8eeb69d82d0c5b1e49a3cdd5ff\n"
    },
    {
      "commit": "5c13d89c1332fcc499379b9064b891187b75ca32",
      "tree": "439222e6d58a765a84133345ac6ef7cb13f1c04e",
      "parents": [
        "a376d030a2075909219926d622b71016418d7dcd"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri Oct 08 08:37:55 2010 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu Oct 21 12:02:42 2010 -0700"
      },
      "message": "Optimizing display lists by referencing pointers to resources instead of copying them\n\nChange-Id: I81ad3551d74aa1e5bb64d69e33d2eb29a6c1eb6a\n"
    },
    {
      "commit": "50c0f093d942a59d4e01b2c76d26c0e9d6ed796c",
      "tree": "e3ba1ae68c0694bfcfca0c5c538b034ac86ca8b4",
      "parents": [
        "29d9849fd7b8b49c26fe7e7bae0ba01e907dc1b7"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Oct 19 11:42:22 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Oct 19 11:42:22 2010 -0700"
      },
      "message": "Solve rendering issue with embedded WebViews.\nBug #3094017\n\nThe blending mode was not appropriately set after WebView released the\ncontext.\n\nChange-Id: Ib36d48e82c12f6d131dd5a0bcde9106925b8da63\n"
    },
    {
      "commit": "03750a067e818ca7fbd0f590e2ff6a8fded21e6c",
      "tree": "e41ffdc1b72f66c13284df27877703111f048170",
      "parents": [
        "65202242defad10eb33a3b3277af49eb238a3f33"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Oct 18 14:06:08 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Oct 18 14:49:19 2010 -0700"
      },
      "message": "Use VBOs to render most geometries.\n\nChange-Id: I4360dc4fe5693ab425450c107282b2c22db4dca7\n"
    },
    {
      "commit": "054dc1840941665e32036f9523df51720ad069c8",
      "tree": "1f89288c08d67739f4f92d5cd04996d896a6d1e6",
      "parents": [
        "9d13fe25f4f10b25776b1dc5c858f9ebb0b28b30"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Oct 15 17:55:25 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Oct 15 17:55:25 2010 -0700"
      },
      "message": "Don\u0027t draw entirely transparent 9patch meshes.\n\nChange-Id: If3e62e18b8e0dbde8a22f8ede2889b86500a4dc2\n"
    },
    {
      "commit": "9d13fe25f4f10b25776b1dc5c858f9ebb0b28b30",
      "tree": "9ea9d664453cffdd499fad587693e5dcf12e4c88",
      "parents": [
        "e5ebcb0107a939395e03592fd44c746cd09e311d"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Oct 15 16:06:03 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Oct 15 16:06:03 2010 -0700"
      },
      "message": "Fix text rendering artifact.\n\nChange-Id: I50f47207846e4208d363dde4e8f5f1a0f23d2d75\n"
    },
    {
      "commit": "e5ebcb0107a939395e03592fd44c746cd09e311d",
      "tree": "1ee2cc9fb92d3de28f40658df2a7df1da79f64f8",
      "parents": [
        "c65217e4ec3e6c80834988ec3bc66a90778ee4b0"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Oct 15 13:57:28 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Oct 15 13:57:28 2010 -0700"
      },
      "message": "Fix clipping issue in StackView.\n\nChange-Id: I7ec28f25c3993a2bd7ef6399ba1923839d239905\n"
    },
    {
      "commit": "d2a1ff003b9b1212c9ab4b5f679b5b097720a359",
      "tree": "8ed98a94f0799861c4ebcb1799e7263fc8024000",
      "parents": [
        "ba7aad209f2b130a953467abd8cb41357fc20410"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Oct 14 14:46:44 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Oct 14 14:49:34 2010 -0700"
      },
      "message": "Fix text rendering issue.\n\nThe local clip rect could be off by one pixel when a 3D transform\nwas applied to a text primitive. This would cause small rendering\nglitches in Launcher in particular.\n\nChange-Id: I1254f6a5838c26810cbe969b096679d40b8dd504\n"
    },
    {
      "commit": "93d2361c6d294c390cb5c4a13bd1b88dcd465fd7",
      "tree": "654b730c9228af7f6947f5f7db231057235b9a34",
      "parents": [
        "909cbaf8f92d69f507bbdba9e5aa960d1e6c7a1f"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Oct 13 18:26:36 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Oct 13 18:26:36 2010 -0700"
      },
      "message": "Fix layer rendering glitch.\n\nChange-Id: If2f987fe5526fc88743ca3e91edde4f8232ff658\n"
    },
    {
      "commit": "909cbaf8f92d69f507bbdba9e5aa960d1e6c7a1f",
      "tree": "e0b26f1015f875c9490bb1cfeceb76d3c40c1fd0",
      "parents": [
        "5d794412e3e429e47404395badcd11b0b8639e8b"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Oct 13 18:19:48 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Oct 13 18:19:48 2010 -0700"
      },
      "message": "Don\u0027t draw TextView\u0027s alpha layers when not needed.\n\nChange-Id: Iedf42cbc62d727f18500c78fcccf2d081a761fec\n"
    },
    {
      "commit": "99bcdc52dcb365ed7d8cfa13540fb33fbcbbac9d",
      "tree": "6aa73d73948d851ea9b61c36e74a275c4092f5ad",
      "parents": [
        "bbf68c6ad2cc3dd338f93779d60c5821e730a263"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Oct 13 15:17:00 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Oct 13 17:24:41 2010 -0700"
      },
      "message": "Return identity matrix when rendering in an FBO.\n\nChange-Id: I57438e745b30c8cfe16c269f3cafcd719049d705\n"
    },
    {
      "commit": "41030da16856c8869e1e51d4a0405432fa96614e",
      "tree": "e40b599f2961989c444e5ca1bb92536eef76b7ba",
      "parents": [
        "2b67ce7213501d4377e46f67656993914eceb423"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Oct 13 13:40:37 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Oct 13 13:40:37 2010 -0700"
      },
      "message": "Add a getNativeMatrix() API.\n\nThis API can be used by WebView to apply the appropriate transform\non its rendering.\n\nChange-Id: I79aa39a29805f462fb08226370328815e74bdc52\n"
    },
    {
      "commit": "eb07af687319a0f52c219c3c0c1b73162fce9d04",
      "tree": "a27dad9873cd7cab7217ff45fd5c26a4a8885ff0",
      "parents": [
        "a0a312225ad56b858f37c2a428e9b8a7140907c4"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Oct 12 18:40:36 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Oct 12 18:40:36 2010 -0700"
      },
      "message": "Optimize layer clears.\n\nDon\u0027t clear the entire texture when we use textures that are bigger\nthan the layer itself. This will save time during the glClear() calls.\n\nChange-Id: I06f3259ba62affb3708ba69ea41418832c7e1a65\n"
    },
    {
      "commit": "e91080581f467d55913a8c5ab53dedc2dab2e5b6",
      "tree": "ef4bfc31fac147b8a36b3c3d6593726106825032",
      "parents": [
        "1f114a55b5eaaa81bd302c9ad851362512b61e2f"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Oct 12 18:15:42 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Oct 12 18:15:42 2010 -0700"
      },
      "message": "Tweak layers caching for better performance in Launcher.\n\nChange-Id: Ia6e67699d98f69c8a93385b3ecbdd814c7b16921\n"
    },
    {
      "commit": "4bb942083a0d4db746adf95349108dd8ef842e32",
      "tree": "7707bc9551f3db4ad0561c30c73293e4a0edfbf2",
      "parents": [
        "5a3b8e698e276839e502dcf41894b56ad59695c3"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Oct 12 15:59:26 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Oct 12 15:59:26 2010 -0700"
      },
      "message": "Optimize 9patch rendering.\n\nThis change detects empty quads in 9patches and removes them from\nthe mesh to avoid unnecessary blending.\n\nChange-Id: I4500566fb4cb6845d64dcb59b522c0be7a0ec704\n"
    },
    {
      "commit": "c00972bb162779e52d1b0d8f662a9f6033bf9182",
      "tree": "8ccf4a198e231998bc3c2eb75d3fc4d17cb0b2b3",
      "parents": [
        "425c305a535d8c5a9082685523ba46d06199e543"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Oct 12 11:31:07 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Oct 12 11:31:07 2010 -0700"
      },
      "message": "Don\u0027t recreate a new texture every time we draw a layer.\n\nChange-Id: I3c28aff5acffc7c6f1ac74805869725426c62d28\n"
    },
    {
      "commit": "dbc26d2ba13f80a7590c57de2d80530d96832969",
      "tree": "1883c28948243ec8906c594009c4a4208b132546",
      "parents": [
        "707b2f78ccaa09965d7e030fda3a883ce9b75ea8"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Oct 11 17:58:29 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Oct 11 17:58:29 2010 -0700"
      },
      "message": "Don\u0027t draw fully transparent views/primitives.\n\nChange-Id: Icd7d8ef1f57b51a24faf32f7004125e6300d4fdc\n"
    },
    {
      "commit": "707b2f78ccaa09965d7e030fda3a883ce9b75ea8",
      "tree": "0503326cbed34fe219dc32508456b5ce9bd03340",
      "parents": [
        "7537f856f9076a84db04d8de447f6527b67166fd"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Oct 11 16:34:59 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Oct 11 16:34:59 2010 -0700"
      },
      "message": "Optimize GLSL shaders.\n\nChange-Id: I9a5e01bced63d8da0c61330a543a2b805388a59d\n"
    },
    {
      "commit": "2728f961614a385df1f056fc24803a9f65c90fab",
      "tree": "c09ff5c42f949f4b9e76e197108cc5a506113ca3",
      "parents": [
        "8550c4c7b5952b7a4e1e0ede95c9492d03099a13"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Oct 08 18:36:15 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Oct 08 18:36:57 2010 -0700"
      },
      "message": "Don\u0027t update 9patches on every frame.\n\nChange-Id: I7ffb2365f83e0453e7d0a0cdcb3fc9308b305238\n"
    },
    {
      "commit": "8550c4c7b5952b7a4e1e0ede95c9492d03099a13",
      "tree": "3f2bccdd02bcf390eac98749475aad4ead1da1e4",
      "parents": [
        "ecd31740a00f8fb07090209cd979257c38cbcc92"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Oct 08 15:49:53 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Oct 08 15:49:53 2010 -0700"
      },
      "message": "Better cache for layers, reduce memory usage and increase framerate.\n\nChange-Id: I5ff864a361db4791bd5ff6be716f7ce692ef572d\n"
    },
    {
      "commit": "6b7bd24659fb175fe1f0e97c86c18969918b496a",
      "tree": "7f72a7811783f52871bdb49c702ef1247ce9d3a2",
      "parents": [
        "e3095e0c1e2a4a4f34f741aa386eae56536ca5aa"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Oct 06 19:49:23 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Oct 06 19:49:23 2010 -0700"
      },
      "message": "Don\u0027t clear the framebuffer when not needed."
    }
  ],
  "next": "eb99356a0548684a501766e6a524529ab93304c8"
}
