Index: cc/ipc/shared_quad_state_struct_traits.h |
diff --git a/cc/ipc/shared_quad_state_struct_traits.h b/cc/ipc/shared_quad_state_struct_traits.h |
index 73fd1aa1414579b7a06ccf380c6368a6f5dd402d..3b31c4881baaa730d27c59a6083926674753d747 100644 |
--- a/cc/ipc/shared_quad_state_struct_traits.h |
+++ b/cc/ipc/shared_quad_state_struct_traits.h |
@@ -10,6 +10,51 @@ |
namespace mojo { |
+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
|
+ const cc::SharedQuadState* sqs; |
+}; |
+ |
+template <> |
+struct StructTraits<cc::mojom::SharedQuadState, OptSharedQuadState> { |
+ static bool IsNull(const OptSharedQuadState& input) { return !input.sqs; } |
+ |
+ static void SetToNull(OptSharedQuadState* output) { output->sqs = nullptr; } |
+ |
+ static const gfx::Transform& quad_to_target_transform( |
+ const OptSharedQuadState& input) { |
+ return input.sqs->quad_to_target_transform; |
+ } |
+ |
+ static const gfx::Size& quad_layer_bounds(const OptSharedQuadState& input) { |
+ return input.sqs->quad_layer_bounds; |
+ } |
+ |
+ static const gfx::Rect& visible_quad_layer_rect( |
+ const OptSharedQuadState& input) { |
+ return input.sqs->visible_quad_layer_rect; |
+ } |
+ |
+ static const gfx::Rect& clip_rect(const OptSharedQuadState& input) { |
+ return input.sqs->clip_rect; |
+ } |
+ |
+ static bool is_clipped(const OptSharedQuadState& input) { |
+ return input.sqs->is_clipped; |
+ } |
+ |
+ static float opacity(const OptSharedQuadState& input) { |
+ return input.sqs->opacity; |
+ } |
+ |
+ static uint32_t blend_mode(const OptSharedQuadState& input) { |
+ return input.sqs->blend_mode; |
+ } |
+ |
+ static int32_t sorting_context_id(const OptSharedQuadState& input) { |
+ return input.sqs->sorting_context_id; |
+ } |
+}; |
+ |
template <> |
struct StructTraits<cc::mojom::SharedQuadState, cc::SharedQuadState> { |
static const gfx::Transform& quad_to_target_transform( |
@@ -79,10 +124,22 @@ struct ArrayTraits<SharedQuadStateListArray> { |
static Iterator GetBegin(SharedQuadStateListArray& input) { |
return input.list->begin(); |
} |
- static void AdvanceIterator(ConstIterator& iterator) { ++iterator; } |
- static void AdvanceIterator(Iterator& iterator) { ++iterator; } |
- static const Element& GetValue(ConstIterator& iterator) { return **iterator; } |
- static Element& GetValue(Iterator& iterator) { return **iterator; } |
+ static void AdvanceIterator(SharedQuadStateListArray& input, |
+ ConstIterator& iterator) { |
+ ++iterator; |
+ } |
+ static void AdvanceIterator(SharedQuadStateListArray& input, |
+ Iterator& iterator) { |
+ ++iterator; |
+ } |
+ static const Element& GetValue(SharedQuadStateListArray& input, |
+ ConstIterator& iterator) { |
+ return **iterator; |
+ } |
+ static Element& GetValue(SharedQuadStateListArray& input, |
+ Iterator& iterator) { |
+ return **iterator; |
+ } |
static size_t GetSize(const SharedQuadStateListArray& input) { |
return input.list->size(); |
} |