OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright 2009, Google Inc. | 2 * Copyright 2009, Google Inc. |
3 * All rights reserved. | 3 * All rights reserved. |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions are | 6 * modification, are permitted provided that the following conditions are |
7 * met: | 7 * met: |
8 * | 8 * |
9 * * Redistributions of source code must retain the above copyright | 9 * * Redistributions of source code must retain the above copyright |
10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
250 features_ = NULL; | 250 features_ = NULL; |
251 | 251 |
252 // There is a reference cycle between the V8 bridge and the plugin. | 252 // There is a reference cycle between the V8 bridge and the plugin. |
253 // Explicitly remove all V8 references during tear-down, so that the cycle is | 253 // Explicitly remove all V8 references during tear-down, so that the cycle is |
254 // broken, and the reference counting system will successfully delete the | 254 // broken, and the reference counting system will successfully delete the |
255 // plugin. | 255 // plugin. |
256 np_v8_bridge_.ReleaseNPObjects(); | 256 np_v8_bridge_.ReleaseNPObjects(); |
257 } | 257 } |
258 | 258 |
259 void PluginObject::CreateRenderer(const o3d::DisplayWindow& display_window) { | 259 void PluginObject::CreateRenderer(const o3d::DisplayWindow& display_window) { |
260 if (!o3d::CheckConfig(npp_)) { | 260 renderer_init_status_ = o3d::Renderer::GPU_NOT_UP_TO_SPEC; |
Tristan Schmelcher 2
2011/02/23 02:08:51
I preferred the previous code structure where this
| |
261 renderer_init_status_ = o3d::Renderer::GPU_NOT_UP_TO_SPEC; | 261 #if !defined(FORCE_CAIRO) |
262 } else { | 262 if (o3d::CheckConfig(npp_)) { |
263 renderer_ = o3d::Renderer::CreateDefaultRenderer(&service_locator_); | 263 renderer_ = o3d::Renderer::CreateDefaultRenderer(&service_locator_); |
264 DCHECK(renderer_); | 264 DCHECK(renderer_); |
265 | 265 |
266 // Attempt to initialize renderer. | 266 // Attempt to initialize renderer. |
267 renderer_init_status_ = renderer_->Init(display_window, false); | 267 renderer_init_status_ = renderer_->Init(display_window, false); |
268 if (renderer_init_status_ != o3d::Renderer::SUCCESS) { | 268 if (renderer_init_status_ != o3d::Renderer::SUCCESS) { |
269 DeleteRenderer(); | 269 DeleteRenderer(); |
270 } | 270 } |
271 } | 271 } |
272 #endif | |
273 #if defined(SUPPORT_CAIRO) | |
274 if (renderer_init_status_ != o3d::Renderer::SUCCESS) { | |
275 // Attempt to fall back to o2d renderer | |
276 renderer_ = o3d::Renderer::Create2DRenderer(&service_locator_); | |
277 if (renderer_) { | |
278 Renderer::InitStatus temp_status = renderer_->Init(display_window, | |
Tristan Schmelcher 2
2011/02/23 02:08:51
I don't think you need this temp_status variable.
| |
279 false); | |
280 if (temp_status != o3d::Renderer::SUCCESS) { | |
281 DeleteRenderer(); | |
282 } else { | |
283 renderer_init_status_ = o3d::Renderer::SUCCESS; | |
284 ClientInfoManager* client_info_manager = | |
285 service_locator()->GetService<ClientInfoManager>(); | |
286 client_info_manager->SetRenderer2d(true); | |
287 } | |
288 } | |
289 } | |
290 #endif | |
272 } | 291 } |
273 | 292 |
274 void PluginObject::DeleteRenderer() { | 293 void PluginObject::DeleteRenderer() { |
275 if (renderer_) { | 294 if (renderer_) { |
276 delete renderer_; | 295 delete renderer_; |
277 renderer_ = NULL; | 296 renderer_ = NULL; |
278 } | 297 } |
279 } | 298 } |
280 | 299 |
281 | 300 |
(...skipping 916 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1198 PluginObject *plugin_object = static_cast<PluginObject *>(npp->pdata); | 1217 PluginObject *plugin_object = static_cast<PluginObject *>(npp->pdata); |
1199 if (plugin_object) { // May not be initialized yet. | 1218 if (plugin_object) { // May not be initialized yet. |
1200 return plugin_object->client()->ProfileToString(); | 1219 return plugin_object->client()->ProfileToString(); |
1201 } else { | 1220 } else { |
1202 return ""; | 1221 return ""; |
1203 } | 1222 } |
1204 } | 1223 } |
1205 | 1224 |
1206 } // namespace globals | 1225 } // namespace globals |
1207 } // namespace glue | 1226 } // namespace glue |
OLD | NEW |