OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "content/browser/renderer_host/image_transport_factory.h" | 5 #include "content/browser/renderer_host/image_transport_factory.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <map> | 8 #include <map> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
54 virtual gfx::GLSurfaceHandle CreateSharedSurfaceHandle() OVERRIDE { | 54 virtual gfx::GLSurfaceHandle CreateSharedSurfaceHandle() OVERRIDE { |
55 return gfx::GLSurfaceHandle(); | 55 return gfx::GLSurfaceHandle(); |
56 } | 56 } |
57 | 57 |
58 virtual void DestroySharedSurfaceHandle( | 58 virtual void DestroySharedSurfaceHandle( |
59 gfx::GLSurfaceHandle surface) OVERRIDE { | 59 gfx::GLSurfaceHandle surface) OVERRIDE { |
60 } | 60 } |
61 | 61 |
62 virtual scoped_refptr<ui::Texture> CreateTransportClient( | 62 virtual scoped_refptr<ui::Texture> CreateTransportClient( |
63 const gfx::Size& size, | 63 const gfx::Size& size, |
| 64 float device_scale_factor, |
64 uint64 transport_handle) OVERRIDE { | 65 uint64 transport_handle) OVERRIDE { |
65 return NULL; | 66 return NULL; |
66 } | 67 } |
67 | 68 |
68 virtual scoped_refptr<ui::Texture> CreateOwnedTexture( | 69 virtual scoped_refptr<ui::Texture> CreateOwnedTexture( |
69 const gfx::Size& size, | 70 const gfx::Size& size, |
| 71 float device_scale_factor, |
70 unsigned int texture_id) OVERRIDE { | 72 unsigned int texture_id) OVERRIDE { |
71 return NULL; | 73 return NULL; |
72 } | 74 } |
73 | 75 |
74 virtual GLHelper* GetGLHelper() OVERRIDE { | 76 virtual GLHelper* GetGLHelper() OVERRIDE { |
75 return NULL; | 77 return NULL; |
76 } | 78 } |
77 | 79 |
78 virtual uint32 InsertSyncPoint() OVERRIDE { | 80 virtual uint32 InsertSyncPoint() OVERRIDE { |
79 return 0; | 81 return 0; |
(...skipping 10 matching lines...) Expand all Loading... |
90 | 92 |
91 private: | 93 private: |
92 DISALLOW_COPY_AND_ASSIGN(DefaultTransportFactory); | 94 DISALLOW_COPY_AND_ASSIGN(DefaultTransportFactory); |
93 }; | 95 }; |
94 | 96 |
95 class ImageTransportClientTexture : public ui::Texture { | 97 class ImageTransportClientTexture : public ui::Texture { |
96 public: | 98 public: |
97 ImageTransportClientTexture( | 99 ImageTransportClientTexture( |
98 WebKit::WebGraphicsContext3D* host_context, | 100 WebKit::WebGraphicsContext3D* host_context, |
99 const gfx::Size& size, | 101 const gfx::Size& size, |
| 102 float device_scale_factor, |
100 uint64 surface_id) | 103 uint64 surface_id) |
101 : ui::Texture(true, size), | 104 : ui::Texture(true, size, device_scale_factor), |
102 host_context_(host_context) { | 105 host_context_(host_context) { |
103 set_texture_id(surface_id); | 106 set_texture_id(surface_id); |
104 } | 107 } |
105 | 108 |
106 virtual WebKit::WebGraphicsContext3D* HostContext3D() { | 109 virtual WebKit::WebGraphicsContext3D* HostContext3D() { |
107 return host_context_; | 110 return host_context_; |
108 } | 111 } |
109 | 112 |
110 protected: | 113 protected: |
111 virtual ~ImageTransportClientTexture() {} | 114 virtual ~ImageTransportClientTexture() {} |
112 | 115 |
113 private: | 116 private: |
114 // A raw pointer. This |ImageTransportClientTexture| will be destroyed | 117 // A raw pointer. This |ImageTransportClientTexture| will be destroyed |
115 // before the |host_context_| via | 118 // before the |host_context_| via |
116 // |ImageTransportFactoryObserver::OnLostContext()| handlers. | 119 // |ImageTransportFactoryObserver::OnLostContext()| handlers. |
117 WebKit::WebGraphicsContext3D* host_context_; | 120 WebKit::WebGraphicsContext3D* host_context_; |
118 | 121 |
119 DISALLOW_COPY_AND_ASSIGN(ImageTransportClientTexture); | 122 DISALLOW_COPY_AND_ASSIGN(ImageTransportClientTexture); |
120 }; | 123 }; |
121 | 124 |
122 class OwnedTexture : public ui::Texture, ImageTransportFactoryObserver { | 125 class OwnedTexture : public ui::Texture, ImageTransportFactoryObserver { |
123 public: | 126 public: |
124 OwnedTexture(WebKit::WebGraphicsContext3D* host_context, | 127 OwnedTexture(WebKit::WebGraphicsContext3D* host_context, |
125 const gfx::Size& size, | 128 const gfx::Size& size, |
| 129 float device_scale_factor, |
126 unsigned int texture_id) | 130 unsigned int texture_id) |
127 : ui::Texture(true, size), | 131 : ui::Texture(true, size, device_scale_factor), |
128 host_context_(host_context) { | 132 host_context_(host_context) { |
129 ImageTransportFactory::GetInstance()->AddObserver(this); | 133 ImageTransportFactory::GetInstance()->AddObserver(this); |
130 set_texture_id(texture_id); | 134 set_texture_id(texture_id); |
131 } | 135 } |
132 | 136 |
133 // ui::Texture overrides: | 137 // ui::Texture overrides: |
134 virtual WebKit::WebGraphicsContext3D* HostContext3D() OVERRIDE { | 138 virtual WebKit::WebGraphicsContext3D* HostContext3D() OVERRIDE { |
135 return host_context_; | 139 return host_context_; |
136 } | 140 } |
137 | 141 |
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
274 surface.parent_context_id != context_id) | 278 surface.parent_context_id != context_id) |
275 return; | 279 return; |
276 | 280 |
277 shared_context_->deleteTexture(surface.parent_texture_id[0]); | 281 shared_context_->deleteTexture(surface.parent_texture_id[0]); |
278 shared_context_->deleteTexture(surface.parent_texture_id[1]); | 282 shared_context_->deleteTexture(surface.parent_texture_id[1]); |
279 shared_context_->flush(); | 283 shared_context_->flush(); |
280 } | 284 } |
281 | 285 |
282 virtual scoped_refptr<ui::Texture> CreateTransportClient( | 286 virtual scoped_refptr<ui::Texture> CreateTransportClient( |
283 const gfx::Size& size, | 287 const gfx::Size& size, |
| 288 float device_scale_factor, |
284 uint64 transport_handle) { | 289 uint64 transport_handle) { |
285 if (!shared_context_.get()) | 290 if (!shared_context_.get()) |
286 return NULL; | 291 return NULL; |
287 scoped_refptr<ImageTransportClientTexture> image( | 292 scoped_refptr<ImageTransportClientTexture> image( |
288 new ImageTransportClientTexture(shared_context_.get(), | 293 new ImageTransportClientTexture(shared_context_.get(), |
289 size, transport_handle)); | 294 size, device_scale_factor, |
| 295 transport_handle)); |
290 return image; | 296 return image; |
291 } | 297 } |
292 | 298 |
293 virtual scoped_refptr<ui::Texture> CreateOwnedTexture( | 299 virtual scoped_refptr<ui::Texture> CreateOwnedTexture( |
294 const gfx::Size& size, | 300 const gfx::Size& size, |
| 301 float device_scale_factor, |
295 unsigned int texture_id) OVERRIDE { | 302 unsigned int texture_id) OVERRIDE { |
296 if (!shared_context_.get()) | 303 if (!shared_context_.get()) |
297 return NULL; | 304 return NULL; |
298 scoped_refptr<OwnedTexture> image( | 305 scoped_refptr<OwnedTexture> image( |
299 new OwnedTexture(shared_context_.get(), size, texture_id)); | 306 new OwnedTexture(shared_context_.get(), size, device_scale_factor, |
| 307 texture_id)); |
300 return image; | 308 return image; |
301 } | 309 } |
302 | 310 |
303 virtual GLHelper* GetGLHelper() { | 311 virtual GLHelper* GetGLHelper() { |
304 if (!gl_helper_.get()) { | 312 if (!gl_helper_.get()) { |
305 CreateSharedContextLazy(); | 313 CreateSharedContextLazy(); |
306 WebKit::WebGraphicsContext3D* context_for_thread = | 314 WebKit::WebGraphicsContext3D* context_for_thread = |
307 CreateOffscreenContext(); | 315 CreateOffscreenContext(); |
308 if (!context_for_thread) | 316 if (!context_for_thread) |
309 return NULL; | 317 return NULL; |
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
482 void ImageTransportFactory::Terminate() { | 490 void ImageTransportFactory::Terminate() { |
483 ui::ContextFactory::SetInstance(NULL); | 491 ui::ContextFactory::SetInstance(NULL); |
484 delete g_factory; | 492 delete g_factory; |
485 g_factory = NULL; | 493 g_factory = NULL; |
486 } | 494 } |
487 | 495 |
488 // static | 496 // static |
489 ImageTransportFactory* ImageTransportFactory::GetInstance() { | 497 ImageTransportFactory* ImageTransportFactory::GetInstance() { |
490 return g_factory; | 498 return g_factory; |
491 } | 499 } |
OLD | NEW |