Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(171)

Side by Side Diff: chrome/common/gpu_messages_internal.h

Issue 6343006: Route IPC through browser when creating a viewable command buffer. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix nit. Created 9 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 #include <vector> 5 #include <vector>
6 #include <string> 6 #include <string>
7 7
8 #include "base/shared_memory.h" 8 #include "base/shared_memory.h"
9 #include "chrome/common/gpu_video_common.h" 9 #include "chrome/common/gpu_video_common.h"
10 #include "ipc/ipc_message_macros.h" 10 #include "ipc/ipc_message_macros.h"
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 IPC_MESSAGE_CONTROL1(GpuMsg_CloseChannel, 46 IPC_MESSAGE_CONTROL1(GpuMsg_CloseChannel,
47 IPC::ChannelHandle /* channel_handle */) 47 IPC::ChannelHandle /* channel_handle */)
48 48
49 // Provides a synchronization point to guarantee that the processing of 49 // Provides a synchronization point to guarantee that the processing of
50 // previous asynchronous messages (i.e., GpuMsg_EstablishChannel) has 50 // previous asynchronous messages (i.e., GpuMsg_EstablishChannel) has
51 // completed. (This message can't be synchronous because the 51 // completed. (This message can't be synchronous because the
52 // GpuProcessHost uses an IPC::ChannelProxy, which sends all messages 52 // GpuProcessHost uses an IPC::ChannelProxy, which sends all messages
53 // asynchronously.) Results in a GpuHostMsg_SynchronizeReply. 53 // asynchronously.) Results in a GpuHostMsg_SynchronizeReply.
54 IPC_MESSAGE_CONTROL0(GpuMsg_Synchronize) 54 IPC_MESSAGE_CONTROL0(GpuMsg_Synchronize)
55 55
56 // Tells the GPU process to create a new command buffer that renders directly
57 // to a native view. A corresponding GpuCommandBufferStub is created.
58 IPC_MESSAGE_CONTROL4(GpuMsg_CreateViewCommandBuffer,
59 gfx::PluginWindowHandle, /* view */
60 int32, /* render_view_id */
61 int32, /* renderer_id */
62 GPUCreateCommandBufferConfig /* init_params */)
63
56 // Tells the GPU process to create a context for collecting graphics card 64 // Tells the GPU process to create a context for collecting graphics card
57 // information. 65 // information.
58 IPC_MESSAGE_CONTROL0(GpuMsg_CollectGraphicsInfo) 66 IPC_MESSAGE_CONTROL0(GpuMsg_CollectGraphicsInfo)
59 67
60 #if defined(OS_MACOSX) 68 #if defined(OS_MACOSX)
61 // Tells the GPU process that the browser process handled the swap 69 // Tells the GPU process that the browser process handled the swap
62 // buffers request with the given number. Note that it is possible 70 // buffers request with the given number. Note that it is possible
63 // for the browser process to coalesce frames; it is not guaranteed 71 // for the browser process to coalesce frames; it is not guaranteed
64 // that every GpuHostMsg_AcceleratedSurfaceBuffersSwapped message 72 // that every GpuHostMsg_AcceleratedSurfaceBuffersSwapped message
65 // will result in a buffer swap on the browser side. 73 // will result in a buffer swap on the browser side.
(...skipping 17 matching lines...) Expand all
83 IPC_MESSAGE_CONTROL0(GpuMsg_Hang) 91 IPC_MESSAGE_CONTROL0(GpuMsg_Hang)
84 92
85 //------------------------------------------------------------------------------ 93 //------------------------------------------------------------------------------
86 // GPU Host Messages 94 // GPU Host Messages
87 // These are messages from the GPU process to the browser. 95 // These are messages from the GPU process to the browser.
88 // Response to a GpuHostMsg_EstablishChannel message. 96 // Response to a GpuHostMsg_EstablishChannel message.
89 IPC_MESSAGE_CONTROL2(GpuHostMsg_ChannelEstablished, 97 IPC_MESSAGE_CONTROL2(GpuHostMsg_ChannelEstablished,
90 IPC::ChannelHandle, /* channel_handle */ 98 IPC::ChannelHandle, /* channel_handle */
91 GPUInfo /* GPU logging stats */) 99 GPUInfo /* GPU logging stats */)
92 100
101 // Respond to a GpuMsg_CreateViewCommandBuffer message.
102 IPC_MESSAGE_CONTROL1(GpuHostMsg_CommandBufferCreated,
103 int32 /* route_id */)
104
105 // Free the browser resources associated with the command buffer
106 // (typically a window that was drawn into).
107 IPC_MESSAGE_CONTROL3(GpuHostMsg_DestroyCommandBuffer,
108 gfx::PluginWindowHandle, /* view */
109 int32, /* render_view_id */
110 int32 /* renderer_id */)
111
112 // Response to a GpuMsg_CollectGraphicsInfo.
113 IPC_MESSAGE_CONTROL1(GpuHostMsg_GraphicsInfoCollected,
114 GPUInfo /* GPU logging stats */)
115
93 // Response to a GpuMsg_Synchronize message. 116 // Response to a GpuMsg_Synchronize message.
94 IPC_MESSAGE_CONTROL0(GpuHostMsg_SynchronizeReply) 117 IPC_MESSAGE_CONTROL0(GpuHostMsg_SynchronizeReply)
95 118
96 // Response to a GpuMsg_CollectGraphicsInfo.
97 IPC_MESSAGE_CONTROL1(GpuHostMsg_GraphicsInfoCollected,
98 GPUInfo /* GPU logging stats */)
99
100 #if defined(OS_LINUX) 119 #if defined(OS_LINUX)
101 // Get the XID for a view ID. 120 // Resize the window that is being drawn into. It's important that this
102 IPC_SYNC_MESSAGE_CONTROL1_1(GpuHostMsg_GetViewXID, 121 // resize be synchronized with the swapping of the front and back buffers.
103 gfx::NativeViewId, /* view */
104 unsigned long /* xid */)
105
106 // Release the lock on the window.
107 // If the associated view has been destroyed, destroy the window.
108 IPC_MESSAGE_CONTROL1(GpuHostMsg_ReleaseXID,
109 unsigned long /* xid */)
110
111 IPC_SYNC_MESSAGE_CONTROL2_1(GpuHostMsg_ResizeXID, 122 IPC_SYNC_MESSAGE_CONTROL2_1(GpuHostMsg_ResizeXID,
112 unsigned long, /* xid */ 123 unsigned long, /* xid */
113 gfx::Size, /* size */ 124 gfx::Size, /* size */
114 bool /* success */) 125 bool /* success */)
115
116 #elif defined(OS_MACOSX) 126 #elif defined(OS_MACOSX)
117 // This message, used on Mac OS X 10.6 and later (where IOSurface is 127 // This message, used on Mac OS X 10.6 and later (where IOSurface is
118 // supported), is sent from the GPU process to the browser to indicate that a 128 // supported), is sent from the GPU process to the browser to indicate that a
119 // new backing store was allocated for the given "window" (fake 129 // new backing store was allocated for the given "window" (fake
120 // PluginWindowHandle). The renderer ID and render view ID are needed in 130 // PluginWindowHandle). The renderer ID and render view ID are needed in
121 // order to uniquely identify the RenderWidgetHostView on the browser side. 131 // order to uniquely identify the RenderWidgetHostView on the browser side.
122 IPC_MESSAGE_CONTROL1(GpuHostMsg_AcceleratedSurfaceSetIOSurface, 132 IPC_MESSAGE_CONTROL1(GpuHostMsg_AcceleratedSurfaceSetIOSurface,
123 GpuHostMsg_AcceleratedSurfaceSetIOSurface_Params) 133 GpuHostMsg_AcceleratedSurfaceSetIOSurface_Params)
124 134
125 // This message notifies the browser process that the renderer 135 // This message notifies the browser process that the renderer
126 // swapped the buffers associated with the given "window", which 136 // swapped the buffers associated with the given "window", which
127 // should cause the browser to redraw the compositor's contents. 137 // should cause the browser to redraw the compositor's contents.
128 IPC_MESSAGE_CONTROL1(GpuHostMsg_AcceleratedSurfaceBuffersSwapped, 138 IPC_MESSAGE_CONTROL1(GpuHostMsg_AcceleratedSurfaceBuffersSwapped,
129 GpuHostMsg_AcceleratedSurfaceBuffersSwapped_Params) 139 GpuHostMsg_AcceleratedSurfaceBuffersSwapped_Params)
130 #elif defined(OS_WIN) 140 #elif defined(OS_WIN)
131 // Get the HWND for the compositor window and if necessary, create it
132 IPC_SYNC_MESSAGE_CONTROL2_1(GpuHostMsg_GetCompositorHostWindow,
133 int32, /* renderer_id */
134 int32, /* render_view_id */
135 gfx::PluginWindowHandle /* compositor_host_id */)
136
137 IPC_MESSAGE_CONTROL2(GpuHostMsg_ScheduleComposite, 141 IPC_MESSAGE_CONTROL2(GpuHostMsg_ScheduleComposite,
138 int32, /* renderer_id */ 142 int32, /* renderer_id */
139 int32 /* render_view_id */) 143 int32 /* render_view_id */)
140 #endif 144 #endif
141 145
142 //------------------------------------------------------------------------------ 146 //------------------------------------------------------------------------------
143 // GPU Channel Messages 147 // GPU Channel Messages
144 // These are messages from a renderer process to the GPU process. 148 // These are messages from a renderer process to the GPU process.
145 // Tells the GPU process to create a new command buffer that renders directly
146 // to a native view. The |render_view_id| is currently needed only on Mac OS
147 // X in order to identify the window on the browser side into which the
148 // rendering results go. A corresponding GpuCommandBufferStub is created.
149 IPC_SYNC_MESSAGE_CONTROL3_1(GpuChannelMsg_CreateViewCommandBuffer,
150 gfx::NativeViewId, /* view */
151 int32, /* render_view_id */
152 GPUCreateCommandBufferConfig, /* init_params */
153 int32 /* route_id */)
154 149
155 // Tells the GPU process to create a new command buffer that renders to an 150 // Tells the GPU process to create a new command buffer that renders to an
156 // offscreen frame buffer. If parent_route_id is not zero, the texture backing 151 // offscreen frame buffer. If parent_route_id is not zero, the texture backing
157 // the frame buffer is mapped into the corresponding parent command buffer's 152 // the frame buffer is mapped into the corresponding parent command buffer's
158 // namespace, with the name of parent_texture_id. This ID is in the parent's 153 // namespace, with the name of parent_texture_id. This ID is in the parent's
159 // namespace. 154 // namespace.
160 IPC_SYNC_MESSAGE_CONTROL4_1(GpuChannelMsg_CreateOffscreenCommandBuffer, 155 IPC_SYNC_MESSAGE_CONTROL4_1(GpuChannelMsg_CreateOffscreenCommandBuffer,
161 int32, /* parent_route_id */ 156 int32, /* parent_route_id */
162 gfx::Size, /* size */ 157 gfx::Size, /* size */
163 GPUCreateCommandBufferConfig, /* init_params */ 158 GPUCreateCommandBufferConfig, /* init_params */
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after
336 // Release all video frames allocated for a hardware video decoder. 331 // Release all video frames allocated for a hardware video decoder.
337 IPC_MESSAGE_ROUTED0(GpuVideoDecoderHostMsg_ReleaseAllVideoFrames) 332 IPC_MESSAGE_ROUTED0(GpuVideoDecoderHostMsg_ReleaseAllVideoFrames)
338 333
339 // GpuVideoDecoder report output format change. 334 // GpuVideoDecoder report output format change.
340 IPC_MESSAGE_ROUTED1(GpuVideoDecoderHostMsg_MediaFormatChange, 335 IPC_MESSAGE_ROUTED1(GpuVideoDecoderHostMsg_MediaFormatChange,
341 GpuVideoDecoderFormatChangeParam) 336 GpuVideoDecoderFormatChangeParam)
342 337
343 // GpuVideoDecoder report error. 338 // GpuVideoDecoder report error.
344 IPC_MESSAGE_ROUTED1(GpuVideoDecoderHostMsg_ErrorNotification, 339 IPC_MESSAGE_ROUTED1(GpuVideoDecoderHostMsg_ErrorNotification,
345 GpuVideoDecoderErrorInfoParam) 340 GpuVideoDecoderErrorInfoParam)
OLDNEW
« no previous file with comments | « chrome/browser/renderer_host/render_message_filter.cc ('k') | chrome/common/render_messages_internal.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698