summaryrefslogtreecommitdiffstats
path: root/chromium/cc/trees/quad_culler.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/cc/trees/quad_culler.cc')
-rw-r--r--chromium/cc/trees/quad_culler.cc108
1 files changed, 0 insertions, 108 deletions
diff --git a/chromium/cc/trees/quad_culler.cc b/chromium/cc/trees/quad_culler.cc
deleted file mode 100644
index 2fc8aaa6caa..00000000000
--- a/chromium/cc/trees/quad_culler.cc
+++ /dev/null
@@ -1,108 +0,0 @@
-// 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.
-
-#include "cc/trees/quad_culler.h"
-
-#include "cc/debug/debug_colors.h"
-#include "cc/debug/overdraw_metrics.h"
-#include "cc/layers/append_quads_data.h"
-#include "cc/layers/layer_impl.h"
-#include "cc/quads/debug_border_draw_quad.h"
-#include "cc/quads/render_pass.h"
-#include "cc/trees/occlusion_tracker.h"
-#include "third_party/skia/include/core/SkColor.h"
-#include "ui/gfx/transform.h"
-
-namespace cc {
-
-QuadCuller::QuadCuller(QuadList* quad_list,
- SharedQuadStateList* shared_quad_state_list,
- const LayerImpl* layer,
- const OcclusionTrackerImpl& occlusion_tracker,
- bool show_culling_with_debug_border_quads,
- bool for_surface)
- : quad_list_(quad_list),
- shared_quad_state_list_(shared_quad_state_list),
- layer_(layer),
- occlusion_tracker_(occlusion_tracker),
- current_shared_quad_state_(NULL),
- show_culling_with_debug_border_quads_(
- show_culling_with_debug_border_quads),
- for_surface_(for_surface) {}
-
-SharedQuadState* QuadCuller::UseSharedQuadState(
- scoped_ptr<SharedQuadState> shared_quad_state) {
- // TODO(danakj): If all quads are culled for the shared_quad_state, we can
- // drop it from the list.
- current_shared_quad_state_ = shared_quad_state.get();
- shared_quad_state_list_->push_back(shared_quad_state.Pass());
- return current_shared_quad_state_;
-}
-
-static inline bool AppendQuadInternal(
- scoped_ptr<DrawQuad> draw_quad,
- gfx::Rect culled_rect,
- QuadList* quad_list,
- const OcclusionTrackerImpl& occlusion_tracker,
- const LayerImpl* layer,
- bool create_debug_border_quads) {
- bool keep_quad = !culled_rect.IsEmpty();
- if (keep_quad)
- draw_quad->visible_rect = culled_rect;
-
- occlusion_tracker.overdraw_metrics()->DidCullForDrawing(
- draw_quad->quadTransform(), draw_quad->rect, culled_rect);
- gfx::Rect opaque_draw_rect =
- draw_quad->opacity() == 1.0f ? draw_quad->opaque_rect : gfx::Rect();
- occlusion_tracker.overdraw_metrics()->
- DidDraw(draw_quad->quadTransform(), culled_rect, opaque_draw_rect);
-
- if (keep_quad) {
- if (create_debug_border_quads && !draw_quad->IsDebugQuad() &&
- draw_quad->visible_rect != draw_quad->rect) {
- SkColor color = DebugColors::CulledTileBorderColor();
- float width = DebugColors::CulledTileBorderWidth(
- layer ? layer->layer_tree_impl() : NULL);
- scoped_ptr<DebugBorderDrawQuad> debug_border_quad =
- DebugBorderDrawQuad::Create();
- debug_border_quad->SetNew(
- draw_quad->shared_quad_state, draw_quad->visible_rect, color, width);
- quad_list->push_back(debug_border_quad.PassAs<DrawQuad>());
- }
-
- // Pass the quad after we're done using it.
- quad_list->push_back(draw_quad.Pass());
- }
- return keep_quad;
-}
-
-bool QuadCuller::Append(scoped_ptr<DrawQuad> draw_quad,
- AppendQuadsData* append_quads_data) {
- DCHECK(draw_quad->shared_quad_state == current_shared_quad_state_);
- DCHECK(!shared_quad_state_list_->empty());
- DCHECK(shared_quad_state_list_->back() == current_shared_quad_state_);
-
- gfx::Rect culled_rect;
- bool impl_draw_transform_is_unknown = false;
-
- if (for_surface_) {
- culled_rect = occlusion_tracker_.UnoccludedContributingSurfaceContentRect(
- layer_, false, draw_quad->visible_rect);
- } else {
- culled_rect = occlusion_tracker_.UnoccludedContentRect(
- layer_->render_target(),
- draw_quad->visible_rect,
- draw_quad->quadTransform(),
- impl_draw_transform_is_unknown);
- }
-
- return AppendQuadInternal(draw_quad.Pass(),
- culled_rect,
- quad_list_,
- occlusion_tracker_,
- layer_,
- show_culling_with_debug_border_quads_);
-}
-
-} // namespace cc