Chromium Code Reviews| Index: ppapi/proxy/ppb_graphics_2d_proxy.cc |
| diff --git a/ppapi/proxy/ppb_graphics_2d_proxy.cc b/ppapi/proxy/ppb_graphics_2d_proxy.cc |
| index 0cbd3885af2dc51b4ea8a9a561c6d887f7b84e60..00c3f2828db0f2da69f2b45b5311b5faa8d9adca 100644 |
| --- a/ppapi/proxy/ppb_graphics_2d_proxy.cc |
| +++ b/ppapi/proxy/ppb_graphics_2d_proxy.cc |
| @@ -43,6 +43,8 @@ class Graphics2D : public Resource, public thunk::PPB_Graphics2D_API { |
| void Scroll(const PP_Rect* clip_rect, |
| const PP_Point* amount); |
| void ReplaceContents(PP_Resource image_data); |
| + bool SetScale(float scale); |
| + float GetScale() { return scale_; } |
|
brettw
2012/06/19 20:21:27
Can you make this non-inline? It makes it difficul
Josh Horwich
2012/06/19 23:56:15
Done.
|
| int32_t Flush(PP_CompletionCallback callback); |
| // Notification that the host has sent an ACK for a pending Flush. |
| @@ -57,6 +59,7 @@ class Graphics2D : public Resource, public thunk::PPB_Graphics2D_API { |
| PP_Size size_; |
| PP_Bool is_always_opaque_; |
| + float scale_; |
| // In the plugin, this is the current callback set for Flushes. When the |
| // pointer is non-NULL, we're waiting for a flush ACK. |
| @@ -70,7 +73,8 @@ Graphics2D::Graphics2D(const HostResource& host_resource, |
| PP_Bool is_always_opaque) |
| : Resource(OBJECT_IS_PROXY, host_resource), |
| size_(size), |
| - is_always_opaque_(is_always_opaque) { |
| + is_always_opaque_(is_always_opaque), |
| + scale_(1.0f) { |
| } |
| Graphics2D::~Graphics2D() { |
| @@ -126,6 +130,15 @@ void Graphics2D::ReplaceContents(PP_Resource image_data) { |
| kApiID, host_resource(), image_object->host_resource())); |
| } |
| +bool Graphics2D::SetScale(float scale) { |
| + bool result; |
| + GetDispatcher()->Send(new PpapiHostMsg_PPBGraphics2D_Dev_SetScale( |
| + kApiID, host_resource(), scale, &result)); |
| + if (result) |
| + scale_ = scale; |
| + return result; |
| +} |
| + |
| int32_t Graphics2D::Flush(PP_CompletionCallback callback) { |
| // For now, disallow blocking calls. We'll need to add support for other |
| // threads to this later. |
| @@ -183,6 +196,8 @@ bool PPB_Graphics2D_Proxy::OnMessageReceived(const IPC::Message& msg) { |
| OnHostMsgReplaceContents) |
| IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBGraphics2D_Flush, |
| OnHostMsgFlush) |
| + IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBGraphics2D_Dev_SetScale, |
| + OnHostMsgSetScale) |
| IPC_MESSAGE_HANDLER(PpapiMsg_PPBGraphics2D_FlushACK, |
| OnPluginMsgFlushACK) |
| @@ -244,6 +259,16 @@ void PPB_Graphics2D_Proxy::OnHostMsgFlush(const HostResource& graphics_2d) { |
| enter.SetResult(enter.object()->Flush(enter.callback())); |
| } |
| +void PPB_Graphics2D_Proxy::OnHostMsgSetScale(const HostResource& graphics_2d, |
| + float scale, |
| + bool* result) { |
| + EnterHostFromHostResource<PPB_Graphics2D_API> enter(graphics_2d); |
| + if (enter.succeeded()) |
| + *result = enter.object()->SetScale(scale); |
| + else |
| + *result = false; |
| +} |
| + |
| void PPB_Graphics2D_Proxy::OnPluginMsgFlushACK( |
| const HostResource& host_resource, |
| int32_t pp_error) { |