SourceSurfaceSkia::~SourceSurfaceSkia()
{
  MaybeUnlock();
  if (mDrawTarget) {
    mDrawTarget->SnapshotDestroyed();
    mDrawTarget = nullptr;
  }
}
void
SourceSurfaceSkia::DrawTargetWillChange()
{
  if (mDrawTarget) {
    MaybeUnlock();

    mDrawTarget = nullptr;
    SkBitmap temp = mBitmap;
    mBitmap.reset();
    temp.copyTo(&mBitmap, temp.getConfig());
  }
}
Exemplo n.º 3
0
void
SourceSurfaceSkia::DrawTargetWillChange()
{
  if (mDrawTarget) {
    MaybeUnlock();

    mDrawTarget = nullptr;

    // First try a deep copy to avoid a readback from the GPU.
    // If that fails, try the CPU copy.
    if (!mBitmap.deepCopyTo(&mBitmap) &&
        !mBitmap.copyTo(&mBitmap)) {
      mBitmap.reset();
    }
  }
}
SourceSurfaceSkia::~SourceSurfaceSkia()
{
  MaybeUnlock();
  MarkIndependent();
}