blob: 41b4890a4e72c063fc4e6b274380ba7ef95bc1f2 [file]
// Copyright 2026 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "ui/compositor/layer_mirror.h"
#include "base/check_op.h"
#include "ui/compositor/layer.h"
#include "ui/compositor/layer_delegate.h"
#include "ui/compositor/paint_context.h"
namespace ui::internal {
LayerMirror::LayerMirror(Layer* source, Layer* dest)
: source_(source), dest_(dest) {
dest_->AddObserver(this);
dest_->set_delegate(this);
}
LayerMirror::~LayerMirror() {
dest_->RemoveObserver(this);
dest_->set_delegate(nullptr);
}
void LayerMirror::OnPaintLayer(const PaintContext& context) {
if (auto* delegate = source_->delegate()) {
delegate->OnPaintLayer(context);
}
}
void LayerMirror::OnDeviceScaleFactorChanged(float old_device_scale_factor,
float new_device_scale_factor) {}
void LayerMirror::LayerDestroyed(Layer* layer) {
DCHECK_EQ(dest_, layer);
source_->OnMirrorDestroyed(this);
}
} // namespace ui::internal