Index: cc/resources/resource_provider.h |
diff --git a/cc/resources/resource_provider.h b/cc/resources/resource_provider.h |
index 8e9bc114747e1b0c76d1d89b5fa0e8b48cb647c4..f7732d755d92f8f911f14e147ef2cd978fec1f2b 100644 |
--- a/cc/resources/resource_provider.h |
+++ b/cc/resources/resource_provider.h |
@@ -96,6 +96,7 @@ class CC_EXPORT ResourceProvider |
size_t id_allocation_chunk_size, |
bool delegated_sync_points_required, |
bool use_gpu_memory_buffer_resources, |
+ bool enable_color_correct_rendering, |
const BufferToTextureTargetMap& buffer_to_texture_target_map); |
~ResourceProvider() override; |
@@ -275,6 +276,7 @@ class CC_EXPORT ResourceProvider |
GLenum target() const { return target_; } |
ResourceFormat format() const { return format_; } |
const gfx::Size& size() const { return size_; } |
+ sk_sp<SkColorSpace> sk_color_space() const { return sk_color_space_; } |
const TextureMailbox& mailbox() const { return mailbox_; } |
@@ -295,6 +297,7 @@ class CC_EXPORT ResourceProvider |
gpu::SyncToken sync_token_; |
bool synchronized_; |
base::ThreadChecker thread_checker_; |
+ sk_sp<SkColorSpace> sk_color_space_; |
DISALLOW_COPY_AND_ASSIGN(ScopedWriteLockGL); |
}; |
@@ -382,11 +385,13 @@ class CC_EXPORT ResourceProvider |
SkBitmap& sk_bitmap() { return sk_bitmap_; } |
bool valid() const { return !!sk_bitmap_.getPixels(); } |
+ sk_sp<SkColorSpace> sk_color_space() const { return sk_color_space_; } |
private: |
ResourceProvider* resource_provider_; |
ResourceId resource_id_; |
SkBitmap sk_bitmap_; |
+ sk_sp<SkColorSpace> sk_color_space_; |
base::ThreadChecker thread_checker_; |
DISALLOW_COPY_AND_ASSIGN(ScopedWriteLockSoftware); |
@@ -397,8 +402,8 @@ class CC_EXPORT ResourceProvider |
ScopedWriteLockGpuMemoryBuffer(ResourceProvider* resource_provider, |
ResourceId resource_id); |
~ScopedWriteLockGpuMemoryBuffer(); |
- |
gfx::GpuMemoryBuffer* GetGpuMemoryBuffer(); |
+ sk_sp<SkColorSpace> sk_color_space() const { return sk_color_space_; } |
private: |
ResourceProvider* resource_provider_; |
@@ -407,6 +412,7 @@ class CC_EXPORT ResourceProvider |
gfx::BufferUsage usage_; |
gfx::Size size_; |
std::unique_ptr<gfx::GpuMemoryBuffer> gpu_memory_buffer_; |
+ sk_sp<SkColorSpace> sk_color_space_; |
base::ThreadChecker thread_checker_; |
DISALLOW_COPY_AND_ASSIGN(ScopedWriteLockGpuMemoryBuffer); |
@@ -635,8 +641,8 @@ class CC_EXPORT ResourceProvider |
Resource* LockForWrite(ResourceId id); |
void UnlockForWrite(Resource* resource); |
- static void PopulateSkBitmapWithResource(SkBitmap* sk_bitmap, |
- const Resource* resource); |
+ void PopulateSkBitmapWithResource(SkBitmap* sk_bitmap, |
+ const Resource* resource); |
void CreateMailboxAndBindResource(gpu::gles2::GLES2Interface* gl, |
Resource* resource); |
@@ -667,6 +673,9 @@ class CC_EXPORT ResourceProvider |
gpu::gles2::GLES2Interface* ContextGL() const; |
bool IsGLContextLost() const; |
+ // Returns null if |enable_color_correct_rendering_| is false. |
+ sk_sp<SkColorSpace> GetResourceSkColorSpace(const Resource* resource) const; |
+ |
ContextProvider* compositor_context_provider_; |
SharedBitmapManager* shared_bitmap_manager_; |
gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager_; |
@@ -690,6 +699,7 @@ class CC_EXPORT ResourceProvider |
int max_texture_size_; |
ResourceFormat best_texture_format_; |
ResourceFormat best_render_buffer_format_; |
+ const bool enable_color_correct_rendering_ = false; |
base::ThreadChecker thread_checker_; |