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 #include "chrome/common/gpu_messages.h" | 5 #include "chrome/common/gpu_messages.h" |
6 | 6 |
7 #include "chrome/common/gpu_create_command_buffer_config.h" | 7 #include "chrome/common/gpu_create_command_buffer_config.h" |
8 #include "chrome/common/gpu_info.h" | 8 #include "chrome/common/gpu_info.h" |
9 #include "chrome/common/dx_diag_node.h" | 9 #include "chrome/common/dx_diag_node.h" |
10 #include "gfx/rect.h" | 10 #include "gfx/rect.h" |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
74 l->append(", "); | 74 l->append(", "); |
75 LogParam(p.height, l); | 75 LogParam(p.height, l); |
76 l->append(", "); | 76 l->append(", "); |
77 LogParam(p.identifier, l); | 77 LogParam(p.identifier, l); |
78 l->append(")"); | 78 l->append(")"); |
79 } | 79 } |
80 | 80 |
81 #endif // if defined(OS_MACOSX) | 81 #endif // if defined(OS_MACOSX) |
82 | 82 |
83 void ParamTraits<GPUInfo> ::Write(Message* m, const param_type& p) { | 83 void ParamTraits<GPUInfo> ::Write(Message* m, const param_type& p) { |
84 ParamTraits<base::TimeDelta> ::Write(m, p.initialization_time()); | 84 WriteParam(m, static_cast<int32>(p.progress())); |
85 m->WriteUInt32(p.vendor_id()); | 85 WriteParam(m, p.initialization_time()); |
86 m->WriteUInt32(p.device_id()); | 86 WriteParam(m, p.vendor_id()); |
87 m->WriteWString(p.driver_version()); | 87 WriteParam(m, p.device_id()); |
88 m->WriteUInt32(p.pixel_shader_version()); | 88 WriteParam(m, p.driver_version()); |
89 m->WriteUInt32(p.vertex_shader_version()); | 89 WriteParam(m, p.pixel_shader_version()); |
90 m->WriteUInt32(p.gl_version()); | 90 WriteParam(m, p.vertex_shader_version()); |
91 m->WriteBool(p.can_lose_context()); | 91 WriteParam(m, p.gl_version()); |
| 92 WriteParam(m, p.can_lose_context()); |
92 | 93 |
93 #if defined(OS_WIN) | 94 #if defined(OS_WIN) |
94 ParamTraits<DxDiagNode> ::Write(m, p.dx_diagnostics()); | 95 ParamTraits<DxDiagNode> ::Write(m, p.dx_diagnostics()); |
95 #endif | 96 #endif |
96 } | 97 } |
97 | 98 |
98 bool ParamTraits<GPUInfo> ::Read(const Message* m, void** iter, param_type* p) { | 99 bool ParamTraits<GPUInfo> ::Read(const Message* m, void** iter, param_type* p) { |
| 100 int32 progress; |
99 base::TimeDelta initialization_time; | 101 base::TimeDelta initialization_time; |
100 uint32 vendor_id; | 102 uint32 vendor_id; |
101 uint32 device_id; | 103 uint32 device_id; |
102 std::wstring driver_version; | 104 std::wstring driver_version; |
103 uint32 pixel_shader_version; | 105 uint32 pixel_shader_version; |
104 uint32 vertex_shader_version; | 106 uint32 vertex_shader_version; |
105 uint32 gl_version; | 107 uint32 gl_version; |
106 bool can_lose_context; | 108 bool can_lose_context; |
107 bool ret = ParamTraits<base::TimeDelta> ::Read(m, iter, &initialization_time); | 109 bool ret = ReadParam(m, iter, &progress); |
108 ret = ret && m->ReadUInt32(iter, &vendor_id); | 110 ret = ret && ReadParam(m, iter, &initialization_time); |
109 ret = ret && m->ReadUInt32(iter, &device_id); | 111 ret = ret && ReadParam(m, iter, &vendor_id); |
110 ret = ret && m->ReadWString(iter, &driver_version); | 112 ret = ret && ReadParam(m, iter, &device_id); |
111 ret = ret && m->ReadUInt32(iter, &pixel_shader_version); | 113 ret = ret && ReadParam(m, iter, &driver_version); |
112 ret = ret && m->ReadUInt32(iter, &vertex_shader_version); | 114 ret = ret && ReadParam(m, iter, &pixel_shader_version); |
113 ret = ret && m->ReadUInt32(iter, &gl_version); | 115 ret = ret && ReadParam(m, iter, &vertex_shader_version); |
114 ret = ret && m->ReadBool(iter, &can_lose_context); | 116 ret = ret && ReadParam(m, iter, &gl_version); |
| 117 ret = ret && ReadParam(m, iter, &can_lose_context); |
| 118 p->SetProgress(static_cast<GPUInfo::Progress>(progress)); |
115 if (!ret) | 119 if (!ret) |
116 return false; | 120 return false; |
117 | 121 |
118 p->SetInitializationTime(initialization_time); | 122 p->SetInitializationTime(initialization_time); |
119 p->SetGraphicsInfo(vendor_id, | 123 p->SetGraphicsInfo(vendor_id, |
120 device_id, | 124 device_id, |
121 driver_version, | 125 driver_version, |
122 pixel_shader_version, | 126 pixel_shader_version, |
123 vertex_shader_version, | 127 vertex_shader_version, |
124 gl_version, | 128 gl_version, |
125 can_lose_context); | 129 can_lose_context); |
126 | 130 |
127 #if defined(OS_WIN) | 131 #if defined(OS_WIN) |
128 DxDiagNode dx_diagnostics; | 132 DxDiagNode dx_diagnostics; |
129 ret = ret && ParamTraits<DxDiagNode> ::Read(m, iter, &dx_diagnostics); | 133 if (!ReadParam(m, iter, &dx_diagnostics)) |
| 134 return false; |
| 135 |
130 p->SetDxDiagnostics(dx_diagnostics); | 136 p->SetDxDiagnostics(dx_diagnostics); |
131 #endif | 137 #endif |
132 | 138 |
133 return ret; | 139 return true; |
134 } | 140 } |
135 | 141 |
136 void ParamTraits<GPUInfo> ::Log(const param_type& p, std::string* l) { | 142 void ParamTraits<GPUInfo> ::Log(const param_type& p, std::string* l) { |
137 l->append(base::StringPrintf("<GPUInfo> %d %x %x %ls %d", | 143 l->append(base::StringPrintf("<GPUInfo> %d %d %x %x %ls %d", |
| 144 p.progress(), |
138 static_cast<int32>( | 145 static_cast<int32>( |
139 p.initialization_time().InMilliseconds()), | 146 p.initialization_time().InMilliseconds()), |
140 p.vendor_id(), | 147 p.vendor_id(), |
141 p.device_id(), | 148 p.device_id(), |
142 p.driver_version().c_str(), | 149 p.driver_version().c_str(), |
143 p.can_lose_context())); | 150 p.can_lose_context())); |
144 } | 151 } |
145 | 152 |
146 void ParamTraits<DxDiagNode> ::Write(Message* m, const param_type& p) { | 153 void ParamTraits<DxDiagNode> ::Write(Message* m, const param_type& p) { |
147 ParamTraits<std::map<std::string, std::string> >::Write(m, p.values); | 154 WriteParam(m, p.values); |
148 ParamTraits<std::map<std::string, DxDiagNode> >::Write(m, p.children); | 155 WriteParam(m, p.children); |
149 } | 156 } |
150 | 157 |
151 bool ParamTraits<DxDiagNode> ::Read(const Message* m, | 158 bool ParamTraits<DxDiagNode> ::Read(const Message* m, |
152 void** iter, | 159 void** iter, |
153 param_type* p) { | 160 param_type* p) { |
154 bool ret = ParamTraits<std::map<std::string, std::string> >::Read( | 161 bool ret = ReadParam(m, iter, &p->values); |
155 m, | 162 ret = ret && ReadParam(m, iter, &p->children); |
156 iter, | |
157 &p->values); | |
158 ret = ret && ParamTraits<std::map<std::string, DxDiagNode> >::Read( | |
159 m, | |
160 iter, | |
161 &p->children); | |
162 return ret; | 163 return ret; |
163 } | 164 } |
164 | 165 |
165 void ParamTraits<DxDiagNode> ::Log(const param_type& p, std::string* l) { | 166 void ParamTraits<DxDiagNode> ::Log(const param_type& p, std::string* l) { |
166 l->append("<DxDiagNode>"); | 167 l->append("<DxDiagNode>"); |
167 } | 168 } |
168 | 169 |
169 void ParamTraits<gpu::CommandBuffer::State> ::Write(Message* m, | 170 void ParamTraits<gpu::CommandBuffer::State> ::Write(Message* m, |
170 const param_type& p) { | 171 const param_type& p) { |
171 m->WriteInt(p.num_entries); | 172 WriteParam(m, p.num_entries); |
172 m->WriteInt(p.get_offset); | 173 WriteParam(m, p.get_offset); |
173 m->WriteInt(p.put_offset); | 174 WriteParam(m, p.put_offset); |
174 m->WriteInt(p.token); | 175 WriteParam(m, p.token); |
175 m->WriteInt(p.error); | 176 WriteParam(m, static_cast<int32>(p.error)); |
176 } | 177 } |
177 | 178 |
178 bool ParamTraits<gpu::CommandBuffer::State> ::Read(const Message* m, | 179 bool ParamTraits<gpu::CommandBuffer::State> ::Read(const Message* m, |
179 void** iter, | 180 void** iter, |
180 param_type* p) { | 181 param_type* p) { |
181 int32 temp; | 182 int32 temp; |
182 if (m->ReadInt(iter, &p->num_entries) && | 183 if (ReadParam(m, iter, &p->num_entries) && |
183 m->ReadInt(iter, &p->get_offset) && | 184 ReadParam(m, iter, &p->get_offset) && |
184 m->ReadInt(iter, &p->put_offset) && | 185 ReadParam(m, iter, &p->put_offset) && |
185 m->ReadInt(iter, &p->token) && | 186 ReadParam(m, iter, &p->token) && |
186 m->ReadInt(iter, &temp)) { | 187 ReadParam(m, iter, &temp)) { |
187 p->error = static_cast<gpu::error::Error>(temp); | 188 p->error = static_cast<gpu::error::Error>(temp); |
188 return true; | 189 return true; |
189 } else { | 190 } else { |
190 return false; | 191 return false; |
191 } | 192 } |
192 } | 193 } |
193 | 194 |
194 void ParamTraits<gpu::CommandBuffer::State> ::Log(const param_type& p, | 195 void ParamTraits<gpu::CommandBuffer::State> ::Log(const param_type& p, |
195 std::string* l) { | 196 std::string* l) { |
196 l->append("<CommandBuffer::State>"); | 197 l->append("<CommandBuffer::State>"); |
197 } | 198 } |
198 | 199 |
199 void ParamTraits<GPUCreateCommandBufferConfig> ::Write( | 200 void ParamTraits<GPUCreateCommandBufferConfig> ::Write( |
200 Message* m, const param_type& p) { | 201 Message* m, const param_type& p) { |
201 m->WriteString(p.allowed_extensions); | 202 WriteParam(m, p.allowed_extensions); |
202 ParamTraits<std::vector<int> > ::Write(m, p.attribs); | 203 WriteParam(m, p.attribs); |
203 } | 204 } |
204 | 205 |
205 bool ParamTraits<GPUCreateCommandBufferConfig> ::Read( | 206 bool ParamTraits<GPUCreateCommandBufferConfig> ::Read( |
206 const Message* m, void** iter, param_type* p) { | 207 const Message* m, void** iter, param_type* p) { |
207 if (!m->ReadString(iter, &p->allowed_extensions) || | 208 if (!ReadParam(m, iter, &p->allowed_extensions) || |
208 !ParamTraits<std::vector<int> > ::Read(m, iter, &p->attribs)) { | 209 !ReadParam(m, iter, &p->attribs)) { |
209 return false; | 210 return false; |
210 } | 211 } |
211 return true; | 212 return true; |
212 } | 213 } |
213 | 214 |
214 void ParamTraits<GPUCreateCommandBufferConfig> ::Log( | 215 void ParamTraits<GPUCreateCommandBufferConfig> ::Log( |
215 const param_type& p, std::string* l) { | 216 const param_type& p, std::string* l) { |
216 l->append("<GPUCreateCommandBufferConfig>"); | 217 l->append("<GPUCreateCommandBufferConfig>"); |
217 } | 218 } |
218 | 219 |
219 } // namespace IPC | 220 } // namespace IPC |
OLD | NEW |