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 #include "cc/ipc/quads_struct_traits.h" | 5 #include "cc/ipc/quads_struct_traits.h" |
6 #include "ui/gfx/mojo/transform_struct_traits.h" | 6 #include "ui/gfx/mojo/transform_struct_traits.h" |
7 | 7 |
8 namespace mojo { | 8 namespace mojo { |
9 | 9 |
10 cc::DrawQuad* AllocateAndConstruct( | 10 cc::DrawQuad* AllocateAndConstruct( |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
43 case cc::mojom::DrawQuadState::DataView::Tag::YUV_VIDEO_QUAD_STATE: | 43 case cc::mojom::DrawQuadState::DataView::Tag::YUV_VIDEO_QUAD_STATE: |
44 quad = list->AllocateAndConstruct<cc::YUVVideoDrawQuad>(); | 44 quad = list->AllocateAndConstruct<cc::YUVVideoDrawQuad>(); |
45 quad->material = cc::DrawQuad::YUV_VIDEO_CONTENT; | 45 quad->material = cc::DrawQuad::YUV_VIDEO_CONTENT; |
46 return quad; | 46 return quad; |
47 } | 47 } |
48 NOTREACHED(); | 48 NOTREACHED(); |
49 return nullptr; | 49 return nullptr; |
50 } | 50 } |
51 | 51 |
52 // static | 52 // static |
53 bool StructTraits<cc::mojom::DebugBorderQuadState, cc::DrawQuad>::Read( | 53 bool StructTraits<cc::mojom::DebugBorderQuadStateDataView, cc::DrawQuad>::Read( |
54 cc::mojom::DebugBorderQuadStateDataView data, | 54 cc::mojom::DebugBorderQuadStateDataView data, |
55 cc::DrawQuad* out) { | 55 cc::DrawQuad* out) { |
56 cc::DebugBorderDrawQuad* quad = static_cast<cc::DebugBorderDrawQuad*>(out); | 56 cc::DebugBorderDrawQuad* quad = static_cast<cc::DebugBorderDrawQuad*>(out); |
57 quad->color = data.color(); | 57 quad->color = data.color(); |
58 quad->width = data.width(); | 58 quad->width = data.width(); |
59 return true; | 59 return true; |
60 } | 60 } |
61 | 61 |
62 // static | 62 // static |
63 bool StructTraits<cc::mojom::RenderPassQuadState, cc::DrawQuad>::Read( | 63 bool StructTraits<cc::mojom::RenderPassQuadStateDataView, cc::DrawQuad>::Read( |
64 cc::mojom::RenderPassQuadStateDataView data, | 64 cc::mojom::RenderPassQuadStateDataView data, |
65 cc::DrawQuad* out) { | 65 cc::DrawQuad* out) { |
66 cc::RenderPassDrawQuad* quad = static_cast<cc::RenderPassDrawQuad*>(out); | 66 cc::RenderPassDrawQuad* quad = static_cast<cc::RenderPassDrawQuad*>(out); |
67 quad->resources.ids[cc::RenderPassDrawQuad::kMaskResourceIdIndex] = | 67 quad->resources.ids[cc::RenderPassDrawQuad::kMaskResourceIdIndex] = |
68 data.mask_resource_id(); | 68 data.mask_resource_id(); |
69 quad->resources.count = data.mask_resource_id() ? 1 : 0; | 69 quad->resources.count = data.mask_resource_id() ? 1 : 0; |
70 return data.ReadRenderPassId(&quad->render_pass_id) && | 70 return data.ReadRenderPassId(&quad->render_pass_id) && |
71 data.ReadMaskUvScale(&quad->mask_uv_scale) && | 71 data.ReadMaskUvScale(&quad->mask_uv_scale) && |
72 data.ReadMaskTextureSize(&quad->mask_texture_size) && | 72 data.ReadMaskTextureSize(&quad->mask_texture_size) && |
73 data.ReadFilters(&quad->filters) && | 73 data.ReadFilters(&quad->filters) && |
74 data.ReadFiltersScale(&quad->filters_scale) && | 74 data.ReadFiltersScale(&quad->filters_scale) && |
75 data.ReadBackgroundFilters(&quad->background_filters); | 75 data.ReadBackgroundFilters(&quad->background_filters); |
76 } | 76 } |
77 | 77 |
78 // static | 78 // static |
79 bool StructTraits<cc::mojom::SolidColorQuadState, cc::DrawQuad>::Read( | 79 bool StructTraits<cc::mojom::SolidColorQuadStateDataView, cc::DrawQuad>::Read( |
80 cc::mojom::SolidColorQuadStateDataView data, | 80 cc::mojom::SolidColorQuadStateDataView data, |
81 cc::DrawQuad* out) { | 81 cc::DrawQuad* out) { |
82 cc::SolidColorDrawQuad* quad = static_cast<cc::SolidColorDrawQuad*>(out); | 82 cc::SolidColorDrawQuad* quad = static_cast<cc::SolidColorDrawQuad*>(out); |
83 quad->force_anti_aliasing_off = data.force_anti_aliasing_off(); | 83 quad->force_anti_aliasing_off = data.force_anti_aliasing_off(); |
84 quad->color = data.color(); | 84 quad->color = data.color(); |
85 return true; | 85 return true; |
86 } | 86 } |
87 | 87 |
88 // static | 88 // static |
89 bool StructTraits<cc::mojom::StreamVideoQuadState, cc::DrawQuad>::Read( | 89 bool StructTraits<cc::mojom::StreamVideoQuadStateDataView, cc::DrawQuad>::Read( |
90 cc::mojom::StreamVideoQuadStateDataView data, | 90 cc::mojom::StreamVideoQuadStateDataView data, |
91 cc::DrawQuad* out) { | 91 cc::DrawQuad* out) { |
92 cc::StreamVideoDrawQuad* quad = static_cast<cc::StreamVideoDrawQuad*>(out); | 92 cc::StreamVideoDrawQuad* quad = static_cast<cc::StreamVideoDrawQuad*>(out); |
93 quad->resources.ids[cc::StreamVideoDrawQuad::kResourceIdIndex] = | 93 quad->resources.ids[cc::StreamVideoDrawQuad::kResourceIdIndex] = |
94 data.resource_id(); | 94 data.resource_id(); |
95 quad->resources.count = 1; | 95 quad->resources.count = 1; |
96 return data.ReadResourceSizeInPixels( | 96 return data.ReadResourceSizeInPixels( |
97 &quad->overlay_resources | 97 &quad->overlay_resources |
98 .size_in_pixels[cc::StreamVideoDrawQuad::kResourceIdIndex]) && | 98 .size_in_pixels[cc::StreamVideoDrawQuad::kResourceIdIndex]) && |
99 data.ReadMatrix(&quad->matrix); | 99 data.ReadMatrix(&quad->matrix); |
100 } | 100 } |
101 | 101 |
102 // static | 102 // static |
103 bool StructTraits<cc::mojom::SurfaceQuadState, cc::DrawQuad>::Read( | 103 bool StructTraits<cc::mojom::SurfaceQuadStateDataView, cc::DrawQuad>::Read( |
104 cc::mojom::SurfaceQuadStateDataView data, | 104 cc::mojom::SurfaceQuadStateDataView data, |
105 cc::DrawQuad* out) { | 105 cc::DrawQuad* out) { |
106 cc::SurfaceDrawQuad* quad = static_cast<cc::SurfaceDrawQuad*>(out); | 106 cc::SurfaceDrawQuad* quad = static_cast<cc::SurfaceDrawQuad*>(out); |
107 return data.ReadSurface(&quad->surface_id); | 107 return data.ReadSurface(&quad->surface_id); |
108 } | 108 } |
109 | 109 |
110 // static | 110 // static |
111 bool StructTraits<cc::mojom::TextureQuadState, cc::DrawQuad>::Read( | 111 bool StructTraits<cc::mojom::TextureQuadStateDataView, cc::DrawQuad>::Read( |
112 cc::mojom::TextureQuadStateDataView data, | 112 cc::mojom::TextureQuadStateDataView data, |
113 cc::DrawQuad* out) { | 113 cc::DrawQuad* out) { |
114 cc::TextureDrawQuad* quad = static_cast<cc::TextureDrawQuad*>(out); | 114 cc::TextureDrawQuad* quad = static_cast<cc::TextureDrawQuad*>(out); |
115 quad->resources.ids[cc::TextureDrawQuad::kResourceIdIndex] = | 115 quad->resources.ids[cc::TextureDrawQuad::kResourceIdIndex] = |
116 data.resource_id(); | 116 data.resource_id(); |
117 quad->resources.count = 1; | 117 quad->resources.count = 1; |
118 quad->premultiplied_alpha = data.premultiplied_alpha(); | 118 quad->premultiplied_alpha = data.premultiplied_alpha(); |
119 if (!data.ReadUvTopLeft(&quad->uv_top_left) || | 119 if (!data.ReadUvTopLeft(&quad->uv_top_left) || |
120 !data.ReadUvBottomRight(&quad->uv_bottom_right)) { | 120 !data.ReadUvBottomRight(&quad->uv_bottom_right)) { |
121 return false; | 121 return false; |
122 } | 122 } |
123 quad->background_color = data.background_color(); | 123 quad->background_color = data.background_color(); |
124 CArray<float> vertex_opacity_array = {4, 4, &quad->vertex_opacity[0]}; | 124 CArray<float> vertex_opacity_array = {4, 4, &quad->vertex_opacity[0]}; |
125 if (!data.ReadVertexOpacity(&vertex_opacity_array)) | 125 if (!data.ReadVertexOpacity(&vertex_opacity_array)) |
126 return false; | 126 return false; |
127 | 127 |
128 quad->y_flipped = data.y_flipped(); | 128 quad->y_flipped = data.y_flipped(); |
129 quad->nearest_neighbor = data.nearest_neighbor(); | 129 quad->nearest_neighbor = data.nearest_neighbor(); |
130 quad->secure_output_only = data.secure_output_only(); | 130 quad->secure_output_only = data.secure_output_only(); |
131 return true; | 131 return true; |
132 } | 132 } |
133 | 133 |
134 // static | 134 // static |
135 bool StructTraits<cc::mojom::TileQuadState, cc::DrawQuad>::Read( | 135 bool StructTraits<cc::mojom::TileQuadStateDataView, cc::DrawQuad>::Read( |
136 cc::mojom::TileQuadStateDataView data, | 136 cc::mojom::TileQuadStateDataView data, |
137 cc::DrawQuad* out) { | 137 cc::DrawQuad* out) { |
138 cc::TileDrawQuad* quad = static_cast<cc::TileDrawQuad*>(out); | 138 cc::TileDrawQuad* quad = static_cast<cc::TileDrawQuad*>(out); |
139 if (!data.ReadTexCoordRect(&quad->tex_coord_rect) || | 139 if (!data.ReadTexCoordRect(&quad->tex_coord_rect) || |
140 !data.ReadTextureSize(&quad->texture_size)) { | 140 !data.ReadTextureSize(&quad->texture_size)) { |
141 return false; | 141 return false; |
142 } | 142 } |
143 | 143 |
144 quad->swizzle_contents = data.swizzle_contents(); | 144 quad->swizzle_contents = data.swizzle_contents(); |
145 quad->nearest_neighbor = data.nearest_neighbor(); | 145 quad->nearest_neighbor = data.nearest_neighbor(); |
(...skipping 29 matching lines...) Expand all Loading... |
175 *out = cc::YUVVideoDrawQuad::REC_709; | 175 *out = cc::YUVVideoDrawQuad::REC_709; |
176 return true; | 176 return true; |
177 case cc::mojom::YUVColorSpace::JPEG: | 177 case cc::mojom::YUVColorSpace::JPEG: |
178 *out = cc::YUVVideoDrawQuad::JPEG; | 178 *out = cc::YUVVideoDrawQuad::JPEG; |
179 return true; | 179 return true; |
180 } | 180 } |
181 return false; | 181 return false; |
182 } | 182 } |
183 | 183 |
184 // static | 184 // static |
185 bool StructTraits<cc::mojom::YUVVideoQuadState, cc::DrawQuad>::Read( | 185 bool StructTraits<cc::mojom::YUVVideoQuadStateDataView, cc::DrawQuad>::Read( |
186 cc::mojom::YUVVideoQuadStateDataView data, | 186 cc::mojom::YUVVideoQuadStateDataView data, |
187 cc::DrawQuad* out) { | 187 cc::DrawQuad* out) { |
188 cc::YUVVideoDrawQuad* quad = static_cast<cc::YUVVideoDrawQuad*>(out); | 188 cc::YUVVideoDrawQuad* quad = static_cast<cc::YUVVideoDrawQuad*>(out); |
189 if (!data.ReadYaTexCoordRect(&quad->ya_tex_coord_rect) || | 189 if (!data.ReadYaTexCoordRect(&quad->ya_tex_coord_rect) || |
190 !data.ReadUvTexCoordRect(&quad->uv_tex_coord_rect) || | 190 !data.ReadUvTexCoordRect(&quad->uv_tex_coord_rect) || |
191 !data.ReadYaTexSize(&quad->ya_tex_size) || | 191 !data.ReadYaTexSize(&quad->ya_tex_size) || |
192 !data.ReadUvTexSize(&quad->uv_tex_size)) { | 192 !data.ReadUvTexSize(&quad->uv_tex_size)) { |
193 return false; | 193 return false; |
194 } | 194 } |
195 quad->resources.ids[cc::YUVVideoDrawQuad::kYPlaneResourceIdIndex] = | 195 quad->resources.ids[cc::YUVVideoDrawQuad::kYPlaneResourceIdIndex] = |
(...skipping 15 matching lines...) Expand all Loading... |
211 quad->resource_multiplier = data.resource_multiplier(); | 211 quad->resource_multiplier = data.resource_multiplier(); |
212 quad->bits_per_channel = data.bits_per_channel(); | 212 quad->bits_per_channel = data.bits_per_channel(); |
213 if (quad->bits_per_channel < cc::YUVVideoDrawQuad::kMinBitsPerChannel || | 213 if (quad->bits_per_channel < cc::YUVVideoDrawQuad::kMinBitsPerChannel || |
214 quad->bits_per_channel > cc::YUVVideoDrawQuad::kMaxBitsPerChannel) { | 214 quad->bits_per_channel > cc::YUVVideoDrawQuad::kMaxBitsPerChannel) { |
215 return false; | 215 return false; |
216 } | 216 } |
217 return true; | 217 return true; |
218 } | 218 } |
219 | 219 |
220 // static | 220 // static |
221 bool StructTraits<cc::mojom::DrawQuad, cc::DrawQuad>::Read( | 221 bool StructTraits<cc::mojom::DrawQuadDataView, cc::DrawQuad>::Read( |
222 cc::mojom::DrawQuadDataView data, | 222 cc::mojom::DrawQuadDataView data, |
223 cc::DrawQuad* out) { | 223 cc::DrawQuad* out) { |
224 if (!data.ReadRect(&out->rect) || !data.ReadOpaqueRect(&out->opaque_rect) || | 224 if (!data.ReadRect(&out->rect) || !data.ReadOpaqueRect(&out->opaque_rect) || |
225 !data.ReadVisibleRect(&out->visible_rect)) { | 225 !data.ReadVisibleRect(&out->visible_rect)) { |
226 return false; | 226 return false; |
227 } | 227 } |
228 out->needs_blending = data.needs_blending(); | 228 out->needs_blending = data.needs_blending(); |
229 return data.ReadDrawQuadState(out); | 229 return data.ReadDrawQuadState(out); |
230 } | 230 } |
231 | 231 |
232 } // namespace mojo | 232 } // namespace mojo |
OLD | NEW |