1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 // From ppb_view.idl modified Wed Apr 10 14:15:15 2013. 6 7 #include "ppapi/c/pp_errors.h" 8 #include "ppapi/c/ppb_view.h" 9 #include "ppapi/shared_impl/tracked_callback.h" 10 #include "ppapi/thunk/enter.h" 11 #include "ppapi/thunk/ppb_instance_api.h" 12 #include "ppapi/thunk/ppb_view_api.h" 13 #include "ppapi/thunk/resource_creation_api.h" 14 #include "ppapi/thunk/thunk.h" 15 16 namespace ppapi { 17 namespace thunk { 18 19 namespace { 20 21 PP_Bool IsView(PP_Resource resource) { 22 VLOG(4) << "PPB_View::IsView()"; 23 EnterResource<PPB_View_API> enter(resource, false); 24 return PP_FromBool(enter.succeeded()); 25 } 26 27 PP_Bool GetRect(PP_Resource resource, struct PP_Rect* rect) { 28 VLOG(4) << "PPB_View::GetRect()"; 29 EnterResource<PPB_View_API> enter(resource, true); 30 if (enter.failed()) 31 return PP_FALSE; 32 return enter.object()->GetRect(rect); 33 } 34 35 PP_Bool IsFullscreen(PP_Resource resource) { 36 VLOG(4) << "PPB_View::IsFullscreen()"; 37 EnterResource<PPB_View_API> enter(resource, true); 38 if (enter.failed()) 39 return PP_FALSE; 40 return enter.object()->IsFullscreen(); 41 } 42 43 PP_Bool IsVisible(PP_Resource resource) { 44 VLOG(4) << "PPB_View::IsVisible()"; 45 EnterResource<PPB_View_API> enter(resource, true); 46 if (enter.failed()) 47 return PP_FALSE; 48 return enter.object()->IsVisible(); 49 } 50 51 PP_Bool IsPageVisible(PP_Resource resource) { 52 VLOG(4) << "PPB_View::IsPageVisible()"; 53 EnterResource<PPB_View_API> enter(resource, true); 54 if (enter.failed()) 55 return PP_FALSE; 56 return enter.object()->IsPageVisible(); 57 } 58 59 PP_Bool GetClipRect(PP_Resource resource, struct PP_Rect* clip) { 60 VLOG(4) << "PPB_View::GetClipRect()"; 61 EnterResource<PPB_View_API> enter(resource, true); 62 if (enter.failed()) 63 return PP_FALSE; 64 return enter.object()->GetClipRect(clip); 65 } 66 67 float GetDeviceScale(PP_Resource resource) { 68 VLOG(4) << "PPB_View::GetDeviceScale()"; 69 EnterResource<PPB_View_API> enter(resource, true); 70 if (enter.failed()) 71 return 0.0f; 72 return enter.object()->GetDeviceScale(); 73 } 74 75 float GetCSSScale(PP_Resource resource) { 76 VLOG(4) << "PPB_View::GetCSSScale()"; 77 EnterResource<PPB_View_API> enter(resource, true); 78 if (enter.failed()) 79 return 0.0f; 80 return enter.object()->GetCSSScale(); 81 } 82 83 const PPB_View_1_0 g_ppb_view_thunk_1_0 = { 84 &IsView, 85 &GetRect, 86 &IsFullscreen, 87 &IsVisible, 88 &IsPageVisible, 89 &GetClipRect 90 }; 91 92 const PPB_View_1_1 g_ppb_view_thunk_1_1 = { 93 &IsView, 94 &GetRect, 95 &IsFullscreen, 96 &IsVisible, 97 &IsPageVisible, 98 &GetClipRect, 99 &GetDeviceScale, 100 &GetCSSScale 101 }; 102 103 } // namespace 104 105 const PPB_View_1_0* GetPPB_View_1_0_Thunk() { 106 return &g_ppb_view_thunk_1_0; 107 } 108 109 const PPB_View_1_1* GetPPB_View_1_1_Thunk() { 110 return &g_ppb_view_thunk_1_1; 111 } 112 113 } // namespace thunk 114 } // namespace ppapi 115