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

Unified Diff: cc/layers/heads_up_display_layer_impl.cc

Issue 935333002: Update from https://crrev.com/316786 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 10 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/layers/heads_up_display_layer_impl.h ('k') | cc/layers/heads_up_display_layer_impl_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/layers/heads_up_display_layer_impl.cc
diff --git a/cc/layers/heads_up_display_layer_impl.cc b/cc/layers/heads_up_display_layer_impl.cc
index 60d984b004915014ef4a94ac6c83c7529f4114a4..97fddae60e4f4aa154950918eb2f4a156d49f315 100644
--- a/cc/layers/heads_up_display_layer_impl.cc
+++ b/cc/layers/heads_up_display_layer_impl.cc
@@ -28,6 +28,7 @@
#include "third_party/skia/include/effects/SkColorMatrixFilter.h"
#include "ui/gfx/geometry/point.h"
#include "ui/gfx/geometry/size.h"
+#include "ui/gfx/geometry/size_conversions.h"
namespace cc {
@@ -69,6 +70,7 @@ double HeadsUpDisplayLayerImpl::Graph::UpdateUpperBound() {
HeadsUpDisplayLayerImpl::HeadsUpDisplayLayerImpl(LayerTreeImpl* tree_impl,
int id)
: LayerImpl(tree_impl, id),
+ internal_contents_scale_(1.f),
fps_graph_(60.0, 80.0),
paint_time_graph_(16.0, 48.0),
fade_step_(0) {
@@ -94,8 +96,8 @@ void HeadsUpDisplayLayerImpl::AcquireResource(
scoped_ptr<ScopedResource> resource =
ScopedResource::Create(resource_provider);
- resource->Allocate(
- content_bounds(), ResourceProvider::TextureHintImmutable, RGBA_8888);
+ resource->Allocate(internal_content_bounds_,
+ ResourceProvider::TextureHintImmutable, RGBA_8888);
resources_.push_back(resource.Pass());
}
@@ -115,7 +117,7 @@ class ResourceSizeIsEqualTo {
void HeadsUpDisplayLayerImpl::ReleaseUnmatchedSizeResources(
ResourceProvider* resource_provider) {
ScopedPtrVector<ScopedResource>::iterator it_erase =
- resources_.partition(ResourceSizeIsEqualTo(content_bounds()));
+ resources_.partition(ResourceSizeIsEqualTo(internal_content_bounds_));
resources_.erase(it_erase, resources_.end());
}
@@ -124,6 +126,10 @@ bool HeadsUpDisplayLayerImpl::WillDraw(DrawMode draw_mode,
if (draw_mode == DRAW_MODE_RESOURCELESS_SOFTWARE)
return false;
+ internal_contents_scale_ = draw_properties().ideal_contents_scale;
+ internal_content_bounds_ =
+ gfx::ToCeiledSize(gfx::ScaleSize(bounds(), internal_contents_scale_));
+
ReleaseUnmatchedSizeResources(resource_provider);
AcquireResource(resource_provider);
return LayerImpl::WillDraw(draw_mode, resource_provider);
@@ -131,16 +137,15 @@ bool HeadsUpDisplayLayerImpl::WillDraw(DrawMode draw_mode,
void HeadsUpDisplayLayerImpl::AppendQuads(
RenderPass* render_pass,
- const Occlusion& occlusion_in_content_space,
AppendQuadsData* append_quads_data) {
if (!resources_.back()->id())
return;
SharedQuadState* shared_quad_state =
render_pass->CreateAndAppendSharedQuadState();
- PopulateSharedQuadState(shared_quad_state);
+ PopulateScaledSharedQuadState(shared_quad_state, internal_contents_scale_);
- gfx::Rect quad_rect(content_bounds());
+ gfx::Rect quad_rect(internal_content_bounds_);
gfx::Rect opaque_rect(contents_opaque() ? quad_rect : gfx::Rect());
gfx::Rect visible_quad_rect(quad_rect);
bool premultiplied_alpha = true;
@@ -177,12 +182,13 @@ void HeadsUpDisplayLayerImpl::UpdateHudTexture(
else
canvas_size.set(0, 0);
- if (canvas_size.width() != content_bounds().width() ||
- canvas_size.height() != content_bounds().height() || !hud_surface_) {
+ if (canvas_size.width() != internal_content_bounds_.width() ||
+ canvas_size.height() != internal_content_bounds_.height() ||
+ !hud_surface_) {
TRACE_EVENT0("cc", "ResizeHudCanvas");
hud_surface_ = skia::AdoptRef(SkSurface::NewRasterN32Premul(
- content_bounds().width(), content_bounds().height()));
+ internal_content_bounds_.width(), internal_content_bounds_.height()));
}
UpdateHudContents();
@@ -191,7 +197,8 @@ void HeadsUpDisplayLayerImpl::UpdateHudTexture(
TRACE_EVENT0("cc", "DrawHudContents");
hud_surface_->getCanvas()->clear(SkColorSetARGB(0, 0, 0, 0));
hud_surface_->getCanvas()->save();
- hud_surface_->getCanvas()->scale(contents_scale_x(), contents_scale_y());
+ hud_surface_->getCanvas()->scale(internal_contents_scale_,
+ internal_contents_scale_);
DrawHudContents(hud_surface_->getCanvas());
@@ -203,7 +210,7 @@ void HeadsUpDisplayLayerImpl::UpdateHudTexture(
size_t row_bytes = 0;
const void* pixels = hud_surface_->getCanvas()->peekPixels(&info, &row_bytes);
DCHECK(pixels);
- gfx::Rect content_rect(content_bounds());
+ gfx::Rect content_rect(internal_content_bounds_);
DCHECK(info.colorType() == kN32_SkColorType);
resource_provider->SetPixels(resources_.back()->id(),
static_cast<const uint8_t*>(pixels),
@@ -677,8 +684,9 @@ void HeadsUpDisplayLayerImpl::DrawDebugRect(
SkColor fill_color,
float stroke_width,
const std::string& label_text) const {
- gfx::Rect debug_layer_rect = gfx::ScaleToEnclosingRect(
- rect.rect, 1.0 / contents_scale_x(), 1.0 / contents_scale_y());
+ gfx::Rect debug_layer_rect =
+ gfx::ScaleToEnclosingRect(rect.rect, 1.0 / internal_contents_scale_,
+ 1.0 / internal_contents_scale_);
SkIRect sk_rect = RectToSkIRect(debug_layer_rect);
paint->setColor(fill_color);
paint->setStyle(SkPaint::kFill_Style);
@@ -696,7 +704,7 @@ void HeadsUpDisplayLayerImpl::DrawDebugRect(
// The debug_layer_rect may be huge, and converting to a floating point may
// be lossy, so intersect with the HUD layer bounds first to prevent that.
gfx::Rect clip_rect = debug_layer_rect;
- clip_rect.Intersect(gfx::Rect(content_bounds()));
+ clip_rect.Intersect(gfx::Rect(internal_content_bounds_));
SkRect sk_clip_rect = RectToSkRect(clip_rect);
canvas->save();
@@ -764,16 +772,6 @@ void HeadsUpDisplayLayerImpl::DrawDebugRects(
fill_color = DebugColors::ScreenSpaceLayerRectFillColor();
stroke_width = DebugColors::ScreenSpaceLayerRectBorderWidth();
break;
- case OCCLUDING_RECT_TYPE:
- stroke_color = DebugColors::OccludingRectBorderColor();
- fill_color = DebugColors::OccludingRectFillColor();
- stroke_width = DebugColors::OccludingRectBorderWidth();
- break;
- case NONOCCLUDING_RECT_TYPE:
- stroke_color = DebugColors::NonOccludingRectBorderColor();
- fill_color = DebugColors::NonOccludingRectFillColor();
- stroke_width = DebugColors::NonOccludingRectBorderWidth();
- break;
case TOUCH_EVENT_HANDLER_RECT_TYPE:
stroke_color = DebugColors::TouchEventHandlerRectBorderColor();
fill_color = DebugColors::TouchEventHandlerRectFillColor();
@@ -838,7 +836,7 @@ const char* HeadsUpDisplayLayerImpl::LayerTypeAsString() const {
}
void HeadsUpDisplayLayerImpl::AsValueInto(
- base::debug::TracedValue* dict) const {
+ base::trace_event::TracedValue* dict) const {
LayerImpl::AsValueInto(dict);
dict->SetString("layer_name", "Heads Up Display Layer");
}
« no previous file with comments | « cc/layers/heads_up_display_layer_impl.h ('k') | cc/layers/heads_up_display_layer_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698