blob: 5867a54b57ba54d38eeb6e9cec6effd94ad8f507 [file] [log] [blame]
// Copyright 2015 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 "ui/compositor/transform_recorder.h"
#include "cc/playback/display_item_list.h"
#include "cc/playback/transform_display_item.h"
#include "ui/compositor/paint_context.h"
namespace ui {
TransformRecorder::TransformRecorder(const PaintContext& context)
: context_(context), transformed_(false) {}
TransformRecorder::~TransformRecorder() {
if (transformed_)
context_.list_->CreateAndAppendItem<cc::EndTransformDisplayItem>(
bounds_in_layer_);
}
void TransformRecorder::Transform(const gfx::Transform& transform,
const gfx::Size& size_in_context) {
DCHECK(!transformed_);
bounds_in_layer_ = context_.ToLayerSpaceBounds(size_in_context);
context_.list_->CreateAndAppendItem<cc::TransformDisplayItem>(
bounds_in_layer_, transform);
transformed_ = true;
}
} // namespace ui