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

Side by Side Diff: Source/core/platform/graphics/GraphicsContextAnnotation.h

Issue 21430003: Implement interfaces in PaintInfo and make it a class. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@getterPaintInfo01
Patch Set: Fixed Linux compilation (hopefuly Windows too), addressing some reviewer's suggestions. Created 7 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 Google Inc. All rights reserved.
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 are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 18 matching lines...) Expand all
29 */ 29 */
30 30
31 #include "wtf/Vector.h" 31 #include "wtf/Vector.h"
32 #include "wtf/text/WTFString.h" 32 #include "wtf/text/WTFString.h"
33 33
34 #ifndef GraphicsContextAnnotation_h 34 #ifndef GraphicsContextAnnotation_h
35 #define GraphicsContextAnnotation_h 35 #define GraphicsContextAnnotation_h
36 36
37 #define ANNOTATE_GRAPHICS_CONTEXT(paintInfo, renderer) \ 37 #define ANNOTATE_GRAPHICS_CONTEXT(paintInfo, renderer) \
38 GraphicsContextAnnotator scopedGraphicsContextAnnotator; \ 38 GraphicsContextAnnotator scopedGraphicsContextAnnotator; \
39 if (UNLIKELY(paintInfo.context->annotationMode())) \ 39 if (UNLIKELY(paintInfo.getContext()->annotationMode())) \
40 scopedGraphicsContextAnnotator.annotate(paintInfo, renderer) 40 scopedGraphicsContextAnnotator.annotate(paintInfo, renderer)
41 41
42 namespace WebCore { 42 namespace WebCore {
43 43
44 class GraphicsContext; 44 class GraphicsContext;
45 class PaintInfo;
45 class RenderObject; 46 class RenderObject;
46 struct PaintInfo;
47 47
48 enum AnnotationMode { 48 enum AnnotationMode {
49 AnnotateRendererName = 1 << 0, 49 AnnotateRendererName = 1 << 0,
50 AnnotatePaintPhase = 1 << 1, 50 AnnotatePaintPhase = 1 << 1,
51 AnnotateElementId = 1 << 2, 51 AnnotateElementId = 1 << 2,
52 AnnotateElementClass = 1 << 3, 52 AnnotateElementClass = 1 << 3,
53 AnnotateElementTag = 1 << 4, 53 AnnotateElementTag = 1 << 4,
54 54
55 AnnotateAll = 0x1f 55 AnnotateAll = 0x1f
56 }; 56 };
57 57
58 typedef unsigned AnnotationModeFlags; 58 typedef unsigned AnnotationModeFlags;
59 typedef Vector<std::pair<const char*, String> > AnnotationList; 59 typedef Vector<std::pair<const char*, String> > AnnotationList;
60 60
61 class GraphicsContextAnnotation { 61 class GraphicsContextAnnotation {
62 public: 62 public:
63 GraphicsContextAnnotation(const PaintInfo&, const RenderObject*); 63 GraphicsContextAnnotation(PaintInfo&, const RenderObject*);
do-not-use 2013/08/05 11:16:30 I guess we could have 2 context getters so that we
64 64
65 String rendererName() const { return ASCIILiteral(m_rendererName); } 65 String rendererName() const { return ASCIILiteral(m_rendererName); }
66 String paintPhase() const { return ASCIILiteral(m_paintPhase); } 66 String paintPhase() const { return ASCIILiteral(m_paintPhase); }
67 String elementId() const { return m_elementId; } 67 String elementId() const { return m_elementId; }
68 String elementClass() const { return m_elementClass; } 68 String elementClass() const { return m_elementClass; }
69 String elementTag() const { return m_elementTag; } 69 String elementTag() const { return m_elementTag; }
70 70
71 void asAnnotationList(AnnotationList&) const; 71 void asAnnotationList(AnnotationList&) const;
72 72
73 private: 73 private:
74 const char* m_rendererName; 74 const char* m_rendererName;
75 const char* m_paintPhase; 75 const char* m_paintPhase;
76 String m_elementId; 76 String m_elementId;
77 String m_elementClass; 77 String m_elementClass;
78 String m_elementTag; 78 String m_elementTag;
79 }; 79 };
80 80
81 class GraphicsContextAnnotator { 81 class GraphicsContextAnnotator {
82 public: 82 public:
83 GraphicsContextAnnotator() 83 GraphicsContextAnnotator()
84 : m_context(0) 84 : m_context(0)
85 { } 85 { }
86 86
87 ~GraphicsContextAnnotator() 87 ~GraphicsContextAnnotator()
88 { 88 {
89 if (UNLIKELY(m_context != 0)) 89 if (UNLIKELY(m_context != 0))
90 finishAnnotation(); 90 finishAnnotation();
91 } 91 }
92 92
93 void annotate(const PaintInfo&, const RenderObject*); 93 void annotate(PaintInfo&, const RenderObject*);
94 94
95 private: 95 private:
96 void finishAnnotation(); 96 void finishAnnotation();
97 97
98 GraphicsContext* m_context; 98 GraphicsContext* m_context;
99 }; 99 };
100 100
101 } // namespace WebCore 101 } // namespace WebCore
102 102
103 #endif // GraphicsContextAnnotation_h 103 #endif // GraphicsContextAnnotation_h
OLDNEW
« no previous file with comments | « no previous file | Source/core/platform/graphics/GraphicsContextAnnotation.cpp » ('j') | Source/core/rendering/PaintInfo.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698