)]}'
{
  "log": [
    {
      "commit": "38c1a7e732660212687cf375f5e5ed354b91e431",
      "tree": "58002fa382899816d2e3fe9b0bb1310ed060ed20",
      "parents": [
        "55bed957788e853d3ee3f674dd6eea79ad3a193b"
      ],
      "author": {
        "name": "Pablo Ceballos",
        "email": "pceballos@google.com",
        "time": "Fri Oct 30 10:34:30 2015 -0700"
      },
      "committer": {
        "name": "Pablo Ceballos",
        "email": "pceballos@google.com",
        "time": "Fri Dec 18 13:12:58 2015 -0800"
      },
      "message": "Add GLES32 class and JNI\n\nChange-Id: I05ff0c14a35f51c2015edbd762dc9e6fe43347b9\n"
    },
    {
      "commit": "dce45fd66b403ab861dad5f27535785d87fa3028",
      "tree": "224c4bdd4047db48f7688d5a0ac59e8831122485",
      "parents": [
        "6a6644c739f6f0aec2955b2ebb75a310d9aa167d",
        "3cdc93c6b48e751eeceb844e682f6d852dabf364"
      ],
      "author": {
        "name": "Pablo Ceballos",
        "email": "pceballos@google.com",
        "time": "Tue Oct 27 17:57:28 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 27 17:57:28 2015 +0000"
      },
      "message": "Merge \"Add missing OpenGLES 3.1 bitfield constants.\""
    },
    {
      "commit": "a4d4e82927ceadc23863e74b7e1160e4497504a7",
      "tree": "b2f514a16067fcd10cd3d81d9d7e2005265033f8",
      "parents": [
        "374abe11a07fe6c742a370da8445c250d908ef6f"
      ],
      "author": {
        "name": "Pablo Ceballos",
        "email": "pceballos@google.com",
        "time": "Mon Oct 05 10:27:52 2015 -0700"
      },
      "committer": {
        "name": "Pablo Ceballos",
        "email": "pceballos@google.com",
        "time": "Tue Oct 06 15:18:40 2015 -0700"
      },
      "message": "Remove GLTrace support\n\nGLTrace is defunct, it does not support newer GL features, breaks\nsecurity requirements, and has no supported tooling now that Eclipse\nis at end of life.\n\nBug 22329852\n\nChange-Id: I64c58464f8c2c7ae6125f5d5c7884e3fd34d68ea\n"
    },
    {
      "commit": "3cdc93c6b48e751eeceb844e682f6d852dabf364",
      "tree": "df664b1cf44f30d516e7190de189b463cd9726a6",
      "parents": [
        "2c53a0759742eeec8f123ad81b7a26aef222c378"
      ],
      "author": {
        "name": "Pablo Ceballos",
        "email": "pceballos@google.com",
        "time": "Tue Sep 29 16:16:30 2015 -0700"
      },
      "committer": {
        "name": "Pablo Ceballos",
        "email": "pceballos@google.com",
        "time": "Tue Sep 29 23:25:54 2015 +0000"
      },
      "message": "Add missing OpenGLES 3.1 bitfield constants.\n\nBug 23892570\n\nChange-Id: I92c7bb9bafb84259bdc42927193e989a6a95d4df\n"
    },
    {
      "commit": "59b429d10678542756c1a9ba7acf900de3d41871",
      "tree": "7eeba12f466697c905310a2b3b5f3585f6309a7d",
      "parents": [
        "72285e5600fad17c42730d6f84164d8425d4d43c"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Jun 08 17:34:21 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Jun 08 17:40:00 2015 -0700"
      },
      "message": "Add tracing to GLSurfaceView\n\nbug:21195272\n\nChange-Id: I96bce6d6021fc720c73993202ba90997b0fc0e09\n"
    },
    {
      "commit": "f4faeac3525fe1ce3707ab785a1651aec367589d",
      "tree": "b49502dc2381517f3314d16fae1eef7414314a8f",
      "parents": [
        "cd4ed96d10d49cb182e66aa1735f2de7596707ee"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Mar 05 13:50:31 2015 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Mar 05 13:56:16 2015 -0800"
      },
      "message": "Cleanup Bitmap JNI attempt #2\n\nOriginal version missed a spot\n\nThis reverts commit c02977e3bbfaaedcb1b1d67e1692becc7dddd59b.\n\nChange-Id: I56244ce10d709fcdef42a001fe4c6ba7b6bbb04d\n"
    },
    {
      "commit": "c02977e3bbfaaedcb1b1d67e1692becc7dddd59b",
      "tree": "24564767d59138f5c039efefe4744ee35c23ac7e",
      "parents": [
        "b2915245b74b3b5541b123e38403f8e26426b4b7"
      ],
      "author": {
        "name": "Chad Jones",
        "email": "chadj@google.com",
        "time": "Thu Mar 05 19:34:26 2015 +0000"
      },
      "committer": {
        "name": "Chad Jones",
        "email": "chadj@google.com",
        "time": "Thu Mar 05 19:34:26 2015 +0000"
      },
      "message": "Revert \"Cleanup Bitmap JNI\"\n\nThis reverts commit b2915245b74b3b5541b123e38403f8e26426b4b7.\n\nChange-Id: Idd7d7f33eec4ea5024c83de6b10d3d1a6ab2b17a\n"
    },
    {
      "commit": "b2915245b74b3b5541b123e38403f8e26426b4b7",
      "tree": "295bee60e89bba1ae2221bf40833a80e6d2c41ef",
      "parents": [
        "f855b0d2d0c0c157d657668fcb98097e2aca097e"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Mar 04 08:36:12 2015 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Mar 05 09:55:02 2015 -0800"
      },
      "message": "Cleanup Bitmap JNI\n\nFix a bunch of places where mNativeBitmap was being\npoked at directly, switch them either to the NDK API\nor to GraphicsJNI where it made sense\n\nChange-Id: I6b3df3712d6497cba828c2d3012e725cb4ebb64d\n"
    },
    {
      "commit": "77e4a5250fc6df451999efe508f57968a44b603f",
      "tree": "e26c3542b7d6efcc4902c3e384a145938f006c83",
      "parents": [
        "c909e1b2dfa2e47b786d96818f70f6308c5a78be"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Oct 01 10:38:07 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Oct 01 10:38:07 2014 -0700"
      },
      "message": "Re-allow suppressing onDetachedFromWindow\n\nBug: 17578553\n\nGames seem to be doing this to prevent destruction of their\nGL contexts, and they assume it works even if it doesn\u0027t. However,\nGLSurfaceView is clunky here, so while the app is doing something\nquestionable we don\u0027t really offer a better way. For now revert\nback to kitkat behavior.\n\nChange-Id: Icfa9e496279b9cfa47f9bc7f6848d9313caed0d5\n"
    },
    {
      "commit": "f47a594f5250b1914c36423ee6b371f0b8db09d0",
      "tree": "f86289c7b515c2111fde3ce11e7fca384bc2f603",
      "parents": [
        "dd59aba6c7e142eae14d5f29ea6873a5b9790174"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Jun 30 16:20:04 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Jun 30 16:36:26 2014 -0700"
      },
      "message": "Fix onTrimMemory for HardwareRenderer\n\n Also fixes detachFunctor possibly drawing after return\n\n Bug: 15189843\n Bug: 15990672\n\nChange-Id: I64c48cb674c461a8eeaba407b697e09f72c98ce3\n"
    },
    {
      "commit": "61b2dfe224db012ea9492738ac7ab5cb0629e6c0",
      "tree": "739ebaeb2f1d03aba0c41ee60cb035648b21d3bc",
      "parents": [
        "7ab63acdd0a257272512d0bcf5e06036fa0b9fdf"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Mon May 19 16:42:18 2014 -0700"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Wed May 21 21:04:20 2014 -0700"
      },
      "message": "opengl: Un-hide GLES31 and GLES31Ext classes\n\nBug: 15028495\nChange-Id: Icda236ee12a06ef2eb9902253d272dee2b61f6ef\n"
    },
    {
      "commit": "7ab63acdd0a257272512d0bcf5e06036fa0b9fdf",
      "tree": "e171e4077a15b625b039d640a533077ecbaf303f",
      "parents": [
        "f26d4abecda0adb062b56302d8b604eb144f9b03"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Mon May 19 15:13:41 2014 -0700"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Wed May 21 21:04:20 2014 -0700"
      },
      "message": "opengl: Add GLES31 and GLES31Ext classes\n\nBug: 15028495\nChange-Id: Ie967c1938060edb42864dd48efa668ae7bf5cd76\n"
    },
    {
      "commit": "4660c9e064ebaec9ebb260c2853a8dab868ccdc2",
      "tree": "15b4e93fb44462164ce13c22b016adece9c80507",
      "parents": [
        "95c950825f02e937711fbcbff63f614a91cb1443",
        "43cea7eadbcb3930887eadfa3f278e1a666449d0"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Mon Apr 21 19:49:40 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Apr 21 19:49:40 2014 +0000"
      },
      "message": "am 43cea7ea: am 650a8860: am fc3c6a0e: Merge \"EGL_OPENGL_ES3_BIT_KHR is set as ES 3 context is requested.\"\n\n* commit \u002743cea7eadbcb3930887eadfa3f278e1a666449d0\u0027:\n  EGL_OPENGL_ES3_BIT_KHR is set as ES 3 context is requested.\n"
    },
    {
      "commit": "28a5c593577d6aef03d874b42ec0215c88f62bf4",
      "tree": "ff7d91c71484ecbcc137d2fe62bc15bf752a3ad5",
      "parents": [
        "c420ce34ba177cd959cbb9432e9597d377e6cee6"
      ],
      "author": {
        "name": "Jin Zhebin",
        "email": "zhebinx.jin@intel.com",
        "time": "Tue Jan 21 15:27:20 2014 +0800"
      },
      "committer": {
        "name": "bdeng3X",
        "email": "bingx.deng@intel.com",
        "time": "Tue Apr 15 05:11:58 2014 +0800"
      },
      "message": "EGL_OPENGL_ES3_BIT_KHR is set as ES 3 context is requested.\n\nOpenGL ES have 3 configuration: 1(EGL10.EGL_RENDERABLE_TYPE),\n2(EGL_OPENGL_ES2_BIT), 3(EGL_OPENGL_ES3_BIT_KHR). The driver\nshould be get the according configuration parameter.\nNow 1 is set to driver when Configuration 3 is set from user.\nSpecification EGL_OPENGL_ES3_BIT_KHR is set to driver when a OpenGL\nES 3 context is requested in setEGLContextClientVersion().\n\nChange-Id: I980d9d8dbe5754295f8329fcf9378962d669fa89\nSigned-off-by: Jin Zhebin \u003czhebinx.jin@intel.com\u003e\nSigned-off-by: bdeng3X \u003cbingx.deng@intel.com\u003e\n"
    },
    {
      "commit": "b14dfe20ef300c47cc5cdfbd844c21f7fd302f0c",
      "tree": "894d9b7652c64bd77185c064433d0271b2f4569b",
      "parents": [
        "acbc41d656be91854d9c128aee06b5ecc9f54528"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Mar 06 22:06:20 2014 +0000"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Mar 06 14:12:35 2014 -0800"
      },
      "message": "Revert \"Revert \"Workaround apps not calling super.onDetachedFromWindow()\"\"\n\nThis reverts commit bac16fae7e6fceb1e516252ede673844b772e7c3.\n\nChange-Id: I61e997b23fac1aa984129fdc0328426ff8891bdd\n"
    },
    {
      "commit": "bac16fae7e6fceb1e516252ede673844b772e7c3",
      "tree": "9692f596099b9fcdc4a25c00051fb443f430329e",
      "parents": [
        "198d20842a537f3df3584ea084e74220e172b086"
      ],
      "author": {
        "name": "Bart Sears",
        "email": "bsears@google.com",
        "time": "Thu Mar 06 21:09:51 2014 +0000"
      },
      "committer": {
        "name": "Bart Sears",
        "email": "bsears@google.com",
        "time": "Thu Mar 06 21:09:51 2014 +0000"
      },
      "message": "Revert \"Workaround apps not calling super.onDetachedFromWindow()\"\n\nRequested by jreck to fix the build.\n\nThis reverts commit 198d20842a537f3df3584ea084e74220e172b086.\n\nChange-Id: I733065cc124b59bf914034f5bac5e2e951a5b604\n"
    },
    {
      "commit": "198d20842a537f3df3584ea084e74220e172b086",
      "tree": "9256a5d3357465f52c726c12232aecfc1a42f622",
      "parents": [
        "cb20740ee171de3e604c07cdd02963d4d08a5fc9"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Mar 06 12:31:17 2014 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Mar 06 12:40:49 2014 -0800"
      },
      "message": "Workaround apps not calling super.onDetachedFromWindow()\n\n Bug: 13338698\n Move the releasing of hardware resources to a new\n @hide onDetachedFromWindowInternal\n\nChange-Id: I52b4e6ba4d5b3ce20b89cabffa248d1d780e3e81\n"
    },
    {
      "commit": "80009c029800fd343012ce55648ef9a21c139527",
      "tree": "99143a09c60522681a9a1b8454553b542691936b",
      "parents": [
        "fc9276340897289b8f848fc722152d6fc0f891ed"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Feb 28 14:00:10 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Feb 28 14:06:44 2014 +0000"
      },
      "message": "Fix bad link tag in javadoc.\n\nJava7 javadoc tools seem to accept this without complaint\nbut not all targets use java7 yet.\n\nChange-Id: Ib025d12550f5fd68edce5760747f9225a2be50c6\n"
    },
    {
      "commit": "1801b180dac364a25ef12a5af01ce0bb5a74a601",
      "tree": "a221e0c5fb225aac58ef7d3b625455081a3a0139",
      "parents": [
        "e5f98941bad09f797329aeec090177e1da17220e"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Feb 27 14:09:53 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Feb 27 14:17:48 2014 +0000"
      },
      "message": "API changes for 64 bit platforms.\n\nEGLObjectHandle.\u003cinit\u003e(int) and int EGLObjectHandle.getHandle()\nhave now been deprecated and replaced with variants that take\nand return java longs.\n\nbug: 13181704\nChange-Id: I67bef5fbf064e85205b8a85e00f91f4ffcf60d19\n"
    },
    {
      "commit": "e5f98941bad09f797329aeec090177e1da17220e",
      "tree": "e8be91d68af2366e5766bf870cb3091d6689dbe5",
      "parents": [
        "a393735a5d637d211713b2b580bdd16f8eba2f7d",
        "7aec4109c53371e69bec111c69767810f45c301c"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Feb 27 13:33:23 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Feb 27 13:33:23 2014 +0000"
      },
      "message": "am 7aec4109: am 7aeb4307: am 2525acf5: am e4dae5f2: Merge \"AArch64: Make eglGetDisplay(int) work for EGL_DEFAULT_DISPLAY\"\n\n* commit \u00277aec4109c53371e69bec111c69767810f45c301c\u0027:\n  AArch64: Make eglGetDisplay(int) work for EGL_DEFAULT_DISPLAY\n"
    },
    {
      "commit": "64d38d9f4863f6e9434e6820b924eb958e8a2230",
      "tree": "243037836541cee05e0aebc83944503af726e217",
      "parents": [
        "2ba70fd49bfcbb516e75c198c106764609335feb"
      ],
      "author": {
        "name": "Ashok Bhat",
        "email": "ashok.bhat@arm.com",
        "time": "Wed Feb 26 10:00:48 2014 +0000"
      },
      "committer": {
        "name": "Ashok Bhat",
        "email": "ashok.bhat@arm.com",
        "time": "Wed Feb 26 19:07:54 2014 +0000"
      },
      "message": "AArch64: Make eglGetDisplay(int) work for EGL_DEFAULT_DISPLAY\n\nNote that files changed in this patch have been automatically\ngenerated by running frameworks/native/opengl/tools/glgen/gen\nscript\n\nThis will allow eglGetDisplay(int) to work on both 32-bit and\n64-bit systems when EGL_DEFAULT_DISPLAY is passed as a parameter.\n\nChange-Id: Idf27d6e00d623d331bb2d4d7f85fa450e0db26c9\nSigned-off-by: Ashok Bhat \u003cashok.bhat@arm.com\u003e\n"
    },
    {
      "commit": "a77cf8735432daddb233164f41103a0ff38408bb",
      "tree": "7537a33c67ecc0b43ecd378862d177d700b94be0",
      "parents": [
        "6924c4ef8db3ffd80b35f2b736b7ea9577148e9e",
        "8a985d24ce9a38f40ed88fecbdcd0e75e3a68f44"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Tue Feb 25 19:57:33 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 25 19:57:33 2014 +0000"
      },
      "message": "Merge \"Tabs -\u003e spaces in frameworks/base.\""
    },
    {
      "commit": "8a985d24ce9a38f40ed88fecbdcd0e75e3a68f44",
      "tree": "a71a241bf554a157a25d54dce66364d7881c3579",
      "parents": [
        "875e2101d71afe7e4acf10b061c942fbf7294775"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Tue Feb 25 09:40:05 2014 -0500"
      },
      "committer": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Tue Feb 25 09:49:29 2014 -0500"
      },
      "message": "Tabs -\u003e spaces in frameworks/base.\n\nChange-Id: I5a84e8e93ac99b5ed0212b37bf66efa5e53864be\n"
    },
    {
      "commit": "58908b02f38b7bcf713664c76c6eaa732d1e8467",
      "tree": "bccc57ef54e8456f0abff72a2a98d145f4cf9801",
      "parents": [
        "e21c52a8c9ef27c348f784daa8ec384152c3264e",
        "d8410d38cf2eb133dab29aec722dce862584d115"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Feb 25 13:20:47 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Feb 25 13:20:47 2014 +0000"
      },
      "message": "am d8410d38: am 614b00de: am a88abfb3: am 6ab07fac: Merge \"Use long for pointers in opengl/EGL classes\"\n\n* commit \u0027d8410d38cf2eb133dab29aec722dce862584d115\u0027:\n  Use long for pointers in opengl/EGL classes\n"
    },
    {
      "commit": "84bbeb9e0c9c185a22d4882b79e0bc8a598642ab",
      "tree": "aec3070b804b96ae85e20d95fc622ef0018762c1",
      "parents": [
        "bbfc08b3abc0934f67659f3238eb79dcac838c17"
      ],
      "author": {
        "name": "Ashok Bhat",
        "email": "ashok.bhat@arm.com",
        "time": "Mon Feb 24 10:06:55 2014 +0000"
      },
      "committer": {
        "name": "Ashok Bhat",
        "email": "ashok.bhat@arm.com",
        "time": "Mon Feb 24 15:50:22 2014 +0000"
      },
      "message": "Use long for pointers in opengl/EGL classes\n\nNote that files changed in this patch have been automatically\ngenerated by running frameworks/native/opengl/tools/glgen/gen script\n\nThis patch updates EGL classes in frameworks/base to support\n64-bit platforms. Key changes in the EGL classes include\n\n[x] EGLObjectHandle class - EGLObjectHandle class has two public\n    methods (constructor and getHandle) that assume handles are\n    32-bit. They have not been changed. Instead, two new hidden\n    methods (EGLObjectHandle(long) and getNativeHandle) have been\n    added.\n\n[x] EG14 class - Two public methods eglGetDisplay and\n    eglCreatePbufferFromClientBuffer assume that handles are 32-bit.\n    They have been changed to throw unsupported operation exception\n    on non 32-bit machines. Two new methods eglGetDisplay(long)\n    and eglCreatePbufferFromClientBuffer(...long buffer..) have\n    been added to support 64-bit handles.\n\nChange-Id: I9e0f064e5b33700eb0baa2e1841a21f931f7a765\nSigned-off-by: Ashok Bhat \u003cashok.bhat@arm.com\u003e\n"
    },
    {
      "commit": "9ba6ecb275d62ad363bda73856c0e75590a73c57",
      "tree": "eec0e02634033b31da0684ac4e27f880b0853ba9",
      "parents": [
        "807e0c180b1aaf519ea9ff788508219166cd00cd"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Fri Feb 14 13:09:07 2014 -0800"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Wed Feb 19 10:34:54 2014 -0800"
      },
      "message": "Hide three malformed GL bindings\n\nThey were replaced with correct bindings a while back, but the\nbroken methods weren\u0027t hidden.\n\nBug 6006380\n\nChange-Id: I3432d37a6bf411bbd2b3ea363749e32fcff28672\n"
    },
    {
      "commit": "863f98bbb3e234e18c62ce2678ae970b75995f69",
      "tree": "119cc10a408e32cd789a6d71244caaa33f096f8c",
      "parents": [
        "e05b7b50e234e8ed2471f5ad96bb3d715067e9f3"
      ],
      "author": {
        "name": "Ashok Bhat",
        "email": "ashok.bhat@arm.com",
        "time": "Mon Jan 27 16:58:46 2014 +0000"
      },
      "committer": {
        "name": "David Butcher",
        "email": "david.butcher@arm.com",
        "time": "Fri Jan 31 16:27:30 2014 +0000"
      },
      "message": "Use long to store pointers in GLES_JNI/EGL classes\n\nChange-Id: I43b32f2a85c07b3f59c57e28e3d03e8d1cabcd8b\nSigned-off-by: Marcus Oakland \u003cmarcus.oakland@arm.com\u003e\nSigned-off-by: Ashok Bhat \u003cashok.bhat@arm.com\u003e\n"
    },
    {
      "commit": "a0ab49bb52f44eac97f81117d6864edd6a2e0487",
      "tree": "fb5f1edd7765732612b5735592013fd4748cbb75",
      "parents": [
        "37c69fdd826f3973966430adc1abfbefc19bc16e",
        "544604098cce0648b82c9d3fa232cffcb2a902a7"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Sun Dec 15 00:11:21 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sun Dec 15 00:11:21 2013 +0000"
      },
      "message": "Merge \"Fix incorrect name in eglSwapBuffers log wrapper\""
    },
    {
      "commit": "544604098cce0648b82c9d3fa232cffcb2a902a7",
      "tree": "a6be9d15173bd059d90c609f719821992930529d",
      "parents": [
        "7adc233cf8f6f9e2a83a4549a9295d1a3933beab"
      ],
      "author": {
        "name": "Brian Harris",
        "email": "brianh@nvidia.com",
        "time": "Tue Dec 10 15:23:51 2013 -0800"
      },
      "committer": {
        "name": "Michael Chock",
        "email": "mchock@nvidia.com",
        "time": "Tue Dec 10 15:36:46 2013 -0800"
      },
      "message": "Fix incorrect name in eglSwapBuffers log wrapper\n\nCorrectly identify eglSwapBuffers in EGLLogWrapper, which had been\nlabeled as \"eglInitialize\".\n\nChange-Id: I67c61e100e2f84400ceebc28712f036e5a055017\n"
    },
    {
      "commit": "066bdcfe83e49ad4bfb97670521c1b7e7297ba53",
      "tree": "431691c3dc4dca1d6f9b59a0f128fa7019726898",
      "parents": [
        "db759c3f022d1416fe885e1a0ef05a4ca208f254",
        "a0175536383d77a5dd1908e73085752b1bf5a803"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Mon Jun 24 17:42:25 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 24 17:42:25 2013 +0000"
      },
      "message": "Merge \"Fix wrapper equals()\""
    },
    {
      "commit": "a0175536383d77a5dd1908e73085752b1bf5a803",
      "tree": "b79b679bccdd795bf5071e5f46c913cb234fe109",
      "parents": [
        "e36b93575f14239ff38ea8b71e39e41b0312326b"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Fri Jun 21 16:21:05 2013 -0700"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Fri Jun 21 16:21:05 2013 -0700"
      },
      "message": "Fix wrapper equals()\n\nMake it faster and correcter.\n\nBug 9204146\n\nChange-Id: Ieeb97b72005e831ec6b94fc24ed2c3bc03307c2a\n"
    },
    {
      "commit": "043d13ad4b67b57fa8ba1fa35f48ff5bcc0f0141",
      "tree": "b5476841ce34bf98d43de7b819b06e2223f64717",
      "parents": [
        "e36b93575f14239ff38ea8b71e39e41b0312326b"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Fri Jun 21 14:43:19 2013 -0700"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Fri Jun 21 14:49:23 2013 -0700"
      },
      "message": "Minor fixes to android.opengl.Matrix\n\nThis has a minor API change: deprecation of the nullary constructor.\nThe class is entirely composed of static methods, and was written\nwithout a constructor, but the compiler dutifully generated a\ndefault implementation and the API tool slurped it up.\n\nThe other changes are to the documentation:\n\n - Added warnings about the use of overlapping input and output\n   on certain methods.\n - Fixed a few inaccuracies (e.g. transposeM() returns a transposed\n   matrix, not an inverted matrix).\n - Tidied up the formatting.\n - Generally placated the consistency hobgoblins.\n\nBug 8868762\n\nChange-Id: Ie3f86b98c477d8dc82d9dcaa311959bd4d191359\n"
    },
    {
      "commit": "0c79d808cb66894434e78052c66a0f81e5419176",
      "tree": "5eca0b87776b0c1d8a0f02284486d2efd9b0e6ff",
      "parents": [
        "9f844790f305338de4fa3adda5e125c811f280ca"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Tue Apr 30 13:46:28 2013 -0700"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Wed May 01 13:46:58 2013 -0700"
      },
      "message": "Add android.opengl.EGLExt class for EGL extensions\n\nAdd the ES-relevant constants from the EGL_KHR_create_context\nextension. These allow apps to check which EGLConfigs (if any) support\nES3 contexts. Otherwise, the app has to create a context with an\nEGLConfig and then check whether it is an ES2 or ES3 context.\n\nAlso move eglSetPresentationTimeANDROID from EGL14 to EGLExt, since it\u0027s an\nextension function. It\u0027s new in API 18.\n\nBug: 8678160\nChange-Id: I3cba6e59ebb0a3a4c4012aa54a36b940c288bcec\n"
    },
    {
      "commit": "f48b03296c715b18ffbb7393d5e71ea96eaae028",
      "tree": "2c20fd5a25733d27e7f2366dd392bd3269270aa9",
      "parents": [
        "18414c4db7a2cd7d7b872e4cd4583bc8b7a4fcc0"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Apr 19 17:13:33 2013 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Apr 19 17:19:53 2013 -0700"
      },
      "message": "Revert all recent GLSurfaceView changes.\n\nSeveral issues have been identified that will need to be\nresolved carefully before we attempt to make similar changes.\n\n1. Some applications make assumptions about the fact that all\n   Runnables posted with queueEvent() will be executed before\n   the next draw.  Because the Choreographer may post messages\n   in the past (due at the frame time), these Runnables were\n   not always running at the expected time.\n\n2. Some applications apparently hijack the GLThread and try\n   to run their own Looper on it.  This obviously won\u0027t work\n   if we are already running one of our own.\n\nWe may need to add new rendering modes or target API checks\nto provide an opportunity for applications to opt-in to the\nchanges in the future.\n\nBug: 8649804\nChange-Id: I6289c3392a98cdbfaf28c7f4f7a8040f2138a3b4\n"
    },
    {
      "commit": "8b60e4514702edd1eb4b6f2bfc027e04a94369c0",
      "tree": "83ba3f9cbbb4a7bae7a5069622b7c31d1a135775",
      "parents": [
        "a454c5732cacffdda53ae277b1e43d87b43044b1"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 18 15:17:48 2013 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 18 19:04:39 2013 -0700"
      },
      "message": "Fix change of behavior in Looper.quit().\n\nIt seems some applications rely on Looper.quit() terminating the\nloop immediately without processing all messages.  Rather than\nrisk breaking them, make the safer behavior optional.\n\nAlso take care to properly drain the message queue before quitting\nso that all of the Message instances are recycled.  This may\nhelp release storage sooner in case the Looper doesn\u0027t get GC\u0027d\npromptly and its remaining queue of undelivered messages sticks\naround.\n\nImprove docs on runWithScissors.\n\nBug: 8596303\nChange-Id: I8cbeb6f7a5f6b8e618b5109f87a03defc1486b9f\n"
    },
    {
      "commit": "78bc2033129507f1cf4acb2e3007f89cb2b3f224",
      "tree": "41adde11412edcce0980968faaf83b9360be2771",
      "parents": [
        "d3f9ffe28d1599e40f8c9a7c0c32465324bb2828"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Apr 18 13:52:58 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Apr 18 14:47:44 2013 -0700"
      },
      "message": "don\u0027t trigger a render when setting the rendermode\n\nalso don\u0027t cache the rendermode, to mimic the older\nbehaviour.\n\nBug: 8656076\nChange-Id: Id9383852bed073927db2364f7ac30a1be28b4cd8\n"
    },
    {
      "commit": "c7bdd50c97d874456d0408599c1a6145186167dd",
      "tree": "337db05532cad0918f779b4f918a0f4c901f5fcc",
      "parents": [
        "d12a7645a3bf3ffa83b8041bf343f1dc12a2381f",
        "58d80c53c0aa2716b9bb6efa64111e1528cef2f8"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Tue Apr 16 22:17:19 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 16 22:17:20 2013 +0000"
      },
      "message": "Merge \"Unhide android.opengl.GLES30 class and contents\" into jb-mr2-dev"
    },
    {
      "commit": "811d373444822b1a81cd6fb4f8ef87f6d49559b1",
      "tree": "09a67069532bd0d9dcd81cc1a243732f95084e39",
      "parents": [
        "c6f2d17a0a6f9b172ff91247db12bc39a601f81c",
        "d830e74ff4bc9aa015f746e54f6922bf5221f1ba"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Tue Apr 16 21:32:36 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 16 21:32:36 2013 +0000"
      },
      "message": "Merge \"Add android.opengl.GLES30, hidden for now\" into jb-mr2-dev"
    },
    {
      "commit": "58d80c53c0aa2716b9bb6efa64111e1528cef2f8",
      "tree": "187d2fa22c5bdfa26c75840a71af568c8192febc",
      "parents": [
        "d830e74ff4bc9aa015f746e54f6922bf5221f1ba"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Wed Apr 10 22:52:36 2013 -0700"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Mon Apr 15 17:38:36 2013 -0700"
      },
      "message": "Unhide android.opengl.GLES30 class and contents\n\nBug: 8566953\nChange-Id: I5273fb3bff642da5ff1eecb5899e8051402b19ca\n"
    },
    {
      "commit": "d830e74ff4bc9aa015f746e54f6922bf5221f1ba",
      "tree": "3316db7c1a9ce1b6386e30e4b63d6ab658d3f7e7",
      "parents": [
        "c37b63d6e777748d17ff177b128e30504fbd6c71"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Fri Mar 29 11:02:35 2013 -0700"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Mon Apr 15 17:37:33 2013 -0700"
      },
      "message": "Add android.opengl.GLES30, hidden for now\n\nBug: 8566953\nChange-Id: Ia5a01d5e857b4fce12a451e2dcab0359758ad648\n"
    },
    {
      "commit": "ab814a647222ff6a6b682f0ff8159d1253cc0713",
      "tree": "eebe3154b6fe7ce2ebcfdeb9bd82f5ccd683e368",
      "parents": [
        "57d019e222abc0de3f8876e682617d42872230c6"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Apr 10 12:33:15 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Apr 10 12:33:15 2013 -0700"
      },
      "message": "Don\u0027t draw synchronously in onResume()\n\nthis could cause a dead-lock if the applicaltion\u0027s draw\nimplementation blocks until something happenson the main\nui thread.\n\nnote: we\u0027re still doing this synchronous draw in onWindowResize() because\nthat\u0027s what the previous implementation did. Technically, it has the\nsame problem.\n\nBug: 8586305\nChange-Id: I782568289cc9419346aeea73775d86faa28b3058\n"
    },
    {
      "commit": "57d019e222abc0de3f8876e682617d42872230c6",
      "tree": "520fc4b9aac469fa18ca180f6c509e00f9b780de",
      "parents": [
        "cf5ccb8f81f038112e13ce2c9ff73602005595f7"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Apr 03 17:28:14 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Apr 09 17:55:32 2013 -0700"
      },
      "message": "rework GLSurfaceView so it can use the choreographer\n\nGLSurfaceView will now automatically use the Choreographer to\nschedule render updates on VSYNC. This happens only in\nRENDERMODE_CONTINUOUSLY.\n\nGLSurfaceView was rewriten to use a Looper and a HandlerThread\ninstead of a custom thread.\n\nThe basic mode of operation is unchanged, however the implementation\nis largely different.\n\nRemoved support for older GPUs which had a limited number of contexts.\n\nBug: 8485730\n\nChange-Id: I7b270f7ad7bb1259e858429054b1c8c9cc159dc6\n"
    },
    {
      "commit": "ea62b95e7c562e8d0052441d8a0d7de6d919320f",
      "tree": "28a4b3e40da88b483dd59451b72b240f83224108",
      "parents": [
        "ab7409e6376708cf8958f3cfb8f6fce2e7bfc69c"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Mon Mar 18 22:44:58 2013 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Mon Mar 18 22:55:27 2013 -0700"
      },
      "message": "Fix createSurface / eglCreateWindowSurface race.\n\nPreviously we could have returned from createSurface on the main thread\nbefore calling eglCreateWindowSurface on the GLThread. That could lead\nto a problem because the surface could be destroyed before\neglCreateWindowSurface got a chance to run.\n\nBug: 8328715\nChange-Id: I273149f7d4b165abbe218a91ff54083f3f498cb0\n"
    },
    {
      "commit": "34f17dd1f615c6285f4f344eb700923e2432e48e",
      "tree": "430ffa928c1855257dfa4a257f4a9cb5a9c920e3",
      "parents": [
        "098b3ba5ef6e472b419c83b5e1d7c79bce05f2f5"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Wed Mar 06 14:26:34 2013 -0800"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Thu Mar 07 14:20:46 2013 -0800"
      },
      "message": "Publish new MediaCodec API\n\nUn-hide two new methods in MediaCodec, one new constant, and a new\nEGL extension.\n\nBug 7991062\nBug 8191230\n\nChange-Id: I028669132d9ffda1e4b34a561bab3997bbd7dae5\n"
    },
    {
      "commit": "0c361e9d3c93b3890fbae82b2f937bb4b3a42f70",
      "tree": "22bc6eeced29260770643c15a715542a9f6fa878",
      "parents": [
        "43abdc486d19c137b79a2bde9ce4706c91656bda"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Fri Mar 01 16:24:13 2013 -0800"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Tue Mar 05 11:16:10 2013 -0800"
      },
      "message": "Add eglPresentationTimeANDROID\n\nAdded EGL extension to set a timestamp on a surface.\n\nBug 8191230\n\nChange-Id: Ie73bd7d1217348c9c64b8c68da38d671d48355f7\n"
    },
    {
      "commit": "15284dee8efe6b4d1441ab040962077614b5061a",
      "tree": "6f18c65989ccb33cbf891eb4d85fb93916cb3177",
      "parents": [
        "88a1cf841ef8b5792fad8f3af4b4831101497c6c"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sat Feb 23 03:12:30 2013 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Feb 25 16:48:44 2013 -0800"
      },
      "message": "regenerate GLES java bindings\n\n    - added most missing validation checks\n    - glGet* validation reimplement from khronos documentation\n\n    Bug: 7402895\n\nChange-Id: I92a805bb1aba1600d3372dc2db22eab08c975d7f\n"
    },
    {
      "commit": "89be00bcda2b5965757e83bdf70a650b64373045",
      "tree": "e2cd9158a88cd014a8e884e0fd2d3b7165e26f33",
      "parents": [
        "eab51de4de88219256260fe26e2018a6234ef83b"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 22 20:08:06 2013 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 22 20:08:06 2013 -0800"
      },
      "message": "regenerate egl/gles stubs from glgen\n\nthose are minor cosmetic changes.\n\nChange-Id: I84ee5383577f0ca33ed7cc32d03e53c1475f068d\n"
    },
    {
      "commit": "0c1761bd37815c3776608a19c8e11d862b3e910c",
      "tree": "79ba5b10c39459913dad480243e0211b63ed41b0",
      "parents": [
        "0490f02eb72adcfd652f5e8373bf0a6c99592d54"
      ],
      "author": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Fri Dec 14 17:09:06 2012 -0800"
      },
      "committer": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Wed Dec 19 16:31:56 2012 -0800"
      },
      "message": "DdmServer: add controls for OpenGL tracing\n\nAdd a new JDWP packet to allow control of OpenGL tracing.\n\nChange-Id: Ic89e2f6299238a612df2f914581049f2cbba088c\n"
    },
    {
      "commit": "29e0bd2f5a80fdfe0e5b482a1df86363afcecbfa",
      "tree": "a7189ae7abae7420e0b649af13acc2a99e11717b",
      "parents": [
        "94998c9c4e19d5b439228646f1b283201367b7a0"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Sep 18 15:36:10 2012 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Sep 18 15:36:10 2012 -0700"
      },
      "message": "GLSurfaceView defaults to 888 instead of 565\n\nChange-Id: Ie00fe578136365031e4bb878a04b68dc40e24b9e\n"
    },
    {
      "commit": "f02b60aa4f367516f40cf3d60fffae0c6fe3e1b8",
      "tree": "893430514916fc74f4fd008dbcb457c2dd317989",
      "parents": [
        "ca34bcf6746454c561b0c07ca5c6e42bd4a73e9e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Aug 16 10:48:27 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Aug 16 12:46:38 2012 -0700"
      },
      "message": "Rename UserId to UserHandle.\n\nThis is the start of turning this into a formal public API.\n\nChange-Id: I5786d2c320f1de41a06ed5d0f65adb68967287a0\n"
    },
    {
      "commit": "1296c63bf14af034a90d5579ff301d1a2b70e34a",
      "tree": "0cfe801c21cd98bcfeecc6a673e875a69ae538a9",
      "parents": [
        "5d728bb9ff8c6ad89d5a1b88b2804f954d45d763"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Aug 08 01:47:28 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Aug 08 18:23:59 2012 -0700"
      },
      "message": "Enable use of Surface as a native window in EGL14 wrapper.\n\nChange-Id: Ia3546fd02f9b60d4505fbc0602522b95e3e5b6be\n"
    },
    {
      "commit": "42e1e0d482d774cf18a55773e434f02edb9e4462",
      "tree": "33ac1bca20382f2e8ccbf176c89b3476f2ae5c9b",
      "parents": [
        "8ab8fbbf46d8779f53301e7f706f97608eed7117"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jul 30 14:47:51 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jul 31 18:55:16 2012 -0700"
      },
      "message": "Improve gradients\n\nAvoid using textures for common gradients (two stops from 0.0 to 1.0)\n\nChange-Id: Iff55d21b126c8cfc4cfb701669f2339c8f6b131a\n"
    },
    {
      "commit": "0a088f5d4681fd2da6f610de157bf905df787bf7",
      "tree": "8d5e765c49b7bcbfbaeab8c15bca38746d45984b",
      "parents": [
        "c25259519f1b74bb62a2b051b74537f073436b5c"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jul 30 14:06:35 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jul 30 14:06:35 2012 -0700"
      },
      "message": "Fix android.opengl.Matrix frustum\u0027s generation\n\nExternal bug report: http://code.google.com/p/android/issues/detail?id\u003d35646\n\nChange-Id: I845783c05da46855f0c1d824c9a367f0e4673b85\n"
    },
    {
      "commit": "63cf0752226383cfc8fa35a3233413301b49fab7",
      "tree": "8e70b1d375a4a612cee51434b29c4b5b24554ccc",
      "parents": [
        "f33efd9c06102a13ae96532e9db35a18ffe4366c",
        "786fc93d71b833ab6b02b0c7ea5e30f25cceeedf"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jul 24 16:45:50 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 24 17:21:56 2012 -0700"
      },
      "message": "Merge \"Make HardwareRenderer able to target generic Surface objects\""
    },
    {
      "commit": "786fc93d71b833ab6b02b0c7ea5e30f25cceeedf",
      "tree": "7a33afdfc52077e9f9665acc6d6072cb23e3d9d2",
      "parents": [
        "d8031f0e8c0977ff04aeb2164afacb2434dc0775"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jul 24 16:24:56 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jul 24 16:41:21 2012 -0700"
      },
      "message": "Make HardwareRenderer able to target generic Surface objects\n\nChange-Id: I4b7199a1eb30e0df354ae12c4819adc69db5df40\n"
    },
    {
      "commit": "dd06946252be852aa53eb6142a119b0fccc83cd1",
      "tree": "de1b0c3ae2dda9d04bd5b451aa8522f146aff15b",
      "parents": [
        "60620a23996d7e6de72834bebde3b3c57981e219"
      ],
      "author": {
        "name": "Thomas Tafertshofer",
        "email": "tafertth@google.com",
        "time": "Thu Jul 19 16:55:37 2012 -0700"
      },
      "committer": {
        "name": "Thomas Tafertshofer",
        "email": "tafertth@google.com",
        "time": "Thu Jul 19 17:04:47 2012 -0700"
      },
      "message": "updated gles20 bindings, fixes broken methods\n\nthis adds correct versions of the broken GLES20 methods\nglGetShaderSource, glGetActiveAttrib and glGetActiveUniform.\nthe old functions are still there and need to be @hide later.\n\nBug: 6006380\nChange-Id: I8127a77c4b89aa8a9a54bea88774077535e2139d\n"
    },
    {
      "commit": "9b18b515909354d7b48c8ebc33ec38e2c6bbdf37",
      "tree": "deba4a28ee5731ba310b795c4f93db1d66017f52",
      "parents": [
        "f16336790bca9d3e946553f2e5a16e14bb9dbc3e"
      ],
      "author": {
        "name": "Thomas Tafertshofer",
        "email": "tafertth@google.com",
        "time": "Thu Jul 12 15:58:07 2012 -0700"
      },
      "committer": {
        "name": "Thomas Tafertshofer",
        "email": "tafertth@google.com",
        "time": "Fri Jul 13 17:44:00 2012 -0700"
      },
      "message": "EGL 1.4 API without @hide\n\nChange-Id: If03d23082b011aaba41594712601495dcbd70f6a\n"
    },
    {
      "commit": "6b1e838fc16d397359f82c3a4f5700f1ed7dd910",
      "tree": "318d0b9e0476cc6fb8a9dc997539f7a06957bf11",
      "parents": [
        "7c67fcb2f983c08d9ab1ab65b0b877472d98dc06"
      ],
      "author": {
        "name": "Thomas Tafertshofer",
        "email": "tafertth@google.com",
        "time": "Tue Jul 03 13:37:35 2012 -0700"
      },
      "committer": {
        "name": "Thomas Tafertshofer",
        "email": "tafertth@google.com",
        "time": "Tue Jul 10 15:48:30 2012 -0700"
      },
      "message": "EGL 1.4 bindings generated by glgen\n\nChange-Id: I1c3da57101f4ea089a12f1796f25b72d6852141e\n"
    },
    {
      "commit": "cee059dc764a57860da6b1574952089680b5ddc6",
      "tree": "3ab06ffe788422219fbe225af7c70c66a3692d63",
      "parents": [
        "6e0ac89f3896369363698801e75671b3478e8d4f"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Mon Apr 16 12:25:36 2012 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Mon Apr 16 12:25:36 2012 -0700"
      },
      "message": "Improve GLSurfaceView Pausing.\n\nWhen pausing we want to do three separate things, in order:\n\n + release the EGL surface\n + optionally release the EGL context\n + optionally terminate Egl\n\nPreviously we would only do these things if we had an EGL surface. But\nit is possible that we don\u0027t have an EGL Surface, but still have an EGL\ncontext. And in that situation we still want to release the EGL context.\n\nNow we check the preconditions for the three cases separately.\n\nBug: 6338235\nChange-Id: I804683b3d5c136cc98ea3f5051067eea18152ddf\n"
    },
    {
      "commit": "7dee7a38baafcbdd26ff116eeec862ec661dedec",
      "tree": "d224d4d6becaeea454f8a38af58a5afd7e3031ce",
      "parents": [
        "c38cf4c7dbe7d96255d42dabf8ca801830813f5e"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Tue Apr 10 05:56:19 2012 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Tue Apr 10 06:05:42 2012 -0700"
      },
      "message": "Notify monitor waiters when changing mSurfaceIsBad value.\n\nOtherwise the waiters might not wake up, leading to ANRs.\n\nBug: 6307843\nChange-Id: I0646b4e8368f80dbff46342f75709992796973fd\n"
    },
    {
      "commit": "7d73df83f9a28950f404e957eb2e4ea1e8525c55",
      "tree": "6f46441836e2d5bf35556888a30d5a41c0b9d701",
      "parents": [
        "b0721d4b09c7a3553bd1e4f42402b669a097eab9"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Thu Mar 29 16:24:58 2012 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Thu Mar 29 16:24:58 2012 -0700"
      },
      "message": "Try to survive a failure return from eglMakeCurrent.\n\nAssume a failure in eglMakeCurrent occurs because the SurfaceView\nsurface has been destroyed.\n\nSee b/6257956 for an example of this failure happening during rotation\nstress testing.\n\nChange-Id: I4618703b5291aba3a3f0c6bd83c3435a67b97d33\n"
    },
    {
      "commit": "db6c78b5bdf264abe8f6de97f67ca5e90fb6a05a",
      "tree": "cf23eb1f3affd7590cc1ac34d8f53bd66d4814e7",
      "parents": [
        "db2026000a1d832b60d73e0a046bc8137fbb1960"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Thu Mar 29 12:23:57 2012 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Thu Mar 29 12:23:57 2012 -0700"
      },
      "message": "Make GLSurfaceView handle eglSwapBuffers errors more robustly.\n\nA careful reading of the EGL spec, as well as experience with many\ndifferent EGL drivers, has shown that it is error prone to attempt to\ndiscriminate between different error conditions.\n\nWe now treat any error besides EGL_CONTEXT_LOST as an indication that the\nEGL context is in a bad state, most likely due to the window manager\nhaving removed the underlying surface flinger surface.\n\nIn addition, we changed the way we deal with this kind of error:\nPreviously we would ignore the error and keep rendering. But if the\nEGL context and surface has become invalid, it would be better to\nstop drawing. We now stop drawing until the surface view surface is\nrecreated.\n\nSee b/6032663 for an example of this problem affecting the GMM app,\nbut note that GMM is using their own version of GLSurfaceView, so this\nchange won\u0027t help them directly. They\u0027ll have to make a similar change\nto their version of GLSurfaceView.\n\nChange-Id: Iffe3e1e3a3c7a91d03140fd34391eadeaecf777e\nSigned-off-by: Jack Palevich \u003cjackpal@google.com\u003e\n"
    },
    {
      "commit": "ad812a23df775062f0185076557e7f3fdfa57943",
      "tree": "d170b440d49fb188203bfe2d2b72f844d6b8a0f0",
      "parents": [
        "df78cd5ee959f57c35dd9d6ad0f6871c72438f3c",
        "483f3b06ea84440a082e21b68ec2c2e54046f5a6"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Mar 22 15:11:51 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 22 15:11:51 2012 -0700"
      },
      "message": "Merge \"Package restrictions per user\""
    },
    {
      "commit": "f7f4c20605badb95f99e3f1f609458a9e4fe0c1a",
      "tree": "099c7ac8f5777c3ee7d00849804bdcd70dd92c58",
      "parents": [
        "2ffead9cf2cb57d21929c354e547a428b8be54d2",
        "8b854cd74bd29b6bb0b4c681490a3a97b1739289"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Thu Mar 22 11:47:30 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 22 11:47:30 2012 -0700"
      },
      "message": "Merge \"Remove EGL context limit for Adreno GPUs.\""
    },
    {
      "commit": "483f3b06ea84440a082e21b68ec2c2e54046f5a6",
      "tree": "cc0dff8ea3d133a4dc910bc1e90c85380cea2064",
      "parents": [
        "8fca15f1f2273fa429e58f783d0970251d0942e5"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Mar 13 16:08:00 2012 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Mar 22 10:08:24 2012 -0700"
      },
      "message": "Package restrictions per user\n\nPackages can be enabled/disabled per user.\nThis requires maintaining stopped/launched states and\nenabled / disabled components and packages per user.\n\nRefactored pm.Settings and PackageSettingsBase to keep\ntrack of states per user.\n\nMigrated the stopped-packages.xml to users/\u003cu\u003e/package-restrictions.xml\n\nChanged intent resolution to handle individual user restrictions.\nBunch of IPackageManager calls now have a userId argument.\nMake AppWidgetService handle removals of packages.\n\nAdded some tests for pm.Settings and PackageManager.\n\nChange-Id: Ia83b529e1df88dbcb3bd55ebfc952a6e9b20e861\n"
    },
    {
      "commit": "8b854cd74bd29b6bb0b4c681490a3a97b1739289",
      "tree": "50be755ac4b7a61215892eea9ef0289fdbfb1180",
      "parents": [
        "6c25ffb77069a9f39884b8e91e1810254c3e2f03"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Mon Mar 19 11:17:40 2012 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Mon Mar 19 11:17:40 2012 -0700"
      },
      "message": "Remove EGL context limit for Adreno GPUs.\n\nThis change allows Adreno GPUs to have multiple EGL contexts. We had\nto limit this in earlier versions of Android due to limitations in\nthe Adreno GPU driver (only 8 EGL contexts allowed system wide.)\nThat brand of GPU has improved its EGL drivers to support multiple\nEGL contexts in more recent versions of their drivers used on more\nrecent versions of Android.\n\nBug: 6142005\nChange-Id: Id3030466be9a3d9fbe728f1785378c1f05da98fe\n"
    },
    {
      "commit": "48a59c3d852867f13da4138ed2de94044febb99e",
      "tree": "ca10c17f3ea1c968deb43703dac57b003a3c0d7e",
      "parents": [
        "6c25ffb77069a9f39884b8e91e1810254c3e2f03"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Thu Mar 15 11:50:45 2012 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Thu Mar 15 11:50:45 2012 -0700"
      },
      "message": "Ignore EGL_BAD_CURRENT_SURFACE errors from eglSwapBuffers\n\nCertain EGL device drivers are generating this error, so we need to\nsurvive it. (It\u0027s not clear from the EGL spec whether this is a\nlegitimate error code, but since it\u0027s being generated we need to\nhandle it.)\n\nRemove logging of expected errors from elSwapBuffers. We expect these\nerrors to happen, and are handeling them by ignoring them.\nNo need to clutter the logs.\n\nBug: 6083241\n\nChange-Id: If17dcfbb68d3009b92cf95a448728ccb47023b51\n"
    },
    {
      "commit": "64d10a1da0a702ffeb086ad9c4a632f2712f1dad",
      "tree": "ad00d68fc373d8bdeab43b2fc83f81a983c2e659",
      "parents": [
        "df0d3ab4d03d8738a606b35bf9673950844aef4a"
      ],
      "author": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Fri Mar 09 14:21:28 2012 -0800"
      },
      "committer": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Fri Mar 09 15:25:29 2012 -0800"
      },
      "message": "Expose a function to set OpenGL Trace level.\n\nThis patch adds a function setGlDebugLevel() to libEGL, and\nexposes it to the Java layer at android.opengl.GLUtils.enableTracing().\n\nChange-Id: Ia5abb130bc32fcfe3ab25b0a0a5283a54c54f357\n"
    },
    {
      "commit": "97eda365fcf7209b56e0a52e01f7fb3352e4fa63",
      "tree": "3de2b0218e47eb7aad4b45eddc186405ac6ffa74",
      "parents": [
        "91ec0b722f659bb5e4bcc64339f2fbbe30a31287"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Feb 17 13:08:35 2012 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Feb 17 13:08:35 2012 -0800"
      },
      "message": "Remove unused private APIs\n\nChange-Id: Ib22005c7ed9923120089a1f1c806bca55bb90967\n"
    },
    {
      "commit": "0219af277e5e1ae483c9690cffce33f185b02246",
      "tree": "60dc92432f4b262fafda8648e18850b25a58e9ef",
      "parents": [
        "4e2ecdd8a78f25f4c234877d5321ebd4e4c0e8f7",
        "ea54d0dc0dfeef5560fea04667804413d522025f"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Nov 21 21:23:49 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 21 21:23:49 2011 -0800"
      },
      "message": "am ea54d0dc: am 723218b4: Merge \"Hide ManagedEGLContext until we are sure this is the correct API.\" into ics-mr1\n\n* commit \u0027ea54d0dc0dfeef5560fea04667804413d522025f\u0027:\n  Hide ManagedEGLContext until we are sure this is the correct API.\n"
    },
    {
      "commit": "3526b00a53a2582a51ff8b98ac1400a48f351107",
      "tree": "57b86400dcced49117b636cbf6598247adfa1739",
      "parents": [
        "79de26ea20ddd65e7c361e138a6f992fd3802c22",
        "c26e4d18a20ab0b3e769fb3e547994f1c27d6713"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Nov 21 21:08:42 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 21 21:08:42 2011 -0800"
      },
      "message": "am c26e4d18: am 8cd39e3a: Merge \"Notify views when EGL resources are about to be destroyed Bug #5639899\" into ics-mr1\n\n* commit \u0027c26e4d18a20ab0b3e769fb3e547994f1c27d6713\u0027:\n  Notify views when EGL resources are about to be destroyed Bug #5639899\n"
    },
    {
      "commit": "dccf73a50cb2a219182e141bac1d9da82fdaf4d7",
      "tree": "9b49d3a96584d84bc8453eec54ebd4dce6f1313e",
      "parents": [
        "e7005ec9582f11744fa74d9c5c9562f9e4be04dc"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Nov 21 18:24:23 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Nov 21 18:27:21 2011 -0800"
      },
      "message": "Hide ManagedEGLContext until we are sure this is the correct API.\n\nChange-Id: If54942d342ca8ea348e10231b2aed3e5d3bd701b\n"
    },
    {
      "commit": "31f2c2e94656530fbf6282803e62edb47e9a894d",
      "tree": "fddc1ff144eccb20909107456ebd37325c86d8be",
      "parents": [
        "7859c1842c1f2e3c43415dfb5337a0b005bdb1c4"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Nov 21 10:55:41 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Nov 21 10:55:41 2011 -0800"
      },
      "message": "Notify views when EGL resources are about to be destroyed\nBug #5639899\n\nChange-Id: I7c5d8bebf02294426f5b3ab1358a31c38a4fd064\n"
    },
    {
      "commit": "fa1a6eb584dde49d424fa53a995a6d0dbd45155c",
      "tree": "dd338b7c9df14f53b01e8d58209c1366eda3ceb3",
      "parents": [
        "e761f1e58f3946b01f9715e145b402db16f81367",
        "0272e60060162d2c32aec02d9cd1414dbbe14782"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Fri Nov 18 02:37:22 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Nov 18 02:37:22 2011 -0800"
      },
      "message": "am 0272e600: am a37a78e2: Merge \"GLES: add image external enums\" into ics-mr1\n\n* commit \u00270272e60060162d2c32aec02d9cd1414dbbe14782\u0027:\n  GLES: add image external enums\n"
    },
    {
      "commit": "a37a78e2efe54892a744adfc6330c2d2179dee21",
      "tree": "ac24599f75ff1e7d0ed4436cc60994f68f4498e6",
      "parents": [
        "31b0c6872dcec0759ff0dbbcfc6bf1e51d3e0f12",
        "9726b1b54b45f9a165a12bc4738f22c5070a6657"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Thu Nov 17 15:47:28 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 17 15:47:28 2011 -0800"
      },
      "message": "Merge \"GLES: add image external enums\" into ics-mr1"
    },
    {
      "commit": "22da9a8beb4af362fbe9a108234d40b341c8d9fb",
      "tree": "b096415a33715ac09b18f9d2efecfbcd8cc13c00",
      "parents": [
        "9ab5fa0aaadcfdc27e993caceececebb8141e01f",
        "80b3cd6bc608c5929096e3407de2b157be925d3e"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Thu Nov 17 11:05:30 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 17 11:05:30 2011 -0800"
      },
      "message": "Merge \"Fix potential GLThread / GLSurfaceView memory leak.\""
    },
    {
      "commit": "77c5f4def49357a89abd9849b0bab950179d71f4",
      "tree": "0048a35fc889732713233de3723464f86b6128e0",
      "parents": [
        "7cd2b19a926224dee2b2e12f37c1d71ce658bf97",
        "9aa6bd1c34fe3583fe31f283a6415e84fec12567"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Nov 17 05:46:34 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Nov 17 05:46:34 2011 -0800"
      },
      "message": "am 9aa6bd1c: am 717a25dc: Add new ManagedEGLContext class to help apps participate in memory trimming.\n\n* commit \u00279aa6bd1c34fe3583fe31f283a6415e84fec12567\u0027:\n  Add new ManagedEGLContext class to help apps participate in memory trimming.\n"
    },
    {
      "commit": "717a25dc2a411edb548859cd6870363346c71b01",
      "tree": "69bbc13b92fbef8dd34df6473897d812cea0b4eb",
      "parents": [
        "4c6a65bc319feab120d40553d93b160908db2f6d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Nov 15 18:59:59 2011 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Nov 16 14:04:53 2011 -0800"
      },
      "message": "Add new ManagedEGLContext class to help apps participate in memory trimming.\n\nThis class provides an API for an application to know when it is time to\ndestroy its EGL context when memory is being trimmed.  By having this in\nthe framework, we can still detect whether it will be useful to destroy\nany EGL contexts (because we know if doing so will destroy all of them).\n\nChange-Id: I1eac8d640052778052926b875c7928008f752182\n"
    },
    {
      "commit": "80b3cd6bc608c5929096e3407de2b157be925d3e",
      "tree": "a56cf5d63a9e83b2375c9dd8fd7727f8ed5b4322",
      "parents": [
        "78137d77991f129b349b258474ef8b5133b300d9"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Tue Nov 15 14:51:27 2011 -0800"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Tue Nov 15 14:51:27 2011 -0800"
      },
      "message": "Fix potential GLThread / GLSurfaceView memory leak.\n\nUntil now a leak was possible under the following scenario:\n\nCreate a GLSurfaceView\nRegister a renderer (this automatically starts a GLThread).\nDiscard the GLSurfaceView without installing it in the view system.\n\nThis scenario can occur when a device is rotated rapidly from\norientation A to orientation B to orientation C. In that scenario,\norientation B\u0027s GLSurfaceView might be discarded without ever being\nattached to a window.\n\nIf this issue had been identified before GLSurfaceView had clients, one\npossible fix would have been to delay the construction of the GLThread\nuntil the GLSurfaceView was attached to a window. Unfortunately, it\u0027s\ntoo late, and so making that change would lead to observable changes in\nbehavior, possibly breaking some clients.\n\nInstead, fixed by making GLThread and EGLHelper static classes that hold\nonto a weak reference to the GLSurfaceView. This allows the GLSurfaceView\nto be garbage collected when it is no longer used, even if the GLThread\nis active. GLSurfaceView\u0027s finalize method will manually stop the GLThread\nif it is still running when the GLSurfaceView exits.\n\nPart of this change was to remove the Renderer reference from GLThread,\nbecause Renderer is a user-supplied class that could contain a reference\nchain that points back to the GLSurfaceView.\n\nFixes b/5606613 \"GLSurfaceView that\u0027s never added to a window will\nleak threads and views, can leak activities\"\n\nChange-Id: Iafdc329eb6e9e40062358e7c119f5547ffe23d5e\n"
    },
    {
      "commit": "9726b1b54b45f9a165a12bc4738f22c5070a6657",
      "tree": "1a58af8a6f63dce1b39ababe2067397300099ede",
      "parents": [
        "6a54a997e3dc71c5b9c5a1c7829bc3eb35404e92"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Nov 15 10:32:53 2011 -0800"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Nov 15 11:35:46 2011 -0800"
      },
      "message": "GLES: add image external enums\n\nThis change adds Java definitions for the enums of the\nGL_OES_EGL_image_external OpenGL ES extension.\n\nBug: 3482193\nChange-Id: Ib50326f8be9b9cc9021753855c3846ddcdc5eaa2\n"
    },
    {
      "commit": "1333742bedc9b462024302f302e3a7f27053df66",
      "tree": "f7cf76c82246c9fad4481ad232f17dfa81f57d45",
      "parents": [
        "0ed4c7f8cc8462d434c3a0103790b38fdbb8f392",
        "cb0db0306b5849a35d3d99eea1b34ce019c6f0d8"
      ],
      "author": {
        "name": "Akwasi Boateng",
        "email": "akwasi.boateng@ti.com",
        "time": "Fri Nov 11 15:34:19 2011 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Nov 11 15:34:19 2011 +0000"
      },
      "message": "am cb0db030: Merge branch \\\u0027ics-mr1-plus-aosp\\\u0027 of ssh://android-git:29418/platform/frameworks/base into ics-mr1-plus-aosp\n\n* commit \u0027cb0db0306b5849a35d3d99eea1b34ce019c6f0d8\u0027:\n  Make the overridden ImageView#setVisibility remotable\n  Clamp non-monotonic stats instead of dropping.\n  DO NOT MERGE. Fix leak in LayoutTransition\n  Fix lastVisible/global rects\n  Fix Wimax-less build.\n  Fix leak in LayoutTransition\n  Deferring wallpaper update to improve workspace scrolling (issue 5506959)\n  Terminate EGL when an app goes in the background\n  boot animation is dithered and scaled\n  Fix NdefRecord byte-stream constructor.\n  PopupWindow dismiss() can get into a recursive loop.\n  Fold WiMAX state into the mobile RSSI.\n  Remove dedicated wimax icon to fix RSSI layout.\n"
    },
    {
      "commit": "8ff6b9ebeeb24a6161ec6098e6bfdf8790ee5695",
      "tree": "b6caef363611d37aa58a1b92d96b0b8e2e9f50c4",
      "parents": [
        "36a7f2a9adfa21ec31f00d496fef82e68931c860"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Nov 09 20:10:18 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Nov 10 16:44:49 2011 -0800"
      },
      "message": "Terminate EGL when an app goes in the background\n\nThis does not happen on high end gfx devices. This happens\nonly if only one EGL context is initialized in the current\nprocess.\n\nChange-Id: Ibd1737efdf84eef8a84108b05795440d1ae9964e\n"
    },
    {
      "commit": "9829cceca11a0fc92ab1318ce32b4d4dae8d347d",
      "tree": "c610620dfbbed5e4a2b7509337374c966cecb29d",
      "parents": [
        "01b35d7b1c70e23b89fe642577ef2e2446bde12a",
        "fc5e224e8dcc878606e47ba3d834be0a79498ac6"
      ],
      "author": {
        "name": "Alex Sakhartchouk",
        "email": "alexst@google.com",
        "time": "Mon Nov 07 09:53:28 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 07 09:53:28 2011 -0800"
      },
      "message": "Merge \"Properly passing an unused variable through.\""
    },
    {
      "commit": "fc5e224e8dcc878606e47ba3d834be0a79498ac6",
      "tree": "e9b9d873a02dd45e15d01102838789d2af651f95",
      "parents": [
        "5b9c79f27ee1bfc1ab70770b55dc10e24988a42a"
      ],
      "author": {
        "name": "Alex Sakhartchouk",
        "email": "alexst@google.com",
        "time": "Thu Nov 03 17:28:33 2011 -0700"
      },
      "committer": {
        "name": "Alex Sakhartchouk",
        "email": "alexst@google.com",
        "time": "Thu Nov 03 17:28:33 2011 -0700"
      },
      "message": "Properly passing an unused variable through.\n\nChange-Id: Ie49b5855bfca4e202ed41b6167a899832e99d728\n"
    },
    {
      "commit": "eba186448ff048f8fc1ba596c9779e8069a93128",
      "tree": "286bec506d8cc6c5e8b6ed4a39543ee4dd63b280",
      "parents": [
        "b0ac8ed48307cf5ee34c38cf56856f15db99c96f",
        "74b2b9547329a0b05e0bd5701057696007b854bb"
      ],
      "author": {
        "name": "Joe Fernandez",
        "email": "joefernandez@google.com",
        "time": "Mon Oct 31 12:26:31 2011 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Oct 31 12:26:31 2011 +0000"
      },
      "message": "am 74b2b954: am 09848bc8: Merge \"docs: add developer guide cross references, Project ACRE, round 3\" into ics-mr0\n\n* commit \u002774b2b9547329a0b05e0bd5701057696007b854bb\u0027:\n  docs: add developer guide cross references, Project ACRE, round 3\n"
    },
    {
      "commit": "74b2b9547329a0b05e0bd5701057696007b854bb",
      "tree": "40eea9e4308a3ff3cb5033ddf51a2f25b1872f62",
      "parents": [
        "76756a42dd68062349158f70d9b0ab95db908acc",
        "09848bc89de999416e2de82a7693b2deec6bf802"
      ],
      "author": {
        "name": "Joe Fernandez",
        "email": "joefernandez@google.com",
        "time": "Sat Oct 29 02:16:10 2011 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Oct 29 02:16:10 2011 +0000"
      },
      "message": "am 09848bc8: Merge \"docs: add developer guide cross references, Project ACRE, round 3\" into ics-mr0\n\n* commit \u002709848bc89de999416e2de82a7693b2deec6bf802\u0027:\n  docs: add developer guide cross references, Project ACRE, round 3\n"
    },
    {
      "commit": "b50e2afd6782e9b877f52844bec106c12ff9a9ef",
      "tree": "18a1b86e6fbb5d5dc9e7fe42f5a9e79c0030a76a",
      "parents": [
        "e707859415f4c8e1c01228dfaa58fb0a690d442e"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Fri Oct 28 13:25:12 2011 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Fri Oct 28 14:38:53 2011 -0700"
      },
      "message": "Destroy and recreate the EGL surface when the surface size changes.\n\nDetails:\n+ Split EGLHelper.createSurface into two methods.\n+ Add a separate flag for specifying when to create the GlInterface.\n+ destroy and recreate the EGL surface when the surface size changes\n+ Remove no-longer-needed work-around for b/2263168.\n\nThis fixes b/2263168\n\nChange-Id: I0d2596527e3c8dabacdd8a8e427531eaefe7d266\n"
    },
    {
      "commit": "61fd1e8d8c3ccf2d6b7d4af1c19e8f0988d5a1ec",
      "tree": "0cc2443b58929c018ac78c1f85047fb9c4b267f2",
      "parents": [
        "a6d2e6b952d535fec4483d67ea52947e6e3bc629"
      ],
      "author": {
        "name": "Joe Fernandez",
        "email": "joefernandez@google.com",
        "time": "Wed Oct 26 13:39:11 2011 -0700"
      },
      "committer": {
        "name": "Joe Fernandez",
        "email": "joefernandez@google.com",
        "time": "Fri Oct 28 14:23:23 2011 -0700"
      },
      "message": "docs: add developer guide cross references, Project ACRE, round 3\n\nChange-Id: I6125315ecdf0f78dd947c514a9944729d723e95d\n"
    },
    {
      "commit": "a35c120d8fafa7dded606a25bc100b13f48ab9e3",
      "tree": "53bde00af464433a99270c6c1b7580608b027fb3",
      "parents": [
        "772158a596bc97694fa82e710b5cfbe8c6f40cdc"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Fri Oct 14 07:34:05 2011 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Fri Oct 14 07:34:05 2011 -0700"
      },
      "message": "Work around race condition when shutting down a surface flinger surface.\n\nWorks around b/4588890\n\nChange-Id: Ie0cf1f212686aec93cda85bf112f4b7ab4197256\n"
    },
    {
      "commit": "cc5471c35327c1511075f5df0d45a2d57610fecb",
      "tree": "09d3a2482bf8bccc22c62e35c40d31a28f8795e1",
      "parents": [
        "3ec8053fb2fc8384d614bfbe39e3e29a21d323ba"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Tue Sep 20 19:59:26 2011 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Tue Sep 20 19:59:26 2011 -0700"
      },
      "message": "Avoid allocating temporary memory for Matrix operations.\n\nAlso fix a bug where Matrix.invertM was not returning false when the\nmatrix could not be inverted.\n\nChange-Id: I68b172032093d9f257e88c802de936633bb4912c\n"
    },
    {
      "commit": "407ec78b828173257b0c5dae221649a4ccd8b058",
      "tree": "3890ba718151c345ce5c87a8d252e0445d790dc3",
      "parents": [
        "631582f7f7a3c879a5fba81f2bc082e4826758aa"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Aug 24 17:06:58 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Aug 24 17:06:58 2011 -0700"
      },
      "message": "Add OpenGL backend to ImageWallpaper\nBug #5204874\n\nCurrently disabled.\n\nChange-Id: I5e7b35dce2981b0691f107e39c6394b260466543\n"
    },
    {
      "commit": "3ab88557947d708cc36d60ce6566509ceff944e4",
      "tree": "9d5b772a77965900b776c1bd1c3d398a67f7e393",
      "parents": [
        "34e1fb1ee229a7e033dcd42f4efd194e1614d5ce"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Aug 01 20:24:02 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Aug 01 20:24:02 2011 -0700"
      },
      "message": "fix an issue where the screen could be stale after a surface size change\n\nsome GLES drivers dequeue buffers before a frame is started\n(which is allowed), which can cause a that frame to be rendered\ninto a buffer of the wrong size. Such buffer will be ignored\nby the compositor. If the application draws only once after a\nsize change, the screen might stay in this stale state.\n\nthis can be avoided by telling the GL driver to purge all its\npending buffers, which is done by making the surface not current\nand then current again.\n\nthis solution is specific to android, but acceptable because\nhandled solely in the framework.\n\nBug: 2263168\nChange-Id: I3d3c9a019979a9186e329d3160fa54adac78d3f7\n"
    },
    {
      "commit": "43dd61e08a726fbc3695b1cbfdef6bdd4ddd34be",
      "tree": "33f580f9ca4110cab54c799aad80e945210aeb67",
      "parents": [
        "e544a1dbc9a3a4277ef26f6c7a066e7b443829ec"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jul 12 14:11:07 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jul 12 14:11:07 2011 -0700"
      },
      "message": "fix typo in a comment\n\nChange-Id: If913611a65e8b578021e9f9a9546f05e0ce6ef44\n"
    },
    {
      "commit": "e5e0c50f7dfaccc220725c5595080e921ffda1e4",
      "tree": "ad37fc360554e81d9dddc6eb47c52e664f7ed25a",
      "parents": [
        "f71e5469441286c6f466043e64a7f6492557cbd9"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Wed Jun 15 15:18:31 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Wed Jun 15 16:14:26 2011 -0700"
      },
      "message": "Properly refcount SurfaceTexture in the JNI layer.\n\nChange-Id: I4b4c8020c13b8d6ce0d302fe42410033bf5785a6\n"
    },
    {
      "commit": "8f0095cd33558e9cc8a440047908e53b68906f5f",
      "tree": "2f55d779bf102e0c134357d89c7de69d0444634a",
      "parents": [
        "3a5c227279011f850036c29e7c0bc96023298d5c"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon May 02 17:24:22 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon May 02 18:32:29 2011 -0700"
      },
      "message": "Allows to render with an OpenGL context inside a TextureView.\n\nChange-Id: I59453f7fc3997f0502a1c5d325d37fed376fabc7\n"
    },
    {
      "commit": "7c80244afb9098c75b127c2d785bb6e5b03d68c5",
      "tree": "4eaf56c31d818142fa75d2c82ee1d4663f67fd08",
      "parents": [
        "b86a6ea41dadae6ee1915cdb9406c51193e97555"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Thu Apr 21 15:46:27 2011 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Thu Apr 21 15:46:27 2011 -0700"
      },
      "message": "Fix typo in Matrix.mPerspective.\n\n(Introduced by a copy-and-paste mistake when factoring out a common\nexpression. D\u0027Oh!)\n\nChange-Id: I5e97dde2d2f4564fc74ba69bfa4a2f9db44c8873\n"
    },
    {
      "commit": "d793299e875a97dc73e04e3beb2a2865563dccdb",
      "tree": "e8cdc375a5debec366cb3a6138226c1ab5ed4fe3",
      "parents": [
        "bf96c356c02c430153c281fb81dc1a00f7ad0b43"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Thu Apr 21 14:52:37 2011 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Thu Apr 21 14:52:37 2011 -0700"
      },
      "message": "Add utility method Matrix.perspectiveM\n\nChange-Id: Ic9d5e5d967bbc08acc524c5092ce61a1cdbfd360\n"
    },
    {
      "commit": "24ce5fb2cc09d0a14406e7b935f8648c5720d27e",
      "tree": "022bd63502ea1a649ecf32bdb3dc2e0205376901",
      "parents": [
        "7797e647fc8fcd5091b9449c0044f5cb70db5b47"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 08 20:01:01 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 11 15:31:20 2011 -0700"
      },
      "message": "Kill the global references in the OpenGL wrappers.\n\nJust use jniThrowException instead. Note that it would be trivial to throw\nseemingly more appropriate exceptions (NullPointerException and\nOutOfMemoryException in particular), but I\u0027m only attempting to preserve\nexisting behavior here.\n\nI also found shadowing bugs in some of the special-case functions, which\nwould previously always have leaked memory.\n\nThis also moves an accidental change to a generated file (ActivityThread -\u003e\nAppGlobals) into the generator, so it won\u0027t be overwritten in future.\n\nChange-Id: Iab570310b568cb406c60dd0e2b8211f8a36ae590\n"
    },
    {
      "commit": "9b7146db6d9c0586b98b062fbcdb3fac6cc54d19",
      "tree": "bb07142137a690e7fe705608da0d779ea942809e",
      "parents": [
        "0aaa11ed5be45170fb2535a6ce021c92b18d8878"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Mar 07 18:05:04 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Mar 07 18:05:04 2011 -0800"
      },
      "message": "Fix EGL JNI bugs\nBug #3461349\n\nBefore this change, eglGetCurrent*() could not be used to compare\ncontexts, displays and surfaces at the Dalvik level.\n\nChange-Id: I442037dae37bc357b64810ab10c779b5754e9153\n"
    },
    {
      "commit": "70a1875635cf988b9962fbe2325ea73fd346858c",
      "tree": "e2587fed775427e2a896a3a7a623a51cced7f8b7",
      "parents": [
        "e44e28fa116549608cfde064d8951dbc3f8e1fd3"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Mon Feb 07 11:36:47 2011 -0800"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Mon Feb 07 11:36:47 2011 -0800"
      },
      "message": "Extend recycled bitmap check to all GLUtils APIs.\n\nChange-Id: I9ea0022b167af2153190b6642aa303232e257379\n"
    }
  ],
  "next": "5f89f510f327228d4ba2261aff7e8faa7d3715aa"
}
