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

Side by Side Diff: cc/raster/bitmap_raster_buffer_provider.cc

Issue 2525453002: Raster: Allow a RasterSource to specify its color space (Closed)
Patch Set: Only set implied space when color correct rendering is disabled Created 4 years 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/playback/raster_source.cc ('k') | cc/raster/gpu_raster_buffer_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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/raster/bitmap_raster_buffer_provider.h" 5 #include "cc/raster/bitmap_raster_buffer_provider.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 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 const gfx::SizeF& scales, 43 const gfx::SizeF& scales,
44 const RasterSource::PlaybackSettings& playback_settings) override { 44 const RasterSource::PlaybackSettings& playback_settings) override {
45 TRACE_EVENT0("cc", "BitmapRasterBuffer::Playback"); 45 TRACE_EVENT0("cc", "BitmapRasterBuffer::Playback");
46 gfx::Rect playback_rect = raster_full_rect; 46 gfx::Rect playback_rect = raster_full_rect;
47 if (resource_has_previous_content_) { 47 if (resource_has_previous_content_) {
48 playback_rect.Intersect(raster_dirty_rect); 48 playback_rect.Intersect(raster_dirty_rect);
49 } 49 }
50 DCHECK(!playback_rect.IsEmpty()) 50 DCHECK(!playback_rect.IsEmpty())
51 << "Why are we rastering a tile that's not dirty?"; 51 << "Why are we rastering a tile that's not dirty?";
52 52
53 sk_sp<SkColorSpace> raster_color_space =
54 raster_source->HasImpliedColorSpace() ? nullptr
55 : lock_.sk_color_space();
56
53 size_t stride = 0u; 57 size_t stride = 0u;
54 RasterBufferProvider::PlaybackToMemory( 58 RasterBufferProvider::PlaybackToMemory(
55 lock_.sk_bitmap().getPixels(), resource_->format(), resource_->size(), 59 lock_.sk_bitmap().getPixels(), resource_->format(), resource_->size(),
56 stride, raster_source, raster_full_rect, playback_rect, scales, 60 stride, raster_source, raster_full_rect, playback_rect, scales,
57 lock_.sk_color_space(), playback_settings); 61 raster_color_space, playback_settings);
58 } 62 }
59 63
60 private: 64 private:
61 ResourceProvider::ScopedWriteLockSoftware lock_; 65 ResourceProvider::ScopedWriteLockSoftware lock_;
62 const Resource* resource_; 66 const Resource* resource_;
63 bool resource_has_previous_content_; 67 bool resource_has_previous_content_;
64 68
65 DISALLOW_COPY_AND_ASSIGN(RasterBufferImpl); 69 DISALLOW_COPY_AND_ASSIGN(RasterBufferImpl);
66 }; 70 };
67 71
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
108 return ResourceFormatRequiresSwizzle(GetResourceFormat(must_support_alpha)); 112 return ResourceFormatRequiresSwizzle(GetResourceFormat(must_support_alpha));
109 } 113 }
110 114
111 bool BitmapRasterBufferProvider::CanPartialRasterIntoProvidedResource() const { 115 bool BitmapRasterBufferProvider::CanPartialRasterIntoProvidedResource() const {
112 return true; 116 return true;
113 } 117 }
114 118
115 void BitmapRasterBufferProvider::Shutdown() {} 119 void BitmapRasterBufferProvider::Shutdown() {}
116 120
117 } // namespace cc 121 } // namespace cc
OLDNEW
« no previous file with comments | « cc/playback/raster_source.cc ('k') | cc/raster/gpu_raster_buffer_provider.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698