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 14namespace cc { 15 16class 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. 23class 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