Chromium Code Reviews| 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 |