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

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

Issue 2852953003: Use real colorspace for DirectComposition overlays.
Patch Set: rebase Created 3 years, 7 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 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 #include "ui/gl/gl_switches.h" 13 #include "ui/gl/gl_switches.h"
14 14
15 namespace cc { 15 namespace cc {
16 16
17 namespace { 17 namespace {
18 18
19 DCLayerOverlayProcessor::DCLayerResult FromYUVQuad( 19 DCLayerOverlayProcessor::DCLayerResult FromYUVQuad(
20 ResourceProvider* resource_provider, 20 ResourceProvider* resource_provider,
21 const YUVVideoDrawQuad* quad, 21 const YUVVideoDrawQuad* quad,
22 DCLayerOverlay* ca_layer_overlay) { 22 DCLayerOverlay* dc_layer_overlay) {
23 for (const auto& resource : quad->resources) { 23 for (const auto& resource : quad->resources) {
24 if (!resource_provider->IsOverlayCandidate(resource)) 24 if (!resource_provider->IsOverlayCandidate(resource))
25 return DCLayerOverlayProcessor::DC_LAYER_FAILED_TEXTURE_NOT_CANDIDATE; 25 return DCLayerOverlayProcessor::DC_LAYER_FAILED_TEXTURE_NOT_CANDIDATE;
26 } 26 }
27 ca_layer_overlay->resources = quad->resources; 27 dc_layer_overlay->resources = quad->resources;
28 ca_layer_overlay->contents_rect = quad->ya_tex_coord_rect; 28 dc_layer_overlay->contents_rect = quad->ya_tex_coord_rect;
29 ca_layer_overlay->filter = GL_LINEAR; 29 dc_layer_overlay->filter = GL_LINEAR;
30 dc_layer_overlay->color_space = quad->video_color_space;
30 return DCLayerOverlayProcessor::DC_LAYER_SUCCESS; 31 return DCLayerOverlayProcessor::DC_LAYER_SUCCESS;
31 } 32 }
32 33
33 // This returns the smallest rectangle in target space that contains the quad. 34 // This returns the smallest rectangle in target space that contains the quad.
34 gfx::RectF ClippedQuadRectangle(const DrawQuad* quad) { 35 gfx::RectF ClippedQuadRectangle(const DrawQuad* quad) {
35 gfx::RectF quad_rect = MathUtil::MapClippedRect( 36 gfx::RectF quad_rect = MathUtil::MapClippedRect(
36 quad->shared_quad_state->quad_to_target_transform, 37 quad->shared_quad_state->quad_to_target_transform,
37 gfx::RectF(quad->rect)); 38 gfx::RectF(quad->rect));
38 if (quad->shared_quad_state->is_clipped) 39 if (quad->shared_quad_state->is_clipped)
39 quad_rect.Intersect(gfx::RectF(quad->shared_quad_state->clip_rect)); 40 quad_rect.Intersect(gfx::RectF(quad->shared_quad_state->clip_rect));
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
198 ca_layer_overlays->push_back(ca_layer); 199 ca_layer_overlays->push_back(ca_layer);
199 // Only allow one overlay for now. 200 // Only allow one overlay for now.
200 break; 201 break;
201 } 202 }
202 damage_rect->Intersect(gfx::ToEnclosingRect(display_rect)); 203 damage_rect->Intersect(gfx::ToEnclosingRect(display_rect));
203 previous_frame_underlay_rect_ = this_frame_underlay_rect; 204 previous_frame_underlay_rect_ = this_frame_underlay_rect;
204 previous_display_rect_ = display_rect; 205 previous_display_rect_ = display_rect;
205 } 206 }
206 207
207 } // namespace cc 208 } // namespace cc
OLDNEW
« no previous file with comments | « cc/output/dc_layer_overlay.h ('k') | cc/output/gl_renderer.cc » ('j') | cc/output/gl_renderer.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698