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// Allows for sharing of IPC param structures between BrowserPlugin code and
6// RenderFrame code. All these should be folded directly back into the IPCs in
7// frame_messages.h once BrowserPlugin has been fully converted over to use
8// the RenderFrame infrastructure.
9//
10// TODO(ajwong): Remove once BrowserPlugin has been converted to use
11// RenderFrames. http://crbug.com/330264
12
13#ifndef CONTENT_COMMON_FRAME_PARAM_MACROS_H_
14#define CONTENT_COMMON_FRAME_PARAM_MACROS_H_
15
16#include "cc/output/compositor_frame.h"
17#include "cc/output/compositor_frame_ack.h"
18#include "content/public/common/common_param_traits.h"
19#include "ipc/ipc_message_macros.h"
20#include "ui/gfx/ipc/gfx_param_traits.h"
21
22#undef IPC_MESSAGE_EXPORT
23#define IPC_MESSAGE_EXPORT CONTENT_EXPORT
24
25IPC_STRUCT_BEGIN(FrameMsg_BuffersSwapped_Params)
26  IPC_STRUCT_MEMBER(int, gpu_host_id)
27  IPC_STRUCT_MEMBER(int, gpu_route_id)
28  IPC_STRUCT_MEMBER(gpu::Mailbox, mailbox)
29  IPC_STRUCT_MEMBER(gfx::Size, size)
30IPC_STRUCT_END()
31
32IPC_STRUCT_BEGIN(FrameMsg_CompositorFrameSwapped_Params)
33  // Specifies which RenderWidget produced the CompositorFrame.
34  IPC_STRUCT_MEMBER(int, producing_host_id)
35  IPC_STRUCT_MEMBER(int, producing_route_id)
36
37  IPC_STRUCT_MEMBER(cc::CompositorFrame, frame)
38  IPC_STRUCT_MEMBER(uint32, output_surface_id)
39  IPC_STRUCT_MEMBER(base::SharedMemoryHandle, shared_memory_handle)
40IPC_STRUCT_END()
41
42IPC_STRUCT_BEGIN(FrameHostMsg_BuffersSwappedACK_Params)
43  IPC_STRUCT_MEMBER(int, gpu_host_id)
44  IPC_STRUCT_MEMBER(int, gpu_route_id)
45  IPC_STRUCT_MEMBER(gpu::Mailbox, mailbox)
46  IPC_STRUCT_MEMBER(uint32, sync_point)
47IPC_STRUCT_END()
48
49IPC_STRUCT_BEGIN(FrameHostMsg_CompositorFrameSwappedACK_Params)
50  // Specifies which RenderWidget produced the CompositorFrame.
51  IPC_STRUCT_MEMBER(int, producing_host_id)
52  IPC_STRUCT_MEMBER(int, producing_route_id)
53
54  IPC_STRUCT_MEMBER(uint32, output_surface_id)
55  IPC_STRUCT_MEMBER(cc::CompositorFrameAck, ack)
56IPC_STRUCT_END()
57
58IPC_STRUCT_BEGIN(FrameHostMsg_ReclaimCompositorResources_Params)
59  IPC_STRUCT_MEMBER(int, route_id)
60  IPC_STRUCT_MEMBER(uint32, output_surface_id)
61  IPC_STRUCT_MEMBER(int, renderer_host_id)
62  IPC_STRUCT_MEMBER(cc::CompositorFrameAck, ack)
63IPC_STRUCT_END()
64
65#endif  // CONTENT_COMMON_FRAME_PARAM_MACROS_H_
66