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

Side by Side Diff: cc/ipc/quads_struct_traits.cc

Issue 2582823002: WIP: Surface Synchronization System
Patch Set: Only create ClientSurfaceEmbedder if window is visible. Trash it otherwise. Created 3 years, 11 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 #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 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
95 quad->resources.ids[cc::StreamVideoDrawQuad::kResourceIdIndex] = 95 quad->resources.ids[cc::StreamVideoDrawQuad::kResourceIdIndex] =
96 data.resource_id(); 96 data.resource_id();
97 quad->resources.count = 1; 97 quad->resources.count = 1;
98 return data.ReadResourceSizeInPixels( 98 return data.ReadResourceSizeInPixels(
99 &quad->overlay_resources 99 &quad->overlay_resources
100 .size_in_pixels[cc::StreamVideoDrawQuad::kResourceIdIndex]) && 100 .size_in_pixels[cc::StreamVideoDrawQuad::kResourceIdIndex]) &&
101 data.ReadMatrix(&quad->matrix); 101 data.ReadMatrix(&quad->matrix);
102 } 102 }
103 103
104 // static 104 // static
105 cc::mojom::SurfaceDrawQuadType
106 EnumTraits<cc::mojom::SurfaceDrawQuadType, cc::SurfaceDrawQuadType>::ToMojom(
107 cc::SurfaceDrawQuadType surface_draw_quad_type) {
108 switch (surface_draw_quad_type) {
109 case cc::SurfaceDrawQuadType::PRIMARY:
110 return cc::mojom::SurfaceDrawQuadType::PRIMARY;
111 case cc::SurfaceDrawQuadType::FALLBACK:
112 return cc::mojom::SurfaceDrawQuadType::FALLBACK;
113 }
114 }
115
116 // static
117 bool EnumTraits<cc::mojom::SurfaceDrawQuadType, cc::SurfaceDrawQuadType>::
118 FromMojom(cc::mojom::SurfaceDrawQuadType input,
119 cc::SurfaceDrawQuadType* out) {
120 switch (input) {
121 case cc::mojom::SurfaceDrawQuadType::PRIMARY:
122 *out = cc::SurfaceDrawQuadType::PRIMARY;
123 return true;
124 case cc::mojom::SurfaceDrawQuadType::FALLBACK:
125 *out = cc::SurfaceDrawQuadType::FALLBACK;
126 return true;
127 }
128 return false;
129 }
130
131 // static
105 bool StructTraits<cc::mojom::SurfaceQuadStateDataView, cc::DrawQuad>::Read( 132 bool StructTraits<cc::mojom::SurfaceQuadStateDataView, cc::DrawQuad>::Read(
106 cc::mojom::SurfaceQuadStateDataView data, 133 cc::mojom::SurfaceQuadStateDataView data,
107 cc::DrawQuad* out) { 134 cc::DrawQuad* out) {
108 cc::SurfaceDrawQuad* quad = static_cast<cc::SurfaceDrawQuad*>(out); 135 cc::SurfaceDrawQuad* quad = static_cast<cc::SurfaceDrawQuad*>(out);
109 return data.ReadSurface(&quad->surface_id); 136 // This wil be populated in RenderPass deserialization.
137 quad->fallback_quad = nullptr;
138 return data.ReadSurfaceDrawQuadType(&quad->surface_draw_quad_type) &&
139 data.ReadSurface(&quad->surface_id);
110 } 140 }
111 141
112 // static 142 // static
113 bool StructTraits<cc::mojom::TextureQuadStateDataView, cc::DrawQuad>::Read( 143 bool StructTraits<cc::mojom::TextureQuadStateDataView, cc::DrawQuad>::Read(
114 cc::mojom::TextureQuadStateDataView data, 144 cc::mojom::TextureQuadStateDataView data,
115 cc::DrawQuad* out) { 145 cc::DrawQuad* out) {
116 cc::TextureDrawQuad* quad = static_cast<cc::TextureDrawQuad*>(out); 146 cc::TextureDrawQuad* quad = static_cast<cc::TextureDrawQuad*>(out);
117 147
118 quad->resources.ids[cc::TextureDrawQuad::kResourceIdIndex] = 148 quad->resources.ids[cc::TextureDrawQuad::kResourceIdIndex] =
119 data.resource_id(); 149 data.resource_id();
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
232 cc::DrawQuad* out) { 262 cc::DrawQuad* out) {
233 if (!data.ReadRect(&out->rect) || !data.ReadOpaqueRect(&out->opaque_rect) || 263 if (!data.ReadRect(&out->rect) || !data.ReadOpaqueRect(&out->opaque_rect) ||
234 !data.ReadVisibleRect(&out->visible_rect)) { 264 !data.ReadVisibleRect(&out->visible_rect)) {
235 return false; 265 return false;
236 } 266 }
237 out->needs_blending = data.needs_blending(); 267 out->needs_blending = data.needs_blending();
238 return data.ReadDrawQuadState(out); 268 return data.ReadDrawQuadState(out);
239 } 269 }
240 270
241 } // namespace mojo 271 } // namespace mojo
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698