)]}'
{
  "commit": "df915a21b6dbef1b278fa06cb849f97123be2bd7",
  "tree": "5f4150cf2c50b5bc2f5b7ae9211c24a897747c85",
  "parents": [
    "050c6b72b78c54fc0888a94826db5bc4b812f38e"
  ],
  "author": {
    "name": "Chinmay Garde",
    "email": "chinmaygarde@google.com",
    "time": "Thu Nov 14 16:14:23 2024 -0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri Nov 15 00:14:23 2024 +0000"
  },
  "message": "[Impeller] libImpeller: Reset the GL state when transitioning control back to the embedder. (#56597)\n\nImpeller is resilient to OpenGL state being trampled upon when accessing the GL context. But the embedder may not necessarily be. Ideally, we\u0027d be using saving the state and restoring it. But that might be too involved. For now, this sets the GL state to a sane \"clean\" state.\r\n\r\nWe could, in theory, do this after each render pass but that unnecessarily increases API traffic. For now, I have added it at the transition of the embedder boundary.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "7629eff28e7cde2a0a2de794cf81ded0b38194b2",
      "old_mode": 33188,
      "old_path": "impeller/renderer/backend/gles/context_gles.cc",
      "new_id": "c4070a5393cce32d62c9ed1a962fb1d7868edcb1",
      "new_mode": 33188,
      "new_path": "impeller/renderer/backend/gles/context_gles.cc"
    },
    {
      "type": "modify",
      "old_id": "2a0f09aca39b1e0d367b4e7b0653b572b393c34b",
      "old_mode": 33188,
      "old_path": "impeller/renderer/backend/gles/context_gles.h",
      "new_id": "d67747133769b7077690e526262fecd99cf15327",
      "new_mode": 33188,
      "new_path": "impeller/renderer/backend/gles/context_gles.h"
    },
    {
      "type": "modify",
      "old_id": "f8c1a25fd997d49a41cbaed723d795369f19b107",
      "old_mode": 33188,
      "old_path": "impeller/renderer/backend/gles/render_pass_gles.cc",
      "new_id": "5ca2f5d47f8a10b0384d1ec0b2c79c6fd5a34d96",
      "new_mode": 33188,
      "new_path": "impeller/renderer/backend/gles/render_pass_gles.cc"
    },
    {
      "type": "modify",
      "old_id": "e753a75eb69226616be91ad9ef0371286d578bfa",
      "old_mode": 33188,
      "old_path": "impeller/renderer/backend/gles/render_pass_gles.h",
      "new_id": "c0bd9e63e6cefe3e809028a8243d0d70647ba77e",
      "new_mode": 33188,
      "new_path": "impeller/renderer/backend/gles/render_pass_gles.h"
    },
    {
      "type": "modify",
      "old_id": "e23874191a71313e03973d9a2e51ac7534251cf9",
      "old_mode": 33188,
      "old_path": "impeller/renderer/context.cc",
      "new_id": "e563ac7a2e345948c0db2903c99b29420ed37888",
      "new_mode": 33188,
      "new_path": "impeller/renderer/context.cc"
    },
    {
      "type": "modify",
      "old_id": "657083c04bf8760e1f27c0763029375bc0a5a27d",
      "old_mode": 33188,
      "old_path": "impeller/renderer/context.h",
      "new_id": "2735ac2a67a592feba164daa6bd5213a4e0901dc",
      "new_mode": 33188,
      "new_path": "impeller/renderer/context.h"
    },
    {
      "type": "modify",
      "old_id": "e45389eb502e623785d9aa0acac18d22e271dcb5",
      "old_mode": 33188,
      "old_path": "impeller/toolkit/interop/impeller_unittests.cc",
      "new_id": "e2c90dd35f3f470d04f89730a39ca8b0806ee40c",
      "new_mode": 33188,
      "new_path": "impeller/toolkit/interop/impeller_unittests.cc"
    },
    {
      "type": "modify",
      "old_id": "11e6def21ef5d0a4170e346a964d6267a0337ac3",
      "old_mode": 33188,
      "old_path": "impeller/toolkit/interop/surface.cc",
      "new_id": "b5e7f7282439ff5b73935de16ac906e34620ae1d",
      "new_mode": 33188,
      "new_path": "impeller/toolkit/interop/surface.cc"
    }
  ]
}
