OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "ppapi/shared_impl/ppb_view_shared.h" | 5 #include "ppapi/shared_impl/ppb_view_shared.h" |
6 | 6 |
7 namespace { | 7 namespace { |
8 | 8 |
9 bool IsRectNonempty(const PP_Rect& rect) { | 9 bool IsRectNonempty(const PP_Rect& rect) { |
10 return rect.size.width > 0 && rect.size.height > 0; | 10 return rect.size.width > 0 && rect.size.height > 0; |
11 } | 11 } |
12 | 12 |
13 } // namespace | 13 } // namespace |
14 | 14 |
15 namespace ppapi { | 15 namespace ppapi { |
16 | 16 |
17 ViewData::ViewData() { | 17 ViewData::ViewData() { |
18 // Assume POD. | 18 // Assume POD. |
19 memset(this, 0, sizeof(ViewData)); | 19 memset(this, 0, sizeof(ViewData)); |
20 | 20 |
21 device_scale = 1.0f; | 21 device_scale = 1.0f; |
22 css_scale = 1.0f; | 22 css_scale = 1.0f; |
23 } | 23 } |
24 | 24 |
25 ViewData::~ViewData() { | 25 ViewData::~ViewData() {} |
26 } | |
27 | 26 |
28 bool ViewData::Equals(const ViewData& other) const { | 27 bool ViewData::Equals(const ViewData& other) const { |
29 return rect.point.x == other.rect.point.x && | 28 return rect.point.x == other.rect.point.x && |
30 rect.point.y == other.rect.point.y && | 29 rect.point.y == other.rect.point.y && |
31 rect.size.width == other.rect.size.width && | 30 rect.size.width == other.rect.size.width && |
32 rect.size.height == other.rect.size.height && | 31 rect.size.height == other.rect.size.height && |
33 is_fullscreen == other.is_fullscreen && | 32 is_fullscreen == other.is_fullscreen && |
34 is_page_visible == other.is_page_visible && | 33 is_page_visible == other.is_page_visible && |
35 clip_rect.point.x == other.clip_rect.point.x && | 34 clip_rect.point.x == other.clip_rect.point.x && |
36 clip_rect.point.y == other.clip_rect.point.y && | 35 clip_rect.point.y == other.clip_rect.point.y && |
37 clip_rect.size.width == other.clip_rect.size.width && | 36 clip_rect.size.width == other.clip_rect.size.width && |
38 clip_rect.size.height == other.clip_rect.size.height && | 37 clip_rect.size.height == other.clip_rect.size.height && |
39 device_scale == other.device_scale && | 38 device_scale == other.device_scale && css_scale == other.css_scale; |
40 css_scale == other.css_scale; | |
41 } | 39 } |
42 | 40 |
43 PPB_View_Shared::PPB_View_Shared(ResourceObjectType type, | 41 PPB_View_Shared::PPB_View_Shared(ResourceObjectType type, |
44 PP_Instance instance, | 42 PP_Instance instance, |
45 const ViewData& data) | 43 const ViewData& data) |
46 : Resource(type, instance), | 44 : Resource(type, instance), data_(data) {} |
47 data_(data) { | |
48 } | |
49 | 45 |
50 PPB_View_Shared::~PPB_View_Shared() { | 46 PPB_View_Shared::~PPB_View_Shared() {} |
51 } | |
52 | 47 |
53 thunk::PPB_View_API* PPB_View_Shared::AsPPB_View_API() { | 48 thunk::PPB_View_API* PPB_View_Shared::AsPPB_View_API() { return this; } |
54 return this; | |
55 } | |
56 | 49 |
57 const ViewData& PPB_View_Shared::GetData() const { | 50 const ViewData& PPB_View_Shared::GetData() const { return data_; } |
58 return data_; | |
59 } | |
60 | 51 |
61 PP_Bool PPB_View_Shared::GetRect(PP_Rect* viewport) const { | 52 PP_Bool PPB_View_Shared::GetRect(PP_Rect* viewport) const { |
62 if (!viewport) | 53 if (!viewport) |
63 return PP_FALSE; | 54 return PP_FALSE; |
64 *viewport = data_.rect; | 55 *viewport = data_.rect; |
65 return PP_TRUE; | 56 return PP_TRUE; |
66 } | 57 } |
67 | 58 |
68 PP_Bool PPB_View_Shared::IsFullscreen() const { | 59 PP_Bool PPB_View_Shared::IsFullscreen() const { |
69 return PP_FromBool(data_.is_fullscreen); | 60 return PP_FromBool(data_.is_fullscreen); |
70 } | 61 } |
71 | 62 |
72 PP_Bool PPB_View_Shared::IsVisible() const { | 63 PP_Bool PPB_View_Shared::IsVisible() const { |
73 return PP_FromBool(data_.is_page_visible && IsRectNonempty(data_.clip_rect)); | 64 return PP_FromBool(data_.is_page_visible && IsRectNonempty(data_.clip_rect)); |
74 } | 65 } |
75 | 66 |
76 PP_Bool PPB_View_Shared::IsPageVisible() const { | 67 PP_Bool PPB_View_Shared::IsPageVisible() const { |
77 return PP_FromBool(data_.is_page_visible); | 68 return PP_FromBool(data_.is_page_visible); |
78 } | 69 } |
79 | 70 |
80 PP_Bool PPB_View_Shared::GetClipRect(PP_Rect* clip) const { | 71 PP_Bool PPB_View_Shared::GetClipRect(PP_Rect* clip) const { |
81 if (!clip) | 72 if (!clip) |
82 return PP_FALSE; | 73 return PP_FALSE; |
83 *clip = data_.clip_rect; | 74 *clip = data_.clip_rect; |
84 return PP_TRUE; | 75 return PP_TRUE; |
85 } | 76 } |
86 | 77 |
87 float PPB_View_Shared::GetDeviceScale() const { | 78 float PPB_View_Shared::GetDeviceScale() const { return data_.device_scale; } |
88 return data_.device_scale; | |
89 } | |
90 | 79 |
91 float PPB_View_Shared::GetCSSScale() const { | 80 float PPB_View_Shared::GetCSSScale() const { return data_.css_scale; } |
92 return data_.css_scale; | |
93 } | |
94 | 81 |
95 } // namespace ppapi | 82 } // namespace ppapi |
OLD | NEW |