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

Side by Side Diff: Source/platform/graphics/GraphicsContext.h

Issue 1269123002: Preparation for combining paths of focus rings and outlines (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Remove debug from fast/css/focus-ring-recursive-continuations.html Created 5 years, 4 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) 2003, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. 2 * Copyright (C) 2003, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
3 * Copyright (C) 2008-2009 Torch Mobile, Inc. 3 * Copyright (C) 2008-2009 Torch Mobile, Inc.
4 * Copyright (C) 2013 Google Inc. All rights reserved. 4 * Copyright (C) 2013 Google Inc. 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 253 matching lines...) Expand 10 before | Expand all | Expand 10 after
264 SkFilterQuality computeFilterQuality(Image*, const FloatRect& dest, const Fl oatRect& src) const; 264 SkFilterQuality computeFilterQuality(Image*, const FloatRect& dest, const Fl oatRect& src) const;
265 265
266 // URL drawing 266 // URL drawing
267 void setURLForRect(const KURL&, const IntRect&); 267 void setURLForRect(const KURL&, const IntRect&);
268 void setURLFragmentForRect(const String& name, const IntRect&); 268 void setURLFragmentForRect(const String& name, const IntRect&);
269 269
270 static void adjustLineToPixelBoundaries(FloatPoint& p1, FloatPoint& p2, floa t strokeWidth, StrokeStyle); 270 static void adjustLineToPixelBoundaries(FloatPoint& p1, FloatPoint& p2, floa t strokeWidth, StrokeStyle);
271 271
272 static int focusRingOutsetExtent(int offset, int width) 272 static int focusRingOutsetExtent(int offset, int width)
273 { 273 {
274 return focusRingOutset(offset) + (focusRingWidth(width) + 1) / 2; 274 // Unlike normal outlines (whole width is outside of the offset), focus rings are drawn with the
275 // center of the path aligned with the offset, so only half of the width is outside of the offset.
276 return focusRingOffset(offset) + (focusRingWidth(width) + 1) / 2;
275 } 277 }
276 278
279 #if OS(MACOSX)
280 static int focusRingWidth(int width) { return width; }
281 #else
282 static int focusRingWidth(int width) { return 1; }
283 #endif
284
277 // public decl needed for OwnPtr wrapper. 285 // public decl needed for OwnPtr wrapper.
278 class RecordingState; 286 class RecordingState;
279 287
280 #if ENABLE(ASSERT) 288 #if ENABLE(ASSERT)
281 void setInDrawingRecorder(bool); 289 void setInDrawingRecorder(bool);
282 #endif 290 #endif
283 291
284 static PassRefPtr<SkColorFilter> WebCoreColorFilterToSkiaColorFilter(ColorFi lter); 292 static PassRefPtr<SkColorFilter> WebCoreColorFilterToSkiaColorFilter(ColorFi lter);
285 293
286 private: 294 private:
287 explicit GraphicsContext(SkCanvas*, DisplayItemList*, DisabledMode = Nothing Disabled, SkMetaData* = 0); 295 explicit GraphicsContext(SkCanvas*, DisplayItemList*, DisabledMode = Nothing Disabled, SkMetaData* = 0);
288 296
289 const GraphicsContextState* immutableState() const { return m_paintState; } 297 const GraphicsContextState* immutableState() const { return m_paintState; }
290 298
291 GraphicsContextState* mutableState() 299 GraphicsContextState* mutableState()
292 { 300 {
293 realizePaintSave(); 301 realizePaintSave();
294 return m_paintState; 302 return m_paintState;
295 } 303 }
296 304
297 template<typename DrawTextFunc> 305 template<typename DrawTextFunc>
298 void drawTextPasses(const DrawTextFunc&); 306 void drawTextPasses(const DrawTextFunc&);
299 307
300 static void setPathFromPoints(SkPath*, size_t, const FloatPoint*); 308 static void setPathFromPoints(SkPath*, size_t, const FloatPoint*);
301 309
302 #if OS(MACOSX) 310 #if OS(MACOSX)
303 static inline int focusRingOutset(int offset) { return offset + 2; } 311 static inline int focusRingOffset(int offset) { return offset + 2; }
304 static inline int focusRingWidth(int width) { return width; }
305 #else 312 #else
306 static inline int focusRingOutset(int offset) { return 0; } 313 static inline int focusRingOffset(int offset) { return 0; }
307 static inline int focusRingWidth(int width) { return 1; }
308 static SkPMColor lineColors(int); 314 static SkPMColor lineColors(int);
309 static SkPMColor antiColors1(int); 315 static SkPMColor antiColors1(int);
310 static SkPMColor antiColors2(int); 316 static SkPMColor antiColors2(int);
311 static void draw1xMarker(SkBitmap*, int); 317 static void draw1xMarker(SkBitmap*, int);
312 static void draw2xMarker(SkBitmap*, int); 318 static void draw2xMarker(SkBitmap*, int);
313 #endif 319 #endif
314 320
315 void saveLayer(const SkRect* bounds, const SkPaint*); 321 void saveLayer(const SkRect* bounds, const SkPaint*);
316 void restoreLayer(); 322 void restoreLayer();
317 323
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
385 391
386 float m_deviceScaleFactor; 392 float m_deviceScaleFactor;
387 393
388 unsigned m_printing : 1; 394 unsigned m_printing : 1;
389 unsigned m_hasMetaData : 1; 395 unsigned m_hasMetaData : 1;
390 }; 396 };
391 397
392 } // namespace blink 398 } // namespace blink
393 399
394 #endif // GraphicsContext_h 400 #endif // GraphicsContext_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698