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

Unified Diff: cc/ipc/quads_struct_traits.h

Issue 2101543002: Implement StreamVideoDrawQuad StructTraits (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/ipc/quads.mojom ('k') | cc/ipc/quads_struct_traits.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/ipc/quads_struct_traits.h
diff --git a/cc/ipc/quads_struct_traits.h b/cc/ipc/quads_struct_traits.h
index 24742869391b06da67ff7d4ff4071688ddcf8636..ed602beb8f1aed81776fde2c93b702e2fca5fa19 100644
--- a/cc/ipc/quads_struct_traits.h
+++ b/cc/ipc/quads_struct_traits.h
@@ -145,6 +145,41 @@ struct StructTraits<cc::mojom::SolidColorQuadState, cc::DrawQuad> {
};
template <>
+struct StructTraits<cc::mojom::StreamVideoQuadState, cc::DrawQuad> {
+ static bool IsNull(const cc::DrawQuad& input) {
+ return input.material != cc::DrawQuad::STREAM_VIDEO_CONTENT;
+ }
+
+ static void SetToNull(cc::DrawQuad* output) {
+ // There is nothing to deserialize here if the DrawQuad is not a
+ // StreamVideoDrawQuad. If it is, then this should not be called.
+ DCHECK_NE(cc::DrawQuad::STREAM_VIDEO_CONTENT, output->material);
+ }
+
+ static uint32_t resource_id(const cc::DrawQuad& input) {
+ const cc::StreamVideoDrawQuad* quad =
+ cc::StreamVideoDrawQuad::MaterialCast(&input);
+ return quad->resources.ids[cc::StreamVideoDrawQuad::kResourceIdIndex];
+ }
+
+ static const gfx::Size& resource_size_in_pixels(const cc::DrawQuad& input) {
+ const cc::StreamVideoDrawQuad* quad =
+ cc::StreamVideoDrawQuad::MaterialCast(&input);
+ return quad->overlay_resources
+ .size_in_pixels[cc::StreamVideoDrawQuad::kResourceIdIndex];
+ }
+
+ static const gfx::Transform& matrix(const cc::DrawQuad& input) {
+ const cc::StreamVideoDrawQuad* quad =
+ cc::StreamVideoDrawQuad::MaterialCast(&input);
+ return quad->matrix;
+ }
+
+ static bool Read(cc::mojom::StreamVideoQuadStateDataView data,
+ cc::DrawQuad* out);
+};
+
+template <>
struct StructTraits<cc::mojom::SurfaceQuadState, cc::DrawQuad> {
static bool IsNull(const cc::DrawQuad& input) {
return input.material != cc::DrawQuad::SURFACE_CONTENT;
@@ -399,9 +434,8 @@ struct StructTraits<cc::mojom::DrawQuad, cc::DrawQuad> {
return quad;
}
- static cc::mojom::StreamVideoQuadStatePtr stream_video_quad_state(
- const cc::DrawQuad& data) {
- return nullptr;
+ static const cc::DrawQuad& stream_video_quad_state(const cc::DrawQuad& quad) {
+ return quad;
}
static const cc::DrawQuad& yuv_video_quad_state(const cc::DrawQuad& data) {
« no previous file with comments | « cc/ipc/quads.mojom ('k') | cc/ipc/quads_struct_traits.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698