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

Side by Side Diff: ppapi/thunk/ppb_view_thunk.cc

Issue 8951014: Change the DidChangeView update to take a new ViewChanged resource. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: More nacl fixes Created 8 years, 12 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2011 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 #include "ppapi/c/ppb_view.h"
6 #include "ppapi/shared_impl/ppb_view_shared.h"
7 #include "ppapi/thunk/enter.h"
8 #include "ppapi/thunk/ppb_view_api.h"
9 #include "ppapi/thunk/thunk.h"
10
11 namespace ppapi {
12 namespace thunk {
13
14 namespace {
15
16 typedef EnterResource<PPB_View_API> EnterView;
17
18 bool IsRectVisible(const PP_Rect& rect) {
19 return rect.size.width > 0 && rect.size.height > 0;
20 }
21
22 PP_Bool IsView(PP_Resource resource) {
23 EnterView enter(resource, false);
24 return enter.succeeded() ? PP_TRUE : PP_FALSE;
25 }
26
27 PP_Bool GetSize(PP_Resource resource, PP_Size* size) {
28 EnterView enter(resource, true);
29 if (enter.failed() || !size)
30 return PP_FALSE;
31 *size = enter.object()->GetData().rect.size;
32 return PP_TRUE;
33 }
34
35 PP_Bool GetRect(PP_Resource resource, PP_Rect* viewport) {
36 EnterView enter(resource, true);
37 if (enter.failed() || !viewport)
38 return PP_FALSE;
39 *viewport = enter.object()->GetData().rect;
40 return PP_TRUE;
41 }
42
43 PP_Bool IsFullscreen(PP_Resource resource) {
44 EnterView enter(resource, true);
45 if (enter.failed())
46 return PP_FALSE;
47 return PP_FromBool(enter.object()->GetData().is_fullscreen);
48 }
49
50 PP_Bool IsUserVisible(PP_Resource resource) {
51 EnterView enter(resource, true);
52 if (enter.failed())
53 return PP_FALSE;
54 return PP_FromBool(enter.object()->GetData().is_page_visible &&
55 IsRectVisible(enter.object()->GetData().clip_rect));
56 }
57
58 PP_Bool IsPageVisible(PP_Resource resource) {
59 EnterView enter(resource, true);
60 if (enter.failed())
61 return PP_FALSE;
62 return PP_FromBool(enter.object()->GetData().is_page_visible);
63 }
64
65 PP_Bool IsClipVisible(PP_Resource resource) {
66 EnterView enter(resource, true);
67 if (enter.failed())
68 return PP_FALSE;
69 return PP_FromBool(IsRectVisible(enter.object()->GetData().clip_rect));
70 }
71
72 PP_Bool GetClipRect(PP_Resource resource, PP_Rect* clip) {
73 EnterView enter(resource, true);
74 if (enter.failed() || !clip)
75 return PP_FALSE;
76 *clip = enter.object()->GetData().clip_rect;
77 return PP_TRUE;
78 }
79
80 const PPB_View g_ppb_view_thunk = {
81 &IsView,
82 &GetRect,
83 &IsFullscreen,
84 &IsUserVisible,
85 &IsPageVisible,
86 &GetClipRect
87 };
88
89 } // namespace
90
91 const PPB_View* GetPPB_View_Thunk() {
92 return &g_ppb_view_thunk;
93 }
94
95 } // namespace thunk
96 } // namespace ppapi
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698