)]}'
{
  "log": [
    {
      "commit": "1e546815bbb736c50679a8aefc25f48561026fc5",
      "tree": "11a3b7106638c123d052d50ce3e2a1757e004cb4",
      "parents": [
        "3a6f25512c0a682b10961a5a7428e3393ffb0b75"
      ],
      "author": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Tue Jun 25 14:25:17 2013 -0700"
      },
      "committer": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Wed Jul 31 15:50:47 2013 -0700"
      },
      "message": "Support RGBA fonts and bitmap fonts (and RGBA bitmap fonts)\n\nQuite a few things going on in this commit:\n\n- Enable bitmap strikes by default in Paint objects.\n\nThe SkPaint parameter that enables bitmap strikes was not previously\nincluded in DEFAULT_PAINT_FLAGS. This effectively disabled bitmap\nfonts. Oops! It\u0027s for the best, though, as additional work was needed\nin Skia to make bitmap fonts work anyway.\n\n- Complain if TEXTURE_BORDER_SIZE is not 1.\n\nOur glyph cache code does not currently handle any value other than 1\nhere, including zero. I\u0027ve added a little C preprocessor check to\nprevent future engineers (including especially future-me) from\nthinking that they can change this value without updating the related\ncode.\n\n- Add GL_RGBA support to hwui\u0027s FontRenderer and friends\n\nThis also happened to involve some refactoring for convenience and\ncleanliness.\n\nBug: 9577689\nChange-Id: I0abd1e5a0d6623106247fb6421787e2c2f2ea19c\n"
    },
    {
      "commit": "be1b127c7bec252e0c6ab0e06ed6babed07d496f",
      "tree": "eaab57886d7cd44e10da155d3dc6188a30b2b17b",
      "parents": [
        "f69913056b8c6000ff0306573a97971702e8d35a"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jun 06 14:02:54 2013 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jun 06 16:26:51 2013 -0700"
      },
      "message": "Assume a texture is unbound after deleting it\nBug #9316260\n\nThe GL specification indicates that deleting a bound texture has\nthe side effect of binding the default texture (name\u003d0). This change\nreplaces all calls to glDeleteTextures() by Caches::deleteTexture()\nto properly keep track of texture bindings.\n\nChange-Id: Ifbc60ef433e0f9776a668dd5bd5f0adbc65a77a0\n"
    },
    {
      "commit": "8aa195d7081b889f3a7b1f426cbd8556377aae5e",
      "tree": "6cd0ab4181c25d3113c4e39b49e8f8a0c7d12b8b",
      "parents": [
        "84f3c5689cffbfc1e45a0101d5bb636323769f54"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jun 04 18:00:09 2013 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jun 04 18:58:36 2013 -0700"
      },
      "message": "Introduce Caches::bindTexture() to reduce glBindTexture calls\n\nChange-Id: Ic345422567c020c0a9035ff51dcf2ae2a1fc59f4\n"
    },
    {
      "commit": "cf51a4199835e9604aa4c8b3854306f8fbabbf33",
      "tree": "9f5095c3243d0e5dc367c613eee01db80472f1a0",
      "parents": [
        "f8a67f4f5dd4c5499a6e7148331f0286e31203ec"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Apr 08 19:40:31 2013 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Apr 11 14:07:34 2013 -0700"
      },
      "message": "Introduce PixelBuffer API to enable PBOs\n\nPBOs (Pixel Buffer Objects) can be used on OpenGL ES 3.0 to perform\nasynchronous texture uploads to free up the CPU. This change does not\nenable the use of PBOs unless a specific property is set (Adreno drivers\nhave issues with PBOs at the moment, Mali drivers work just fine.)\n\nThis change also cleans up Font/FontRenderer a little bit and improves\nperformance of drop shadows generations by using memcpy() instead of\na manual byte-by-byte copy.\n\nOn GL ES 2.0 devices, or when PBOs are disabled, a PixelBuffer instance\nbehaves like a simple byte array. The extra APIs introduced for PBOs\n(map/unmap and bind/unbind) are pretty much no-ops for CPU pixel\nbuffers and won\u0027t introduce any significant overhead.\n\nThis change also fixes a bug with text drop shadows: if the drop\nshadow is larger than the max texture size, the renderer would leave\nthe GL context in a bad state and generate 0x501 errors. This change\nsimply skips drop shadows if they are too large.\n\nChange-Id: I2700aadb0c6093431dc5dee3d587d689190c4e23\n"
    },
    {
      "commit": "0908764b2b3cf5075df4178a5f0a8547dcb7b317",
      "tree": "c69db8d815ad1d0b0172e7a20827254627800dad",
      "parents": [
        "df1dc28ba0c63b195016ad0453fc58025ee82acb"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Apr 04 12:27:54 2013 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Apr 04 12:27:54 2013 -0700"
      },
      "message": "First OpenGL ES 3.0 based optimization\n\nThis change uses a new OpenGL ES 3.0 feature to upload less data when\nthe font cache needs to be update. This can result in significant\nperformance improvements on device with large textures or with locales\nthat use a lot of glyphs (CJK for instance.)\n\nThis change also fixes various unpack alignment issues. The unpack\nalignment, as well as the unpack row length, is not texture specific\nbut a global state that affect all glTex/SubImage2D calls. Some of\nthem were missing the appropriate glPixelStorei() call. This could\nresult in corrupted textures.\n\nChange-Id: Iefb429d4d0d0b4e0faeadf27daafee6d30a21d85\n"
    },
    {
      "commit": "661a87ec28a49458f1faf533783abf2ab9927cab",
      "tree": "3a38408b317cfd4ee437ee27714262acc5490ad8",
      "parents": [
        "115096f50a560e64a7f95d37686d4861042c7aeb"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Mar 19 15:24:36 2013 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Mar 19 17:24:13 2013 -0700"
      },
      "message": "Reduce number of glDraw calls when drawing text\n\nThis change moves the mesh buffer from FontRenderer to CacheTexture\nto help reduce the number of texture binds and glDraw calls when\ndrawing text that spans across multiple textures.\n\nChange-Id: I7de574d88313ca3672879ca878c253ff5f131fc1\n"
    },
    {
      "commit": "ca79cf69d09efa0c327e9b1237d86a119aea5da7",
      "tree": "0fd02203babacee45f23ba19f869f869f3de0f54",
      "parents": [
        "dbc8cee1d500702bc8b1a8cb6a6c0961ab4ae0ed"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Tue Aug 14 16:44:52 2012 -0400"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Wed Dec 12 15:28:54 2012 -0500"
      },
      "message": "Update framework to support r5967 of Skia.\n\nbug: 6906025\nChange-Id: Iefdb830ec3aa2ab3472c1c142484a7aa21788a15\n"
    },
    {
      "commit": "b92d8f7979c29c7c09932578a11b2f8d6eec1d90",
      "tree": "b82c57bffc1eded3b6fd15d9a80019e3228c7f2d",
      "parents": [
        "7b770b0ec4e5a1b7f1b9601433fb35e55658453d"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri Sep 21 08:40:46 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Sun Sep 23 12:16:02 2012 -0700"
      },
      "message": "Optimize glyph cache texture uploads\n\nOnly upload the changed area of the glyph cache, not the entire\nbitmap. Note that we can\u0027t do the full-on optimization here of copying a sub-rect\nof the bitmap because of GL ES 2 limitations, but we can at least copy the\nhorizontal stripe containing the dirty rect, which can still be a big\nsavings over uploading the entire bitmap.\n\nIssue #7158326 Bad framerates on MR1 (Mako, Manta, Prime)\n\nChange-Id: Iab38d53202650f757ead4658cf4287bdad2b3cb9\n"
    },
    {
      "commit": "e43f785b7ff3fdf75f6d1c92282ebca6db191f2f",
      "tree": "fb21c2762b8afa2d09508e775cc025c2d27c0457",
      "parents": [
        "8087246d9964b11de8ce116bc63b156faa4197e0"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Sep 04 18:58:46 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Sep 04 18:58:46 2012 -0700"
      },
      "message": "Correctly check the height of a glyph prior to caching it\n\nChange-Id: Iaf3977afc20fcde65bfda7b9e092b3e723241684\n"
    },
    {
      "commit": "9b1204baf4740b4d443e72157dea98571cf84e1f",
      "tree": "4b54be4565714748895ff253a8a86beda8e4d9f9",
      "parents": [
        "9f5dab3fc228fa11c32b483e6101ec086895a32b"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Sep 04 15:22:57 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Sep 04 15:25:30 2012 -0700"
      },
      "message": "Small code cleanup in FontRenderer\n\nChange-Id: I09c00debe9b0b4f45b232cae402ed19bdaeabfe4\n"
    },
    {
      "commit": "9f5dab3fc228fa11c32b483e6101ec086895a32b",
      "tree": "f30e239e8396c08f7aa3a5009ca528af3d63591d",
      "parents": [
        "9fc4b356a4552336f661bf4dfaaa19a251194cdb"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Sep 04 12:55:44 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Sep 04 12:55:44 2012 -0700"
      },
      "message": "Refactor FontRenderer.cpp\n\nFontRenderer.h defined several classes and structures that now live\nin the font/ folder. This will make the code easier to read and\nmaintain.\n\nChange-Id: I3dc044e9bde1d6515f8704f5c72462877d279fe2\n"
    }
  ]
}
