blob: d7016701cd233b6792727d895a95014b4c02892e [file] [log] [blame]
// Copyright 2014 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/ozone/platform/drm/gpu/overlay_plane.h"
#include <stddef.h>
#include "ui/ozone/platform/drm/gpu/scanout_buffer.h"
namespace ui {
OverlayPlane::OverlayPlane(const scoped_refptr<ScanoutBuffer>& buffer)
: buffer(buffer),
plane_transform(gfx::OVERLAY_TRANSFORM_INVALID),
display_bounds(gfx::Point(), buffer->GetSize()),
crop_rect(0, 0, 1, 1) {}
OverlayPlane::OverlayPlane(const scoped_refptr<ScanoutBuffer>& buffer,
int z_order,
gfx::OverlayTransform plane_transform,
const gfx::Rect& display_bounds,
const gfx::RectF& crop_rect)
: buffer(buffer),
z_order(z_order),
plane_transform(plane_transform),
display_bounds(display_bounds),
crop_rect(crop_rect) {}
OverlayPlane::OverlayPlane(const OverlayPlane& other) = default;
OverlayPlane::~OverlayPlane() {
}
OverlayPlane::OverlayPlane(const scoped_refptr<ScanoutBuffer>& buffer,
int z_order,
gfx::OverlayTransform plane_transform,
const gfx::Rect& display_bounds,
const gfx::RectF& crop_rect,
const ProcessBufferCallback& processing_callback)
: buffer(buffer),
z_order(z_order),
plane_transform(plane_transform),
display_bounds(display_bounds),
crop_rect(crop_rect),
processing_callback(processing_callback) {}
bool OverlayPlane::operator<(const OverlayPlane& plane) const {
return std::tie(z_order, display_bounds, crop_rect, plane_transform) <
std::tie(plane.z_order, plane.display_bounds, plane.crop_rect,
plane.plane_transform);
}
// static
const OverlayPlane* OverlayPlane::GetPrimaryPlane(
const OverlayPlaneList& overlays) {
for (size_t i = 0; i < overlays.size(); ++i) {
if (overlays[i].z_order == 0)
return &overlays[i];
}
return nullptr;
}
} // namespace ui