)]}'
{
  "log": [
    {
      "commit": "2055abaa0a590c35e27e1ae2e7d7cfccdfb98b59",
      "tree": "1e302d08b6aa3714048a4d8435aa44f155c998c9",
      "parents": [
        "f25febf01453733e8bdd1ac241ecd9d3bcbef475"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jan 18 16:42:51 2013 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jan 18 16:42:51 2013 -0800"
      },
      "message": "Allow layers with a stencil buffer to be resized on the fly\nBug #7146141\n\nThis change moves the resizeLayer() from LayerCache (where it should\nnever have been anyway) to Layer. This makes a little more sense.\n\nChange-Id: I8b2f9c19c558e738405a58b9e71ec5799fc6be88\n"
    },
    {
      "commit": "5341cead27070656458750a789ba211a505b57b5",
      "tree": "4887e2e3289373e24a6496427df4597b5b28f458",
      "parents": [
        "16ad17705eb22bb02a551cddd68f65b8addaa4d6"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jan 09 14:15:58 2013 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jan 09 14:15:58 2013 -0800"
      },
      "message": "Cleanup 9patch mesh matching code\nBug #7970966\n\nThe bug described in #7970966 should normally never happen but just in\ncase, change the detection code to be more robust.\n\nChange-Id: I7040a6087590e34abe8803cb8f83f051d77f3944\n"
    },
    {
      "commit": "886b275e529e44a59c54b933453d9bc902973178",
      "tree": "33ed0717b43683ba9f8a825c7012739a2146e943",
      "parents": [
        "5913148104f0b233d861fab2873befc865bf57c0"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jan 04 12:26:18 2013 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jan 04 15:15:16 2013 -0800"
      },
      "message": "Properly support ALPHA_8 bitmaps in all drawBitmap() methods\n\nChange-Id: I869993c59e0a0d76f369c09acbae711753908f48\n"
    },
    {
      "commit": "713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5",
      "tree": "d2cb42c7e05fff03274f9acdbdee80d848a86da2",
      "parents": [
        "d43b22da291fd08017fac627561091a633c85807"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Oct 16 18:44:09 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Oct 16 18:44:09 2012 -0700"
      },
      "message": "Add API to enable mipmaps on Bitmap\nBug #7353771\n\nThis API can be used when scaling large images down to a small size\nto get nicer looking results.\n\nChange-Id: If09087eed36077eee5355f6047a3ca67747d7d9e\n"
    },
    {
      "commit": "2b7028eabac80cec170572bc0e945a1d4224e595",
      "tree": "116f24c751ece653a5c1e08aa9c142ad1e142b25",
      "parents": [
        "4be07ade3658da9345067780520ddbd266900ee4"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Sep 19 17:25:38 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Sep 19 21:10:09 2012 -0700"
      },
      "message": "Add support for QCOM_tiled_rendering\nBug #7186819\n\nThis optional OpenGL extension can be used by tiled renderers to optimize\ncopies from main memory to tiles memory.\n\nChange-Id: Id4a5d64e61ad17f50e773e8104b9bf584bb65077\n"
    },
    {
      "commit": "ba64974141bb04d35759c7a8f1741d23c172f9a5",
      "tree": "525f25da1cd84b32201ef32587bf971fc97f8b4e",
      "parents": [
        "041c36686dd986834990d85f7f93fe2ee4e5fca5"
      ],
      "author": {
        "name": "Michael Jurka",
        "email": "mikejurka@google.com",
        "time": "Thu Jun 28 19:12:58 2012 -0700"
      },
      "committer": {
        "name": "Michael Jurka",
        "email": "mikejurka@google.com",
        "time": "Thu Jun 28 19:15:20 2012 -0700"
      },
      "message": "Removing setChildrenLayersEnabled\n\nChange-Id: I88d8228eadb59160648f2c4e131fcd85945f2109\n"
    },
    {
      "commit": "810a8676df1d504da17bad80c7bd6638bdd97711",
      "tree": "3ddfda87c49bd6f19d436e9677d9daa1ea459037",
      "parents": [
        "73b61d67109c9a4267b93c238bb9cbab7b1304c4"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Tue May 01 15:57:24 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed May 02 10:44:33 2012 -0700"
      },
      "message": "Corrects invalidation logic for layered views\n\nA bug in the invalidation logic meant that changes to a view\nwould not cause parents in the view hiearchy that were set to have\na layer (e.g., View.LAYER_TYPE_HARDWARE) to get invalidated properly.\nSo even though the child view was all set to recreate its display list\naccording to the property change, the layer in the tree above it would stay\nas-is, meaning that the change would not show up on the screen.\n\nIssue #5887530 DropTarget text does not change color with the icon\n\nChange-Id: Ie6eac4f406d172cb437822d9fe76340ab2afaf1c\n"
    },
    {
      "commit": "0a1cbc5f7df7e1294b5a4e37f01b76fca5899324",
      "tree": "235e295cc3ec631407278b908627e79e3e88f0b7",
      "parents": [
        "4dfdf4d6297f57b884ec3f43bd1295235e0a938a",
        "2946445b560fde5e63df17f5a2db60c8349fe532"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Apr 03 21:17:34 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 03 21:17:34 2012 -0700"
      },
      "message": "Merge \"New libhwui test activity\""
    },
    {
      "commit": "2946445b560fde5e63df17f5a2db60c8349fe532",
      "tree": "151f9c409903b291045664b6dd91298f88443fd0",
      "parents": [
        "e0aa84b7dc087e999e20055dcc04cb6a48d5bd62"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Apr 03 20:22:10 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Apr 03 21:15:12 2012 -0700"
      },
      "message": "New libhwui test activity\n\nChange-Id: I0ce4bc665f117d7c0ed47670ceb4ed6f9b54d85c\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": "9420abd56a2af7ddbeb70562b79d61b2dca8c5a1",
      "tree": "8625a64e2d9ffd1520d890c2eb7989ccbef28adc",
      "parents": [
        "1d6013357847983180a317e2acaf807bde8b7ea7"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu Mar 29 16:28:32 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Apr 02 15:31:24 2012 -0700"
      },
      "message": "Re-enable DisplayList properties.\n\nRe-enabling DisplayList properties last week caused some app\nerrors due to the way that some transforms were being handled (specifically,\nthose coming from the old Animations and ViewGroup\u0027s childStaticTransformation\nfield). This change pushes *all* transform/alpha data from View.draw() into\nthe view\u0027s DisplayList, making DisplayLists more encapsulated (and correct).\n\nChange-Id: Ia702c6aae050784bb3ed505aa87553113f8a1938\n"
    },
    {
      "commit": "62b6eaa7f3a8111311a7ee097f278eb55865a499",
      "tree": "c41da021e65907a60607fac87c1c7f3172139a73",
      "parents": [
        "7677d8f006b94c76dcad6f551bf14f983f58dc14"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jan 17 14:52:13 2012 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jan 17 14:53:26 2012 -0800"
      },
      "message": "Fix text encoding when drawing with drawPosText in software\n\nChange-Id: I0cd8ee526189c38c50953a1a08b50e0b31c55d8c\n"
    },
    {
      "commit": "5e7c469c7a3039af7696789a797f8d91a45227eb",
      "tree": "f66d7d042190f6ec0418dd04db3853d803fcb2d5",
      "parents": [
        "a62f172215727a1e00af0cb934904e00926a86c9"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Oct 20 20:31:50 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Oct 20 20:33:07 2011 -0700"
      },
      "message": "Make sure 9patches are not filtered when not necessary\nBug #5383406\n\nChange-Id: I061c8069a4d9f4eaf45671283710b564639eeb32\n"
    },
    {
      "commit": "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": "f9284695e8c10dad4daf3d2c84f607483bcb56ca",
      "tree": "bb4d52d7d3f6d9b73c8ba23d55036d3f4cd1ba31",
      "parents": [
        "fed878d98bc42db61cf04d759235b8406a7d14fd"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jul 13 18:46:21 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jul 15 11:25:11 2011 -0700"
      },
      "message": "Add new ViewDebug APIs to profile the event queue.\n\nChange-Id: I225bf288780b0244f459316e2765cfa29cd22c89\n"
    },
    {
      "commit": "5fccb70de94f4270cff1ca35d59a289bdf37a89f",
      "tree": "c7bff5ec29427fc554b24012facd7210691e25ec",
      "parents": [
        "039857520b1a03a52051b966d87d587225bdfcc3"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jul 11 18:23:09 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jul 11 18:23:09 2011 -0700"
      },
      "message": "Add test for bug #4970944\n\nChange-Id: I3e7287bc406ff497a49cf823cee53b1a943a74a9\n"
    },
    {
      "commit": "1e59f9d10d164f156221f6d34b932f06cdd29f1f",
      "tree": "bf37ea0028b41c83646021e90b11a9536909bae2",
      "parents": [
        "f504a2fa144504ca1efd39a4ef9208e3d4d336c5"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu May 26 18:39:34 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu May 26 18:39:34 2011 -0700"
      },
      "message": "Fix texture coordinates for sub-bitmap rendering.\n\nChange-Id: I05a31775e03f5b223a55a5144d420351abac89be\n"
    },
    {
      "commit": "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": "47b8adec3904535c8d8ce2b6e42ecd736f2d90ce",
      "tree": "3aa0807a2963ea256c378bf7dd5200fac9f39484",
      "parents": [
        "81904fa40b501d3907c086e7d4fdc4a3e25cd922"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Feb 23 19:46:33 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Feb 23 19:51:42 2011 -0800"
      },
      "message": "Add a new Camera API to control the camera\u0027s location\n\nChange-Id: Id9a082d2def803eb527e1987875e0d8a22c6e8aa\n"
    },
    {
      "commit": "f28daffda50042c1b7cbfeb34b4d47741c6e21a8",
      "tree": "ea4ec2648e7c585d35f26750d18cc1007ebd2052",
      "parents": [
        "e5e764ad0bb74d8c1405d018b4e0fe92d6554660"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Feb 04 00:59:34 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Feb 04 00:59:34 2011 -0800"
      },
      "message": "Empty the clip rect when intersection is empty.\nBug #3410035\n\nChange-Id: I5ceb80514d3b20c9ad230478549ad31ced403d53\n"
    },
    {
      "commit": "09b7c91de73b59aa3f679b3ae3ba299f82ec9f8a",
      "tree": "9eb49f2fedb60e6df37b54216ed20f054a6f55fd",
      "parents": [
        "62687ec12cb8e0b1d4044a235b1387b9a8c3b4b4"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Feb 02 20:28:09 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Feb 02 20:28:09 2011 -0800"
      },
      "message": "Allocate layers from the layers pool.\nBug #3413433\n\nThis change will be beneficial to Launcher to avoid hiccups when\nswiping pages of icons. When a layer is discarded, it is kept\nin the layers pool instead of being destroyed right away. This\nfavors memory reuse over allocations.\n\nChange-Id: Ifb6944ba83d6ceb67c331527c0827b26ce648eb1\n"
    },
    {
      "commit": "849d0a37cf2ca6c6a6c2d4d4456495e32e363120",
      "tree": "f23404bc72d50712c8d7b26ec375f9e22b91e500",
      "parents": [
        "485d577af1b410769e1a364d8e2bf7837fb313b0"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Feb 01 17:20:48 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Feb 01 17:56:09 2011 -0800"
      },
      "message": "New API to let apps draw without layers.\nBug #3413433\n\nLauncher now enables layers all the time, but in some cases (for instance, when the\nworkspace is not scrolling,) it is more efficient to draw without the layer.\n\nChange-Id: I625fb5b48506acda9ae75356fdbbe812c85f2aab\n"
    },
    {
      "commit": "54229ee5eb92e3e2fc63d75353bcf09e0ebc8030",
      "tree": "cbec7a5d7caa4a04d534de6d624b3ae6670d1de9",
      "parents": [
        "feeea8f07c854e6b0ae2fec3aa2d239c17f32b5b"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Feb 01 13:05:16 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Feb 01 13:05:16 2011 -0800"
      },
      "message": "Correctly set the alpha of a hardware layer before drawing it.\nBug #3410819\n\nChange-Id: I3ebaca2233f4edf5b59d84ec7706555056a1a4b1\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": "fb13abd800cd610c7f46815848545feff83e5748",
      "tree": "299f1c241fc360cbf3016adee07ac3db46750203",
      "parents": [
        "90fc03bc493fc2c984599b198b9d50bc387134f2"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Sun Jan 16 15:16:38 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Sun Jan 16 15:16:38 2011 -0800"
      },
      "message": "Fix 9patch rendering in ExpandableListView.\n\nChange-Id: I60843d61a40b0cb7dd09923cb4489a5a76f20486\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": "d38e776a3cc8cb53945cbebafbe6f6c2e3501fa5",
      "tree": "91f1359ed446aeafc20c8322073612a77c1652d5",
      "parents": [
        "70119929549b6d241244c51952ed1f4a313a5ff7"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Dec 21 06:20:28 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Dec 22 10:30:53 2010 -0800"
      },
      "message": "LayoutLib: support for layers.\n\nLayers require that drawing methods potentially\ndraw in more than one bitmaps.\n\nTo handle this this patch offers the following:\n- move all drawing methods to use Drawable\n- Drawables are now handled by GcSnapshot since\n  its the one handling the layers\n- moved Canvas_Delegate.createCustomGraphics to\n  GcSnapshot which does not expose the Graphics2D\n  objects anymore so its draw() methods are the only\n  way to draw.\n- handles creating layers in GcSnapshot.save() and\n  blitting them in restore()\n\nOther changes:\n- Clean up the create/save API in GcSnapshot\n- Fixed drawing bitmaps with alpha and other\n  composite modes.\n\nChange-Id: I1e230087493d044a10de71f4b6d29083e3f3bf64\n"
    },
    {
      "commit": "63fd87113cea6abec97a6cd966e090e9b590fc3b",
      "tree": "1cbdd623cdac465fc3a648b4afc93b4212a213f7",
      "parents": [
        "d348b6eaa98e23cb38d90906df109aaa2d20ea7f"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Dec 21 01:33:04 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Dec 21 10:43:18 2010 -0800"
      },
      "message": "LayoutLib: Misc rendering fixes.\n\n- always set up the stroke. Paint may not have the proper\n  style when drawing lines. stroke should still be setup.\n\n- Fixed vertical linear gradient. Old code generated\n  a gradient ratio of NaN\n\n- Fixed alpha rendering when using shaders. In that\n  case the alpha channel from the paint color should be\n  used in conjunction with the shader.\n\n- Fixed miter limit. Java expects the value to be multiplied\n  by the stroke width\n\n- Fixed support for drawing ALPHA_8 bitmaps. Java2D doesn\u0027t\n  have bitmaps with only alpha channels, so we keep using\n  ARGB bitmaps but when drawing them into a bitmap we erase\n  the color information.\n\nChange-Id: I4f04341fc843e3f7dadd1fdbf709b11a4f1e24b9\n"
    },
    {
      "commit": "d348b6eaa98e23cb38d90906df109aaa2d20ea7f",
      "tree": "c9195fa9628e78108424cbae0dd2a86a12d2faeb",
      "parents": [
        "19a021038f2f4683dddef651543d7298f5bd7218"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Dec 20 08:22:47 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Dec 21 10:43:18 2010 -0800"
      },
      "message": "LayoutLib: support for Path and BitmapShader using delegates.\n\nAlso created delegates for all missing shader, xfermode\nand patheffect classes. Moved the logic of the xfermode,\nand patheffects that was in Canvas_Delegate into the\nxfermode/patheffect classes, and added support (in all\n3 clases) for knowing if the shader/xfermode/patheffect\nis actually supported or not. Make use of fidelityWarning\nin LayoutLog if they are not.\n"
    },
    {
      "commit": "ec31a7f119608b94ea1bb41275811027a360bf30",
      "tree": "9e9d175cbbd71b6bf142806f82268680a1bc2176",
      "parents": [
        "d9c64369cf9be6568af2d79c35fb470cc261730d"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Dec 14 14:58:59 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Dec 14 14:58:59 2010 -0800"
      },
      "message": "Create some layout files for HwAccelerationTest\n\nThe goal is use the app to test layout lib, so layout\nfiles are needed, and custom views must be instantiable\n(ie public)\n\nChange-Id: I46bb3d8af6e4d7973d041aa618f1c7762efd93d0\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": "7975fb6d12cb1eb96b75e3a563627cd4c4081bd6",
      "tree": "5be6b4315c9b3ccffb980fe9d99fa74340bf3430",
      "parents": [
        "d1034c1967178302cad9085d15ae9849497babb2"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Oct 01 16:36:14 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Oct 01 16:36:14 2010 -0700"
      },
      "message": "Apply bilinear filtering to text.\n\nChange-Id: I2c81ad657ee2a11a2139e0b11ae3749db54c0749\n"
    },
    {
      "commit": "6820ac8b14b4558f5d8b833dde80895306a3e137",
      "tree": "b90f253c05f20ae8a36c7bdc49147d447b75e7d5",
      "parents": [
        "9322775014432ed6c87c864e98fe482f879ff233"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Sep 15 18:11:50 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Sep 15 18:11:50 2010 -0700"
      },
      "message": "Fix 9patch rendering.\n\nChange-Id: Ic4c18ff483cca95fbabcb10843f7714efe488adb\n"
    },
    {
      "commit": "8411f336c786379c5a03106e9ed3bc8622b579a5",
      "tree": "a84342e818982f1075d6c1722706e3bf4bd14ddb",
      "parents": [
        "1510770165b7bc675e5171560e907c0269dbe0fa"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Sep 13 17:27:57 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Sep 13 17:27:57 2010 -0700"
      },
      "message": "Fix rendering issue with layers intersecting the clip rect.\n\nChange-Id: Icbe35194fa219ef13ce639d33631235f8d7df3d7\n"
    },
    {
      "commit": "f607bdc167f66b3e7003acaa4736ae46d78c1492",
      "tree": "b3b4fb761b25d08ba836ff822f6e72d85b5be695",
      "parents": [
        "d14f0dfd58af653a2d41424d472fe97de6af0a78"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Sep 10 19:20:06 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Sun Sep 12 12:24:12 2010 -0700"
      },
      "message": "Correct implementation of saveLayer().\n\nChange-Id: I5375126636913e0a84f2d6bbd0ebe40d2e4f2763\n"
    },
    {
      "commit": "53389bdcdf6ffaaec533b73bc1d0abc5807ec7f6",
      "tree": "2c62b2d9a94bb5db26f62a17912c9bade47f1915",
      "parents": [
        "018b0d2918e59b28852d07b90c2d3153533267aa"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Sep 07 17:16:32 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Sep 07 17:16:32 2010 -0700"
      },
      "message": "Correctly set the viewport on window resize.\n\nChange-Id: Idec325264d85feda76d4cda00fa511aaac82cf64\n"
    },
    {
      "commit": "4299c0f2429a266e2390a7a9d5dbe5a8e8d7ce38",
      "tree": "40a635863338f197f59e9ed2c6f53a5863d3a51e",
      "parents": [
        "b45c0c9774bd19a9dbe77d149abae4e124b08bf6"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Aug 27 16:56:50 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Aug 27 16:56:50 2010 -0700"
      },
      "message": "Add test for gamma correction.\n\nChange-Id: Id2a311bc116438d3627a943cb5fb1ba8dc121bb0\n"
    },
    {
      "commit": "e9e7fd0813f1485d20c6cd0014d59aff53c35d84",
      "tree": "27439301826c76d553486539d128c84c648d004f",
      "parents": [
        "207b3ab604bcbe47fa55f26f358cde60cf8a784d"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Aug 19 14:45:42 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Aug 19 14:45:42 2010 -0700"
      },
      "message": "Update OpenGLRenderer test to test opaque ARGB8888 bitmaps.\n\nChange-Id: I7159825f4b1d6f5a1cd09ec091994801b52b6bda\n"
    },
    {
      "commit": "8fb954263dd2f918ad339045cc6d82e346515599",
      "tree": "6cc5874902c757432432f26cec37f1fdcbab0e4a",
      "parents": [
        "31d5becb7fe2981381a6c16afe6bb357416f4c3a"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Aug 17 18:38:51 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Aug 17 18:40:21 2010 -0700"
      },
      "message": "Fix save()/restore() issues in the OpenGL renderer.\n\nThe save stack now behaves exactly like in Skia.\n\nChange-Id: If7e642f41f2c8f693f6e8c26cba81507d466562e\n"
    },
    {
      "commit": "1d83e1981c8b89da93dff37a4f8b2b1ad8480b44",
      "tree": "84e1106e4f55d13b9398658f6e639b18f4a9c9c1",
      "parents": [
        "0a41749953f35d33f61b3119e3161a82bb5fa59e"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Aug 17 11:37:00 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Aug 17 11:37:00 2010 -0700"
      },
      "message": "Correctly set the viewport in layers.\n\nBug #2919295\n\nChange-Id: I16ce79ab0d5747cb01c6c1abe531da3dfd93fb54\n"
    },
    {
      "commit": "09147fbdc8206a0cac78bfe9083e7e15b3c5689c",
      "tree": "16f155fd722b6fba13508a09c29b9e8ea5adfdd3",
      "parents": [
        "612f8da2bc994043f26a278a9b1c2b681eabc4c9"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jul 22 13:08:20 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jul 22 13:08:20 2010 -0700"
      },
      "message": "Add support for text culling.\n\nChange-Id: Ibf0adacdc5c64d40a8000b21d7cb0797d63efe29\n"
    },
    {
      "commit": "f86ef57f8bcd8ba43ce222ec6a8b4f67d3600640",
      "tree": "1ce9f59ca3dab7579b6548861b21dcf2df159815",
      "parents": [
        "1a3e1056db1deafcc8cdfae3aa36581c70b16cf0"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jul 01 11:05:42 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jul 01 15:27:21 2010 -0700"
      },
      "message": "Don\u0027t use full screen FBOs, this dramatically increase performance.\n\nThe next step will be to add an FBO cache to avoid churning memory on every\nframe we draw. This change also adds support for drawBitmap(Bitmap, Matrix, Paint).\n\nChange-Id: I7825cdcf0cad9bffe6219e05d8328a53d4a6e583\n"
    },
    {
      "commit": "ce0537b80087a6225273040a987414b1dd081aa0",
      "tree": "31682a01c12091c552217186604fca32f43e98ff",
      "parents": [
        "81ea83d10883886013bc95eac2fe032acf1e7aa9"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jun 29 21:05:21 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jun 30 15:21:01 2010 -0700"
      },
      "message": "Add hooks for drawBitmap().\n\nChange-Id: I58e962c3a8b2bc75c2605fe369ad3002579d86e0\n\nAdd texture cache.\n\nChange-Id: I1c0e5581d228869e114438258a1014e33e024ad7\n"
    }
  ]
}
