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

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

Issue 55223002: Remove rendering dependency in GraphicsContextAnnotation (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Move GraphicsContextAnnotator to its own file Created 7 years, 1 month 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 16 matching lines...) Expand all
27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
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) \
38 GraphicsContextAnnotator scopedGraphicsContextAnnotator; \
39 if (UNLIKELY(paintInfo.context->annotationMode())) \
40 scopedGraphicsContextAnnotator.annotate(paintInfo, renderer)
41
42 namespace WebCore { 37 namespace WebCore {
43 38
44 class GraphicsContext;
45 class RenderObject;
46 struct PaintInfo;
47
48 enum AnnotationMode { 39 enum AnnotationMode {
49 AnnotateRendererName = 1 << 0, 40 AnnotateRendererName = 1 << 0,
50 AnnotatePaintPhase = 1 << 1, 41 AnnotatePaintPhase = 1 << 1,
51 AnnotateElementId = 1 << 2, 42 AnnotateElementId = 1 << 2,
52 AnnotateElementClass = 1 << 3, 43 AnnotateElementClass = 1 << 3,
53 AnnotateElementTag = 1 << 4, 44 AnnotateElementTag = 1 << 4,
54 45
55 AnnotateAll = 0x1f 46 AnnotateAll = 0x1f
56 }; 47 };
57 48
58 typedef unsigned AnnotationModeFlags; 49 typedef unsigned AnnotationModeFlags;
59 typedef Vector<std::pair<const char*, String> > AnnotationList; 50 typedef Vector<std::pair<const char*, String> > AnnotationList;
60 51
61 class GraphicsContextAnnotation { 52 class GraphicsContextAnnotation {
62 public: 53 public:
63 GraphicsContextAnnotation(const PaintInfo&, const RenderObject*); 54 GraphicsContextAnnotation(const char*, const char*, const String&, const Str ing&, const String&);
f(malita) 2013/10/31 23:36:30 IIRC, with the original CL there was a lot of atte
64 55
65 String rendererName() const { return m_rendererName; } 56 String rendererName() const { return m_rendererName; }
66 String paintPhase() const { return m_paintPhase; } 57 String paintPhase() const { return m_paintPhase; }
67 String elementId() const { return m_elementId; } 58 String elementId() const { return m_elementId; }
68 String elementClass() const { return m_elementClass; } 59 String elementClass() const { return m_elementClass; }
69 String elementTag() const { return m_elementTag; } 60 String elementTag() const { return m_elementTag; }
70 61
71 void asAnnotationList(AnnotationList&) const; 62 void asAnnotationList(AnnotationList&) const;
72 63
73 private: 64 private:
74 const char* m_rendererName; 65 const char* m_rendererName;
75 const char* m_paintPhase; 66 const char* m_paintPhase;
76 String m_elementId; 67 String m_elementId;
77 String m_elementClass; 68 String m_elementClass;
78 String m_elementTag; 69 String m_elementTag;
79 }; 70 };
80 71
81 class GraphicsContextAnnotator {
82 public:
83 GraphicsContextAnnotator()
84 : m_context(0)
85 { }
86
87 ~GraphicsContextAnnotator()
88 {
89 if (UNLIKELY(m_context != 0))
90 finishAnnotation();
91 }
92
93 void annotate(const PaintInfo&, const RenderObject*);
94
95 private:
96 void finishAnnotation();
97
98 GraphicsContext* m_context;
99 };
100
101 } // namespace WebCore 72 } // namespace WebCore
102 73
103 #endif // GraphicsContextAnnotation_h 74 #endif // GraphicsContextAnnotation_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698