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. 4 5// Multiply-included message file, hence no include guard here, but see below 6// for a much smaller-than-usual include guard section. 7 8#include <vector> 9 10#include "ipc/ipc_message_macros.h" 11#include "third_party/skia/include/core/SkBitmap.h" 12#include "ui/gfx/geometry/point.h" 13#include "ui/gfx/geometry/rect.h" 14#include "ui/gfx/ipc/gfx_param_traits.h" 15#include "ui/gfx/native_widget_types.h" 16#include "ui/ozone/common/gpu/ozone_gpu_message_params.h" 17#include "ui/ozone/ozone_export.h" 18 19#undef IPC_MESSAGE_EXPORT 20#define IPC_MESSAGE_EXPORT OZONE_EXPORT 21 22#define IPC_MESSAGE_START OzoneGpuMsgStart 23 24IPC_ENUM_TRAITS_MAX_VALUE(ui::DisplayConnectionType, 25 ui::DISPLAY_CONNECTION_TYPE_LAST) 26 27IPC_STRUCT_TRAITS_BEGIN(ui::DisplayMode_Params) 28 IPC_STRUCT_TRAITS_MEMBER(size) 29 IPC_STRUCT_TRAITS_MEMBER(is_interlaced) 30 IPC_STRUCT_TRAITS_MEMBER(refresh_rate) 31IPC_STRUCT_TRAITS_END() 32 33IPC_STRUCT_TRAITS_BEGIN(ui::DisplaySnapshot_Params) 34 IPC_STRUCT_TRAITS_MEMBER(display_id) 35 IPC_STRUCT_TRAITS_MEMBER(has_proper_display_id) 36 IPC_STRUCT_TRAITS_MEMBER(origin) 37 IPC_STRUCT_TRAITS_MEMBER(physical_size) 38 IPC_STRUCT_TRAITS_MEMBER(type) 39 IPC_STRUCT_TRAITS_MEMBER(is_aspect_preserving_scaling) 40 IPC_STRUCT_TRAITS_MEMBER(has_overscan) 41 IPC_STRUCT_TRAITS_MEMBER(display_name) 42 IPC_STRUCT_TRAITS_MEMBER(modes) 43 IPC_STRUCT_TRAITS_MEMBER(has_current_mode) 44 IPC_STRUCT_TRAITS_MEMBER(current_mode) 45 IPC_STRUCT_TRAITS_MEMBER(has_native_mode) 46 IPC_STRUCT_TRAITS_MEMBER(native_mode) 47 IPC_STRUCT_TRAITS_MEMBER(string_representation) 48IPC_STRUCT_TRAITS_END() 49 50//------------------------------------------------------------------------------ 51// GPU Messages 52// These are messages from the browser to the GPU process. 53 54// Update the HW cursor bitmap & move to specified location. 55IPC_MESSAGE_CONTROL4(OzoneGpuMsg_CursorSet, 56 gfx::AcceleratedWidget, 57 std::vector<SkBitmap>, 58 gfx::Point /* location */, 59 int /* frame_delay_ms */) 60 61// Move the HW cursor to the specified location. 62IPC_MESSAGE_CONTROL2(OzoneGpuMsg_CursorMove, 63 gfx::AcceleratedWidget, gfx::Point) 64 65// Explicit creation of a WindowDelegate. We explicitly create the window 66// delegate such that any state change in the window is not lost while the 67// surface is created on the GPU side. 68IPC_MESSAGE_CONTROL1(OzoneGpuMsg_CreateWindowDelegate, 69 gfx::AcceleratedWidget /* widget */) 70 71IPC_MESSAGE_CONTROL1(OzoneGpuMsg_DestroyWindowDelegate, 72 gfx::AcceleratedWidget /* widget */) 73 74// Updates the location and size of the widget on the screen. 75IPC_MESSAGE_CONTROL2(OzoneGpuMsg_WindowBoundsChanged, 76 gfx::AcceleratedWidget /* widget */, 77 gfx::Rect /* bounds */) 78 79#if defined(OS_CHROMEOS) 80// Force the DPMS state of the display to on. 81IPC_MESSAGE_CONTROL0(OzoneGpuMsg_ForceDPMSOn) 82 83// Trigger a display reconfiguration. OzoneHostMsg_UpdateNativeDisplays will be 84// sent as a response. 85// The |displays| parameter will hold a list of last known displays. 86IPC_MESSAGE_CONTROL1(OzoneGpuMsg_RefreshNativeDisplays, 87 std::vector<ui::DisplaySnapshot_Params> /* displays */) 88 89// Configure a display with the specified mode at the specified location. 90IPC_MESSAGE_CONTROL3(OzoneGpuMsg_ConfigureNativeDisplay, 91 int64_t, // display ID 92 ui::DisplayMode_Params, // display mode 93 gfx::Point) // origin for the display 94 95IPC_MESSAGE_CONTROL1(OzoneGpuMsg_DisableNativeDisplay, 96 int64_t) // display ID 97 98//------------------------------------------------------------------------------ 99// Browser Messages 100// These messages are from the GPU to the browser process. 101 102// Updates the list of active displays. 103IPC_MESSAGE_CONTROL1(OzoneHostMsg_UpdateNativeDisplays, 104 std::vector<ui::DisplaySnapshot_Params>) 105#endif 106