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

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

Issue 2799603006: cc: Fix VideoResourceUpdater color conversion (Closed)
Patch Set: Created 3 years, 8 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 2010 The Chromium Authors. All rights reserved. 1 // Copyright 2010 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/gl_renderer.h" 5 #include "cc/output/gl_renderer.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <algorithm> 10 #include <algorithm>
(...skipping 2985 matching lines...) Expand 10 before | Expand all | Expand 10 after
2996 clipped_geometry_->PrepareForDraw(); 2996 clipped_geometry_->PrepareForDraw();
2997 break; 2997 break;
2998 case NO_BINDING: 2998 case NO_BINDING:
2999 break; 2999 break;
3000 } 3000 }
3001 bound_geometry_ = binding; 3001 bound_geometry_ = binding;
3002 } 3002 }
3003 3003
3004 void GLRenderer::SetUseProgram(const ProgramKey& program_key, 3004 void GLRenderer::SetUseProgram(const ProgramKey& program_key,
3005 const gfx::ColorSpace& src_color_space) { 3005 const gfx::ColorSpace& src_color_space) {
3006 // The source color space for non-YUV draw quads should always be full-range
3007 // RGB.
3008 if (!disable_color_checks_for_testing_)
3009 DCHECK_EQ(src_color_space, src_color_space.GetAsFullRangeRGB());
3010
3006 // Ensure that we do not apply any color conversion unless the color correct 3011 // Ensure that we do not apply any color conversion unless the color correct
3007 // rendering flag has been specified. This is because media mailboxes will 3012 // rendering flag has been specified. This is because media mailboxes will
3008 // provide YUV color spaces despite YUV to RGB conversion already having been 3013 // provide YUV color spaces despite YUV to RGB conversion already having been
3009 // performed. 3014 // performed.
3010 // TODO(ccameron): Ensure that media mailboxes be accurate.
3011 // https://crbug.com/699243
3012 // The source color space for non-YUV draw quads should always be full-range
3013 // RGB.
3014 if (settings_->enable_color_correct_rendering) { 3015 if (settings_->enable_color_correct_rendering) {
3015 SetUseProgram(program_key, src_color_space, 3016 SetUseProgram(program_key, src_color_space,
3016 current_frame()->current_render_pass->color_space); 3017 current_frame()->current_render_pass->color_space);
3017 } else { 3018 } else {
3018 DCHECK_EQ(src_color_space, src_color_space.GetAsFullRangeRGB());
3019 SetUseProgram(program_key, gfx::ColorSpace(), gfx::ColorSpace()); 3019 SetUseProgram(program_key, gfx::ColorSpace(), gfx::ColorSpace());
3020 } 3020 }
3021 } 3021 }
3022 3022
3023 void GLRenderer::SetUseProgram(const ProgramKey& program_key_no_color, 3023 void GLRenderer::SetUseProgram(const ProgramKey& program_key_no_color,
3024 const gfx::ColorSpace& src_color_space, 3024 const gfx::ColorSpace& src_color_space,
3025 const gfx::ColorSpace& dst_color_space) { 3025 const gfx::ColorSpace& dst_color_space) {
3026 ProgramKey program_key = program_key_no_color; 3026 ProgramKey program_key = program_key_no_color;
3027 const gfx::ColorTransform* color_transform = 3027 const gfx::ColorTransform* color_transform =
3028 GetColorTransform(src_color_space, dst_color_space); 3028 GetColorTransform(src_color_space, dst_color_space);
(...skipping 567 matching lines...) Expand 10 before | Expand all | Expand 10 after
3596 return; 3596 return;
3597 3597
3598 // Report GPU overdraw as a percentage of |max_result|. 3598 // Report GPU overdraw as a percentage of |max_result|.
3599 TRACE_COUNTER1( 3599 TRACE_COUNTER1(
3600 TRACE_DISABLED_BY_DEFAULT("cc.debug.overdraw"), "GPU Overdraw", 3600 TRACE_DISABLED_BY_DEFAULT("cc.debug.overdraw"), "GPU Overdraw",
3601 (std::accumulate(overdraw->begin(), overdraw->end(), 0) * 100) / 3601 (std::accumulate(overdraw->begin(), overdraw->end(), 0) * 100) /
3602 max_result); 3602 max_result);
3603 } 3603 }
3604 3604
3605 } // namespace cc 3605 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698