Home | History | Annotate | Download | only in output
      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