OLD | NEW |
| (Empty) |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #ifndef CC_OUTPUT_BSP_WALK_ACTION_H_ | |
6 #define CC_OUTPUT_BSP_WALK_ACTION_H_ | |
7 | |
8 #include <vector> | |
9 | |
10 #include "base/memory/scoped_ptr.h" | |
11 #include "cc/output/direct_renderer.h" | |
12 #include "cc/quads/draw_polygon.h" | |
13 | |
14 namespace cc { | |
15 | |
16 class BspWalkAction { | |
17 public: | |
18 virtual void operator()(DrawPolygon* item) = 0; | |
19 }; | |
20 | |
21 // The BspTree class takes ownership of all the DrawPolygons returned in list_ | |
22 // so the BspTree must be preserved while elements in that vector are in use. | |
23 class BspWalkActionDrawPolygon : public BspWalkAction { | |
24 public: | |
25 void operator()(DrawPolygon* item) override; | |
26 | |
27 BspWalkActionDrawPolygon(DirectRenderer* renderer, | |
28 DirectRenderer::DrawingFrame* frame, | |
29 const gfx::Rect& render_pass_scissor, | |
30 bool using_scissor_as_optimization); | |
31 | |
32 private: | |
33 DirectRenderer* renderer_; | |
34 DirectRenderer::DrawingFrame* frame_; | |
35 const gfx::Rect& render_pass_scissor_; | |
36 bool using_scissor_as_optimization_; | |
37 }; | |
38 | |
39 class BspWalkActionToVector : public BspWalkAction { | |
40 public: | |
41 explicit BspWalkActionToVector(std::vector<DrawPolygon*>* in_list); | |
42 void operator()(DrawPolygon* item) override; | |
43 | |
44 private: | |
45 std::vector<DrawPolygon*>* list_; | |
46 }; | |
47 | |
48 } // namespace cc | |
49 | |
50 #endif // CC_OUTPUT_BSP_WALK_ACTION_H_ | |
OLD | NEW |