Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(243)

Unified Diff: ppapi/proxy/ppb_instance_proxy.cc

Issue 11053003: Migrate Graphics2D to new design. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: rebase upstream Created 8 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ppapi/proxy/ppb_instance_proxy.cc
diff --git a/ppapi/proxy/ppb_instance_proxy.cc b/ppapi/proxy/ppb_instance_proxy.cc
index fb71a93297d9c215dcff599c01c9a5c3bd165eb6..41c5e2323e413db9658af70c42725062d4ae1443 100644
--- a/ppapi/proxy/ppb_instance_proxy.cc
+++ b/ppapi/proxy/ppb_instance_proxy.cc
@@ -28,6 +28,8 @@
#include "ppapi/shared_impl/ppb_view_shared.h"
#include "ppapi/shared_impl/var.h"
#include "ppapi/thunk/enter.h"
+#include "ppapi/thunk/ppb_graphics_2d_api.h"
+#include "ppapi/thunk/ppb_graphics_3d_api.h"
#include "ppapi/thunk/thunk.h"
// Windows headers interfere with this file.
@@ -37,6 +39,8 @@
using ppapi::thunk::EnterInstanceNoLock;
using ppapi::thunk::EnterResourceNoLock;
+using ppapi::thunk::PPB_Graphics2D_API;
+using ppapi::thunk::PPB_Graphics3D_API;
using ppapi::thunk::PPB_Instance_API;
namespace ppapi {
@@ -196,9 +200,20 @@ PP_Bool PPB_Instance_Proxy::BindGraphics(PP_Instance instance,
return PP_FALSE;
PP_Bool result = PP_FALSE;
- dispatcher()->Send(new PpapiHostMsg_PPBInstance_BindGraphics(
- API_ID_PPB_INSTANCE, instance, object->host_resource(),
- &result));
+
+ // We need to pass different resource to Graphics 2D and 3D right now. Once
+ // 3D is migrated to the new design, we should be able to unify this.
+ EnterResourceNoLock<PPB_Graphics2D_API> enter_2d(device, false);
+ EnterResourceNoLock<PPB_Graphics3D_API> enter_3d(device, false);
+ if (enter_2d.succeeded()) {
+ dispatcher()->Send(new PpapiHostMsg_PPBInstance_BindGraphics(
+ API_ID_PPB_INSTANCE, instance, object->pp_resource(),
+ &result));
+ } else if (enter_3d.succeeded()) {
+ dispatcher()->Send(new PpapiHostMsg_PPBInstance_BindGraphics(
+ API_ID_PPB_INSTANCE, instance, object->host_resource().host_resource(),
+ &result));
+ }
return result;
}
@@ -752,12 +767,11 @@ void PPB_Instance_Proxy::OnHostMsgGetOwnerElementObject(
}
void PPB_Instance_Proxy::OnHostMsgBindGraphics(PP_Instance instance,
- const HostResource& device,
+ PP_Resource device,
PP_Bool* result) {
EnterInstanceNoLock enter(instance);
if (enter.succeeded()) {
- *result = enter.functions()->BindGraphics(instance,
- device.host_resource());
+ *result = enter.functions()->BindGraphics(instance, device);
}
}

Powered by Google App Engine
This is Rietveld 408576698