Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1293)

Unified Diff: third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.cpp

Issue 2455983005: Refactor AcceleratedStaticBitmapImage (Closed)
Patch Set: fix crash Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.cpp
diff --git a/third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.cpp b/third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.cpp
index 498c75e75a4c627ace6fd546a004d5bf620b0e47..0294fa77683cdbece4c6945557ccd146629fa107 100644
--- a/third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.cpp
+++ b/third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.cpp
@@ -151,7 +151,8 @@ DrawingBuffer::DrawingBuffer(
m_softwareRendering(m_contextProvider->isSoftwareRendering()),
m_wantDepth(wantDepth),
m_wantStencil(wantStencil),
- m_chromiumImageUsage(chromiumImageUsage) {
+ m_chromiumImageUsage(chromiumImageUsage),
+ m_weakPtrFactory(this) {
// Used by browser tests to detect the use of a DrawingBuffer.
TRACE_EVENT_INSTANT0("test_gpu", "DrawingBufferCreation",
TRACE_EVENT_SCOPE_GLOBAL);
@@ -481,20 +482,6 @@ PassRefPtr<StaticBitmapImage> DrawingBuffer::transferToStaticBitmapImage() {
// reference to the backing via our |textureId|.
releaseCallback->Run(gpu::SyncToken(), true /* lostResource */);
- // Store that texture id as the backing for an SkImage.
- GrGLTextureInfo textureInfo;
- textureInfo.fTarget = GL_TEXTURE_2D;
- textureInfo.fID = textureId;
- GrBackendTextureDesc backendTexture;
- backendTexture.fOrigin = kBottomLeft_GrSurfaceOrigin;
- backendTexture.fWidth = m_size.width();
- backendTexture.fHeight = m_size.height();
- backendTexture.fConfig = kSkia8888_GrPixelConfig;
- backendTexture.fTextureHandle =
- skia::GrGLTextureInfoToGrBackendObject(textureInfo);
- sk_sp<SkImage> skImage =
- SkImage::MakeFromAdoptedTexture(grContext, backendTexture);
-
// We reuse the same mailbox name from above since our texture id was consumed
// from it.
const auto& skImageMailbox = textureMailbox.mailbox();
@@ -509,7 +496,8 @@ PassRefPtr<StaticBitmapImage> DrawingBuffer::transferToStaticBitmapImage() {
// ImageBitmapRenderingContext's transferFromImageBitmap, and try to use them
// in DrawingBuffer.
return AcceleratedStaticBitmapImage::createFromWebGLContextImage(
- std::move(skImage), skImageMailbox, skImageSyncToken);
+ skImageMailbox, skImageSyncToken, textureId,
+ m_weakPtrFactory.createWeakPtr(), m_size);
}
DrawingBuffer::ColorBufferParameters

Powered by Google App Engine
This is Rietveld 408576698