)]}'
{
  "log": [
    {
      "commit": "6b3292ce5b3908c7433503f64c852cf2b27718ed",
      "tree": "00e7df2eaa335ed83aeb25ce187f67e0cdaccc3f",
      "parents": [
        "916b2b5a932a3be1a1363ac1871e74ad8b314f00",
        "97dc9172b0e58979c63de0dedbab656399a62281"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Sun Sep 23 17:50:05 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Sep 23 17:50:06 2012 -0700"
      },
      "message": "Merge \"Avoid deadlock when deleting layers Bug #7217459\" into jb-mr1-dev"
    },
    {
      "commit": "97dc9172b0e58979c63de0dedbab656399a62281",
      "tree": "291da7b2a7b35e73821fa3660c7e1a96e983a5e4",
      "parents": [
        "4285de3c8bc77856a2df98894f74bb7333f1d348"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Sun Sep 23 17:46:45 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Sun Sep 23 17:49:24 2012 -0700"
      },
      "message": "Avoid deadlock when deleting layers\nBug #7217459\n\nChange-Id: I12bfa6c30c5030bd1b23ea6a3ce64240ab1dfba3\n"
    },
    {
      "commit": "d392b87e3d30cd4f0836623d848019c5724efce8",
      "tree": "e1ebbf8d24d2ef4963f212c0f13bbf06fabeaa20",
      "parents": [
        "c0e1f268451550368d1d3d3558f8ce2459ed5713",
        "4285de3c8bc77856a2df98894f74bb7333f1d348"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Sun Sep 23 15:00:46 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Sep 23 15:00:46 2012 -0700"
      },
      "message": "Merge changes Ib0a0b7d1,Ibec4b2aa into jb-mr1-dev\n\n* changes:\n  Fix overdraw debug on QCOM\n  Make sure we never bind to texture #0 Bug #7195815\n"
    },
    {
      "commit": "4285de3c8bc77856a2df98894f74bb7333f1d348",
      "tree": "1704cd1d596a0f35d8c5c21c07fa13644fe8b453",
      "parents": [
        "574cf6070d34e66dfd6f2006937986eddd1f09e7"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Sun Sep 23 14:46:35 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Sun Sep 23 14:46:35 2012 -0700"
      },
      "message": "Fix overdraw debug on QCOM\n\nDisable the use of the tiling extension when overdraw debug is\nturned on.\n\nChange-Id: Ib0a0b7d1998146aa0c7efef2d3822f9997efb123\n"
    },
    {
      "commit": "574cf6070d34e66dfd6f2006937986eddd1f09e7",
      "tree": "112b68de9e9015c706cf04e7c0c461f5a57b382e",
      "parents": [
        "8e586f61dd4f7fa53b01e63ac779ffc7cde05bdd"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Sun Sep 23 14:45:31 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Sun Sep 23 14:45:31 2012 -0700"
      },
      "message": "Make sure we never bind to texture #0\nBug #7195815\n\nChange-Id: Ibec4b2aa4c580419eb5eb61adae6c9c960694d0c\n"
    },
    {
      "commit": "b92d8f7979c29c7c09932578a11b2f8d6eec1d90",
      "tree": "b82c57bffc1eded3b6fd15d9a80019e3228c7f2d",
      "parents": [
        "7b770b0ec4e5a1b7f1b9601433fb35e55658453d"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri Sep 21 08:40:46 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Sun Sep 23 12:16:02 2012 -0700"
      },
      "message": "Optimize glyph cache texture uploads\n\nOnly upload the changed area of the glyph cache, not the entire\nbitmap. Note that we can\u0027t do the full-on optimization here of copying a sub-rect\nof the bitmap because of GL ES 2 limitations, but we can at least copy the\nhorizontal stripe containing the dirty rect, which can still be a big\nsavings over uploading the entire bitmap.\n\nIssue #7158326 Bad framerates on MR1 (Mako, Manta, Prime)\n\nChange-Id: Iab38d53202650f757ead4658cf4287bdad2b3cb9\n"
    },
    {
      "commit": "8e586f61dd4f7fa53b01e63ac779ffc7cde05bdd",
      "tree": "8329d87f72780ef47d6d8c74ab46a56cca648bbe",
      "parents": [
        "88923c973e3b58593c4d0fb6724addcefc53004f",
        "7c450aaa3caac2a05fcb20a177483d0e92378426"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Sep 21 19:28:05 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 21 19:28:06 2012 -0700"
      },
      "message": "Merge \"Add support for a new developer setting: overdraw debugging\" into jb-mr1-dev"
    },
    {
      "commit": "7c450aaa3caac2a05fcb20a177483d0e92378426",
      "tree": "986e53542f0b59d8108b366c5d4c4d8a3f04e51e",
      "parents": [
        "f7e52d92b41adf460089625ea47bfea2ed7e6296"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Sep 21 19:15:00 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Sep 21 19:15:00 2012 -0700"
      },
      "message": "Add support for a new developer setting: overdraw debugging\n\nChange-Id: I350ba4486577c3289f82c20938f7a35138778727\n"
    },
    {
      "commit": "dbb261455b1b8d2fdf4f0f8ad84ddb09dda1ed9b",
      "tree": "f74e8e767b300120664a2421de1ff581fe61fe55",
      "parents": [
        "172cb769641c828d7ad20669a5f7c9533248382f",
        "a1d12dd619c86c9ac121a3095ff5e5633c11e876"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri Sep 21 17:12:00 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 21 17:12:48 2012 -0700"
      },
      "message": "Merge \"Optimize shaders for dithered gradients\" into jb-mr1-dev"
    },
    {
      "commit": "a1d12dd619c86c9ac121a3095ff5e5633c11e876",
      "tree": "3e53e0a133aeaf86ec84b13a952c6aa6be3dbee7",
      "parents": [
        "537d47f510ce49acee09516ed5dde680d910ff94"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri Sep 21 14:50:14 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri Sep 21 16:20:57 2012 -0700"
      },
      "message": "Optimize shaders for dithered gradients\n\nIt\u0027s faster to compute a dither calculation in the vertex shader and use\na varying (letting the GPU interpolate the fragment values) than to perform\nthat calculation in the fragment shader as part of a texture lookup.\n\nIssue #7207600 Prime mr1 shader performance issues\nIssue #7158326 Bad framerates on MR1 (Mako, Manta, Prime)\n\nChange-Id: I15789582a6e9e2d8b9dd22aa5b0f72f0ba1cce7f\n"
    },
    {
      "commit": "059aedf808c8b9b3da1457eef52f3d477878d50b",
      "tree": "7d980afc55e8df8050a0077f88e2df7db0c51de7",
      "parents": [
        "f98db0de2248ad286b207eed6a826373cc60b786",
        "f7e52d92b41adf460089625ea47bfea2ed7e6296"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Sep 21 15:08:11 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 21 15:08:12 2012 -0700"
      },
      "message": "Merge \"Finish this bit before I forget.\" into jb-mr1-dev"
    },
    {
      "commit": "f7e52d92b41adf460089625ea47bfea2ed7e6296",
      "tree": "67f6c913bcf8b406c6b1d1b093064678fc6cf881",
      "parents": [
        "8a624ef0fe5e86031f15f4120205c869e34f6637"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Sep 21 15:06:52 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Sep 21 15:06:52 2012 -0700"
      },
      "message": "Finish this bit before I forget.\n\nThis code is not enabled in current builds.\n\nChange-Id: I488ec9e94889efbf2c8f3312abfed4298a76b7f1\n"
    },
    {
      "commit": "61d37041ac76a95aedb98d3550bb5efa33d898a1",
      "tree": "cffd7916bceba166b3cff01054a092ca52c7bc44",
      "parents": [
        "739bc9e3f51c203fc0b58c30d67cacda985e95c6",
        "710f46d9d6a5bf9ea1c1833384caf61e1934124f"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Sep 21 11:03:59 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 21 11:03:59 2012 -0700"
      },
      "message": "Merge \"Polygonal rendering of simple fill shapes\" into jb-mr1-dev"
    },
    {
      "commit": "11cb642756093a4af901b1525375b1eb2b5c3e2b",
      "tree": "b412ad763bb1cc240c65c7545a208e4e709c0b30",
      "parents": [
        "3e87eafc7d1aef95801f1758bb78da8b2f960a75"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Sep 21 00:39:43 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Sep 21 00:39:43 2012 -0700"
      },
      "message": "Update layers in a single batch at the beginning of a frame\nBug #7186819\n\nChange-Id: Ice5926dfedfb3be3a3064e65008dafa2852407da\n"
    },
    {
      "commit": "57b5268708c3b974296c7d4e58a02a957979224a",
      "tree": "bb3a36e20b66edcbd7539aefd947c5b57d2897b3",
      "parents": [
        "314488b791d36756504ee593f818f04b4cd24893"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Sep 20 17:38:46 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Sep 20 17:38:46 2012 -0700"
      },
      "message": "Optimize tiling management\nBug #7186819\n\nChange-Id: Iebc42a6e9c96ad5605fbbe1539aa887695d2e829\n"
    },
    {
      "commit": "710f46d9d6a5bf9ea1c1833384caf61e1934124f",
      "tree": "5dbc56cf9b6bb957f9cbdaaff7283d44897b265d",
      "parents": [
        "5ca88a103c2841b64bfa01b4848aec4b8aa64687"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Sep 17 17:25:49 2012 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Sep 20 13:08:20 2012 -0700"
      },
      "message": "Polygonal rendering of simple fill shapes\n\nbug:4419017\n\nChange-Id: If0428e1732139786cba15f54b285d880e4a56b89\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": "35643ddc689913f5b5f80ceed864470d987bd6cd",
      "tree": "db2ac0933bc52d1c71aa7d0edfd94c06dcc2cf2a",
      "parents": [
        "29d0aa73a099fde05c506857b5d215cde87b78d6"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Sep 18 15:40:58 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Sep 18 15:41:16 2012 -0700"
      },
      "message": "Minimize state changes when updating layers\n\nChange-Id: I407fcc80bd3178f9f09a3b379ceb7f7ce0749e08\n"
    },
    {
      "commit": "0990ffbc4d407e174423a4a04b5902ed83f71db5",
      "tree": "1296fbc452975cfb910733c9fe7f865fd474dd7b",
      "parents": [
        "218e2f199b9ba568a815d64269ea0784e2d32935"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Sep 17 17:43:45 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Tue Sep 18 14:10:10 2012 -0700"
      },
      "message": "Fix GL shader bugs\n\nFixing errors in emitted shader code that caused GL errors\nat runtime\n\nChange-Id: I267a84398a81329a6688b292505f8779bd750ad1\n"
    },
    {
      "commit": "a8a402f8ad1549e23f4238786269bd548b6b445d",
      "tree": "205aff27573792f891dece6340c79a0fb1a69cab",
      "parents": [
        "04d5b9fbd1f9b8c7fa4af402166028c685574d62",
        "1c5c206953d673f8424908c77c974c06d5b99a9c"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Sep 17 17:12:02 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 17 17:12:03 2012 -0700"
      },
      "message": "Merge \"Fix bad shader code\" into jb-mr1-dev"
    },
    {
      "commit": "1c5c206953d673f8424908c77c974c06d5b99a9c",
      "tree": "f1c5cb72f293dd78635454a1eada7a54f8224d48",
      "parents": [
        "9f5f80e7a64d9388e3e73763b5c73dcddaa729fc"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Sep 17 17:09:21 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Sep 17 17:09:21 2012 -0700"
      },
      "message": "Fix bad shader code\n\nShader code missing \"\u003d\" in a couple of cases.\n\nChange-Id: Iff8a99a0ccb2903c30e2bdb2f698ef9b2e03d5d1\n"
    },
    {
      "commit": "f74d2f2fe8a157bee25516d2a6ae3e329507cb2c",
      "tree": "4f2120f0b594273e2c380b973aadd1d6f9350eb9",
      "parents": [
        "9f5f80e7a64d9388e3e73763b5c73dcddaa729fc",
        "603f6de35f21d74ae242d52d501f4f5c25ff4f4c"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Sep 17 13:09:08 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 17 13:29:03 2012 -0700"
      },
      "message": "Merge \"Fix occasional crash bug with layers\" into jb-mr1-dev"
    },
    {
      "commit": "603f6de35f21d74ae242d52d501f4f5c25ff4f4c",
      "tree": "b249a7750a60b445a43670b7ba540beecbe715db",
      "parents": [
        "cc5dd18d15a174799ad79d26633c268e8860c8ab"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri Sep 14 15:31:25 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Sep 17 11:21:34 2012 -0700"
      },
      "message": "Fix occasional crash bug with layers\n\nLauncher occasionally crashes with a stack trace indicating that the memory\nof a Layer object is corrupt. It is possible for us to delete a Layer\nstructure and then, briefly, use it to draw a DisplayList again before\nthat DisplayList gets recreated (without the layer that got deleted).\n\nWhen this happens, if the memory got corrupted, it\u0027s possible to crash.\n\nThe fix is to add Layer to the other objects which we currently refcount\n(bitmaps, shaders, etc.). Then instead of deleting a Layer, we decrement the\nrefcount. We increment when creating it, then increment it again when it\u0027s\nreferenced from a DisplayList. Then we decrement the refcount instead of\ndeleting it, and decrement when we clear a DisplayList that refers to it.\nThen when the refcount reaches 0, we delete it.\n\nIssue #6994632 Native crash in launcher when trying to launch all apps screen\n\nChange-Id: I0627be8d49bb2f9ba8d158a84b764bb4e7df934c\n"
    },
    {
      "commit": "a938f569ce206c1ed68d736181016b5b708c0084",
      "tree": "5a607bc80af329334757c13e978f7c9b978122a8",
      "parents": [
        "494ac35c27a0960f57b00bf8457f1956ecf149a2"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Sep 13 20:31:08 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Sep 14 10:50:51 2012 -0700"
      },
      "message": "Fix modulation and gamma correction issues\n\nModulation is normally enabled in a shader when drawing with an alpha\nmask (A8 texture.) Modulation is used to do one of two things:\n\n- Colorize the primitive (to draw text in red for instance)\n- Apply extra translucency (50% translucent circle filled with a bitmap)\n\nThe current implementation has four issues:\n\n1. Unnecessary work is performed by assigning the modulation color\n   to vec4 fragColor early in the shader\n2. The modulation color\u0027s alpha is applied twice when the primitive\n   is drawn with an SkShader\n3. The decision to modulate is wrong and triggers when any of the\n   RGB channels is \u003c 1.0. Only the alpha channel needs to be taken\n   into account to make the decision\n4. Gamma correction is not applied properly\n\nThis change addresses all four issues above.\n\nChange-Id: I73fcc74efc4b094bf2d1b835f10ffaa2ea4b9eb9\n"
    },
    {
      "commit": "494ac35c27a0960f57b00bf8457f1956ecf149a2",
      "tree": "070eb3e8d4de89db4f00f2e0d89ba1980175c130",
      "parents": [
        "2dc6af2082b93849b2e5519a8ae7504757286aa9",
        "9f44a13a125980fee92cdc76376063129f0eebc9"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Sep 14 10:34:46 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 14 10:34:47 2012 -0700"
      },
      "message": "Merge \"Multiply alpha for AA as late as possible\" into jb-mr1-dev"
    },
    {
      "commit": "85ef80d8902afe8d26cb75fa7837fd9e6d019620",
      "tree": "d9dbb8a0d49731396fb904a541f9fbe2ece39698",
      "parents": [
        "dcd8c81bf4beb719888b6be1b9418303c9075938"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Sep 13 20:26:50 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Sep 13 20:26:50 2012 -0700"
      },
      "message": "Foundation for tiling optimization\n\nChange-Id: I4db32a4749f196472ba0dde7e102439d2ba4a3a7\n"
    },
    {
      "commit": "9f44a13a125980fee92cdc76376063129f0eebc9",
      "tree": "f1eaeeda57bea37623366e1c16ffd61a632126fc",
      "parents": [
        "4899d6f7cc45268a4f8d734639fb3f03d39d9d4a"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Sep 13 18:34:55 2012 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Sep 13 18:34:55 2012 -0700"
      },
      "message": "Multiply alpha for AA as late as possible\n\nShould be done after all color computation\n\nChange-Id: Iaadd565f7d2263f111f6841a00e7c341025833d3\n"
    },
    {
      "commit": "45e4c3df6c00ac98ff6144de9af574877d4fff19",
      "tree": "206209b5faf3bb4c63366d29e8891bc53783d232",
      "parents": [
        "f625436cc741932518e5f1a41586c72ac8297ece"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Sep 11 17:17:07 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Sep 11 17:30:43 2012 -0700"
      },
      "message": "Discard framebuffer commands when we redraw the entire buffer\n\nChange-Id: I32e3014832cbd3bdbace8c3d2206eb20a2002d64\n"
    },
    {
      "commit": "df46c637550b4c6f0543574cfbd544329f48f5c7",
      "tree": "bb07b38061e33722cc51eceee9484bbf7b08c3fb",
      "parents": [
        "3c396fccd52f9d06b453b655c20c2266dd984d19",
        "70561df470c31513056df181571632851fd0d081"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Sep 10 17:43:20 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 10 17:43:21 2012 -0700"
      },
      "message": "Merge \"Prevent degenerate 9-patches from drawing out of bounds Bug #7137292\" into jb-mr1-dev"
    },
    {
      "commit": "70561df470c31513056df181571632851fd0d081",
      "tree": "371119049d622a7c524017ad0cf3900bd5e53a96",
      "parents": [
        "753e1280cbc3f0006b04f67385f02e1f92019f7d"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Sep 10 17:40:18 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Sep 10 17:40:18 2012 -0700"
      },
      "message": "Prevent degenerate 9-patches from drawing out of bounds\nBug #7137292\n\nChange-Id: I371e94899445d2f3c6794d5c0aee8faa514d3c2c\n"
    },
    {
      "commit": "beb8bd0db28d8c5cad2a258f2ba2f3b8b76cf037",
      "tree": "84add68f98d2850a7f2ad468310a052822d5c1b4",
      "parents": [
        "a3909a93958676d341424d574752bc7b3280d421"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Sun Sep 09 16:13:26 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Sep 10 08:56:55 2012 -0700"
      },
      "message": "Reset GL buffer state after functor invocation\n\nFunctors in WebView were binding to different buffers than we\nassumed in the toolkit, eventually causing a crash due to improper\ndereferencing in the currently bound buffer. Fix is to reset state\nafter invoking functors.\n\nIssue #6666279 Native crash in Currents, mostly on Nakasi\n\nChange-Id: I3697812d83613fffc9193daa99beea4dbf26474a\n"
    },
    {
      "commit": "4aacf93d40b4be82aa35bf164d6fd6536c8b2a50",
      "tree": "daa3d1fab2d9688f1d8f8aa06064b2f99cce0b42",
      "parents": [
        "4ea283a05f3724285ed3057ff1de1a344ab3e15a",
        "e49d7ec36132f33b7c9e2c044ab9dd3585aa3747"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Sep 07 18:44:39 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 07 18:44:40 2012 -0700"
      },
      "message": "Merge \"Fix memory corruption in LayerRenderer::copyLayer\" into jb-mr1-dev"
    },
    {
      "commit": "e49d7ec36132f33b7c9e2c044ab9dd3585aa3747",
      "tree": "1321a0c086c3b17de0d3c4a62645f672fa511d6d",
      "parents": [
        "1558cf1498ecc687532f2dad3de720053dca9309"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Sep 07 18:42:38 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Sep 07 18:42:38 2012 -0700"
      },
      "message": "Fix memory corruption in LayerRenderer::copyLayer\n\nThe pixel store pack alignment was not set for the source texture,\ncausing a write to occur outside of the destination bitmap\u0027s\nbounds.\n\nChange-Id: Iaa5767acf7b5943fbc2765c3810a142f06b1a796\n"
    },
    {
      "commit": "dc531fa7d4ec545ace1b3daae0849d3101102e49",
      "tree": "4023b7ace3d64ac779e138d2ea5fce4480ebbaca",
      "parents": [
        "330a5bf82e60fca9591f14a4db5ee98066c610d1",
        "75040f8a7727f18bb33da23696a32a0760926ff2"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Sep 07 15:27:05 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 07 15:27:05 2012 -0700"
      },
      "message": "Merge \"Handle different x, y scales in drawLines AA path\" into jb-mr1-dev"
    },
    {
      "commit": "75040f8a7727f18bb33da23696a32a0760926ff2",
      "tree": "9f32eb9b41df3c09ce0f27abae389695eaa3ff3d",
      "parents": [
        "9147cd4ac56d53dec6da1ef13dd04ba1eec1a7df"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Sep 07 13:56:43 2012 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Sep 07 15:20:38 2012 -0700"
      },
      "message": "Handle different x, y scales in drawLines AA path\n\nbug:7114630\n\nFixes different x, y scales, and fixes boundaryWidthProportion to be from\ncenter, not edge.\n\nAlso adds drawLine tests that previously drew blurry.\n\nChange-Id: I2b648a60361ad3931eac67647b9b27909525ee1e\n"
    },
    {
      "commit": "89b3f48fa3ccaf9a05628f0e540c1f94716809f7",
      "tree": "8a02c1f85bd5268122888e517aa3aaf80062d956",
      "parents": [
        "c0be8c85b09002359adb1fb20f2bf08e6983d146",
        "d15ebf25c595b855f6978d0600218e3ea5f31e92"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri Sep 07 14:44:43 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 07 14:44:43 2012 -0700"
      },
      "message": "Merge \"Enable changing properties of layer paint\" into jb-mr1-dev"
    },
    {
      "commit": "55e6b77bda7da1684ca32493d9e03184bd441dab",
      "tree": "452dd95ab11bd568485f2ea36276395cd90f111e",
      "parents": [
        "417984dc0d27bdd1b33ae3115593f609961a0c15",
        "58ecc204fbcacef34806290492384677a330d4d4"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Sep 07 14:01:30 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 07 14:01:31 2012 -0700"
      },
      "message": "Merge \"Reduce the number of locks acquired by display lists\" into jb-mr1-dev"
    },
    {
      "commit": "58ecc204fbcacef34806290492384677a330d4d4",
      "tree": "13be7c29c62652911b5213122419a128c67615ee",
      "parents": [
        "369bb97d02209fa800081fc3b4e8675ea7e75d34"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Sep 07 11:58:36 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Sep 07 14:01:09 2012 -0700"
      },
      "message": "Reduce the number of locks acquired by display lists\n\nChange-Id: I1123aae0355de84db705bb75042c7083fc69c9f2\n"
    },
    {
      "commit": "d15ebf25c595b855f6978d0600218e3ea5f31e92",
      "tree": "35154bd1ec18cf8299a0d737847291ab28a5c98b",
      "parents": [
        "4db5d23deab9ea8de34cdb1c56af31e6e3cff79b"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed Sep 05 11:40:29 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri Sep 07 13:27:02 2012 -0700"
      },
      "message": "Enable changing properties of layer paint\n\nPreviously, to draw a layered view with a changed Paint object for the\ndrawLayer operation, you\u0027d have to invalidate the parent view, to get the\nnative DisplayList to pick up the new Paint properties. This change adds\nAPI and functionality so that the developer can call setLayerPaint(), which\ndoes the proper invalidation (lightweight, doesn\u0027t cause redrawing the view).\n\nIssue #6923810 Make it easy to efficiently animate a layer\u0027s Paint\n\nChange-Id: I7fea79788d50f6d9c86dd5e5b2a4490cb95142bb\n"
    },
    {
      "commit": "01fcb728940c12498ab2c7503fe86a849725ea12",
      "tree": "95aaf7f4269fdd2d88ce2a7ca70374cf0be2b165",
      "parents": [
        "37ee53420ce47860807eb8eaeb454c12fa46797b",
        "8a802dbdabdfd27692c2e38b2c3adafe95566106"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Fri Sep 07 10:17:55 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 07 10:17:55 2012 -0700"
      },
      "message": "Merge \"Use \"ldrtl\" and \"ldltr\" config qualifiers for RTL / LTR resources\" into jb-mr1-dev"
    },
    {
      "commit": "9147cd4ac56d53dec6da1ef13dd04ba1eec1a7df",
      "tree": "b2b281f65745e56c0f3db9abb6b75be001efa12e",
      "parents": [
        "fb3ec448f1208d75edebff0e93fa97a8913ff29e"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Sep 06 16:44:51 2012 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Sep 06 16:44:51 2012 -0700"
      },
      "message": "Fix m11 to be Y scale instead of X\n\nbug:7114630\n\nFixes different X and Y values resulting in blurry lines/rects.\n\nChange-Id: I3eb244e0cf769efa6b38d08741cf37d0bf62b786\n"
    },
    {
      "commit": "8a802dbdabdfd27692c2e38b2c3adafe95566106",
      "tree": "7b933dc6d1dcfb6cd4a7d0a349ce642641712c07",
      "parents": [
        "18e876806718e28edaa3cd9bb0262a9b400bc82b"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Wed Sep 05 13:12:02 2012 -0700"
      },
      "committer": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Thu Sep 06 11:13:24 2012 -0700"
      },
      "message": "Use \"ldrtl\" and \"ldltr\" config qualifiers for RTL / LTR resources\n\n- we cannot use \"rtl\" / \"ltr\" qualifiers as they can conflict with ISO-639 Alpha-3\ncodespace which uses 3 letters for identifying a language code (and could use either\n\"rtl\" or \"ltr\" strings for defining a language in the future).\n\n- we are using instead \"ldrtl\" for RTL and \"ldltr\" for LTR resources. Those qualifiers\nare defined by more than 3 chars and outside of what is defined into ISO-639. They\nare also more understandable as \"ld\" prefix is for \"layoutdirection\"\n\nChange-Id: Id43e948103707e09bef63ebd54ac1779dde58e72\n"
    },
    {
      "commit": "378d131e65348d199db36c21ba7156542bbf0045",
      "tree": "b2e41ab4962973acea7fe8a3b9b3f97581ead2be",
      "parents": [
        "369bb97d02209fa800081fc3b4e8675ea7e75d34",
        "6ebdc114e0d72137394f02bc8ffe9d7a782a65c4"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Sep 06 10:52:13 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 06 10:52:14 2012 -0700"
      },
      "message": "Merge \"Varying-based AA rect drawing\" into jb-mr1-dev"
    },
    {
      "commit": "6ebdc114e0d72137394f02bc8ffe9d7a782a65c4",
      "tree": "4900dd3246e54b2dcaa869b519e181542467ae82",
      "parents": [
        "176d105d2f71198966b566d36d4e856a797695c7"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Aug 31 18:24:33 2012 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Sep 05 16:45:03 2012 -0700"
      },
      "message": "Varying-based AA rect drawing\n\nInstead of calculating opacity from relative position in the shader, use a\nshader varying to do this computation for us.\n\nbug:5045101\n\nAlso adds a test to HwAccelerationTest to show incorrect antialiasing in\nscaled drawAARect / boundarySize calculation.\n\nChange-Id: Icdc41acb01dc10ce354834f8389a5aed2f439162\n"
    },
    {
      "commit": "521dc51fd411285f900c083a4fe560d2ed7c3f8a",
      "tree": "b27e3be01ff583795fe9cead4ba6c46d71f80263",
      "parents": [
        "6c8c6d9d44f97ebfba9c6d997665ad58ac39273a"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Sep 04 19:10:33 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Sep 04 19:20:06 2012 -0700"
      },
      "message": "Don\u0027t invalidate all the glyphs when flushing large textures\n\nFontRenderer::flushLargeCaches identifies the large textures used to\ncache glyphs and visits all the known fonts to mark their glyphs\ninvalid if they belong to one of these large textures.\n\nUnfortunately, Font::invalidateTextureCache had a logic error\nwhich would make it mark *all glyphs* as invalid, not matter\nwhat texture they belong to. This means that any large cache\nflush would cause all glyphs to be invalidate, thus forcing\nthe rendering system to recreate them on the next draw.\n\nFont::invalidateTextureCache is supposed to behave this way:\n- If the specified cacheTexture is NULL (default value), mark\nall glyphs as invalid (see FontRenderer::flushAllAndInvalidate())\n- If cacheTexture is *not* NULL, invalidate only the glyphs for\nwhich glyph.cacheTexture \u003d\u003d cacheTexture.\n\nThe previous condition read:\n\nif (cacheTexture || glyph.cacheTexture \u003d\u003d cacheTexture)\n\nThis test *always* passes.\n\nChange-Id: I418886cb594c81c6178d0f9e9953d975e991cf22\n"
    },
    {
      "commit": "6c8c6d9d44f97ebfba9c6d997665ad58ac39273a",
      "tree": "d1a2622bc681ca6ce03305bc1e46bdcfcb22f7e6",
      "parents": [
        "bac6c12974c278a8045ed8deefb08d0348aa8496",
        "e43f785b7ff3fdf75f6d1c92282ebca6db191f2f"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Sep 04 19:01:47 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 04 19:01:48 2012 -0700"
      },
      "message": "Merge \"Correctly check the height of a glyph prior to caching it\" into jb-mr1-dev"
    },
    {
      "commit": "e43f785b7ff3fdf75f6d1c92282ebca6db191f2f",
      "tree": "fb21c2762b8afa2d09508e775cc025c2d27c0457",
      "parents": [
        "8087246d9964b11de8ce116bc63b156faa4197e0"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Sep 04 18:58:46 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Sep 04 18:58:46 2012 -0700"
      },
      "message": "Correctly check the height of a glyph prior to caching it\n\nChange-Id: Iaf3977afc20fcde65bfda7b9e092b3e723241684\n"
    },
    {
      "commit": "d84aaa23a53b57834b0722ad36c460833dc4823c",
      "tree": "8e49bb44218800edd1d7645828ba1cb4d60b83d6",
      "parents": [
        "c83f982804e39b957fbef5bc3ecab163e03b216e",
        "8f5ad7657b6c7cdb8927d7da5140602b68b450ac"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Sep 04 16:56:16 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 04 16:56:16 2012 -0700"
      },
      "message": "Merge \"Fix line drawing path to use proportional distance from center\" into jb-mr1-dev"
    },
    {
      "commit": "c83f982804e39b957fbef5bc3ecab163e03b216e",
      "tree": "5def31e1c36fe2594293ccd34f435ee11c13186e",
      "parents": [
        "7950d081ac945d97427264f2a0531607097c2c71",
        "8087246d9964b11de8ce116bc63b156faa4197e0"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Sep 04 16:46:19 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 04 16:46:20 2012 -0700"
      },
      "message": "Merge \"Code cleanup in FontRenderer\" into jb-mr1-dev"
    },
    {
      "commit": "8087246d9964b11de8ce116bc63b156faa4197e0",
      "tree": "3bd8fd6c3959ad57032beb2946207807cf890a0b",
      "parents": [
        "9b1204baf4740b4d443e72157dea98571cf84e1f"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Sep 04 16:42:01 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Sep 04 16:44:17 2012 -0700"
      },
      "message": "Code cleanup in FontRenderer\n\nChange-Id: Ic788721c224a77f0a76f4cd6d9817b62e390a5a7\n"
    },
    {
      "commit": "2ecaedd96cdcd0c83afa042cb8ff8e4358afa3cf",
      "tree": "d10d77467f440a54a019228d289fba5056e19fca",
      "parents": [
        "175ae55c0d62b6adbc9b3cc215ad2e65a8b40cc3",
        "9b1204baf4740b4d443e72157dea98571cf84e1f"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Sep 04 15:26:14 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 04 15:26:14 2012 -0700"
      },
      "message": "Merge \"Small code cleanup in FontRenderer\" into jb-mr1-dev"
    },
    {
      "commit": "9b1204baf4740b4d443e72157dea98571cf84e1f",
      "tree": "4b54be4565714748895ff253a8a86beda8e4d9f9",
      "parents": [
        "9f5dab3fc228fa11c32b483e6101ec086895a32b"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Sep 04 15:22:57 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Sep 04 15:25:30 2012 -0700"
      },
      "message": "Small code cleanup in FontRenderer\n\nChange-Id: I09c00debe9b0b4f45b232cae402ed19bdaeabfe4\n"
    },
    {
      "commit": "85399cc606a456e7b439352aea58d4b679d8f1ac",
      "tree": "c64a2590beec60014381f4cd66fcb806c9cc5517",
      "parents": [
        "de66e670a7753283fd5cdc75c2cd42c93cd499c0",
        "9f5dab3fc228fa11c32b483e6101ec086895a32b"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Sep 04 15:05:27 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 04 15:05:28 2012 -0700"
      },
      "message": "Merge \"Refactor FontRenderer.cpp\" into jb-mr1-dev"
    },
    {
      "commit": "035ce2ca92742894f7f906c93d7d217c647aa19a",
      "tree": "091278302dd86f6009db3d86ff95dd607fef8c11",
      "parents": [
        "167611811d4fd6318bc366128590701274488e84",
        "5f7979993979466c79ab4f38d83c6f2aca361662"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Tue Sep 04 15:01:03 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 04 15:01:03 2012 -0700"
      },
      "message": "Merge \"Add support for \"-rtl\" in resources\" into jb-mr1-dev"
    },
    {
      "commit": "8f5ad7657b6c7cdb8927d7da5140602b68b450ac",
      "tree": "2df87bbf09f8d9c202d5b1ec1ce7c21dd87f8da0",
      "parents": [
        "176d105d2f71198966b566d36d4e856a797695c7"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Sep 04 14:35:19 2012 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Sep 04 14:35:19 2012 -0700"
      },
      "message": "Fix line drawing path to use proportional distance from center\n\nboundaryWidth and boundaryLength are now distance from center, instead of\ndistance from edge, in order to avoid unnecessary calculation in the shader. New\ncalculation of these matches drawAARect.\n\nChange-Id: I1c7f576a97a6f0ce00d521661fd56fb62e05e6f2\n"
    },
    {
      "commit": "9f5dab3fc228fa11c32b483e6101ec086895a32b",
      "tree": "f30e239e8396c08f7aa3a5009ca528af3d63591d",
      "parents": [
        "9fc4b356a4552336f661bf4dfaaa19a251194cdb"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Sep 04 12:55:44 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Sep 04 12:55:44 2012 -0700"
      },
      "message": "Refactor FontRenderer.cpp\n\nFontRenderer.h defined several classes and structures that now live\nin the font/ folder. This will make the code easier to read and\nmaintain.\n\nChange-Id: I3dc044e9bde1d6515f8704f5c72462877d279fe2\n"
    },
    {
      "commit": "0baaac5e9adf3ee280ae1239e2e58754a9d2b099",
      "tree": "430a7392973ff3dc04089cc2b3550afcdde673de",
      "parents": [
        "a8557d2169e14997637f57bc897640c8882d4a46"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Aug 31 20:31:01 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Aug 31 20:31:32 2012 -0700"
      },
      "message": "Revert \"Revert \"Add more support for transformed clip rects and paths\"\"\n\nThis reverts commit a8557d2169e14997637f57bc897640c8882d4a46.\n\nChange-Id: I36d4883d548fc47ba6c0b4a42012107d0d2f85a6\n"
    },
    {
      "commit": "a8557d2169e14997637f57bc897640c8882d4a46",
      "tree": "7b2266c166f65ef186e913f18110dab6bbd7d9e8",
      "parents": [
        "703bd32647556524fa8cadbe869c8a8d734640ef"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Aug 31 19:52:30 2012 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Aug 31 20:04:18 2012 -0700"
      },
      "message": "Revert \"Add more support for transformed clip rects and paths\"\n\nthis introduced a dead lock in GradientCache\u0027s ctor.\n\nThis reverts commit dfe082f63e94cde9aee271c94d13de5e7217e036.\n\nBug: 7096001\nChange-Id: I57b8bbab11fb7cb502fa58e3bbf5d19864db874f\n"
    },
    {
      "commit": "703bd32647556524fa8cadbe869c8a8d734640ef",
      "tree": "ec22cb6af69544e035021a9c1178da46f3e2a5cb",
      "parents": [
        "a4640c082c8ccf66ebfb50ace5747409ab6aee55",
        "dfe082f63e94cde9aee271c94d13de5e7217e036"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Aug 31 17:18:03 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 31 17:18:04 2012 -0700"
      },
      "message": "Merge \"Add more support for transformed clip rects and paths\" into jb-mr1-dev"
    },
    {
      "commit": "dfe082f63e94cde9aee271c94d13de5e7217e036",
      "tree": "938584a2a121427d00521a10fe95ce0e34588a06",
      "parents": [
        "fbb4321b94927fd6bd39d327fe56787989b11c71"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Aug 31 17:14:30 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Aug 31 17:17:40 2012 -0700"
      },
      "message": "Add more support for transformed clip rects and paths\n\nChange-Id: I41791b1e1bffef77d503dc9e52428395d2309688\n"
    },
    {
      "commit": "eb32a499194119b3783b86c925172df02e5d2685",
      "tree": "a6ec365abd68197beeffdb734055e0f57d334aca",
      "parents": [
        "00453e7a0182b50cf01e65c97650b526284fe084"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri Aug 31 13:54:03 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri Aug 31 14:18:46 2012 -0700"
      },
      "message": "Paramaterize and adjust the glyph cache sizes\n\nAdd new parameters for the texture size used for the larger, fallback caches.\nBump up the defaults in some situations.\n\nIssue #7045164 Adjust cache sizes for manta\n\nChange-Id: I562118ce785d7f8b6e445178878672e9709d25f2\n"
    },
    {
      "commit": "c0c1c94e2df33ca8b85bb25fa89bf8379f9a6415",
      "tree": "a53a193cd2fac52b2035d69a2f32fe04d8f5b1d1",
      "parents": [
        "63f2fcae3e7089ce0e27837a5152392d503f41eb",
        "f942cf10e04567f6b9456f6258e29c803b8bfb41"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu Aug 30 09:29:36 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 30 09:29:37 2012 -0700"
      },
      "message": "Merge \"Avoid thrashing the glyph cache during the precache phase\" into jb-mr1-dev"
    },
    {
      "commit": "f942cf10e04567f6b9456f6258e29c803b8bfb41",
      "tree": "6eafc4deeb64c506cb9b24236260047b83a032fa",
      "parents": [
        "71d7c3c628fbce04b8bdb60f127588ada00bae13"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu Aug 30 09:06:46 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu Aug 30 09:14:44 2012 -0700"
      },
      "message": "Avoid thrashing the glyph cache during the precache phase\n\nIt is unlikely, but possible, to draw so many glyphs in a frame\n(especially of the glyphs are quite large) that the cache starts flushing\nitself to fit the later glyphs in. This causes unnecessary thrashing, because\nwhen we actually draw the frame, we will again need to flush to fit the\nearlier glyphs in, and then flush again to fit the later ones in.\n\nIt is better to avoid thrashing the cache at the precache phase, and wait\nuntil we actually draw the glyphs that do not fit to do any eviction of\nthe earlier glyphs.\n\nThis change simply notes when we are in the preaching phase, and avoids flushing\nthe cache when a glyph does not fit.\n\nIssue #7081725 avoid thrashing cache during DisplayList recording\n\nChange-Id: I230410ab5b478091b1032fa99dc1752acf868bbe\n"
    },
    {
      "commit": "63f2fcae3e7089ce0e27837a5152392d503f41eb",
      "tree": "f4e1e7c8b56fbf92c95855c7a1d8a58a7de0e4c7",
      "parents": [
        "428f53937efdc362b60d01592bd01c568691f70e",
        "d48885a6c8cd27a8a62552c33b5282e9882e19f6"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu Aug 30 07:22:36 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 30 07:22:37 2012 -0700"
      },
      "message": "Merge \"Fix bug with Fbo layer clipping\" into jb-mr1-dev"
    },
    {
      "commit": "7808581ca3b462fb187aed6b0d1b86fb83a8a215",
      "tree": "09dfc4b7522e6c735e42aa112a3ceb42d3532c9c",
      "parents": [
        "8601e8b3ab3b166166543baaab663224b787d68f",
        "d679b57ef279239cf11bb6c9bd14fb99b07971c9"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Aug 29 21:56:44 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 29 21:56:44 2012 -0700"
      },
      "message": "Merge \"Pre-multiply color components for 2-stop gradients Bug #7033344\" into jb-mr1-dev"
    },
    {
      "commit": "d679b57ef279239cf11bb6c9bd14fb99b07971c9",
      "tree": "8755627bed9d9ffc8045cdd06e54d729f6cab5f3",
      "parents": [
        "2c577f1777a9227c581d41d5c08d674740e39ea9"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Aug 29 21:49:00 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Aug 29 21:56:18 2012 -0700"
      },
      "message": "Pre-multiply color components for 2-stop gradients\nBug #7033344\n\nChange-Id: Ia168501f1dc56ba7a1bb0c55078320432309a66a\n"
    },
    {
      "commit": "d48885a6c8cd27a8a62552c33b5282e9882e19f6",
      "tree": "4f072606d96207049d37be3a5e8035514e923a35",
      "parents": [
        "71d7c3c628fbce04b8bdb60f127588ada00bae13"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Tue Aug 28 17:43:28 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed Aug 29 17:41:49 2012 -0700"
      },
      "message": "Fix bug with Fbo layer clipping\n\nRendering views with alpha causes the creation of Fbo layers. These layers\nare created at the size of the view, clipped by the current clip rect.\nHowever, if the view lies completely outside the current clip rect, the\nFbo layer is created at the full size of the view and copied into place\noutside of its container, causing artifacts like notification items showing\nup outside the notification panel.\n\nFix is to note when the intersect() operation fails and to set an empty bounds\non the layer.\n\nIssue #7069881 Bottom notification sometimes shows below bottom of notification panel shade\n\nChange-Id: Ib52f7c4e503bbe9204cb808755ab269195aa94c1\n"
    },
    {
      "commit": "a798b95a9ef328720febec72d01462cd97e3d4c7",
      "tree": "39c500bbbac11cb34f8c81a934b6573baef8a5fd",
      "parents": [
        "65e08d25faced6059b873c9b175b683ee305dc8b"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Aug 27 17:03:13 2012 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Aug 29 11:14:52 2012 -0700"
      },
      "message": "Use smoothstep to eliminate branches in AA shader\n\nChange-Id: If4ecb1a9446f29b2f8444f5cee551f863c1993e8\n"
    },
    {
      "commit": "5f7979993979466c79ab4f38d83c6f2aca361662",
      "tree": "90c8b098b3c9a53a90c039641b0b7ba379d6b4eb",
      "parents": [
        "5e8e41e41aecd2a4951659a1f3507f3371e0cc47"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Fri Jun 15 20:16:41 2012 -0700"
      },
      "committer": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Thu Aug 23 14:55:33 2012 -0700"
      },
      "message": "Add support for \"-rtl\" in resources\n\n- fix bug #7035019 Need to have \"-rtl\" support for Resource\n\nChange-Id: Ic82145c2ac672729d8a6c695a5f343276a1a0a2c\n"
    },
    {
      "commit": "5a3ec7113c99242fa0d0a328a0ec3892698203f1",
      "tree": "cf76b3c0a6c9dae71617741b597dcee8a51f6d2c",
      "parents": [
        "029675e5ad8737a8a097c17d216afb3f11f0b12c"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri Aug 17 15:44:44 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri Aug 17 16:03:27 2012 -0700"
      },
      "message": "Fix glyph cropping bug\n\nGlyphs were being stored in the glyph cache incorrectly.\nThe second row of glyphs in any column were being positioned exactly\none pixel too high, causing the preceding glyph in that column to be\ncropped, resulting in the reported truncation in some glyphs.\n\nIssue #7003215 Minor UI truncation while reading the mails\n\nChange-Id: I47ce376f78a04d4e07e8b7ed1b3f0b58864c5498\n"
    },
    {
      "commit": "378e919ccb75efe24d5a5aa75ac2c6ef255dcb48",
      "tree": "0dfc3623513371881056d4f00bc8ca6526530105",
      "parents": [
        "6b7d46b78c1c5c1ce3e077c0eed41c730f1686b4"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed Aug 15 15:54:54 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu Aug 16 09:11:49 2012 -0700"
      },
      "message": "Remove CacheTextureLine structure from FontRenderer\n\nCacheTextureLine was useful before we were packing the glyph\ntextures; it allowed simple packing of any particular texture according to\nhow many lines there were in a texture, and how tall those lines were.\nNow that we are packing more efficiently (both horizontally and vertically\nin any given texture line), it is more efficient to have\nopen space in every texture, removing the need for CacheTextureLine (which\nnow gets in the way since it limits how much can be stored in each line).\n\nThis change removes CacheTextureLine and just uses CacheTexture directly,\nallowing caching of glyphs anywhere in the open space of each texture. As before,\nthe packing of these glyphs is determined by the CacheBlock structure, which\nis a linked list of open spaces in each CacheTexture.\n\nChange-Id: Id6f628170df0f676f8743ac7de76f2377fc6a012\n"
    },
    {
      "commit": "6b7d46b78c1c5c1ce3e077c0eed41c730f1686b4",
      "tree": "06fa9b5b26f76397a14d01b17118cf52b249eb8e",
      "parents": [
        "e9c2f18c8ec9c5a09fce0d48a71bb2ce93ca75c4",
        "8025061c594e5171e1bf370d8fdd77e0e9a02b47"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed Aug 15 14:40:36 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 15 14:40:36 2012 -0700"
      },
      "message": "Merge \"Restore scissor state correctly\" into jb-mr1-dev"
    },
    {
      "commit": "2efd5c5886d9acf747bc92f888d731ed558aabcc",
      "tree": "3d7aa77e89d7e356a58a3551b70883b190f7a77c",
      "parents": [
        "21029db15769c9d57ffb972fb846e574ef2376ad"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed Aug 15 13:15:16 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed Aug 15 14:19:20 2012 -0700"
      },
      "message": "Glyph cache optimization\n\nPrecaching at startup was not working. One-liner fix to init the caches\nso that precaching would kick in earlier, saving time at startup by avoiding\nthe multiple-upload issue of caching at render time.\n\nIssue #6893691 long app launch time on manta for some apps comparing to nakasi/stingray\n\nChange-Id: Ie5c7f0536ec8ea371c7892e5e09c1db14795531c\n"
    },
    {
      "commit": "8025061c594e5171e1bf370d8fdd77e0e9a02b47",
      "tree": "9d532060b2c74b1fb1f8c0b75a7d652020a3f298",
      "parents": [
        "978f853d189c1857190b4a2e200c7a283e31ca14"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed Aug 15 13:46:54 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed Aug 15 13:49:42 2012 -0700"
      },
      "message": "Restore scissor state correctly\n\nChrome is disabling the scissor, which doesn\u0027t play well with our\ncode that assumes that we know the state of the scissor. This fix\nsets up our internal state based on the actual state of the scissor\nin the resume() function (which is called after any calls out to the\nChrome or Browser GL functor). This fixes intermittent rendering\nartifacts, including a gray address bar (where the gray background\ngets painted without the clip that is being applied to the text foreground).\n\nIssue #6886339 Address bar in Chrome turns gray after swiping the tabs / favicons drift outside of tab\n\nChange-Id: I3d8a23f4438b41a367336507845baaea90cccc7e\n"
    },
    {
      "commit": "e816baea651476aca4407200d4a5e629b9ab8dfa",
      "tree": "03d9a7d4bdda72e8811486706cb67152a43e7966",
      "parents": [
        "38cc2a5a3ad076fbbb0824a91f49730a4297549b"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu Aug 09 13:39:02 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Tue Aug 14 10:33:30 2012 -0700"
      },
      "message": "Optimize interactions with glyph cache\n\nThere are two fixes here:\n- precaching: instead of caching-then-drawing whenever there is a new\nglyph, we cache at DisplayList record time. Then when we finally draw that\nDisplayList, we just upload the affected texture(s) once, instead of once\nper change. This is a huge savings in upload time, especially when there are\nlarger glyphs being used by the app.\n- packing: Previously, glyphs would line up horizontally on each cache line, leaving\npotentially tons of space vertically, especially when smaller glyphs got put into cache\nlines intended for large glyphs (which can happen when an app uses lots of unique\nglyphs, a common case with, for example, chinese/japanese/korean languages). The new\napproach packs glyphs vertically as well as horizontally to use the space more efficiently\nand provide space for more glyphs in these situations.\n\nChange-Id: I84338aa25db208c7bf13f3f92b4d05ed40c33527\n"
    },
    {
      "commit": "320d46bf844b84351cb80c5d4a4768d86447ac81",
      "tree": "fee65370216aee9df6116a46ebae0edfd8de1272",
      "parents": [
        "c89b14bba0f6cc2c91629080617f7ed215f697f3"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Aug 08 16:05:42 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Aug 08 16:05:42 2012 -0700"
      },
      "message": "Reduce gradients textures size whenever possible\n\nChange-Id: Ifd58625ee62edac3b5d20b77553cb98b6fa2b46e\n"
    },
    {
      "commit": "c89b14bba0f6cc2c91629080617f7ed215f697f3",
      "tree": "484e4a9d722c4d6ec178cb4b0952485a9b5b8bfe",
      "parents": [
        "6ab4511aa61f48cd2b4fe0444077d78cd404bab7"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Aug 08 14:53:48 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Aug 08 14:58:54 2012 -0700"
      },
      "message": "It seems that apparently useless public APIs are actually useful\nBug #6953651\n\nChange-Id: Ic47ce504e63262711f5d3edc76f7d2b9c12471ad\n"
    },
    {
      "commit": "b6039811fa0fbc23f25c47491810faeb04ce3125",
      "tree": "c8d19d235cadfa2a54e381c82eee6a3472931bf0",
      "parents": [
        "a56d9cecee8a34e0554770ac6253dd3a76b9199c",
        "05e97e81a5fa2c9cab4cdda15aa2d036243a0c0e"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Aug 08 14:08:35 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 08 14:08:35 2012 -0700"
      },
      "message": "am 05e97e81: am 0be33f2d: Merge \"Add shortcut to avoid potential divide by zero in some case\"\n\n* commit \u002705e97e81a5fa2c9cab4cdda15aa2d036243a0c0e\u0027:\n  Add shortcut to avoid potential divide by zero in some case\n"
    },
    {
      "commit": "05e97e81a5fa2c9cab4cdda15aa2d036243a0c0e",
      "tree": "bed4dd6d4bbcd175bd25761bfebc32b5651d4ac7",
      "parents": [
        "bce413587973eae29a783d7e273dc2f7db06f7c9",
        "0be33f2d522f76f48062a59ddb520815a0851875"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Aug 08 14:03:58 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 08 14:03:58 2012 -0700"
      },
      "message": "am 0be33f2d: Merge \"Add shortcut to avoid potential divide by zero in some case\"\n\n* commit \u00270be33f2d522f76f48062a59ddb520815a0851875\u0027:\n  Add shortcut to avoid potential divide by zero in some case\n"
    },
    {
      "commit": "33fa1f774c8e7289fd7c39fbc2c65b9361f2c2c4",
      "tree": "d74879134ece535c3930df34a05857566be6307b",
      "parents": [
        "2440e670de0294bdf64592849613db9b8f00ee11"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Aug 07 19:09:57 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Aug 07 19:09:57 2012 -0700"
      },
      "message": "Draw an empty border around glyphs to avoid sampling issues\nBug #6942209\n\nThe font renderer was preserving a 1 px border around each glyph to ensure\nbilinear filtering would work nicely. Unfortunately, this border was not\nset to 0 when glyphs were added in the cache to replace old evicted glyphs.\n\nChange-Id: Ib85afca7ebad5cb63f960dc0e87ae162333dbfe8\n"
    },
    {
      "commit": "17112ad8a21a77620eb1ff14dcf8bdd6b7859712",
      "tree": "823331d71aeda770dd5547c56c589d1f1b6394af",
      "parents": [
        "6624afe37b3be7c469a3613298a2246663a2d409"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Aug 07 11:24:39 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Aug 07 11:25:15 2012 -0700"
      },
      "message": "Cleanup of libhwui\n\nChange-Id: Ib7f5771548462c00027a8ad57badfb68c50644f9\n"
    },
    {
      "commit": "8c654e0934f708e578e7ca969b67885f33a2d3ae",
      "tree": "3b7218c8a2f2d0ca5bced0ce0ad01298fc022a3a",
      "parents": [
        "096298d8aef266fc16a1578c48803433a4f4fb06",
        "4ff0cf4b83605bff630c4e6f1fabe4f72a3f93a1"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Aug 06 14:52:40 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 06 14:52:41 2012 -0700"
      },
      "message": "Merge \"Add new debug tool to track hardware layers updates\" into jb-mr1-dev"
    },
    {
      "commit": "4ff0cf4b83605bff630c4e6f1fabe4f72a3f93a1",
      "tree": "2616ad1230b8ebc22a720945c5841a36572b9545",
      "parents": [
        "bec1d13da2ef3c8c2c4cc4f740474d095068bd8b"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Aug 06 14:51:10 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Aug 06 14:51:10 2012 -0700"
      },
      "message": "Add new debug tool to track hardware layers updates\n\nYou can setprop debug.hwui.show_layers_updates true to flash\nhw layers in green when they update. This is also a setting\nin the Dev. section of the settings app.\n\nChange-Id: Ibe1d63a4f81567dc1d590c9b088d2e7505df8abf\n"
    },
    {
      "commit": "4cb3384772cf7015a4e05789470123efb07219d9",
      "tree": "7e6c9ac12ec65eee61a57619ce471b1bd56ebd35",
      "parents": [
        "f6a341248d65a5637445941bc320f27673496f71",
        "69a3ce1eb1af3129056f7da95a491da0280019b5"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Aug 06 13:12:27 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 06 13:12:28 2012 -0700"
      },
      "message": "Merge \"libutils cleanup\" into jb-mr1-dev"
    },
    {
      "commit": "69a3ce1eb1af3129056f7da95a491da0280019b5",
      "tree": "7f0c69e03db10385c1c1c024d22de7a7135b487e",
      "parents": [
        "5e80cacfad7a09aea9e255fc7b5bfeb30989d1a8"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun Aug 05 12:38:51 2012 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun Aug 05 12:38:51 2012 -0700"
      },
      "message": "libutils cleanup\n\nChange-Id: Ic069539338ba4097dba9399904f02bbd0296c20e\n"
    },
    {
      "commit": "8801b2fef3bc54db1bbb24748d91c909b901116a",
      "tree": "c41cea664917148c773fd49cd0a6b382f8c31b4c",
      "parents": [
        "c09211911c28795354f7ce5a1b75b13ac6a7b4d0"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Aug 03 17:43:31 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Aug 03 17:43:31 2012 -0700"
      },
      "message": "Bowing my head in shame\nBug #6924514\n\nChange-Id: Ifcc08fb5dbaf3f9c6ac3a3e618db2fd6349dc290\n"
    },
    {
      "commit": "18edb81172daa9b98b53d226d94fc03249b1aded",
      "tree": "a660ac4ee7f21e7becfc2b707425f762e96345da",
      "parents": [
        "b92edf99ef268fe0fd76445286d720bd11f967d2"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Aug 03 16:06:55 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Aug 03 16:08:56 2012 -0700"
      },
      "message": "Avoid crash when dumping display lists\n\nWe recently changed the drawText implementation to accept more parameters\nwhich were not taken into account during a dump operation.\n\nChange-Id: Ia1dc682dc7bb2bb02a1f4a514ed5af5556f92a97\n"
    },
    {
      "commit": "a70cd04985eec51d95355cc7b822bc65f4ebce05",
      "tree": "f6f9149058914eff13bfd35b8eea8d213fa08311",
      "parents": [
        "5345c310af8363948cee6a91d11add3ec51e8a9c",
        "211efea7376371ee755edd2ad03e83ef6eea464e"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Aug 03 11:09:49 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 03 11:09:49 2012 -0700"
      },
      "message": "Merge \"Add dithering to gradients\" into jb-mr1-dev"
    },
    {
      "commit": "211efea7376371ee755edd2ad03e83ef6eea464e",
      "tree": "b79530b9f807f24571ce0e9ca143747e8c418725",
      "parents": [
        "42e1e0d482d774cf18a55773e434f02edb9e4462"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jul 31 21:16:07 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Aug 01 19:18:35 2012 -0700"
      },
      "message": "Add dithering to gradients\n\nChange-Id: Ic1208855bde3a254eca2fd7cef43e0f1318ce419\n"
    },
    {
      "commit": "1ae49ab8655baeb0ddf1944d0a66cd598122408a",
      "tree": "ceb2db82250701c5dab5d66052b854364170d380",
      "parents": [
        "413ab3a5a2065295080ae063a72a9a7e30f2d484",
        "8b4072d3fb9bb49d774d97689a065204beca1752"
      ],
      "author": {
        "name": "Raph Levien",
        "email": "raph@google.com",
        "time": "Tue Jul 31 19:26:54 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 31 19:26:55 2012 -0700"
      },
      "message": "Merge \"Fix bug 6892600 Font (character pairs) rendering issue\" into jb-mr1-dev"
    },
    {
      "commit": "42e1e0d482d774cf18a55773e434f02edb9e4462",
      "tree": "33ac1bca20382f2e8ccbf176c89b3476f2ae5c9b",
      "parents": [
        "8ab8fbbf46d8779f53301e7f706f97608eed7117"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jul 30 14:47:51 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jul 31 18:55:16 2012 -0700"
      },
      "message": "Improve gradients\n\nAvoid using textures for common gradients (two stops from 0.0 to 1.0)\n\nChange-Id: Iff55d21b126c8cfc4cfb701669f2339c8f6b131a\n"
    },
    {
      "commit": "8b4072d3fb9bb49d774d97689a065204beca1752",
      "tree": "1356548f2453c28d23458375943c2b21bd91ceb4",
      "parents": [
        "e72a6e977b8436a993c427cf489f2ae05fdeface"
      ],
      "author": {
        "name": "Raph Levien",
        "email": "raph@google.com",
        "time": "Mon Jul 30 15:50:00 2012 -0700"
      },
      "committer": {
        "name": "Raph Levien",
        "email": "raph@google.com",
        "time": "Mon Jul 30 15:53:16 2012 -0700"
      },
      "message": "Fix bug 6892600 Font (character pairs) rendering issue\n\nAlignment on paint for actual glyph drawing needs to always be left,\neven when drawing centered or right aligned text. The x offset for\nalignment is applied by OpenGLRenderer::drawText (and needs to be early\nin the pipeline for quickReject to work). Similar change needed for\ndrawing drop shadow.\n\nAlso fixes bug with mispositioned underline (offset for alignment has\nalready been applied once, no need to do it again in\ndrawTextDecorations).\n\nChange-Id: Id3dcd62de5536a26b158d768889273a1492b35d6\n"
    },
    {
      "commit": "c25259519f1b74bb62a2b051b74537f073436b5c",
      "tree": "f9fe9429a2a5e2692fa3d64dd0da18fdc6dfa477",
      "parents": [
        "33806e25b176efb11a5ee8b0f038bfda8f933f0d"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jul 27 16:41:22 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jul 27 16:41:22 2012 -0700"
      },
      "message": "Rename drawGeneralText to drawText\n\nChange-Id: I5062ea5b0605fc7af27f410fafc930d10f38e926\n"
    },
    {
      "commit": "0412cfcbcdd7224f80a80180a946f0fdd28c3afc",
      "tree": "4a093cb2e7b9b037a8a36bd89d7971f746207bc9",
      "parents": [
        "13a3a87fa7264df29a1f698ce80ada2de3561962"
      ],
      "author": {
        "name": "Chen YANG",
        "email": "chen.yang@intel.com",
        "time": "Wed Jul 25 13:27:40 2012 +0800"
      },
      "committer": {
        "name": "Chen YANG",
        "email": "chen.yang@intel.com",
        "time": "Wed Jul 25 14:19:29 2012 +0800"
      },
      "message": "Add shortcut to avoid potential divide by zero in some case\n\nChange-Id: If4b34c95402daf8ebcc28736edfb2012553aa57c\n"
    },
    {
      "commit": "996e57c84368058be793897ebc355b917a59abc2",
      "tree": "11d598d07a5153872cd496fd3ca7d4a1a3bdecb8",
      "parents": [
        "219dfa4d392851c1ffd7147cb78d4236658a79d8"
      ],
      "author": {
        "name": "Raph Levien",
        "email": "raph@google.com",
        "time": "Mon Jul 23 15:22:52 2012 -0700"
      },
      "committer": {
        "name": "Raph Levien",
        "email": "raph@google.com",
        "time": "Mon Jul 23 16:52:20 2012 -0700"
      },
      "message": "Hardware implementation of glyph positioning (bug 5443796)\n\nThis implementation adds a drawGeneralText() method to the OpenGL\nRenderer, which supports both a global x, y position, an array of\nindividual glyph positions, and also a length parameter (which enables\ndrawing of underline and strikethrough. It also adds the method to the\ndisplay list (with marshalling and unmarshalling).\n\nWith this change, the existing drawText() method is removed entirely, as\nit\u0027s subsumed by the new method. It\u0027s easy enough to revert to the old\nfunctionality if needed by passing in a NULL positions array.\n\nChange-Id: I8c9e6ce4309fd51cc5511db85df99f6de8f4f6f5\n"
    },
    {
      "commit": "98ba89492a477114148fcb1f89675e41679ca7cc",
      "tree": "89db302c556fdbb61cc1e2e21adceb30a8e53372",
      "parents": [
        "00755fed35e4a91291c42a8a47bed8b957e9f8e1"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jul 20 16:50:03 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jul 20 16:58:45 2012 -0700"
      },
      "message": "Make gradients look slightly better\n\nChange-Id: Ib12c628a88b9ec6af1214ce6e5cb14cfde40485e\n"
    },
    {
      "commit": "00755fed35e4a91291c42a8a47bed8b957e9f8e1",
      "tree": "0e680f4f9791bc8eef13ea7c0cce60ceeb86f8f6",
      "parents": [
        "0cb48705ad6e4be93c57d528be2230d0504340b3",
        "416a847633680d94efb926837efdc18726d54918"
      ],
      "author": {
        "name": "Raph Levien",
        "email": "raph@google.com",
        "time": "Fri Jul 20 14:24:19 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 20 14:24:20 2012 -0700"
      },
      "message": "Merge \"Add drop shadow for drawPosText in hwui renderer.\""
    },
    {
      "commit": "416a847633680d94efb926837efdc18726d54918",
      "tree": "0a5d914259e9ae5fa040e179ba5630d7102a49ad",
      "parents": [
        "592b29f4ad3d46b483b2d6ed2c5cfac8d139afe8"
      ],
      "author": {
        "name": "Raph Levien",
        "email": "raph@google.com",
        "time": "Thu Jul 19 22:48:17 2012 -0700"
      },
      "committer": {
        "name": "Raph Levien",
        "email": "raph@google.com",
        "time": "Fri Jul 20 12:55:30 2012 -0700"
      },
      "message": "Add drop shadow for drawPosText in hwui renderer.\n\nThis patch adds support for drop shadows (setShadowLayer) for\ndrawPosText in the hwui renderer. In and of itself, it\u0027s not very\nimportant, but it\u0027s on the critical path for correct mark positioning,\ntracked as bug 5443796.\n\nThe change itself is fairly straightforward - it basically just adds an\nextra \"positions\" argument to all draw and measure methods on the code\npath for drawing drop shadowed text, as well as to the cache key for\ncached shadow textures.\n\nChange-Id: Ic1cb63299ba61ccbef31779459ecb82aa4a5e672\n"
    },
    {
      "commit": "8dcfd5e836341b4a803b04d104a930bb312182d3",
      "tree": "cd2b75a4431f7ecfd869e007c5c15031e74298ed",
      "parents": [
        "0aa87bbfc41e8b5f52de701ac17b4e66a7a7b609"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jul 20 11:36:03 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jul 20 11:47:57 2012 -0700"
      },
      "message": "Clamp gradient textures to max GL texture size\n\nChange-Id: I8ce4e50988f5194fe5ce4bde7945ec01673af3cd\n"
    },
    {
      "commit": "0aa87bbfc41e8b5f52de701ac17b4e66a7a7b609",
      "tree": "f50322171f390068559517c3fc12d3c2909a67c1",
      "parents": [
        "3a136fc0e8eefc4fbff679414cbe003368a4f298"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jul 20 11:14:32 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jul 20 11:14:32 2012 -0700"
      },
      "message": "Fix crash with new LookupGammaFontRenderer\nBug #6853934\n\nChange-Id: I15e6ca73bfe00eff1a37c4b9d2f7f709ee018eb6\n"
    }
  ],
  "next": "eb61cd8296ed7e3f3aef5bd430d846aa54d5d7e2"
}
