| // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef CONTENT_PLUGIN_WEBPLUGIN_ACCELERATED_SURFACE_PROXY_H_ |
| #define CONTENT_PLUGIN_WEBPLUGIN_ACCELERATED_SURFACE_PROXY_H_ |
| #pragma once |
| |
| #include "webkit/plugins/npapi/webplugin_accelerated_surface_mac.h" |
| |
| class WebPluginProxy; |
| class AcceleratedSurface; |
| |
| // Out-of-process implementation of WebPluginAcceleratedSurface that proxies |
| // calls through a WebPluginProxy. |
| class WebPluginAcceleratedSurfaceProxy |
| : public webkit::npapi::WebPluginAcceleratedSurface { |
| public: |
| // Creates a new WebPluginAcceleratedSurfaceProxy that uses plugin_proxy |
| // to proxy calls. plugin_proxy must outlive this object. |
| WebPluginAcceleratedSurfaceProxy(WebPluginProxy* plugin_proxy); |
| virtual ~WebPluginAcceleratedSurfaceProxy(); |
| |
| // WebPluginAcceleratedSurface implementation. |
| virtual void SetWindowHandle(gfx::PluginWindowHandle window); |
| virtual void SetSize(const gfx::Size& size); |
| virtual CGLContextObj context(); |
| virtual void StartDrawing(); |
| virtual void EndDrawing(); |
| |
| private: |
| WebPluginProxy* plugin_proxy_; // Weak ref. |
| gfx::PluginWindowHandle window_handle_; |
| AcceleratedSurface* surface_; |
| |
| DISALLOW_COPY_AND_ASSIGN(WebPluginAcceleratedSurfaceProxy); |
| }; |
| |
| #endif // CONTENT_PLUGIN_WEBPLUGIN_ACCELERATED_SURFACE_PROXY_H_ |