| 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 |