1// Copyright 2012 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_LAYERS_QUAD_SINK_H_ 6#define CC_LAYERS_QUAD_SINK_H_ 7 8#include "base/memory/scoped_ptr.h" 9#include "cc/base/cc_export.h" 10 11namespace cc { 12 13class DrawQuad; 14class SharedQuadState; 15 16struct AppendQuadsData; 17 18class CC_EXPORT QuadSink { 19 public: 20 virtual ~QuadSink() {} 21 22 // Call this to add a SharedQuadState before appending quads that refer to it. 23 // Returns a pointer to the given SharedQuadState for convenience, that can be 24 // set on the quads to append. 25 virtual SharedQuadState* UseSharedQuadState( 26 scoped_ptr<SharedQuadState> shared_quad_state) = 0; 27 28 // Returns true if the quad is added to the list, and false if the quad is 29 // entirely culled. 30 virtual bool Append(scoped_ptr<DrawQuad> draw_quad, 31 AppendQuadsData* append_quads_data) = 0; 32}; 33 34} // namespace cc 35 36#endif // CC_LAYERS_QUAD_SINK_H_ 37