blob: 90f2baf6623b056503703875e1cdceeece6806a2 [file] [log] [blame]
// Copyright 2025 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "third_party/blink/renderer/modules/xr/xr_quad_layer.h"
#include "device/vr/public/mojom/vr_service.mojom-blink.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_xr_quad_layer_init.h"
#include "third_party/blink/renderer/core/typed_arrays/dom_typed_array.h"
#include "third_party/blink/renderer/modules/xr/xr_graphics_binding.h"
#include "third_party/blink/renderer/modules/xr/xr_rigid_transform.h"
#include "third_party/blink/renderer/modules/xr/xr_session.h"
namespace blink {
XRQuadLayer::XRQuadLayer(const XRQuadLayerInit* init,
XRGraphicsBinding* binding,
XRLayerDrawingContext* drawing_context)
: XRShapedLayer(init, binding, drawing_context),
width_(init->width()),
height_(init->height()) {
if (init->hasTransform()) {
transform_ = MakeGarbageCollected<XRRigidTransform>(
init->transform()->TransformMatrix());
} else {
transform_ = MakeGarbageCollected<XRRigidTransform>(gfx::Transform{});
}
}
XRLayerType XRQuadLayer::LayerType() const {
return XRLayerType::kQuadLayer;
}
void XRQuadLayer::setWidth(float width) {
width_ = width;
SetModified(true);
}
void XRQuadLayer::setHeight(float height) {
height_ = height;
SetModified(true);
}
void XRQuadLayer::setTransform(XRRigidTransform* value) {
if (transform_ != value) {
transform_ = value;
SetModified(true);
}
}
void XRQuadLayer::Trace(Visitor* visitor) const {
visitor->Trace(transform_);
XRShapedLayer::Trace(visitor);
}
} // namespace blink