)]}'
{
  "log": [
    {
      "commit": "52036b19a5f82bc4d75cfcbff99c65df8d25a99b",
      "tree": "138a50b1b6ddc1075af93c4dab85d459aef1d6d3",
      "parents": [
        "736ef1e9dedbdd0c24e27f170034f2f869fd083f"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Feb 14 18:03:37 2013 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Feb 19 12:30:02 2013 -0800"
      },
      "message": "Expose display list APIs\n\nThe exposed APIs are slightly simpler than the full APIs used internally.\nOnly APIs useful to applications are exposed.\n\nChange-Id: Ie03014628d40ad5ef63dedbc52ce3def84429d54\n"
    },
    {
      "commit": "c3566d06421c8acc0aafb18f7e307e5725ce87e1",
      "tree": "3807ef3c1825ce9154bf3bc84fe24f34b331702a",
      "parents": [
        "101ae3bb3909827303121e5e11ed16b7efe36538"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Feb 04 16:16:33 2013 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Feb 15 13:30:09 2013 -0800"
      },
      "message": "DisplayList draw operation reordering\n\nbug:8037003\n\nThe reordering enables similar operations to draw together, minimizing the\nOpenGL state change operations that go inbetween draws. Eventually, multiple\ncomplete canvas draw operations will be merged (into a single glDrawArrays call,\nfor example)\n\nReorders DisplayList draw operations when:\n\n-They can move backwards in the command stream to be after similar\noperations without violating draw ordering\n\n-The OpenGLRenderer is in a simple, replayable state (no complex clip,\nor filter/shadow etc)\n\nAlso adds two system properties to control the deferral/reordering:\n    \"debug.hwui.disable_draw_defer\"\n    \"debug.hwui.disable_draw_reorder\"\nwhich can be set to \"true\" to control the display list manipulation\n\nChange-Id: I5e89f3cb0ea2d2afd3e15c64d7f32b8406777a32\n"
    },
    {
      "commit": "10c0aa246d9b2633c6cb4e5b714abb0031a4f4cd",
      "tree": "bb02e6bfd8b240833ba4611f138565e58aeee2bd",
      "parents": [
        "45dc56f3cc6cf890d2f8a28021f46ad1e9028f5e",
        "ff316ec7a76e52572a2e89b691e6b3bba0cafba3"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Feb 14 18:49:34 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 14 18:51:28 2013 +0000"
      },
      "message": "Merge \"Implement support for drawBitmapMesh\u0027s colors array\""
    },
    {
      "commit": "ff316ec7a76e52572a2e89b691e6b3bba0cafba3",
      "tree": "8418a45b809c9382a0fc3d9d9bb6db6a537dd4cc",
      "parents": [
        "2b44eb75c42e4caa94f0b002f0ea9e134fe7b543"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Feb 13 18:39:43 2013 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Feb 13 18:39:43 2013 -0800"
      },
      "message": "Implement support for drawBitmapMesh\u0027s colors array\n\nChange-Id: I3d901f6267c2918771ac30ff55c8d80c3ab5b725\n"
    },
    {
      "commit": "c932760f667cf56ca7a1aeffde505745dc3632e1",
      "tree": "280d86bf8205c51a2b6b59da6c617e220677e790",
      "parents": [
        "eb26fbe427192bc87bb3dbb7882dbf87f760fab2",
        "7c1a49f5f5ed6613d736464bf5001b777e89ced2"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Feb 13 23:14:26 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 13 23:14:58 2013 +0000"
      },
      "message": "Merge \"Revert \"Merge remote-tracking branch \u0027goog/master-chromium\u0027 into \u0027goog/master\u0027\" DO NOT MERGE\""
    },
    {
      "commit": "8d4aeb7111afac0c3c7e56d4ad5d92f9cfce2ffd",
      "tree": "d526296ca8e54842b15b60adaad484ee29feccf2",
      "parents": [
        "d1a84242a7ba807310d8f8d389796c7163cb97a0"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Feb 12 16:08:55 2013 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Feb 13 11:27:05 2013 -0800"
      },
      "message": "Add a render buffer cache to reuse stencil buffers\nBug #7146141\n\nThis new cache is used in a similar way to LayerCache. It helps\nreuse already allocated stencil buffers and thus avoid churning\nmemory on every frame.\n\nChange-Id: I19551d72da52c40039e65904563600e492c8b193\n"
    },
    {
      "commit": "7c1a49f5f5ed6613d736464bf5001b777e89ced2",
      "tree": "c6726264bde03f4c5957876921d4b15a835b2c71",
      "parents": [
        "d04892d207d50378356feef181ac4e4eff9652d7"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Feb 13 10:25:12 2013 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Feb 13 10:50:20 2013 -0800"
      },
      "message": "Revert \"Merge remote-tracking branch \u0027goog/master-chromium\u0027 into \u0027goog/master\u0027\" DO NOT MERGE\n\nThis reverts commit 6c0307dd0aefe9a08794b155fc03ee60ebd14f25, reversing\nchanges made to a2cd828b749c444d55c2c41c7dbb85088ff94b9f.\n\nConflicts:\n\tpackages/SystemUI/res/values-sv/strings.xml\n\nChange-Id: Ia178efe8b14751583d47b2826bfe3d3d5463dd2e\n"
    },
    {
      "commit": "e67307c816f3fdae2bfba8e9a4410dc015645e91",
      "tree": "a97695ed6c6e087364fba51b3a848d4aedebdb41",
      "parents": [
        "f16c7a97548cedccea291ffebc4388a7f15c9aa1"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Feb 11 18:01:20 2013 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Feb 11 18:04:23 2013 -0800"
      },
      "message": "Prevent crash when setting up a stencil-based clip\nBug #8177690\n\nClear the layers before we setup the stencil to avoid dereferencing\nthe recently deleted rects.\n\nChange-Id: I5dce5f965672f276f9490636d85b6018d3ab9422\n"
    },
    {
      "commit": "d71ff91dcd79f6beea4bbe768ab3bcbb1a6d7c39",
      "tree": "e9a9233171a5edfaf03f2a81f468a7133f54b462",
      "parents": [
        "d68c0964765b48934f528600ba5fe51b45cb8ae1"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Feb 08 13:46:40 2013 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Feb 08 13:46:40 2013 -0800"
      },
      "message": "Apply the clip rect/region to drawLines()\n\nWithout the check to quickReject, drawConvexPath would never\nsetup the clip properly.\n\nChange-Id: I23e5b25de3383c9e9b86eea4ee7a9552f8d9efb4\n"
    },
    {
      "commit": "da8d8b9699fe8e9557389465007e333d3f03dcc1",
      "tree": "a06894789c3d0a66fccdda3030d344a0b072fed6",
      "parents": [
        "2c45e913734a64460c6dcf5b831a32a0af5ba5c1",
        "3bbacf27c0be1bae4e4483577fc89ae3113abe5d"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Feb 07 20:11:56 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 07 20:11:56 2013 +0000"
      },
      "message": "Merge \"Add a RenderBuffer object to store stencil buffers. Bug #7146141\""
    },
    {
      "commit": "3bbacf27c0be1bae4e4483577fc89ae3113abe5d",
      "tree": "102ffa5362c1782af27f2f0abad3e9f481479e79",
      "parents": [
        "c2a972131f1870042eb63847d4b24fbe718d8e3f"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Feb 06 16:51:04 2013 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Feb 07 12:11:22 2013 -0800"
      },
      "message": "Add a RenderBuffer object to store stencil buffers.\nBug #7146141\n\nThis change is needed to add a render buffer cache to avoid\ncreating and destroying stencil buffers on every frame.\n\nThis change also allows the renderer to use a 1 bit or 4 bit\nstencil buffer whenever possible.\n\nFinally this change fixes a bug introduced by a previous CL\nwhich causes the stencil buffer to not be updated in certain\nconditions. The fix relies on a new optional parameter in\ndrawColorRects() that can be used to avoid performing a\nquickReject on rectangles generated by the clip region.\n\nChange-Id: I2f55a8e807009887b276a83cde9f53fd5c01199f\n"
    },
    {
      "commit": "1ba0289d18f16e190a3bc7cf9226d061016dc355",
      "tree": "cc4b448cd10a5b23724741774e63e737c4e433ac",
      "parents": [
        "1095d9ac5df839408b9a549cc638c2909d98dfac",
        "65cd612face362d054a85d0f7e5881c59cd523be"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Feb 07 00:14:05 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 07 00:14:38 2013 +0000"
      },
      "message": "Merge \"Add cap tessellation support\""
    },
    {
      "commit": "65cd612face362d054a85d0f7e5881c59cd523be",
      "tree": "8d71fb22d3a6dd515456a44b0d1010c906abb774",
      "parents": [
        "c93c6aa5553203f05df871804517885fcc071cfd"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Dec 10 17:56:27 2012 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Feb 06 15:35:12 2013 -0800"
      },
      "message": "Add cap tessellation support\n\nbug:7117155\nbug:8114304\n\nCurrently used for lines (with and without AA) and arcs with useCenter\u003dfalse\n\nAlso removes 0.375, 0.375 offset for AA lines\n\nChange-Id: Ic8ace418739344db1e2814edf65253fe7448b0b0\n"
    },
    {
      "commit": "f5db9b8ed42cace00d4e84b4a7e2e63a7c654b35",
      "tree": "ba1e2ba36db9f22cd827b63dc603dec372e101e8",
      "parents": [
        "63af7a113b9f47d9865a4c64488dd73a40711b7a",
        "d81ec456bb097a712bcbc093c5a1e0075434158e"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Tue Feb 05 18:17:19 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 05 18:17:56 2013 +0000"
      },
      "message": "Merge \"Changes needed to roll Skia to r7527.\" into master-chromium"
    },
    {
      "commit": "a362c69d6cdf448107e5a539f77df73937141870",
      "tree": "4124105aced46c2c6c4aa52a3770d4af0d83662f",
      "parents": [
        "ef35927abcd089652f87a985dd6dde7afde58b92"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Feb 04 13:50:16 2013 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Feb 04 13:50:16 2013 -0800"
      },
      "message": "Set the scissor from OpenGLRenderer::drawColorRects\nBug #8131254\n\nThis method is used as an optimization for paths containing only\nnon-overlapping rectangles. The implementation was correctly\nrejecting rectangles invidually but not the bounds of the array\nof rectangles. If quickReject() is not called, setupDraw() won\u0027t\nbe able to properly set the scissor.\n\nChange-Id: I50aa11a4bd8b525b267d36a3039fe7a6fba50518\n"
    },
    {
      "commit": "d81ec456bb097a712bcbc093c5a1e0075434158e",
      "tree": "f77646a3bd547946d647cb44999daa397a54cddf",
      "parents": [
        "d0351a67f17d93038c17955381c5eff3d0679268"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Mon Feb 04 15:42:26 2013 -0500"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Mon Feb 04 15:42:26 2013 -0500"
      },
      "message": "Changes needed to roll Skia to r7527.\n\nChange-Id: I84aef3f8a733c869fade06021816646001532758\n"
    },
    {
      "commit": "ef35927abcd089652f87a985dd6dde7afde58b92",
      "tree": "481c87d0cc4df4ba5e315e990cd190d9b489da93",
      "parents": [
        "b7475e7b0b0ababe8c5f3fbfde565c97960c633c"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jan 31 19:07:29 2013 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jan 31 19:07:29 2013 -0800"
      },
      "message": "Tag HardwareRenderers with a name to help debugging\n\nThe name of the renderer is the same as the window it belongs to.\n\nChange-Id: Ie9adc0a1978afa026923ea41f5540eda6ba65a92\n"
    },
    {
      "commit": "f735c8e5cb59d6e1d1aa152fed7a6480a08d1c2a",
      "tree": "aeec78a2213d2fac2f3d052cf61b67ffb762fd7d",
      "parents": [
        "f158198ccc3a1f53bfebaa6b8f4426e80e1867ea"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jan 31 17:45:55 2013 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jan 31 17:45:55 2013 -0800"
      },
      "message": "Fix tiling on QCOM GPU\n\nRename Caches::startTiling parameter from opaque to discard to\nmake it clearer what its role is. Tweak calls to startTiling\nto preserve the buffer when needed and discard it when possible.\n\nChange-Id: If7f8ff19003f79f36885a0a7207cc61901f637d2\n"
    },
    {
      "commit": "f158198ccc3a1f53bfebaa6b8f4426e80e1867ea",
      "tree": "b76bc1af0d130f77ac7eadb07f445e657f77d268",
      "parents": [
        "f48a2d30c5d5f7c167310ff9ca1cd2310121be7c"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jan 31 17:20:30 2013 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jan 31 17:20:30 2013 -0800"
      },
      "message": "Discard the correct buffer when the bound FBO is not 0\n\nglDiscardFramebufferEXT uses different constants depending on whether\nthe default FBO is bound or not. The code was choosing the proper value\nfor the color buffer but not for the stencil buffer.\n\nChange-Id: I55cfcbdf663582119cb1a6289317016440d9e361\n"
    },
    {
      "commit": "c93c6aa5553203f05df871804517885fcc071cfd",
      "tree": "2a644d36d55c700b85cf1bce209c7110703fe5e3",
      "parents": [
        "cae3d9f0ab2756e3659efc7a08830d2d7b43a05e",
        "2af4635e4a9e448a65ff541252f8f94bc6ac48e0"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Jan 30 18:42:42 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 30 18:42:56 2013 +0000"
      },
      "message": "Merge \"Object-based DisplayList recording\""
    },
    {
      "commit": "c3fedafc5f50100219449125a000e3138f6fb987",
      "tree": "830bacf80a5b9e4194de2d221199dc86efe75555",
      "parents": [
        "8c47e856b067057b5fcbb6eccfc79d1da4cff8f1"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jan 29 17:26:25 2013 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jan 29 17:46:17 2013 -0800"
      },
      "message": "Fix graphical corruption on QCOM GPU\nBug #7146141\n\nThe GL_QCOM_tiled_rendering extension requires careful use of\nstart/endTiling when attaching a renderbuffer dynamically.\n\nChange-Id: I20036683ed3909ffaf40cc3d57a25257e35b6fa2\n"
    },
    {
      "commit": "2af4635e4a9e448a65ff541252f8f94bc6ac48e0",
      "tree": "2ea27d507f81660cdbb8e2cdf48cce875c1b8cdd",
      "parents": [
        "878749fef09c7cb5894f77d9b032f876f9476e47"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Nov 26 18:30:17 2012 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jan 22 13:47:03 2013 -0800"
      },
      "message": "Object-based DisplayList recording\n\nbug:8037003\n\nChanges the DisplayList from using stream read/write commands to use an array of\nobjects manually allocated on a linear buffer.\n\nDepends on frameworks/native change https://googleplex-android-review.googlesource.com/#/c/257695/ which adds LinearAllocator\n\nAlso changes drawRects to use float count instead of rect count, to be more like drawLines/drawPoints\n\nChange-Id: Ia2e4a11acd8f0a757042a05cbc9e7563cb73ee47\n"
    },
    {
      "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": "8ce00301a023eecaeb8891ce906f67b513ebb42a",
      "tree": "3b14c80a49cbec537aad39aa4bb266cac41102f7",
      "parents": [
        "0f8d155363c361199a9d9aa5dcdbc4088990f893"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jan 15 18:51:42 2013 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jan 17 15:39:31 2013 -0800"
      },
      "message": "Implement clipRect with a transform, clipRegion \u0026 clipPath\nBug #7146141\n\nWhen non-rectangular clipping occurs in a layer the render buffer\nused as the stencil buffer is not cached. If this happens on a\nView\u0027s hardware layer the render buffer will live for as long\nas the layer is bound to the view. When a stencil buffer is\nrequired because of a call to Canvas.saveLayer() it will be allocated\non every frame. A future change will address this problem.\n\nIf \"show GPU overdraw\" is enabled, non-rectangular clips are not\nsupported anymore and we fall back to rectangular clips instead.\nThis is a limitation imposed by OpenGL ES that cannot be worked\naround at this time.\n\nThis change also improves the Matrix4 implementation to easily\ndetect when a rect remains a rect after transform.\n\nChange-Id: I0e69fb901792d38bc0c4ca1bf9fdb02d7db415b9\n"
    },
    {
      "commit": "735738c4ddf3229caa5f6e634bf591953ac29944",
      "tree": "4e972e943ffefc5bc268629ed45e8a5783ffe7c5",
      "parents": [
        "57b59e025bc10056daf42cd741b626843ff344f5"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Dec 03 12:34:51 2012 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jan 14 14:27:54 2013 -0800"
      },
      "message": "Preliminary Support for region clipping\n\nRegion clipping, using Canvas.clipPath or Canvas.clipRegion, requires\na stencil buffer to be always present. In addition, extra wiring is\nrequired in JNI and display lists.\n\nThis change only adds the necessary JNI/C++ APIs and some extra\nplumbing to start the real work on properly supporting region\nclipping.\n\nA new debug define called DEBUG_CLIP_REGIONS can be used to draw\nthe current clip region. It is off by default, as is region\nclipping.\n\nThe default implementation of clipPath() and clipRegion(), now\nin native, mimics the previous Dalvik implementation to prevent\nregressions.\n\nChange-Id: I7903e7cfd7412b9b9b622566d4dbfce7bdcec00c\n"
    },
    {
      "commit": "e3a9b24b5e3f9b2058486814a6d27729e51ad466",
      "tree": "17830a6fd61c286854cebb07638d3c2dea6277cd",
      "parents": [
        "5b4628aeeaa0462cd99256d28b636c06b1845930"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jan 08 11:15:30 2013 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jan 08 15:21:42 2013 -0800"
      },
      "message": "Add plumbing for better text scaling\n\nFonts are now described by a transform matrix. This lead to switching\nfrom a vector to a hashmap. This change therefore adds new comparators\nand hash computations to Font.\n\nChange-Id: I2daffa7d6287c18554c606b8bfa06640d28b4530\n"
    },
    {
      "commit": "9acd1b4fa897f3a007dd23dc1f0471b151fa03ad",
      "tree": "4d27cd6bd64e25dede0a2db629a0cdef30cebb15",
      "parents": [
        "6c3c8a3c9a9176aaa68f1061a2e18a6b2fba0f74",
        "672433d90fab7383cd28beac9d4485b566a90940"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jan 04 19:23:42 2013 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 04 19:24:10 2013 -0800"
      },
      "message": "Merge \"Add visual profiling feature\""
    },
    {
      "commit": "672433d90fab7383cd28beac9d4485b566a90940",
      "tree": "8e5088ba91b9a33aeffccd3b2c6f03b0c8e2b144",
      "parents": [
        "5913148104f0b233d861fab2873befc865bf57c0"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jan 04 19:05:13 2013 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jan 04 19:21:54 2013 -0800"
      },
      "message": "Add visual profiling feature\n\nWhen profiling is enabled with debug.hwui.profile set to true,\nsetting debug.hwui.profile_visualizer to true will display the\nprofiling data directly on screen.\n\nChange-Id: I3d5fe3f0347090815087b1cbfce66b8e76d9347b\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": "dcfc836b457a87881da409e1acf251515f121446",
      "tree": "686ad8eef577ad0233f4b8bab40dad76a779bb8b",
      "parents": [
        "e0c93e085ff79b0adedfb7c316c395b9e06581f9"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jan 03 13:08:57 2013 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jan 03 13:08:57 2013 -0800"
      },
      "message": "Remove C++11 related warning\n\nChange-Id: I250ff7bd0ea49908e11b14c995d77312cd09a8b4\n"
    },
    {
      "commit": "5bb3c730f5ebd2a0db1b02a8981c6fdbea6c1a2e",
      "tree": "b049bafac199be2d7e5cd4e86e4d8b03c1416616",
      "parents": [
        "db69db1510e77052f702a997894af5ca4b87e9e0"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Nov 29 17:52:58 2012 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Nov 30 16:29:33 2012 -0800"
      },
      "message": "Apply dev. settings at runtime\nBug #7434649\n\nChange-Id: I16f00eaa8a5eefd9f9849e196cf2cb1659215390\n"
    },
    {
      "commit": "d15321bbf57ff7a4615076fefcee5e196c4fc796",
      "tree": "db1880599db3ea7f2faf16daba38f30d788510b1",
      "parents": [
        "f0afad008bf78576ff364bcd8bc93b7aa8090b34"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Nov 28 14:45:04 2012 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Nov 28 14:45:04 2012 -0800"
      },
      "message": "Use the same interrupt/resume logic for all functor calls\n\nbug:7093396\n\nThe functor was able to change the renderer\u0027s blend mode without it\nbeing restored in process mode. This single path of updating gl caches\nreduces likelihood of this occurring in the future.\n\nChange-Id: Ie367532f9c683299f02bc4f635d7cb31f96db39f\n"
    },
    {
      "commit": "7fae5216d24ebe67e22777ab933689dbcbc001b9",
      "tree": "cafed3ae6a4d8bfad73b81ecc2325ce906e4537d",
      "parents": [
        "dbcec903c858b65c78620e2b06238e42ff4d12da"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Nov 01 11:27:03 2012 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Nov 01 11:27:03 2012 -0700"
      },
      "message": "Avoid tesselation path when useCenter is set\n\nbug:7458300\n\nThe tesselation path doesn\u0027t handle sharp joins.\n\nChange-Id: I28bf03f3b72fc584a205daa40934dda17031098f\n"
    },
    {
      "commit": "41308e2936c768103d0e9c82500e97938d6797f1",
      "tree": "b31868af7c192446f213156bd10ae57211d44712",
      "parents": [
        "74437532fe2a3e9ebd15c61327fd3f2b68c299b3"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Oct 22 20:02:43 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Oct 22 20:02:43 2012 -0700"
      },
      "message": "Properly draw the window background on window resize\nBug #7385090\n\nThis change gets rid of two silly asumptions:\n- That a layer needs to be cleared with opaque black (it shouldn\u0027t,\nit\u0027s already cleared to transparent and the view will cover it up\nwith its own background)\n- The the clip should be dirty at the beginning of a frame only\nwhen the render target is opaque\n\nChange-Id: I415b6d3cab196057fb0281419a53fef601a44e28\n"
    },
    {
      "commit": "7c25aab491707f7324f9941b8cfa9bd2b4b97e76",
      "tree": "2e670c818c33bf2ead5342dad73b48e000d2e94c",
      "parents": [
        "b2e2f2470693e78baed20617f989d9a166864ed4"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Oct 18 15:05:02 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Oct 18 15:05:02 2012 -0700"
      },
      "message": "Defer layer rendering to avoid stalls\nBug #7326824\n\nWhen a layer is taken out of the cache and initialized it gets cleared\nto prepare it for future rendering. This triggers the following sequence\nof operations:\n\nglBindFramebuffer(layer.fbo)\nattach texture storage to FBO\nglClear()\nglBindFramebuffer(defaultFbo)\n\nThe clear forces a resolve on tilers which stalls the CPU for a little\nwhile, thus producing jank during animations. This change moves the\nclear to the next frame when we know we will have to execute a resolve\nanyway.\n\nChange-Id: Ic1939c25df20ed65a4c48dc81ee549b2cd8b6ec3\n"
    },
    {
      "commit": "b2e2f2470693e78baed20617f989d9a166864ed4",
      "tree": "c6987b167eba200f405c170e0ddf7e6881aeca3c",
      "parents": [
        "9c474738a29f77359a461035855d6e9b3935ade1"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Oct 17 18:18:35 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Oct 17 18:18:35 2012 -0700"
      },
      "message": "Take into account the texture layer\u0027s transform for clipping\nBug #7370212\n\nChange-Id: Ibdc3161306f54a1cfe66e08458f05ee01a13b1df\n"
    },
    {
      "commit": "1b85122bd22c4528679ae8bd67077dfc2fdf1847",
      "tree": "4664b577e4dfdd34b63e6004961c8c7d2f3e1e0b",
      "parents": [
        "e13ae648504661ca158d15aa415568e351b380c4",
        "713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Oct 16 19:05:48 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 16 19:05:49 2012 -0700"
      },
      "message": "Merge \"Add API to enable mipmaps on Bitmap Bug #7353771\" into jb-mr1-dev"
    },
    {
      "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": "a92bb4dc9605c86b8773c929412af2dc242b1fa8",
      "tree": "bf77badb865a50d59f6d9ecf40426ab6e0a72bbb",
      "parents": [
        "4682cf02b42f75876f14f512e874c3e798b09c9c"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Oct 16 11:08:44 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Oct 16 11:09:26 2012 -0700"
      },
      "message": "Support clipping in Canvas.drawBitmapMesh()\nBug #7354162\n\nChange-Id: Ifd1d0b365e8a4d88e0ff0629c9ee13f27e1a7331\n"
    },
    {
      "commit": "780c12875ce0c0d3fd072484d4b8b3c327cc4f31",
      "tree": "fbe1cf1e671c4a2725f710f969bc1d690876c981",
      "parents": [
        "a30d969401a8533a5a341664421ba9b1e150bac3"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Oct 04 14:10:49 2012 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Oct 15 13:49:58 2012 -0700"
      },
      "message": "HW Acceleration support for stroked arcs with BUTT caps\n\nbug:4419017\n\nChange-Id: I7371bfb36cef460da861a47d4d945218c6d0c3d0\n"
    },
    {
      "commit": "b30cb10a0c75c2295e89b1b30d91a73f38ee09fb",
      "tree": "b0d09497b77b7efcb553e9a2b665fb2c43652bde",
      "parents": [
        "18c2b6e730f6d639421e45328f4fb2514683efe5"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Oct 05 19:11:37 2012 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Oct 05 19:14:02 2012 -0700"
      },
      "message": "Use offset in line drawing\n\nPartial revert of cb4d6009\n\nbug:7299070\nChange-Id: I1db7b035e3015e0f6d15c95aef71ea74dbeca13e\n"
    },
    {
      "commit": "cf8675ee176a375f873792684d38a47f78348dff",
      "tree": "a50655caeb5717f2e53cc613b66e62ae4dee2ec3",
      "parents": [
        "0944d625448209185452eb4e800daec49de51986"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Oct 02 12:32:25 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Oct 02 13:33:10 2012 -0700"
      },
      "message": "Draw stroked rectangle as meshes instead of textures\nBug #7233734\n\nStroked rectangles were rendered using software generated textures\nwhich would lead to slightly misaligned results. Instead, let\u0027s use\nthe new convex path rendering code that will do the right thing\n(and save a lot of bandwidth.)\n\nChange-Id: Ib95ff581e56c1ecead97e4919298e6fd146ca167\n"
    },
    {
      "commit": "bf09ffb4e0dc820aeae56a3e576aed33cab218da",
      "tree": "23eabf3a77837da300aeab0f442f58868faa3e65",
      "parents": [
        "bfbf6e1232013a999f4776f7fdf7cf6fb577f89b"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Oct 01 13:50:37 2012 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Oct 01 13:50:37 2012 -0700"
      },
      "message": "Quick reject empty paths\n\nbug:7260035\n\nAdding a circle of radius 0 to a path is a no-op in skia, so detect\nthis case both in the PathRenderer, and in quickReject().\n\nChange-Id: I7a172db49a5d5351b4734b39d4e4ca6379658096\n"
    },
    {
      "commit": "a3dc55f83ab583e0a66b893c71b849afa046770a",
      "tree": "bce89bc2bccaa9e4e9eb334b5c3185e360c02dc0",
      "parents": [
        "3cd961292e877cc5fac146290421e9e67aa553a2"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Sep 28 13:55:44 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Sep 28 13:55:44 2012 -0700"
      },
      "message": "Fix a couple of rendering issues\nBug #7253839\n\n1. Make sure we don\u0027t make GL calls while recording display lists\n\n2. Disable an early and trivial clip optimization in font renderer\n   when a perspective transformation is used on the Canvas\n\nChange-Id: I3f1052164239329346854f72d0a0d401fbfecf06\n"
    },
    {
      "commit": "a852ff3a4b637e8101c2f54e110467586fe604cf",
      "tree": "0c940ea5314930c6fdbe15bfc1f4cc17c61d1b78",
      "parents": [
        "93aa70c6dfec91909404c9ade9b4a94574814092",
        "6ed9e43879039ce0cbead08d304edbce79a88ced"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Sep 27 18:45:42 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 27 18:45:42 2012 -0700"
      },
      "message": "Merge changes I9873540e,I4f6c38e3 into jb-mr1-dev\n\n* changes:\n  Skia\u0027s ColorMatrix vector is in the 0..255 range not 0..1 Bug #7248980\n  Don\u0027t use the QCOM_tiled_rendering extension with functors Bug #7247880\n"
    },
    {
      "commit": "54c1a64d5441a964890b44280e4457e11f4f924a",
      "tree": "31e8837991a90927dfa925246df31b8e6ee36a18",
      "parents": [
        "d9730390c6bbac09107866462b9bf45d0b5706cf"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Sep 27 17:55:46 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Sep 27 17:57:24 2012 -0700"
      },
      "message": "Don\u0027t use the QCOM_tiled_rendering extension with functors\nBug #7247880\n\nChange-Id: I4f6c38e37b953c58e6107097c613891a49dac766\n"
    },
    {
      "commit": "cb4d6009576cf08195dc23f341a3f4939c0878bb",
      "tree": "234201781d7baaba35fc3baab178007ab03ea2df",
      "parents": [
        "fd3398c8bf25d8ec7ce813ebda431d67d734f268"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Sep 25 12:00:29 2012 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Sep 26 14:38:11 2012 -0700"
      },
      "message": "Add stroke support to polygonal shape rendering\n\nbug:4419017\nbug:7230005\n\n- Adds support for stroke/strokeAndFill for shapes without joins\n- Fixes path-polygonization threshold calculation\n- Fixes rendering offset (now only used for points)\n- Several formatting fixes\n\nChange-Id: If72473dc881e45752e2ec212d0dcd1e3f97979ea\n"
    },
    {
      "commit": "e529ece37f664f8947a1d4a1e27d679f6f286388",
      "tree": "e085f6513391293f8d0b1c08d9241adc3e48c1e0",
      "parents": [
        "72a374705d32cf715443aa203f75c159e1bc9bd5"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Sep 26 11:23:17 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Sep 26 11:23:17 2012 -0700"
      },
      "message": "Applies a layer\u0027s color filter even when the layer is a quad\nBug #7238059\n\nChange-Id: Ib4736a419bc1a9a67a01d090516ed049fe3aebca\n"
    },
    {
      "commit": "e83221c547cf2038752e5378e72e49a62cfd9954",
      "tree": "04530c1c08620b4c2c5b8209dc6bf7ba713d3f50",
      "parents": [
        "f8538594fe6ba6db3310da042597840601d78cda"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Sep 24 16:01:35 2012 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Sep 25 09:33:22 2012 -0700"
      },
      "message": "Fix alpha channel computation with ColorMatrixColorFilter\nBug #7222476\n\nThere were two issues:\n- Blending was ignored with color filters\n- The addition vector of a color filter was treated as integer values\n  instead of float values\n\nChange-Id: Id94065704a30ee8aaaa5724a9f3a3cff7c50ced7\n"
    },
    {
      "commit": "87e2f757be9b24d369bab354e37c276e851b1fc7",
      "tree": "dd8a123cd63666a7f767cb0c38afcc9726d007db",
      "parents": [
        "97dc9172b0e58979c63de0dedbab656399a62281"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Sep 24 11:37:12 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Sep 24 11:47:52 2012 -0700"
      },
      "message": "Add a property to disable libhwui\u0027s scissor optimization\nBug #7158326\n\nWhen scissor optimization is enabled, OpenGLRenderer will attempt to\nminimize the use of scissor by selectively enabling and disabling the\nGL scissor test.\nWhen the optimization is disabled, OpenGLRenderer will keep the GL\nscissor test enabled and change the scissor rect as needed.\nSome GPUs (for instance the SGX 540) perform better when changing\nthe scissor rect often than when enabling/disabling the scissor test\noften.\n\nChange-Id: Idb68862e287a23358f9188d577ae0f86161902fd\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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "8b4072d3fb9bb49d774d97689a065204beca1752",
      "tree": "1356548f2453c28d23458375943c2b21bd91ceb4",
      "parents": [
        "e72a6e977b8436a993c427cf489f2ae05fdeface"
      ],
      "author": {
        "name": "Raph Levien",
        "email": "raph@google.com",
        "time": "Mon Jul 30 15:50:00 2012 -0700"
      },
      "committer": {
        "name": "Raph Levien",
        "email": "raph@google.com",
        "time": "Mon Jul 30 15:53:16 2012 -0700"
      },
      "message": "Fix bug 6892600 Font (character pairs) rendering issue\n\nAlignment on paint for actual glyph drawing needs to always be left,\neven when drawing centered or right aligned text. The x offset for\nalignment is applied by OpenGLRenderer::drawText (and needs to be early\nin the pipeline for quickReject to work). Similar change needed for\ndrawing drop shadow.\n\nAlso fixes bug with mispositioned underline (offset for alignment has\nalready been applied once, no need to do it again in\ndrawTextDecorations).\n\nChange-Id: Id3dcd62de5536a26b158d768889273a1492b35d6\n"
    },
    {
      "commit": "c25259519f1b74bb62a2b051b74537f073436b5c",
      "tree": "f9fe9429a2a5e2692fa3d64dd0da18fdc6dfa477",
      "parents": [
        "33806e25b176efb11a5ee8b0f038bfda8f933f0d"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jul 27 16:41:22 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jul 27 16:41:22 2012 -0700"
      },
      "message": "Rename drawGeneralText to drawText\n\nChange-Id: I5062ea5b0605fc7af27f410fafc930d10f38e926\n"
    },
    {
      "commit": "996e57c84368058be793897ebc355b917a59abc2",
      "tree": "11d598d07a5153872cd496fd3ca7d4a1a3bdecb8",
      "parents": [
        "219dfa4d392851c1ffd7147cb78d4236658a79d8"
      ],
      "author": {
        "name": "Raph Levien",
        "email": "raph@google.com",
        "time": "Mon Jul 23 15:22:52 2012 -0700"
      },
      "committer": {
        "name": "Raph Levien",
        "email": "raph@google.com",
        "time": "Mon Jul 23 16:52:20 2012 -0700"
      },
      "message": "Hardware implementation of glyph positioning (bug 5443796)\n\nThis implementation adds a drawGeneralText() method to the OpenGL\nRenderer, which supports both a global x, y position, an array of\nindividual glyph positions, and also a length parameter (which enables\ndrawing of underline and strikethrough. It also adds the method to the\ndisplay list (with marshalling and unmarshalling).\n\nWith this change, the existing drawText() method is removed entirely, as\nit\u0027s subsumed by the new method. It\u0027s easy enough to revert to the old\nfunctionality if needed by passing in a NULL positions array.\n\nChange-Id: I8c9e6ce4309fd51cc5511db85df99f6de8f4f6f5\n"
    },
    {
      "commit": "00755fed35e4a91291c42a8a47bed8b957e9f8e1",
      "tree": "0e680f4f9791bc8eef13ea7c0cce60ceeb86f8f6",
      "parents": [
        "0cb48705ad6e4be93c57d528be2230d0504340b3",
        "416a847633680d94efb926837efdc18726d54918"
      ],
      "author": {
        "name": "Raph Levien",
        "email": "raph@google.com",
        "time": "Fri Jul 20 14:24:19 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 20 14:24:20 2012 -0700"
      },
      "message": "Merge \"Add drop shadow for drawPosText in hwui renderer.\""
    },
    {
      "commit": "416a847633680d94efb926837efdc18726d54918",
      "tree": "0a5d914259e9ae5fa040e179ba5630d7102a49ad",
      "parents": [
        "592b29f4ad3d46b483b2d6ed2c5cfac8d139afe8"
      ],
      "author": {
        "name": "Raph Levien",
        "email": "raph@google.com",
        "time": "Thu Jul 19 22:48:17 2012 -0700"
      },
      "committer": {
        "name": "Raph Levien",
        "email": "raph@google.com",
        "time": "Fri Jul 20 12:55:30 2012 -0700"
      },
      "message": "Add drop shadow for drawPosText in hwui renderer.\n\nThis patch adds support for drop shadows (setShadowLayer) for\ndrawPosText in the hwui renderer. In and of itself, it\u0027s not very\nimportant, but it\u0027s on the critical path for correct mark positioning,\ntracked as bug 5443796.\n\nThe change itself is fairly straightforward - it basically just adds an\nextra \"positions\" argument to all draw and measure methods on the code\npath for drawing drop shadowed text, as well as to the cache key for\ncached shadow textures.\n\nChange-Id: Ic1cb63299ba61ccbef31779459ecb82aa4a5e672\n"
    },
    {
      "commit": "04299385c681140239b0dc31d9780d087d2b4d7c",
      "tree": "99e4ac5e64f2f02f525433853c5bb2d5395d2403",
      "parents": [
        "dfab50d8b97a90dca279b119ebe439f595616ffa"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jul 18 17:15:41 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jul 18 17:15:41 2012 -0700"
      },
      "message": "Clip lines, AA rects and points correctly\n\nChange-Id: I900dd986f397b66f133e6021aa4c2539e7abc2b9\n"
    },
    {
      "commit": "8a4ac610e1aaf04931ac1af54b146a7fc8e66114",
      "tree": "72a29e07d41dbf1e85966ec70acba688a93ec90c",
      "parents": [
        "41a48e4a9984eff92705a0c52104b0abd365521a"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jul 17 17:32:48 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jul 17 17:32:48 2012 -0700"
      },
      "message": "Don\u0027t clear the dirty clip flag if it\u0027s not applied\nBug #6833979\n\nChange-Id: I0ea78b7f31a557a335de10d910d03b0520029080\n"
    },
    {
      "commit": "4121063313ac0d6f69f6253cac821d0c1c122086",
      "tree": "b076706786610f6c87c275355b8853289cbfd0f7",
      "parents": [
        "157bd5749f40b0330fccf3ef159d922742103ef2"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jul 16 17:04:24 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jul 16 17:04:24 2012 -0700"
      },
      "message": "Add shader-based text gamma correction\n\nTo enable it, the system property ro.hwui.text_gamma_shader must be\nset to true. For testing, DEBUG_FONT_RENDERER_FORCE_SHADER_GAMMA\ncan be set to 1 in libhwui/Debug.h.\n\nChange-Id: If345c6b71b67ecf1ef2e8847b71f30f3ef251a27\n"
    },
    {
      "commit": "be6f9dc1e71b425b7ac1c40c0a2c72d03eb9fbee",
      "tree": "f921cb8f62118e8943d3e49ff34deb3334bf4fcf",
      "parents": [
        "ef863701ae20f985439abacd84dceac130804cbc"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jul 16 12:41:17 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jul 16 12:41:17 2012 -0700"
      },
      "message": "Don\u0027t copy paints for 9patches\n\nChange-Id: I863100a0dc53fec1a3a1b2acbdeb76e6049ffe58\n"
    },
    {
      "commit": "b1d0a4ed21168fefcb82232c8f22cb95d60acb85",
      "tree": "bb7cf461df68f47b83f1e302610504b534284a38",
      "parents": [
        "dd0d0ba654cea3051e44ba9ae20ac4b269e123c0"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jul 13 18:25:35 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jul 13 18:25:35 2012 -0700"
      },
      "message": "Refactor GammaFontRenderer\n\nThis change is the first step to a shader-based text antialias\ngamma correction.\n\nChange-Id: I9eb02d4c56cb95d05219f712290c865b46141954\n"
    },
    {
      "commit": "586cae3ac69c0c667fbf8a954edbd399f620a717",
      "tree": "400d845a02c1ff3e36db59835072bf23efa789e7",
      "parents": [
        "9c0b188e4231bcb967234f3646c178d22d8a9f50"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jul 13 15:28:31 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jul 13 15:28:31 2012 -0700"
      },
      "message": "Improve rendering speed by disabling scissor tests\n\nThis change improves execution of display lists, particularly on\ntiled renderers. The goal is to disable the scissor test as\noften as possible. Drawing commands are rarely clipped by View\nbounds so most of them can be drawn without doing a scissor test.\n\nThe speed improvements scale with the number of views and drawing\ncommands.\n\nChange-Id: Ibd9b5e051a3e4300562463805acc4fd744ba6266\n"
    },
    {
      "commit": "9c0b188e4231bcb967234f3646c178d22d8a9f50",
      "tree": "97da5988fb8cbcdda4242e2a900d7cd8d4a2abe0",
      "parents": [
        "f877308f77f7c6f3edd91618a092207dd3be9077"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jul 13 12:13:07 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jul 13 12:13:07 2012 -0700"
      },
      "message": "Text shadow alpha handling incorrect\n\nExternal bug: http://code.google.com/p/android/issues/detail?id\u003d34879\n\nThis CL also fixes a bug where a View\u0027s alpha would be applied twice.\n\nChange-Id: I13a1546228f44d4c169259414b6fa103a6e4a0fa\n"
    },
    {
      "commit": "f877308f77f7c6f3edd91618a092207dd3be9077",
      "tree": "57954a9b36692a12d0c881664c3774d378828a5b",
      "parents": [
        "7d3082a3f09e32e7c42b2896e90902157039b10e"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jul 12 18:01:00 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jul 12 18:01:00 2012 -0700"
      },
      "message": "Remove obsolete optimization\n\nChange-Id: I2d43c009c62a7f4a4a2e0a6303bdfa692c4b8c8c\n"
    },
    {
      "commit": "16c88085255c71a1a8fc034129aa2dcc61e1ddd0",
      "tree": "d582a3cff3847c2befee35dccd94d2b1e02b018c",
      "parents": [
        "527ee91b60426b5a344e9905c7f9a14d6d26219e"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jun 11 16:03:47 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jun 11 16:11:56 2012 -0700"
      },
      "message": "Textured text calls could be invisible\nBug #6597730\n\nText would sometimes not appear when rendered with textured content\n(BitmapShader, LinearGradientShader, etc.) This was due to a misuse\nof OpenGL texture unit in FontRenderer. Textured text normally uses\ntwo texture units:\n- texture unit 0 for the font cache\n- texture unit 1 for the textured content (gradient, etc.)\n\nRecent changes to the font renderer allow it to bind new textures\nwhile processing the text\u0027s geometry (this happens when caches get\nfull or when switching font size for instance.) The bindings were\ndone without ensuring the texture unit was the correct one\n(unit 0), thus replacing the content of another texture unit\n(unit 1).\n\nThis lead to text being drawn using the font cache itself as the\ncontent texture, making the text invisible.\n\nChange-Id: I392b4c884f09223305f6cbc6253e2ef9a98944c9\n"
    },
    {
      "commit": "44b2fe3fc114ee5f7273c6b0fee2cc999bf244a2",
      "tree": "8d54bda8c5b7021be5d923beb641a9efb22dcf30",
      "parents": [
        "43fa4c5261a732decae3bbfaea2a00f8bb9b709c"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed Jun 06 19:03:58 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu Jun 07 06:25:04 2012 -0700"
      },
      "message": "Track canvas clearing for swap buffers logic.\n\nA previous fix made it necessary for a frame to render something to GL\nin order to cause a call to eglSwapBuffers(). Besides the calls being\ntracked as part of issuing a DisplayList, there is also a potential call\nto clear the canvas (via glClear()) on non-opaque surfaces. This call is also\ngood to track, since a surface that gets cleared without any other drawing operations\nis worth flipping to the screen (to erase old contents on that surface).\n\nThis fix tracks the status of the pre-draw operations to find out whether\nglClear() was called and then sets the drawing status appropriately.\n\nIssue #6606422 QuickContact dismissal is janky again (Tracking)\n\nChange-Id: I5fcaccfdc9293dd46b83f2fc279730a5d2740ebf\n"
    },
    {
      "commit": "932b7f6765968bd526c03512f3805fbc3924dc29",
      "tree": "bc2597383e0c8973b78627690856f883686526a6",
      "parents": [
        "35b691f056159e938a256420f6d3dec1ebf8bfd9"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Jun 06 13:59:33 2012 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Jun 06 14:02:55 2012 -0700"
      },
      "message": "Revert \"Add more temporary logging for investigating detachFunctor\"\n\nbug:6608646\n\nThis reverts commit 8857b2f76abad1e4ec742dfd85d0c997880be376\n\nChange-Id: I1563b5974c52b84201ae448298f804eb0dcc235d\n"
    },
    {
      "commit": "8857b2f76abad1e4ec742dfd85d0c997880be376",
      "tree": "adb739712e251a296933fb5eeae700f823b0e072",
      "parents": [
        "0c01222ff6507c6e3eaeec7070a510201165d6f3"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jun 05 10:53:20 2012 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jun 05 11:24:46 2012 -0700"
      },
      "message": "Add more temporary logging for investigating detachFunctor\n\nbug:6596807\nChange-Id: Ic9e34e323b12a887f2e8df0773a6155627b6a64f\n"
    },
    {
      "commit": "486590963e2207d68eebd6944fec70d50d41116a",
      "tree": "7a176c6cda01c64980c5c27f9bf495b64d08c84f",
      "parents": [
        "20c15a4271ea3a7fb2210430bfc53f611603cf76"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu May 31 15:21:51 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu May 31 17:22:27 2012 -0700"
      },
      "message": "Skip eglSwapBuffers() call when we do not draw to GL\n\nThe fix is to track when we issue GL drawing commands, and to skip the\ncall to eglSwapBuffers() when a DisplayList does not result in\nany actual rendering calls to GL.\n\nIssue #6364143 QuickMuni list items and buttons flicker instead of fade\n\nChange-Id: I60a02c61a58c32d92481a1e814b4c8a49c6a37a3\n"
    },
    {
      "commit": "3534e13486a0081b1229e698f13bd3a37efa3fb0",
      "tree": "c2efe65a2e556c6559745e41e7379e8d9435e805",
      "parents": [
        "2d243bc62a899f7af77886a2a2a82872d63226bb",
        "9e08012869f77f212186a5d5856831a85fb73d40"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue May 22 17:20:07 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 22 17:20:07 2012 -0700"
      },
      "message": "Merge \"Avoid crash if onDetachedFromWindow called after destroy\" into jb-dev"
    },
    {
      "commit": "9e08012869f77f212186a5d5856831a85fb73d40",
      "tree": "716edb488c20ac96334f2d4e5f8b85f1f4438784",
      "parents": [
        "f8dafa14e058cdc2f408b59be7911abaceb73c47"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue May 22 16:00:19 2012 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue May 22 16:52:00 2012 -0700"
      },
      "message": "Avoid crash if onDetachedFromWindow called after destroy\n\nThis also removes the temporary logging from commit\nf8dafa14e058cdc2f408b59be7911abaceb73c47.\n\nbug:6535911\nChange-Id: Icf1d0438b349a0e92e7d9cefed57a252eed2b9b0\n"
    },
    {
      "commit": "7a9328a3118725389564fe2a9b926837fa3d58a9",
      "tree": "d58f465a269c10e94a4a30f6e2929b8980687c27",
      "parents": [
        "e5a4a3dc1648844f06d29efd42c9306c3cdf177e",
        "f8dafa14e058cdc2f408b59be7911abaceb73c47"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue May 22 14:39:13 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 22 14:39:13 2012 -0700"
      },
      "message": "Merge \"Add temporary functor lifetime logging\" into jb-dev"
    },
    {
      "commit": "e5a4a3dc1648844f06d29efd42c9306c3cdf177e",
      "tree": "bf396dc3918ac55847b1929599cbd3c632e24b0f",
      "parents": [
        "638e012d2b5c2b075b48f86d08daec9b36319cfc",
        "ddf74373616c89e0880a28a2185fd7ce3db91de6"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue May 22 14:28:58 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 22 14:28:58 2012 -0700"
      },
      "message": "Merge \"Ensure we always set the proper blending mode Bug #6527305\" into jb-dev"
    }
  ],
  "next": "f8dafa14e058cdc2f408b59be7911abaceb73c47"
}
