| // 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<typename LayerType, typename SurfaceType> |
| class OcclusionTrackerBase; |
| |
| class CC_EXPORT QuadCuller : public QuadSink { |
| public: |
| QuadCuller(QuadList&, SharedQuadStateList&, const LayerImpl*, const OcclusionTrackerBase<LayerImpl, RenderSurfaceImpl>&, bool showCullingWithDebugBorderQuads, bool forSurface); |
| virtual ~QuadCuller() { } |
| |
| // QuadSink implementation. |
| virtual SharedQuadState* useSharedQuadState(scoped_ptr<SharedQuadState>) OVERRIDE; |
| virtual bool append(scoped_ptr<DrawQuad>, AppendQuadsData&) OVERRIDE; |
| |
| private: |
| QuadList& m_quadList; |
| SharedQuadStateList& m_sharedQuadStateList; |
| const LayerImpl* m_layer; |
| const OcclusionTrackerBase<LayerImpl, RenderSurfaceImpl>& m_occlusionTracker; |
| |
| SharedQuadState* m_currentSharedQuadState; |
| bool m_showCullingWithDebugBorderQuads; |
| bool m_forSurface; |
| }; |
| |
| } |
| #endif // CC_QUAD_CULLER_H_ |