)]}'
{
  "log": [
    {
      "commit": "984162fb7e4010b6e2908352dbff17ed47eecf06",
      "tree": "0b15f1e5bdd1485862dd1f9098e4c94bc033df77",
      "parents": [
        "a5545d24c7289c25707ffa8704b57a37cea6535a"
      ],
      "author": {
        "name": "Tom Hudson",
        "email": "tomhudson@google.com",
        "time": "Fri Oct 10 13:38:16 2014 -0400"
      },
      "committer": {
        "name": "Tom Hudson",
        "email": "tomhudson@google.com",
        "time": "Tue Nov 04 17:16:36 2014 -0500"
      },
      "message": "Replace StatefulBaseRenderer inheritance with CanvasState member\n\nIncrementally disentangles DisplayListRenderer and OpenGLRenderer.\nIntroduces abstract CanvasStateClient class to share three functions\nbetween the two.\n\nDesign doc at https://docs.google.com/a/google.com/document/d/1PY1JF7AfPEF2UOUAnETS5j_4_tnJShTAMExvpCJfP8o/edit?usp\u003dsharing.\n\nBUG:15672762\nR\u003ddjsollen@google.com,ccraik@google.com,jreck@google.com\n\nChange-Id: Ic9fdffe18808e7d921ad06d01ea1ca25b2ad6f23\n"
    },
    {
      "commit": "107843de4507b3511006cb9c77b8d0364374385a",
      "tree": "02b2f6181dbd8665638b174c2819f289a40551fd",
      "parents": [
        "daccecb263cad36b55dd84e25709d543ee887202"
      ],
      "author": {
        "name": "Tom Hudson",
        "email": "tomhudson@google.com",
        "time": "Mon Sep 08 11:26:26 2014 -0400"
      },
      "committer": {
        "name": "Tom Hudson",
        "email": "tomhudson@google.com",
        "time": "Tue Nov 04 15:49:44 2014 -0500"
      },
      "message": "Remove status return from all uirenderer::Renderer functions\n\nThis moves the interface closer to android::Canvas. The only use of\nreturn values was in the OpenGLRenderer subclass; that is replaced\nwith an internal dirty flag: returned from finish(), checked by\nCanvasContext.\n\nThis is part of a series of CLs to refactor the Graphics JNI bindings.\n\nBUG:15672762\nR\u003ddjsollen@google.com,ccraik@google.com\n\nChange-Id: Ifd533eb8839a254b0d3a5d04fc5a2905afdfc89e\n"
    },
    {
      "commit": "9481684560b2815d2706512086bb36467ef6acc0",
      "tree": "e6258e3075f56533df3ec11cf1443a0d1882b17d",
      "parents": [
        "bc622ed7c3f9ead17c8aede3ccc10babf0b8e0fa",
        "e05575e9c36850d8cfe49396ac9a1372511b12bf"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Oct 31 23:30:57 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 31 23:30:57 2014 +0000"
      },
      "message": "am e05575e9: am a8d83d63: Merge \"Layer changes\" into lmp-mr1-dev automerge: a51fba0\n\n* commit \u0027e05575e9c36850d8cfe49396ac9a1372511b12bf\u0027:\n  Layer changes\n"
    },
    {
      "commit": "0e89e2b7bcb2c035e8cee77f93120e7c5617f8d2",
      "tree": "8fcd1f768f08fbeb2cd13425a2bf15b7670428f2",
      "parents": [
        "141823ec6313d9545b8354ea1e3e017a1da3cfa8"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Oct 31 14:49:06 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Oct 31 15:30:10 2014 -0700"
      },
      "message": "Layer changes\n\nBug: 17208461\n\n* Switch Layer to be VirtualLightRefBase instead of\n  Caches\u0027 side-channel ref-counting\n* Include active layers in gfxinfo dump\n* Run gfxinfo dump on the correct thread\n* Dump gfxinfo on Layer creation failure\n\nChange-Id: I28d195699e2334518e215ab28c7a17355aee9678\n"
    },
    {
      "commit": "a8f1bce008fadff43eb15a0ac9c4056fa3192260",
      "tree": "c1f9031a2b399bac89e969003e330c84927a0b7c",
      "parents": [
        "3ed8a3131bfe2b47f1f31e326d1bb8b054295cbe",
        "c7c8b069407236bcc04c086912c73002d48419ef"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Oct 28 07:17:03 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Oct 28 07:17:03 2014 +0000"
      },
      "message": "am c7c8b069: Merge \"Cleanup debug options\" into lmp-mr1-dev automerge: b0aeaad automerge: 49a01fc\n\n* commit \u0027c7c8b069407236bcc04c086912c73002d48419ef\u0027:\n  Cleanup debug options\n"
    },
    {
      "commit": "23d307c8d88f4a3849163b9e5b7cd11d0d4f372c",
      "tree": "6142a542f5f25f2719b8950f6d06765605fb8bf1",
      "parents": [
        "670a82cbb1b62e69fa7ef7387eed545a76c96f76"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Oct 27 12:38:48 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Oct 27 12:43:25 2014 -0700"
      },
      "message": "Cleanup debug options\n\nBug: 18138852\nBug: 18065434\nChange-Id: Ibb07b73b147c2a8b287fe8aee3f6624582f21b00\n"
    },
    {
      "commit": "09c2d4fe15fbac2faf8a97ba2cc59132ee12222a",
      "tree": "b081d9c1fa74eac1d37f067603074357246e3f08",
      "parents": [
        "de2dc4e115d98a81fd0615d0e2934e5c1cfe70da"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Wed Oct 15 09:21:10 2014 -0400"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Fri Oct 17 10:44:29 2014 -0400"
      },
      "message": "Refactor HWUI to better handle Canvas DrawFilters.\n\nFirst, this CL removes the need to decompose the DrawFilters\nin Java and instead passes the SkDrawFilter to HWUI directly.\nThis also allows the removal of duplicated logic between HWUI\nand other Canvas implementations regarding Paint filter levels.\n\nSecond, the DrawFilter is now stored in the DisplayListRenderer\nwhere we apply it to every paint BEFORE it is stored in the\nDisplayList.  This eliminates the need to filter all Paints on\nplayback and removes additional complexity at playback.\n\nFinally, as a result of storing the filtered paint we can now\ndo a better job caching the paints.  This takes advantage of\nrecent changes in Skia to quickly enable quick hashing and\ncomparison of paint objects.\n\nChange-Id: Iec507a2d894827975cc4f1d22241542bb0534b4e\n"
    },
    {
      "commit": "2dc236b2bae13b9a0ed9b3f7320502aecd7983b3",
      "tree": "0fdb6c210ba1cba9397252a69d05fdf72e6f35a9",
      "parents": [
        "6cbb42186e990c401da1e1dbc465fd58fde158a1"
      ],
      "author": {
        "name": "Tom Hudson",
        "email": "tomhudson@google.com",
        "time": "Wed Oct 15 15:46:42 2014 -0400"
      },
      "committer": {
        "name": "Tom Hudson",
        "email": "tomhudson@google.com",
        "time": "Wed Oct 15 15:51:39 2014 -0400"
      },
      "message": "Clean up physical coupling\n\nNarrow the use of #include directives in hwui, replacing with forward\ndeclarations where straightforward. Speeds compiles; doesn\u0027t do any\nrestructuring of code.\n\nChange-Id: Icac2baffb5896f55d8c6718e9bd9d4bfa02d3ca0\n"
    },
    {
      "commit": "59e129fbc8a70d58d124ccc309661719f562b486",
      "tree": "e652f2698ee8d989be6b68111939fb6ab0347202",
      "parents": [
        "6062a09dbc1c26cacb6fa2dac7467ae826b70229",
        "c5b5f0556b542a22f01d254e6284f69e9eb23e74"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Oct 02 19:28:07 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 02 19:28:09 2014 +0000"
      },
      "message": "Merge \"Account for colorfilter transparency in determining paint opacity\" into lmp-mr1-dev"
    },
    {
      "commit": "c5b5f0556b542a22f01d254e6284f69e9eb23e74",
      "tree": "a32d339947b3bd0663c59182770ba951ffa74863",
      "parents": [
        "ec89863adec09dbf980b2d2c90c0fa5e78ffa7a9"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Oct 01 16:40:16 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Oct 01 16:40:16 2014 -0700"
      },
      "message": "Account for colorfilter transparency in determining paint opacity\n\nbug:17765601\nChange-Id: I90d76ee199bb357c71fc8f537c1abfa20d848416\n"
    },
    {
      "commit": "a8bea8edde2f20cae48e5cc8de782679306b3cc3",
      "tree": "ef2905c2c3212249a489536895d5eb3ad70cb82d",
      "parents": [
        "ec89863adec09dbf980b2d2c90c0fa5e78ffa7a9"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Sep 24 11:29:43 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Sep 29 17:19:05 2014 -0700"
      },
      "message": "Add tracing for saveLayer\n\nbug:17702227\n\nChange-Id: Ia9cbf31b360c93f712e021bea406cb63e4cc4c2a\n"
    },
    {
      "commit": "284b24358410cb0200e525a5ba36994090c83f20",
      "tree": "6251ddc72a3e29f68a94159b89539acf90b30a5a",
      "parents": [
        "c1e1550bf489b5fafff70154232c24bc5026b7df"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Sep 18 16:05:35 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Sep 18 16:05:35 2014 -0700"
      },
      "message": "Fix garbage showing up beneath dialogs\n\nbug:17463894\n\nFixes the setViewport method to immediately affect the return values\nof getViewportWidth/Height methods.\n\nAlso works around tiling extension issues observed on first frame\nafter window resize by disabling tiling for that frame.\n\nChange-Id: Ie172d572d20d74a1be9cc58ad389af2cffa0e4b6\n"
    },
    {
      "commit": "025207b3cfbb0bbbaa8c1b8f7e14941fc38160aa",
      "tree": "bc51822a819b68208369f4f11347d8f06a83aab6",
      "parents": [
        "bd9d66474353f411dd2167d4216a46a547b7221d",
        "4ace7305608442ab35ea9aa65a4220df152c187f"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Sep 15 15:59:55 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 15 15:59:57 2014 +0000"
      },
      "message": "Merge \"Force isolation of clip and matrix within layer\" into lmp-dev"
    },
    {
      "commit": "4ace7305608442ab35ea9aa65a4220df152c187f",
      "tree": "dd92d11003eb835addb14478c977484d3d6aba27",
      "parents": [
        "db352c783575afee2d6bc29baf45c83d5fc421cf"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Sun Sep 14 15:49:54 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Sun Sep 14 15:49:54 2014 -0700"
      },
      "message": "Force isolation of clip and matrix within layer\n\nbug:17379260\n\nUnclipped save layers need to isolate their clips and matrices\nso that the save time readout of background content matches clip and\nposition with the restore/compose step.\n\nChange-Id: I2de474cda76e960d080852f1716d6ddfa8a512d4\n"
    },
    {
      "commit": "4340c260c002f0cf7bc41571673e57913b5df19f",
      "tree": "d1e90e3ee3d7eff4414cfd7373083ef38551202e",
      "parents": [
        "db352c783575afee2d6bc29baf45c83d5fc421cf"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Sep 11 18:58:45 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Sep 11 18:58:45 2014 -0700"
      },
      "message": "Snap outline clipping to integer coordinates correctly\n\nbug:17403105\nChange-Id: I65b5d7103aac58ba6feb4b021c276c67e9341716\n"
    },
    {
      "commit": "591be6c7af512a7dbae5a7f0cc9890b82af74e58",
      "tree": "9bc1fead2d441ed1e529d448123e460346c2e7bc",
      "parents": [
        "fc81bfe3fb43296ca7040b8f259e1cbec50898ca"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Sep 11 11:09:34 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Sep 11 12:16:38 2014 -0700"
      },
      "message": "Update HWUI paint filter to understand new location of skia bitmap filter preference\n\nbug:17455286\nChange-Id: I3b0e04833f0c2699a1322fdd7e98c155841c0d93\n"
    },
    {
      "commit": "443a714fa7c0dd07fee3527cc5bc3d3ca1fb7d44",
      "tree": "4e1fd44948c6bc7324d6e3cb66af261f864530e5",
      "parents": [
        "2388750612b1fe54d31a47e0a40c1e6cf5a0cedd"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Sep 04 17:40:05 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Sep 04 17:40:05 2014 -0700"
      },
      "message": "Yet more layer tracking logging\n\n Bug: 17208461\n\nChange-Id: I55e7d0921eb565867e966d68b798b7b92c391b55\n"
    },
    {
      "commit": "d5e8ade498b41b42874273cbfa375aed7b4d6a08",
      "tree": "bb2a44cdafde4f5a350e1531f276765f5b8bd18d",
      "parents": [
        "c50a03d78aaedd0003377e98710e7038bda330e9"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Wed Aug 13 15:48:02 2014 -0700"
      },
      "committer": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Fri Aug 29 13:40:42 2014 -0700"
      },
      "message": "Ambient shadow tessellation improvement.\n\nUsing the vertices, instead of ray casting for the triangulation.\n\nThis request a dynamic index buffer associated with vertex buffer,\nso we update the VertexBuffer to support it.\n\nThe ambient shadow could be 3x-6x times faster for circle and rect now.\n\nb/16712006\nb/14257173\n\nChange-Id: I2f22a8fe19bc59acee5c18e4a3a395acd5042a66\n"
    },
    {
      "commit": "947eabf42d835d0dfb0daa2fe6d869139c7000d6",
      "tree": "d61f3988b1fa795db04ba15235a0bc0e2cfab6bd",
      "parents": [
        "49e057d7eedb44f5397781254acab4e0ef08a9cf"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Aug 19 10:21:12 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Aug 19 14:14:38 2014 -0700"
      },
      "message": "Early reject drawText calls that will not draw\n\nbug:17114102\n\nPrevents high contrast text from drawing invisible text.\n\nAlso fixes stroked text bounds calculation.\n\nChange-Id: Iaeff51ead8b7b8ef2a1a0ca8b89598564e0d443f\n"
    },
    {
      "commit": "69e5adffb19135d51bde8e458f4907d7265f3e23",
      "tree": "022fc23512ae5adfbe3f86351305bc9f4538a68a",
      "parents": [
        "e222e359a0aab985488a711f6edb76820fe8c6df"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Aug 14 13:34:01 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Aug 15 00:59:44 2014 +0000"
      },
      "message": "Define shadow casting behavior within layers\n\nbug:15860114\n\nSavelayers and HW layers both now support shadow casting.\n\nFor save layers, the light source should always be correct, for HW\nlayers, the light source position is set when the layer is created,\nand updated when it is resized.\n\nChange-Id: Ie85567dd43c2bb0a0b08fd0bd4db41efa793ac2b\n"
    },
    {
      "commit": "14a4e35208b7e97bbfa38f36130827c86bfafc2b",
      "tree": "50f36d84815c6f133f29fcd03a9bb86c3489e0f2",
      "parents": [
        "4a8dddbf18fedb33bb2c725db489669a141e1d73"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Wed Aug 13 10:44:39 2014 -0700"
      },
      "committer": {
        "name": "Tenghui Zhu",
        "email": "ztenghui@google.com",
        "time": "Wed Aug 13 18:22:42 2014 +0000"
      },
      "message": "Bring back the shadow strength tweak\n\nbug:16712006\n\nChange-Id: Ifc0ecca139d58140b45d7d227536a53069e1d480\n"
    },
    {
      "commit": "91a8c7c62913c2597e3bf5a6d59d2ed5fc7ba4e0",
      "tree": "22f6e0e41bccc3df2b4b053a5decddabe5382c95",
      "parents": [
        "ddc122ee5015f9ca0cc124a53c175aadf85f50ad"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Aug 12 14:31:35 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Aug 12 16:00:09 2014 -0700"
      },
      "message": "Switch to cos interpolation of shadow alpha\n\nbug:16852257\n\nUpdates default shadow opacities to compensate.\n\nAlso, update variable/constant naming related to vertex alpha.\n\nChange-Id: I9055b4ac3c9ac305ca9d515f21b52d6aa6dc9c5c\n"
    },
    {
      "commit": "bf75945e7a1ae7c1000682716643c942c1e19ba6",
      "tree": "5be8c8acfb85bb0a6077691e2c0255232cace2ae",
      "parents": [
        "c28aceb11e736382bc7ee749483ea5f23299ad78"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Aug 11 16:00:44 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Aug 12 12:44:59 2014 -0700"
      },
      "message": "Rework shadow interpolation\n\nbug:16852257\n\nUse pow(alpha, 1.5) to avoid harsh edges on shadow alpha ramps.\n\nAlso adjusts shadow constants to compensate.\n\nChange-Id: I5869956d7d292db2a8e496bc320084b6d64c3fb7\n"
    },
    {
      "commit": "a7c2ea20c43ab797bef5801530687e22e83def8f",
      "tree": "a5456b7d3cf8fb9f49a330bb626d490ba3de3742",
      "parents": [
        "5c8ea2c369deab75719fe7c7301846a8ef955702"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Aug 08 13:21:00 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Aug 08 20:24:34 2014 +0000"
      },
      "message": "Fix damage for layers for projection receivers\n\n Bug: 16880228\n\nChange-Id: I59ab760a21f49cc2cac0d8936b173cff292e6114\n"
    },
    {
      "commit": "74cf7e6a25c6d7b331c231b7bc2512044f9d2950",
      "tree": "18e658508fa40721ce7c9ceb4308d875c8d718f3",
      "parents": [
        "d224a9dfd2d2f1977e7a40ba3bbfb42a4165aedc"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Aug 07 14:34:46 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Aug 07 22:26:55 2014 +0000"
      },
      "message": "Cap scales used for tessellation with minimum and maximum\n\nbug:15615144\nChange-Id: I3e833864af3a7b34e444bd13db34b6c90496a8b6\n"
    },
    {
      "commit": "796475006f5d670e8383a2050f11719522437a43",
      "tree": "b7c017f959a270bf1e106b9e65f1b037fa54f584",
      "parents": [
        "d1a7fca1451bf4ab7f9b704c0bace180095c2237"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Aug 06 13:42:24 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Aug 06 21:11:31 2014 +0000"
      },
      "message": "Move bitmap transforms out of bitmap ops\n\nbug:11359533\n\nThis allows us to deduplicate a lot between the two ops, and fixes the\nshader coordinate space for the left,top argument drawBitmap to match\nsoftware.\n\nChange-Id: I53da05af9ee74c74e9e70b4ab8053190ca220b16\n"
    },
    {
      "commit": "a736cd9d3587a120e5233d627cd8bf06353be107",
      "tree": "ec1647495e7fefbb14180af98fce4671812037de",
      "parents": [
        "f660edb25a99282ce86b91804cd0145c1ef54bab"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Aug 04 13:18:38 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Aug 04 13:18:38 2014 -0700"
      },
      "message": "Remove scaling bucket hack\n\nbug:16626221\n\nFixes glyph cache pressure and double scaling artifacts.\n\nChange-Id: I06cde720db646531b45943283cb4ecb48af8ff5b\n"
    },
    {
      "commit": "af4d04cab6d48ae0d6a5e79bd30f679af87abaad",
      "tree": "b1fe9d83f5ccc32b1e0db8f002d2d3035368dfac",
      "parents": [
        "3d1856f4449f02a9a3bda06738c3eb83df96f88b"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jul 29 12:50:14 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Jul 30 17:15:50 2014 +0000"
      },
      "message": "Use RoundRect clipping for circle reveal animation\n\nbug:16630975\n\nAlso, remove inverse clipping feature from reveal animator.\n\nChange-Id: I770a4eb48cd123b0ca0f39d16a0f3eefd1be3653\n"
    },
    {
      "commit": "62d307c2402777d5e53b4590af5f32f8c55afd81",
      "tree": "fbf89a15003e9e4e3b665bd271c41693dc992dbe",
      "parents": [
        "f4bf67012b2109ead9a4cb9c4407563fc3671255"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jul 29 10:35:13 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jul 29 17:42:22 2014 +0000"
      },
      "message": "Fix behavior of stencil clipping within clearLayerRegions\n\nbug:16376960\n\nThe draw within clearLayerRegions should never be affected by the\ncurrent stencil clip, since it\u0027s just ensuring that the content of the\nlayer is cleared, and not doing real content drawing.\n\nAlso, add optional verbose GL event logging\n\nChange-Id: I538b1bc631fc091340b76e12db6af0c219851b57\n"
    },
    {
      "commit": "15a807bb9c98455a175f42389bdc59f46c0bc195",
      "tree": "01e3bee9aa75e53cbc8f77687852679a12d8f557",
      "parents": [
        "04560442b0eab656767c337da73b1c0ecdf66f62",
        "32e4a73238621fbfcb0dbe3c2e708a9d8d9f00ee"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Jul 24 23:35:38 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 24 23:35:38 2014 +0000"
      },
      "message": "am 4afa4696: am c8f0e9b1: Fix ALL compile warnings\n\n* commit \u00274afa469652dd6baa277b57cb584c08cccaf23c50\u0027:\n  Fix ALL compile warnings\n"
    },
    {
      "commit": "19393ccd037af058184097f92fa84263ae242898",
      "tree": "1ca229968d8a349762c85f2233f0560759af44d5",
      "parents": [
        "ac535811378615c7630f30eb92a306fbad4a876f",
        "9ca85bca4d2a8c862e0c9b862f25dab1eca5eec8"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Jul 24 23:32:14 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 24 23:32:14 2014 +0000"
      },
      "message": "am 394e8703: am 2d3c6c93: Connect shadow style attributes to renderer\n\n* commit \u0027394e8703222d59f0de4da82afce423ada12c346f\u0027:\n  Connect shadow style attributes to renderer\n"
    },
    {
      "commit": "1aa5d2d7068147ff781cfe911a93f01593a68c79",
      "tree": "63d8676a5a062deb3a95caee0c5a39ce19471df2",
      "parents": [
        "71d34ec5bed6fe723cf5f85c1ffb64e0d9380967"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Jul 24 13:38:28 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Jul 24 14:28:08 2014 -0700"
      },
      "message": "Fix ALL compile warnings\n\n All warnings/errors fixed for GCC \u0026 Clang\n\nChange-Id: I2ece3a136a5ae97a9acc3069537ed986238b5fd3\n"
    },
    {
      "commit": "058fc640017c90120c599d378a4cbc55668b05b7",
      "tree": "37f480e607d1f39de8cec06b205eb0e146cc9551",
      "parents": [
        "753d849b2ad14cdacfe6b194d8aa7fc27874e385"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Jul 23 18:19:28 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Jul 24 16:41:13 2014 +0000"
      },
      "message": "Connect shadow style attributes to renderer\n\nbug:15859361\n\nMoves lighting info out of StatefulBaseRenderer, since it\u0027s not useful\nat record time, and only used by OGLR.\n\nChange-Id: I7ab065d02d9304afad1dc4c48597a7a621366f8e\n"
    },
    {
      "commit": "2923df53825ded6fae4ce2af8bf65690db244394",
      "tree": "87fd6d5d01351c4698eb76266a5e32c1e7298d06",
      "parents": [
        "c96a1f3a6b99c37e3cf66ba9c8d7bfaccacc05d9",
        "48242d801c8719f458a615b14b31760ae590006e"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@android.com",
        "time": "Tue Jul 22 19:15:43 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 22 19:15:43 2014 +0000"
      },
      "message": "am 48242d80: am 50a2d633: Merge \"[HWUI] Fix invisible views are still shown in popup window\"\n\n* commit \u002748242d801c8719f458a615b14b31760ae590006e\u0027:\n  [HWUI] Fix invisible views are still shown in popup window\n"
    },
    {
      "commit": "50a2d6339c7a6ee121c4aa52afc4cc027913f3fc",
      "tree": "11f1f5773c015ca383d811dfc0f3867afa7bf12f",
      "parents": [
        "fc6346d461c9ed9b499643db830885241cc82838",
        "3a1bffa835f279628e50385af3c85789bc737f64"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@android.com",
        "time": "Tue Jul 22 19:07:19 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 22 16:35:00 2014 +0000"
      },
      "message": "Merge \"[HWUI] Fix invisible views are still shown in popup window\""
    },
    {
      "commit": "f3e85b5bac693780c75935f0d27acf536458702d",
      "tree": "40a5ecda728a38fdf3083c59413b077b07000d65",
      "parents": [
        "c7a845de4a9578e8093b6abcb90c6836d360d5b3",
        "33f5a59ac3e304970920dda824958870f85f76ef"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Jul 17 22:38:57 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 17 18:11:21 2014 +0000"
      },
      "message": "Merge \"[HWUI]: fix residual line on FrameBuffer\" into lmp-dev"
    },
    {
      "commit": "33f5a59ac3e304970920dda824958870f85f76ef",
      "tree": "43b786780f5c967498615887d8dac8cbdc18bb38",
      "parents": [
        "889fc94ffa70633e510e812b9da86723f4eee384"
      ],
      "author": {
        "name": "henry.uh_chen",
        "email": "henry.uh_chen@htc.com",
        "time": "Wed Jul 02 19:36:56 2014 +0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Jul 17 21:50:01 2014 +0000"
      },
      "message": "[HWUI]: fix residual line on FrameBuffer\n\nSymptom: If app applies animation to enlarge a bitmap, there will be an residual\n         line on the screen\n\nRoot Cause: On platform which has Tile Rendering implementation (ex. Qualcomm\n            CPU), startTiling() call will restrict the framebuffer region which\n            GPU can affect. So the expansion of clear region by 1 will not take\n            effect if startTiling region is not expanded.\n\nSolution: Expand the startTiling region by 1, too.\n\nReproduce steps: Apply animation to enlarge (and then shrink) a bitmap icon.\n\nCherry-pick of 20adb6ce4d52b15472e7e5ee953e06cc349a827c from AOSP\n\nChange-Id: I163b898b87b74d221dc4210b7fa657aa93c82c19"
    },
    {
      "commit": "98d608dba6a0b3c15fb08f1fa2c8b9d170124c7c",
      "tree": "cba2372b4abff4dae433df57662e7a7a27611ff2",
      "parents": [
        "889fc94ffa70633e510e812b9da86723f4eee384"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Jul 17 12:25:11 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Jul 17 12:25:11 2014 -0700"
      },
      "message": "Minor cleanups around color usage\n\nChange-Id: I56733cbe933a58d5977c032f056abb35265ee252\n"
    },
    {
      "commit": "0d5ac954a111d19270d6e618ee051a8d6419e1a5",
      "tree": "4b0f1d61de560e0fc5cb9361de57566dd6f8b434",
      "parents": [
        "5028fb035794c207698e52b276c54de109dd5022"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jul 15 13:01:02 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jul 15 13:01:02 2014 -0700"
      },
      "message": "Fix translated VertexBuffer layer damage calculation\n\nb/15986851\n\nChange-Id: Id6be412e693c5233326164723a0a96e3802d9426\n"
    },
    {
      "commit": "3a1bffa835f279628e50385af3c85789bc737f64",
      "tree": "0a3830e1ca97f74265b0f6365a6066d228d66519",
      "parents": [
        "1dc550fa7333257a130d71866be37181f8ee553b"
      ],
      "author": {
        "name": "henry.uh_chen",
        "email": "henry.uh_chen@htc.com",
        "time": "Thu Jul 03 18:01:37 2014 +0800"
      },
      "committer": {
        "name": "Chen Henry",
        "email": "henry.uh_chen@htc.com",
        "time": "Thu Jul 03 10:14:15 2014 +0000"
      },
      "message": "[HWUI] Fix invisible views are still shown in popup window\n\nSymptom: Invisible views are still shown in popup window\n\nRoot Cause: glClear isn\u0027t called if there is no draw command\n\nSolution: Even if there is no draw command, it still calls glClear\n          by startFrame().\n\nReproduce steps: App set one view in a popup window to invisible,\n                 it will be still visible.\n\nChange-Id: I36bc7b752434ad388fbb80ea63341ac778f48d35"
    },
    {
      "commit": "20adb6ce4d52b15472e7e5ee953e06cc349a827c",
      "tree": "8078a58d1ce1175995c18253a6d7f6c70bcd94b7",
      "parents": [
        "1dc550fa7333257a130d71866be37181f8ee553b"
      ],
      "author": {
        "name": "henry.uh_chen",
        "email": "henry.uh_chen@htc.com",
        "time": "Wed Jul 02 19:36:56 2014 +0800"
      },
      "committer": {
        "name": "Chen Henry",
        "email": "henry.uh_chen@htc.com",
        "time": "Thu Jul 03 09:58:31 2014 +0000"
      },
      "message": "[HWUI]: fix residual line on FrameBuffer\n\nSymptom: If app applies animation to enlarge a bitmap, there will be an residual\n         line on the screen\n\nRoot Cause: On platform which has Tile Rendering implementation (ex. Qualcomm\n            CPU), startTiling() call will restrict the framebuffer region which\n            GPU can affect. So the expansion of clear region by 1 will not take\n            effect if startTiling region is not expanded.\n\nSolution: Expand the startTiling region by 1, too.\n\nReproduce steps: Apply animation to enlarge (and then shrink) a bitmap icon.\n\nChange-Id: I7b4a59e180daa29dbe909d9e11f4093ae1d7396f"
    },
    {
      "commit": "1103b3255945d2eb2fa9c191e84e2270b343cca9",
      "tree": "3dd01f46c6a3479974410024250408950ad9859f",
      "parents": [
        "a3bf3e5c849bfb3bf0a74dcc06ef032355183c2e"
      ],
      "author": {
        "name": "Mike Reed",
        "email": "reed@google.com",
        "time": "Tue Jul 08 12:36:44 2014 -0400"
      },
      "committer": {
        "name": "Mike Reed",
        "email": "reed@google.com",
        "time": "Tue Jul 08 15:05:38 2014 -0400"
      },
      "message": "SkBitmap::Config is deprecated, use SkColorType\n\nChange-Id: Ic953741325607bf85598c097bb3ab648d4a08996\n"
    },
    {
      "commit": "59744b79ec302000802cd56d30a1bf70f0183c80",
      "tree": "0057de9a24def27ca543608cd1d5b75b1b89bd57",
      "parents": [
        "904a1045ced36e844605b9764c3cb184976ea0a9"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jul 01 17:56:52 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Jul 07 19:14:55 2014 +0000"
      },
      "message": "Add hack for custom re-rasterization buckets\n\nbug:14083128\n\nMoves all of the font transform management into\nOpenGLRenderer::findBestFontTransform(), and now simply passes down\nfinal rasterization transforms into the FontRenderer.\n\nChange-Id: Ie02752e6af863347b142367c7d628db5f9fc2998\n"
    },
    {
      "commit": "f23b25abfb76e75f63103abc882bc91b8327a957",
      "tree": "eb541806b7840aec86abe1efc854e8b9ea831c38",
      "parents": [
        "d4e3cdde83deb7ef27ac6836158abc589ba22dba"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Jun 26 15:46:20 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Jun 27 17:49:52 2014 -0700"
      },
      "message": "Remove isRecording() method from renderers\n\nDisplayListRenderer is all that\u0027s accessed from java, and is entirely\nseparate from OpenGLRenderer now.\n\nChange-Id: Ie733be71520c13fdb55dfe3522bb445ae2b50ac1\n"
    },
    {
      "commit": "3b20251a355c88193c439f928a84ae69483fb488",
      "tree": "33c878ebacf17cf03d089404474fa66ca041ffb9",
      "parents": [
        "97a6c20a6a52c9429ed2c8837086f3003e5da274"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Jun 23 13:13:08 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Jun 23 15:26:49 2014 -0700"
      },
      "message": "No-fail invokeFunctor\n\n Bug: 15513308\n Bug: 15449247\n\nChange-Id: I13a29f9c8d4975cdda6dcb33b6332c2555ff0f7c\n"
    },
    {
      "commit": "a7090e0cfd7c719a6d4c03aae34f5db98754cbdd",
      "tree": "7bfae2588126476042f33b9dd01ca0b9cf368e2e",
      "parents": [
        "104ef50048a1d12f323b3e70ccc28dd509d3ea24"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Jun 20 16:01:00 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Jun 23 09:57:07 2014 -0700"
      },
      "message": "Update \u0027DisplayList\u0027 vs \u0027RenderNode\u0027 naming in several places\n\nChange-Id: I635c6627d098b661fb9b0ba1bd42fa6d7277d287\n"
    },
    {
      "commit": "3281442aa75872b8947f0b0a5203257c6849129d",
      "tree": "6484ad9c30a42eec7ac2bc83179114cb0e0df591",
      "parents": [
        "6ab7c1e7da4047e3fbfee03ef6b199418ff570de",
        "80d4902196899d1325cd9f52c06ae0174cf9bd4c"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Jun 20 23:21:20 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 20 02:09:17 2014 +0000"
      },
      "message": "Merge \"Wrap ViewGroup content in save/restore to protect composited children\""
    },
    {
      "commit": "80d4902196899d1325cd9f52c06ae0174cf9bd4c",
      "tree": "659794797f8161ca9580fc17cc5c44bbbe3c304e",
      "parents": [
        "6b2df21ecacfa6826a85cabdf8d6fe0e81fe11d9"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Jun 20 15:03:43 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Jun 20 16:18:58 2014 -0700"
      },
      "message": "Wrap ViewGroup content in save/restore to protect composited children\n\nbug:15570351\n\nPos Z composited children are drawn before the primary restore for a\nRenderNode. This means that without an additional save/restore (which\nwraps the content) they aren\u0027t protected from transformations/clips\nthat happen within the ViewGroup\u0027s DisplayList.\n\nAlso changes RenderNode to use OpenGLRenderer tag for displaylist\ndumping consistency, and simplifies the entry points into RenderNode\ndrawing, since the distinction between tree root vs tree internal is\nno longer important.\n\nChange-Id: I2621eba0592c74d71f85a91a4ab3d0da2d7468d3\n"
    },
    {
      "commit": "6ac174b97246ed40fe780b29561603b61770fa17",
      "tree": "944bb70042d1907f3bb687f9cee862e6cbdd72b1",
      "parents": [
        "6b2df21ecacfa6826a85cabdf8d6fe0e81fe11d9"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jun 17 13:47:05 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Jun 18 15:31:55 2014 -0700"
      },
      "message": "Clean up tessellation cache in prep for other tesselation types\n\nbug:15536396\n\nAlso fixes compilation warning, avoids SkPaint deep copy\n\nChange-Id: I74334f08b1d34c6789aabf968ff62db5bacbed1b\n"
    },
    {
      "commit": "1e5cf9aced40e6e14262e542d0ed0e24cda877a0",
      "tree": "1b42070defc0a41277e27ae37c92748dec18fc99",
      "parents": [
        "f1d758867aa878fb956af7c66bd2d3122adf72a0",
        "9a9d1d5ad2591f04881a401da0ad89a95eeddd00"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jun 10 17:22:31 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jun 10 17:22:31 2014 +0000"
      },
      "message": "am b1c76a1a: Merge \"Tessellate on worker threads\" into lmp-preview-dev\n\n* commit \u0027b1c76a1abcfb2f33e12fef37ec71d20724863b5e\u0027:\n  Tessellate on worker threads\n"
    },
    {
      "commit": "05f3d6e5111fd08df5cd9aae2c3d28399dc0e7f5",
      "tree": "14df3cad82b02a886b8e3a04fd4ec249e1d403e4",
      "parents": [
        "faecafce62ca39a7693669f7c9eabf2d71c633cf"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Jun 02 16:27:04 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jun 10 01:53:17 2014 +0000"
      },
      "message": "Tessellate on worker threads\n\nTessellate and cache (where possible) shadow and round rect\ntessellation tasks.\n\nChange-Id: I2cfda8e11d83d51ea74af871235cf26e8f831d40"
    },
    {
      "commit": "139088228faa7f3c446af7387e017933998a5570",
      "tree": "33b24be0cb5793d47f77fe9eee5beceb772e6cd0",
      "parents": [
        "1015efb143b51a5d31f2f932528f295cfa1add1f"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Tue Dec 10 12:28:58 2013 -0500"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Thu May 29 16:51:23 2014 -0400"
      },
      "message": "Update HWUI matrix API\n\n1. more closely mirror Skia API by using const ref instead of ptrs\n2. store SkMatrix in the drawOp instead of the linear allocation heap\n\nChange-Id: I4b9f6f76b9f7d19325e29303d27b793679fd4823\n"
    },
    {
      "commit": "0fa2bd699ab5539c0ce6b79eb6b4b681734b8bb5",
      "tree": "da53c7be8f596961bcb1f4343278ea1d4144d8b4",
      "parents": [
        "d08f91fa679d3045436e993b6073d86d8f9b26fe"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Mon May 05 12:50:38 2014 -0400"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Fri May 23 11:50:38 2014 -0400"
      },
      "message": "DO NOT MERGE Inspect SkShader to determine hw shader.\n\ncherry-pick of Iaa7189178bda1c55f96da044d2a9fa602ba36034\n\nInstead of duplicating internal info about SkShader, inspect the\nSkShader installed on the SkPaint.\n\ncore/java/android/view/GLES20Canvas.java:\nRemove setupModifiers, nResetModifiers, and nSetupShader.\n\ncore/jni/android/graphics/Shader.cpp:\nRemove calls to create/destroy the (previously) attached SkiaShader.\n\ncore/jni/android_view_GLES20Canvas.cpp:\nRemove native code for setupShader and resetModifiers.\n\ngraphics/java/android/graphics/BitmapShader.java:\ngraphics/java/android/graphics/ComposeShader.java:\ngraphics/java/android/graphics/LinearGradient.java:\ngraphics/java/android/graphics/RadialGradient.java:\ngraphics/java/android/graphics/Shader.java:\ngraphics/java/android/graphics/SweepGradient.java:\nRemove code keeping track of native SkiaShader.\n\nlibs/hwui/Caches.h:\nInclude Extensions.h.\n\nlibs/hwui/DeferredDisplayList.cpp:\nCompare shaders on the paint, instead of on DrawModifiers.\n\nlibs/hwui/DisplayList.cpp:\nlibs/hwui/DisplayList.h:\nRemove vector of SkiaShaders.\n\nlibs/hwui/DisplayListOp.h:\nAccess the SkShader on mPaint.\nRemove SetupShaderOp and ResetShaderOp.\n\nlibs/hwui/DisplayListRenderer.cpp:\nlibs/hwui/DisplayListRenderer.h:\nRemove resetShader, setupShader, refShader, and mShaderMap.\n\nlibs/hwui/FontRenderer.cpp:\nPass SkShader to setupDrawShader and setupDrawShaderUniforms.\n\nlibs/hwui/OpenGLRenderer.cpp:\nlibs/hwui/OpenGLRenderer.h:\nAdd LayerShader, a class inheriting from SkShader, to mimic the\nbehavior of SkiaLayerShader. Unlike SkiaLayerShader, it can be set on\nthe SkPaint so it can be inspected later.\nSet a LayerShader instead of a SkiaLayerShader.\nsetupDrawShader and setupDrawShaderUniforms now inspect an SkShader\npassed in.\nInspect SkShader instead of mDrawModifiers.mShader.\nRemove resetShader and setupShader.\nsetupDrawColorUniforms now takes a boolean indicating whether there is\na shader.\nAdd an inline function for accessing the SkShader on an SkPaint.\nIn setupDrawBlending(Layer*, bool), do not check the shader (which will\nnever be set), but do check whether the color filter may change the\nalpha (newly fixed behavior).\nIn setupDrawBlending(SkPaint, ...), check the SkShader and whether the\ncolor filter affects alpha (the latter is new behavior).\n\nlibs/hwui/Renderer.h:\nRemove pure virtual functions setupShader and resetShader.\n\nlibs/hwui/ResourceCache.cpp:\nlibs/hwui/ResourceCache.h:\nRemove functions for refing/unrefing shaders.\n\nlibs/hwui/SkiaShader.cpp:\nlibs/hwui/SkiaShader.h:\nMuch of this code was redundant and has been removed.\nConvert structs into class with nothing but static functions for\ncalling describe/setupProgram.\n\nlibs/hwui/TextureCache.cpp:\nlibs/hwui/TextureCache.h:\nUse the SkPixelRef as the key to the bitmap Lru cache, since shader\ninspection will provide a different SkBitmap pointer (though it will\nhold the correct SkPixelRef with the correct generation ID).\n\ntests/CanvasCompare/src/com/android/test/hwuicompare/DisplayModifier.java:\ntests/CanvasCompare/src/com/android/test/hwuicompare/ResourceModifiers.java:\nUpdate manual test to have more shaders: radial, sweep, compose,\ninvalid compose.\n\nBUG:10650594\nChange-Id: I2e7182b3fc28268e7ca82fac6780540b6b45365c\n"
    },
    {
      "commit": "d490aa426090fc358873821b47ef27ead0c97409",
      "tree": "72bc6fe950898174e6dc005505b02fba4be185d5",
      "parents": [
        "5ec9aed64cd03545eded622cca214c83c170ab22",
        "d1ad5e62fda248c6d185cde3cb6d9f01a223066c"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri May 23 00:03:46 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 23 00:03:46 2014 +0000"
      },
      "message": "Merge \"Inspect SkShader to determine hw shader.\""
    },
    {
      "commit": "d1ad5e62fda248c6d185cde3cb6d9f01a223066c",
      "tree": "6e2dcdaaab6c38f46f36b944f9c4212c485ff3e2",
      "parents": [
        "951ecb77c5dfe69a4d19d26429286111333ab123"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Mon May 05 12:50:38 2014 -0400"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Thu May 22 14:46:59 2014 -0400"
      },
      "message": "Inspect SkShader to determine hw shader.\n\nInstead of duplicating internal info about SkShader, inspect the\nSkShader installed on the SkPaint.\n\ncore/java/android/view/GLES20Canvas.java:\nRemove setupModifiers, nResetModifiers, and nSetupShader.\n\ncore/jni/android/graphics/Shader.cpp:\nRemove calls to create/destroy the (previously) attached SkiaShader.\n\ncore/jni/android_view_GLES20Canvas.cpp:\nRemove native code for setupShader and resetModifiers.\n\ngraphics/java/android/graphics/BitmapShader.java:\ngraphics/java/android/graphics/ComposeShader.java:\ngraphics/java/android/graphics/LinearGradient.java:\ngraphics/java/android/graphics/RadialGradient.java:\ngraphics/java/android/graphics/Shader.java:\ngraphics/java/android/graphics/SweepGradient.java:\nRemove code keeping track of native SkiaShader.\n\nlibs/hwui/Caches.h:\nInclude Extensions.h.\n\nlibs/hwui/DeferredDisplayList.cpp:\nCompare shaders on the paint, instead of on DrawModifiers.\n\nlibs/hwui/DisplayList.cpp:\nlibs/hwui/DisplayList.h:\nRemove vector of SkiaShaders.\n\nlibs/hwui/DisplayListOp.h:\nAccess the SkShader on mPaint.\nRemove SetupShaderOp and ResetShaderOp.\n\nlibs/hwui/DisplayListRenderer.cpp:\nlibs/hwui/DisplayListRenderer.h:\nRemove resetShader, setupShader, refShader, and mShaderMap.\n\nlibs/hwui/FontRenderer.cpp:\nPass SkShader to setupDrawShader and setupDrawShaderUniforms.\n\nlibs/hwui/OpenGLRenderer.cpp:\nlibs/hwui/OpenGLRenderer.h:\nAdd LayerShader, a class inheriting from SkShader, to mimic the\nbehavior of SkiaLayerShader. Unlike SkiaLayerShader, it can be set on\nthe SkPaint so it can be inspected later.\nSet a LayerShader instead of a SkiaLayerShader.\nsetupDrawShader and setupDrawShaderUniforms now inspect an SkShader\npassed in.\nInspect SkShader instead of mDrawModifiers.mShader.\nRemove resetShader and setupShader.\nsetupDrawColorUniforms now takes a boolean indicating whether there is\na shader.\nAdd an inline function for accessing the SkShader on an SkPaint.\nIn setupDrawBlending(Layer*, bool), do not check the shader (which will\nnever be set), but do check whether the color filter may change the\nalpha (newly fixed behavior).\nIn setupDrawBlending(SkPaint, ...), check the SkShader and whether the\ncolor filter affects alpha (the latter is new behavior).\n\nlibs/hwui/Renderer.h:\nRemove pure virtual functions setupShader and resetShader.\n\nlibs/hwui/ResourceCache.cpp:\nlibs/hwui/ResourceCache.h:\nRemove functions for refing/unrefing shaders.\n\nlibs/hwui/SkiaShader.cpp:\nlibs/hwui/SkiaShader.h:\nMuch of this code was redundant and has been removed.\nConvert structs into class with nothing but static functions for\ncalling describe/setupProgram.\n\nlibs/hwui/TextureCache.cpp:\nlibs/hwui/TextureCache.h:\nUse the SkPixelRef as the key to the bitmap Lru cache, since shader\ninspection will provide a different SkBitmap pointer (though it will\nhold the correct SkPixelRef with the correct generation ID).\n\ntests/CanvasCompare/src/com/android/test/hwuicompare/DisplayModifier.java:\ntests/CanvasCompare/src/com/android/test/hwuicompare/ResourceModifiers.java:\nUpdate manual test to have more shaders: radial, sweep, compose,\ninvalid compose.\n\nBUG:10650594\n\nChange-Id: Iaa7189178bda1c55f96da044d2a9fa602ba36034\n"
    },
    {
      "commit": "797b95b26bbb7557678af78b9a2a61830158920f",
      "tree": "b2e895c064c511446b2709160c9d614819f871b2",
      "parents": [
        "d6a91b0bb64b17dcf4ae635f428dfd4ad310f73e"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue May 20 18:10:25 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed May 21 13:50:29 2014 -0700"
      },
      "message": "Define light position (using new lighting spec) in Java\n\nAlso updates the relative shadow strengths.\n\nChange-Id: I6cac7275d38df98aea9f0dda463cd7207102986a\n"
    },
    {
      "commit": "f2985ba3f41c4619f7b64797d07e3a008e17b20a",
      "tree": "7d1a8a9fd61a77fbc7ef31d62c1026d915c71baa",
      "parents": [
        "a4fcdad1b8b436136599bba48df82aa6480054fe",
        "924197513aa2df4c1fb2977c1727f5d2c21f2689"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon May 19 21:54:03 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 19 21:54:03 2014 +0000"
      },
      "message": "Merge \"Correct viewport initialization, bounds comparison\""
    },
    {
      "commit": "deeda3d337aed1eee218b89a7aba5992ced371f0",
      "tree": "15e13e84727baebce58b735e34ef5d198fd84389",
      "parents": [
        "fe4c1e225d147fe9cb5d7c121b7d6d11a312844e"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon May 05 19:09:33 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu May 15 16:36:12 2014 -0700"
      },
      "message": "Round rect outline clipping\n\nChange-Id: Iee9cf4f719f6f1917507b69189ad114fa365917b\n"
    },
    {
      "commit": "924197513aa2df4c1fb2977c1727f5d2c21f2689",
      "tree": "402ec417e1b44e3f2b2c0ce6ef1efcd6d5a0f576",
      "parents": [
        "fe4c1e225d147fe9cb5d7c121b7d6d11a312844e"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu May 15 13:21:28 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu May 15 13:21:28 2014 -0700"
      },
      "message": "Correct viewport initialization, bounds comparison\n\nChange-Id: Ibd751856e3712991e149800ed179464397dad7c3\n"
    },
    {
      "commit": "a64a2bef1048db5a742843f1e3bea9e80d0defc5",
      "tree": "7c66edd8039821862469a79602220a8041d01b10",
      "parents": [
        "a7e089f28c494f3c34e77f924b273acdbcf3ddd2"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed May 14 14:17:01 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed May 14 17:27:52 2014 -0700"
      },
      "message": "Combine projection matrix, and viewport management\n\nMerge management of ortho projection matrix with the viewport size,\nsince they should always be changed together.\n\nChange-Id: Iccb8f30828f4fb7848999ac54852e7ed2d6f2eb1\n"
    },
    {
      "commit": "ddc52285ca6fd147f442a21e90e0e4702a10d304",
      "tree": "67d52cacd41be03c2166e87e88f977e970c4b044",
      "parents": [
        "7b51185362df5bf1c4844c171350197a2fd2a4c1"
      ],
      "author": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Sun May 11 16:16:17 2014 +0200"
      },
      "committer": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Sun May 11 16:16:17 2014 +0200"
      },
      "message": "Revert \"Simplify projection matrix management.\"\n\nThis reverts commit 0efaa71d5414287ed4beac0a88cf76f7e33a1e74.\n"
    },
    {
      "commit": "0c0ec26366045e515790a6acdab782965efc63b4",
      "tree": "e33da53a3d1082d9e1bc242ca7995b975a93c887",
      "parents": [
        "f992066731fb27a6d9fc8bae673c638093610292"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri May 09 16:11:14 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri May 09 16:11:14 2014 -0700"
      },
      "message": "Simplify projection matrix management.\n\nStore in and use from snapshot, and remove the kFlagOrthoDirty flag,\nas it\u0027s redundant with kFlagIsFboLayer.\n\nChange-Id: I2bd380192d50117f4ce1fd2058213669a886f406\n"
    },
    {
      "commit": "e1f788b3e216329c570929eb4526332ae0db14d1",
      "tree": "20ebf8e839e813db8085fe4412206c1861075ba4",
      "parents": [
        "809146690d03b3ec3404c37c1fb467f7b7234692",
        "e10e827ed68b0a9487cf8dd1fc545f9a09517ae9"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri May 09 18:02:53 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 09 18:02:53 2014 +0000"
      },
      "message": "Merge \"Rename matrices for consistency\""
    },
    {
      "commit": "e10e827ed68b0a9487cf8dd1fc545f9a09517ae9",
      "tree": "9efe760385a3a85206aaf8b7d558d29a30fc39fb",
      "parents": [
        "a2604b738e7298fd926482ec5d94356b37a0d807"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu May 08 14:28:26 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu May 08 14:28:26 2014 -0700"
      },
      "message": "Rename matrices for consistency\n\nThe projection matrix no longer contains viewing transformation, and\nhas thus been renamed.\n\nChange-Id: I4f85ccdac97f4cb4f987bb05c389816680f1c94f\n"
    },
    {
      "commit": "e4aa95e3627226bcb0d8cc3e42dca6e4df8f421c",
      "tree": "c55de52d9180486924bfd5ca87450fcee4858d2d",
      "parents": [
        "a2604b738e7298fd926482ec5d94356b37a0d807"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu May 08 13:57:05 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu May 08 13:57:05 2014 -0700"
      },
      "message": "Add logging utility methods\n\nChange-Id: I0f316830dcc0bbf438292a6d0fbe9f8154368500\n"
    },
    {
      "commit": "5b554f010358d8f47e31d92a42aa3edc4a71ec47",
      "tree": "3adcf06e0c8b18fe725188888031870e485e6be0",
      "parents": [
        "cf501a60b8817acdea2368eb56225ebc831b1559",
        "c29a0a4664a4b9871fadd668b632469a0db240b9"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Thu May 08 14:41:46 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 08 14:41:47 2014 +0000"
      },
      "message": "Merge \"Avoid caching shadow properties in Java \u0026 HWUI.\""
    },
    {
      "commit": "832b151465ed81c43e59891d5eebe62128b21fbb",
      "tree": "b631a4eab7c5b7b7f3d98e808e88bf0965c324cf",
      "parents": [
        "ebb9e69513b690881a5bad7bf45c6f32e0fc7062"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed May 07 14:39:44 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed May 07 14:39:44 2014 -0700"
      },
      "message": "Cleanup attachFunctor\n\n Bug: 13961296\n\nChange-Id: Id48d11bfcc234afd1fd7e4fdd409a50e7208c81d\n"
    },
    {
      "commit": "c29a0a4664a4b9871fadd668b632469a0db240b9",
      "tree": "33e324bd3698bf9c100f998389694e4baeefaa57",
      "parents": [
        "ae84e20b2a0cb77223d40f55c71011d3ae8c71c7"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Mon Mar 31 13:52:39 2014 -0400"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Wed May 07 09:36:04 2014 -0400"
      },
      "message": "Avoid caching shadow properties in Java \u0026 HWUI.\n\nbug: 10650594\nChange-Id: I6f57df002710bb0567ed7e53fc0bfe96cfd504b8\n"
    },
    {
      "commit": "64ab917e5eb3269c72c795781a512d4ee7d9d7a4",
      "tree": "0fc75966319a9df191a1687d445ce0ab8149c207",
      "parents": [
        "e5c749085e793bfa931db09cf3ce4559be255663",
        "f5be3ca5cc5b3a10747b577f60059a99862bb9a8"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu May 01 01:31:11 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 01 01:31:12 2014 +0000"
      },
      "message": "Merge \"Add more shadow control knobs\""
    },
    {
      "commit": "f5be3ca5cc5b3a10747b577f60059a99862bb9a8",
      "tree": "a35aca46d1a60b88df40e8015c6a1815acccdb61",
      "parents": [
        "7a70981fc1eead712d62d9502f6dccb963779ae8"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Apr 30 18:20:03 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Apr 30 18:20:30 2014 -0700"
      },
      "message": "Add more shadow control knobs\n\nChange-Id: I1ff500bf429029a97b681ced9df652f4ee9f1332\n"
    },
    {
      "commit": "0d575b084fe5a691c2a99163515de0dc54f66e18",
      "tree": "e07fac82ad6a2fbf805d62877865e2a84c07dee6",
      "parents": [
        "ecdc6fdb64a41dd3bd5867308cb0c8a5b941146f",
        "2e023f3827dfc0dfc1ed7c3dd54d02b4a993f0b4"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Tue Apr 29 16:21:51 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 29 16:21:51 2014 +0000"
      },
      "message": "Merge \"Make sure the theta is correctly represented and incoming polygon is CW for shadow.\""
    },
    {
      "commit": "2e023f3827dfc0dfc1ed7c3dd54d02b4a993f0b4",
      "tree": "ba319249cf92343e7d7488480a9646a235566ef9",
      "parents": [
        "7940dc57e3ffcf9c4a33375215f3a42250fa896c"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Mon Apr 28 16:43:13 2014 -0700"
      },
      "committer": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Mon Apr 28 16:43:13 2014 -0700"
      },
      "message": "Make sure the theta is correctly represented and incoming polygon is CW for shadow.\n\nNow the theta \u003d 0 should be on +x axis.\nAnd cos(theta) should correctly represent x value.\nWithout this fix, the poly theta (from atan2) can be wrongly rotated 90 degrees.\n\nAlso, make sure the incoming polygon is CW for the shadow system.\nThis fix visual artifacts in recent regression for spot shadows.\n\nbug:13553955\n\nChange-Id: I9bbf54db094e7f133326da4dae4610962da849c1\n"
    },
    {
      "commit": "3f085429fd47ebd32ac2463b3eae2a5a6c17be25",
      "tree": "2930b7ee50ce98092fde97546a3d546c817038f1",
      "parents": [
        "fbb54b8363b66e0b22d519ee20d1a50e8b5340ee"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Apr 15 16:18:08 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Apr 23 16:15:11 2014 -0700"
      },
      "message": "Clip TouchFeedbackDrawable effect to receiver Outline\n\nProjected RenderNodes are now wrapped with a ClipRect or masked\nSaveLayer, so that they are clipped to the outline of the projection\nreceiver surface.\n\nChange-Id: I1d4afc1bb5d638d650bc0b1dac51a498f216773e\n"
    },
    {
      "commit": "8de65a8e05285df52a1e6f0c1d5616dd233298a7",
      "tree": "267faf9277b441030b6276ca6a3a34424bb9aee8",
      "parents": [
        "10bdb4b9e966f0a3d8e1099bf8eff4c41c31981c"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Apr 09 15:23:38 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Apr 09 15:48:00 2014 -0700"
      },
      "message": "Switch DisplayListData to a staging model\n\n Bug: 13912977\n\nChange-Id: I5b2f664e797be22a58300964f57ceb4fab60528c\n"
    },
    {
      "commit": "087bc0c14bdccf7c258dce0cdef46a69a839b427",
      "tree": "cab73aeed8e9a0bc8e74243a35c026ab0b321e08",
      "parents": [
        "ce16215d7b4d9bedfc62e172dc44ab439afef13a"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Apr 04 16:20:08 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Apr 07 14:53:08 2014 -0700"
      },
      "message": "Refcount RenderNode\n\nChange-Id: I7a86db8acc2b78ef33d987a43a119f5933d7d752\n"
    },
    {
      "commit": "c75db8266b352ef3a7a6b76654f770d7a24d547a",
      "tree": "a39e68ee43ca2c325da94532f4eff3a80940bf13",
      "parents": [
        "903d6407b0f5fcf12373daadcce90aaad44a5491",
        "750ca6dbdb259aea0ca5b77380a9303e586ef3ea"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Sat Mar 29 01:41:50 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Mar 29 01:41:50 2014 +0000"
      },
      "message": "Merge \"Remove kStatusInvoke \u0026 kStatusDraw\""
    },
    {
      "commit": "750ca6dbdb259aea0ca5b77380a9303e586ef3ea",
      "tree": "c24155dbc56810e618ee8a837470145d77aee38d",
      "parents": [
        "0e14f2d45557527242f27ce7de9027e6ccaa45d6"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Mar 28 16:33:18 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Mar 28 16:43:15 2014 -0700"
      },
      "message": "Remove kStatusInvoke \u0026 kStatusDraw\n\n They are unused\n\nChange-Id: I44ecf1164dc6bc1b09438e733976d5a97a25f00e\n"
    },
    {
      "commit": "b265e2ca50b6ceb2fd2987ef1f7d063b1bde19ae",
      "tree": "c5dd068e025de701ebfdeacf00247368fbecb12a",
      "parents": [
        "08c96b5515f061f61e13b348f6022ce7c586e4c4"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Mar 27 15:50:09 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Mar 28 14:43:22 2014 -0700"
      },
      "message": "Support shadows on the root RenderNode\n\nbug:13211941\n\nCleans up some of the RenderNode method naming\n\nAlso removes unnecessary clip/save/restores, clipping shadows\npredictably, as drawn by the parent, before drawing (and clipping,\netc.) the shadow casting child.\n\nChange-Id: I795115e1fb869bbbdd7be43e279b97490fecc7e0\n"
    },
    {
      "commit": "024433f89684e1f9cb7b15ade7c480c9346fbe4d",
      "tree": "981c0a0fdaa0b70be66899855806c1ce879b579e",
      "parents": [
        "1dd9c53a40b7c147767c63e10a47eb5cb6f8e197"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Mar 26 13:19:14 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Mar 27 16:01:04 2014 -0700"
      },
      "message": "Disable shadow overdraw avoidance in the inverse clip case\n\nThe caster is effectivly transparent, so skip the optimization just as\nis done for alpha \u003c 1.0\n\nChange-Id: I3d294222adf0137e20c1fb5808313d487e92e0a8\n"
    },
    {
      "commit": "8c271ca63b62061fd22cfee78fd6a574b44476fd",
      "tree": "e4b6a9d863aec687273be89373d2fc432cf29c30",
      "parents": [
        "5e44cadfd69c210c11f80cfe599718617a0e6676"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Mar 25 10:33:01 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Mar 25 16:03:48 2014 -0700"
      },
      "message": "Add private circular reveal API on View/RenderNode\n\nChange-Id: I139c8e12b354083149a665f6768f3f6931a8dd15\n"
    },
    {
      "commit": "bfb07a03777af424e99bca1dac4c903aaf44e99d",
      "tree": "a34ac04cc56a06ea54bc7010bb1169f71d9f355b",
      "parents": [
        "41c2d2cec3f46b28f535e9cd7f5b9da02280ccfe"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Mar 24 21:00:18 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Mar 24 21:00:18 2014 -0700"
      },
      "message": "Move where updateProperties is called\n\nChange-Id: I27da448996019094c44487ce28c5689d098d6535\n"
    },
    {
      "commit": "d0a0b2a3140bfb1819a116413ce9d81886697a07",
      "tree": "0040f371f29280deb83d1fd55f2db86e30d58c37",
      "parents": [
        "de02cdc1e95cea19b2ddef26d60ad1d109bd507c"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Mar 20 16:28:56 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Mar 24 15:31:34 2014 -0700"
      },
      "message": "Add stagingProperties\n\nChange-Id: Ic7de551f8843fd70a77f738e33028e25c020bb3c\n"
    },
    {
      "commit": "af6f7ed8dd4288a41d0a07a1f0f0be7d6d035b33",
      "tree": "1004e5d8a1120b83102fd82e0e9484f410c9d319",
      "parents": [
        "31dc8f701fb14e185bf1c1b35d68bd7d1a42a54a"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Tue Mar 18 17:25:49 2014 -0700"
      },
      "committer": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Thu Mar 20 15:25:47 2014 -0700"
      },
      "message": "Early rejection on shadows which are outside of the clip bound.\n\nAll the computations are estimated using bounding box.\nTODO: Spot shadow could have more accurate but also more expensive methods, we need\nmore experiments to decide.\n\nChange-Id: I9c10c419576cee55daf0f9f278b0db78cb847447\n"
    },
    {
      "commit": "50ecf849cb7ccc3482517b74d2214b347927791e",
      "tree": "ae48db1ce35bf2d35b5bd126dc78fd5cca0a5d4e",
      "parents": [
        "de69575dd1bdafabda8afda8b4251b830ba0c551"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Tue Mar 11 16:52:30 2014 -0700"
      },
      "committer": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Mon Mar 17 10:10:02 2014 -0700"
      },
      "message": "Create one hole inside the umbra area to avoid overdraw.\n\nbug:13439450\n\nChange-Id: I859575196bd5a3029f447883025a6ec3a1f1face\n"
    },
    {
      "commit": "361fd3d2ff302d60a49ae2d2d1cc61cb5fdb0ece",
      "tree": "d658ae309a8b5aa44e487083aba0c0886f9416a5",
      "parents": [
        "141d88916647cada1c90448d5739a927fa508724",
        "e18264b079481a244b30e3f71012c53bbd861f92"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Mar 12 21:03:03 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 12 21:03:03 2014 +0000"
      },
      "message": "Merge \"Rename DisplayList-\u003eRenderNode\""
    },
    {
      "commit": "e18264b079481a244b30e3f71012c53bbd861f92",
      "tree": "0127f3fc60aa351108ee8abd8ee180a5b193b03e",
      "parents": [
        "5b568aa04a91786962af1ab372b5a62481eea8cc"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Mar 12 13:56:30 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Mar 12 13:56:30 2014 -0700"
      },
      "message": "Rename DisplayList-\u003eRenderNode\n\nChange-Id: Id42e23c9a1a6eb6eaeafef707ced7fa6887b03d0\n"
    },
    {
      "commit": "b98f2116f5896acb4b221015b22624a3c5d5a7fe",
      "tree": "4bf1d02992d5fd3d0b333eb5e042d7337a572667",
      "parents": [
        "d84133af441caed8102b2da79cdb6f50673b80cb"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Mar 11 17:42:29 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Mar 12 11:19:42 2014 -0700"
      },
      "message": "Force shadow casters above the Z\u003d0 plane\n\nChange-Id: Ifee75414829d4bfb3c7aa6219f1f9bcfd50ff0c6\n"
    },
    {
      "commit": "b79a3e301a8d89b9e1b1f6f3d7fd6aa56610a6f0",
      "tree": "6b92898b802b665b62127766baa87e8261569062",
      "parents": [
        "e361ad7ab15fcf4919a56a6293689d968ee8dcff"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Mar 11 12:20:17 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Mar 12 09:44:41 2014 -0700"
      },
      "message": "Fix orthographic shadows projection, simplify shadow reordering\n\nSeparate matrix passed to shadow system into two parts, one for\ntransforming the polygon XY points (using the actual draw matrix) and\na separate one which respects correct 4x4 3d rotations and\ntranslations for determining Z values.\n\nChange-Id: I7e30a84774a8709df6b2241e8f51fc5583648fe8\n"
    },
    {
      "commit": "e361ad7ab15fcf4919a56a6293689d968ee8dcff",
      "tree": "19107b2e2deff5044db0580ab6701c2857d6a8e8",
      "parents": [
        "b26264948c01b097fe5bc12d5b486a759693ceb7"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Mar 11 10:48:43 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Mar 11 15:41:40 2014 -0700"
      },
      "message": "Remove experimental perspective projection\n\nChange-Id: Iad688c8395ccd4673cc129973802b5f01dfb45ba\n"
    },
    {
      "commit": "67862524056ee2e73a94395139bb8bd0ec1ef38a",
      "tree": "20273dae825bf5256ca8703038f7357825d090c2",
      "parents": [
        "9f6a372ca08c657447ef4b8dc6c80a89202247f8"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Feb 28 12:26:34 2014 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Feb 28 12:26:34 2014 -0800"
      },
      "message": "Fix use of Skia deprecated methods\n\nChange-Id: Ib89c20fc94bcce29b7490d6f55c73492735befda\n"
    },
    {
      "commit": "da3f525759d4b875fd6a498cbe22f7bc9e53aa83",
      "tree": "9bee37b2bbc11f876f76a8e2398d3ebe2d4e877f",
      "parents": [
        "98bab263500b258025c9c6ca64f8aaff7dc914f4",
        "9757ac0b9d62f6aea5e47cfb375f445c78bb7897"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Feb 27 22:20:31 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 27 22:20:31 2014 +0000"
      },
      "message": "Merge \"Fix TextureView texture filtering.\""
    },
    {
      "commit": "9757ac0b9d62f6aea5e47cfb375f445c78bb7897",
      "tree": "d17c80970154798e66dbf914974926b15fa33f61",
      "parents": [
        "5eb4adcbda0ff22e48716d3cf9356a9a720475b5"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Feb 25 18:50:17 2014 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Feb 25 18:50:17 2014 -0800"
      },
      "message": "Fix TextureView texture filtering.\n\nbug:11748993\n\nTextureView should always be drawn with linear filtering if drawing a\nbuffer sized differently from the layer.\n\nThis fixes a bug where TextureViews that were sized differently from\ntheir contents wouldn\u0027t be drawn with texture filtering, causing\nvisible scaling artifacts.\n\nChange-Id: I8a5d27452fe7269ec53896992f37cff51e3ce15a\n"
    },
    {
      "commit": "8198c3a8f525c07e2b848852f6ad3e351e3b5461",
      "tree": "342d10b2f40fd3db65e41cb98b7ee29412b34683",
      "parents": [
        "a1f1a3c573acd91024fda0ceb3b921c73b186963",
        "63d41abb40b3ce40d8b9bccb1cf186e8158a3687"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Tue Feb 25 23:20:06 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 25 23:20:06 2014 +0000"
      },
      "message": "Merge \"Use pre-computed index to draw the shadow.\""
    },
    {
      "commit": "63d41abb40b3ce40d8b9bccb1cf186e8158a3687",
      "tree": "53ef1d5d691afa904e390e211f6adde28fb5f4ae",
      "parents": [
        "ef94c6f88fbb1deb095b1494378befcdb9722839"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Fri Feb 14 13:13:41 2014 -0800"
      },
      "committer": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Tue Feb 25 14:18:25 2014 -0800"
      },
      "message": "Use pre-computed index to draw the shadow.\n\nAlso draw the umbra part as triangle fans instead of zig zag fashion.\n\nb/12840179\n\nChange-Id: Iaa5d15e77351acdd71f076bd8f9bb2d4d2b92faf\n"
    },
    {
      "commit": "919e95cc23d3567345719f2466e089682608638e",
      "tree": "b3ebd4482516c19781462af5c4fd330ce26afa16",
      "parents": [
        "550267f72b6217f797e7f93bb312ecbe6541ff49"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Feb 21 17:13:45 2014 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Feb 21 17:15:12 2014 -0800"
      },
      "message": "Modulate shadow alpha by caster alpha\n\nChange-Id: Ibc4b3958feb3b5dba91d30af470d76555a6209c8\n"
    },
    {
      "commit": "674554fc36932ca50b15bba41ac6f650254d4e72",
      "tree": "ec0fc936ce4fdbd15d8bf6e15348676194855b8a",
      "parents": [
        "96f0369b25811319398a268071eb147fe14a09e3"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Wed Feb 19 16:47:32 2014 +0000"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Thu Feb 20 16:20:33 2014 -0500"
      },
      "message": "Reapply \"Refactor setting an SkPaint onto a hwui Layer.\"\n\nThis reverts commit 90d0c75e94a32fb7d993fae69762820aabc2fcbb.\n\nChange-Id: Ie807761231edf7c848b019931dccbf466208c0be\n"
    },
    {
      "commit": "ef94c6f88fbb1deb095b1494378befcdb9722839",
      "tree": "d0917ce76760da1e439a94ee3ddabb10af2026dc",
      "parents": [
        "b9122c672e76923018198ab0eda07fa6a2145dbc"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Thu Feb 13 17:09:45 2014 -0800"
      },
      "committer": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Thu Feb 13 17:09:45 2014 -0800"
      },
      "message": "Separate spot and ambient shadow strength setting\n\nChange-Id: I4530e618b09a7f44b5382f8a40646c0ebf5f214c\n"
    },
    {
      "commit": "76d3a1b8d035d27bc80b0f2fc480a903bd001514",
      "tree": "a6346bbf593d565d89990f0bddecd2a5df92de9d",
      "parents": [
        "8852ab4357ffb653bafb36f3b9272866834f7a72"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Tue Dec 10 12:28:58 2013 -0500"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Fri Feb 07 17:06:14 2014 -0500"
      },
      "message": "Removing SkiaColorFilter and inspecting the native object directly.\n\nbug: 10650594\nChange-Id: I4fcf66d008765afa0e35d011f58bc792183cb74f\n"
    },
    {
      "commit": "d44fbe55a9f434cb5bb0e34c143ba1445141990d",
      "tree": "782e860830dd48fb9b7e667d64a038a45045b936",
      "parents": [
        "8eea3ea5591e59f55cbb4f6b2b7e9363a285ced3"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Wed Feb 05 16:47:00 2014 -0500"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Fri Feb 07 13:33:29 2014 -0500"
      },
      "message": "Keep the SkPaint used when creating a layer.\n\nThis will allow us to inspect the paint for thing other than\ncolor and xfermode, such as SkColorFilters and SkShaders.\n\nbug: 10650594\nChange-Id: I2c3ddd07a3966e1e77af34136307e2b59b2898c1\n"
    },
    {
      "commit": "a2fe7affd3d077ac163da90996cb2e5e0ca3b8d1",
      "tree": "42c447fe36d1eac576243ec2442e5b52dcbcc4c3",
      "parents": [
        "f3560a133e3ec19c698a8c9d6cfc7d17fd95adc5"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jan 28 17:25:06 2014 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Jan 30 16:04:16 2014 -0800"
      },
      "message": "Add initial hidden outline APIs\n\nBackground drawable outline usage and drawable outline calculation\nstill to come.\n\nChange-Id: I8c7539f1638f86e1f8eb11f4fe49f705f61d58ba\n"
    }
  ],
  "next": "5e1814e2ebf5614f8f4f7edd063e1a79bd929844"
}
