Update UnusedResources lint suppressions.
[chromium-blink-merge.git] / ui / ozone / platform / cast / overlay_manager_cast.cc
blobcb7d6419ba97d83aeacc4b1f1578694c579e1db5
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "ui/ozone/platform/cast/overlay_manager_cast.h"
7 #include "chromecast/public/cast_media_shlib.h"
8 #include "chromecast/public/graphics_types.h"
9 #include "chromecast/public/video_plane.h"
10 #include "ui/gfx/geometry/rect_conversions.h"
11 #include "ui/ozone/public/overlay_candidates_ozone.h"
13 namespace ui {
14 namespace {
16 // Translates a gfx::OverlayTransform into a VideoPlane::Transform.
17 // Could be just a lookup table once we have unit tests for this code
18 // to ensure it stays in sync with OverlayTransform.
19 chromecast::media::VideoPlane::Transform ConvertTransform(
20 gfx::OverlayTransform transform) {
21 switch (transform) {
22 case gfx::OVERLAY_TRANSFORM_NONE:
23 return chromecast::media::VideoPlane::TRANSFORM_NONE;
24 case gfx::OVERLAY_TRANSFORM_FLIP_HORIZONTAL:
25 return chromecast::media::VideoPlane::FLIP_HORIZONTAL;
26 case gfx::OVERLAY_TRANSFORM_FLIP_VERTICAL:
27 return chromecast::media::VideoPlane::FLIP_VERTICAL;
28 case gfx::OVERLAY_TRANSFORM_ROTATE_90:
29 return chromecast::media::VideoPlane::ROTATE_90;
30 case gfx::OVERLAY_TRANSFORM_ROTATE_180:
31 return chromecast::media::VideoPlane::ROTATE_180;
32 case gfx::OVERLAY_TRANSFORM_ROTATE_270:
33 return chromecast::media::VideoPlane::ROTATE_270;
34 default:
35 NOTREACHED();
36 return chromecast::media::VideoPlane::TRANSFORM_NONE;
40 class OverlayCandidatesCast : public OverlayCandidatesOzone {
41 public:
42 void CheckOverlaySupport(OverlaySurfaceCandidateList* surfaces) override {
43 for (auto& candidate : *surfaces) {
44 if (candidate.plane_z_order == -1) {
45 candidate.overlay_handled = true;
47 // Compositor requires all overlay rectangles to have integer coords
48 candidate.display_rect = gfx::ToEnclosedRect(candidate.display_rect);
50 chromecast::media::VideoPlane* video_plane =
51 chromecast::media::CastMediaShlib::GetVideoPlane();
53 chromecast::RectF display_rect(
54 candidate.display_rect.x(), candidate.display_rect.y(),
55 candidate.display_rect.width(), candidate.display_rect.height());
56 video_plane->SetGeometry(
57 display_rect,
58 chromecast::media::VideoPlane::COORDINATE_TYPE_GRAPHICS_PLANE,
59 ConvertTransform(candidate.transform));
60 return;
66 } // namespace
68 OverlayManagerCast::OverlayManagerCast() {
71 OverlayManagerCast::~OverlayManagerCast() {
74 scoped_ptr<OverlayCandidatesOzone> OverlayManagerCast::CreateOverlayCandidates(
75 gfx::AcceleratedWidget w) {
76 return make_scoped_ptr(new OverlayCandidatesCast());
79 bool OverlayManagerCast::CanShowPrimaryPlaneAsOverlay() {
80 return false;
83 } // namespace ui