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 "content/common/gpu/image_transport_surface.h" | 7 #include "content/common/gpu/image_transport_surface.h" |
8 | 8 |
9 #include "base/mac/scoped_cftyperef.h" | 9 #include "base/mac/scoped_cftyperef.h" |
10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
(...skipping 16 matching lines...) Expand all Loading... |
27 int32 render_view_id, | 27 int32 render_view_id, |
28 int32 renderer_id, | 28 int32 renderer_id, |
29 int32 command_buffer_id, | 29 int32 command_buffer_id, |
30 gfx::PluginWindowHandle handle); | 30 gfx::PluginWindowHandle handle); |
31 | 31 |
32 // GLSurface implementation | 32 // GLSurface implementation |
33 virtual bool Initialize() OVERRIDE; | 33 virtual bool Initialize() OVERRIDE; |
34 virtual void Destroy() OVERRIDE; | 34 virtual void Destroy() OVERRIDE; |
35 virtual bool IsOffscreen() OVERRIDE; | 35 virtual bool IsOffscreen() OVERRIDE; |
36 virtual bool SwapBuffers() OVERRIDE; | 36 virtual bool SwapBuffers() OVERRIDE; |
| 37 virtual bool PostSubBuffer(int x, int y, int width, int height) OVERRIDE; |
| 38 virtual std::string GetExtensions() OVERRIDE; |
37 virtual gfx::Size GetSize() OVERRIDE; | 39 virtual gfx::Size GetSize() OVERRIDE; |
38 virtual bool OnMakeCurrent(gfx::GLContext* context) OVERRIDE; | 40 virtual bool OnMakeCurrent(gfx::GLContext* context) OVERRIDE; |
39 virtual unsigned int GetBackingFrameBufferObject() OVERRIDE; | 41 virtual unsigned int GetBackingFrameBufferObject() OVERRIDE; |
40 | 42 |
41 protected: | 43 protected: |
42 // ImageTransportSurface implementation | 44 // ImageTransportSurface implementation |
43 virtual void OnNewSurfaceACK(uint64 surface_id, | 45 virtual void OnNewSurfaceACK(uint64 surface_id, |
44 TransportDIB::Handle shm_handle) OVERRIDE; | 46 TransportDIB::Handle shm_handle) OVERRIDE; |
45 virtual void OnBuffersSwappedACK() OVERRIDE; | 47 virtual void OnBuffersSwappedACK() OVERRIDE; |
| 48 virtual void OnPostSubBufferACK() OVERRIDE; |
46 virtual void OnResizeViewACK() OVERRIDE; | 49 virtual void OnResizeViewACK() OVERRIDE; |
47 virtual void OnResize(gfx::Size size) OVERRIDE; | 50 virtual void OnResize(gfx::Size size) OVERRIDE; |
48 | 51 |
49 private: | 52 private: |
50 virtual ~IOSurfaceImageTransportSurface() OVERRIDE; | 53 virtual ~IOSurfaceImageTransportSurface() OVERRIDE; |
51 | 54 |
52 uint32 fbo_id_; | 55 uint32 fbo_id_; |
53 GLuint texture_id_; | 56 GLuint texture_id_; |
54 | 57 |
55 base::mac::ScopedCFTypeRef<CFTypeRef> io_surface_; | 58 base::mac::ScopedCFTypeRef<CFTypeRef> io_surface_; |
(...skipping 23 matching lines...) Expand all Loading... |
79 int32 render_view_id, | 82 int32 render_view_id, |
80 int32 renderer_id, | 83 int32 renderer_id, |
81 int32 command_buffer_id, | 84 int32 command_buffer_id, |
82 gfx::PluginWindowHandle handle); | 85 gfx::PluginWindowHandle handle); |
83 | 86 |
84 // GLSurface implementation | 87 // GLSurface implementation |
85 virtual bool Initialize() OVERRIDE; | 88 virtual bool Initialize() OVERRIDE; |
86 virtual void Destroy() OVERRIDE; | 89 virtual void Destroy() OVERRIDE; |
87 virtual bool IsOffscreen() OVERRIDE; | 90 virtual bool IsOffscreen() OVERRIDE; |
88 virtual bool SwapBuffers() OVERRIDE; | 91 virtual bool SwapBuffers() OVERRIDE; |
| 92 virtual std::string GetExtensions() OVERRIDE; |
89 virtual gfx::Size GetSize() OVERRIDE; | 93 virtual gfx::Size GetSize() OVERRIDE; |
90 virtual bool OnMakeCurrent(gfx::GLContext* context) OVERRIDE; | 94 virtual bool OnMakeCurrent(gfx::GLContext* context) OVERRIDE; |
91 virtual unsigned int GetBackingFrameBufferObject() OVERRIDE; | 95 virtual unsigned int GetBackingFrameBufferObject() OVERRIDE; |
92 | 96 |
93 protected: | 97 protected: |
94 // ImageTransportSurface implementation | 98 // ImageTransportSurface implementation |
95 virtual void OnBuffersSwappedACK() OVERRIDE; | 99 virtual void OnBuffersSwappedACK() OVERRIDE; |
| 100 virtual void OnPostSubBufferACK() OVERRIDE; |
96 virtual void OnNewSurfaceACK(uint64 surface_id, | 101 virtual void OnNewSurfaceACK(uint64 surface_id, |
97 TransportDIB::Handle shm_handle) OVERRIDE; | 102 TransportDIB::Handle shm_handle) OVERRIDE; |
98 virtual void OnResizeViewACK() OVERRIDE; | 103 virtual void OnResizeViewACK() OVERRIDE; |
99 virtual void OnResize(gfx::Size size) OVERRIDE; | 104 virtual void OnResize(gfx::Size size) OVERRIDE; |
100 | 105 |
101 private: | 106 private: |
102 virtual ~TransportDIBImageTransportSurface() OVERRIDE; | 107 virtual ~TransportDIBImageTransportSurface() OVERRIDE; |
103 | 108 |
104 uint32 fbo_id_; | 109 uint32 fbo_id_; |
105 GLuint render_buffer_id_; | 110 GLuint render_buffer_id_; |
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
219 glFlush(); | 224 glFlush(); |
220 | 225 |
221 GpuHostMsg_AcceleratedSurfaceBuffersSwapped_Params params; | 226 GpuHostMsg_AcceleratedSurfaceBuffersSwapped_Params params; |
222 params.surface_id = io_surface_id_; | 227 params.surface_id = io_surface_id_; |
223 helper_->SendAcceleratedSurfaceBuffersSwapped(params); | 228 helper_->SendAcceleratedSurfaceBuffersSwapped(params); |
224 | 229 |
225 helper_->SetScheduled(false); | 230 helper_->SetScheduled(false); |
226 return true; | 231 return true; |
227 } | 232 } |
228 | 233 |
| 234 bool IOSurfaceImageTransportSurface::PostSubBuffer( |
| 235 int x, int y, int width, int height) { |
| 236 NOTREACHED(); |
| 237 return false; |
| 238 } |
| 239 |
| 240 std::string IOSurfaceImageTransportSurface::GetExtensions() { |
| 241 return gfx::GLSurface::GetExtensions(); |
| 242 } |
| 243 |
229 gfx::Size IOSurfaceImageTransportSurface::GetSize() { | 244 gfx::Size IOSurfaceImageTransportSurface::GetSize() { |
230 return size_; | 245 return size_; |
231 } | 246 } |
232 | 247 |
233 void IOSurfaceImageTransportSurface::OnBuffersSwappedACK() { | 248 void IOSurfaceImageTransportSurface::OnBuffersSwappedACK() { |
234 helper_->SetScheduled(true); | 249 helper_->SetScheduled(true); |
235 } | 250 } |
236 | 251 |
| 252 void IOSurfaceImageTransportSurface::OnPostSubBufferACK() { |
| 253 NOTREACHED(); |
| 254 } |
| 255 |
237 void IOSurfaceImageTransportSurface::OnNewSurfaceACK( | 256 void IOSurfaceImageTransportSurface::OnNewSurfaceACK( |
238 uint64 surface_id, | 257 uint64 surface_id, |
239 TransportDIB::Handle /* shm_handle */) { | 258 TransportDIB::Handle /* shm_handle */) { |
240 DCHECK_EQ(io_surface_id_, surface_id); | 259 DCHECK_EQ(io_surface_id_, surface_id); |
241 helper_->SetScheduled(true); | 260 helper_->SetScheduled(true); |
242 } | 261 } |
243 | 262 |
244 void IOSurfaceImageTransportSurface::OnResizeViewACK() { | 263 void IOSurfaceImageTransportSurface::OnResizeViewACK() { |
245 NOTREACHED(); | 264 NOTREACHED(); |
246 } | 265 } |
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
425 glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, previous_fbo_id); | 444 glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, previous_fbo_id); |
426 | 445 |
427 GpuHostMsg_AcceleratedSurfaceBuffersSwapped_Params params; | 446 GpuHostMsg_AcceleratedSurfaceBuffersSwapped_Params params; |
428 params.surface_id = next_id_; | 447 params.surface_id = next_id_; |
429 helper_->SendAcceleratedSurfaceBuffersSwapped(params); | 448 helper_->SendAcceleratedSurfaceBuffersSwapped(params); |
430 | 449 |
431 helper_->SetScheduled(false); | 450 helper_->SetScheduled(false); |
432 return true; | 451 return true; |
433 } | 452 } |
434 | 453 |
| 454 std::string TransportDIBImageTransportSurface::GetExtensions() { |
| 455 return gfx::GLSurface::GetExtensions(); |
| 456 } |
| 457 |
435 gfx::Size TransportDIBImageTransportSurface::GetSize() { | 458 gfx::Size TransportDIBImageTransportSurface::GetSize() { |
436 return size_; | 459 return size_; |
437 } | 460 } |
438 | 461 |
439 void TransportDIBImageTransportSurface::OnBuffersSwappedACK() { | 462 void TransportDIBImageTransportSurface::OnBuffersSwappedACK() { |
440 helper_->SetScheduled(true); | 463 helper_->SetScheduled(true); |
441 } | 464 } |
442 | 465 |
| 466 void TransportDIBImageTransportSurface::OnPostSubBufferACK() { |
| 467 NOTREACHED(); |
| 468 } |
| 469 |
443 void TransportDIBImageTransportSurface::OnNewSurfaceACK( | 470 void TransportDIBImageTransportSurface::OnNewSurfaceACK( |
444 uint64 surface_id, | 471 uint64 surface_id, |
445 TransportDIB::Handle shm_handle) { | 472 TransportDIB::Handle shm_handle) { |
446 helper_->SetScheduled(true); | 473 helper_->SetScheduled(true); |
447 | 474 |
448 shared_mem_.reset(TransportDIB::Map(shm_handle)); | 475 shared_mem_.reset(TransportDIB::Map(shm_handle)); |
449 DCHECK_NE(shared_mem_.get(), static_cast<void*>(NULL)); | 476 DCHECK_NE(shared_mem_.get(), static_cast<void*>(NULL)); |
450 } | 477 } |
451 | 478 |
452 void TransportDIBImageTransportSurface::OnResizeViewACK() { | 479 void TransportDIBImageTransportSurface::OnResizeViewACK() { |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
521 NOTREACHED(); | 548 NOTREACHED(); |
522 return NULL; | 549 return NULL; |
523 } | 550 } |
524 if (surface->Initialize()) | 551 if (surface->Initialize()) |
525 return surface; | 552 return surface; |
526 else | 553 else |
527 return NULL; | 554 return NULL; |
528 } | 555 } |
529 | 556 |
530 #endif // defined(USE_GPU) | 557 #endif // defined(USE_GPU) |
OLD | NEW |