)]}'
{
  "log": [
    {
      "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": "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": "9166f7bfa7796489d9b34f49846541cfd9a640d5",
      "tree": "e36dc21e9a9206ed9dc7d1c33d3dc994c96478c8",
      "parents": [
        "97acf3d48c3e9bea35739dbd16fcf537448528e8"
      ],
      "author": {
        "name": "Gary King",
        "email": "gking@nvidia.com",
        "time": "Tue Sep 29 12:54:07 2009 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jan 12 17:35:35 2010 -0800"
      },
      "message": "Use correct TLS codepath in graphics libraries\n\nDuplicate ARCH_ARM_HAVE_TLS_REGISTER BoardConfig to proprocessor\nHAVE_ARM_TLS_REGISTER define from Bionic\u0027s libc Android.mk to ensure that\nOpenGL libraries (libEGL, libGLESv1_CM, libGLESv2, libGLES_android) use the\ncorrect codepath in bionic_tls.h for accessing the TLS address\n"
    },
    {
      "commit": "9054ddfcd7a159ec6720a8592e9a35205e0a9865",
      "tree": "06147a1d1fcbd2aa2a5fcceda0da2e1e01d86dca",
      "parents": [
        "630aeaf871abf538134d2e0ab4b8ca7e987a90ef"
      ],
      "author": {
        "name": "Doug Kwan",
        "email": "dougkwan@google.com",
        "time": "Mon Dec 07 13:21:24 2009 -0800"
      },
      "committer": {
        "name": "Doug Kwan",
        "email": "dougkwan@google.com",
        "time": "Tue Dec 08 11:22:38 2009 -0800"
      },
      "message": "Add misssing symbol type directives.\n"
    },
    {
      "commit": "69fec4726b744813c39e3e79f573f465076b8297",
      "tree": "6c0501f62b15248cb04afbe19d11a057ac1d688d",
      "parents": [
        "b0f41b767ef0ddf32d14b72a87bc7b29ad0f3ccf",
        "ea5b203790f6a1c356f7bb5aa78e2d8ad92e105c"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Dec 01 18:41:42 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Dec 01 18:41:42 2009 -0800"
      },
      "message": "am 77f17095: am 533a2803: Merge change I18ffb549 into eclair\n\nMerge commit \u002777f17095ed17a6ccc7fc1f1b3ddb31c63bbf66a2\u0027 into eclair-mr2-plus-aosp\n\n* commit \u002777f17095ed17a6ccc7fc1f1b3ddb31c63bbf66a2\u0027:\n  fix [2069023] STOPSHIP: disable DEBUG_COPYBIT\n"
    },
    {
      "commit": "f74573486d10f04a81d94a8b2509193d4f10f0ea",
      "tree": "4a038c1a19ee314a433c1629dbbe6f4530fdead3",
      "parents": [
        "c61de17f143b5f806c5bab9cc58910a322302b70"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Nov 30 12:10:53 2009 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Nov 30 12:10:53 2009 -0800"
      },
      "message": "fix [2069023] STOPSHIP: disable DEBUG_COPYBIT\n"
    },
    {
      "commit": "1850ea3a03a76f5435507cde92470f135143e67a",
      "tree": "033d1611859f340e93116a4d93a0f3c1d56047e2",
      "parents": [
        "34803aa012b74ebc8d080ab9fd3e0b3b10f57725",
        "8386ce0d5b923f08a38745563a4d17c93f95c91e"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Nov 19 19:12:01 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Nov 19 19:12:01 2009 -0800"
      },
      "message": "am b439f561: am 13feccf5: Merge change I39f0003e into eclair\n\nMerge commit \u0027b439f561a6aa3900f1850e71a4aa60618af13f90\u0027 into eclair-mr2-plus-aosp\n\n* commit \u0027b439f561a6aa3900f1850e71a4aa60618af13f90\u0027:\n  fix [2235414] libagl glDeleteBuffers() crashes\n"
    },
    {
      "commit": "a750fc0bf8bdfd47e058ac51a719716440c7aa98",
      "tree": "07a44e478eb4a2e6dfd75a5053184cb7e289257d",
      "parents": [
        "48d2c6051e7906e86511f72fe938fc66180472fa"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Nov 19 17:32:05 2009 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Nov 19 17:32:05 2009 -0800"
      },
      "message": "fix [2235414] libagl glDeleteBuffers() crashes\n\ndon\u0027t dereference null pointers, would happen if one of the array wasn\u0027t bound.\n"
    },
    {
      "commit": "c656e03674b3a2b2bfcc427f9514424df9c39db4",
      "tree": "4ac825c363cebd1661b82ec0db664113a800a950",
      "parents": [
        "df579b446fc3500b44d9c7acdb16e62983f1292a",
        "fb10b6f27805dabeba74c40b818c8d9fe800150a"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Nov 13 09:26:24 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Nov 13 09:26:24 2009 -0800"
      },
      "message": "am 66b5d902: am 27407208: Merge change Icf335098 into eclair\n\nMerge commit \u002766b5d902a29e08237f16be53a84f9c2472df8493\u0027 into eclair-mr2-plus-aosp\n\n* commit \u002766b5d902a29e08237f16be53a84f9c2472df8493\u0027:\n  fix [2236865] STOPSHIP: bump soft gl and egl minor version number\n"
    },
    {
      "commit": "1eeffc68149c9602c05c8ab5cbbdd8027e9a6fdf",
      "tree": "927e941f346a55582a5fce752e42df799009d58b",
      "parents": [
        "e9ba5eec8c2072d71ee2e20643499c5646e75a56"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Nov 12 15:19:42 2009 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Nov 12 15:19:42 2009 -0800"
      },
      "message": "fix [2236865] STOPSHIP: bump soft gl and egl minor version number\n"
    },
    {
      "commit": "51f7605e375d7d370dc8304bb500196c9c739913",
      "tree": "b032f8bbf13b94ebf027724d3e9e18cd79437379",
      "parents": [
        "95df5e89247adefd191afa2c1b1cef24d70acd76",
        "cf3289cd9c0a91095e6416ef9979b74789bc4e27"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Nov 09 19:38:43 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 09 19:38:43 2009 -0800"
      },
      "message": "am 0b9d3ba2: am c421fc2a: Merge change Id09376d1 into eclair\n\nMerge commit \u00270b9d3ba2feab494e7bbd180b51a4311864d08e13\u0027 into eclair-mr2-plus-aosp\n\n* commit \u00270b9d3ba2feab494e7bbd180b51a4311864d08e13\u0027:\n  fix [2071412] work around mdp 32-bits fade limitation\n"
    },
    {
      "commit": "198340395d40a30117325968330d7ca4b1a8123e",
      "tree": "aa600df0f0ec4747adbd7a832abfbf0c54689553",
      "parents": [
        "37dea29988f218bafc4f14616b2a215ac8b9189b"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Nov 09 17:55:59 2009 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Nov 09 17:55:59 2009 -0800"
      },
      "message": "fix [2071412] work around mdp 32-bits fade limitation\n\nmake sure to always specify blits *inside* the source bitmap.\n"
    },
    {
      "commit": "ff230a51f53a2c4878c4e126c1625df68af14089",
      "tree": "38bb7723a160f55406b317d11afc9a1a210c15fb",
      "parents": [
        "98a01fd467ad96a80d10cc3bf3b2e571419b908c",
        "5a1890d4c14fb9bd953d8110a29f001cbfea1e0f"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Nov 09 11:00:18 2009 -0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Nov 09 11:00:18 2009 -0800"
      },
      "message": "merge from open-source master\n"
    },
    {
      "commit": "8b6b95abaec4a7e3df80a648bed75aa5aa74e8fe",
      "tree": "73554de67418ed1062f03e488d5b1fa74e08a76f",
      "parents": [
        "08fdbc5e9c6b1c70ce406327f25a4f6386f4b03c"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Nov 03 16:17:55 2009 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Nov 04 14:51:18 2009 -0800"
      },
      "message": "part of fix [2186418] switch passion to 24-bits framebuffer\n\nadd support for RGBX_8888 EGLConfigs in the software renderer\n(since that\u0027s what we\u0027re using in the MDP case)\n"
    },
    {
      "commit": "bc4929117d0b07fec2f0986f38641eecc9f20d55",
      "tree": "aee28b171b44bad968e739cd2252e00bae0bd99e",
      "parents": [
        "009248d978db78dc3c4a02b960d68745d2e99487"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Nov 03 20:38:08 2009 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Nov 03 21:08:06 2009 -0800"
      },
      "message": "fix [2236832] software OpenGL ES driver doesn\u0027t work on sholes\n\nmake sure to not pass our fake handles to the real gralloc\n"
    },
    {
      "commit": "33e18e4ec7fc0083fc00a183e4f01418db263420",
      "tree": "c3091c7f5228de97e8c350b41c3fce19369a5014",
      "parents": [
        "374661062231783a97de19f5551d0e5af4dbba6e",
        "b44efdc6ba8fc792d10ea7560c2f03292b253c7b"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 03 18:04:49 2009 -0500"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 03 18:04:49 2009 -0500"
      },
      "message": "Merge change I56981989 into eclair\n\n* changes:\n  fix [2231527] Compatibility with SpaceJunk game (OpenGL)\n"
    },
    {
      "commit": "b44efdc6ba8fc792d10ea7560c2f03292b253c7b",
      "tree": "1e015bef9b4b1c0a6dd1abfe07f74f194363b878",
      "parents": [
        "aa628c911a6ec727f4cff0d664a9af5d91770828"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Nov 02 18:33:08 2009 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Nov 02 18:33:08 2009 -0800"
      },
      "message": "fix [2231527] Compatibility with SpaceJunk game (OpenGL)\n\nwe treated all lights as local lights when transforming their\nposition back to object space.\n"
    },
    {
      "commit": "6fee064809068fe1a7da63d55678d9a222b0be15",
      "tree": "119f2ce4dc9362a7e389eac87abe1a7d7c691c5c",
      "parents": [
        "aa628c911a6ec727f4cff0d664a9af5d91770828"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Nov 02 17:48:33 2009 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Nov 02 17:48:33 2009 -0800"
      },
      "message": "fix[2228133] pixelflinger ignores the \"vertical stride\" leading to artifacts when playing back video\n\nwe lost the concept of vertical stride when moving video playback to EGLImage.\nHere we bring it back in a somewhat hacky-way that will work only for the\nsoftgl/mdp backend.\n"
    },
    {
      "commit": "d95c322af3b0420853fe49ff6fab7b56ed16072f",
      "tree": "d82036b6bf49011ba190dc3e83222211a2333891",
      "parents": [
        "964d94306b72d9f3f52bdad6fc8d65a191c82ee7"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Fri Oct 30 18:29:08 2009 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Fri Oct 30 18:29:08 2009 -0700"
      },
      "message": "libagl: silence a LOGD\n\nSigned-off-by: Iliyan Malchev \u003cmalchev@google.com\u003e\n"
    },
    {
      "commit": "df2d92940550bc68c3c237937bce7ac16d9fa91b",
      "tree": "a21e5e8b9975cc71a6451739c5cc0e3a025e2c43",
      "parents": [
        "b0d0de329d73a70e8825ab9a7069b4c56645dc48"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Oct 28 21:00:29 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Oct 29 16:45:41 2009 -0700"
      },
      "message": "return proper error code from eglCreateImageKHR\n"
    },
    {
      "commit": "2ad8ec50a5aa91ad4881602467d41c8a54cbf6e4",
      "tree": "b4e55573b45d314a2b80998d2796fca7aaf45363",
      "parents": [
        "d5493f3f5e7e971a98dd508874613a6a68196cd2"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Oct 27 23:33:48 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Oct 28 14:49:44 2009 -0700"
      },
      "message": "fix [2071412] work around mdp 32-bits fade limitation\n\nin the case where we fade a 32-bits surface (ie: GL_MODULATE w/ a,a,a,a + blending),\nwe first make a copy of the background into a RGB buffer, then we blend the 32-bits\nsurface as usual (without the alpha component), and finally blend the copy of\nthe background on top with 1-a. This uses a lot of bandwidth, but no CPU time.\n"
    },
    {
      "commit": "54ba51dff21de666c5ae3bf3abd4f0634ebb0676",
      "tree": "58a69dccdbfd227b9de3c58a416de45d2a8d3513",
      "parents": [
        "36bc94173c957f33f70bcd16c369951f5b2dc3f6"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Oct 26 20:12:37 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Oct 27 13:13:29 2009 -0700"
      },
      "message": "    fix [2143798] Need to figure out how to do video\n\n    Use EGLImageKHR instead of copybit directly.\n    We now have the basis to use streaming YUV textures (well, in fact\n    we already are). When/if we use the GPU instead of the MDP we\u0027ll\n    need to make sure it supports the appropriate YUV format.\n\n    Also make sure we compile if EGL_ANDROID_image_native_buffer is not supported\n"
    },
    {
      "commit": "898300890d140f3ee6ddb504a558d2bae5b05a2b",
      "tree": "d615476941f15b6cd3e0b3e58597bd44938fa470",
      "parents": [
        "89c515fa5800a7c528f39564dd87df53fa5519ac",
        "0985f6a4ea1c457d98b0169ba9caa6b3713b1c7e"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 19 18:27:47 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 19 18:27:47 2009 -0400"
      },
      "message": "Merge change I0953c1d5 into eclair\n\n* changes:\n  fix [2153873] EGL-1.4 software implementation misses surface attributes\n"
    },
    {
      "commit": "0985f6a4ea1c457d98b0169ba9caa6b3713b1c7e",
      "tree": "63c010d156d8a1c8318b305057789e2c4caacef8",
      "parents": [
        "d13e46158afd6ff23178f015285535e5bf00dd2c"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Oct 19 14:46:27 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Oct 19 14:46:27 2009 -0700"
      },
      "message": "fix [2153873] EGL-1.4 software implementation misses surface attributes\n"
    },
    {
      "commit": "e614aeaf322d1ca2882f06d79ef621b4abb8889f",
      "tree": "cac357d448cd7229431763ad9e3bad972e16a8b4",
      "parents": [
        "5694da94a735725f66fe686a92f27134d0801a36",
        "d13e46158afd6ff23178f015285535e5bf00dd2c"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 19 17:31:52 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 19 17:31:52 2009 -0400"
      },
      "message": "Merge change Ide4c8cbc into eclair\n\n* changes:\n  fix [2151588] glTexSubImage2D() allows pixel format conversion\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": "6dbedd75199a8cf9cf2932025b63f90f503e7651",
      "tree": "348228c1c256db821a0abcc49d1b8fd5a78c5d71",
      "parents": [
        "031a1dc6d8dd4ed150d4887405cc4100b4106116"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Oct 16 16:17:58 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Oct 16 18:24:12 2009 -0700"
      },
      "message": "one step towards fixing [2071412] work around mdp 32-bits fade limitation\n\nsimplify the GL_MODULATE case and allow blending disabled with RGBA texture\n"
    },
    {
      "commit": "97640b9320eac5f5709f48550ff37e9f41297065",
      "tree": "71d940bdc9c024cf448910d7f1ec68802ff42e6b",
      "parents": [
        "17a8f6901e3f1a40a142954f67b4823faeb0c23e"
      ],
      "author": {
        "name": "Christoffer Gurell",
        "email": "chgur@tat.se",
        "time": "Mon Oct 12 11:57:27 2009 +0200"
      },
      "committer": {
        "name": "Christoffer Gurell",
        "email": "chgur@tat.se",
        "time": "Mon Oct 12 11:57:27 2009 +0200"
      },
      "message": "Fix obvious typo bug in egl.cpp\n\ncan (and does sometimes) lead to accessing array with -1 as index\n"
    },
    {
      "commit": "56fa27572a2bbdd84a4762968327dba670fedae0",
      "tree": "2fcfb821a9ad845cc8f3b34131db962b2d97b795",
      "parents": [
        "737e786acffe87a086720bf2cf0d8b9f818b12be"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun Sep 27 20:18:16 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun Sep 27 20:18:16 2009 -0700"
      },
      "message": "fix [2147737] Pixel Flinger needs to set EGL_RENDERABLE_TYPE to EGL_OPENGL_ES_BIT\n\nAlso set max swap interval to 1, which is the only supported value currently.\n"
    },
    {
      "commit": "c5f0155d7f60b4eeb3194898c7772e18fd011402",
      "tree": "8b75e25876c29f9ea2a5130935ee4ee80ee6d9de",
      "parents": [
        "1ae4f51bedc85a1666b321a42e933c3075d03cee"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Sep 24 14:22:29 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Sep 24 14:22:29 2009 -0700"
      },
      "message": "OpenGL ES doesn\u0027t allow glColorPointer with a size parameter other than 4\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": "e03eaa1551a644e9a13c327d16cc09bfd7649d78",
      "tree": "b38dd00e41613f1a80e22d6e403d21b7d6fec136",
      "parents": [
        "d914215edf600f811f7ad8cad2eab9049cf859a4"
      ],
      "author": {
        "name": "Martin Storsjo",
        "email": "martin@martin.st",
        "time": "Tue Aug 11 18:01:14 2009 +0200"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 25 18:35:54 2009 -0700"
      },
      "message": "Calculate specular lighting correctly\n\nSince the lighting calculations are done in object space, the vector\nfrom the object to the viewer also needs to be transformed to object\nspace.\n"
    },
    {
      "commit": "d914215edf600f811f7ad8cad2eab9049cf859a4",
      "tree": "b2f3402f495c89f423ddf596c01551cd0c005085",
      "parents": [
        "7a261bb219091cfedb890d9f841df52badf8dcc7"
      ],
      "author": {
        "name": "Martin Storsjo",
        "email": "martin@martin.st",
        "time": "Mon Aug 10 13:02:28 2009 +0200"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 25 18:35:03 2009 -0700"
      },
      "message": "If FLAGS_2D_PROJECTION is set, the MVP matrices need updating when changing the viewport.\n"
    },
    {
      "commit": "7e05c0e8868fc2f1baa187da16654b7e6bcd2de2",
      "tree": "6976156737cd1639f489b00396f9582af8f0ca08",
      "parents": [
        "cdda8cd6c2a4fe30d51fa72adeaa8dbeb595ba59",
        "924cba8056a64b467e2719c302f4c3dc0920460d"
      ],
      "author": {
        "name": "Android Code Review",
        "email": "code-review@android.com",
        "time": "Tue Aug 25 14:37:28 2009 -0700"
      },
      "committer": {
        "name": "Android Code Review",
        "email": "code-review@android.com",
        "time": "Tue Aug 25 14:37:28 2009 -0700"
      },
      "message": "Merge change 11093\n\n* changes:\n  If FLAGS_2D_PROJECTION is set, the MVP matrices need updating when changing the viewport.\n"
    },
    {
      "commit": "0696a572294bbaa977245afb630065de3278473b",
      "tree": "af9b5d75ae6f7369c29bde4bf6144b2456234677",
      "parents": [
        "18a00d3b082bc6a49dcee1d921fadf2cc2a12b45"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Aug 20 00:12:56 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Aug 20 00:12:56 2009 -0700"
      },
      "message": "better error handling in EGL\n"
    },
    {
      "commit": "5221271375f361b84a6eeec3d7086f223997fbb3",
      "tree": "f65cab160cf38b9ed577f1cb5bc2f9882fc8631c",
      "parents": [
        "40ef81c7fce7cd1b028aec7b8b27b77ce6bf7b90"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 11 22:34:02 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 11 23:32:29 2009 -0700"
      },
      "message": "second take, hopefully this time it doesn\u0027t break one of the builds: \"SurfaceFlinger will now allocate buffers based on the usage specified by the clients. This allows to allocate the right kind of buffer automatically, without having the user to specify anything.\"\n"
    },
    {
      "commit": "b2fd4665e66fe81969f1f07fd724c6f68dd8f7f1",
      "tree": "8564d48ba85748bdb281a3bcda22b41ed17c72e8",
      "parents": [
        "01b535185805d5b22c5fffc30833decdca308b5b"
      ],
      "author": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Tue Aug 11 20:49:35 2009 -0700"
      },
      "committer": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Tue Aug 11 20:49:35 2009 -0700"
      },
      "message": "Revert \"SurfaceFlinger will now allocate buffers based on the usage specified by the clients. This allows to allocate the right kind of buffer automatically, without having the user to specify anything.\"\n\nThis reverts commit 8b76a0ac6fbf07254629ed1ea86af014d5abe050.\n"
    },
    {
      "commit": "df37b62c62f8efd3b5a433f9b4d40d30cec13a31",
      "tree": "43c783e665b9e1c47210d3c5a8f929b33acda72f",
      "parents": [
        "d779f052b4180f347ed0bd725fdfedda504773e5"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Aug 10 21:59:56 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 11 16:12:56 2009 -0700"
      },
      "message": "SurfaceFlinger will now allocate buffers based on the usage specified by the clients. This allows to allocate the right kind of buffer automatically, without having the user to specify anything.\n\nThis change makes SurfaceHolder.setType(GPU) obsolete (it\u0027s now ignored).\nAdded an API to android_native_window_t to allow extending the functionality without ever breaking binary compatibility. This is used to implement the new set_usage() API. This API needs to be called by software renderers because the default is to use usage flags suitable for h/w.\n"
    },
    {
      "commit": "b94878cfb695296afb30456b5bdd5927951a66ed",
      "tree": "369c335621ff89c5c70389c5183b933244051c6e",
      "parents": [
        "e0c54121b0036117079e5e2b28a913a34d5053ab"
      ],
      "author": {
        "name": "Martin Storsjo",
        "email": "martin@martin.st",
        "time": "Tue Aug 11 18:01:14 2009 +0200"
      },
      "committer": {
        "name": "Martin Storsjo",
        "email": "martin@martin.st",
        "time": "Tue Aug 11 18:01:14 2009 +0200"
      },
      "message": "Calculate specular lighting correctly\n\nSince the lighting calculations are done in object space, the vector\nfrom the object to the viewer also needs to be transformed to object\nspace.\n"
    },
    {
      "commit": "924cba8056a64b467e2719c302f4c3dc0920460d",
      "tree": "dc9dabbaf2dc9165043ead16e7cb87de46de7a90",
      "parents": [
        "e0c54121b0036117079e5e2b28a913a34d5053ab"
      ],
      "author": {
        "name": "Martin Storsjo",
        "email": "martin@martin.st",
        "time": "Mon Aug 10 13:02:28 2009 +0200"
      },
      "committer": {
        "name": "Martin Storsjo",
        "email": "martin@martin.st",
        "time": "Mon Aug 10 13:03:59 2009 +0200"
      },
      "message": "If FLAGS_2D_PROJECTION is set, the MVP matrices need updating when changing the viewport.\n"
    },
    {
      "commit": "dfbec0e282636c9a6bfcc4a18c732911f24445b2",
      "tree": "91315024438d95975449b80de8e8b58cb6bd496a",
      "parents": [
        "9fbeb7c6e2b48ea5ee5696e7f8062a4118329567"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Aug 07 20:55:14 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Aug 07 20:55:14 2009 -0700"
      },
      "message": "add support for RGBX_8888\n"
    },
    {
      "commit": "cf81c84e43eb33931b950fa2c9b4c6f51afe7197",
      "tree": "c84f34e7c2c811efb62f9207bfe553bf507b74cd",
      "parents": [
        "fa170f513338322102a200de7d1fd696e51d55c8"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jul 31 14:47:00 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jul 31 14:47:00 2009 -0700"
      },
      "message": "be more robust when errors occur upon EGL surface creation (ie: don\u0027t crash)\n"
    },
    {
      "commit": "cb6b9041647b4f080324742eee5ce709960ff610",
      "tree": "14e5efafa0eace5d3a7943dc9c6316880ef22d11",
      "parents": [
        "69bdcb9b7b5089984bf474f30029fa024f519e47"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jul 30 18:14:56 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jul 30 18:14:56 2009 -0700"
      },
      "message": "fixed some issues with the software renderer when surfaces are made current.\n\nthere was several issues:\n- when a surface was made non-current, the last frame wasn\u0027t shown and the buffer could stay locked\n- when a surface was made current the 2nd time, it would not dequeue a new buffer\n\nnow, queue/dequeue are done when the surface is made current.\n\nfor this to work, a new query() hook had to be added on android_native_window_t, it allows to retrieve some attributes of a window (currently only width and height).\n"
    },
    {
      "commit": "dee1b302ed9071c634131ae838d6a7de0d7b912e",
      "tree": "f56276c6f991550f3c8ebde1eab0dd8f1e4560d1",
      "parents": [
        "9261bae1d2a769cb7453d2cadb6040be38ec86e5",
        "02f54246f55f0ef4263f91062d350876ade5dd78"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Jul 29 14:57:05 2009 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Jul 29 14:57:05 2009 -0700"
      },
      "message": "merge from donut\n"
    },
    {
      "commit": "02f54246f55f0ef4263f91062d350876ade5dd78",
      "tree": "11203fd1998828f47f97f07de1114a0f54790a39",
      "parents": [
        "4d3b5c1e36f2a3746a1c87f8af97d4fe97e8f49e"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Jul 29 14:25:07 2009 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Jul 29 14:25:07 2009 -0700"
      },
      "message": "donut snapshot\n"
    },
    {
      "commit": "9261bae1d2a769cb7453d2cadb6040be38ec86e5",
      "tree": "b9edeeb20bf20eb9f76902a9671dbe10e871717b",
      "parents": [
        "4cce5bd5ccc7c8468d0f8cc359525f82a45dedec",
        "4d3b5c1e36f2a3746a1c87f8af97d4fe97e8f49e"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Sat Jul 25 19:52:22 2009 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Sat Jul 25 21:15:25 2009 -0700"
      },
      "message": "Merge korg/donut into korg/master\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": "77de619c059ec87cb100dd1cd339f9ecbd5f43d2",
      "tree": "bca0e25431d453f2468370585cc7ed095677acb6",
      "parents": [
        "b2fb847ff443c1dd5ac09d2ef02bf14cc09580a1",
        "4cce5bd5ccc7c8468d0f8cc359525f82a45dedec"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Jul 16 14:54:11 2009 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Jul 16 14:54:11 2009 -0700"
      },
      "message": "Merge commit \u0027goog/readonly-korg-master\u0027 into merge_korg_master\n\n* commit \u0027goog/readonly-korg-master\u0027:\n  Fixed Android issue #400, where the Intent documentation was inaccurate in a number of places, undoubtedly causing untold grief to innumerable masses.\n  Bug Fixed for libagl.\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": "2521f47c4d45a4d02c3a9f608c73de744c8b44f6",
      "tree": "9e275ab9169b8895ac927cdb836a2fd53461c66c",
      "parents": [
        "6ee4f3543ffe786f1fb2f0003a0361664b919a68",
        "7278a129fc7028241e579dff199e76c683e615c7"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 09 17:35:26 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jul 09 17:35:26 2009 -0700"
      },
      "message": "am 46e28db8: Merge change 6713 into donut\n\nMerge commit \u002746e28db8818332e3cda4cc410cc89a1ed7ce4db6\u0027\n\n* commit \u002746e28db8818332e3cda4cc410cc89a1ed7ce4db6\u0027:\n  fix for [1969185] valgrind errors in new gl stuff\n"
    },
    {
      "commit": "dacd7a33c458240355c4b22dcc82809241447ab8",
      "tree": "1113f0de99da4f81d888806fb5bd406ff21ba086",
      "parents": [
        "5fac82d6ec6c94974dc2784d84b965180d15e3c8"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jul 09 17:33:15 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jul 09 17:33:15 2009 -0700"
      },
      "message": "fix for [1969185] valgrind errors in new gl stuff\n"
    },
    {
      "commit": "4cce5bd5ccc7c8468d0f8cc359525f82a45dedec",
      "tree": "6c8c7ce5a465683dc47213ff956a1c913fb16a77",
      "parents": [
        "42e95078ff75bd7eeef4223a3308a5ec6ab355df"
      ],
      "author": {
        "name": "Shin-ichiro KAWASAKI",
        "email": "shinichiro.kawasaki.mg@hitachi.com",
        "time": "Tue Jul 07 19:14:13 2009 +0900"
      },
      "committer": {
        "name": "Tony Sim",
        "email": "sim.chinyeow@renesas.com",
        "time": "Tue Jul 07 19:14:13 2009 +0900"
      },
      "message": "Bug Fixed for libagl.\n"
    },
    {
      "commit": "295eff200867d58bbd1b21711c6ef0a7c10c9f95",
      "tree": "f95128c3a27d4f6134b7adca54cca7ab1d6ed435",
      "parents": [
        "a8d44f75e1934072713371a2dcd143c63ffcbe0e"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jun 29 16:36:49 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jun 29 16:36:49 2009 -0700"
      },
      "message": "fix a bug where gl didn\u0027t always fallback to software when copybit failed. minor optimizations to copybit codepath.\n"
    },
    {
      "commit": "240c9fe59e9db5807c88796f60889acc44ba845c",
      "tree": "cd793b55234d4b87cdc32a7ae52809691579f08a",
      "parents": [
        "2ab55a4e31c37d74abdd85486e1f4045c7f708e2"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jun 25 15:39:25 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jun 25 15:39:25 2009 -0700"
      },
      "message": "use copybit for eglSwapBuffers() copy-back operations\n"
    },
    {
      "commit": "8d2e83b9f44c7f2207a312fcfda8eb3a4c26745f",
      "tree": "4627e6412931f53b9fa275783fc3701707f2ea24",
      "parents": [
        "af74213546acc887b2b9e93459124cefd7f5e335"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jun 24 22:37:39 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jun 25 00:02:44 2009 -0700"
      },
      "message": "Add eglGetRenderBufferANDROID() extension, which returns the current render buffer as an android_native_buffer_t*\n"
    },
    {
      "commit": "5911aa9510caad7c5d1dea849f9d2c8321fa9d7b",
      "tree": "acd8a122221e5473e7912ccba1f38bd94e3e291b",
      "parents": [
        "69029eb5abfaeb52716b84db89e32dc742551508"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jun 24 16:55:59 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jun 24 20:39:16 2009 -0700"
      },
      "message": "copybit now uses a native_handle_t* instead of a fd/offset\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": "e7829b8656ab4d179aa608e5715280819e5230b5",
      "tree": "921fb5019869b2c9d9290b4eb2966d78c486ef13",
      "parents": [
        "1fed11c86a9d59d0f5282ae8ae25ceba2f802fdd"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jun 23 18:31:06 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jun 23 19:50:41 2009 -0700"
      },
      "message": "fix a bug where copybit would be rejected in landscape mode\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": "7272add7a5be7a8e1a0a3ba6066039037033f8cd",
      "tree": "24c9b026b71df6d6c0bbacaa268fd55071a98273",
      "parents": [
        "945ebbfd3dc07c7168602a1603eeb76ea7425376"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jun 18 19:31:07 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jun 18 19:31:07 2009 -0700"
      },
      "message": "we were not fetching the texture coords in the copybit case, so we were using garbage\n"
    },
    {
      "commit": "aa6e88b80854dbcaa12678e77ffd440006faf828",
      "tree": "025255d2f186ba4d5b66dc3f5f9e094aff5b33ac",
      "parents": [
        "6d2cad2c6c5d4355ca362e45de85b5bfcd3337c3"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jun 17 21:58:18 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jun 17 21:58:18 2009 -0700"
      },
      "message": "fix/add some comments\n"
    },
    {
      "commit": "6d2cad2c6c5d4355ca362e45de85b5bfcd3337c3",
      "tree": "fc3498476aad4f41569540d27e08586095206cfa",
      "parents": [
        "cf251b9e3b54a08aa668437fe9cae08d07e333e7"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jun 17 21:18:56 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jun 17 21:18:56 2009 -0700"
      },
      "message": "s/w OpenGL no detects and handles all any combinations of triangle fans corresponding to a rectangle\n\nthis allows fallback to faster copybit code in almost all cases.\n"
    },
    {
      "commit": "cf251b9e3b54a08aa668437fe9cae08d07e333e7",
      "tree": "2c6b9608800d69e764931be0856cc384315124c4",
      "parents": [
        "b6822d7a3ea86b729a8c716a5fc9ad7a02532bfe"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jun 16 18:08:29 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jun 16 18:08:29 2009 -0700"
      },
      "message": "fix a scissor bug in the GLES-on-top-of copybit code\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": "1a0c4cd5d83facd9653c45db1d2b9725c2e060b0",
      "tree": "afe90f777b212eb54b54ac09f88c5d482dbf0945",
      "parents": [
        "0c97ed3a2ecc4a5b49bfb26674a9f4a5ac361024",
        "4fcd9c700368f08117aa1e2264f56eeb6b8af832"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jun 05 15:45:39 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jun 05 15:45:39 2009 -0700"
      },
      "message": "Merge commit \u0027goog/master\u0027 into merge_master\n"
    },
    {
      "commit": "9648c1a2b9b527bcef64bb9d96e8385a14949840",
      "tree": "bc8509c4a3d0621aa82015c6a195a3a2378e0e78",
      "parents": [
        "f909cb6c69aa3ac8ffb6a2b9cd565b4b1e8b99c0"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jun 03 19:00:53 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jun 03 19:00:53 2009 -0700"
      },
      "message": "make sure clear the draw and read EGLSurface when eglMakeCurrent() is called for unbinding from the thread\n"
    },
    {
      "commit": "acdebe352dc7dadc1122a87d45137fd2441b329a",
      "tree": "6e7e087cbce29367520a12466183591b6c89161b",
      "parents": [
        "e92c713cb685f78d2041b7ffc89ccb155c992b2d"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jun 03 18:26:58 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jun 03 18:26:58 2009 -0700"
      },
      "message": "fix/clean these Android.mk following dbort and joeo\u0027s comments\n"
    },
    {
      "commit": "69ca17a12444ef619952b783ddaac121a0d438e5",
      "tree": "cef0502e462d6b4ebd2582e64cd6b137430bc945",
      "parents": [
        "2216b95610ef86b39935adfb2ecad51da54ba9c6"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jun 02 22:05:04 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jun 03 15:09:52 2009 -0700"
      },
      "message": "fix [1610840] Positional light doesn\u0027t work correctly on emulator\n\nThis bug was introduced when lighting computations was changed from eye-space to object-space.\nThe light position need to be transformed back to object-space each time the modelview matrix changes which requires us to compute the inverse of the modelview matrix. This computation was done with the assumption that normals where transformed (which was the case when the computation was made in eye-space), however, normals only require the inverse of the upper 3x3 matrix while transforming positions requires the inverse of the whole matrix.\nThis caused the interesting behavior that lights were more-or-less transformed properly, but not translated at all, which caused improper lighting with directional lights in particular.\n\nThere was also another smaller bug affecting directional lights: when vertices are read, only the active component are read, the other ones are ignored, later, the transformation operations are set up to ignore the unset values, howver, in the case of lighting, we use the vertex in object space (that is, before it is transformed), and therefore were using uninitalized values; in particular w.\n"
    },
    {
      "commit": "50aba6d31d3ddd0c4dc13292822b7fabade2b6c3",
      "tree": "75d6c80ca4fb79e36354b41ab7db6fa157b25fb6",
      "parents": [
        "446393bafdb63dc2ebd75819629821adb757b88f"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jun 02 22:51:09 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jun 02 22:51:09 2009 -0700"
      },
      "message": "fix a bug in GL lighting where the specular component could be ommited when vertex material was disabled.\n\nthe specular enable flag wasn\u0027t computed in that case.\n"
    },
    {
      "commit": "de58697644a52a614ad9498aa087e95d4a223673",
      "tree": "dda6827a103c1450d31adc6374ea246c6d224413",
      "parents": [
        "0669fbb12a89c80b4cbb64e91fd3110c2965a20f"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu May 28 17:39:03 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu May 28 20:31:40 2009 -0700"
      },
      "message": "implement a real loader for EGL drivers\n\nwe now look for a config file in /system/lib/egl/egl.cfg that describes the association of a display to a driver.\nthese drivers are named: /system/lib/egl/lib{[EGL|GLESv1_CM|GLESv2] | GLES}_$TAG.so\n"
    },
    {
      "commit": "9660d304ae51a69509e5506e1fc80178025dee7c",
      "tree": "2db88e9f1a42bf5dfbbe01580a6e8071666179e9",
      "parents": [
        "490b2ba510c0857605f4913f0fdd1c47a1d93647"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed May 20 11:28:04 2009 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed May 20 11:28:04 2009 -0700"
      },
      "message": "donut snapshot\n"
    },
    {
      "commit": "d717598616910b5454b56429dec3bfad2757bd52",
      "tree": "c2271b0f7e475c4ac1cf520bcecd6f35e002d99a",
      "parents": [
        "5958661507b39cd59e68e9bc2b54399af92847c4",
        "757a434f81895ddcad2481a5912ff1eb0de8a0d6"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu May 14 22:44:23 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu May 14 22:44:23 2009 -0700"
      },
      "message": "Merge commit \u0027goog/master\u0027 into merge_master\n\nConflicts:\n\topengl/libagl/Android.mk\n\topengl/libs/Android.mk\n\topengl/libs/egl_impl.h\n"
    },
    {
      "commit": "48685c45bb333c3564596158e2e67267110c9277",
      "tree": "6b919a6ae0ba8123fb5c493e7d0e8ffc900fedbd",
      "parents": [
        "4047ff2ca078cab7af541f6bf8a9718db7ffe975"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri May 08 15:23:38 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri May 08 15:23:38 2009 -0700"
      },
      "message": "only export the GL entry-points, hide everything else.\n\nConflicts:\n\n\topengl/libagl/Android.mk\n\topengl/libs/Android.mk\n\topengl/libs/egl_impl.h\n"
    },
    {
      "commit": "e6bf8b32b616450f80b64d226ea673f4a2e0bf8d",
      "tree": "4182624cf23d228ee1f166c3b20d029943dcf50f",
      "parents": [
        "df3ca30bf663cb8eed88ee3f16fb5e9a65dc00fc"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed May 06 23:47:08 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu May 07 15:07:52 2009 -0700"
      },
      "message": "fix EGL extension string names\n"
    },
    {
      "commit": "df3ca30bf663cb8eed88ee3f16fb5e9a65dc00fc",
      "tree": "2456c7861be6b9ee4b8f87fe086acb9a2b132b3a",
      "parents": [
        "aa8c0ff7a36b4840dcf3e72c9696b86d192c4314"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon May 04 19:29:25 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu May 07 15:07:33 2009 -0700"
      },
      "message": "created an new EGL extension called ANDROID_swap_rectangle\n\nANDROID_swap_rectangle allows to specify the rectangle affected by eglSwapBuffers(), anything outside of this rectangle is unchanged. in particular EGL_BUFFER_DESTROYED only applies to that rectangle. This extension as well as EGL_BUFFER_PRESERVED allow major optimizations on surfaceflinger, which can redraw only the dirty area during compositing.\n\nHowever, ANDROID_swap_rectangle allows further optimizations in EGL by reducing the amount of copy-back needed. ANDROID_swap_rectangle is particularily important for software implementations.\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": "53238bddeab7b4633bfdb59fac67b0af1211955a",
      "tree": "2758d4cb9019c27a8ab570bbb9755c6f46242f17",
      "parents": [
        "91a678088520abf63c1484d284629833877ff938"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Apr 22 18:24:18 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Apr 23 13:45:48 2009 -0700"
      },
      "message": "integrate some OpenGL ES changes back from master_gl in preparation of opening GLES to the NDK.\n"
    },
    {
      "commit": "8b765b7f5ea7f56963ea0e3141d043d20944dbcc",
      "tree": "2e2d2bbce8af56880aa48e1321d60336f12447dd",
      "parents": [
        "2b2fb1a69394edd58666b89597c560442ccc3a90"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Apr 10 20:34:46 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Apr 10 20:34:46 2009 -0700"
      },
      "message": "more debugging tools around BufferMapper\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": "749c63dbff0ab66223f30af1bad4ca56bd26d5d2",
      "tree": "961fe759b2b114b3cd32b51741ac82298550d4bf",
      "parents": [
        "7c143aab44b562eb917ca57ed7c1eb584591b7e2"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "",
        "time": "Wed Mar 25 15:12:17 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Mar 25 15:12:17 2009 -0700"
      },
      "message": "Automated import from //branches/master/...@142578,142578\n"
    },
    {
      "commit": "87d80228cc6b8904da036d51d41252f8301e41d2",
      "tree": "961fe759b2b114b3cd32b51741ac82298550d4bf",
      "parents": [
        "74c770be33d41f129334de97ce4d0db141312d02"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "",
        "time": "Tue Mar 24 22:48:26 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 24 22:48:26 2009 -0700"
      },
      "message": "Automated import from //branches/donutburger/...@142484,142484\n"
    },
    {
      "commit": "df351ba57378ee9e58cf0b0cd1ff6d4700052ec6",
      "tree": "fa9a2d4d1796a2e70fc47f7b9d3db220936c18b1",
      "parents": [
        "0348218e930441c68e90a4e55893ae3b9e1ea0ef"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "",
        "time": "Tue Mar 24 20:18:08 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 24 20:18:08 2009 -0700"
      },
      "message": "Automated import from //branches/cupcake/...@142481,142481\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": "43aa2b1cbf7a03e248e10f4d0fec0463257cd52d",
      "tree": "419be3db269033df1a79ef96e10fe15be35ce27d",
      "parents": [
        "0bb03408de8886e8d17013219967d42fb9c8cf8c"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 14:04:24 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 14:04:24 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@132589\n"
    },
    {
      "commit": "0bb03408de8886e8d17013219967d42fb9c8cf8c",
      "tree": "6edc73880d91bac5532cdbece4072f7c6ec7d257",
      "parents": [
        "7222586f99599fb2de31293277b79e8d4a3acdc2"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Mar 02 22:54:33 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Mar 02 22:54:33 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@137055\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": "8a7a67538a9977c892389bfcde76a8372aa0b56c",
      "tree": "0782f82f223ddeafa9b08bd2121ded38212f67f7",
      "parents": [
        "276293246ea9cbc0a578a7697cc48930376ec0e9"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jan 15 16:12:10 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jan 15 16:12:10 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@126645\n"
    },
    {
      "commit": "e09fd9e819c23dc90bca68375645e15544861330",
      "tree": "9a9fdadd1301625f875a3c126c986c79e3363ac4",
      "parents": [
        "7c1b96a165f970a09ed239bb4fb3f1b0d8f2a407"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Dec 17 18:05:43 2008 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Dec 17 18:05:43 2008 -0800"
      },
      "message": "Code drop from //branches/cupcake/...@124589\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"
    }
  ]
}
