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