| OLD | NEW | 
|---|
| 1  // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1  // Copyright (c) 2011 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 #if defined(ENABLE_GPU) | 5 #if defined(ENABLE_GPU) | 
| 6 | 6 | 
| 7 #include "base/bind.h" | 7 #include "base/bind.h" | 
| 8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" | 
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" | 
| 10 #include "base/debug/trace_event.h" | 10 #include "base/debug/trace_event.h" | 
| (...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 157   GpuCommandBufferMsg_Initialize::WriteReplyParams(reply_message, false); | 157   GpuCommandBufferMsg_Initialize::WriteReplyParams(reply_message, false); | 
| 158   Send(reply_message); | 158   Send(reply_message); | 
| 159 } | 159 } | 
| 160 | 160 | 
| 161 void GpuCommandBufferStub::OnInitialize( | 161 void GpuCommandBufferStub::OnInitialize( | 
| 162     base::SharedMemoryHandle ring_buffer, | 162     base::SharedMemoryHandle ring_buffer, | 
| 163     int32 size, | 163     int32 size, | 
| 164     IPC::Message* reply_message) { | 164     IPC::Message* reply_message) { | 
| 165   DCHECK(!command_buffer_.get()); | 165   DCHECK(!command_buffer_.get()); | 
| 166 | 166 | 
|  | 167   UNSHIPPED_TRACE_EVENT_INSTANT0("test_gpu", "TryCreateGLContext"); | 
|  | 168 | 
| 167   command_buffer_.reset(new gpu::CommandBufferService); | 169   command_buffer_.reset(new gpu::CommandBufferService); | 
| 168 | 170 | 
| 169 #if defined(OS_WIN) | 171 #if defined(OS_WIN) | 
| 170   // Windows dups the shared memory handle it receives into the current process | 172   // Windows dups the shared memory handle it receives into the current process | 
| 171   // and closes it when this variable goes out of scope. | 173   // and closes it when this variable goes out of scope. | 
| 172   base::SharedMemory shared_memory(ring_buffer, | 174   base::SharedMemory shared_memory(ring_buffer, | 
| 173                                    false, | 175                                    false, | 
| 174                                    channel_->renderer_process()); | 176                                    channel_->renderer_process()); | 
| 175 #else | 177 #else | 
| 176   // POSIX receives a dup of the shared memory handle and closes the dup when | 178   // POSIX receives a dup of the shared memory handle and closes the dup when | 
| 177   // this variable goes out of scope. | 179   // this variable goes out of scope. | 
| 178   base::SharedMemory shared_memory(ring_buffer, false); | 180   base::SharedMemory shared_memory(ring_buffer, false); | 
| 179 #endif | 181 #endif | 
| 180 | 182 | 
| 181   if (!command_buffer_->Initialize(&shared_memory, size)) { | 183   if (!command_buffer_->Initialize(&shared_memory, size)) { | 
|  | 184     DLOG(ERROR) << "CommandBufferService failed to initialize.\n"; | 
| 182     OnInitializeFailed(reply_message); | 185     OnInitializeFailed(reply_message); | 
| 183     return; | 186     return; | 
| 184   } | 187   } | 
| 185 | 188 | 
| 186   decoder_.reset(::gpu::gles2::GLES2Decoder::Create(context_group_.get())); | 189   decoder_.reset(::gpu::gles2::GLES2Decoder::Create(context_group_.get())); | 
| 187 | 190 | 
| 188   scheduler_.reset(new gpu::GpuScheduler(command_buffer_.get(), | 191   scheduler_.reset(new gpu::GpuScheduler(command_buffer_.get(), | 
| 189                                          decoder_.get(), | 192                                          decoder_.get(), | 
| 190                                          NULL)); | 193                                          NULL)); | 
| 191 | 194 | 
| 192   decoder_->set_engine(scheduler_.get()); | 195   decoder_->set_engine(scheduler_.get()); | 
| 193 | 196 | 
| 194   if (handle_) { | 197   if (handle_) { | 
| 195 #if defined(OS_MACOSX) || defined(UI_COMPOSITOR_IMAGE_TRANSPORT) | 198 #if defined(OS_MACOSX) || defined(UI_COMPOSITOR_IMAGE_TRANSPORT) | 
| 196     if (software_) { | 199     if (software_) { | 
|  | 200       DLOG(ERROR) << "No software support.\n"; | 
| 197       OnInitializeFailed(reply_message); | 201       OnInitializeFailed(reply_message); | 
| 198       return; | 202       return; | 
| 199     } | 203     } | 
| 200 #endif | 204 #endif | 
| 201 | 205 | 
| 202     surface_ = ImageTransportSurface::CreateSurface( | 206     surface_ = ImageTransportSurface::CreateSurface( | 
| 203         channel_->gpu_channel_manager(), | 207         channel_->gpu_channel_manager(), | 
| 204         render_view_id_, | 208         render_view_id_, | 
| 205         renderer_id_, | 209         renderer_id_, | 
| 206         route_id_, | 210         route_id_, | 
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 271 | 275 | 
| 272   if (parent_stub_for_initialization_) { | 276   if (parent_stub_for_initialization_) { | 
| 273     decoder_->SetParent(parent_stub_for_initialization_->decoder_.get(), | 277     decoder_->SetParent(parent_stub_for_initialization_->decoder_.get(), | 
| 274                         parent_texture_for_initialization_); | 278                         parent_texture_for_initialization_); | 
| 275     parent_stub_for_initialization_.reset(); | 279     parent_stub_for_initialization_.reset(); | 
| 276     parent_texture_for_initialization_ = 0; | 280     parent_texture_for_initialization_ = 0; | 
| 277   } | 281   } | 
| 278 | 282 | 
| 279   GpuCommandBufferMsg_Initialize::WriteReplyParams(reply_message, true); | 283   GpuCommandBufferMsg_Initialize::WriteReplyParams(reply_message, true); | 
| 280   Send(reply_message); | 284   Send(reply_message); | 
|  | 285 | 
|  | 286   UNSHIPPED_TRACE_EVENT_INSTANT1("test_gpu", "CreateGLContextSuccess", | 
|  | 287                                  "offscreen", surface_->IsOffscreen()); | 
| 281 } | 288 } | 
| 282 | 289 | 
| 283 void GpuCommandBufferStub::OnSetParent(int32 parent_route_id, | 290 void GpuCommandBufferStub::OnSetParent(int32 parent_route_id, | 
| 284                                        uint32 parent_texture_id, | 291                                        uint32 parent_texture_id, | 
| 285                                        IPC::Message* reply_message) { | 292                                        IPC::Message* reply_message) { | 
| 286 | 293 | 
| 287   GpuCommandBufferStub* parent_stub = NULL; | 294   GpuCommandBufferStub* parent_stub = NULL; | 
| 288   if (parent_route_id != MSG_ROUTING_NONE) { | 295   if (parent_route_id != MSG_ROUTING_NONE) { | 
| 289     parent_stub = channel_->LookupCommandBuffer(parent_route_id); | 296     parent_stub = channel_->LookupCommandBuffer(parent_route_id); | 
| 290   } | 297   } | 
| (...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 458 void GpuCommandBufferStub::OnDestroyVideoDecoder(int decoder_route_id) { | 465 void GpuCommandBufferStub::OnDestroyVideoDecoder(int decoder_route_id) { | 
| 459   channel_->RemoveRoute(decoder_route_id); | 466   channel_->RemoveRoute(decoder_route_id); | 
| 460   video_decoders_.Remove(decoder_route_id); | 467   video_decoders_.Remove(decoder_route_id); | 
| 461 } | 468 } | 
| 462 | 469 | 
| 463 void GpuCommandBufferStub::OnSetSurfaceVisible(bool visible) { | 470 void GpuCommandBufferStub::OnSetSurfaceVisible(bool visible) { | 
| 464   surface_->SetVisible(visible); | 471   surface_->SetVisible(visible); | 
| 465 } | 472 } | 
| 466 | 473 | 
| 467 #endif  // defined(ENABLE_GPU) | 474 #endif  // defined(ENABLE_GPU) | 
| OLD | NEW | 
|---|