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

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

Issue 1854513002: cc: Add RasterSource::PlaybackSettings for finer control of raster. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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/one_copy_tile_task_worker_pool.h ('k') | cc/raster/raster_buffer.h » ('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/one_copy_tile_task_worker_pool.h" 5 #include "cc/raster/one_copy_tile_task_worker_pool.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <limits> 10 #include <limits>
(...skipping 29 matching lines...) Expand all
40 const Resource* resource, 40 const Resource* resource,
41 uint64_t previous_content_id) 41 uint64_t previous_content_id)
42 : worker_pool_(worker_pool), 42 : worker_pool_(worker_pool),
43 resource_(resource), 43 resource_(resource),
44 lock_(resource_provider, resource->id()), 44 lock_(resource_provider, resource->id()),
45 previous_content_id_(previous_content_id) {} 45 previous_content_id_(previous_content_id) {}
46 46
47 ~RasterBufferImpl() override {} 47 ~RasterBufferImpl() override {}
48 48
49 // Overridden from RasterBuffer: 49 // Overridden from RasterBuffer:
50 void Playback(const RasterSource* raster_source, 50 void Playback(
51 const gfx::Rect& raster_full_rect, 51 const RasterSource* raster_source,
52 const gfx::Rect& raster_dirty_rect, 52 const gfx::Rect& raster_full_rect,
53 uint64_t new_content_id, 53 const gfx::Rect& raster_dirty_rect,
54 float scale, 54 uint64_t new_content_id,
55 bool include_images) override { 55 float scale,
56 const RasterSource::PlaybackSettings& playback_settings) override {
56 worker_pool_->PlaybackAndCopyOnWorkerThread( 57 worker_pool_->PlaybackAndCopyOnWorkerThread(
57 resource_, &lock_, raster_source, raster_full_rect, raster_dirty_rect, 58 resource_, &lock_, raster_source, raster_full_rect, raster_dirty_rect,
58 scale, include_images, previous_content_id_, new_content_id); 59 scale, playback_settings, previous_content_id_, new_content_id);
59 } 60 }
60 61
61 private: 62 private:
62 OneCopyTileTaskWorkerPool* worker_pool_; 63 OneCopyTileTaskWorkerPool* worker_pool_;
63 const Resource* resource_; 64 const Resource* resource_;
64 ResourceProvider::ScopedWriteLockGL lock_; 65 ResourceProvider::ScopedWriteLockGL lock_;
65 uint64_t previous_content_id_; 66 uint64_t previous_content_id_;
66 67
67 DISALLOW_COPY_AND_ASSIGN(RasterBufferImpl); 68 DISALLOW_COPY_AND_ASSIGN(RasterBufferImpl);
68 }; 69 };
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after
315 // Nothing to do here. RasterBufferImpl destructor cleans up after itself. 316 // Nothing to do here. RasterBufferImpl destructor cleans up after itself.
316 } 317 }
317 318
318 void OneCopyTileTaskWorkerPool::PlaybackAndCopyOnWorkerThread( 319 void OneCopyTileTaskWorkerPool::PlaybackAndCopyOnWorkerThread(
319 const Resource* resource, 320 const Resource* resource,
320 ResourceProvider::ScopedWriteLockGL* resource_lock, 321 ResourceProvider::ScopedWriteLockGL* resource_lock,
321 const RasterSource* raster_source, 322 const RasterSource* raster_source,
322 const gfx::Rect& raster_full_rect, 323 const gfx::Rect& raster_full_rect,
323 const gfx::Rect& raster_dirty_rect, 324 const gfx::Rect& raster_dirty_rect,
324 float scale, 325 float scale,
325 bool include_images, 326 const RasterSource::PlaybackSettings& playback_settings,
326 uint64_t previous_content_id, 327 uint64_t previous_content_id,
327 uint64_t new_content_id) { 328 uint64_t new_content_id) {
328 base::AutoLock lock(lock_); 329 base::AutoLock lock(lock_);
329 330
330 scoped_ptr<StagingBuffer> staging_buffer = 331 scoped_ptr<StagingBuffer> staging_buffer =
331 AcquireStagingBuffer(resource, previous_content_id); 332 AcquireStagingBuffer(resource, previous_content_id);
332 DCHECK(staging_buffer); 333 DCHECK(staging_buffer);
333 334
334 { 335 {
335 base::AutoUnlock unlock(lock_); 336 base::AutoUnlock unlock(lock_);
(...skipping 25 matching lines...) Expand all
361 DCHECK(rv); 362 DCHECK(rv);
362 DCHECK(buffer->memory(0)); 363 DCHECK(buffer->memory(0));
363 // TileTaskWorkerPool::PlaybackToMemory only supports unsigned strides. 364 // TileTaskWorkerPool::PlaybackToMemory only supports unsigned strides.
364 DCHECK_GE(buffer->stride(0), 0); 365 DCHECK_GE(buffer->stride(0), 0);
365 366
366 DCHECK(!playback_rect.IsEmpty()) 367 DCHECK(!playback_rect.IsEmpty())
367 << "Why are we rastering a tile that's not dirty?"; 368 << "Why are we rastering a tile that's not dirty?";
368 TileTaskWorkerPool::PlaybackToMemory( 369 TileTaskWorkerPool::PlaybackToMemory(
369 buffer->memory(0), resource->format(), staging_buffer->size, 370 buffer->memory(0), resource->format(), staging_buffer->size,
370 buffer->stride(0), raster_source, raster_full_rect, playback_rect, 371 buffer->stride(0), raster_source, raster_full_rect, playback_rect,
371 scale, include_images); 372 scale, playback_settings);
372 buffer->Unmap(); 373 buffer->Unmap();
373 staging_buffer->content_id = new_content_id; 374 staging_buffer->content_id = new_content_id;
374 } 375 }
375 } 376 }
376 377
377 ContextProvider* context_provider = 378 ContextProvider* context_provider =
378 resource_provider_->output_surface()->worker_context_provider(); 379 resource_provider_->output_surface()->worker_context_provider();
379 DCHECK(context_provider); 380 DCHECK(context_provider);
380 381
381 { 382 {
(...skipping 354 matching lines...) Expand 10 before | Expand all | Expand 10 after
736 return; 737 return;
737 738
738 busy_buffers_.front()->DestroyGLResources(gl); 739 busy_buffers_.front()->DestroyGLResources(gl);
739 RemoveStagingBuffer(busy_buffers_.front().get()); 740 RemoveStagingBuffer(busy_buffers_.front().get());
740 busy_buffers_.pop_front(); 741 busy_buffers_.pop_front();
741 } 742 }
742 } 743 }
743 } 744 }
744 745
745 } // namespace cc 746 } // namespace cc
OLDNEW
« no previous file with comments | « cc/raster/one_copy_tile_task_worker_pool.h ('k') | cc/raster/raster_buffer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698