// 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&, const 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; const LayerImpl* m_layer; const OcclusionTrackerBase& m_occlusionTracker; SharedQuadState* m_currentSharedQuadState; bool m_showCullingWithDebugBorderQuads; bool m_forSurface; }; } #endif // CC_QUAD_CULLER_H_