diff options
author | jamesr@chromium.org <jamesr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-18 09:05:52 +0000 |
---|---|---|
committer | jamesr@chromium.org <jamesr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-18 09:05:52 +0000 |
commit | cc3cfaa706818aee30e0a766f3d4ffe90301ae33 (patch) | |
tree | 88d184f795b3790c45c2806306fd5d22d91f6b04 /cc/layers/heads_up_display_layer.cc | |
parent | 97ebdbacab06587dd1c8fbdd5cc52f58db5042ab (diff) | |
download | chromium_src-cc3cfaa706818aee30e0a766f3d4ffe90301ae33.zip chromium_src-cc3cfaa706818aee30e0a766f3d4ffe90301ae33.tar.gz chromium_src-cc3cfaa706818aee30e0a766f3d4ffe90301ae33.tar.bz2 |
Part 10 of cc/ directory shuffles: layers
Continuation of https://src.chromium.org/viewvc/chrome?view=rev&revision=188681
BUG=190824
TBR=enne@chromium.org, piman@chromium.org, jschuh@chromium.org, joth@chromium.org
Review URL: https://codereview.chromium.org/12916002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@188703 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/layers/heads_up_display_layer.cc')
-rw-r--r-- | cc/layers/heads_up_display_layer.cc | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/cc/layers/heads_up_display_layer.cc b/cc/layers/heads_up_display_layer.cc new file mode 100644 index 0000000..56d7c96 --- /dev/null +++ b/cc/layers/heads_up_display_layer.cc @@ -0,0 +1,64 @@ +// 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/layers/heads_up_display_layer.h" + +#include "base/debug/trace_event.h" +#include "cc/layers/heads_up_display_layer_impl.h" +#include "cc/trees/layer_tree_host.h" + +namespace cc { + +scoped_refptr<HeadsUpDisplayLayer> HeadsUpDisplayLayer::Create() { + return make_scoped_refptr(new HeadsUpDisplayLayer()); +} + +HeadsUpDisplayLayer::HeadsUpDisplayLayer() : Layer() { + SetBounds(gfx::Size(256, 256)); +} + +HeadsUpDisplayLayer::~HeadsUpDisplayLayer() {} + +void HeadsUpDisplayLayer::Update(ResourceUpdateQueue*, + const OcclusionTracker*, + RenderingStats*) { + const LayerTreeDebugState& debug_state = layer_tree_host()->debug_state(); + int max_texture_size = + layer_tree_host()->GetRendererCapabilities().max_texture_size; + + int device_viewport_in_layout_pixels_width = + layer_tree_host()->device_viewport_size().width() / + layer_tree_host()->device_scale_factor(); + int device_viewport_in_layout_pixels_height = + layer_tree_host()->device_viewport_size().height() / + layer_tree_host()->device_scale_factor(); + + gfx::Size bounds; + gfx::Transform matrix; + matrix.MakeIdentity(); + + if (debug_state.showPlatformLayerTree || debug_state.showHudRects()) { + int width = + std::min(max_texture_size, device_viewport_in_layout_pixels_width); + int height = + std::min(max_texture_size, device_viewport_in_layout_pixels_height); + bounds = gfx::Size(width, height); + } else { + bounds = gfx::Size(256, 256); + matrix.Translate(device_viewport_in_layout_pixels_width - 256.0, 0.0); + } + + SetBounds(bounds); + SetTransform(matrix); +} + +bool HeadsUpDisplayLayer::DrawsContent() const { return true; } + +scoped_ptr<LayerImpl> HeadsUpDisplayLayer::CreateLayerImpl( + LayerTreeImpl* treeImpl) { + return HeadsUpDisplayLayerImpl::Create(treeImpl, layer_id_). + PassAs<LayerImpl>(); +} + +} // namespace cc |