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

Side by Side Diff: cc/resources/resource_provider.h

Issue 2752523006: cc: Use SkCreateColorSpaceXformCanvas for color transforms (Closed)
Patch Set: Rebase Created 3 years, 9 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
« no previous file with comments | « cc/raster/zero_copy_raster_buffer_provider.cc ('k') | cc/resources/resource_provider.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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 #ifndef CC_RESOURCES_RESOURCE_PROVIDER_H_ 5 #ifndef CC_RESOURCES_RESOURCE_PROVIDER_H_
6 #define CC_RESOURCES_RESOURCE_PROVIDER_H_ 6 #define CC_RESOURCES_RESOURCE_PROVIDER_H_
7 7
8 #include <stddef.h> 8 #include <stddef.h>
9 #include <stdint.h> 9 #include <stdint.h>
10 10
(...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after
281 public: 281 public:
282 ScopedWriteLockGL(ResourceProvider* resource_provider, 282 ScopedWriteLockGL(ResourceProvider* resource_provider,
283 ResourceId resource_id, 283 ResourceId resource_id,
284 bool create_mailbox); 284 bool create_mailbox);
285 ~ScopedWriteLockGL(); 285 ~ScopedWriteLockGL();
286 286
287 unsigned texture_id() const { return texture_id_; } 287 unsigned texture_id() const { return texture_id_; }
288 GLenum target() const { return target_; } 288 GLenum target() const { return target_; }
289 ResourceFormat format() const { return format_; } 289 ResourceFormat format() const { return format_; }
290 const gfx::Size& size() const { return size_; } 290 const gfx::Size& size() const { return size_; }
291 sk_sp<SkColorSpace> sk_color_space() const { return sk_color_space_; } 291 // Will return the invalid color space unless
292 // |enable_color_correct_rasterization| is true.
293 const gfx::ColorSpace& color_space_for_raster() const {
294 return color_space_;
295 }
292 296
293 const TextureMailbox& mailbox() const { return mailbox_; } 297 const TextureMailbox& mailbox() const { return mailbox_; }
294 298
295 void set_sync_token(const gpu::SyncToken& sync_token) { 299 void set_sync_token(const gpu::SyncToken& sync_token) {
296 sync_token_ = sync_token; 300 sync_token_ = sync_token;
297 has_sync_token_ = true; 301 has_sync_token_ = true;
298 } 302 }
299 303
300 void set_synchronized(bool synchronized) { synchronized_ = synchronized; } 304 void set_synchronized(bool synchronized) { synchronized_ = synchronized; }
301 305
302 private: 306 private:
303 ResourceProvider* resource_provider_; 307 ResourceProvider* resource_provider_;
304 ResourceId resource_id_; 308 ResourceId resource_id_;
305 unsigned texture_id_; 309 unsigned texture_id_;
306 GLenum target_; 310 GLenum target_;
307 ResourceFormat format_; 311 ResourceFormat format_;
308 gfx::Size size_; 312 gfx::Size size_;
309 TextureMailbox mailbox_; 313 TextureMailbox mailbox_;
310 gpu::SyncToken sync_token_; 314 gpu::SyncToken sync_token_;
311 bool has_sync_token_; 315 bool has_sync_token_;
312 bool synchronized_; 316 bool synchronized_;
313 base::ThreadChecker thread_checker_; 317 base::ThreadChecker thread_checker_;
314 sk_sp<SkColorSpace> sk_color_space_; 318 gfx::ColorSpace color_space_;
315 319
316 DISALLOW_COPY_AND_ASSIGN(ScopedWriteLockGL); 320 DISALLOW_COPY_AND_ASSIGN(ScopedWriteLockGL);
317 }; 321 };
318 322
319 class CC_EXPORT ScopedTextureProvider { 323 class CC_EXPORT ScopedTextureProvider {
320 public: 324 public:
321 ScopedTextureProvider(gpu::gles2::GLES2Interface* gl, 325 ScopedTextureProvider(gpu::gles2::GLES2Interface* gl,
322 ScopedWriteLockGL* resource_lock, 326 ScopedWriteLockGL* resource_lock,
323 bool use_mailbox); 327 bool use_mailbox);
324 ~ScopedTextureProvider(); 328 ~ScopedTextureProvider();
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
392 }; 396 };
393 397
394 class CC_EXPORT ScopedWriteLockSoftware { 398 class CC_EXPORT ScopedWriteLockSoftware {
395 public: 399 public:
396 ScopedWriteLockSoftware(ResourceProvider* resource_provider, 400 ScopedWriteLockSoftware(ResourceProvider* resource_provider,
397 ResourceId resource_id); 401 ResourceId resource_id);
398 ~ScopedWriteLockSoftware(); 402 ~ScopedWriteLockSoftware();
399 403
400 SkBitmap& sk_bitmap() { return sk_bitmap_; } 404 SkBitmap& sk_bitmap() { return sk_bitmap_; }
401 bool valid() const { return !!sk_bitmap_.getPixels(); } 405 bool valid() const { return !!sk_bitmap_.getPixels(); }
402 sk_sp<SkColorSpace> sk_color_space() const { return sk_color_space_; } 406 // Will return the invalid color space unless
407 // |enable_color_correct_rasterization| is true.
408 const gfx::ColorSpace& color_space_for_raster() const {
409 return color_space_;
410 }
403 411
404 private: 412 private:
405 ResourceProvider* resource_provider_; 413 ResourceProvider* resource_provider_;
406 ResourceId resource_id_; 414 ResourceId resource_id_;
407 SkBitmap sk_bitmap_; 415 SkBitmap sk_bitmap_;
408 sk_sp<SkColorSpace> sk_color_space_; 416 gfx::ColorSpace color_space_;
409 base::ThreadChecker thread_checker_; 417 base::ThreadChecker thread_checker_;
410 418
411 DISALLOW_COPY_AND_ASSIGN(ScopedWriteLockSoftware); 419 DISALLOW_COPY_AND_ASSIGN(ScopedWriteLockSoftware);
412 }; 420 };
413 421
414 class CC_EXPORT ScopedWriteLockGpuMemoryBuffer { 422 class CC_EXPORT ScopedWriteLockGpuMemoryBuffer {
415 public: 423 public:
416 ScopedWriteLockGpuMemoryBuffer(ResourceProvider* resource_provider, 424 ScopedWriteLockGpuMemoryBuffer(ResourceProvider* resource_provider,
417 ResourceId resource_id); 425 ResourceId resource_id);
418 ~ScopedWriteLockGpuMemoryBuffer(); 426 ~ScopedWriteLockGpuMemoryBuffer();
419 gfx::GpuMemoryBuffer* GetGpuMemoryBuffer(); 427 gfx::GpuMemoryBuffer* GetGpuMemoryBuffer();
420 sk_sp<SkColorSpace> sk_color_space() const { return sk_color_space_; } 428 // Will return the invalid color space unless
429 // |enable_color_correct_rasterization| is true.
430 const gfx::ColorSpace& color_space_for_raster() const {
431 return color_space_;
432 }
421 433
422 private: 434 private:
423 ResourceProvider* resource_provider_; 435 ResourceProvider* resource_provider_;
424 ResourceId resource_id_; 436 ResourceId resource_id_;
425 ResourceFormat format_; 437 ResourceFormat format_;
426 gfx::BufferUsage usage_; 438 gfx::BufferUsage usage_;
427 gfx::Size size_; 439 gfx::Size size_;
428 std::unique_ptr<gfx::GpuMemoryBuffer> gpu_memory_buffer_; 440 std::unique_ptr<gfx::GpuMemoryBuffer> gpu_memory_buffer_;
429 sk_sp<SkColorSpace> sk_color_space_; 441 gfx::ColorSpace color_space_;
430 base::ThreadChecker thread_checker_; 442 base::ThreadChecker thread_checker_;
431 443
432 DISALLOW_COPY_AND_ASSIGN(ScopedWriteLockGpuMemoryBuffer); 444 DISALLOW_COPY_AND_ASSIGN(ScopedWriteLockGpuMemoryBuffer);
433 }; 445 };
434 446
435 class Fence : public base::RefCounted<Fence> { 447 class Fence : public base::RefCounted<Fence> {
436 public: 448 public:
437 Fence() {} 449 Fence() {}
438 450
439 virtual void Set() = 0; 451 virtual void Set() = 0;
(...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after
716 void BindImageForSampling(Resource* resource); 728 void BindImageForSampling(Resource* resource);
717 // Binds the given GL resource to a texture target for sampling using the 729 // Binds the given GL resource to a texture target for sampling using the
718 // specified filter for both minification and magnification. Returns the 730 // specified filter for both minification and magnification. Returns the
719 // texture target used. The resource must be locked for reading. 731 // texture target used. The resource must be locked for reading.
720 GLenum BindForSampling(ResourceId resource_id, GLenum unit, GLenum filter); 732 GLenum BindForSampling(ResourceId resource_id, GLenum unit, GLenum filter);
721 733
722 // Returns null if we do not have a ContextProvider. 734 // Returns null if we do not have a ContextProvider.
723 gpu::gles2::GLES2Interface* ContextGL() const; 735 gpu::gles2::GLES2Interface* ContextGL() const;
724 bool IsGLContextLost() const; 736 bool IsGLContextLost() const;
725 737
726 // Returns null if |settings_.enable_color_correct_rasterization| is false. 738 // Will return the invalid color space unless
727 sk_sp<SkColorSpace> GetResourceSkColorSpace(const Resource* resource) const; 739 // |enable_color_correct_rasterization| is true.
740 gfx::ColorSpace GetResourceColorSpaceForRaster(
741 const Resource* resource) const;
728 742
729 // Holds const settings for the ResourceProvider. Never changed after init. 743 // Holds const settings for the ResourceProvider. Never changed after init.
730 struct Settings { 744 struct Settings {
731 Settings(ContextProvider* compositor_context_provider, 745 Settings(ContextProvider* compositor_context_provider,
732 bool delegated_sync_points_required, 746 bool delegated_sync_points_required,
733 bool use_gpu_memory_buffer_resources, 747 bool use_gpu_memory_buffer_resources,
734 bool enable_color_correct_rasterization); 748 bool enable_color_correct_rasterization);
735 749
736 int max_texture_size = 0; 750 int max_texture_size = 0;
737 bool use_texture_storage_ext = false; 751 bool use_texture_storage_ext = false;
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
770 // Set of resource Ids that would like to be notified about promotion hints. 784 // Set of resource Ids that would like to be notified about promotion hints.
771 ResourceIdSet wants_promotion_hints_set_; 785 ResourceIdSet wants_promotion_hints_set_;
772 #endif 786 #endif
773 787
774 DISALLOW_COPY_AND_ASSIGN(ResourceProvider); 788 DISALLOW_COPY_AND_ASSIGN(ResourceProvider);
775 }; 789 };
776 790
777 } // namespace cc 791 } // namespace cc
778 792
779 #endif // CC_RESOURCES_RESOURCE_PROVIDER_H_ 793 #endif // CC_RESOURCES_RESOURCE_PROVIDER_H_
OLDNEW
« no previous file with comments | « cc/raster/zero_copy_raster_buffer_provider.cc ('k') | cc/resources/resource_provider.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698