OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CC_HEADS_UP_DISPLAY_LAYER_IMPL_H_ | 5 #ifndef CC_HEADS_UP_DISPLAY_LAYER_IMPL_H_ |
6 #define CC_HEADS_UP_DISPLAY_LAYER_IMPL_H_ | 6 #define CC_HEADS_UP_DISPLAY_LAYER_IMPL_H_ |
7 | 7 |
8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
9 #include "base/time.h" | 9 #include "base/time.h" |
10 #include "cc/cc_export.h" | 10 #include "cc/cc_export.h" |
11 #include "cc/font_atlas.h" | 11 #include "cc/font_atlas.h" |
| 12 #include "cc/heads_up_display_layer.h" |
12 #include "cc/layer_impl.h" | 13 #include "cc/layer_impl.h" |
13 #include "cc/scoped_resource.h" | 14 #include "cc/scoped_resource.h" |
14 | 15 |
15 class SkCanvas; | 16 class SkCanvas; |
16 class SkPaint; | 17 class SkPaint; |
17 struct SkRect; | 18 struct SkRect; |
18 | 19 |
19 namespace cc { | 20 namespace cc { |
20 | 21 |
21 class DebugRectHistory; | 22 class DebugRectHistory; |
22 class FontAtlas; | 23 class FontAtlas; |
23 class FrameRateCounter; | 24 class FrameRateCounter; |
24 | 25 |
25 class CC_EXPORT HeadsUpDisplayLayerImpl : public LayerImpl { | 26 class CC_EXPORT HeadsUpDisplayLayerImpl : public LayerImpl { |
26 public: | 27 public: |
27 static scoped_ptr<HeadsUpDisplayLayerImpl> create(int id) | 28 static scoped_ptr<HeadsUpDisplayLayerImpl> create(int id) |
28 { | 29 { |
29 return make_scoped_ptr(new HeadsUpDisplayLayerImpl(id)); | 30 return make_scoped_ptr(new HeadsUpDisplayLayerImpl(id)); |
30 } | 31 } |
31 virtual ~HeadsUpDisplayLayerImpl(); | 32 virtual ~HeadsUpDisplayLayerImpl(); |
32 | 33 |
| 34 void setFlags(HeadsUpDisplayLayerFlags); |
| 35 const HeadsUpDisplayLayerFlags& flags() const { return m_flags; } |
| 36 |
33 void setFontAtlas(scoped_ptr<FontAtlas>); | 37 void setFontAtlas(scoped_ptr<FontAtlas>); |
34 void setShowFPSCounter(bool); | |
35 | 38 |
36 virtual void willDraw(ResourceProvider*) OVERRIDE; | 39 virtual void willDraw(ResourceProvider*) OVERRIDE; |
37 virtual void appendQuads(QuadSink&, AppendQuadsData&) OVERRIDE; | 40 virtual void appendQuads(QuadSink&, AppendQuadsData&) OVERRIDE; |
38 void updateHudTexture(ResourceProvider*); | 41 void updateHudTexture(ResourceProvider*); |
39 virtual void didDraw(ResourceProvider*) OVERRIDE; | 42 virtual void didDraw(ResourceProvider*) OVERRIDE; |
40 | 43 |
41 virtual void didLoseContext() OVERRIDE; | 44 virtual void didLoseContext() OVERRIDE; |
42 | 45 |
43 virtual bool layerIsAlwaysDamaged() const OVERRIDE; | 46 virtual bool layerIsAlwaysDamaged() const OVERRIDE; |
44 | 47 |
45 private: | 48 private: |
46 explicit HeadsUpDisplayLayerImpl(int); | 49 explicit HeadsUpDisplayLayerImpl(int); |
47 | 50 |
48 virtual const char* layerTypeAsString() const OVERRIDE; | 51 virtual const char* layerTypeAsString() const OVERRIDE; |
49 | 52 |
50 void drawHudContents(SkCanvas*); | 53 void drawHudContents(SkCanvas*); |
51 int drawFPSCounter(SkCanvas*, FrameRateCounter*); | 54 int drawFPSCounter(SkCanvas*, FrameRateCounter*); |
52 void drawFPSCounterText(SkCanvas*, SkPaint&, FrameRateCounter*, SkRect); | 55 void drawFPSCounterText(SkCanvas*, SkPaint&, FrameRateCounter*, SkRect); |
53 void drawFPSCounterGraphAndHistogram(SkCanvas* canvas, SkPaint& paint, Frame
RateCounter* fpsCounter, SkRect graphBounds, SkRect histogramBounds); | 56 void drawFPSCounterGraphAndHistogram(SkCanvas* canvas, SkPaint& paint, Frame
RateCounter* fpsCounter, SkRect graphBounds, SkRect histogramBounds); |
54 void drawDebugRects(SkCanvas*, DebugRectHistory*); | 57 void drawDebugRects(SkCanvas*, DebugRectHistory*); |
55 | 58 |
| 59 HeadsUpDisplayLayerFlags m_flags; |
| 60 |
56 scoped_ptr<FontAtlas> m_fontAtlas; | 61 scoped_ptr<FontAtlas> m_fontAtlas; |
57 scoped_ptr<ScopedResource> m_hudTexture; | 62 scoped_ptr<ScopedResource> m_hudTexture; |
58 scoped_ptr<SkCanvas> m_hudCanvas; | 63 scoped_ptr<SkCanvas> m_hudCanvas; |
59 | 64 |
60 double m_averageFPS; | 65 double m_averageFPS; |
61 double m_minFPS; | 66 double m_minFPS; |
62 double m_maxFPS; | 67 double m_maxFPS; |
63 | 68 |
64 base::TimeTicks textUpdateTime; | 69 base::TimeTicks textUpdateTime; |
65 | |
66 bool m_showFPSCounter; | |
67 }; | 70 }; |
68 | 71 |
69 } // namespace cc | 72 } // namespace cc |
70 | 73 |
71 #endif // CC_HEADS_UP_DISPLAY_LAYER_IMPL_H_ | 74 #endif // CC_HEADS_UP_DISPLAY_LAYER_IMPL_H_ |
OLD | NEW |