)]}'
{
  "log": [
    {
      "commit": "44eb2c00861098dd3e2950d923646814b4cc57c2",
      "tree": "2d232b14b931137cc7ebb3b012c3ce4530fa5cf4",
      "parents": [
        "1b68ce327aa37ee0c4e9580d75cb6781337c4312"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Jan 29 09:45:09 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Jan 30 10:49:05 2015 -0800"
      },
      "message": "Refactor blending and texture gl state\n\nChange-Id: Ia6b3c8b2afd3dfcee7f3ce401d846b789612054a\n"
    },
    {
      "commit": "96a5c4c7bab6718524de7253da8309143ab48bef",
      "tree": "c984108195579a6da2aa8ccadded7ec46104d4a4",
      "parents": [
        "06a8a121b0dc02bea7977c4112eb4319fd1a133f"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jan 27 15:46:35 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Jan 28 16:32:39 2015 -0800"
      },
      "message": "Move more GL state management to RenderState and its directory\n\nChange-Id: Ic68584e1c08dc64be2ad43450cb6caa1de834fdc\n"
    },
    {
      "commit": "d41c4d8c732095ae99c955b6b82f7306633004b1",
      "tree": "dbb2e26c6c5a80c7ccf43e5cd5fb1554cc603555",
      "parents": [
        "8dfaa4904205772cdceee63ef3989bcdedf1a914"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Jan 05 15:51:13 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Jan 05 16:49:13 2015 -0800"
      },
      "message": "Add overrides and switch to nullptr keyword for all files\n\nAdds remaining missing overrides and nullptr usages, missed due to\nan extreme failure in tool usage.\n\nChange-Id: I56abd72975a3999ad13330003c348db40f59aebf\n"
    },
    {
      "commit": "51d6a3db97bdd5315f1a17a4b447d10a92217b98",
      "tree": "80803f8d2a5507e2d29bd58c7243a23fca343454",
      "parents": [
        "e84a208317e0ed388fcdad1e6743c7849acb51b0"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Dec 22 17:16:56 2014 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Dec 23 16:53:56 2014 -0800"
      },
      "message": "Cleanup various clang warnings, use unique_ptrs in several places\n\nChange-Id: I347904b25e51fcc7de14b1e72f1acd0f6ba26f3f\n"
    },
    {
      "commit": "73fc558e44be259c0833c8c8074ad2333bcb378d",
      "tree": "7fcfe431026c8967e6f6839b9aaf876012ab825b",
      "parents": [
        "16ea3e6a5b37dc436d1089996004bcae12f5e3b0"
      ],
      "author": {
        "name": "Kévin PETIT",
        "email": "kevin.petit@arm.com",
        "time": "Thu Feb 13 11:03:40 2014 +0000"
      },
      "committer": {
        "name": "Kévin PETIT",
        "email": "kevin.petit@arm.com",
        "time": "Fri Feb 21 13:07:29 2014 +0000"
      },
      "message": "Fixes for 64bit in libhwui\n\nUsing reinterpret_cast allows conversions between pointer types\nand integers which don\u0027t have the same size. The corresponding\nflags is -Wint-to-pointer-cast.\n\nChange-Id: I8ff0c79d235fa6d07b8d9305edc185d946d5133d\nSigned-off-by: Kévin PETIT \u003ckevin.petit@arm.com\u003e\n"
    },
    {
      "commit": "03c00b5a135e68d22ca5bb829b899ebda6ed7e9d",
      "tree": "7538aa95ebbfb5c06aaaebbd22966cddcce2ee1e",
      "parents": [
        "d485ef27c795648c4a05c4c089e8c5a15712fd36"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jun 20 18:30:28 2013 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jun 21 10:13:58 2013 -0700"
      },
      "message": "Batch 9-patches in a single mesh whenever possible\n\nThis change also fixes the way batched bitmaps were handled\ninside a layer. The layer is now correctly dirtied to minimize\nthe amount of pixels to blend.\n\nFix alpha, mode and opaque computations for DrawPatchOp.\n\nChange-Id: I1b6cd581c0f0db66c1002bb4fb1a9811e55bfa78\n"
    },
    {
      "commit": "9e6f3ac109b5cd7736122d1bdf83ed38b9d739c6",
      "tree": "00fa539e34214d163d694adbd316e39785b3e6d4",
      "parents": [
        "2458939b5f926176a485a3196f59688eed78e858"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jun 20 16:31:35 2013 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jun 20 16:31:35 2013 -0700"
      },
      "message": "Add debugging logs for GPU pixel buffers\n\nChange-Id: I7edb04dd30ee6fd823099e72788169cc185e70f2\n"
    },
    {
      "commit": "f9f0016b1ff816eb2c7561eed482c056189005f8",
      "tree": "b0d47161a66da155e402391680e157c4788f74bf",
      "parents": [
        "36e337f971649b00841cc3a0e69869769229af14"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu May 09 11:50:12 2013 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jun 04 11:57:58 2013 -0700"
      },
      "message": "Enable GPU pixel buffers on OpenGL ES 3.0 devices\n\nChange-Id: I164d72ccd7a9bf6ae0e3f79dfef50083558937ba\n"
    },
    {
      "commit": "cf51a4199835e9604aa4c8b3854306f8fbabbf33",
      "tree": "9f5095c3243d0e5dc367c613eee01db80472f1a0",
      "parents": [
        "f8a67f4f5dd4c5499a6e7148331f0286e31203ec"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Apr 08 19:40:31 2013 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Apr 11 14:07:34 2013 -0700"
      },
      "message": "Introduce PixelBuffer API to enable PBOs\n\nPBOs (Pixel Buffer Objects) can be used on OpenGL ES 3.0 to perform\nasynchronous texture uploads to free up the CPU. This change does not\nenable the use of PBOs unless a specific property is set (Adreno drivers\nhave issues with PBOs at the moment, Mali drivers work just fine.)\n\nThis change also cleans up Font/FontRenderer a little bit and improves\nperformance of drop shadows generations by using memcpy() instead of\na manual byte-by-byte copy.\n\nOn GL ES 2.0 devices, or when PBOs are disabled, a PixelBuffer instance\nbehaves like a simple byte array. The extra APIs introduced for PBOs\n(map/unmap and bind/unbind) are pretty much no-ops for CPU pixel\nbuffers and won\u0027t introduce any significant overhead.\n\nThis change also fixes a bug with text drop shadows: if the drop\nshadow is larger than the max texture size, the renderer would leave\nthe GL context in a bad state and generate 0x501 errors. This change\nsimply skips drop shadows if they are too large.\n\nChange-Id: I2700aadb0c6093431dc5dee3d587d689190c4e23\n"
    }
  ]
}
