blob: efd3ceb7cbc24f1bd21225e6a31ab3fdf847eb37 [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.
#ifndef UI_OZONE_COMMON_GPU_OZONE_GPU_MESSAGE_PARAMS_H_
#define UI_OZONE_COMMON_GPU_OZONE_GPU_MESSAGE_PARAMS_H_
#include <stdint.h>
#include <string>
#include <vector>
#include "base/files/file_path.h"
#include "ui/display/types/display_constants.h"
#include "ui/gfx/buffer_types.h"
#include "ui/gfx/color_space.h"
#include "ui/gfx/geometry/point.h"
#include "ui/gfx/geometry/size.h"
#include "ui/gfx/overlay_transform.h"
#include "ui/ozone/public/overlay_candidates_ozone.h"
#include "ui/ozone/public/overlay_surface_candidate.h"
namespace ui {
class OverlaySurfaceCandidate;
struct DisplayMode_Params {
DisplayMode_Params();
~DisplayMode_Params();
gfx::Size size;
bool is_interlaced = false;
float refresh_rate = 0.0f;
};
struct DisplaySnapshot_Params {
DisplaySnapshot_Params();
DisplaySnapshot_Params(const DisplaySnapshot_Params& other);
~DisplaySnapshot_Params();
int64_t display_id = 0;
gfx::Point origin;
gfx::Size physical_size;
display::DisplayConnectionType type = display::DISPLAY_CONNECTION_TYPE_NONE;
bool is_aspect_preserving_scaling = false;
bool has_overscan = false;
bool has_color_correction_matrix = false;
bool color_correction_in_linear_space = false;
gfx::ColorSpace color_space;
uint32_t bits_per_channel = 0;
std::string display_name;
base::FilePath sys_path;
std::vector<DisplayMode_Params> modes;
display::PanelOrientation panel_orientation =
display::PanelOrientation::kNormal;
std::vector<uint8_t> edid;
bool has_current_mode = false;
DisplayMode_Params current_mode;
bool has_native_mode = false;
DisplayMode_Params native_mode;
int64_t product_code = 0;
int32_t year_of_manufacture = display::kInvalidYearOfManufacture;
gfx::Size maximum_cursor_size;
};
struct OverlayCheck_Params {
OverlayCheck_Params();
OverlayCheck_Params(const OverlaySurfaceCandidate& candidate);
OverlayCheck_Params(const OverlayCheck_Params& other);
~OverlayCheck_Params();
gfx::Size buffer_size;
gfx::OverlayTransform transform = gfx::OVERLAY_TRANSFORM_NONE;
gfx::BufferFormat format = gfx::BufferFormat::BGRA_8888;
gfx::Rect display_rect;
gfx::RectF crop_rect;
bool is_opaque = false;
int plane_z_order = 0;
// By default we mark this configuration valid for promoting it to an overlay.
bool is_overlay_candidate = true;
};
struct OverlayCheckReturn_Params {
OverlayCheckReturn_Params() = default;
OverlayCheckReturn_Params(const OverlayCheckReturn_Params& other) = default;
~OverlayCheckReturn_Params() = default;
OverlayStatus status = OVERLAY_STATUS_PENDING;
};
} // namespace ui
#endif // UI_OZONE_COMMON_GPU_OZONE_GPU_MESSAGE_PARAMS_H_