}
void ContentLayerUpdater::PaintContents(SkCanvas* canvas,
- const gfx::Point& origin,
+ const gfx::Rect& content_rect,
float contents_width_scale,
float contents_height_scale,
gfx::Rect* resulting_opaque_rect) {
TRACE_EVENT0("cc", "ContentLayerUpdater::PaintContents");
+ if (!canvas)
+ return;
canvas->save();
- canvas->translate(SkFloatToScalar(-origin.x()),
- SkFloatToScalar(-origin.y()));
+ canvas->translate(SkFloatToScalar(-content_rect.x()),
+ SkFloatToScalar(-content_rect.y()));
- SkISize size = canvas->getDeviceSize();
- gfx::Rect content_rect(origin, gfx::Size(size.width(), size.height()));
+ // The |canvas| backing should be sized to hold the |content_rect|.
+ DCHECK_EQ(content_rect.width(), canvas->getBaseLayerSize().width());
+ DCHECK_EQ(content_rect.height(), canvas->getBaseLayerSize().height());
gfx::Rect layer_rect = content_rect;
-
if (contents_width_scale != 1.f || contents_height_scale != 1.f) {
canvas->scale(SkFloatToScalar(contents_width_scale),
SkFloatToScalar(contents_height_scale));