)]}'
{
  "log": [
    {
      "commit": "67f27952c1bcb2230beef9b5ca0bf42edad436a9",
      "tree": "9cfec6c807b64d51fba041e2f6dd50c6abe3577e",
      "parents": [
        "dbf78bdb7a9aed3b8393c247128a7e8c760343b5"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Dec 07 20:09:23 2010 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Dec 07 20:12:50 2010 -0800"
      },
      "message": "Correctly release the OpenGL Canvas on EGL error.\n\nChange-Id: Ib31fd8445f7ce5f7aa7e0205de0e7db80d024fc2\n"
    },
    {
      "commit": "c15008e72ec00ca20a271c3006dac649fd07533b",
      "tree": "a518cebc2b12966bde88c0a3a80ee19b989d17bb",
      "parents": [
        "21c1114dad3a778992479ec8ef514e412a7b2646"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Nov 10 11:59:15 2010 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Nov 10 11:59:15 2010 -0800"
      },
      "message": "Move all debug flags in a single place.\n\nThis change also adds a new memory usage flag. When turned on, the\nfollowing is printed after every frame:\n\nD/OpenGLRenderer( 3723): Current memory usage / total memory usage (bytes):\nD/OpenGLRenderer( 3723):   TextureCache          3766680 / 20971520\nD/OpenGLRenderer( 3723):   LayerCache            3538944 /  8388608\nD/OpenGLRenderer( 3723):   GradientCache          135168 /   524288\nD/OpenGLRenderer( 3723):   PathCache               41180 /  4194304\nD/OpenGLRenderer( 3723):   TextDropShadowCache         0 /  2097152\nD/OpenGLRenderer( 3723):   FontRenderer 0         262144 /   262144\nD/OpenGLRenderer( 3723):   FontRenderer 1         262144 /   262144\nD/OpenGLRenderer( 3723):   FontRenderer 2         262144 /   262144\nD/OpenGLRenderer( 3723): Other:\nD/OpenGLRenderer( 3723):   FboCache                    2 /       12\nD/OpenGLRenderer( 3723):   PatchCache                 31 /      512\nD/OpenGLRenderer( 3723): Total memory usage:\nD/OpenGLRenderer( 3723):   8268404 bytes, 7.89 MB\n\nThis should help tracking possibe memory issues.\n\nChange-Id: I83f483ca1d2dbef904829bce368e33fe5503e8d6\n"
    },
    {
      "commit": "4afdf666fdb034834c48445570ed9d6f4133fc71",
      "tree": "a957f9f7fc930ac5e7eed44b8849ecee9794c6ab",
      "parents": [
        "1b422d8cd8ed83b79e977a3afb99969cea4a6700"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Wed Oct 13 21:31:28 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Wed Oct 13 21:31:28 2010 -0700"
      },
      "message": "Color filters were ignored by the program cache fast path.\n\nChange-Id: I08f2f02d356234a674be778d088e0558fd49c849\n"
    },
    {
      "commit": "9db91243c5ace4421091557b76a0b1cbd2312fec",
      "tree": "7fc21b5c4942c98e092fe376525fd3194700be84",
      "parents": [
        "a3496a9e6011e73deadd33bd0edd9229512e23d3"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Oct 12 13:13:09 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Oct 12 13:13:09 2010 -0700"
      },
      "message": "Simplify black texture fragment shader.\n\nChange-Id: If2d43f92f4c98ec128692761a670b0f31207a3c0\n"
    },
    {
      "commit": "707b2f78ccaa09965d7e030fda3a883ce9b75ea8",
      "tree": "0503326cbed34fe219dc32508456b5ce9bd03340",
      "parents": [
        "7537f856f9076a84db04d8de447f6527b67166fd"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Oct 11 16:34:59 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Oct 11 16:34:59 2010 -0700"
      },
      "message": "Optimize GLSL shaders.\n\nChange-Id: I9a5e01bced63d8da0c61330a543a2b805388a59d\n"
    },
    {
      "commit": "7537f856f9076a84db04d8de447f6527b67166fd",
      "tree": "87788a3ee601b5db44945f8916c395cbb93980d2",
      "parents": [
        "101e2ae00c478e13f34c81db05a9a921ad637571"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Oct 11 14:38:28 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Oct 11 14:38:28 2010 -0700"
      },
      "message": "Improve performance of linear gradients.\n\nChange-Id: If1caee31fc045dea13a4c5c10f25f2ffd325c4f8\n"
    },
    {
      "commit": "14830948d02f768c41b97b7a8d15e1b3cab78267",
      "tree": "349cf9a5e1120ca3bc92807efb3db10ff11a8468",
      "parents": [
        "6b7bd24659fb175fe1f0e97c86c18969918b496a"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Oct 07 15:07:45 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Oct 07 15:07:45 2010 -0700"
      },
      "message": "Add 3D transforms support to all gradients.\n\nChange-Id: I61409edd00dab3a11684a3f5e4f7df0afc734758\n"
    },
    {
      "commit": "e3095e0c1e2a4a4f34f741aa386eae56536ca5aa",
      "tree": "6d2d7c5929bf73af2b0eeb07e757944db921c2de",
      "parents": [
        "572eab6f17a78a9483bbf4b3646aa5a6038ea210"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Oct 06 16:57:29 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Oct 06 16:57:29 2010 -0700"
      },
      "message": "Apply 3D transformations to gradient shaders.\n\nThis fixes only linear gradients. Sweep and radial gradients, as well as\nbitmap shaders, will be fixed in a future commit.\n\nChange-Id: I4eee4ff62e9bbf3b9339fc111a780167449ecfef\n"
    },
    {
      "commit": "ddb80bebb0776e6d852aab6e8bba5d5591847a55",
      "tree": "460e39e115bf75648a3b4dbc9788c911751bd848",
      "parents": [
        "ee916f14cbd1fe1422c063ce2ef7b185e2bc5c6f"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Sep 20 19:04:33 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Sep 21 16:48:50 2010 -0700"
      },
      "message": "Add support for circular gradients to the GL renderer.\n\nThis change also adds full support for local transformation matrices on\nsweep and radial gradients.\n\nChange-Id: Id8773bc0766575190e3f3d51984fc5e57b266c3f\n"
    },
    {
      "commit": "ee916f14cbd1fe1422c063ce2ef7b185e2bc5c6f",
      "tree": "4fd53bcd273d42fa1aebb064b18563aa293467b1",
      "parents": [
        "b5ab4173e0927e4668a45298c9900cd8007584e1"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Sep 20 17:53:08 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Sep 20 17:54:17 2010 -0700"
      },
      "message": "Add support for SweepGradient in the GL renderer.\n\nChange-Id: I7aa397ed4e34655ead9ba1f5b4ce087665e0f022\n"
    },
    {
      "commit": "f607bdc167f66b3e7003acaa4736ae46d78c1492",
      "tree": "b3b4fb761b25d08ba836ff822f6e72d85b5be695",
      "parents": [
        "d14f0dfd58af653a2d41424d472fe97de6af0a78"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Sep 10 19:20:06 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Sun Sep 12 12:24:12 2010 -0700"
      },
      "message": "Correct implementation of saveLayer().\n\nChange-Id: I5375126636913e0a84f2d6bbd0ebe40d2e4f2763\n"
    },
    {
      "commit": "a5aed0d58962a24c44728ffc46dc9e1ba2f9fda5",
      "tree": "4194d14711b2cba0e8192e5f1c0764f530bc7309",
      "parents": [
        "d90f23e24a4d1768d5a7ed0e7072e67af6330a45"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Sep 09 14:42:43 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Sep 09 14:42:43 2010 -0700"
      },
      "message": "Add support for advanced blend modes with the framebuffer.\n\nThis adds the ability to blend with the framebuffer using Darken,\nLighten, Add, Multiply, Overlay and Screen.\n\nChange-Id: Iae01a53797d4ad39c373cba6ff2a42293129da1a\n"
    },
    {
      "commit": "48daa54d31fc59ec969dcff65eb3cbb0ce879a8d",
      "tree": "f4ad358f86c6c66b457129ca2aa863be01a47a20",
      "parents": [
        "a674ab74e359ac73b4c4dd6b1a3a771836ac7e40"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Aug 10 19:21:34 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Aug 10 21:42:40 2010 -0700"
      },
      "message": "Add extra blending modes.\n\nThis change adds the following blending modes for shaders and color filters:\nAdd\nMultiply\nScreen\nOverlay\nDarken\nLighten\n\nChange-Id: Iff22f5ce6041b43c71b1857d73013f5010ab3413\n"
    },
    {
      "commit": "61c8c9c5b2006d18e9310b6521c65b36ffe75ce4",
      "tree": "f2a792387a3177a2e7a25290ec48bd79c62ef3e6",
      "parents": [
        "8cc82c6f4802937309dce6cba310e31358cdf6bf"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Aug 09 20:48:09 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Aug 10 12:22:01 2010 -0700"
      },
      "message": "Fix tons of bugs and add new text rendering support.\n\nChange-Id: I326c66b10784006f6df2f12d38e120cef94cd0d7\n"
    },
    {
      "commit": "7fbcc0492fca03857e3c45064f4aa040af817d55",
      "tree": "a2422b4694ae589a60f2571070c53c7b918ec732",
      "parents": [
        "bc9151bcad5d1b1d14bb900fcc50ba08c06f87d4"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Aug 04 15:40:07 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Aug 05 17:23:49 2010 -0700"
      },
      "message": "Add support for paths.\n\nRendering is implementing by rasterizing the paths into A8 textures.\nThis cna be extremely inefficient if the path changes often.\n\nChange-Id: I609343f304ae38e0d319359403ee73b9b5b3c93a\n"
    },
    {
      "commit": "db1938e0e6ef816e228c815adccebd5cb05f2aa8",
      "tree": "d40e91a873bca6750083fdb1713a12b469ebad4d",
      "parents": [
        "16f8c620abd0ea07e704b6997a66a45ad3590dea"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Aug 02 18:50:22 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Aug 02 18:50:56 2010 -0700"
      },
      "message": "Add support for ColorFilters.\n\nColor filters are fully supported and can be used with shaders.\n\nChange-Id: Id90ccf1c81cb462f2431f366f3f8f710d7971e04\n"
    },
    {
      "commit": "06f96e2652e4855b6520ad9dd70583677605b79a",
      "tree": "7d0e3709c8a400e264f37206eb27a286ee50d64b",
      "parents": [
        "42272759e4c3c406977187fd2b4df8739edccde8"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jul 30 19:18:16 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jul 30 19:18:16 2010 -0700"
      },
      "message": "Refactor Skia shaders handling.\n\nWith this change, Skia shaders can easily be applied to any mesh. This change also\nsupports ComposeShader. For instance, this can be used to blend a gradient and a\nbitmap togehter and paint a string of text with the result.\n\nChange-Id: I701c2f9cf7f89b2ff58005e8a1d0d80ccf4a4aea\n"
    },
    {
      "commit": "889f8d1403761d5668115ced6cbb3f767cfe966d",
      "tree": "8620d3453e3811dce152630f1b17e0f5f42601c6",
      "parents": [
        "85d8daa889db113b51c5d98929245e80f7277388"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jul 29 14:37:42 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jul 29 14:37:42 2010 -0700"
      },
      "message": "Moved all the rendering code to the new shader generator.\n\nThe generator supports features that are not yet implement in the\nrenderer: color matrix, lighting, porterduff color blending and\ncomposite shaders.\n\nThis change also adds support for repeated/mirrored non-power of 2\nbitmap shaders.\n\nChange-Id: I903a11a070c0eb9cc8850a60ef305751e5b47234\n"
    },
    {
      "commit": "ac670c0433d19397d4e36ced2110475b6f54fe26",
      "tree": "10722cd4e465fc053f9536cc312c1125a694108a",
      "parents": [
        "bb2b2a996b2c0bea7e434136e20340f4f1b398ab"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jul 27 17:39:27 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jul 27 19:52:29 2010 -0700"
      },
      "message": "Generate shaders to cover all possible cases.\n\nWith this change, all the vertex and fragment shaders used by the GL\nrenderer are now generated based on a program description supplied\nby the caller. This allows the renderer to generate a large number\nof shaders without having to write all the possible combinations by\nhand. The generated shaders are stored in a program cache.\n\nChange-Id: If54d286e77ae021c724d42090da476df12a18ebb\n"
    }
  ]
}
