// Copyright 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CC_QUAD_CULLER_H_ #define CC_QUAD_CULLER_H_ #include "cc/cc_export.h" #include "cc/quad_sink.h" #include "cc/render_pass.h" namespace cc { class LayerImpl; class RenderSurfaceImpl; template class OcclusionTrackerBase; class CC_EXPORT QuadCuller : public QuadSink { public: QuadCuller(QuadList&, SharedQuadStateList&, LayerImpl*, const OcclusionTrackerBase*, bool showCullingWithDebugBorderQuads, bool forSurface); virtual ~QuadCuller() { } // QuadSink implementation. virtual SharedQuadState* useSharedQuadState(scoped_ptr) OVERRIDE; virtual bool append(scoped_ptr, AppendQuadsData&) OVERRIDE; private: QuadList& m_quadList; SharedQuadStateList& m_sharedQuadStateList; SharedQuadState* m_currentSharedQuadState; LayerImpl* m_layer; const OcclusionTrackerBase* m_occlusionTracker; bool m_showCullingWithDebugBorderQuads; bool m_forSurface; }; } #endif // CC_QUAD_CULLER_H_