diff options
author | brettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-12-04 23:29:06 +0000 |
---|---|---|
committer | brettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-12-04 23:29:06 +0000 |
commit | 2a1d6d91c755f42a4b15f4c64f7ffeddb38e8fdf (patch) | |
tree | 76f2667611cd906a5eda052d8c59ec5979bc387e /ppapi/proxy/ppb_graphics_2d_proxy.cc | |
parent | 1098044ebaddc4b637b043e7e6654f33969fef67 (diff) | |
download | chromium_src-2a1d6d91c755f42a4b15f4c64f7ffeddb38e8fdf.zip chromium_src-2a1d6d91c755f42a4b15f4c64f7ffeddb38e8fdf.tar.gz chromium_src-2a1d6d91c755f42a4b15f4c64f7ffeddb38e8fdf.tar.bz2 |
Regularize how ImageData and Graphics2D are created.
These objects were created differently than any other resoures. This cleans
them up to behave like the other resources.
BUG=
TEST=
Review URL: http://codereview.chromium.org/8790009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@112946 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/proxy/ppb_graphics_2d_proxy.cc')
-rw-r--r-- | ppapi/proxy/ppb_graphics_2d_proxy.cc | 69 |
1 files changed, 41 insertions, 28 deletions
diff --git a/ppapi/proxy/ppb_graphics_2d_proxy.cc b/ppapi/proxy/ppb_graphics_2d_proxy.cc index 3b630ea..59659e7 100644 --- a/ppapi/proxy/ppb_graphics_2d_proxy.cc +++ b/ppapi/proxy/ppb_graphics_2d_proxy.cc @@ -52,6 +52,8 @@ class Graphics2D : public Resource, public thunk::PPB_Graphics2D_API { return PluginDispatcher::GetForResource(this); } + static const ApiID kApiID = API_ID_PPB_GRAPHICS_2D; + PP_Size size_; PP_Bool is_always_opaque_; @@ -95,9 +97,8 @@ void Graphics2D::PaintImageData(PP_Resource image_data, PP_Rect dummy; memset(&dummy, 0, sizeof(PP_Rect)); GetDispatcher()->Send(new PpapiHostMsg_PPBGraphics2D_PaintImageData( - API_ID_PPB_GRAPHICS_2D, host_resource(), - image_object->host_resource(), *top_left, !!src_rect, - src_rect ? *src_rect : dummy)); + kApiID, host_resource(), image_object->host_resource(), *top_left, + !!src_rect, src_rect ? *src_rect : dummy)); } void Graphics2D::Scroll(const PP_Rect* clip_rect, @@ -105,8 +106,8 @@ void Graphics2D::Scroll(const PP_Rect* clip_rect, PP_Rect dummy; memset(&dummy, 0, sizeof(PP_Rect)); GetDispatcher()->Send(new PpapiHostMsg_PPBGraphics2D_Scroll( - API_ID_PPB_GRAPHICS_2D, host_resource(), - !!clip_rect, clip_rect ? *clip_rect : dummy, *amount)); + kApiID, host_resource(), !!clip_rect, clip_rect ? *clip_rect : dummy, + *amount)); } void Graphics2D::ReplaceContents(PP_Resource image_data) { @@ -116,8 +117,7 @@ void Graphics2D::ReplaceContents(PP_Resource image_data) { return; GetDispatcher()->Send(new PpapiHostMsg_PPBGraphics2D_ReplaceContents( - API_ID_PPB_GRAPHICS_2D, host_resource(), - image_object->host_resource())); + kApiID, host_resource(), image_object->host_resource())); } int32_t Graphics2D::Flush(PP_CompletionCallback callback) { @@ -130,8 +130,8 @@ int32_t Graphics2D::Flush(PP_CompletionCallback callback) { return PP_ERROR_INPROGRESS; // Can't have >1 flush pending. current_flush_callback_ = callback; - GetDispatcher()->Send(new PpapiHostMsg_PPBGraphics2D_Flush( - API_ID_PPB_GRAPHICS_2D, host_resource())); + GetDispatcher()->Send(new PpapiHostMsg_PPBGraphics2D_Flush(kApiID, + host_resource())); return PP_OK_COMPLETIONPENDING; } @@ -157,9 +157,8 @@ PP_Resource PPB_Graphics2D_Proxy::CreateProxyResource( return 0; HostResource result; - dispatcher->Send(new PpapiHostMsg_ResourceCreation_Graphics2D( - API_ID_RESOURCE_CREATION, instance, size, is_always_opaque, - &result)); + dispatcher->Send(new PpapiHostMsg_PPBGraphics2D_Create( + kApiID, instance, size, is_always_opaque, &result)); if (result.is_null()) return 0; return (new Graphics2D(result, size, is_always_opaque))->GetReference(); @@ -168,24 +167,37 @@ PP_Resource PPB_Graphics2D_Proxy::CreateProxyResource( bool PPB_Graphics2D_Proxy::OnMessageReceived(const IPC::Message& msg) { bool handled = true; IPC_BEGIN_MESSAGE_MAP(PPB_Graphics2D_Proxy, msg) + IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBGraphics2D_Create, + OnHostMsgCreate) IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBGraphics2D_PaintImageData, - OnMsgPaintImageData) + OnHostMsgPaintImageData) IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBGraphics2D_Scroll, - OnMsgScroll) + OnHostMsgScroll) IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBGraphics2D_ReplaceContents, - OnMsgReplaceContents) + OnHostMsgReplaceContents) IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBGraphics2D_Flush, - OnMsgFlush) + OnHostMsgFlush) IPC_MESSAGE_HANDLER(PpapiMsg_PPBGraphics2D_FlushACK, - OnMsgFlushACK) + OnPluginMsgFlushACK) IPC_MESSAGE_UNHANDLED(handled = false) IPC_END_MESSAGE_MAP() // FIXME(brettw) handle bad messages! return handled; } -void PPB_Graphics2D_Proxy::OnMsgPaintImageData( +void PPB_Graphics2D_Proxy::OnHostMsgCreate(PP_Instance instance, + const PP_Size& size, + PP_Bool is_always_opaque, + HostResource* result) { + thunk::EnterResourceCreation enter(instance); + if (enter.succeeded()) { + result->SetHostResource(instance, enter.functions()->CreateGraphics2D( + instance, size, is_always_opaque)); + } +} + +void PPB_Graphics2D_Proxy::OnHostMsgPaintImageData( const HostResource& graphics_2d, const HostResource& image_data, const PP_Point& top_left, @@ -198,17 +210,17 @@ void PPB_Graphics2D_Proxy::OnMsgPaintImageData( src_rect_specified ? &src_rect : NULL); } -void PPB_Graphics2D_Proxy::OnMsgScroll(const HostResource& graphics_2d, - bool clip_specified, - const PP_Rect& clip, - const PP_Point& amount) { +void PPB_Graphics2D_Proxy::OnHostMsgScroll(const HostResource& graphics_2d, + bool clip_specified, + const PP_Rect& clip, + const PP_Point& amount) { EnterHostFromHostResource<PPB_Graphics2D_API> enter(graphics_2d); if (enter.failed()) return; enter.object()->Scroll(clip_specified ? &clip : NULL, &amount); } -void PPB_Graphics2D_Proxy::OnMsgReplaceContents( +void PPB_Graphics2D_Proxy::OnHostMsgReplaceContents( const HostResource& graphics_2d, const HostResource& image_data) { EnterHostFromHostResource<PPB_Graphics2D_API> enter(graphics_2d); @@ -217,7 +229,7 @@ void PPB_Graphics2D_Proxy::OnMsgReplaceContents( enter.object()->ReplaceContents(image_data.host_resource()); } -void PPB_Graphics2D_Proxy::OnMsgFlush(const HostResource& graphics_2d) { +void PPB_Graphics2D_Proxy::OnHostMsgFlush(const HostResource& graphics_2d) { EnterHostFromHostResourceForceCallback<PPB_Graphics2D_API> enter( graphics_2d, callback_factory_, &PPB_Graphics2D_Proxy::SendFlushACKToPlugin, graphics_2d); @@ -226,8 +238,9 @@ void PPB_Graphics2D_Proxy::OnMsgFlush(const HostResource& graphics_2d) { enter.SetResult(enter.object()->Flush(enter.callback())); } -void PPB_Graphics2D_Proxy::OnMsgFlushACK(const HostResource& host_resource, - int32_t pp_error) { +void PPB_Graphics2D_Proxy::OnPluginMsgFlushACK( + const HostResource& host_resource, + int32_t pp_error) { EnterPluginFromHostResource<PPB_Graphics2D_API> enter(host_resource); if (enter.succeeded()) static_cast<Graphics2D*>(enter.object())->FlushACK(pp_error); @@ -236,8 +249,8 @@ void PPB_Graphics2D_Proxy::OnMsgFlushACK(const HostResource& host_resource, void PPB_Graphics2D_Proxy::SendFlushACKToPlugin( int32_t result, const HostResource& graphics_2d) { - dispatcher()->Send(new PpapiMsg_PPBGraphics2D_FlushACK( - API_ID_PPB_GRAPHICS_2D, graphics_2d, result)); + dispatcher()->Send(new PpapiMsg_PPBGraphics2D_FlushACK(kApiID, graphics_2d, + result)); } } // namespace proxy |