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

Side by Side Diff: cc/output/overlay_strategy_common.cc

Issue 1152473006: cc: Remove DrawQuad::IterateResoruces (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: mkwst review Created 5 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/output/overlay_strategy_common.h" 5 #include "cc/output/overlay_strategy_common.h"
6 6
7 #include <limits> 7 #include <limits>
8 8
9 #include "cc/quads/solid_color_draw_quad.h" 9 #include "cc/quads/solid_color_draw_quad.h"
10 #include "cc/quads/stream_video_draw_quad.h" 10 #include "cc/quads/stream_video_draw_quad.h"
(...skipping 12 matching lines...) Expand all
23 resource_provider_(resource_provider) { 23 resource_provider_(resource_provider) {
24 } 24 }
25 25
26 OverlayStrategyCommon::~OverlayStrategyCommon() { 26 OverlayStrategyCommon::~OverlayStrategyCommon() {
27 } 27 }
28 28
29 bool OverlayStrategyCommon::IsOverlayQuad(const DrawQuad* draw_quad) { 29 bool OverlayStrategyCommon::IsOverlayQuad(const DrawQuad* draw_quad) {
30 unsigned int resource_id; 30 unsigned int resource_id;
31 switch (draw_quad->material) { 31 switch (draw_quad->material) {
32 case DrawQuad::TEXTURE_CONTENT: 32 case DrawQuad::TEXTURE_CONTENT:
33 resource_id = TextureDrawQuad::MaterialCast(draw_quad)->resource_id; 33 resource_id = TextureDrawQuad::MaterialCast(draw_quad)->resource_id();
34 break; 34 break;
35 case DrawQuad::STREAM_VIDEO_CONTENT: 35 case DrawQuad::STREAM_VIDEO_CONTENT:
36 resource_id = StreamVideoDrawQuad::MaterialCast(draw_quad)->resource_id; 36 resource_id = StreamVideoDrawQuad::MaterialCast(draw_quad)->resource_id();
37 break; 37 break;
38 default: 38 default:
39 return false; 39 return false;
40 } 40 }
41 return resource_provider_->AllowOverlay(resource_id); 41 return resource_provider_->AllowOverlay(resource_id);
42 } 42 }
43 43
44 bool OverlayStrategyCommon::IsInvisibleQuad(const DrawQuad* draw_quad) { 44 bool OverlayStrategyCommon::IsInvisibleQuad(const DrawQuad* draw_quad) {
45 if (draw_quad->material == DrawQuad::SOLID_COLOR) { 45 if (draw_quad->material == DrawQuad::SOLID_COLOR) {
46 const SolidColorDrawQuad* solid_quad = 46 const SolidColorDrawQuad* solid_quad =
47 SolidColorDrawQuad::MaterialCast(draw_quad); 47 SolidColorDrawQuad::MaterialCast(draw_quad);
48 SkColor color = solid_quad->color; 48 SkColor color = solid_quad->color;
49 float opacity = solid_quad->opacity(); 49 float opacity = solid_quad->opacity();
50 float alpha = (SkColorGetA(color) * (1.0f / 255.0f)) * opacity; 50 float alpha = (SkColorGetA(color) * (1.0f / 255.0f)) * opacity;
51 return solid_quad->ShouldDrawWithBlending() && 51 return solid_quad->ShouldDrawWithBlending() &&
52 alpha < std::numeric_limits<float>::epsilon(); 52 alpha < std::numeric_limits<float>::epsilon();
53 } 53 }
54 return false; 54 return false;
55 } 55 }
56 56
57 bool OverlayStrategyCommon::GetTextureQuadInfo(const TextureDrawQuad& quad, 57 bool OverlayStrategyCommon::GetTextureQuadInfo(const TextureDrawQuad& quad,
58 OverlayCandidate* quad_info) { 58 OverlayCandidate* quad_info) {
59 gfx::OverlayTransform overlay_transform = 59 gfx::OverlayTransform overlay_transform =
60 OverlayCandidate::GetOverlayTransform(quad.quadTransform(), 60 OverlayCandidate::GetOverlayTransform(quad.quadTransform(),
61 quad.y_flipped); 61 quad.y_flipped);
62 if (quad.background_color != SK_ColorTRANSPARENT || 62 if (quad.background_color != SK_ColorTRANSPARENT ||
63 quad.premultiplied_alpha || 63 quad.premultiplied_alpha ||
64 overlay_transform == gfx::OVERLAY_TRANSFORM_INVALID) 64 overlay_transform == gfx::OVERLAY_TRANSFORM_INVALID)
65 return false; 65 return false;
66 quad_info->resource_id = quad.resource_id; 66 quad_info->resource_id = quad.resource_id();
67 quad_info->transform = overlay_transform; 67 quad_info->transform = overlay_transform;
68 quad_info->uv_rect = BoundingRect(quad.uv_top_left, quad.uv_bottom_right); 68 quad_info->uv_rect = BoundingRect(quad.uv_top_left, quad.uv_bottom_right);
69 return true; 69 return true;
70 } 70 }
71 71
72 bool OverlayStrategyCommon::GetVideoQuadInfo(const StreamVideoDrawQuad& quad, 72 bool OverlayStrategyCommon::GetVideoQuadInfo(const StreamVideoDrawQuad& quad,
73 OverlayCandidate* quad_info) { 73 OverlayCandidate* quad_info) {
74 gfx::OverlayTransform overlay_transform = 74 gfx::OverlayTransform overlay_transform =
75 OverlayCandidate::GetOverlayTransform(quad.quadTransform(), false); 75 OverlayCandidate::GetOverlayTransform(quad.quadTransform(), false);
76 if (overlay_transform == gfx::OVERLAY_TRANSFORM_INVALID) 76 if (overlay_transform == gfx::OVERLAY_TRANSFORM_INVALID)
77 return false; 77 return false;
78 if (!quad.matrix.IsScaleOrTranslation()) { 78 if (!quad.matrix.IsScaleOrTranslation()) {
79 // We cannot handle anything other than scaling & translation for texture 79 // We cannot handle anything other than scaling & translation for texture
80 // coordinates yet. 80 // coordinates yet.
81 return false; 81 return false;
82 } 82 }
83 quad_info->resource_id = quad.resource_id; 83 quad_info->resource_id = quad.resource_id();
84 quad_info->transform = overlay_transform; 84 quad_info->transform = overlay_transform;
85 85
86 gfx::Point3F uv0 = gfx::Point3F(0, 0, 0); 86 gfx::Point3F uv0 = gfx::Point3F(0, 0, 0);
87 gfx::Point3F uv1 = gfx::Point3F(1, 1, 0); 87 gfx::Point3F uv1 = gfx::Point3F(1, 1, 0);
88 quad.matrix.TransformPoint(&uv0); 88 quad.matrix.TransformPoint(&uv0);
89 quad.matrix.TransformPoint(&uv1); 89 quad.matrix.TransformPoint(&uv1);
90 gfx::Vector3dF delta = uv1 - uv0; 90 gfx::Vector3dF delta = uv1 - uv0;
91 if (delta.x() < 0) { 91 if (delta.x() < 0) {
92 quad_info->transform = OverlayCandidate::ModifyTransform( 92 quad_info->transform = OverlayCandidate::ModifyTransform(
93 quad_info->transform, gfx::OVERLAY_TRANSFORM_FLIP_HORIZONTAL); 93 quad_info->transform, gfx::OVERLAY_TRANSFORM_FLIP_HORIZONTAL);
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
128 return false; 128 return false;
129 } 129 }
130 130
131 quad_info->format = RGBA_8888; 131 quad_info->format = RGBA_8888;
132 quad_info->display_rect = OverlayCandidate::GetOverlayRect( 132 quad_info->display_rect = OverlayCandidate::GetOverlayRect(
133 draw_quad.quadTransform(), draw_quad.rect); 133 draw_quad.quadTransform(), draw_quad.rect);
134 return true; 134 return true;
135 } 135 }
136 136
137 } // namespace cc 137 } // namespace cc
OLDNEW
« no previous file with comments | « cc/output/gl_renderer.cc ('k') | cc/output/overlay_unittest.cc » ('j') | cc/quads/draw_quad.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698