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

Side by Side Diff: third_party/WebKit/Source/platform/graphics/ImageBuffer.cpp

Issue 2557783002: Improve metrics for display list canvas fallback reason (Closed)
Patch Set: Created 4 years 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2008, Google Inc. All rights reserved. 2 * Copyright (c) 2008, Google Inc. All rights reserved.
3 * Copyright (C) 2009 Dirk Schulze <krit@webkit.org> 3 * Copyright (C) 2009 Dirk Schulze <krit@webkit.org>
4 * Copyright (C) 2010 Torch Mobile (Beijing) Co. Ltd. All rights reserved. 4 * Copyright (C) 2010 Torch Mobile (Beijing) Co. Ltd. All rights reserved.
5 * 5 *
6 * Redistribution and use in source and binary forms, with or without 6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions are 7 * modification, are permitted provided that the following conditions are
8 * met: 8 * met:
9 * 9 *
10 * * Redistributions of source code must retain the above copyright 10 * * Redistributions of source code must retain the above copyright
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
201 void ImageBuffer::didDraw(const FloatRect& rect) const { 201 void ImageBuffer::didDraw(const FloatRect& rect) const {
202 if (m_snapshotState == DidAcquireSnapshot) 202 if (m_snapshotState == DidAcquireSnapshot)
203 m_snapshotState = DrawnToAfterSnapshot; 203 m_snapshotState = DrawnToAfterSnapshot;
204 m_surface->didDraw(rect); 204 m_surface->didDraw(rect);
205 } 205 }
206 206
207 WebLayer* ImageBuffer::platformLayer() const { 207 WebLayer* ImageBuffer::platformLayer() const {
208 return m_surface->layer(); 208 return m_surface->layer();
209 } 209 }
210 210
211 bool ImageBuffer::copyToPlatformTexture(gpu::gles2::GLES2Interface* gl, 211 bool ImageBuffer::copyToPlatformTexture(SnapshotReason reason,
212 gpu::gles2::GLES2Interface* gl,
212 GLuint texture, 213 GLuint texture,
213 GLenum internalFormat, 214 GLenum internalFormat,
214 GLenum destType, 215 GLenum destType,
215 GLint level, 216 GLint level,
216 bool premultiplyAlpha, 217 bool premultiplyAlpha,
217 bool flipY, 218 bool flipY,
218 const IntPoint& destPoint, 219 const IntPoint& destPoint,
219 const IntRect& sourceSubRectangle) { 220 const IntRect& sourceSubRectangle) {
220 if (!Extensions3DUtil::canUseCopyTextureCHROMIUM( 221 if (!Extensions3DUtil::canUseCopyTextureCHROMIUM(
221 GL_TEXTURE_2D, internalFormat, destType, level)) 222 GL_TEXTURE_2D, internalFormat, destType, level))
222 return false; 223 return false;
223 224
224 if (!isSurfaceValid()) 225 if (!isSurfaceValid())
225 return false; 226 return false;
226 227
227 sk_sp<const SkImage> textureImage = m_surface->newImageSnapshot( 228 sk_sp<const SkImage> textureImage =
228 PreferAcceleration, SnapshotReasonCopyToWebGLTexture); 229 m_surface->newImageSnapshot(PreferAcceleration, reason);
229 if (!textureImage) 230 if (!textureImage)
230 return false; 231 return false;
231 232
232 if (!m_surface->isAccelerated()) 233 if (!m_surface->isAccelerated())
233 return false; 234 return false;
234 235
235 DCHECK(textureImage->isTextureBacked()); // The isAccelerated() check above 236 DCHECK(textureImage->isTextureBacked()); // The isAccelerated() check above
236 // should guarantee this. 237 // should guarantee this.
237 // Get the texture ID, flushing pending operations if needed. 238 // Get the texture ID, flushing pending operations if needed.
238 const GrGLTextureInfo* textureInfo = skia::GrBackendObjectToGrGLTextureInfo( 239 const GrGLTextureInfo* textureInfo = skia::GrBackendObjectToGrGLTextureInfo(
(...skipping 323 matching lines...) Expand 10 before | Expand all | Expand 10 after
562 ASSERT(MIMETypeRegistry::isSupportedImageMIMETypeForEncoding(mimeType)); 563 ASSERT(MIMETypeRegistry::isSupportedImageMIMETypeForEncoding(mimeType));
563 564
564 Vector<unsigned char> result; 565 Vector<unsigned char> result;
565 if (!encodeImage(mimeType, quality, &result)) 566 if (!encodeImage(mimeType, quality, &result))
566 return "data:,"; 567 return "data:,";
567 568
568 return "data:" + mimeType + ";base64," + base64Encode(result); 569 return "data:" + mimeType + ";base64," + base64Encode(result);
569 } 570 }
570 571
571 } // namespace blink 572 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698