OLD | NEW |
1 // Copyright 2011 The Chromium Authors. All rights reserved. | 1 // Copyright 2011 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 CCRenderPass_h | 5 #ifndef CCRenderPass_h |
6 #define CCRenderPass_h | 6 #define CCRenderPass_h |
7 | 7 |
8 #include "CCDrawQuad.h" | 8 #include "CCDrawQuad.h" |
9 #include "CCOcclusionTracker.h" | 9 #include "CCOcclusionTracker.h" |
10 #include "CCSharedQuadState.h" | 10 #include "CCSharedQuadState.h" |
11 #include "SkColor.h" | 11 #include "SkColor.h" |
12 #include <public/WebFilterOperations.h> | 12 #include <public/WebFilterOperations.h> |
13 #include <public/WebTransformationMatrix.h> | 13 #include <public/WebTransformationMatrix.h> |
14 #include <wtf/HashMap.h> | 14 #include <wtf/HashMap.h> |
15 #include <wtf/PassOwnPtr.h> | 15 #include <wtf/PassOwnPtr.h> |
16 #include <wtf/Vector.h> | 16 #include <wtf/Vector.h> |
17 | 17 |
18 namespace WebCore { | 18 namespace WebCore { |
19 | 19 |
20 class CCLayerImpl; | 20 class CCLayerImpl; |
21 class CCRenderSurface; | 21 class CCRenderSurface; |
22 | 22 |
| 23 struct CCAppendQuadsData; |
| 24 |
23 // A list of CCDrawQuad objects, sorted internally in front-to-back order. | 25 // A list of CCDrawQuad objects, sorted internally in front-to-back order. |
24 class CCQuadList : public Vector<OwnPtr<CCDrawQuad> > { | 26 class CCQuadList : public Vector<OwnPtr<CCDrawQuad> > { |
25 public: | 27 public: |
26 typedef reverse_iterator backToFrontIterator; | 28 typedef reverse_iterator backToFrontIterator; |
27 typedef const_reverse_iterator constBackToFrontIterator; | 29 typedef const_reverse_iterator constBackToFrontIterator; |
28 | 30 |
29 inline backToFrontIterator backToFrontBegin() { return rbegin(); } | 31 inline backToFrontIterator backToFrontBegin() { return rbegin(); } |
30 inline backToFrontIterator backToFrontEnd() { return rend(); } | 32 inline backToFrontIterator backToFrontEnd() { return rend(); } |
31 inline constBackToFrontIterator backToFrontBegin() const { return rbegin();
} | 33 inline constBackToFrontIterator backToFrontBegin() const { return rbegin();
} |
32 inline constBackToFrontIterator backToFrontEnd() const { return rend(); } | 34 inline constBackToFrontIterator backToFrontEnd() const { return rend(); } |
33 }; | 35 }; |
34 | 36 |
35 typedef Vector<OwnPtr<CCSharedQuadState> > CCSharedQuadStateList; | 37 typedef Vector<OwnPtr<CCSharedQuadState> > CCSharedQuadStateList; |
36 | 38 |
37 class CCRenderPass { | 39 class CCRenderPass { |
38 WTF_MAKE_NONCOPYABLE(CCRenderPass); | 40 WTF_MAKE_NONCOPYABLE(CCRenderPass); |
39 public: | 41 public: |
40 static PassOwnPtr<CCRenderPass> create(int id, IntRect outputRect, const Web
Kit::WebTransformationMatrix& transformToRootTarget); | 42 static PassOwnPtr<CCRenderPass> create(int id, IntRect outputRect, const Web
Kit::WebTransformationMatrix& transformToRootTarget); |
41 | 43 |
42 void appendQuadsForLayer(CCLayerImpl*, CCOcclusionTrackerImpl*, bool& hadMis
singTiles); | 44 void appendQuadsForLayer(CCLayerImpl*, CCOcclusionTrackerImpl*, CCAppendQuad
sData&); |
43 void appendQuadsForRenderSurfaceLayer(CCLayerImpl*, const CCRenderPass* cont
ributingRenderPass, CCOcclusionTrackerImpl*); | 45 void appendQuadsForRenderSurfaceLayer(CCLayerImpl*, const CCRenderPass* cont
ributingRenderPass, CCOcclusionTrackerImpl*, CCAppendQuadsData&); |
44 void appendQuadsToFillScreen(CCLayerImpl* rootLayer, SkColor screenBackgroun
dColor, const CCOcclusionTrackerImpl&); | 46 void appendQuadsToFillScreen(CCLayerImpl* rootLayer, SkColor screenBackgroun
dColor, const CCOcclusionTrackerImpl&); |
45 | 47 |
46 const CCQuadList& quadList() const { return m_quadList; } | 48 const CCQuadList& quadList() const { return m_quadList; } |
47 | 49 |
48 int id() const { return m_id; } | 50 int id() const { return m_id; } |
49 | 51 |
50 // FIXME: Modify this transform when merging the RenderPass into a parent co
mpositor. | 52 // FIXME: Modify this transform when merging the RenderPass into a parent co
mpositor. |
51 // Transforms from quad's original content space to the root target's conten
t space. | 53 // Transforms from quad's original content space to the root target's conten
t space. |
52 const WebKit::WebTransformationMatrix& transformToRootTarget() const { retur
n m_transformToRootTarget; } | 54 const WebKit::WebTransformationMatrix& transformToRootTarget() const { retur
n m_transformToRootTarget; } |
53 | 55 |
(...skipping 28 matching lines...) Expand all Loading... |
82 WebKit::WebFilterOperations m_filters; | 84 WebKit::WebFilterOperations m_filters; |
83 WebKit::WebFilterOperations m_backgroundFilters; | 85 WebKit::WebFilterOperations m_backgroundFilters; |
84 }; | 86 }; |
85 | 87 |
86 typedef Vector<CCRenderPass*> CCRenderPassList; | 88 typedef Vector<CCRenderPass*> CCRenderPassList; |
87 typedef HashMap<int, OwnPtr<CCRenderPass> > CCRenderPassIdHashMap; | 89 typedef HashMap<int, OwnPtr<CCRenderPass> > CCRenderPassIdHashMap; |
88 | 90 |
89 } | 91 } |
90 | 92 |
91 #endif | 93 #endif |
OLD | NEW |