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

Side by Side Diff: Source/core/html/HTMLCanvasElement.cpp

Issue 1316163002: Make the LayoutRect->FloatRect constructor explicit. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 years, 3 months 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | Source/core/layout/LayoutBlock.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2004, 2006, 2007 Apple Inc. All rights reserved. 2 * Copyright (C) 2004, 2006, 2007 Apple Inc. All rights reserved.
3 * Copyright (C) 2007 Alp Toker <alp@atoker.com> 3 * Copyright (C) 2007 Alp Toker <alp@atoker.com>
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 7 * modification, are permitted provided that the following conditions
8 * are met: 8 * are met:
9 * 1. Redistributions of source code must retain the above copyright 9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after
291 291
292 // Propagate the m_dirtyRect accumulated so far to the compositor 292 // Propagate the m_dirtyRect accumulated so far to the compositor
293 // before restarting with a blank dirty rect. 293 // before restarting with a blank dirty rect.
294 FloatRect srcRect(0, 0, size().width(), size().height()); 294 FloatRect srcRect(0, 0, size().width(), size().height());
295 m_dirtyRect.intersect(srcRect); 295 m_dirtyRect.intersect(srcRect);
296 LayoutBox* ro = layoutBox(); 296 LayoutBox* ro = layoutBox();
297 // Canvas content updates do not need to be propagated as 297 // Canvas content updates do not need to be propagated as
298 // paint invalidations if the canvas is accelerated, since 298 // paint invalidations if the canvas is accelerated, since
299 // the canvas contents are sent separately through a texture layer. 299 // the canvas contents are sent separately through a texture layer.
300 if (ro && (!m_context || !m_context->isAccelerated())) { 300 if (ro && (!m_context || !m_context->isAccelerated())) {
301 LayoutRect mappedDirtyRect(enclosingIntRect(mapRect(m_dirtyRect, srcRect , ro->contentBoxRect()))); 301 LayoutRect mappedDirtyRect(enclosingIntRect(mapRect(m_dirtyRect, srcRect , FloatRect(ro->contentBoxRect()))));
302 // For querying DeprecatedPaintLayer::compositingState() 302 // For querying DeprecatedPaintLayer::compositingState()
303 // FIXME: is this invalidation using the correct compositing state? 303 // FIXME: is this invalidation using the correct compositing state?
304 DisableCompositingQueryAsserts disabler; 304 DisableCompositingQueryAsserts disabler;
305 ro->invalidatePaintRectangle(mappedDirtyRect); 305 ro->invalidatePaintRectangle(mappedDirtyRect);
306 } 306 }
307 m_dirtyRect = FloatRect(); 307 m_dirtyRect = FloatRect();
308 } 308 }
309 309
310 void HTMLCanvasElement::restoreCanvasMatrixClipStack(SkCanvas* canvas) const 310 void HTMLCanvasElement::restoreCanvasMatrixClipStack(SkCanvas* canvas) const
311 { 311 {
312 if (m_context) 312 if (m_context)
313 m_context->restoreCanvasMatrixClipStack(canvas); 313 m_context->restoreCanvasMatrixClipStack(canvas);
314 } 314 }
315 315
316 void HTMLCanvasElement::doDeferredPaintInvalidation() 316 void HTMLCanvasElement::doDeferredPaintInvalidation()
317 { 317 {
318 ASSERT(!m_dirtyRect.isEmpty()); 318 ASSERT(!m_dirtyRect.isEmpty());
319 if (is3D()) { 319 if (is3D()) {
320 didFinalizeFrame(); 320 didFinalizeFrame();
321 } else { 321 } else {
322 ASSERT(hasImageBuffer()); 322 ASSERT(hasImageBuffer());
323 FloatRect srcRect(0, 0, size().width(), size().height()); 323 FloatRect srcRect(0, 0, size().width(), size().height());
324 m_dirtyRect.intersect(srcRect); 324 m_dirtyRect.intersect(srcRect);
325 LayoutBox* lb = layoutBox(); 325 LayoutBox* lb = layoutBox();
326 if (lb) { 326 if (lb) {
327 FloatRect mappedDirtyRect = mapRect(m_dirtyRect, srcRect, lb->conten tBoxRect()); 327 FloatRect mappedDirtyRect = mapRect(m_dirtyRect, srcRect, FloatRect( lb->contentBoxRect()));
328 if (m_context->isAccelerated()) { 328 if (m_context->isAccelerated()) {
329 // Accelerated 2D canvases need the dirty rect to be expressed r elative to the 329 // Accelerated 2D canvases need the dirty rect to be expressed r elative to the
330 // content box, as opposed to the layout box. 330 // content box, as opposed to the layout box.
331 mappedDirtyRect.move(-lb->contentBoxOffset()); 331 mappedDirtyRect.move(-lb->contentBoxOffset());
332 } 332 }
333 m_imageBuffer->finalizeFrame(mappedDirtyRect); 333 m_imageBuffer->finalizeFrame(mappedDirtyRect);
334 } else { 334 } else {
335 m_imageBuffer->finalizeFrame(m_dirtyRect); 335 m_imageBuffer->finalizeFrame(m_dirtyRect);
336 } 336 }
337 } 337 }
(...skipping 566 matching lines...) Expand 10 before | Expand all | Expand 10 after
904 { 904 {
905 return FloatSize(width(), height()); 905 return FloatSize(width(), height());
906 } 906 }
907 907
908 bool HTMLCanvasElement::isOpaque() const 908 bool HTMLCanvasElement::isOpaque() const
909 { 909 {
910 return m_context && !m_context->hasAlpha(); 910 return m_context && !m_context->hasAlpha();
911 } 911 }
912 912
913 } // blink 913 } // blink
OLDNEW
« no previous file with comments | « no previous file | Source/core/layout/LayoutBlock.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698