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 #ifndef CONTENT_PLUGIN_WEBPLUGIN_ACCELERATED_SURFACE_PROXY_H_ | 5 #ifndef CONTENT_PLUGIN_WEBPLUGIN_ACCELERATED_SURFACE_PROXY_H_ |
6 #define CONTENT_PLUGIN_WEBPLUGIN_ACCELERATED_SURFACE_PROXY_H_ | 6 #define CONTENT_PLUGIN_WEBPLUGIN_ACCELERATED_SURFACE_PROXY_H_ |
7 | 7 |
8 #include "base/compiler_specific.h" | 8 #include "base/compiler_specific.h" |
9 #include "content/child/npapi/webplugin_accelerated_surface_mac.h" | 9 #include "content/child/npapi/webplugin_accelerated_surface_mac.h" |
10 #include "ui/gl/gpu_preference.h" | 10 #include "ui/gl/gpu_preference.h" |
11 | 11 |
12 class AcceleratedSurface; | 12 class AcceleratedSurface; |
13 | 13 |
14 namespace content { | 14 namespace content { |
15 class WebPluginProxy; | 15 class WebPluginProxy; |
16 | 16 |
17 // Out-of-process implementation of WebPluginAcceleratedSurface that proxies | 17 // Out-of-process implementation of WebPluginAcceleratedSurface that proxies |
18 // calls through a WebPluginProxy. | 18 // calls through a WebPluginProxy. |
19 class WebPluginAcceleratedSurfaceProxy : public WebPluginAcceleratedSurface { | 19 class WebPluginAcceleratedSurfaceProxy : public WebPluginAcceleratedSurface { |
20 public: | 20 public: |
21 // Creates a new WebPluginAcceleratedSurfaceProxy that uses plugin_proxy | 21 // Creates a new WebPluginAcceleratedSurfaceProxy that uses plugin_proxy |
22 // to proxy calls. plugin_proxy must outlive this object. Returns NULL if | 22 // to proxy calls. plugin_proxy must outlive this object. Returns NULL if |
23 // initialization fails. | 23 // initialization fails. |
24 static WebPluginAcceleratedSurfaceProxy* Create( | 24 static WebPluginAcceleratedSurfaceProxy* Create( |
25 WebPluginProxy* plugin_proxy, | 25 WebPluginProxy* plugin_proxy, |
26 gfx::GpuPreference gpu_preference); | 26 gfx::GpuPreference gpu_preference); |
27 | 27 |
28 virtual ~WebPluginAcceleratedSurfaceProxy(); | 28 ~WebPluginAcceleratedSurfaceProxy() override; |
29 | 29 |
30 // WebPluginAcceleratedSurface implementation. | 30 // WebPluginAcceleratedSurface implementation. |
31 virtual void SetSize(const gfx::Size& size) override; | 31 void SetSize(const gfx::Size& size) override; |
32 virtual CGLContextObj context() override; | 32 CGLContextObj context() override; |
33 virtual void StartDrawing() override; | 33 void StartDrawing() override; |
34 virtual void EndDrawing() override; | 34 void EndDrawing() override; |
35 | 35 |
36 private: | 36 private: |
37 WebPluginAcceleratedSurfaceProxy(WebPluginProxy* plugin_proxy, | 37 WebPluginAcceleratedSurfaceProxy(WebPluginProxy* plugin_proxy, |
38 AcceleratedSurface* surface); | 38 AcceleratedSurface* surface); |
39 | 39 |
40 WebPluginProxy* plugin_proxy_; // Weak ref. | 40 WebPluginProxy* plugin_proxy_; // Weak ref. |
41 AcceleratedSurface* surface_; | 41 AcceleratedSurface* surface_; |
42 | 42 |
43 DISALLOW_COPY_AND_ASSIGN(WebPluginAcceleratedSurfaceProxy); | 43 DISALLOW_COPY_AND_ASSIGN(WebPluginAcceleratedSurfaceProxy); |
44 }; | 44 }; |
45 | 45 |
46 } // namespace content | 46 } // namespace content |
47 | 47 |
48 #endif // CONTENT_PLUGIN_WEBPLUGIN_ACCELERATED_SURFACE_PROXY_H_ | 48 #endif // CONTENT_PLUGIN_WEBPLUGIN_ACCELERATED_SURFACE_PROXY_H_ |
OLD | NEW |