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

Side by Side Diff: cc/ipc/shared_quad_state_struct_traits.h

Issue 2174843003: cc mojo: Use ArrayDataViews in RenderPasses (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: A little bit of cleanup Created 4 years, 5 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
OLDNEW
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
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
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_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698