)]}'
{
  "log": [
    {
      "commit": "c044ae5dfc62031924c2f4c0ecc87b0da72a6b3f",
      "tree": "094e146f6bf769aae8c142aa5b846b346015a141",
      "parents": [
        "35f475653c2ca922acc358c607b204c8fafd6ad5"
      ],
      "author": {
        "name": "Dan Stoza",
        "email": "stoza@google.com",
        "time": "Fri Jan 08 10:52:16 2016 -0800"
      },
      "committer": {
        "name": "Dan Stoza",
        "email": "stoza@google.com",
        "time": "Mon Jan 11 16:29:39 2016 -0800"
      },
      "message": "libagl: Switch from gralloc to GraphicBufferMapper\n\nRemoves all direct references to the gralloc module from libagl and\nuses the GraphicBufferMapper class instead when locking and unlocking\nbuffers.\n\nAlso a couple of minor code cleanups to eliminate warnings.\n\nChange-Id: Ie982d375b3152d5f677ab54c2067179b8d34c06d\n"
    },
    {
      "commit": "92dc3fc52cf097bd105460cf377779bdcf146d62",
      "tree": "aa1c6a8230541a45e941eb4c459b19b8487e08d3",
      "parents": [
        "06ed9491418ce84e4272bf4201545fa6cfe3932e"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Mar 12 13:12:44 2014 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Mar 12 13:12:44 2014 -0700"
      },
      "message": "native frameworks: 64-bit compile issues\n\n- Fix format (print/scanf)\n- Suppress unused argument warning messages (bonus)\n\nChange-Id: I05c7724d2aba6da1e82a86000e11f3a8fef4e728\n"
    },
    {
      "commit": "5f2165f9455d4893b581b73a67c5431f4344b47e",
      "tree": "cf73c3abcad516a0577087977a668890592dc15f",
      "parents": [
        "870b8aa15cb5c722b5d8eb7726eaa5f1a7c23d69"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 24 18:25:41 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 24 18:26:01 2012 -0800"
      },
      "message": "remove dependency on android_native{s_priv|buffer}.h\n\nChange-Id: Ie4b95f7061c240f37c504414259f92d72c4ffc89\n"
    },
    {
      "commit": "3a0cae8e5f3881cb1bcb02ab7fa4cbacf5b55525",
      "tree": "94dec869cbd2cee9254b3ad6f47048ec67208cf5",
      "parents": [
        "29b5762efc359022168e5099c1d17925444d3147"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Aug 18 16:26:21 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Aug 18 16:26:21 2011 -0700"
      },
      "message": "implement EGL_TEXTURE_EXTERNAL_OES in libagl\n\nthis allows the emulator to display some graphics\n\nChange-Id: Ib4671ad70b8df598d02307f2b9c5b843421cea25\n"
    },
    {
      "commit": "697526bc9e44ce61c88614f98387ae8bbf0a187e",
      "tree": "2a928d6e8442d5ec1990d63e6b355b02a54c3bf6",
      "parents": [
        "ec10d231c0eaadbcb143932e5c1bb7c1953125a7"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Sun May 01 11:33:26 2011 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Tue May 03 16:40:14 2011 -0700"
      },
      "message": "frameworks/base: android_native_buffer_t -\u003e ANativeWindowBuffer\n\nChange-Id: Idc2eabaa805bb6d308ebb315872623f28d428417\nSigned-off-by: Iliyan Malchev \u003cmalchev@google.com\u003e\n"
    },
    {
      "commit": "bb0628d9debc5ddd5b1ca3311d6397bbe668c4ee",
      "tree": "0ec8954a98e2e8e0cc770e25cd284536a386dce2",
      "parents": [
        "3a8e497f3b03967eefb0feda6e0b089654d19972"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jul 29 23:28:03 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jul 29 23:28:03 2010 -0700"
      },
      "message": "remove copybit hack from software opengl (libagl)\n\nh/w acceleration is not supported through software gl + copybit anylonger,\ninstead, h/w opengl must be used. in the system compositor, a new h/w\ncomposition api will be introduced to allow h/w accelerated composition with\noverlays and/or 2D blocks.\n\nChange-Id: I04949cb074ba8c4d637319ace23497c16a58d5bf\n"
    },
    {
      "commit": "c77a20a9d6ab56e79276215d8d1492a9893c9b59",
      "tree": "0c75cf08ccf4f9a5bf115f461764ad241a0c0988",
      "parents": [
        "cd406480fa569ced379232d85efc4742c1bcc8c0",
        "96fb6fb6a647004a6a11ba9ec3847047b9b4062b"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed May 12 11:58:14 2010 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed May 12 11:58:14 2010 -0700"
      },
      "message": "merge from open-source master\n\nChange-Id: I022d0781a232396e2b8a67a420ecf50e64b87d8c\n"
    },
    {
      "commit": "7c5fe4c4f6ad9f5bad5aa7d7dce6122a3124b87d",
      "tree": "c22d524a20003f92c5cafe9d62bf7c451fa1d4bb",
      "parents": [
        "ad5067913055f28c0bfa37a5feb08b9167990f33"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Fri Mar 12 17:11:34 2010 -0800"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Fri Mar 12 17:32:26 2010 -0800"
      },
      "message": "Fix glCopyTexSubImage2D inverted texture bug.\n\nThis bug only affects the software OpenGL ES\ndriver.\n"
    },
    {
      "commit": "8dccb26901973722164f2a11551fd6d5c52081bf",
      "tree": "085878f347b99a4b5141e5e68b7b63939f8848a6",
      "parents": [
        "6b578cba3971f0e4f2489c4cd40785872ab48463"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Feb 04 17:04:53 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Feb 04 17:04:53 2010 -0800"
      },
      "message": "Proper EGLImageKHR error handling\n\nValidate EGLImageKHR format and return an error for unsupported ones.\nAlso make sure to return an error when binding EGL_NO_IMAGE_KHR to a texture\n"
    },
    {
      "commit": "06735863719e08b44edebddcb97861f867bdc01d",
      "tree": "91e438f772441a3905dd0db43b0cdc8647bdcfa2",
      "parents": [
        "3107535d15b5b8f0d01d76fb8804cf92d8223ce0"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Tue Feb 02 22:50:39 2010 -0800"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Tue Feb 02 22:50:39 2010 -0800"
      },
      "message": "Fix ETC1 texture decoding.\n\netc1_decode_image requires the stride argument to be in bytes, but the\nsurface-\u003estride field is in pixels. Convert by multiplying by pixel size.\n"
    },
    {
      "commit": "18b915a1026dfe9d273ee3fd2139b7feed22008c",
      "tree": "456f1eb01eafbfe98c6f071b35c2442dac57c2cc",
      "parents": [
        "b787383ba5208f1d86f90a8cdb762502c1f8829f"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Feb 01 18:24:52 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Feb 02 20:19:54 2010 -0800"
      },
      "message": "implement [2396050] Add ETC1 texture support to AGL\n"
    },
    {
      "commit": "fda42f318a2f6508ed87e51a02bd588db2ddb464",
      "tree": "e310d87008af82b2bbff9159d31ed50f77369359",
      "parents": [
        "51ee7eb55be48c38a9407d4bac30e7ee31b1faaa"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Feb 01 13:45:08 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Feb 01 13:45:08 2010 -0800"
      },
      "message": "fix [2397853] glCopyTexImage2D crashes emulator\n\nFixed a typo which would cause a buffer overflow\n"
    },
    {
      "commit": "a48c654e8207ed820670ea3214a649ff7d92c8a3",
      "tree": "c0e6a17f7f3c89a43dde9d75f09dc02c42e50c31",
      "parents": [
        "97c7a443b792a7406abccfd6eb70e96c0c4d01fa"
      ],
      "author": {
        "name": "Mike Playle",
        "email": "mike.playle@realvnc.com",
        "time": "Fri Jan 29 09:52:22 2010 +0000"
      },
      "committer": {
        "name": "Mike Playle",
        "email": "mike.playle@realvnc.com",
        "time": "Fri Jan 29 09:52:22 2010 +0000"
      },
      "message": "Fix glReadPixels() to verify that both x and y are non-negative.\n"
    },
    {
      "commit": "45351bcae55fea67d5560c8a68887394eff9eda8",
      "tree": "628207f4ebeef9a91654fb489461bbbb89564018",
      "parents": [
        "d6dffeeebdb4aee12a2debe82c41275b0f51d44f"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jan 25 11:49:52 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jan 25 11:49:52 2010 -0800"
      },
      "message": "fix [2341222] AGL version of glDrawTexxOES doesn\u0027t handle \"Z\" value correctly\n"
    },
    {
      "commit": "cc8c35cee5de7fdf2d79a1a3716120b64301cdfe",
      "tree": "a9acd18ab5526d297928f96c094ca22eaa33e593",
      "parents": [
        "cdcee265cad1fe10960bd3df32ac76c4afbd3963"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Nov 12 18:45:53 2009 -0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Nov 13 13:53:39 2009 -0800"
      },
      "message": "eclair snapshot\n"
    },
    {
      "commit": "d13e46158afd6ff23178f015285535e5bf00dd2c",
      "tree": "50d4744156610078e47139d0490e5197aa1073ec",
      "parents": [
        "031a1dc6d8dd4ed150d4887405cc4100b4106116"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Oct 16 18:34:31 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Oct 19 14:23:02 2009 -0700"
      },
      "message": "fix [2151588] glTexSubImage2D() allows pixel format conversion\n"
    },
    {
      "commit": "cfa316b9e759ca0e9ee80fd275f441666532f9b1",
      "tree": "3822f02daaeb0b1abfb3b7add906e4c974d199a0",
      "parents": [
        "8b0bfdf70a5506fc4e7e04fc16f4757a35c00084"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Thu Sep 10 17:13:28 2009 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Thu Sep 10 17:13:28 2009 -0700"
      },
      "message": "AGL\u0027s glCompressedTexImage2D now checks the imageSize parameter.\n\nThis parameter indicates how many bytes of the image data are valid.\n\nPreviously this parameter was ignored.\n"
    },
    {
      "commit": "4d3b5c1e36f2a3746a1c87f8af97d4fe97e8f49e",
      "tree": "253e04766c56308bdea922e22a75acafa43b666f",
      "parents": [
        "512837cef2b7203123d0b8df7ad49454ce932a75"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Jul 21 11:16:54 2009 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Jul 21 11:16:54 2009 -0700"
      },
      "message": "donut snapshot\n"
    },
    {
      "commit": "f13901eaa98241b52062a3ae3b016badce3dee0c",
      "tree": "8512c75b18d91f64188eb9d5fd19ef20135fbc6a",
      "parents": [
        "5fdd6ed871ef6bc5f3c860a1363699fae01132b0"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 15 18:53:32 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 15 18:53:32 2009 -0700"
      },
      "message": "remove libagl\u0027s dependency on gralloc_priv.h\n"
    },
    {
      "commit": "4c4b387afb2e775fcac3b81a249bb7646515dffa",
      "tree": "893af3f7521ad4aa204449dc58132b21177e41fb",
      "parents": [
        "2e123245811a1f31c080a29728fcc1655045f011",
        "6ebed6600464d507a651d99792baa3a23a4f0766"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jun 24 18:31:21 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jun 24 18:31:21 2009 -0700"
      },
      "message": "merge master in master_gl\n"
    },
    {
      "commit": "b12f99b31528a9ab9aa8f5c9fcfb57ad4c8b0517",
      "tree": "68e03f8a2d9a69d5f4152c3f7b85180232b9d380",
      "parents": [
        "cfb991d1f860e5233d383a40967b252793677469"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jun 22 18:04:45 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jun 22 18:09:09 2009 -0700"
      },
      "message": "add glTexParameteri() and fix glTexParameteriv()\n"
    },
    {
      "commit": "0a3139a21e628093893bba8ca0bb0b4742e0522c",
      "tree": "969d7475aae42250b1b72ff31aa69a41def8482d",
      "parents": [
        "7e2a937c4fa91e7c048fdbc37fe2a8dd85361df9"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jun 10 16:01:54 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jun 10 16:15:32 2009 -0700"
      },
      "message": "fix a bug where copybit only renders in the first buffer when used with s/w GL\n"
    },
    {
      "commit": "58a79f47457e9cae2f6880653b581fe3170b0b1f",
      "tree": "a8d9998ea868301995f31298b3c555dadd084ad2",
      "parents": [
        "7189c0054e29a66d945f5657c48d5ecf538ea511"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue May 05 18:21:32 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue May 05 18:21:32 2009 -0700"
      },
      "message": "move android_native_buffer_t declaration into its own private/ui/android_native_priv.h header, since user code should never have access to it.\n"
    },
    {
      "commit": "7189c0054e29a66d945f5657c48d5ecf538ea511",
      "tree": "59ffcb8c9e9aa615b86dd3b033059e1014eda3ac",
      "parents": [
        "21c59d0070fe24a8e04e52ce04d511a924a9932f"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue May 05 18:11:11 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue May 05 18:11:11 2009 -0700"
      },
      "message": "move opengl/include/EGL/android_natives.h to include/ui/egl/android_natives.h and don\u0027t include it from egl.h\n\nthe android_native_ types are just forward declared in egl.h\n"
    },
    {
      "commit": "21c59d0070fe24a8e04e52ce04d511a924a9932f",
      "tree": "fb3f5f8519fce57c714dce607b12dc44aba67702",
      "parents": [
        "e71212ba5397387100a578d23b15862518a7a859"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue May 05 00:59:23 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue May 05 00:59:23 2009 -0700"
      },
      "message": "get rid of android_native_buffer_t::getHandle() and replace it with an handle field\n\nthis abstraction was not necessary. things are easier now.\n"
    },
    {
      "commit": "e71212ba5397387100a578d23b15862518a7a859",
      "tree": "3bbcd9e77ec897c785781aacc35a5498fe2a0edc",
      "parents": [
        "b2dd686d06a608ee40285b93bc0217cf26c2b035"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue May 05 00:37:46 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue May 05 00:37:46 2009 -0700"
      },
      "message": "removed the \"bits\" attribute from android_native_buffer_t.\n\n\"bits\" can never be trusted now that we need to call lock() on the handle to get the virtual address of the buffer.\n"
    },
    {
      "commit": "0926f50664c739eaee60341f8e8c694dc9a4f3eb",
      "tree": "642597de2cc52f7636ae74f1a88f3706e3e54a4a",
      "parents": [
        "7be3e5d2d8101a8f5e12bbdf650431a734f88eba"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon May 04 14:17:04 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon May 04 14:17:04 2009 -0700"
      },
      "message": "update surfaceflinger, libui and libagl to the new gralloc api\n\n- Currently the lock/unlock path is naive and is done for each drawing operation (glDrawElements and glDrawArrays). this should be improved eventually.\n- factor all the lock/unlock code in SurfaceBuffer.\n- fixed \"showupdate\" so it works even when we don\u0027t have preserving eglSwapBuffers().\n- improved the situation with the dirty-region and fixed a problem that caused GL apps to not update.\n- make use of LightRefBase() where needed, instead of duplicating its implementation\n- add LightRefBase::getStrongCount()\n- renamed EGLNativeWindowSurface.cpp to FramebufferNativeWindow.cpp\n\n- disabled copybits test, since it clashes with the new gralloc api\n\n- Camera/Video will be fixed later when we rework the overlay apis\n"
    },
    {
      "commit": "076b1cc3a9b90aa5b381a1ed268ca0b548444c9b",
      "tree": "b87f7863623b37fa9a6cc4ef48934aab46f79986",
      "parents": [
        "4ec21527096d0dcaa99634e6058aca3a415461af"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Apr 10 14:24:30 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Apr 10 14:24:30 2009 -0700"
      },
      "message": "Integrate from //sandbox/mathias/donut/...@145728\n\nSurfaceFlinger rework for new EGL driver model support.\n"
    },
    {
      "commit": "edbf3b6af777b721cd2a1ef461947e51e88241e1",
      "tree": "f09427b843b192cccf8c3b5328cb81dddf6489fa",
      "parents": [
        "d5193d9394c5e58176d7bcdf50ef017f8a3b9e1e"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:31:44 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:31:44 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "d5193d9394c5e58176d7bcdf50ef017f8a3b9e1e",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [
        "43aa2b1cbf7a03e248e10f4d0fec0463257cd52d"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:45 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:45 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "a6938bab1f6fa76ae98ebbe44f4e534e05fa0993",
      "tree": "bc5a1f806bd06db8abb197e80be9ead3644c0bcc",
      "parents": [
        "e41dd756db5184519f4dacbf4d95b333822605c7"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Feb 10 15:44:00 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Feb 10 15:44:00 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@130745\n"
    },
    {
      "commit": "7c1b96a165f970a09ed239bb4fb3f1b0d8f2a407",
      "tree": "df5a6539447324de36e95b057d6b9f0361b7a250",
      "parents": [],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "message": "Initial Contribution\n"
    }
  ]
}
