Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2240)

Unified Diff: cc/nine_patch_layer_impl.cc

Issue 12603013: Part 10 of cc/ directory shuffles: layers (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/nine_patch_layer_impl.h ('k') | cc/nine_patch_layer_impl_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/nine_patch_layer_impl.cc
diff --git a/cc/nine_patch_layer_impl.cc b/cc/nine_patch_layer_impl.cc
deleted file mode 100644
index 1dab059c3d03f433b68b186177912ba00cd57b6b..0000000000000000000000000000000000000000
--- a/cc/nine_patch_layer_impl.cc
+++ /dev/null
@@ -1,300 +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 "nine_patch_layer_impl.h"
-
-#include "base/stringprintf.h"
-#include "base/values.h"
-#include "cc/quad_sink.h"
-#include "cc/quads/texture_draw_quad.h"
-#include "ui/gfx/rect_f.h"
-
-namespace cc {
-
-NinePatchLayerImpl::NinePatchLayerImpl(LayerTreeImpl* tree_impl, int id)
- : LayerImpl(tree_impl, id),
- resource_id_(0) {}
-
-NinePatchLayerImpl::~NinePatchLayerImpl() {}
-
-ResourceProvider::ResourceId NinePatchLayerImpl::ContentsResourceId() const {
- return 0;
-}
-
-scoped_ptr<LayerImpl> NinePatchLayerImpl::CreateLayerImpl(
- LayerTreeImpl* tree_impl) {
- return NinePatchLayerImpl::Create(tree_impl, id()).PassAs<LayerImpl>();
-}
-
-void NinePatchLayerImpl::PushPropertiesTo(LayerImpl* layer) {
- LayerImpl::PushPropertiesTo(layer);
- NinePatchLayerImpl* layer_impl = static_cast<NinePatchLayerImpl*>(layer);
-
- if (!resource_id_)
- return;
-
- layer_impl->SetResourceId(resource_id_);
- layer_impl->SetLayout(image_bounds_, image_aperture_);
-}
-
-void NinePatchLayerImpl::WillDraw(ResourceProvider* resource_provider) {}
-
-static gfx::RectF NormalizedRect(float x,
- float y,
- float width,
- float height,
- float total_width,
- float total_height) {
- return gfx::RectF(x / total_width,
- y / total_height,
- width / total_width,
- height / total_height);
-}
-
-void NinePatchLayerImpl::SetLayout(gfx::Size image_bounds, gfx::Rect aperture) {
- image_bounds_ = image_bounds;
- image_aperture_ = aperture;
-}
-
-void NinePatchLayerImpl::AppendQuads(QuadSink* quad_sink,
- AppendQuadsData* append_quads_data) {
- if (!resource_id_)
- return;
-
- SharedQuadState* shared_quad_state =
- quad_sink->UseSharedQuadState(CreateSharedQuadState());
- AppendDebugBorderQuad(quad_sink, shared_quad_state, append_quads_data);
-
- static const bool flipped = false;
- static const bool premultiplied_alpha = true;
-
- DCHECK(!bounds().IsEmpty());
-
- // NinePatch border widths in bitmap pixel space
- int left_width = image_aperture_.x();
- int top_height = image_aperture_.y();
- int right_width = image_bounds_.width() - image_aperture_.right();
- int bottom_height = image_bounds_.height() - image_aperture_.bottom();
-
- // If layer can't fit the corners, clip to show the outer edges of the
- // image.
- int corner_total_width = left_width + right_width;
- int middle_width = bounds().width() - corner_total_width;
- if (middle_width < 0) {
- float left_width_proportion =
- static_cast<float>(left_width) / corner_total_width;
- int left_width_crop = middle_width * left_width_proportion;
- left_width += left_width_crop;
- right_width = bounds().width() - left_width;
- middle_width = 0;
- }
- int corner_total_height = top_height + bottom_height;
- int middle_height = bounds().height() - corner_total_height;
- if (middle_height < 0) {
- float top_height_proportion =
- static_cast<float>(top_height) / corner_total_height;
- int top_height_crop = middle_height * top_height_proportion;
- top_height += top_height_crop;
- bottom_height = bounds().height() - top_height;
- middle_height = 0;
- }
-
- // Patch positions in layer space
- gfx::Rect top_left(0, 0, left_width, top_height);
- gfx::Rect topRight(
- bounds().width() - right_width, 0, right_width, top_height);
- gfx::Rect bottomLeft(
- 0, bounds().height() - bottom_height, left_width, bottom_height);
- gfx::Rect bottomRight(
- topRight.x(), bottomLeft.y(), right_width, bottom_height);
- gfx::Rect top(top_left.right(), 0, middle_width, top_height);
- gfx::Rect left(0, top_left.bottom(), left_width, middle_height);
- gfx::Rect right(topRight.x(), topRight.bottom(), right_width, left.height());
- gfx::Rect bottom(top.x(), bottomLeft.y(), top.width(), bottom_height);
-
- float img_width = image_bounds_.width();
- float img_height = image_bounds_.height();
-
- // Patch positions in bitmap UV space (from zero to one)
- gfx::RectF uv_top_left = NormalizedRect(0,
- 0,
- left_width,
- top_height,
- img_width,
- img_height);
- gfx::RectF uv_top_right = NormalizedRect(img_width - right_width,
- 0,
- right_width,
- top_height,
- img_width,
- img_height);
- gfx::RectF uv_bottom_left = NormalizedRect(0,
- img_height - bottom_height,
- left_width,
- bottom_height,
- img_width,
- img_height);
- gfx::RectF uv_bottom_right = NormalizedRect(img_width - right_width,
- img_height - bottom_height,
- right_width,
- bottom_height,
- img_width,
- img_height);
- gfx::RectF uvTop(uv_top_left.right(),
- 0,
- (img_width - left_width - right_width) / img_width,
- (top_height) / img_height);
- gfx::RectF uvLeft(0,
- uv_top_left.bottom(),
- left_width / img_width,
- (img_height - top_height - bottom_height) / img_height);
- gfx::RectF uvRight(uv_top_right.x(),
- uv_top_right.bottom(),
- right_width / img_width,
- uvLeft.height());
- gfx::RectF uvBottom(uvTop.x(),
- uv_bottom_left.y(),
- uvTop.width(),
- bottom_height / img_height);
-
- // Nothing is opaque here.
- // TODO(danakj): Should we look at the SkBitmaps to determine opaqueness?
- gfx::Rect opaque_rect;
- const float vertex_opacity[] = {1.0f, 1.0f, 1.0f, 1.0f};
- scoped_ptr<TextureDrawQuad> quad;
-
- quad = TextureDrawQuad::Create();
- quad->SetNew(shared_quad_state,
- top_left,
- opaque_rect,
- resource_id_,
- premultiplied_alpha,
- uv_top_left.origin(),
- uv_top_left.bottom_right(),
- vertex_opacity, flipped);
- quad_sink->Append(quad.PassAs<DrawQuad>(), append_quads_data);
-
- quad = TextureDrawQuad::Create();
- quad->SetNew(shared_quad_state,
- topRight,
- opaque_rect,
- resource_id_,
- premultiplied_alpha,
- uv_top_right.origin(),
- uv_top_right.bottom_right(),
- vertex_opacity, flipped);
- quad_sink->Append(quad.PassAs<DrawQuad>(), append_quads_data);
-
- quad = TextureDrawQuad::Create();
- quad->SetNew(shared_quad_state,
- bottomLeft,
- opaque_rect,
- resource_id_,
- premultiplied_alpha,
- uv_bottom_left.origin(),
- uv_bottom_left.bottom_right(),
- vertex_opacity,
- flipped);
- quad_sink->Append(quad.PassAs<DrawQuad>(), append_quads_data);
-
- quad = TextureDrawQuad::Create();
- quad->SetNew(shared_quad_state,
- bottomRight,
- opaque_rect,
- resource_id_,
- premultiplied_alpha,
- uv_bottom_right.origin(),
- uv_bottom_right.bottom_right(),
- vertex_opacity,
- flipped);
- quad_sink->Append(quad.PassAs<DrawQuad>(), append_quads_data);
-
- quad = TextureDrawQuad::Create();
- quad->SetNew(shared_quad_state,
- top,
- opaque_rect,
- resource_id_,
- premultiplied_alpha,
- uvTop.origin(),
- uvTop.bottom_right(),
- vertex_opacity,
- flipped);
- quad_sink->Append(quad.PassAs<DrawQuad>(), append_quads_data);
-
- quad = TextureDrawQuad::Create();
- quad->SetNew(shared_quad_state,
- left,
- opaque_rect,
- resource_id_,
- premultiplied_alpha,
- uvLeft.origin(),
- uvLeft.bottom_right(),
- vertex_opacity,
- flipped);
- quad_sink->Append(quad.PassAs<DrawQuad>(), append_quads_data);
-
- quad = TextureDrawQuad::Create();
- quad->SetNew(shared_quad_state,
- right,
- opaque_rect,
- resource_id_,
- premultiplied_alpha,
- uvRight.origin(),
- uvRight.bottom_right(),
- vertex_opacity,
- flipped);
- quad_sink->Append(quad.PassAs<DrawQuad>(), append_quads_data);
-
- quad = TextureDrawQuad::Create();
- quad->SetNew(shared_quad_state,
- bottom,
- opaque_rect,
- resource_id_,
- premultiplied_alpha,
- uvBottom.origin(),
- uvBottom.bottom_right(),
- vertex_opacity,
- flipped);
- quad_sink->Append(quad.PassAs<DrawQuad>(), append_quads_data);
-}
-
-void NinePatchLayerImpl::DidDraw(ResourceProvider* resource_provider) {}
-
-void NinePatchLayerImpl::DidLoseOutputSurface() {
- resource_id_ = 0;
-}
-
-const char* NinePatchLayerImpl::LayerTypeAsString() const {
- return "NinePatchLayer";
-}
-
-void NinePatchLayerImpl::DumpLayerProperties(std::string* str, int indent)
- const {
- str->append(IndentString(indent));
- base::StringAppendF(
- str, "imageAperture: %s\n", image_aperture_.ToString().c_str());
- base::StringAppendF(
- str, "image_bounds: %s\n", image_bounds_.ToString().c_str());
- LayerImpl::DumpLayerProperties(str, indent);
-}
-
-base::DictionaryValue* NinePatchLayerImpl::LayerTreeAsJson() const {
- base::DictionaryValue* result = LayerImpl::LayerTreeAsJson();
-
- base::ListValue* list = new base::ListValue;
- list->AppendInteger(image_aperture_.origin().x());
- list->AppendInteger(image_aperture_.origin().y());
- list->AppendInteger(image_aperture_.size().width());
- list->AppendInteger(image_aperture_.size().height());
- result->Set("ImageAperture", list);
-
- list = new base::ListValue;
- list->AppendInteger(image_bounds_.width());
- list->AppendInteger(image_bounds_.height());
- result->Set("ImageBounds", list);
-
- return result;
-}
-
-} // namespace cc
« no previous file with comments | « cc/nine_patch_layer_impl.h ('k') | cc/nine_patch_layer_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698