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()); } }
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(); }