OLD | NEW |
---|---|
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 #ifndef CC_IPC_SHARED_QUAD_STATE_STRUCT_TRAITS_H_ | 5 #ifndef CC_IPC_SHARED_QUAD_STATE_STRUCT_TRAITS_H_ |
6 #define CC_IPC_SHARED_QUAD_STATE_STRUCT_TRAITS_H_ | 6 #define CC_IPC_SHARED_QUAD_STATE_STRUCT_TRAITS_H_ |
7 | 7 |
8 #include "cc/ipc/shared_quad_state.mojom.h" | 8 #include "cc/ipc/shared_quad_state.mojom.h" |
9 #include "cc/quads/shared_quad_state.h" | 9 #include "cc/quads/shared_quad_state.h" |
10 | 10 |
11 namespace mojo { | 11 namespace mojo { |
12 | 12 |
13 struct OptSharedQuadState { | |
yzshen1
2016/07/26 17:56:03
Could you use base::Optional<cc::SharedQuadState>?
Fady Samuel
2016/07/27 23:52:23
I don't think I can. I don't want to create anothe
yzshen1
2016/07/28 18:25:19
It is still possible if I let T* automatically use
| |
14 const cc::SharedQuadState* sqs; | |
15 }; | |
16 | |
17 template <> | |
18 struct StructTraits<cc::mojom::SharedQuadState, OptSharedQuadState> { | |
19 static bool IsNull(const OptSharedQuadState& input) { return !input.sqs; } | |
20 | |
21 static void SetToNull(OptSharedQuadState* output) { output->sqs = nullptr; } | |
22 | |
23 static const gfx::Transform& quad_to_target_transform( | |
24 const OptSharedQuadState& input) { | |
25 return input.sqs->quad_to_target_transform; | |
26 } | |
27 | |
28 static const gfx::Size& quad_layer_bounds(const OptSharedQuadState& input) { | |
29 return input.sqs->quad_layer_bounds; | |
30 } | |
31 | |
32 static const gfx::Rect& visible_quad_layer_rect( | |
33 const OptSharedQuadState& input) { | |
34 return input.sqs->visible_quad_layer_rect; | |
35 } | |
36 | |
37 static const gfx::Rect& clip_rect(const OptSharedQuadState& input) { | |
38 return input.sqs->clip_rect; | |
39 } | |
40 | |
41 static bool is_clipped(const OptSharedQuadState& input) { | |
42 return input.sqs->is_clipped; | |
43 } | |
44 | |
45 static float opacity(const OptSharedQuadState& input) { | |
46 return input.sqs->opacity; | |
47 } | |
48 | |
49 static uint32_t blend_mode(const OptSharedQuadState& input) { | |
50 return input.sqs->blend_mode; | |
51 } | |
52 | |
53 static int32_t sorting_context_id(const OptSharedQuadState& input) { | |
54 return input.sqs->sorting_context_id; | |
55 } | |
56 }; | |
57 | |
13 template <> | 58 template <> |
14 struct StructTraits<cc::mojom::SharedQuadState, cc::SharedQuadState> { | 59 struct StructTraits<cc::mojom::SharedQuadState, cc::SharedQuadState> { |
15 static const gfx::Transform& quad_to_target_transform( | 60 static const gfx::Transform& quad_to_target_transform( |
16 const cc::SharedQuadState& sqs) { | 61 const cc::SharedQuadState& sqs) { |
17 return sqs.quad_to_target_transform; | 62 return sqs.quad_to_target_transform; |
18 } | 63 } |
19 | 64 |
20 static const gfx::Size& quad_layer_bounds(const cc::SharedQuadState& sqs) { | 65 static const gfx::Size& quad_layer_bounds(const cc::SharedQuadState& sqs) { |
21 return sqs.quad_layer_bounds; | 66 return sqs.quad_layer_bounds; |
22 } | 67 } |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
72 using Element = cc::SharedQuadState; | 117 using Element = cc::SharedQuadState; |
73 using Iterator = cc::SharedQuadStateList::Iterator; | 118 using Iterator = cc::SharedQuadStateList::Iterator; |
74 using ConstIterator = cc::SharedQuadStateList::ConstIterator; | 119 using ConstIterator = cc::SharedQuadStateList::ConstIterator; |
75 | 120 |
76 static ConstIterator GetBegin(const SharedQuadStateListArray& input) { | 121 static ConstIterator GetBegin(const SharedQuadStateListArray& input) { |
77 return input.list->begin(); | 122 return input.list->begin(); |
78 } | 123 } |
79 static Iterator GetBegin(SharedQuadStateListArray& input) { | 124 static Iterator GetBegin(SharedQuadStateListArray& input) { |
80 return input.list->begin(); | 125 return input.list->begin(); |
81 } | 126 } |
82 static void AdvanceIterator(ConstIterator& iterator) { ++iterator; } | 127 static void AdvanceIterator(SharedQuadStateListArray& input, |
83 static void AdvanceIterator(Iterator& iterator) { ++iterator; } | 128 ConstIterator& iterator) { |
84 static const Element& GetValue(ConstIterator& iterator) { return **iterator; } | 129 ++iterator; |
85 static Element& GetValue(Iterator& iterator) { return **iterator; } | 130 } |
131 static void AdvanceIterator(SharedQuadStateListArray& input, | |
132 Iterator& iterator) { | |
133 ++iterator; | |
134 } | |
135 static const Element& GetValue(SharedQuadStateListArray& input, | |
136 ConstIterator& iterator) { | |
137 return **iterator; | |
138 } | |
139 static Element& GetValue(SharedQuadStateListArray& input, | |
140 Iterator& iterator) { | |
141 return **iterator; | |
142 } | |
86 static size_t GetSize(const SharedQuadStateListArray& input) { | 143 static size_t GetSize(const SharedQuadStateListArray& input) { |
87 return input.list->size(); | 144 return input.list->size(); |
88 } | 145 } |
89 static bool Resize(SharedQuadStateListArray& input, size_t size) { | 146 static bool Resize(SharedQuadStateListArray& input, size_t size) { |
90 if (input.list->size() == size) | 147 if (input.list->size() == size) |
91 return true; | 148 return true; |
92 input.list->clear(); | 149 input.list->clear(); |
93 for (size_t i = 0; i < size; ++i) | 150 for (size_t i = 0; i < size; ++i) |
94 input.list->AllocateAndConstruct<cc::SharedQuadState>(); | 151 input.list->AllocateAndConstruct<cc::SharedQuadState>(); |
95 return true; | 152 return true; |
(...skipping 10 matching lines...) Expand all Loading... | |
106 static bool Read(cc::mojom::SharedQuadStateListDataView data, | 163 static bool Read(cc::mojom::SharedQuadStateListDataView data, |
107 cc::SharedQuadStateList* out) { | 164 cc::SharedQuadStateList* out) { |
108 SharedQuadStateListArray sqs_array = {out}; | 165 SharedQuadStateListArray sqs_array = {out}; |
109 return data.ReadSharedQuadStates(&sqs_array); | 166 return data.ReadSharedQuadStates(&sqs_array); |
110 } | 167 } |
111 }; | 168 }; |
112 | 169 |
113 } // namespace mojo | 170 } // namespace mojo |
114 | 171 |
115 #endif // CC_IPC_SHARED_QUAD_STATE_STRUCT_TRAITS_H_ | 172 #endif // CC_IPC_SHARED_QUAD_STATE_STRUCT_TRAITS_H_ |
OLD | NEW |