OLD | NEW |
| (Empty) |
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 | |
3 // found in the LICENSE file. | |
4 | |
5 #include "base/string_piece.h" | |
6 #include "base/sys_string_conversions.h" | |
7 #include "chrome/common/gpu_create_command_buffer_config.h" | |
8 #include "chrome/common/gpu_info.h" | |
9 #include "chrome/common/dx_diag_node.h" | |
10 #include "ipc/ipc_channel_handle.h" | |
11 #include "ui/gfx/rect.h" | |
12 #include "ui/gfx/size.h" | |
13 | |
14 #define IPC_MESSAGE_IMPL | |
15 #include "chrome/common/gpu_messages.h" | |
16 | |
17 #if defined(OS_MACOSX) | |
18 | |
19 // Parameters for the GpuHostMsg_AcceleratedSurfaceSetIOSurface | |
20 // message, which has too many parameters to be sent with the | |
21 // predefined IPC macros. | |
22 GpuHostMsg_AcceleratedSurfaceSetIOSurface_Params:: | |
23 GpuHostMsg_AcceleratedSurfaceSetIOSurface_Params() | |
24 : renderer_id(0), | |
25 render_view_id(0), | |
26 window(NULL), | |
27 width(0), | |
28 height(0), | |
29 identifier(0) { | |
30 } | |
31 | |
32 GpuHostMsg_AcceleratedSurfaceBuffersSwapped_Params:: | |
33 GpuHostMsg_AcceleratedSurfaceBuffersSwapped_Params() | |
34 : renderer_id(0), | |
35 render_view_id(0), | |
36 window(NULL), | |
37 surface_id(0), | |
38 route_id(0), | |
39 swap_buffers_count(0) { | |
40 } | |
41 #endif | |
42 | |
43 namespace IPC { | |
44 | |
45 #if defined(OS_MACOSX) | |
46 | |
47 void ParamTraits<GpuHostMsg_AcceleratedSurfaceSetIOSurface_Params> ::Write( | |
48 Message* m, | |
49 const param_type& p) { | |
50 WriteParam(m, p.renderer_id); | |
51 WriteParam(m, p.render_view_id); | |
52 WriteParam(m, p.window); | |
53 WriteParam(m, p.width); | |
54 WriteParam(m, p.height); | |
55 WriteParam(m, p.identifier); | |
56 } | |
57 | |
58 bool ParamTraits<GpuHostMsg_AcceleratedSurfaceSetIOSurface_Params> ::Read( | |
59 const Message* m, | |
60 void** iter, | |
61 param_type* p) { | |
62 return ReadParam(m, iter, &p->renderer_id) && | |
63 ReadParam(m, iter, &p->render_view_id) && | |
64 ReadParam(m, iter, &p->window) && | |
65 ReadParam(m, iter, &p->width) && | |
66 ReadParam(m, iter, &p->height) && | |
67 ReadParam(m, iter, &p->identifier); | |
68 } | |
69 | |
70 void ParamTraits<GpuHostMsg_AcceleratedSurfaceSetIOSurface_Params> ::Log( | |
71 const param_type& p, | |
72 std::string* l) { | |
73 l->append("("); | |
74 LogParam(p.renderer_id, l); | |
75 l->append(", "); | |
76 LogParam(p.render_view_id, l); | |
77 l->append(", "); | |
78 LogParam(p.window, l); | |
79 l->append(", "); | |
80 LogParam(p.width, l); | |
81 l->append(", "); | |
82 LogParam(p.height, l); | |
83 l->append(", "); | |
84 LogParam(p.identifier, l); | |
85 l->append(")"); | |
86 } | |
87 | |
88 void ParamTraits<GpuHostMsg_AcceleratedSurfaceBuffersSwapped_Params> ::Write( | |
89 Message* m, | |
90 const param_type& p) { | |
91 WriteParam(m, p.renderer_id); | |
92 WriteParam(m, p.render_view_id); | |
93 WriteParam(m, p.window); | |
94 WriteParam(m, p.surface_id); | |
95 WriteParam(m, p.route_id); | |
96 WriteParam(m, p.swap_buffers_count); | |
97 } | |
98 | |
99 bool ParamTraits<GpuHostMsg_AcceleratedSurfaceBuffersSwapped_Params> ::Read( | |
100 const Message* m, | |
101 void** iter, | |
102 param_type* p) { | |
103 return ReadParam(m, iter, &p->renderer_id) && | |
104 ReadParam(m, iter, &p->render_view_id) && | |
105 ReadParam(m, iter, &p->window) && | |
106 ReadParam(m, iter, &p->surface_id) && | |
107 ReadParam(m, iter, &p->route_id) && | |
108 ReadParam(m, iter, &p->swap_buffers_count); | |
109 } | |
110 | |
111 void ParamTraits<GpuHostMsg_AcceleratedSurfaceBuffersSwapped_Params> ::Log( | |
112 const param_type& p, | |
113 std::string* l) { | |
114 l->append("("); | |
115 LogParam(p.renderer_id, l); | |
116 l->append(", "); | |
117 LogParam(p.render_view_id, l); | |
118 l->append(", "); | |
119 LogParam(p.window, l); | |
120 l->append(", "); | |
121 LogParam(p.surface_id, l); | |
122 l->append(", "); | |
123 LogParam(p.route_id, l); | |
124 l->append(", "); | |
125 LogParam(p.swap_buffers_count, l); | |
126 l->append(")"); | |
127 } | |
128 #endif // if defined(OS_MACOSX) | |
129 | |
130 void ParamTraits<GPUInfo> ::Write(Message* m, const param_type& p) { | |
131 WriteParam(m, static_cast<int32>(p.level)); | |
132 WriteParam(m, p.initialization_time); | |
133 WriteParam(m, p.vendor_id); | |
134 WriteParam(m, p.device_id); | |
135 WriteParam(m, p.driver_vendor); | |
136 WriteParam(m, p.driver_version); | |
137 WriteParam(m, p.driver_date); | |
138 WriteParam(m, p.pixel_shader_version); | |
139 WriteParam(m, p.vertex_shader_version); | |
140 WriteParam(m, p.gl_version); | |
141 WriteParam(m, p.gl_version_string); | |
142 WriteParam(m, p.gl_vendor); | |
143 WriteParam(m, p.gl_renderer); | |
144 WriteParam(m, p.gl_extensions); | |
145 WriteParam(m, p.can_lose_context); | |
146 WriteParam(m, p.collection_error); | |
147 | |
148 #if defined(OS_WIN) | |
149 ParamTraits<DxDiagNode> ::Write(m, p.dx_diagnostics); | |
150 #endif | |
151 } | |
152 | |
153 bool ParamTraits<GPUInfo> ::Read(const Message* m, void** iter, param_type* p) { | |
154 return | |
155 ReadParam(m, iter, &p->level) && | |
156 ReadParam(m, iter, &p->initialization_time) && | |
157 ReadParam(m, iter, &p->vendor_id) && | |
158 ReadParam(m, iter, &p->device_id) && | |
159 ReadParam(m, iter, &p->driver_vendor) && | |
160 ReadParam(m, iter, &p->driver_version) && | |
161 ReadParam(m, iter, &p->driver_date) && | |
162 ReadParam(m, iter, &p->pixel_shader_version) && | |
163 ReadParam(m, iter, &p->vertex_shader_version) && | |
164 ReadParam(m, iter, &p->gl_version) && | |
165 ReadParam(m, iter, &p->gl_version_string) && | |
166 ReadParam(m, iter, &p->gl_vendor) && | |
167 ReadParam(m, iter, &p->gl_renderer) && | |
168 ReadParam(m, iter, &p->gl_extensions) && | |
169 ReadParam(m, iter, &p->can_lose_context) && | |
170 ReadParam(m, iter, &p->collection_error) && | |
171 #if defined(OS_WIN) | |
172 ReadParam(m, iter, &p->dx_diagnostics); | |
173 #else | |
174 true; | |
175 #endif | |
176 } | |
177 | |
178 void ParamTraits<GPUInfo> ::Log(const param_type& p, std::string* l) { | |
179 l->append(base::StringPrintf("<GPUInfo> %d %d %x %x %s %s %s %x %x %x %d", | |
180 p.level, | |
181 static_cast<int32>( | |
182 p.initialization_time.InMilliseconds()), | |
183 p.vendor_id, | |
184 p.device_id, | |
185 p.driver_vendor.c_str(), | |
186 p.driver_version.c_str(), | |
187 p.driver_date.c_str(), | |
188 p.pixel_shader_version, | |
189 p.vertex_shader_version, | |
190 p.gl_version, | |
191 p.can_lose_context)); | |
192 } | |
193 | |
194 | |
195 void ParamTraits<GPUInfo::Level> ::Write(Message* m, const param_type& p) { | |
196 WriteParam(m, static_cast<int32>(p)); | |
197 } | |
198 | |
199 bool ParamTraits<GPUInfo::Level> ::Read(const Message* m, | |
200 void** iter, | |
201 param_type* p) { | |
202 int32 level; | |
203 bool ret = ReadParam(m, iter, &level); | |
204 *p = static_cast<GPUInfo::Level>(level); | |
205 return ret; | |
206 } | |
207 | |
208 void ParamTraits<GPUInfo::Level> ::Log(const param_type& p, std::string* l) { | |
209 LogParam(static_cast<int32>(p), l); | |
210 } | |
211 | |
212 void ParamTraits<DxDiagNode> ::Write(Message* m, const param_type& p) { | |
213 WriteParam(m, p.values); | |
214 WriteParam(m, p.children); | |
215 } | |
216 | |
217 bool ParamTraits<DxDiagNode> ::Read(const Message* m, | |
218 void** iter, | |
219 param_type* p) { | |
220 bool ret = ReadParam(m, iter, &p->values); | |
221 ret = ret && ReadParam(m, iter, &p->children); | |
222 return ret; | |
223 } | |
224 | |
225 void ParamTraits<DxDiagNode> ::Log(const param_type& p, std::string* l) { | |
226 l->append("<DxDiagNode>"); | |
227 } | |
228 | |
229 void ParamTraits<GPUCreateCommandBufferConfig> ::Write( | |
230 Message* m, const param_type& p) { | |
231 WriteParam(m, p.allowed_extensions); | |
232 WriteParam(m, p.attribs); | |
233 } | |
234 | |
235 bool ParamTraits<GPUCreateCommandBufferConfig> ::Read( | |
236 const Message* m, void** iter, param_type* p) { | |
237 if (!ReadParam(m, iter, &p->allowed_extensions) || | |
238 !ReadParam(m, iter, &p->attribs)) { | |
239 return false; | |
240 } | |
241 return true; | |
242 } | |
243 | |
244 void ParamTraits<GPUCreateCommandBufferConfig> ::Log( | |
245 const param_type& p, std::string* l) { | |
246 l->append("<GPUCreateCommandBufferConfig>"); | |
247 } | |
248 | |
249 } // namespace IPC | |
OLD | NEW |