diff options
Diffstat (limited to 'chromium/ui/gl/gl_image_io_surface.mm')
-rw-r--r-- | chromium/ui/gl/gl_image_io_surface.mm | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/chromium/ui/gl/gl_image_io_surface.mm b/chromium/ui/gl/gl_image_io_surface.mm index c9fabee5a26..1dc5a6dbf1f 100644 --- a/chromium/ui/gl/gl_image_io_surface.mm +++ b/chromium/ui/gl/gl_image_io_surface.mm @@ -14,6 +14,7 @@ #include "base/trace_event/memory_dump_manager.h" #include "base/trace_event/process_memory_dump.h" #include "base/trace_event/trace_event.h" +#include "ui/gfx/color_space.h" #include "ui/gl/gl_bindings.h" #include "ui/gl/gl_context.h" #include "ui/gl/scoped_binders.h" @@ -298,7 +299,8 @@ bool GLImageIOSurface::CopyTexImage(unsigned target) { GLContext* gl_context = GLContext::GetCurrent(); DCHECK(gl_context); - YUVToRGBConverter* yuv_to_rgb_converter = gl_context->GetYUVToRGBConverter(); + YUVToRGBConverter* yuv_to_rgb_converter = + gl_context->GetYUVToRGBConverter(color_space_for_yuv_to_rgb_); DCHECK(yuv_to_rgb_converter); // Note that state restoration is done explicitly instead of scoped binders to @@ -405,6 +407,13 @@ bool GLImageIOSurface::CanCheckIOSurfaceIsInUse() const { return !cv_pixel_buffer_; } +void GLImageIOSurface::SetColorSpaceForYUVToRGBConversion( + const gfx::ColorSpace& color_space) { + DCHECK(color_space.IsValid()); + DCHECK_NE(color_space, color_space.GetAsFullRangeRGB()); + color_space_for_yuv_to_rgb_ = color_space; +} + base::ScopedCFTypeRef<IOSurfaceRef> GLImageIOSurface::io_surface() { return io_surface_; } |