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

Side by Side Diff: Source/core/html/canvas/CanvasRenderingContext2D.h

Issue 907453003: Move overdraw tracking code from GraphicsContext to CanvasRenderingContext2D (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: adding missing test file Created 5 years, 10 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2006, 2007, 2009, 2010, 2011, 2012 Apple Inc. All rights reserv ed. 2 * Copyright (C) 2006, 2007, 2009, 2010, 2011, 2012 Apple Inc. All rights reserv ed.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 void scrollPathIntoView(); 156 void scrollPathIntoView();
157 void scrollPathIntoView(Path2D*); 157 void scrollPathIntoView(Path2D*);
158 158
159 void clearRect(float x, float y, float width, float height); 159 void clearRect(float x, float y, float width, float height);
160 void fillRect(float x, float y, float width, float height); 160 void fillRect(float x, float y, float width, float height);
161 void strokeRect(float x, float y, float width, float height); 161 void strokeRect(float x, float y, float width, float height);
162 162
163 void drawImage(const CanvasImageSourceUnion&, float x, float y, ExceptionSta te&); 163 void drawImage(const CanvasImageSourceUnion&, float x, float y, ExceptionSta te&);
164 void drawImage(const CanvasImageSourceUnion&, float x, float y, float width, float height, ExceptionState&); 164 void drawImage(const CanvasImageSourceUnion&, float x, float y, float width, float height, ExceptionState&);
165 void drawImage(const CanvasImageSourceUnion&, float sx, float sy, float sw, float sh, float dx, float dy, float dw, float dh, ExceptionState&); 165 void drawImage(const CanvasImageSourceUnion&, float sx, float sy, float sw, float sh, float dx, float dy, float dw, float dh, ExceptionState&);
166 void drawImage(CanvasImageSource*, float sx, float sy, float sw, float sh, f loat dx, float dy, float dw, float dh, ExceptionState&);
dshwang 2015/02/11 08:37:52 why does it become public? I guess it's for unitte
Justin Novosad 2015/02/11 18:59:54 Yes it is for testing purposes. The problem is tha
166 167
167 PassRefPtrWillBeRawPtr<CanvasGradient> createLinearGradient(float x0, float y0, float x1, float y1); 168 PassRefPtrWillBeRawPtr<CanvasGradient> createLinearGradient(float x0, float y0, float x1, float y1);
168 PassRefPtrWillBeRawPtr<CanvasGradient> createRadialGradient(float x0, float y0, float r0, float x1, float y1, float r1, ExceptionState&); 169 PassRefPtrWillBeRawPtr<CanvasGradient> createRadialGradient(float x0, float y0, float r0, float x1, float y1, float r1, ExceptionState&);
169 PassRefPtrWillBeRawPtr<CanvasPattern> createPattern(const CanvasImageSourceU nion&, const String& repetitionType, ExceptionState&); 170 PassRefPtrWillBeRawPtr<CanvasPattern> createPattern(const CanvasImageSourceU nion&, const String& repetitionType, ExceptionState&);
170 171
171 PassRefPtrWillBeRawPtr<ImageData> createImageData(PassRefPtrWillBeRawPtr<Ima geData>) const; 172 PassRefPtrWillBeRawPtr<ImageData> createImageData(PassRefPtrWillBeRawPtr<Ima geData>) const;
172 PassRefPtrWillBeRawPtr<ImageData> createImageData(float width, float height, ExceptionState&) const; 173 PassRefPtrWillBeRawPtr<ImageData> createImageData(float width, float height, ExceptionState&) const;
173 PassRefPtrWillBeRawPtr<ImageData> getImageData(float sx, float sy, float sw, float sh, ExceptionState&) const; 174 PassRefPtrWillBeRawPtr<ImageData> getImageData(float sx, float sy, float sw, float sh, ExceptionState&) const;
174 void putImageData(ImageData*, float dx, float dy); 175 void putImageData(ImageData*, float dx, float dy);
175 void putImageData(ImageData*, float dx, float dy, float dirtyX, float dirtyY , float dirtyWidth, float dirtyHeight); 176 void putImageData(ImageData*, float dx, float dy, float dirtyX, float dirtyY , float dirtyWidth, float dirtyHeight);
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
268 // Text state. 269 // Text state.
269 TextAlign m_textAlign; 270 TextAlign m_textAlign;
270 TextBaseline m_textBaseline; 271 TextBaseline m_textBaseline;
271 Direction m_direction; 272 Direction m_direction;
272 273
273 String m_unparsedFont; 274 String m_unparsedFont;
274 Font m_font; 275 Font m_font;
275 bool m_realizedFont; 276 bool m_realizedFont;
276 277
277 bool m_hasClip; 278 bool m_hasClip;
279 bool m_hasComplexClip;
278 280
279 ClipList m_clipList; 281 ClipList m_clipList;
280 }; 282 };
281 283
282 CanvasRenderingContext2D(HTMLCanvasElement*, const CanvasContextCreationAttr ibutes& attrs, Document&); 284 CanvasRenderingContext2D(HTMLCanvasElement*, const CanvasContextCreationAttr ibutes& attrs, Document&);
283 285
284 State& modifiableState() { ASSERT(!state().m_unrealizedSaveCount); return *m _stateStack.last(); } 286 State& modifiableState() { ASSERT(!state().m_unrealizedSaveCount); return *m _stateStack.last(); }
285 const State& state() const { return *m_stateStack.last(); } 287 const State& state() const { return *m_stateStack.last(); }
286 288
287 void applyLineDash() const; 289 void applyLineDash() const;
(...skipping 11 matching lines...) Expand all
299 301
300 GraphicsContext* drawingContext() const; // Deprecated: use drawingCanvas 302 GraphicsContext* drawingContext() const; // Deprecated: use drawingCanvas
301 SkCanvas* drawingCanvas() const; 303 SkCanvas* drawingCanvas() const;
302 304
303 void unwindStateStack(); 305 void unwindStateStack();
304 void realizeSaves(SkCanvas*); 306 void realizeSaves(SkCanvas*);
305 307
306 void applyStrokePattern(); 308 void applyStrokePattern();
307 void applyFillPattern(); 309 void applyFillPattern();
308 310
309 void drawImageInternal(CanvasImageSource*, float sx, float sy, float sw, flo at sh, float dx, float dy, float dw, float dh, ExceptionState&);
310
311 void fillInternal(const Path&, const String& windingRuleString); 311 void fillInternal(const Path&, const String& windingRuleString);
312 void strokeInternal(const Path&); 312 void strokeInternal(const Path&);
313 void clipInternal(const Path&, const String& windingRuleString); 313 void clipInternal(const Path&, const String& windingRuleString);
314 314
315 bool isPointInPathInternal(const Path&, const float x, const float y, const String& windingRuleString); 315 bool isPointInPathInternal(const Path&, const float x, const float y, const String& windingRuleString);
316 bool isPointInStrokeInternal(const Path&, const float x, const float y); 316 bool isPointInStrokeInternal(const Path&, const float x, const float y);
317 317
318 void scrollPathIntoViewInternal(const Path&); 318 void scrollPathIntoViewInternal(const Path&);
319 319
320 void drawTextInternal(const String& text, float x, float y, bool fill, float maxWidth = 0, bool useMaxWidth = false); 320 void drawTextInternal(const String& text, float x, float y, bool fill, float maxWidth = 0, bool useMaxWidth = false);
321 321
322 const Font& accessFont(); 322 const Font& accessFont();
323 int getFontBaseline(const FontMetrics&) const; 323 int getFontBaseline(const FontMetrics&) const;
324 324
325 void clearCanvas(); 325 void clearCanvas();
326 bool rectContainsTransformedRect(const FloatRect&, const FloatRect&) const; 326 bool rectContainsTransformedRect(const FloatRect&, const FloatRect&) const;
327 327
328 void inflateStrokeRect(FloatRect&) const; 328 void inflateStrokeRect(FloatRect&) const;
329 329
330 void fullCanvasCompositedDraw(PassOwnPtr<Closure> draw); 330 void fullCanvasCompositedDraw(PassOwnPtr<Closure> draw);
331 331
332 void drawFocusIfNeededInternal(const Path&, Element*); 332 void drawFocusIfNeededInternal(const Path&, Element*);
333 bool focusRingCallIsValid(const Path&, Element*); 333 bool focusRingCallIsValid(const Path&, Element*);
334 void drawFocusRing(const Path&); 334 void drawFocusRing(const Path&);
335 335
336 bool hasClip() { return state().m_hasClip; } 336 bool hasClip() { return state().m_hasClip; }
337 337
338 void validateStateStack(); 338 void validateStateStack();
339 339
340 enum DrawType {
341 ClipFill, // Fill that is already known to cover the current clip
342 UntransformedUnclippedFill
343 };
344
345 enum ImageType {
346 NoImage,
347 OpaqueImage,
348 NonOpaqueImage
349 };
350
351 void checkOverdraw(const SkRect&, const SkPaint*, ImageType, DrawType);
352
340 virtual bool is2d() const override { return true; } 353 virtual bool is2d() const override { return true; }
341 virtual bool isAccelerated() const override; 354 virtual bool isAccelerated() const override;
342 virtual bool hasAlpha() const override { return m_hasAlpha; } 355 virtual bool hasAlpha() const override { return m_hasAlpha; }
343 virtual void setIsHidden(bool) override; 356 virtual void setIsHidden(bool) override;
344 357
345 virtual bool isTransformInvertible() const override { return state().m_inver tibleCTM; } 358 virtual bool isTransformInvertible() const override { return state().m_inver tibleCTM; }
346 359
347 virtual WebLayer* platformLayer() const override; 360 virtual WebLayer* platformLayer() const override;
348 TextDirection toTextDirection(Direction, RenderStyle** computedStyle = nullp tr) const; 361 TextDirection toTextDirection(Direction, RenderStyle** computedStyle = nullp tr) const;
349 362
(...skipping 10 matching lines...) Expand all
360 Timer<CanvasRenderingContext2D> m_dispatchContextLostEventTimer; 373 Timer<CanvasRenderingContext2D> m_dispatchContextLostEventTimer;
361 Timer<CanvasRenderingContext2D> m_dispatchContextRestoredEventTimer; 374 Timer<CanvasRenderingContext2D> m_dispatchContextRestoredEventTimer;
362 Timer<CanvasRenderingContext2D> m_tryRestoreContextEventTimer; 375 Timer<CanvasRenderingContext2D> m_tryRestoreContextEventTimer;
363 }; 376 };
364 377
365 DEFINE_TYPE_CASTS(CanvasRenderingContext2D, CanvasRenderingContext, context, con text->is2d(), context.is2d()); 378 DEFINE_TYPE_CASTS(CanvasRenderingContext2D, CanvasRenderingContext, context, con text->is2d(), context.is2d());
366 379
367 } // namespace blink 380 } // namespace blink
368 381
369 #endif // CanvasRenderingContext2D_h 382 #endif // CanvasRenderingContext2D_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698