• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 CC_EXPORT 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 CC_EXPORT BspWalkActionToVector : public BspWalkAction {
24  public:
25   explicit BspWalkActionToVector(std::vector<DrawPolygon*>* in_list);
26   virtual void operator()(DrawPolygon* item) OVERRIDE;
27 
28  private:
29   std::vector<DrawPolygon*>* list_;
30 };
31 
32 }  // namespace cc
33 
34 #endif  // CC_OUTPUT_BSP_WALK_ACTION_H_
35