1 // Copyright 2014 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 "content/browser/compositor/overlay_candidate_validator_ozone.h"
7 #include "ui/gfx/ozone/overlay_candidates_ozone.h"
11 static gfx::SurfaceFactoryOzone::BufferFormat GetOzoneFormat(
12 cc::ResourceFormat overlay_format) {
13 switch (overlay_format) {
15 return gfx::SurfaceFactoryOzone::RGBA_8888;
24 return gfx::SurfaceFactoryOzone::UNKNOWN;
27 OverlayCandidateValidatorOzone::OverlayCandidateValidatorOzone(
28 gfx::AcceleratedWidget widget,
29 gfx::OverlayCandidatesOzone* overlay_candidates)
30 : widget_(widget), overlay_candidates_(overlay_candidates) {}
32 OverlayCandidateValidatorOzone::~OverlayCandidateValidatorOzone() {}
34 void OverlayCandidateValidatorOzone::CheckOverlaySupport(
35 cc::OverlayCandidateList* surfaces) {
36 DCHECK_GE(2U, surfaces->size());
37 gfx::OverlayCandidatesOzone::OverlaySurfaceCandidateList ozone_surface_list;
38 ozone_surface_list.resize(surfaces->size());
40 for (size_t i = 0; i < surfaces->size(); i++) {
41 ozone_surface_list.at(i).transform = surfaces->at(i).transform;
42 ozone_surface_list.at(i).format = GetOzoneFormat(surfaces->at(i).format);
43 ozone_surface_list.at(i).display_rect = surfaces->at(i).display_rect;
44 ozone_surface_list.at(i).crop_rect = surfaces->at(i).uv_rect;
45 ozone_surface_list.at(i).plane_z_order = surfaces->at(i).plane_z_order;
48 overlay_candidates_->CheckOverlaySupport(&ozone_surface_list);
49 DCHECK_EQ(surfaces->size(), ozone_surface_list.size());
51 for (size_t i = 0; i < surfaces->size(); i++) {
52 surfaces->at(i).overlay_handled = ozone_surface_list.at(i).overlay_handled;
56 } // namespace content