Chromium Code Reviews| 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 !defined(FORCE_CAIRO) | |
| 260 if (!o3d::CheckConfig(npp_)) { | 261 if (!o3d::CheckConfig(npp_)) { |
| 261 renderer_init_status_ = o3d::Renderer::GPU_NOT_UP_TO_SPEC; | 262 renderer_init_status_ = o3d::Renderer::GPU_NOT_UP_TO_SPEC; |
| 262 } else { | 263 } else { |
| 263 renderer_ = o3d::Renderer::CreateDefaultRenderer(&service_locator_); | 264 renderer_ = o3d::Renderer::CreateDefaultRenderer(&service_locator_); |
| 264 DCHECK(renderer_); | 265 DCHECK(renderer_); |
| 265 | 266 |
| 266 // Attempt to initialize renderer. | 267 // Attempt to initialize renderer. |
| 267 renderer_init_status_ = renderer_->Init(display_window, false); | 268 renderer_init_status_ = renderer_->Init(display_window, false); |
| 268 if (renderer_init_status_ != o3d::Renderer::SUCCESS) { | 269 if (renderer_init_status_ != o3d::Renderer::SUCCESS) { |
| 269 DeleteRenderer(); | 270 DeleteRenderer(); |
| 270 } | 271 } |
| 271 } | 272 } |
| 273 #else | |
| 274 // To force cairo, pretend all previous renderer initialization has failed. | |
|
Tristan Schmelcher 2
2011/02/23 19:27:30
You shouldn't need this, because renderer_init_sta
| |
| 275 renderer_init_status_ = o3d::Renderer::GPU_NOT_UP_TO_SPEC; | |
| 276 #endif | |
| 277 | |
| 278 #if defined(SUPPORT_CAIRO) | |
| 279 if (renderer_init_status_ != o3d::Renderer::SUCCESS) { | |
| 280 // Attempt to fall back to o2d renderer | |
| 281 renderer_ = o3d::Renderer::Create2DRenderer(&service_locator_); | |
| 282 if (renderer_) { | |
| 283 if (renderer_->Init(display_window, false) != o3d::Renderer::SUCCESS) { | |
|
Tristan Schmelcher 2
2011/02/23 19:27:30
I think we might as well just assign this result d
| |
| 284 DeleteRenderer(); | |
| 285 } else { | |
| 286 renderer_init_status_ = o3d::Renderer::SUCCESS; | |
| 287 ClientInfoManager* client_info_manager = | |
| 288 service_locator()->GetService<ClientInfoManager>(); | |
| 289 client_info_manager->SetRender2d(true); | |
| 290 } | |
| 291 } | |
| 292 } | |
| 293 #endif | |
| 272 } | 294 } |
| 273 | 295 |
| 274 void PluginObject::DeleteRenderer() { | 296 void PluginObject::DeleteRenderer() { |
| 275 if (renderer_) { | 297 if (renderer_) { |
| 276 delete renderer_; | 298 delete renderer_; |
| 277 renderer_ = NULL; | 299 renderer_ = NULL; |
| 278 } | 300 } |
| 279 } | 301 } |
| 280 | 302 |
| 281 | 303 |
| (...skipping 916 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1198 PluginObject *plugin_object = static_cast<PluginObject *>(npp->pdata); | 1220 PluginObject *plugin_object = static_cast<PluginObject *>(npp->pdata); |
| 1199 if (plugin_object) { // May not be initialized yet. | 1221 if (plugin_object) { // May not be initialized yet. |
| 1200 return plugin_object->client()->ProfileToString(); | 1222 return plugin_object->client()->ProfileToString(); |
| 1201 } else { | 1223 } else { |
| 1202 return ""; | 1224 return ""; |
| 1203 } | 1225 } |
| 1204 } | 1226 } |
| 1205 | 1227 |
| 1206 } // namespace globals | 1228 } // namespace globals |
| 1207 } // namespace glue | 1229 } // namespace glue |
| OLD | NEW |