| OLD | NEW |
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 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/dc_layer_overlay.h" | 5 #include "cc/output/dc_layer_overlay.h" |
| 6 | 6 |
| 7 #include "cc/base/math_util.h" | 7 #include "cc/base/math_util.h" |
| 8 #include "cc/quads/solid_color_draw_quad.h" | 8 #include "cc/quads/solid_color_draw_quad.h" |
| 9 #include "cc/quads/yuv_video_draw_quad.h" | 9 #include "cc/quads/yuv_video_draw_quad.h" |
| 10 #include "cc/resources/resource_provider.h" | 10 #include "cc/resources/resource_provider.h" |
| 11 #include "gpu/GLES2/gl2extchromium.h" | 11 #include "gpu/GLES2/gl2extchromium.h" |
| 12 #include "ui/gfx/geometry/rect_conversions.h" | 12 #include "ui/gfx/geometry/rect_conversions.h" |
| 13 | 13 |
| 14 namespace cc { | 14 namespace cc { |
| 15 | 15 |
| 16 namespace { | 16 namespace { |
| 17 | 17 |
| 18 DCLayerOverlayProcessor::DCLayerResult FromYUVQuad( | 18 DCLayerOverlayProcessor::DCLayerResult FromYUVQuad( |
| 19 ResourceProvider* resource_provider, | 19 ResourceProvider* resource_provider, |
| 20 const YUVVideoDrawQuad* quad, | 20 const YUVVideoDrawQuad* quad, |
| 21 DCLayerOverlay* ca_layer_overlay) { | 21 DCLayerOverlay* ca_layer_overlay) { |
| 22 unsigned resource_id = quad->y_plane_resource_id(); | 22 for (const auto& resource : quad->resources) { |
| 23 if (!resource_provider->IsOverlayCandidate(resource_id)) | 23 if (!resource_provider->IsOverlayCandidate(resource)) |
| 24 return DCLayerOverlayProcessor::DC_LAYER_FAILED_TEXTURE_NOT_CANDIDATE; | 24 return DCLayerOverlayProcessor::DC_LAYER_FAILED_TEXTURE_NOT_CANDIDATE; |
| 25 ca_layer_overlay->contents_resource_id = resource_id; | 25 } |
| 26 ca_layer_overlay->resources = quad->resources; |
| 26 ca_layer_overlay->contents_rect = quad->ya_tex_coord_rect; | 27 ca_layer_overlay->contents_rect = quad->ya_tex_coord_rect; |
| 27 ca_layer_overlay->filter = GL_LINEAR; | 28 ca_layer_overlay->filter = GL_LINEAR; |
| 28 return DCLayerOverlayProcessor::DC_LAYER_SUCCESS; | 29 return DCLayerOverlayProcessor::DC_LAYER_SUCCESS; |
| 29 } | 30 } |
| 30 | 31 |
| 31 // Find a rectangle containing all the quads in a list that occlude the area | 32 // Find a rectangle containing all the quads in a list that occlude the area |
| 32 // in target_quad. | 33 // in target_quad. |
| 33 gfx::RectF GetOcclusionBounds(const gfx::RectF& target_quad, | 34 gfx::RectF GetOcclusionBounds(const gfx::RectF& target_quad, |
| 34 QuadList::ConstIterator quad_list_begin, | 35 QuadList::ConstIterator quad_list_begin, |
| 35 QuadList::ConstIterator quad_list_end) { | 36 QuadList::ConstIterator quad_list_end) { |
| (...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 179 ca_layer_overlays->push_back(ca_layer); | 180 ca_layer_overlays->push_back(ca_layer); |
| 180 // Only allow one overlay for now. | 181 // Only allow one overlay for now. |
| 181 break; | 182 break; |
| 182 } | 183 } |
| 183 damage_rect->Intersect(gfx::ToEnclosingRect(display_rect)); | 184 damage_rect->Intersect(gfx::ToEnclosingRect(display_rect)); |
| 184 previous_frame_underlay_rect_ = this_frame_underlay_rect; | 185 previous_frame_underlay_rect_ = this_frame_underlay_rect; |
| 185 previous_display_rect_ = display_rect; | 186 previous_display_rect_ = display_rect; |
| 186 } | 187 } |
| 187 | 188 |
| 188 } // namespace cc | 189 } // namespace cc |
| OLD | NEW |