)]}'
{
  "log": [
    {
      "commit": "c5b09d8a5f7bbf9545b1f2b2d69920fd115d3ecd",
      "tree": "9106f4980ec78b608221d8396d60cc6d5def235f",
      "parents": [
        "e0848c0fc42de089d12b98dc8efeed5002686e40",
        "4ac45597fb70ca4f268cb1920fcb2de61aff4a3d"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun Oct 04 15:14:32 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sun Oct 04 15:14:32 2009 -0700"
      },
      "message": "am 4ac45597: Merge change I15b0ebb9 into eclair\n\nMerge commit \u00274ac45597fb70ca4f268cb1920fcb2de61aff4a3d\u0027 into eclair-mr2\n\n* commit \u00274ac45597fb70ca4f268cb1920fcb2de61aff4a3d\u0027:\n  a simple test app for gralloc\n"
    },
    {
      "commit": "b4285d222a3dfe0db37513a76b54c32897600ed5",
      "tree": "ffddd186fcb4ab648064e6f4ab8a845919b5e441",
      "parents": [
        "18d1255ebe83d73df34832f2197a1e51ea717b96"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Fri Oct 02 14:43:51 2009 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Fri Oct 02 14:43:51 2009 -0700"
      },
      "message": "Change way we choose EGL surfaces to be compatible with the native\nwindow surface.\n"
    },
    {
      "commit": "15b0ebb925d2d676052a0ef571b435c072b11280",
      "tree": "1d7222fc9057b0e8d043ed4b39667753c876a451",
      "parents": [
        "99510681e9f1c76f82719e724990f744cfdbcefd"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Oct 01 15:45:37 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Oct 01 17:23:05 2009 -0700"
      },
      "message": "a simple test app for gralloc\n"
    },
    {
      "commit": "5ffd62405ae6a801308989368a2473e4baaf3170",
      "tree": "36521a24d2737c7abdb95feafcf5b3a1e1d42035",
      "parents": [
        "15f0699504e64c1e290ef8955b1306d2a4a08201"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Wed Sep 30 14:17:12 2009 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Wed Sep 30 14:17:12 2009 -0700"
      },
      "message": "Add a simple test of OpenGL ES 1.x.\n"
    },
    {
      "commit": "b386a86c1c131832c8f9955a5a57a2fa13609d15",
      "tree": "00554528d6cf1483eb111b151604b938676eccc1",
      "parents": [
        "9fcd581a022abec565e3bf65c3ed4aaecf7d1555",
        "8018f091b94f02eabc6538295fefe3546d9cfeb5"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 30 09:15:16 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 30 09:15:16 2009 -0400"
      },
      "message": "Merge change I8018f091 into eclair\n\n* changes:\n  Add very simple input path. Fix end-of-line issues.\n"
    },
    {
      "commit": "8018f091b94f02eabc6538295fefe3546d9cfeb5",
      "tree": "bf04424c92d8fa4cae3a3b6b170fe18c2ba65962",
      "parents": [
        "057018399c7ce6d3893ee5fc622f1592f51773b9"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Wed Sep 30 06:14:24 2009 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Wed Sep 30 06:14:24 2009 -0700"
      },
      "message": "Add very simple input path. Fix end-of-line issues.\n"
    },
    {
      "commit": "54f72d9df8d5a2e9f9cd0ae10a57ed56dbf6a020",
      "tree": "ddeadffddc1beb865137039f7415263fd8ba85cd",
      "parents": [
        "82c78b83e3950a26d51da33ffb91bc808ce036f6"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Mon Sep 28 18:28:07 2009 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Mon Sep 28 18:28:07 2009 -0700"
      },
      "message": "Don\u0027t ask for pbuffer support, because we don\u0027t use any pbuffers.\n"
    },
    {
      "commit": "82c78b83e3950a26d51da33ffb91bc808ce036f6",
      "tree": "976124038f099b955917f51f85630fcffd03b6f2",
      "parents": [
        "3f48d31b747a3c5addc1f9d2e737b36e1f70a2d3"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Mon Sep 28 18:22:01 2009 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Mon Sep 28 18:22:01 2009 -0700"
      },
      "message": "Print out EGL configuration info for the config we\u0027ve chosen.\n\nDon\u0027t ask for PBuffer support, since we don\u0027t actually use pbuffers,\nand some drivers might not support them.\n"
    },
    {
      "commit": "669ce246a8a61b7a97837f4d9ea9b30ee5f4e1bf",
      "tree": "a9c01c779e6c336bc5d02a08439d1eb894d8a4d9",
      "parents": [
        "ebd45e5ca9690110ecb50c26b0b791054ee4c0ef"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Mon Sep 28 16:34:45 2009 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Mon Sep 28 16:34:45 2009 -0700"
      },
      "message": "Print out all available EGL configurations.\n"
    },
    {
      "commit": "594d02e54a34fdbf1992391dbbc5f9a1be21b046",
      "tree": "7c85216071b660d9ef41182e934e12eeefa8b982",
      "parents": [
        "c4646e654a18543be4e2f7d98f63bc4e603128e1"
      ],
      "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": "ed5ecdba36648973be3033a045e2ece8bf039e4a",
      "tree": "898d8228d551bf9f7a948b5379e21162064050b7",
      "parents": [
        "f075b4e713c4e10e4cea12c856fcf4aaab9c29d4"
      ],
      "author": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Fri Sep 25 16:18:27 2009 -0700"
      },
      "committer": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Sat Sep 26 01:00:49 2009 -0700"
      },
      "message": "egl: temporarily also include eglTerminate-\u003eeglInitialize hack for 8k\n\nChange-Id: Id5c51e54e733b24e5d5d5de0dcca84ac53afd3a9\nSigned-off-by: Dima Zavin \u003cdima@android.com\u003e\n"
    },
    {
      "commit": "d7de5ffb302e8178688f806766711b0036c13fac",
      "tree": "50ca28e12d34157fee93705ee12e8bba4e6ab234",
      "parents": [
        "aa3b0bee51e9e7c0d46f93bcdcfee62b004b3a78"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Fri Sep 25 19:55:07 2009 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Fri Sep 25 19:55:07 2009 -0700"
      },
      "message": "Fix build.\n"
    },
    {
      "commit": "aa3b0bee51e9e7c0d46f93bcdcfee62b004b3a78",
      "tree": "323772d6bf00f988ac0305f1862bcde2ce6312e5",
      "parents": [
        "2e26fc08aa1939c19e939d983bd608cdec050024"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Fri Sep 25 19:07:31 2009 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Fri Sep 25 19:07:31 2009 -0700"
      },
      "message": "Tighten up sample code.\n\n- Still fails to work; don\u0027t know why.\n"
    },
    {
      "commit": "2e26fc08aa1939c19e939d983bd608cdec050024",
      "tree": "7f3caddcb9c5a5e7e8c4e24177e86bd1cee3e98b",
      "parents": [
        "7756cbeef475127ed56bfeabecb3c291366a952f"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Fri Sep 25 19:06:30 2009 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Fri Sep 25 19:06:30 2009 -0700"
      },
      "message": "Check for failure to create EGL surfaces and contexts.\n"
    },
    {
      "commit": "66d2e25ae39307325c616a8f95d9594d4d295566",
      "tree": "3c3821a419b1e777f568aad050ce7ac77edc2473",
      "parents": [
        "52c37d6402f14d180f6855cc1438ca62141205ca"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Fri Sep 25 16:25:19 2009 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Fri Sep 25 16:25:19 2009 -0700"
      },
      "message": "Use EGLUtils to simplify choosing a configuration.\n\nDoesn\u0027t actually select anything, possibly due to device driver errors.\n"
    },
    {
      "commit": "117f574e105c682ebff19ece7230fab86fea3d17",
      "tree": "b68a02d3f484a1ae663b5f54d0fceb4755a6b732",
      "parents": [
        "dccf22dcea384e65ae54456122b5c660e6fefe00",
        "2ddccd16496701370572e1ad3d83da056d9ad281"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 24 17:45:32 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 24 17:45:32 2009 -0400"
      },
      "message": "Merge change 26911 into eclair\n\n* changes:\n  OpenGL ES doesn\u0027t allow glColorPointer with a size parameter other than 4\n"
    },
    {
      "commit": "2ddccd16496701370572e1ad3d83da056d9ad281",
      "tree": "5777ef6cad601b267dfcc9d1015b830085f42dbb",
      "parents": [
        "857ce94b88d53c3deb965898098f04fbf42e55e1"
      ],
      "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": "d40dfbbbff81219258ca36b762a89ff503154345",
      "tree": "98fc5a33661c54f4173b3cc1e68174a5b1058ef1",
      "parents": [
        "f22fc124ff7974d0b6380199f7d53e66bb7feb29"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Thu Sep 24 14:10:17 2009 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Thu Sep 24 14:10:17 2009 -0700"
      },
      "message": "Fix broken Javadoc link for GLSurfaceView.EGLWindowSurfaceFactory.\n"
    },
    {
      "commit": "87a7265ee10bac12195ea7c25fea45d61d1266a1",
      "tree": "df1dcf3c9510f208e585f84129171d954c3f2238",
      "parents": [
        "82cbaab450d3c5d9f3d52c49881212f250d7cd97"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Thu Sep 24 12:19:05 2009 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Thu Sep 24 12:19:05 2009 -0700"
      },
      "message": "Make tritex test run with latest OpenGL driver.\n\nUse EGLUtils::selectConfigForNativeWindow to select a legitimate\nconfiguration. (Before now we had been selecting an incorrect\nconfiguration, but the older drivers let us get away with it.)\n\nConverted the source to C++ so we can call selectConfigForNativeWindow.\n"
    },
    {
      "commit": "82cbaab450d3c5d9f3d52c49881212f250d7cd97",
      "tree": "56d65701be8b2e4710a03bdafcde925318fd0bf6",
      "parents": [
        "4cc86e1ae80eb1938500fe5fa06bbdf8b4b7b50d"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Thu Sep 24 11:55:04 2009 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Thu Sep 24 11:55:04 2009 -0700"
      },
      "message": "Publish minor additions to GLSurfaceView API.\n\nClients can now modify the way that the EGL context and the EGL window\nsurface are created and destroyed.\n"
    },
    {
      "commit": "a8fecb87c5eaaefc9ca6272e3b59ef88d293dd6d",
      "tree": "7652f77751c0f9aa13629288c325e82d272e65cf",
      "parents": [
        "63147705bc2893d6ad43270e04beb9ee01e2ad53"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Wed Sep 23 14:48:07 2009 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Wed Sep 23 14:48:07 2009 -0700"
      },
      "message": "Create samples showing how to call OpenGL from JNI libraries.\n"
    },
    {
      "commit": "15e1c6dc7a778590068b1cad55beea2bc6159509",
      "tree": "c35207d5fd479c56b89fa9b4388393bba092d70d",
      "parents": [
        "1bd888ba2e0976a179258cfa65ef07be31602a0a"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Mon Sep 21 19:19:25 2009 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Mon Sep 21 19:19:25 2009 -0700"
      },
      "message": "Allow GLSurfaceView clients to customize EGL Surfaces and Contexts.\n\nThis API is hidden for now, will expose once it\u0027s been tested more.\n"
    },
    {
      "commit": "1bd888ba2e0976a179258cfa65ef07be31602a0a",
      "tree": "5d1d9ef76fd5f1c29e029f1ead80e0116548ade1",
      "parents": [
        "a953ed4bc08cf5fc98f17a399adbd8afdd8293d5"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Mon Sep 21 15:59:17 2009 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Mon Sep 21 15:59:17 2009 -0700"
      },
      "message": "Fix GLSurfaceView to sync surfaceDestroyed with GL rendering thread\n\nUntil now we had a race condition where the GL rendering thread could\ncontinue rendering a frame after we have returned from the\nSurfaceHolder.Callback.surfaceDestroyed notification.\n"
    },
    {
      "commit": "40621774ec648c7d0089f66b4e3aeb94e4232769",
      "tree": "929189e75582bfc717120d25051dbda250def575",
      "parents": [
        "0647b580aa7874311fc77b659e4f646750ddd74e"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun Sep 20 16:01:02 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun Sep 20 16:07:26 2009 -0700"
      },
      "message": "log an error when loading an existing GL driver fails\n"
    },
    {
      "commit": "953254b2f2c420d865b132b09bc682458b3e32dd",
      "tree": "44208b1748d1cf57a07f932dc87f89dc6e317003",
      "parents": [
        "90d8a6a449dc12fea2b56b557c243e33746d914a"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Fri Sep 18 18:27:37 2009 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Fri Sep 18 18:27:37 2009 -0700"
      },
      "message": "Draw a green triangle using OpenGL 2.0 APIs.\n"
    },
    {
      "commit": "fc342cbbf71e29ed52996dee059655c83b95ab68",
      "tree": "b36e599ff589c64a5d0f540f31015425ba42f216",
      "parents": [
        "113096d5d05c9c1739c9d427399f47a35cf6fd57"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Thu Sep 17 10:59:23 2009 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Thu Sep 17 10:59:23 2009 -0700"
      },
      "message": "Add additional error checking, exit early if errors occur.\n"
    },
    {
      "commit": "113096d5d05c9c1739c9d427399f47a35cf6fd57",
      "tree": "a7da363ec762262fd57fd393fd2b7db7e0cbbcdd",
      "parents": [
        "a4fe2aca527ee45ddde6ace2316cad27dd487379"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Wed Sep 16 11:08:43 2009 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Wed Sep 16 11:08:43 2009 -0700"
      },
      "message": "Add EGL call error checking.\n"
    },
    {
      "commit": "fb5ea2e579057739120d5a8663857bdf623b9ba6",
      "tree": "0127dd0a0e37f90c39f15805e07d705e1b3f7bbb",
      "parents": [
        "e8f0603eb631ecef5f41105711f4afdea8c6d8d8"
      ],
      "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": "b22f5b3bb356ac747e8cd6c2f1c4e6f4a8539eeb",
      "tree": "452aa0d555558b3c3d07269480434213933b3560",
      "parents": [
        "44e9983ffc2b28f2ed755a2c99f156aeab0ff77f"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "rjsams@android.com",
        "time": "Tue Sep 01 20:41:05 2009 -0700"
      },
      "committer": {
        "name": "Jason Sams",
        "email": "rjsams@android.com",
        "time": "Tue Sep 01 20:41:05 2009 -0700"
      },
      "message": "Simple app to create a gl2 context and dump the strings.\n"
    },
    {
      "commit": "c0dea964913268bd64009e657635e617f3e0c21c",
      "tree": "379fdde7e66d3b8ab88348e0b7138f1ab6ed5970",
      "parents": [
        "4f31af9346b818c8ef05a63e15e9170a7c6131e4"
      ],
      "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": "4f31af9346b818c8ef05a63e15e9170a7c6131e4",
      "tree": "fe27bc0741432288cdcf1dafd6ebc41227278cab",
      "parents": [
        "16c758fb156cc8184e9c3ace7aa4717af4bb05ea"
      ],
      "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": "94263d79234778277959c5ec0cc3f2182cc9df0b",
      "tree": "b7b10fa4c21367f49483938a18c5be906d750d84",
      "parents": [
        "048d51b9f51e646046b9a7ff5153723a27200138"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Aug 24 21:47:13 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Aug 24 21:47:13 2009 -0700"
      },
      "message": "fix a bug recently introduced where EGL couldn\u0027t be initialized again after it had been terminated once\n"
    },
    {
      "commit": "4a34e888ae328256febbcd6caf603a9c5834b913",
      "tree": "e06b069befa16dd78faceb1adfa85ec9ac5fed3b",
      "parents": [
        "bfcfb7eec61bd196cfd91f7b2c5715751308c048"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Aug 21 02:18:25 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Aug 21 19:45:44 2009 -0700"
      },
      "message": "first step for fixing [2066786] EGL object lifetime management doesn\u0027t respect the EGL spec\n\nthis change fixes the lifetime mgt of EGLSurface, EGLContext and EGLImageKHR in the EGL wrapper.\nEGLDisplay is still somewhat bogus and libagl\u0027s EGL is still incorrect.\n\nThe idea of the change is that EGL objects are put in a list when created and removed when destroyed.\nBefore each use, we first verify if the object is in the list and if so a reference is taken and kept\nfor the scope of the whole EGL API being called, if not, an error is returned.\n\nUpon object destruction, the object is simply marked as \"terminated\" (this is not protected by a lock\nbecause it doesn\u0027t really matter). This flag is only used to deny access to the object by other APIs\nwhile it\u0027s still valid (for instance current or being used by another function in another thread).\nA reference is also removed and the object can then actually be destroyed when going out of scope.\n"
    },
    {
      "commit": "82fd4fce16b9bbde25d044acc86ddf7306ebdd10",
      "tree": "5d831d3f987bb6d1d62d8bca692ce4c5218c6432",
      "parents": [
        "dd8cb62bdf48ec0096c0ed665996a25320d477e2"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Aug 20 19:09:34 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Aug 20 19:09:34 2009 -0700"
      },
      "message": "fix a bug in ComponentSizeChooser where it could pick a software EGLConfig instead of a better h/w one.\n\nWe now just try to honor the stencil / depth buffer \"at least\", while doing a \"shortest distance\" on the colors.\n"
    },
    {
      "commit": "ffbc864329d2659e9a75d2c80d66dc90c1072da1",
      "tree": "4c2bffbbfab6b2df1d5860efc0a626bfc7bb3862",
      "parents": [
        "f768d24f7d9c01d1e01fdbccc3adc75fda3f8d4b"
      ],
      "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": "dcebf6f65a890083545a8c191fcdc2522bfd035d",
      "tree": "3659d5b1a1ea32cc219445c9e4ebe08a822e48c9",
      "parents": [
        "2b8954809e7de900e2c159c255d5237ae6f0e6f8"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Aug 17 18:07:06 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Aug 17 18:07:06 2009 -0700"
      },
      "message": "fix bug [2021677] egl driver unloaded after eglTerminate() is called\n\nrefactored the code so that:\n- EGL APIs that can be called before or after eglInitialize() will work by loading the drivers first\n- make eglGetDisplay() a lot more efficient\n- make sure that EGL drivers are loaded in a thread-safe way\n- don\u0027t unload the drivers upon calling eglTerminate(), they\u0027re now never unloaded, since there is no safe way to do it (some thread could be running)\n- updated our EGL version to 1.4\n- return better error codes if errors happen during initialization\n"
    },
    {
      "commit": "317a6280cc109e873646e4652be1582d870eedfd",
      "tree": "3b6d41d465282970f498e172b81ed0ee83e3183e",
      "parents": [
        "81655243a6a373cfde1e689970eeb62af19622d1"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Aug 13 17:29:02 2009 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Aug 13 18:19:32 2009 -0700"
      },
      "message": "Surface::GPU and Surface::HARDWARE are now deprecated; they will be set automatically if needed.\n\nthis also ripples into the window manager API by making some constant there deprecated as well.\n"
    },
    {
      "commit": "88e3e6bd04dcf166ddd92ce3a84e1f9f54ac2f66",
      "tree": "3bf9bea84e290f9fcadd914f366196f0e66adc3f",
      "parents": [
        "b5a72b0e14aefb658695bed8d2b598b701abaf3d"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Aug 12 21:18:15 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Aug 12 21:18:15 2009 -0700"
      },
      "message": "Better error handling in EGL extensions\n"
    },
    {
      "commit": "5cec4742b3a1d7448bd32ae57cb4cf70b484c64c",
      "tree": "9a3d6adb933fd0947ffc643e3d11f432a4baec4b",
      "parents": [
        "064dbd076d431a7508b864aa0993cd59ef743e4e"
      ],
      "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": "a1e03d4d7f0400b1ec20209892ab2999e9ed2676",
      "tree": "336cb5b6d3e2709afe922a58ec17de51817c15b2",
      "parents": [
        "efefd5efb9e20fbcd94c3f4766ca2a64e511da77",
        "a1d9388ea7fb7515db3bc7f9a9c876b76cac1c76"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 11 20:51:07 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 11 20:51:07 2009 -0700"
      },
      "message": "Merge change 20893\n\n* changes:\n  show that we need to glClear to be fast(er)\n"
    },
    {
      "commit": "efefd5efb9e20fbcd94c3f4766ca2a64e511da77",
      "tree": "64b527b57b6e206497402e053e0b35a869a57915",
      "parents": [
        "d7fe92b85812c53079b813543d722922e4ce7a4a",
        "64e89a8aff9a45a491f1d7064a655b9021fe644a"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 11 20:50:32 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 11 20:50:32 2009 -0700"
      },
      "message": "Merge change 20892\n\n* changes:\n  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"
    },
    {
      "commit": "a1d9388ea7fb7515db3bc7f9a9c876b76cac1c76",
      "tree": "c61e9fde82df15715fedce3989eaf45094110785",
      "parents": [
        "0d63f8163d4d50c4a80bfc2013e5edba4a465b1a"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 11 20:50:20 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 11 20:50:20 2009 -0700"
      },
      "message": "show that we need to glClear to be fast(er)\n"
    },
    {
      "commit": "64e89a8aff9a45a491f1d7064a655b9021fe644a",
      "tree": "5cad5d20370d2d77335324e55551ce2a2fe8b903",
      "parents": [
        "50cb54ff5cdb233d01e1dd94b355cbfe0a371520"
      ],
      "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": "0d63f8163d4d50c4a80bfc2013e5edba4a465b1a",
      "tree": "66485187e35a125f934bcab5ff1e84828bf3c516",
      "parents": [
        "88caa97f9e4121043940e5bf4883cc3597ca0dd7"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 11 20:12:18 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 11 20:12:18 2009 -0700"
      },
      "message": "option to use drawtexture at compile time\n"
    },
    {
      "commit": "88caa97f9e4121043940e5bf4883cc3597ca0dd7",
      "tree": "d70c9beb1b7696489dd8e2c294012bd38574516c",
      "parents": [
        "8b76a0ac6fbf07254629ed1ea86af014d5abe050"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 11 19:55:31 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 11 19:55:31 2009 -0700"
      },
      "message": "fix and extend the filter test a bit\n"
    },
    {
      "commit": "8b76a0ac6fbf07254629ed1ea86af014d5abe050",
      "tree": "e492e09655269fff3ca14b6a62f9b07f2d484038",
      "parents": [
        "c5ea43920919eeaec4ec0686de9fa3d034d82337"
      ],
      "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": "e6f0f5c8fb4b6d249de5995545350fd95b2012f6",
      "tree": "3b7849da4b78a99afda2ed7d8f43e9d0fc6a1ae5",
      "parents": [
        "07cbacc11705f1f05a1150083aad000c53942dea"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Aug 10 16:48:22 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Aug 10 16:48:22 2009 -0700"
      },
      "message": "workaround a bug in the SGX driver that would prevent eglGetConfig to work properly\n"
    },
    {
      "commit": "f1e5b0d4e5d0d2a78c234cd0cbd3005a74a79429",
      "tree": "596c50f9d0690da9d446003c21738582d26762f5",
      "parents": [
        "1d40f50de5a207351d5fe3f0eada2c8bf74dcd82"
      ],
      "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": "9ca4dd6011e30cbb3bc40cf0bba7d11362b8bc38",
      "tree": "99f450ba9637fdaa1a52d3b5a09a4d8d9bd42d5a",
      "parents": [
        "509dae53c54437eebd5291226e76c5456646f560"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Aug 07 16:38:10 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Aug 07 16:38:10 2009 -0700"
      },
      "message": "minor code clean-up\n"
    },
    {
      "commit": "a1f6eff297a3e4870e22fdae926648bda3466805",
      "tree": "95371971e42f63e18a6d108e7feede0c7797a6f4",
      "parents": [
        "265d9c076a588cf4cd811fbafd999c7ffe36641b"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Aug 06 16:25:37 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Aug 06 16:26:15 2009 -0700"
      },
      "message": "update most gl tests to use EGLUtils\n"
    },
    {
      "commit": "265d9c076a588cf4cd811fbafd999c7ffe36641b",
      "tree": "8e4b8a390de2d36c8bd0e2a92d1907bdcbb99f04",
      "parents": [
        "25ec00fd13a6310d80a726cc9493a4b394056063"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Aug 06 16:05:39 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Aug 06 16:05:39 2009 -0700"
      },
      "message": "added two EGL helpers for selecting a config matching a certain pixelformat or native window type\n"
    },
    {
      "commit": "bb99ffb4db008441e6ac4236d8a48b6e2b0c01d9",
      "tree": "fd93a872ef5b5944f19d8d59012de156c89d39fd",
      "parents": [
        "d657b72aeb9f4cd7653593c2ec66b786dbbc6a05"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Aug 05 17:38:49 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Aug 05 17:38:49 2009 -0700"
      },
      "message": "added a gl swapinterval test\n"
    },
    {
      "commit": "429c521b15112fdcc70dca602b432fae45ca3a22",
      "tree": "9531ef4de47d0ce5845d419774408c989a5dd620",
      "parents": [
        "859c37548f4ed1d466b7edc6a01e579b6b55039f"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 04 13:43:35 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Aug 05 12:22:29 2009 -0700"
      },
      "message": "opengl tests\n"
    },
    {
      "commit": "997d1070788e312edb4c5e5212dc90ddde7ac963",
      "tree": "80473c142d0d538d5ee61a1a8abab9ff3ed340eb",
      "parents": [
        "f1db4aec6569d7cf9e1fb84f1d9c1292032eac30"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jul 31 16:21:17 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jul 31 16:23:03 2009 -0700"
      },
      "message": "log opengl-call-with-no-context only once per thread, instead of for each function call\n"
    },
    {
      "commit": "abac01052c1c40f8582fe9f010c2efe6013e25c6",
      "tree": "4662643547957b2f93fbb7f8e5c5d38addaaf56e",
      "parents": [
        "1a20bae18ce05a5a141810492549d351a82f6490"
      ],
      "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": "5b5c9144872b4e31ba5a041dce585a8ddbbe495d",
      "tree": "a87a028c1485452127f0ec9c0e8214d419fe6753",
      "parents": [
        "5e631892fb9ac4da83b70ba129ceb6a3f501bad9"
      ],
      "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": "c902bf8f133e0a60a888fbc2e86f66fcbc0f0430",
      "tree": "f3e5b7e805c2d4cfe2b085c1a3c0036291f9a465",
      "parents": [
        "e1c00aab871066935f68c92d39a82ed61e71d812"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 29 11:10:29 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 29 11:10:29 2009 -0700"
      },
      "message": "GLESv2 couldn\u0027t be loaded due to wrong path specification\n"
    },
    {
      "commit": "f021077c465b2ff3f317fd64720107941cc94e9e",
      "tree": "c71a030a4b672a97c531847f056b6ab85396cb11",
      "parents": [
        "e39900ca7aa73a7a484cc0cff79188940df64cdb",
        "280436accc45c1883766a98499148439fa044531"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 22 17:34:28 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 22 17:34:28 2009 -0700"
      },
      "message": "am 280436ac: Merge change 8261 into donut\n\nMerge commit \u0027280436accc45c1883766a98499148439fa044531\u0027\n\n* commit \u0027280436accc45c1883766a98499148439fa044531\u0027:\n  Remove recently-added android.opengl.Version API\n"
    },
    {
      "commit": "7e263332e0c68f67868cb3245bf42f41e847d816",
      "tree": "52b0cff91b2cad4684c1367f8ca874bc1be7df68",
      "parents": [
        "ef6b66cbbbe7ae8ee0450cbbaae4194b069679a1"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Wed Jul 22 15:22:59 2009 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Wed Jul 22 15:22:59 2009 -0700"
      },
      "message": "Remove recently-added android.opengl.Version API\n\nThere\u0027s another already-existing way of obtaining this information,\nthe ConfigurationInfo.reqGlEsVersion field returned from\nActivityManager.getDeviceConfigurationInfo.\n"
    },
    {
      "commit": "68ce000ed88c8df53c0ddb9a556a8cc8e5dcedb2",
      "tree": "5ebae51a2bf246e90598a672c0275762c9e53cee",
      "parents": [
        "c58c78de2fc410bdd081b5824228b32596db4ee3",
        "ef6b66cbbbe7ae8ee0450cbbaae4194b069679a1"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 22 13:06:03 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 22 13:06:03 2009 -0700"
      },
      "message": "am ef6b66cb: Merge change 8222 into donut\n\nMerge commit \u0027ef6b66cbbbe7ae8ee0450cbbaae4194b069679a1\u0027\n\n* commit \u0027ef6b66cbbbe7ae8ee0450cbbaae4194b069679a1\u0027:\n  Add a public API that reports the supported OpenGLES API level.\n"
    },
    {
      "commit": "1baf11b116d4094ea1f7149bbf1348d6290a637e",
      "tree": "06b3f68a8945c71efb5774b15ae309ac75c0447a",
      "parents": [
        "11b822d2a91ea17c34c0cb1c11e80a9a30d72864"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Wed Jul 22 12:59:49 2009 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Wed Jul 22 12:59:49 2009 -0700"
      },
      "message": "Add a public API that reports the supported OpenGLES API level.\n"
    },
    {
      "commit": "6a294263f78ce8177de48cb9480bbe39d9e442cd",
      "tree": "ddd3299132e60ed533a28adcf4f9642d2fd25243",
      "parents": [
        "4a967dabc3c610e93cfc9cc1f8811e72f54d1797",
        "8ecb36eec61f119f500a805b82438aadb3396a19"
      ],
      "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": "a2fb72e08f41a67bbed534eb1035ba5bfc2df0e1",
      "tree": "2fb407fd0012f37cd7812aa4d8f4eae2291c2397",
      "parents": [
        "f3ea3e09684c82016e13140d68019b968c793190"
      ],
      "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": "7cd8ced29848450dbd2568471c97690aaf719020",
      "tree": "4a9734a3febeadc067204ca75380e4768fa4e4fd",
      "parents": [
        "334a67740c9f7f35fa9ee93cf0f8051d41ce2d7a"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jul 14 14:50:44 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jul 14 14:50:44 2009 -0700"
      },
      "message": "this header file is not needed anymore\n"
    },
    {
      "commit": "2eedb2515b733aaba0a92944def8156ef379e0da",
      "tree": "7ca9a803e0ed78b439d3fa66e9087bf2d749da02",
      "parents": [
        "e7622f3901234f238677c696a31c37838d315e6d",
        "46e28db8818332e3cda4cc410cc89a1ed7ce4db6"
      ],
      "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": "ab1cf3efd3b884a90170a82744f7ae508d51cf6e",
      "tree": "b973a089ed862e2816e14386ee41c2e03a5567c5",
      "parents": [
        "4af0a709ee08e8ae43f49d8fc5c9cae142aaf2c4"
      ],
      "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": "92a3ed43645150a79b5abdc3508ca7e4f64aba89",
      "tree": "ba2660d1e759b2d7fcae72be56489578def07c9d",
      "parents": [
        "42a3265cfb93f28d977353b8fe7a8b350de09fd0"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Jul 07 16:18:18 2009 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Jul 07 16:18:18 2009 -0700"
      },
      "message": "Make opengl loader use an absolute path.\n"
    },
    {
      "commit": "26f6a823ca32b4c8e42bc02efb0ce74c3f281f55",
      "tree": "1c960efceda9913d92a7618e9e113353c61729d0",
      "parents": [
        "7ecccee0d0c32ee472c9a74f4ccb8b152b074402"
      ],
      "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": "0f53af13b783eafa566722eb118aabcb84d88da5",
      "tree": "52b989efb5834c9e827ed2bc321f2b9e892515ca",
      "parents": [
        "0aed7e97a3efbeec23a4aa301df03036a67f8ea3"
      ],
      "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": "68eeb80a54f411b9a8c928cc193de731adddb6c3",
      "tree": "cad133624d088f79c1e9534024c6f2cfc5596cbe",
      "parents": [
        "26c28b16f3464eeb98b091b915ccf494ac31c35f"
      ],
      "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": "c6f36ed547e7f480ea2484cc378698d4205b3155",
      "tree": "46ccc07248dfdb5d5e6787ca91ead68c9529d06f",
      "parents": [
        "7cb8182e36268dca8ca59d706966c43095c8baa0",
        "a1254616d62d470b129a501193f15d50045cd3ae"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 25 13:22:55 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 25 13:22:55 2009 -0700"
      },
      "message": "Merge change 5352 into donut\n\n* changes:\n  fix [1942438] eglGetCurrentSurface() returns bogus value\n"
    },
    {
      "commit": "c1e3ec555b79b1e45fccbdf0bbc8ac2d51902860",
      "tree": "67d08ce1adc9ddfedc790b907ef3de15041e00d9",
      "parents": [
        "3a7e1832ac940cf5b8f92d3c3e8e8e5303c3c34e"
      ],
      "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": "3a7e1832ac940cf5b8f92d3c3e8e8e5303c3c34e",
      "tree": "94a910da72d31fbf8c5c684303df7a7d7dc4ce25",
      "parents": [
        "2eab9d8d7034ef05cead1ee26667a75061b5f0aa"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jun 25 00:01:11 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jun 25 00:01:11 2009 -0700"
      },
      "message": "fix [1942438] eglGetCurrentSurface() returns bogus value\n"
    },
    {
      "commit": "a1254616d62d470b129a501193f15d50045cd3ae",
      "tree": "8c066ce7401cac9a7e35cc89e064fca9b73b2568",
      "parents": [
        "5277103db9033226814edc8fcba6f4ba4e846678"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jun 24 23:59:16 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jun 24 23:59:16 2009 -0700"
      },
      "message": "fix [1942438] eglGetCurrentSurface() returns bogus value\n"
    },
    {
      "commit": "2eab9d8d7034ef05cead1ee26667a75061b5f0aa",
      "tree": "205a4d754066ff81e869b53adf79e0a40b1c3695",
      "parents": [
        "cbc4c9f8d56317b2fe8964c15c9785ebeef98ca7"
      ],
      "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": "f31868e59fbf59a8d479587c80b648fb37a166fc",
      "tree": "5a0aa67a76d6b0e48041f557eefd764e57eb97cf",
      "parents": [
        "c6603951d45fc9b0d1776fec9444b6f31af92840",
        "ecf2b68d834d334de218dc427615b4ca05c0293a"
      ],
      "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": "f6c2a1ae60a190951b1c9e93f64f62a000cb51fd",
      "tree": "39ec1bc425ee26f0f04bf6ca0747482f227dd74a",
      "parents": [
        "999543ba26d10ff9879144965d0c0abcb400636a"
      ],
      "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": "e8f7c682d2a083742c293a7de59f2282e6fa7a53",
      "tree": "eec211cc4c727a6a41c6b7209fdc63006437ecbf",
      "parents": [
        "3142f4f40ba745ecd3cd9f1839adaebc1f20fede"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jun 23 14:05:35 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jun 23 14:05:35 2009 -0700"
      },
      "message": "Android now has its own EGL extension block (yay) 0x3140-0x314F. EGL_NATIVE_BUFFER_ANDROID now maps to 0x3140 instead of using the staging range\n"
    },
    {
      "commit": "1b28d26ae9e49ec3c66777737c92b26c893ae629",
      "tree": "2a51c86c705b402d6b303403d6b30332f7cea41b",
      "parents": [
        "4c279770347b387890bb9eb90d9c96ad07e6f9e9",
        "4fb69770e70352c987cc79414db7a03b52296ca7"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 22 22:04:57 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Jun 22 22:04:57 2009 -0700"
      },
      "message": "am 4fb69770: Merge change 5024 into donut\n\nMerge commit \u00274fb69770e70352c987cc79414db7a03b52296ca7\u0027\n\n* commit \u00274fb69770e70352c987cc79414db7a03b52296ca7\u0027:\n  Remove opengl tests from tests build\n"
    },
    {
      "commit": "ffa5a5a3dbef79dc6958c629080b1a6438a7b637",
      "tree": "6f55b73c1d1f654914b17f9b9243fd8734f135c4",
      "parents": [
        "949070dd74be18ee3dcc87dd32f47f65374e3d53",
        "5277103db9033226814edc8fcba6f4ba4e846678"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 22 22:04:12 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Jun 22 22:04:12 2009 -0700"
      },
      "message": "am 5277103d: Merge change 5035 into donut\n\nMerge commit \u00275277103db9033226814edc8fcba6f4ba4e846678\u0027\n\n* commit \u00275277103db9033226814edc8fcba6f4ba4e846678\u0027:\n  add glTexParameteri() and fix glTexParameteriv()\n"
    },
    {
      "commit": "4fb69770e70352c987cc79414db7a03b52296ca7",
      "tree": "2b1ed2056e5e56ff117078a24133ab0279194e29",
      "parents": [
        "722baf5ec47b57020ac39ec3e2b6cd1a02c3c4db",
        "1562f872a366c55daa54c002eddcf040b433950e"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 22 18:30:40 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 22 18:30:40 2009 -0700"
      },
      "message": "Merge change 5024 into donut\n\n* changes:\n  Remove opengl tests from tests build\n"
    },
    {
      "commit": "aaf4b6b3315fc546396a4b82c8c5cab0c2d2cb85",
      "tree": "a0f381ad14b9f85f6ed6a9d23d55a09eab7727c6",
      "parents": [
        "72be40490951d3f9d0ada16fcf5288d0c3306d88"
      ],
      "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": "1562f872a366c55daa54c002eddcf040b433950e",
      "tree": "2bdcde247e7f4aaf42d68bd0b28f00c118f367d5",
      "parents": [
        "e146d824785078fed578f88b11ff47a7390d27c5"
      ],
      "author": {
        "name": "Sriram Raman",
        "email": "sriramkraman@google.com",
        "time": "Mon Jun 22 17:22:12 2009 -0700"
      },
      "committer": {
        "name": "Sriram Raman",
        "email": "sriramkraman@google.com",
        "time": "Mon Jun 22 17:22:12 2009 -0700"
      },
      "message": "Remove opengl tests from tests build\n"
    },
    {
      "commit": "09cf0ac2e9ec9e18c7099312265f9d51cdbb0f37",
      "tree": "0acf290cf67fec626d9a8fea347aa72a536fb7a8",
      "parents": [
        "9cc88529e4cbf54df3eed968666472d3fa658d13"
      ],
      "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": "42bf621e801183028066e6947fdd22eae8693a02",
      "tree": "a9f2dc439845138ba19c50872ac1781b9d9e5107",
      "parents": [
        "03a1b0116b115c214c16fa1a02a46999312fd0f2"
      ],
      "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": "03a1b0116b115c214c16fa1a02a46999312fd0f2",
      "tree": "eeceaccdf88d14dce6be2150ccd0cdb8d8d9849d",
      "parents": [
        "4d63fb113b542f0474c16d8f2c8a1240b44f0ca2"
      ],
      "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": "4d63fb113b542f0474c16d8f2c8a1240b44f0ca2",
      "tree": "c995cc6242e41e6991d4b6bb77c492dd2baebad7",
      "parents": [
        "69f066c8fc42b9f0acc5c41f8ffd972f8d6d0584"
      ],
      "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": "69f066c8fc42b9f0acc5c41f8ffd972f8d6d0584",
      "tree": "3a8bc941200fa85a32a21657ac69ec9beb9a6463",
      "parents": [
        "151e859e0fc3a930bdf6d270d275e69e9eba0cbf",
        "b0b160ae50497966666bcdcaf974eca2643acfd3"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jun 16 12:38:55 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jun 16 12:38:55 2009 -0700"
      },
      "message": "Merge commit \u0027goog/master\u0027 into merge_master\n"
    },
    {
      "commit": "ed776592e18369d02be9c263056d3c2c2dd969ba",
      "tree": "f631cf9c728a8f4487e595a8b363a822e2da0843",
      "parents": [
        "22a9f7a52e68aecc096130c29675a1330e83f409",
        "b4f7592b03c8424302c10e61474b0e2d0a71a630"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 16 08:37:21 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Jun 16 08:37:21 2009 -0700"
      },
      "message": "am b4f7592b: Merge change 4299 into donut\n\nMerge commit \u0027b4f7592b03c8424302c10e61474b0e2d0a71a630\u0027\n\n* commit \u0027b4f7592b03c8424302c10e61474b0e2d0a71a630\u0027:\n  Allow pre-Donut apps to use indirect Buffers in GL11 Pointer methods.\n  Fix IntentFilter constructor to properly process the action parameter.\n"
    },
    {
      "commit": "91a27ae2fec23b420244258636d2370117e86f5e",
      "tree": "5b2b1b47724a16dfb5b0b3f1850ff8e6c5606808",
      "parents": [
        "7d143b89b714e077f8fd7dbac80945c76bfd9814"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Mon Jun 15 21:03:24 2009 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Mon Jun 15 21:03:24 2009 -0700"
      },
      "message": "Allow pre-Donut apps to use indirect Buffers in GL11 Pointer methods.\n\nApps targeting Donut and newer will throw an exception.\n\nWe use a heuristic to determine whether an app is pre-Donut or not:\nWe take the address space\u0027s __progname, and use that as the application\u0027s\npackage name. For simple applications this is correct.\n"
    },
    {
      "commit": "350d651706d8f484d9aeb539d491526f822fa84a",
      "tree": "9018d81b9a591ff6fe71dec5f93c19018991c96b",
      "parents": [
        "07fcf4c3a91e421dc6f3d17f28264d18e8b2bfdb"
      ],
      "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": "07fcf4c3a91e421dc6f3d17f28264d18e8b2bfdb",
      "tree": "30b14954d923a98fe0b1fc27e6cdb589dc9d217e",
      "parents": [
        "51c8a3e00e6cffe42d25d1ac87d417e925d8a84d"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jun 09 21:38:08 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jun 09 21:38:08 2009 -0700"
      },
      "message": "revive the copybit test.\n"
    },
    {
      "commit": "51c8a3e00e6cffe42d25d1ac87d417e925d8a84d",
      "tree": "a3c8e8f3c90fd0c1aeb661bcf9fa32a2d43649cc",
      "parents": [
        "eb22c5b358af775a5f1192fc248594c7a0025d56",
        "e583a4ea8c90105eee9b408d39bca3a4af6a2569"
      ],
      "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": "36432ccc13f6d3db7af35661683c33ffa3406d85",
      "tree": "b4914f730d346ae626a43cd51514fec83bd55661",
      "parents": [
        "4098d78b3507bfecce9f7a8a4b5d334c7842ff88"
      ],
      "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": "4098d78b3507bfecce9f7a8a4b5d334c7842ff88",
      "tree": "4b1e5ada08d6c2976a401483190ad28451f1f47c",
      "parents": [
        "b4b4c11f82e88f9a1cecd97460a9fcc192b37612"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jun 03 18:30:22 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jun 03 18:30:22 2009 -0700"
      },
      "message": "remove some spurious debuging LOGD\n"
    },
    {
      "commit": "b4b4c11f82e88f9a1cecd97460a9fcc192b37612",
      "tree": "bd1c266012b39e4f6c7e0c961d20842d6f1ee1e9",
      "parents": [
        "a650aaa3918f47ceb116ce8dfd3f1e423687fa69"
      ],
      "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": "3b2c69d3b50508fe26e5142bcd00c3ea47109950",
      "tree": "1bd6e0c4b01941e46ca16e66aa124346d4875db1",
      "parents": [
        "411c77df9e0ef419df8a3fdb18c9ef331aad9335",
        "cede1ed3e1721dc4a697a540388ef0f4b51c60eb"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jun 03 15:12:30 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Jun 03 15:12:30 2009 -0700"
      },
      "message": "am cede1ed3: fix [1610840] Positional light doesn\\\u0027t work correctly on emulator\n\nMerge commit \u0027cede1ed3e1721dc4a697a540388ef0f4b51c60eb\u0027\n\n* commit \u0027cede1ed3e1721dc4a697a540388ef0f4b51c60eb\u0027:\n  fix [1610840] Positional light doesn\u0027t work correctly on emulator\n"
    },
    {
      "commit": "411c77df9e0ef419df8a3fdb18c9ef331aad9335",
      "tree": "a9a795669ae031f2d2e161572118cf1c9a943e53",
      "parents": [
        "a6cfdb1c73e732c87fc9e5bb795dd4009251a07e",
        "5de674e1cbd6e43b6d7954ccacf5cd709b30265d"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 03 15:12:28 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Jun 03 15:12:28 2009 -0700"
      },
      "message": "am 5de674e1: Merge change 3013 into donut\n\nMerge commit \u00275de674e1cbd6e43b6d7954ccacf5cd709b30265d\u0027\n\n* commit \u00275de674e1cbd6e43b6d7954ccacf5cd709b30265d\u0027:\n  Adding missing callback onJsConfirm to dismiss any confirmation dialogs\n  fix a bug in GL lighting where the specular component could be ommited when vertex material was disabled.\n"
    },
    {
      "commit": "cede1ed3e1721dc4a697a540388ef0f4b51c60eb",
      "tree": "5ff2785ac3838cfddf1877c8b019e7c5ca30e9ac",
      "parents": [
        "5de674e1cbd6e43b6d7954ccacf5cd709b30265d"
      ],
      "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": "5de674e1cbd6e43b6d7954ccacf5cd709b30265d",
      "tree": "2cb0c8cfecd313046671126de66e903e1c927472",
      "parents": [
        "b9a39cd300998a1a4577ac7eb87f9b505b8621dc",
        "7c7dface993a66778c506179ae11cadd6a88f7b1"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 03 15:07:26 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 03 15:07:26 2009 -0700"
      },
      "message": "Merge change 3013 into donut\n\n* changes:\n  fix a bug in GL lighting where the specular component could be ommited when vertex material was disabled.\n"
    }
  ],
  "next": "9081cd577889ea96075a3034611c0762f3e3d27e"
}
