OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // This header is meant to be included in multiple passes, hence no traditional | |
6 // header guard. It is included by backing_store_messages_internal.h | |
7 // See ipc_message_macros.h for explanation of the macros and passes. | |
8 | |
9 // This file needs to be included again, even though we're actually included | |
10 // from it via utility_messages.h. | |
11 | |
12 #include <vector> | 5 #include <vector> |
13 #include <string> | 6 #include <string> |
14 | 7 |
15 #include "base/shared_memory.h" | 8 #include "base/shared_memory.h" |
16 #include "chrome/common/gpu_video_common.h" | 9 #include "chrome/common/gpu_video_common.h" |
17 #include "ipc/ipc_message_macros.h" | 10 #include "ipc/ipc_message_macros.h" |
18 | 11 |
| 12 #define IPC_MESSAGE_START GpuMsgStart |
| 13 |
19 namespace gfx { | 14 namespace gfx { |
20 class Size; | 15 class Size; |
21 } | 16 } |
22 | 17 |
23 namespace IPC { | 18 namespace IPC { |
24 struct ChannelHandle; | 19 struct ChannelHandle; |
25 } | 20 } |
26 | 21 |
27 struct GPUCreateCommandBufferConfig; | 22 struct GPUCreateCommandBufferConfig; |
28 class GPUInfo; | 23 class GPUInfo; |
29 | 24 |
30 //------------------------------------------------------------------------------ | 25 //------------------------------------------------------------------------------ |
31 // GPU Messages | 26 // GPU Messages |
32 // These are messages from the browser to the GPU process. | 27 // These are messages from the browser to the GPU process. |
33 IPC_BEGIN_MESSAGES(Gpu) | 28 // Tells the GPU process to create a new channel for communication with a |
34 | 29 // given renderer. The channel name is returned in a |
35 // Tells the GPU process to create a new channel for communication with a | 30 // GpuHostMsg_ChannelEstablished message. The renderer ID is passed so that |
36 // given renderer. The channel name is returned in a | 31 // the GPU process reuses an existing channel to that process if it exists. |
37 // GpuHostMsg_ChannelEstablished message. The renderer ID is passed so that | 32 // This ID is a unique opaque identifier generated by the browser process. |
38 // the GPU process reuses an existing channel to that process if it exists. | 33 IPC_MESSAGE_CONTROL1(GpuMsg_EstablishChannel, |
39 // This ID is a unique opaque identifier generated by the browser process. | 34 int /* renderer_id */) |
40 IPC_MESSAGE_CONTROL1(GpuMsg_EstablishChannel, | 35 |
41 int /* renderer_id */) | 36 // Provides a synchronization point to guarantee that the processing of |
42 | 37 // previous asynchronous messages (i.e., GpuMsg_EstablishChannel) has |
43 // Provides a synchronization point to guarantee that the processing of | 38 // completed. (This message can't be synchronous because the |
44 // previous asynchronous messages (i.e., GpuMsg_EstablishChannel) has | 39 // GpuProcessHost uses an IPC::ChannelProxy, which sends all messages |
45 // completed. (This message can't be synchronous because the | 40 // asynchronously.) Results in a GpuHostMsg_SynchronizeReply. |
46 // GpuProcessHost uses an IPC::ChannelProxy, which sends all messages | 41 IPC_MESSAGE_CONTROL0(GpuMsg_Synchronize) |
47 // asynchronously.) Results in a GpuHostMsg_SynchronizeReply. | 42 |
48 IPC_MESSAGE_CONTROL0(GpuMsg_Synchronize) | 43 // Tells the GPU process to create a context for collecting graphics card |
49 | 44 // information. |
50 // Tells the GPU process to create a context for collecting graphics card | 45 IPC_MESSAGE_CONTROL0(GpuMsg_CollectGraphicsInfo) |
51 // information. | |
52 IPC_MESSAGE_CONTROL0(GpuMsg_CollectGraphicsInfo) | |
53 | 46 |
54 #if defined(OS_MACOSX) | 47 #if defined(OS_MACOSX) |
55 // Tells the GPU process that the browser process handled the swap | 48 // Tells the GPU process that the browser process handled the swap |
56 // buffers request with the given number. Note that it is possible | 49 // buffers request with the given number. Note that it is possible |
57 // for the browser process to coalesce frames; it is not guaranteed | 50 // for the browser process to coalesce frames; it is not guaranteed |
58 // that every GpuHostMsg_AcceleratedSurfaceBuffersSwapped message | 51 // that every GpuHostMsg_AcceleratedSurfaceBuffersSwapped message |
59 // will result in a buffer swap on the browser side. | 52 // will result in a buffer swap on the browser side. |
60 IPC_MESSAGE_CONTROL3(GpuMsg_AcceleratedSurfaceBuffersSwappedACK, | 53 IPC_MESSAGE_CONTROL3(GpuMsg_AcceleratedSurfaceBuffersSwappedACK, |
61 int /* renderer_id */, | 54 int /* renderer_id */, |
62 int32 /* route_id */, | 55 int32 /* route_id */, |
63 uint64 /* swap_buffers_count */) | 56 uint64 /* swap_buffers_count */) |
64 #endif | 57 #endif |
65 | 58 |
66 // Tells the GPU process to crash. | 59 // Tells the GPU process to crash. |
67 IPC_MESSAGE_CONTROL0(GpuMsg_Crash) | 60 IPC_MESSAGE_CONTROL0(GpuMsg_Crash) |
68 | 61 |
69 // Tells the GPU process to hang. | 62 // Tells the GPU process to hang. |
70 IPC_MESSAGE_CONTROL0(GpuMsg_Hang) | 63 IPC_MESSAGE_CONTROL0(GpuMsg_Hang) |
71 | |
72 IPC_END_MESSAGES(Gpu) | |
73 | 64 |
74 //------------------------------------------------------------------------------ | 65 //------------------------------------------------------------------------------ |
75 // GPU Host Messages | 66 // GPU Host Messages |
76 // These are messages from the GPU process to the browser. | 67 // These are messages from the GPU process to the browser. |
77 IPC_BEGIN_MESSAGES(GpuHost) | 68 // Response to a GpuHostMsg_EstablishChannel message. |
78 | 69 IPC_MESSAGE_CONTROL2(GpuHostMsg_ChannelEstablished, |
79 // Response to a GpuHostMsg_EstablishChannel message. | 70 IPC::ChannelHandle, /* channel_handle */ |
80 IPC_MESSAGE_CONTROL2(GpuHostMsg_ChannelEstablished, | 71 GPUInfo /* GPU logging stats */) |
81 IPC::ChannelHandle, /* channel_handle */ | 72 |
82 GPUInfo /* GPU logging stats */) | 73 // Response to a GpuMsg_Synchronize message. |
83 | 74 IPC_MESSAGE_CONTROL0(GpuHostMsg_SynchronizeReply) |
84 // Response to a GpuMsg_Synchronize message. | 75 |
85 IPC_MESSAGE_CONTROL0(GpuHostMsg_SynchronizeReply) | 76 // Response to a GpuMsg_CollectGraphicsInfo. |
86 | 77 IPC_MESSAGE_CONTROL1(GpuHostMsg_GraphicsInfoCollected, |
87 // Response to a GpuMsg_CollectGraphicsInfo. | 78 GPUInfo /* GPU logging stats */) |
88 IPC_MESSAGE_CONTROL1(GpuHostMsg_GraphicsInfoCollected, | |
89 GPUInfo /* GPU logging stats */) | |
90 | 79 |
91 #if defined(OS_LINUX) | 80 #if defined(OS_LINUX) |
92 // Get the XID for a view ID. | 81 // Get the XID for a view ID. |
93 IPC_SYNC_MESSAGE_CONTROL1_1(GpuHostMsg_GetViewXID, | 82 IPC_SYNC_MESSAGE_CONTROL1_1(GpuHostMsg_GetViewXID, |
94 gfx::NativeViewId, /* view */ | 83 gfx::NativeViewId, /* view */ |
95 unsigned long /* xid */) | 84 unsigned long /* xid */) |
96 | 85 |
97 // Release the lock on the window. | 86 // Release the lock on the window. |
98 // If the associated view has been destroyed, destroy the window. | 87 // If the associated view has been destroyed, destroy the window. |
99 IPC_MESSAGE_CONTROL1(GpuHostMsg_ReleaseXID, | 88 IPC_MESSAGE_CONTROL1(GpuHostMsg_ReleaseXID, |
100 unsigned long /* xid */) | 89 unsigned long /* xid */) |
101 | 90 |
102 IPC_SYNC_MESSAGE_CONTROL2_1(GpuHostMsg_ResizeXID, | 91 IPC_SYNC_MESSAGE_CONTROL2_1(GpuHostMsg_ResizeXID, |
103 unsigned long, /* xid */ | 92 unsigned long, /* xid */ |
104 gfx::Size, /* size */ | 93 gfx::Size, /* size */ |
105 bool /* success */) | 94 bool /* success */) |
106 | 95 |
107 #elif defined(OS_MACOSX) | 96 #elif defined(OS_MACOSX) |
108 // This message, used on Mac OS X 10.6 and later (where IOSurface is | 97 // This message, used on Mac OS X 10.6 and later (where IOSurface is |
109 // supported), is sent from the GPU process to the browser to indicate that a | 98 // supported), is sent from the GPU process to the browser to indicate that a |
110 // new backing store was allocated for the given "window" (fake | 99 // new backing store was allocated for the given "window" (fake |
111 // PluginWindowHandle). The renderer ID and render view ID are needed in | 100 // PluginWindowHandle). The renderer ID and render view ID are needed in |
112 // order to uniquely identify the RenderWidgetHostView on the browser side. | 101 // order to uniquely identify the RenderWidgetHostView on the browser side. |
113 IPC_MESSAGE_CONTROL1(GpuHostMsg_AcceleratedSurfaceSetIOSurface, | 102 IPC_MESSAGE_CONTROL1(GpuHostMsg_AcceleratedSurfaceSetIOSurface, |
114 GpuHostMsg_AcceleratedSurfaceSetIOSurface_Params) | 103 GpuHostMsg_AcceleratedSurfaceSetIOSurface_Params) |
115 | 104 |
116 // This message notifies the browser process that the renderer | 105 // This message notifies the browser process that the renderer |
117 // swapped the buffers associated with the given "window", which | 106 // swapped the buffers associated with the given "window", which |
118 // should cause the browser to redraw the compositor's contents. | 107 // should cause the browser to redraw the compositor's contents. |
119 IPC_MESSAGE_CONTROL1(GpuHostMsg_AcceleratedSurfaceBuffersSwapped, | 108 IPC_MESSAGE_CONTROL1(GpuHostMsg_AcceleratedSurfaceBuffersSwapped, |
120 GpuHostMsg_AcceleratedSurfaceBuffersSwapped_Params) | 109 GpuHostMsg_AcceleratedSurfaceBuffersSwapped_Params) |
121 #elif defined(OS_WIN) | 110 #elif defined(OS_WIN) |
122 // Get the HWND for the compositor window and if necessary, create it | 111 // Get the HWND for the compositor window and if necessary, create it |
123 IPC_SYNC_MESSAGE_CONTROL2_1(GpuHostMsg_GetCompositorHostWindow, | 112 IPC_SYNC_MESSAGE_CONTROL2_1(GpuHostMsg_GetCompositorHostWindow, |
124 int32, /* renderer_id */ | 113 int32, /* renderer_id */ |
125 int32, /* render_view_id */ | 114 int32, /* render_view_id */ |
126 gfx::PluginWindowHandle /* compositor_host_id */) | 115 gfx::PluginWindowHandle /* compositor_host_id */) |
127 | 116 |
128 IPC_MESSAGE_CONTROL2(GpuHostMsg_ScheduleComposite, | 117 IPC_MESSAGE_CONTROL2(GpuHostMsg_ScheduleComposite, |
129 int32, /* renderer_id */ | 118 int32, /* renderer_id */ |
130 int32 /* render_view_id */) | 119 int32 /* render_view_id */) |
131 #endif | 120 #endif |
132 | 121 |
133 IPC_END_MESSAGES(GpuHost) | |
134 | |
135 //------------------------------------------------------------------------------ | 122 //------------------------------------------------------------------------------ |
136 // GPU Channel Messages | 123 // GPU Channel Messages |
137 // These are messages from a renderer process to the GPU process. | 124 // These are messages from a renderer process to the GPU process. |
138 IPC_BEGIN_MESSAGES(GpuChannel) | 125 // Tells the GPU process to create a new command buffer that renders directly |
139 | 126 // to a native view. The |render_view_id| is currently needed only on Mac OS |
140 // Tells the GPU process to create a new command buffer that renders directly | 127 // X in order to identify the window on the browser side into which the |
141 // to a native view. The |render_view_id| is currently needed only on Mac OS | 128 // rendering results go. A corresponding GpuCommandBufferStub is created. |
142 // X in order to identify the window on the browser side into which the | 129 IPC_SYNC_MESSAGE_CONTROL3_1(GpuChannelMsg_CreateViewCommandBuffer, |
143 // rendering results go. A corresponding GpuCommandBufferStub is created. | 130 gfx::NativeViewId, /* view */ |
144 IPC_SYNC_MESSAGE_CONTROL3_1(GpuChannelMsg_CreateViewCommandBuffer, | 131 int32, /* render_view_id */ |
145 gfx::NativeViewId, /* view */ | 132 GPUCreateCommandBufferConfig, /* init_params */ |
146 int32, /* render_view_id */ | 133 int32 /* route_id */) |
147 GPUCreateCommandBufferConfig, /* init_params */ | 134 |
148 int32 /* route_id */) | 135 // Tells the GPU process to create a new command buffer that renders to an |
149 | 136 // offscreen frame buffer. If parent_route_id is not zero, the texture backing |
150 // Tells the GPU process to create a new command buffer that renders to an | 137 // the frame buffer is mapped into the corresponding parent command buffer's |
151 // offscreen frame buffer. If parent_route_id is not zero, the texture backing | 138 // namespace, with the name of parent_texture_id. This ID is in the parent's |
152 // the frame buffer is mapped into the corresponding parent command buffer's | 139 // namespace. |
153 // namespace, with the name of parent_texture_id. This ID is in the parent's | 140 IPC_SYNC_MESSAGE_CONTROL4_1(GpuChannelMsg_CreateOffscreenCommandBuffer, |
154 // namespace. | 141 int32, /* parent_route_id */ |
155 IPC_SYNC_MESSAGE_CONTROL4_1(GpuChannelMsg_CreateOffscreenCommandBuffer, | 142 gfx::Size, /* size */ |
156 int32, /* parent_route_id */ | 143 GPUCreateCommandBufferConfig, /* init_params */ |
157 gfx::Size, /* size */ | 144 uint32, /* parent_texture_id */ |
158 GPUCreateCommandBufferConfig, /* init_params */ | 145 int32 /* route_id */) |
159 uint32, /* parent_texture_id */ | 146 |
160 int32 /* route_id */) | 147 // The CommandBufferProxy sends this to the GpuCommandBufferStub in its |
161 | 148 // destructor, so that the stub deletes the actual CommandBufferService |
162 // The CommandBufferProxy sends this to the GpuCommandBufferStub in its | 149 // object that it's hosting. |
163 // destructor, so that the stub deletes the actual CommandBufferService | 150 // TODO(apatrick): Implement this. |
164 // object that it's hosting. | 151 IPC_SYNC_MESSAGE_CONTROL1_0(GpuChannelMsg_DestroyCommandBuffer, |
165 // TODO(apatrick): Implement this. | 152 int32 /* instance_id */) |
166 IPC_SYNC_MESSAGE_CONTROL1_0(GpuChannelMsg_DestroyCommandBuffer, | 153 |
167 int32 /* instance_id */) | 154 // Create hardware video decoder && associate it with the output |decoder_id|; |
168 | 155 // We need this to be control message because we had to map the GpuChannel and |
169 // Create hardware video decoder && associate it with the output |decoder_id|; | 156 // |decoder_id|. |
170 // We need this to be control message because we had to map the GpuChannel and | 157 IPC_MESSAGE_CONTROL2(GpuChannelMsg_CreateVideoDecoder, |
171 // |decoder_id|. | 158 int32, /* context_route_id */ |
172 IPC_MESSAGE_CONTROL2(GpuChannelMsg_CreateVideoDecoder, | 159 int32) /* decoder_id */ |
173 int32, /* context_route_id */ | 160 |
174 int32) /* decoder_id */ | 161 // Release all resource of the hardware video decoder which was assocaited |
175 | 162 // with the input |decoder_id|. |
176 // Release all resource of the hardware video decoder which was assocaited | 163 // TODO(hclam): This message needs to be asynchronous. |
177 // with the input |decoder_id|. | 164 IPC_SYNC_MESSAGE_CONTROL1_0(GpuChannelMsg_DestroyVideoDecoder, |
178 // TODO(hclam): This message needs to be asynchronous. | 165 int32 /* decoder_id */) |
179 IPC_SYNC_MESSAGE_CONTROL1_0(GpuChannelMsg_DestroyVideoDecoder, | |
180 int32 /* decoder_id */) | |
181 | |
182 IPC_END_MESSAGES(GpuChannel) | |
183 | 166 |
184 //------------------------------------------------------------------------------ | 167 //------------------------------------------------------------------------------ |
185 // GPU Command Buffer Messages | 168 // GPU Command Buffer Messages |
186 // These are messages between a renderer process to the GPU process relating to | 169 // These are messages between a renderer process to the GPU process relating to |
187 // a single OpenGL context. | 170 // a single OpenGL context. |
188 IPC_BEGIN_MESSAGES(GpuCommandBuffer) | 171 // Initialize a command buffer with the given number of command entries. |
189 // Initialize a command buffer with the given number of command entries. | 172 // Returns the shared memory handle for the command buffer mapped to the |
190 // Returns the shared memory handle for the command buffer mapped to the | 173 // calling process. |
191 // calling process. | 174 IPC_SYNC_MESSAGE_ROUTED1_1(GpuCommandBufferMsg_Initialize, |
192 IPC_SYNC_MESSAGE_ROUTED1_1(GpuCommandBufferMsg_Initialize, | 175 int32 /* size */, |
193 int32 /* size */, | 176 base::SharedMemoryHandle /* ring_buffer */) |
194 base::SharedMemoryHandle /* ring_buffer */) | 177 |
195 | 178 // Get the current state of the command buffer. |
196 // Get the current state of the command buffer. | 179 IPC_SYNC_MESSAGE_ROUTED0_1(GpuCommandBufferMsg_GetState, |
197 IPC_SYNC_MESSAGE_ROUTED0_1(GpuCommandBufferMsg_GetState, | 180 gpu::CommandBuffer::State /* state */) |
198 gpu::CommandBuffer::State /* state */) | 181 |
199 | 182 // Get the current state of the command buffer asynchronously. State is |
200 // Get the current state of the command buffer asynchronously. State is | 183 // returned via UpdateState message. |
201 // returned via UpdateState message. | 184 IPC_MESSAGE_ROUTED0(GpuCommandBufferMsg_AsyncGetState) |
202 IPC_MESSAGE_ROUTED0(GpuCommandBufferMsg_AsyncGetState) | 185 |
203 | 186 // Synchronize the put and get offsets of both processes. Caller passes its |
204 // Synchronize the put and get offsets of both processes. Caller passes its | 187 // current put offset. Current state (including get offset) is returned. |
205 // current put offset. Current state (including get offset) is returned. | 188 IPC_SYNC_MESSAGE_ROUTED1_1(GpuCommandBufferMsg_Flush, |
206 IPC_SYNC_MESSAGE_ROUTED1_1(GpuCommandBufferMsg_Flush, | 189 int32 /* put_offset */, |
207 int32 /* put_offset */, | 190 gpu::CommandBuffer::State /* state */) |
208 gpu::CommandBuffer::State /* state */) | 191 |
209 | 192 // Asynchronously synchronize the put and get offsets of both processes. |
210 // Asynchronously synchronize the put and get offsets of both processes. | 193 // Caller passes its current put offset. Current state (including get offset) |
211 // Caller passes its current put offset. Current state (including get offset) | 194 // is returned via an UpdateState message. |
212 // is returned via an UpdateState message. | 195 IPC_MESSAGE_ROUTED1(GpuCommandBufferMsg_AsyncFlush, |
213 IPC_MESSAGE_ROUTED1(GpuCommandBufferMsg_AsyncFlush, | 196 int32 /* put_offset */) |
214 int32 /* put_offset */) | 197 |
215 | 198 // Return the current state of the command buffer following a request via |
216 // Return the current state of the command buffer following a request via | 199 // an AsyncGetState or AsyncFlush message. (This message is sent from the |
217 // an AsyncGetState or AsyncFlush message. (This message is sent from the | 200 // GPU process to the renderer process.) |
218 // GPU process to the renderer process.) | 201 IPC_MESSAGE_ROUTED1(GpuCommandBufferMsg_UpdateState, |
219 IPC_MESSAGE_ROUTED1(GpuCommandBufferMsg_UpdateState, | 202 gpu::CommandBuffer::State /* state */) |
220 gpu::CommandBuffer::State /* state */) | 203 |
221 | 204 // Indicates that a SwapBuffers call has been issued. |
222 // Indicates that a SwapBuffers call has been issued. | 205 IPC_MESSAGE_ROUTED0(GpuCommandBufferMsg_SwapBuffers) |
223 IPC_MESSAGE_ROUTED0(GpuCommandBufferMsg_SwapBuffers) | 206 |
224 | 207 // Create a shared memory transfer buffer. Returns an id that can be used to |
225 // Create a shared memory transfer buffer. Returns an id that can be used to | 208 // identify the transfer buffer from a comment. |
226 // identify the transfer buffer from a comment. | 209 IPC_SYNC_MESSAGE_ROUTED1_1(GpuCommandBufferMsg_CreateTransferBuffer, |
227 IPC_SYNC_MESSAGE_ROUTED1_1(GpuCommandBufferMsg_CreateTransferBuffer, | 210 int32 /* size */, |
228 int32 /* size */, | 211 int32 /* id */) |
229 int32 /* id */) | 212 |
230 | 213 // Destroy a previously created transfer buffer. |
231 // Destroy a previously created transfer buffer. | 214 IPC_SYNC_MESSAGE_ROUTED1_0(GpuCommandBufferMsg_DestroyTransferBuffer, |
232 IPC_SYNC_MESSAGE_ROUTED1_0(GpuCommandBufferMsg_DestroyTransferBuffer, | 215 int32 /* id */) |
233 int32 /* id */) | 216 |
234 | 217 // Get the shared memory handle for a transfer buffer mapped to the callers |
235 // Get the shared memory handle for a transfer buffer mapped to the callers | 218 // process. |
236 // process. | 219 IPC_SYNC_MESSAGE_ROUTED1_2(GpuCommandBufferMsg_GetTransferBuffer, |
237 IPC_SYNC_MESSAGE_ROUTED1_2(GpuCommandBufferMsg_GetTransferBuffer, | 220 int32 /* id */, |
238 int32 /* id */, | 221 base::SharedMemoryHandle /* transfer_buffer */, |
239 base::SharedMemoryHandle /* transfer_buffer */, | 222 uint32 /* size */) |
240 uint32 /* size */) | 223 |
241 | 224 // Send from command buffer stub to proxy when window is invalid and must be |
242 // Send from command buffer stub to proxy when window is invalid and must be | 225 // repainted. |
243 // repainted. | 226 IPC_MESSAGE_ROUTED0(GpuCommandBufferMsg_NotifyRepaint) |
244 IPC_MESSAGE_ROUTED0(GpuCommandBufferMsg_NotifyRepaint) | 227 |
245 | 228 // Tells the GPU process to resize an offscreen frame buffer. |
246 // Tells the GPU process to resize an offscreen frame buffer. | 229 IPC_MESSAGE_ROUTED1(GpuCommandBufferMsg_ResizeOffscreenFrameBuffer, |
247 IPC_MESSAGE_ROUTED1(GpuCommandBufferMsg_ResizeOffscreenFrameBuffer, | 230 gfx::Size /* size */) |
248 gfx::Size /* size */) | |
249 | 231 |
250 #if defined(OS_MACOSX) | 232 #if defined(OS_MACOSX) |
251 // On Mac OS X the GPU plugin must be offscreen, because there is no | 233 // On Mac OS X the GPU plugin must be offscreen, because there is no |
252 // true cross-process window hierarchy. For this reason we must send | 234 // true cross-process window hierarchy. For this reason we must send |
253 // resize events explicitly to the command buffer stub so it can | 235 // resize events explicitly to the command buffer stub so it can |
254 // reallocate its backing store and send the new one back to the | 236 // reallocate its backing store and send the new one back to the |
255 // browser. This message is currently used only on 10.6 and later. | 237 // browser. This message is currently used only on 10.6 and later. |
256 IPC_MESSAGE_ROUTED1(GpuCommandBufferMsg_SetWindowSize, | 238 IPC_MESSAGE_ROUTED1(GpuCommandBufferMsg_SetWindowSize, |
257 gfx::Size /* size */) | 239 gfx::Size /* size */) |
258 #endif | 240 #endif |
259 | 241 |
260 IPC_END_MESSAGES(GpuCommandBuffer) | |
261 | |
262 //------------------------------------------------------------------------------ | 242 //------------------------------------------------------------------------------ |
263 // GPU Video Decoder Messages | 243 // GPU Video Decoder Messages |
264 // These messages are sent from Renderer process to GPU process. | 244 // These messages are sent from Renderer process to GPU process. |
265 IPC_BEGIN_MESSAGES(GpuVideoDecoder) | 245 // Initialize and configure GpuVideoDecoder asynchronously. |
266 // Initialize and configure GpuVideoDecoder asynchronously. | 246 IPC_MESSAGE_ROUTED1(GpuVideoDecoderMsg_Initialize, |
267 IPC_MESSAGE_ROUTED1(GpuVideoDecoderMsg_Initialize, | 247 GpuVideoDecoderInitParam) |
268 GpuVideoDecoderInitParam) | 248 |
269 | 249 // Destroy and release GpuVideoDecoder asynchronously. |
270 // Destroy and release GpuVideoDecoder asynchronously. | 250 IPC_MESSAGE_ROUTED0(GpuVideoDecoderMsg_Destroy) |
271 IPC_MESSAGE_ROUTED0(GpuVideoDecoderMsg_Destroy) | 251 |
272 | 252 // Start decoder flushing operation. |
273 // Start decoder flushing operation. | 253 IPC_MESSAGE_ROUTED0(GpuVideoDecoderMsg_Flush) |
274 IPC_MESSAGE_ROUTED0(GpuVideoDecoderMsg_Flush) | 254 |
275 | 255 // Tell the decoder to start prerolling. |
276 // Tell the decoder to start prerolling. | 256 IPC_MESSAGE_ROUTED0(GpuVideoDecoderMsg_Preroll) |
277 IPC_MESSAGE_ROUTED0(GpuVideoDecoderMsg_Preroll) | 257 |
278 | 258 // Send input buffer to GpuVideoDecoder. |
279 // Send input buffer to GpuVideoDecoder. | 259 IPC_MESSAGE_ROUTED1(GpuVideoDecoderMsg_EmptyThisBuffer, |
280 IPC_MESSAGE_ROUTED1(GpuVideoDecoderMsg_EmptyThisBuffer, | 260 GpuVideoDecoderInputBufferParam) |
281 GpuVideoDecoderInputBufferParam) | 261 |
282 | 262 // Ask the GPU process to produce a video frame with the ID. |
283 // Ask the GPU process to produce a video frame with the ID. | 263 IPC_MESSAGE_ROUTED1(GpuVideoDecoderMsg_ProduceVideoFrame, |
284 IPC_MESSAGE_ROUTED1(GpuVideoDecoderMsg_ProduceVideoFrame, | 264 int32) /* Video Frame ID */ |
285 int32) /* Video Frame ID */ | 265 |
286 | 266 // Sent from Renderer process to the GPU process to notify that textures are |
287 // Sent from Renderer process to the GPU process to notify that textures are | 267 // generated for a video frame. |
288 // generated for a video frame. | 268 IPC_MESSAGE_ROUTED2(GpuVideoDecoderMsg_VideoFrameAllocated, |
289 IPC_MESSAGE_ROUTED2(GpuVideoDecoderMsg_VideoFrameAllocated, | 269 int32, /* Video Frame ID */ |
290 int32, /* Video Frame ID */ | 270 std::vector<uint32>) /* Textures for video frame */ |
291 std::vector<uint32>) /* Textures for video frame */ | |
292 | |
293 IPC_END_MESSAGES(GpuVideoDecoder) | |
294 | 271 |
295 //------------------------------------------------------------------------------ | 272 //------------------------------------------------------------------------------ |
296 // GPU Video Decoder Host Messages | 273 // GPU Video Decoder Host Messages |
297 // These messages are sent from GPU process to Renderer process. | 274 // These messages are sent from GPU process to Renderer process. |
298 IPC_BEGIN_MESSAGES(GpuVideoDecoderHost) | 275 // Inform GpuVideoDecoderHost that a GpuVideoDecoder is created. |
299 // Inform GpuVideoDecoderHost that a GpuVideoDecoder is created. | 276 IPC_MESSAGE_ROUTED1(GpuVideoDecoderHostMsg_CreateVideoDecoderDone, |
300 IPC_MESSAGE_ROUTED1(GpuVideoDecoderHostMsg_CreateVideoDecoderDone, | 277 int32) /* decoder_id */ |
301 int32) /* decoder_id */ | 278 |
302 | 279 // Confirm GpuVideoDecoder had been initialized or failed to initialize. |
303 // Confirm GpuVideoDecoder had been initialized or failed to initialize. | 280 // TODO(hclam): Change this to Done instead of ACK. |
304 // TODO(hclam): Change this to Done instead of ACK. | 281 IPC_MESSAGE_ROUTED1(GpuVideoDecoderHostMsg_InitializeACK, |
305 IPC_MESSAGE_ROUTED1(GpuVideoDecoderHostMsg_InitializeACK, | 282 GpuVideoDecoderInitDoneParam) |
306 GpuVideoDecoderInitDoneParam) | 283 |
307 | 284 // Confrim GpuVideoDecoder had been destroyed properly. |
308 // Confrim GpuVideoDecoder had been destroyed properly. | 285 // TODO(hclam): Change this to Done instead of ACK. |
309 // TODO(hclam): Change this to Done instead of ACK. | 286 IPC_MESSAGE_ROUTED0(GpuVideoDecoderHostMsg_DestroyACK) |
310 IPC_MESSAGE_ROUTED0(GpuVideoDecoderHostMsg_DestroyACK) | 287 |
311 | 288 // Confirm decoder had been flushed. |
312 // Confirm decoder had been flushed. | 289 // TODO(hclam): Change this to Done instead of ACK. |
313 // TODO(hclam): Change this to Done instead of ACK. | 290 IPC_MESSAGE_ROUTED0(GpuVideoDecoderHostMsg_FlushACK) |
314 IPC_MESSAGE_ROUTED0(GpuVideoDecoderHostMsg_FlushACK) | 291 |
315 | 292 // Confirm preroll operation is done. |
316 // Confirm preroll operation is done. | 293 IPC_MESSAGE_ROUTED0(GpuVideoDecoderHostMsg_PrerollDone) |
317 IPC_MESSAGE_ROUTED0(GpuVideoDecoderHostMsg_PrerollDone) | 294 |
318 | 295 // GpuVideoDecoder has consumed input buffer from transfer buffer. |
319 // GpuVideoDecoder has consumed input buffer from transfer buffer. | 296 // TODO(hclam): Change this to Done instead of ACK. |
320 // TODO(hclam): Change this to Done instead of ACK. | 297 IPC_MESSAGE_ROUTED0(GpuVideoDecoderHostMsg_EmptyThisBufferACK) |
321 IPC_MESSAGE_ROUTED0(GpuVideoDecoderHostMsg_EmptyThisBufferACK) | 298 |
322 | 299 // GpuVideoDecoder require new input buffer. |
323 // GpuVideoDecoder require new input buffer. | 300 IPC_MESSAGE_ROUTED0(GpuVideoDecoderHostMsg_EmptyThisBufferDone) |
324 IPC_MESSAGE_ROUTED0(GpuVideoDecoderHostMsg_EmptyThisBufferDone) | 301 |
325 | 302 // GpuVideoDecoder reports that a video frame is ready to be consumed. |
326 // GpuVideoDecoder reports that a video frame is ready to be consumed. | 303 IPC_MESSAGE_ROUTED4(GpuVideoDecoderHostMsg_ConsumeVideoFrame, |
327 IPC_MESSAGE_ROUTED4(GpuVideoDecoderHostMsg_ConsumeVideoFrame, | 304 int32, /* Video Frame ID */ |
328 int32, /* Video Frame ID */ | 305 int64, /* Timestamp in microseconds */ |
329 int64, /* Timestamp in microseconds */ | 306 int64, /* Duration in microseconds */ |
330 int64, /* Duration in microseconds */ | 307 int32) /* Flags */ |
331 int32) /* Flags */ | 308 |
332 | 309 // Allocate video frames for output of the hardware video decoder. |
333 // Allocate video frames for output of the hardware video decoder. | 310 IPC_MESSAGE_ROUTED4(GpuVideoDecoderHostMsg_AllocateVideoFrames, |
334 IPC_MESSAGE_ROUTED4(GpuVideoDecoderHostMsg_AllocateVideoFrames, | 311 int32, /* Number of video frames to generate */ |
335 int32, /* Number of video frames to generate */ | 312 uint32, /* Width of the video frame */ |
336 uint32, /* Width of the video frame */ | 313 uint32, /* Height of the video frame */ |
337 uint32, /* Height of the video frame */ | 314 int32 /* Format of the video frame */) |
338 int32 /* Format of the video frame */) | 315 |
339 | 316 // Release all video frames allocated for a hardware video decoder. |
340 // Release all video frames allocated for a hardware video decoder. | 317 IPC_MESSAGE_ROUTED0(GpuVideoDecoderHostMsg_ReleaseAllVideoFrames) |
341 IPC_MESSAGE_ROUTED0(GpuVideoDecoderHostMsg_ReleaseAllVideoFrames) | 318 |
342 | 319 // GpuVideoDecoder report output format change. |
343 // GpuVideoDecoder report output format change. | 320 IPC_MESSAGE_ROUTED1(GpuVideoDecoderHostMsg_MediaFormatChange, |
344 IPC_MESSAGE_ROUTED1(GpuVideoDecoderHostMsg_MediaFormatChange, | 321 GpuVideoDecoderFormatChangeParam) |
345 GpuVideoDecoderFormatChangeParam) | 322 |
346 | 323 // GpuVideoDecoder report error. |
347 // GpuVideoDecoder report error. | 324 IPC_MESSAGE_ROUTED1(GpuVideoDecoderHostMsg_ErrorNotification, |
348 IPC_MESSAGE_ROUTED1(GpuVideoDecoderHostMsg_ErrorNotification, | 325 GpuVideoDecoderErrorInfoParam) |
349 GpuVideoDecoderErrorInfoParam) | |
350 | |
351 IPC_END_MESSAGES(GpuVideoDecoderHost) | |
OLD | NEW |