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 24 IPC_ENUM_TRAITS_MAX_VALUE(ui::DisplayConnectionType, 25 ui::DISPLAY_CONNECTION_TYPE_LAST) 26 27 IPC_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) 31 IPC_STRUCT_TRAITS_END() 32 33 IPC_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) 48 IPC_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. 55 IPC_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. 62 IPC_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. 68 IPC_MESSAGE_CONTROL1(OzoneGpuMsg_CreateWindowDelegate, 69 gfx::AcceleratedWidget /* widget */) 70 71 IPC_MESSAGE_CONTROL1(OzoneGpuMsg_DestroyWindowDelegate, 72 gfx::AcceleratedWidget /* widget */) 73 74 // Updates the location and size of the widget on the screen. 75 IPC_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. 81 IPC_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. 86 IPC_MESSAGE_CONTROL1(OzoneGpuMsg_RefreshNativeDisplays, 87 std::vector<ui::DisplaySnapshot_Params> /* displays */) 88 89 // Configure a display with the specified mode at the specified location. 90 IPC_MESSAGE_CONTROL3(OzoneGpuMsg_ConfigureNativeDisplay, 91 int64_t, // display ID 92 ui::DisplayMode_Params, // display mode 93 gfx::Point) // origin for the display 94 95 IPC_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. 103 IPC_MESSAGE_CONTROL1(OzoneHostMsg_UpdateNativeDisplays, 104 std::vector<ui::DisplaySnapshot_Params>) 105 #endif 106