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 // Multiply-included message file, hence no include guard here, but see below
6 // for a much smaller-than-usual include guard section.
10 #include "base/file_descriptor_posix.h"
11 #include "ipc/ipc_message_macros.h"
12 #include "third_party/skia/include/core/SkBitmap.h"
13 #include "ui/gfx/geometry/point.h"
14 #include "ui/gfx/geometry/rect.h"
15 #include "ui/gfx/ipc/gfx_param_traits.h"
16 #include "ui/gfx/native_widget_types.h"
17 #include "ui/ozone/common/gpu/ozone_gpu_message_params.h"
18 #include "ui/ozone/ozone_export.h"
20 #undef IPC_MESSAGE_EXPORT
21 #define IPC_MESSAGE_EXPORT OZONE_EXPORT
23 #define IPC_MESSAGE_START OzoneGpuMsgStart
25 IPC_ENUM_TRAITS_MAX_VALUE(ui::DisplayConnectionType
,
26 ui::DISPLAY_CONNECTION_TYPE_LAST
)
28 IPC_STRUCT_TRAITS_BEGIN(ui::DisplayMode_Params
)
29 IPC_STRUCT_TRAITS_MEMBER(size
)
30 IPC_STRUCT_TRAITS_MEMBER(is_interlaced
)
31 IPC_STRUCT_TRAITS_MEMBER(refresh_rate
)
32 IPC_STRUCT_TRAITS_END()
34 IPC_STRUCT_TRAITS_BEGIN(ui::DisplaySnapshot_Params
)
35 IPC_STRUCT_TRAITS_MEMBER(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()
50 //------------------------------------------------------------------------------
52 // These are messages from the browser to the GPU process.
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 */)
61 // Move the HW cursor to the specified location.
62 IPC_MESSAGE_CONTROL2(OzoneGpuMsg_CursorMove
,
63 gfx::AcceleratedWidget
, gfx::Point
)
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 */)
71 IPC_MESSAGE_CONTROL1(OzoneGpuMsg_DestroyWindowDelegate
,
72 gfx::AcceleratedWidget
/* widget */)
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 */)
79 // Trigger a display reconfiguration. OzoneHostMsg_UpdateNativeDisplays will be
80 // sent as a response.
81 IPC_MESSAGE_CONTROL0(OzoneGpuMsg_RefreshNativeDisplays
)
83 // Configure a display with the specified mode at the specified location.
84 IPC_MESSAGE_CONTROL3(OzoneGpuMsg_ConfigureNativeDisplay
,
85 int64_t, // display ID
86 ui::DisplayMode_Params
, // display mode
87 gfx::Point
) // origin for the display
89 IPC_MESSAGE_CONTROL1(OzoneGpuMsg_DisableNativeDisplay
,
90 int64_t) // display ID
92 IPC_MESSAGE_CONTROL2(OzoneGpuMsg_AddGraphicsDevice
,
93 base::FilePath
/* device_path */,
94 base::FileDescriptor
/* device_fd */)
96 IPC_MESSAGE_CONTROL1(OzoneGpuMsg_RemoveGraphicsDevice
,
97 base::FilePath
/* device_path */)
99 // Take control of the display
100 IPC_MESSAGE_CONTROL0(OzoneGpuMsg_TakeDisplayControl
)
102 // Let other entity control the display
103 IPC_MESSAGE_CONTROL0(OzoneGpuMsg_RelinquishDisplayControl
)
105 //------------------------------------------------------------------------------
107 // These messages are from the GPU to the browser process.
109 // Updates the list of active displays.
110 IPC_MESSAGE_CONTROL1(OzoneHostMsg_UpdateNativeDisplays
,
111 std::vector
<ui::DisplaySnapshot_Params
>)
113 IPC_MESSAGE_CONTROL2(OzoneHostMsg_DisplayConfigured
,
114 int64_t /* display_id */,