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 CC_QUADS_RENDER_PASS_H_ | 5 #ifndef CC_QUADS_RENDER_PASS_H_ |
6 #define CC_QUADS_RENDER_PASS_H_ | 6 #define CC_QUADS_RENDER_PASS_H_ |
7 | 7 |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
11 #include "base/callback.h" | 11 #include "base/callback.h" |
12 #include "base/containers/hash_tables.h" | 12 #include "base/containers/hash_tables.h" |
13 #include "cc/base/cc_export.h" | 13 #include "cc/base/cc_export.h" |
| 14 #include "cc/base/list_container.h" |
14 #include "cc/base/scoped_ptr_vector.h" | 15 #include "cc/base/scoped_ptr_vector.h" |
15 #include "cc/quads/list_container.h" | |
16 #include "cc/quads/render_pass_id.h" | 16 #include "cc/quads/render_pass_id.h" |
17 #include "skia/ext/refptr.h" | 17 #include "skia/ext/refptr.h" |
18 #include "ui/gfx/geometry/rect.h" | 18 #include "ui/gfx/geometry/rect.h" |
19 #include "ui/gfx/geometry/rect_f.h" | 19 #include "ui/gfx/geometry/rect_f.h" |
20 #include "ui/gfx/transform.h" | 20 #include "ui/gfx/transform.h" |
21 | 21 |
22 namespace base { | 22 namespace base { |
23 namespace trace_event { | 23 namespace trace_event { |
24 class TracedValue; | 24 class TracedValue; |
25 } | 25 } |
26 class Value; | 26 class Value; |
27 } | 27 } |
28 | 28 |
29 namespace cc { | 29 namespace cc { |
30 | 30 |
31 class DrawQuad; | 31 class DrawQuad; |
32 class CopyOutputRequest; | 32 class CopyOutputRequest; |
33 class RenderPassDrawQuad; | 33 class RenderPassDrawQuad; |
34 class SharedQuadState; | 34 class SharedQuadState; |
35 | 35 |
| 36 #if !defined(COMPILER_MSVC) |
| 37 extern template class ListContainer<SharedQuadState>; |
| 38 extern template class ListContainer<DrawQuad>; |
| 39 #endif |
| 40 |
36 // A list of DrawQuad objects, sorted internally in front-to-back order. | 41 // A list of DrawQuad objects, sorted internally in front-to-back order. |
37 class QuadList : public ListContainer<DrawQuad> { | 42 class QuadList : public ListContainer<DrawQuad> { |
38 public: | 43 public: |
39 explicit QuadList(size_t default_size_to_reserve); | 44 explicit QuadList(size_t default_size_to_reserve); |
40 | 45 |
41 typedef QuadList::ReverseIterator BackToFrontIterator; | 46 typedef QuadList::ReverseIterator BackToFrontIterator; |
42 typedef QuadList::ConstReverseIterator ConstBackToFrontIterator; | 47 typedef QuadList::ConstReverseIterator ConstBackToFrontIterator; |
43 | 48 |
44 inline BackToFrontIterator BackToFrontBegin() { return rbegin(); } | 49 inline BackToFrontIterator BackToFrontBegin() { return rbegin(); } |
45 inline BackToFrontIterator BackToFrontEnd() { return rend(); } | 50 inline BackToFrontIterator BackToFrontEnd() { return rend(); } |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
140 } | 145 } |
141 }; | 146 }; |
142 } // namespace BASE_HASH_NAMESPACE | 147 } // namespace BASE_HASH_NAMESPACE |
143 | 148 |
144 namespace cc { | 149 namespace cc { |
145 typedef ScopedPtrVector<RenderPass> RenderPassList; | 150 typedef ScopedPtrVector<RenderPass> RenderPassList; |
146 typedef base::hash_map<RenderPassId, RenderPass*> RenderPassIdHashMap; | 151 typedef base::hash_map<RenderPassId, RenderPass*> RenderPassIdHashMap; |
147 } // namespace cc | 152 } // namespace cc |
148 | 153 |
149 #endif // CC_QUADS_RENDER_PASS_H_ | 154 #endif // CC_QUADS_RENDER_PASS_H_ |
OLD | NEW |