diff options
author | brettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-06-01 02:12:55 +0000 |
---|---|---|
committer | brettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-06-01 02:12:55 +0000 |
commit | 1598e4a9f0fe3572b7f2bb9459c26ec208fcbf12 (patch) | |
tree | 10cae214da22b6ed0da1d7651fc068e046adc3cd /ppapi/proxy/ppb_graphics_2d_proxy.h | |
parent | d0922eaaa02cf79caaa21f29613e4995fa0d2048 (diff) | |
download | chromium_src-1598e4a9f0fe3572b7f2bb9459c26ec208fcbf12.zip chromium_src-1598e4a9f0fe3572b7f2bb9459c26ec208fcbf12.tar.gz chromium_src-1598e4a9f0fe3572b7f2bb9459c26ec208fcbf12.tar.bz2 |
Convert more interfaces to the new thunk system. This goes up to and including
the ones starting with "F".
Since this adds a lot more interfaces, I added the macro stuff we used for the
old system to generate the various template specializations. This involded a
lot of renaming since the As* needs to match the name (I was previously leaving
off the "PPB_" part). I did other misc cleanup to the infrastructure.
Review URL: http://codereview.chromium.org/7082036
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@87415 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/proxy/ppb_graphics_2d_proxy.h')
-rw-r--r-- | ppapi/proxy/ppb_graphics_2d_proxy.h | 59 |
1 files changed, 4 insertions, 55 deletions
diff --git a/ppapi/proxy/ppb_graphics_2d_proxy.h b/ppapi/proxy/ppb_graphics_2d_proxy.h index b799950..9be7f83 100644 --- a/ppapi/proxy/ppb_graphics_2d_proxy.h +++ b/ppapi/proxy/ppb_graphics_2d_proxy.h @@ -17,7 +17,6 @@ #include "ppapi/proxy/interface_proxy.h" #include "ppapi/proxy/plugin_resource.h" #include "ppapi/proxy/proxy_non_thread_safe_ref_count.h" -#include "ppapi/thunk/ppb_graphics_2d_api.h" struct PPB_Graphics2D; struct PP_Point; @@ -33,6 +32,10 @@ class PPB_Graphics2D_Proxy : public InterfaceProxy { static const Info* GetInfo(); + static PP_Resource CreateProxyResource(PP_Instance instance, + const PP_Size& size, + PP_Bool is_always_opaque); + const PPB_Graphics2D* ppb_graphics_2d_target() const { return static_cast<const PPB_Graphics2D*>(target_interface()); } @@ -67,60 +70,6 @@ class PPB_Graphics2D_Proxy : public InterfaceProxy { ProxyNonThreadSafeRefCount> callback_factory_; }; -class Graphics2D : public PluginResource, - public ::ppapi::thunk::PPB_Graphics2D_API { - public: - Graphics2D(const HostResource& host_resource, - const PP_Size& size, - PP_Bool is_always_opaque) - : PluginResource(host_resource), - size_(size), - is_always_opaque_(is_always_opaque), - current_flush_callback_(PP_BlockUntilComplete()) { - } - virtual ~Graphics2D() { - } - - // Resource overrides. - virtual Graphics2D* AsGraphics2D() { return this; } - - const PP_Size& size() const { return size_; } - PP_Bool is_always_opaque() const { return is_always_opaque_; } - - bool is_flush_pending() const { return !!current_flush_callback_.func; } - - PP_CompletionCallback current_flush_callback() const { - return current_flush_callback_; - } - void set_current_flush_callback(PP_CompletionCallback cb) { - current_flush_callback_ = cb; - } - - // ResourceObjectBase. - virtual PPB_Graphics2D_API* AsGraphics2D_API(); - - // PPB_Graphics_2D_API. - PP_Bool Describe(PP_Size* size, PP_Bool* is_always_opaque); - void PaintImageData(PP_Resource image_data, - const PP_Point* top_left, - const PP_Rect* src_rect); - void Scroll(const PP_Rect* clip_rect, - const PP_Point* amount); - void ReplaceContents(PP_Resource image_data); - int32_t Flush(PP_CompletionCallback callback); - - private: - PP_Size size_; - PP_Bool is_always_opaque_; - - // In the plugin, this is the current callback set for Flushes. When the - // callback function pointer is non-NULL, we're waiting for a flush ACK. - PP_CompletionCallback current_flush_callback_; - - DISALLOW_COPY_AND_ASSIGN(Graphics2D); -}; - - } // namespace proxy } // namespace pp |