summaryrefslogtreecommitdiffstats
path: root/ppapi/proxy/ppb_graphics_2d_proxy.cc
diff options
context:
space:
mode:
authorbrettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-04 23:29:06 +0000
committerbrettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-04 23:29:06 +0000
commit2a1d6d91c755f42a4b15f4c64f7ffeddb38e8fdf (patch)
tree76f2667611cd906a5eda052d8c59ec5979bc387e /ppapi/proxy/ppb_graphics_2d_proxy.cc
parent1098044ebaddc4b637b043e7e6654f33969fef67 (diff)
downloadchromium_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.cc69
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