| Index: gpu/ipc/client/gpu_memory_buffer_impl_io_surface.cc
|
| diff --git a/gpu/ipc/client/gpu_memory_buffer_impl_io_surface.cc b/gpu/ipc/client/gpu_memory_buffer_impl_io_surface.cc
|
| index 438cc04a16adefe3ab9b827fe7a78f8ca2480d7d..f77895c0e03308fc245c4c814db6c891d743e9eb 100644
|
| --- a/gpu/ipc/client/gpu_memory_buffer_impl_io_surface.cc
|
| +++ b/gpu/ipc/client/gpu_memory_buffer_impl_io_surface.cc
|
| @@ -8,6 +8,7 @@
|
| #include "base/memory/ptr_util.h"
|
| #include "gpu/ipc/common/gpu_memory_buffer_support.h"
|
| #include "ui/gfx/buffer_format_util.h"
|
| +#include "ui/gfx/color_space.h"
|
| #include "ui/gfx/mac/io_surface.h"
|
|
|
| namespace gpu {
|
| @@ -109,6 +110,18 @@ int GpuMemoryBufferImplIOSurface::stride(size_t plane) const {
|
| return IOSurfaceGetBytesPerRowOfPlane(io_surface_, plane);
|
| }
|
|
|
| +void GpuMemoryBufferImplIOSurface::SetColorSpaceForScanout(
|
| + const gfx::ColorSpace& color_space) {
|
| + const std::vector<char>& icc_profile = color_space.GetICCProfile();
|
| + if (icc_profile.size()) {
|
| + base::ScopedCFTypeRef<CFDataRef> cf_data_icc_profile(CFDataCreate(
|
| + nullptr, reinterpret_cast<const UInt8*>(icc_profile.data()),
|
| + icc_profile.size()));
|
| + IOSurfaceSetValue(io_surface_, CFSTR("IOSurfaceColorSpace"),
|
| + cf_data_icc_profile);
|
| + }
|
| +}
|
| +
|
| gfx::GpuMemoryBufferHandle GpuMemoryBufferImplIOSurface::GetHandle() const {
|
| gfx::GpuMemoryBufferHandle handle;
|
| handle.type = gfx::IO_SURFACE_BUFFER;
|
|
|