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

Side by Side Diff: cc/raster/raster_buffer_provider.h

Issue 2555743004: Delay activation/draw on GPU tile work completion (Closed)
Patch Set: rebase compile fix Created 3 years, 10 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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_RASTER_RASTER_BUFFER_PROVIDER_H_ 5 #ifndef CC_RASTER_RASTER_BUFFER_PROVIDER_H_
6 #define CC_RASTER_RASTER_BUFFER_PROVIDER_H_ 6 #define CC_RASTER_RASTER_BUFFER_PROVIDER_H_
7 7
8 #include <stddef.h> 8 #include <stddef.h>
9 9
10 #include "cc/playback/raster_source.h" 10 #include "cc/playback/raster_source.h"
11 #include "cc/raster/raster_buffer.h" 11 #include "cc/raster/raster_buffer.h"
12 #include "cc/raster/task_graph_runner.h" 12 #include "cc/raster/task_graph_runner.h"
13 #include "cc/raster/tile_task.h" 13 #include "cc/raster/tile_task.h"
14 #include "cc/resources/resource_format.h" 14 #include "cc/resources/resource_format.h"
15 #include "cc/resources/resource_provider.h"
15 #include "ui/gfx/geometry/rect.h" 16 #include "ui/gfx/geometry/rect.h"
16 #include "ui/gfx/geometry/size.h" 17 #include "ui/gfx/geometry/size.h"
17 18
18 namespace cc { 19 namespace cc {
19 class Resource; 20 class Resource;
20 21
21 class CC_EXPORT RasterBufferProvider { 22 class CC_EXPORT RasterBufferProvider {
22 public: 23 public:
23 RasterBufferProvider(); 24 RasterBufferProvider();
24 virtual ~RasterBufferProvider(); 25 virtual ~RasterBufferProvider();
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 // Returns the format to use for the tiles. 57 // Returns the format to use for the tiles.
57 virtual ResourceFormat GetResourceFormat(bool must_support_alpha) const = 0; 58 virtual ResourceFormat GetResourceFormat(bool must_support_alpha) const = 0;
58 59
59 // Determine if the resource requires swizzling. 60 // Determine if the resource requires swizzling.
60 virtual bool IsResourceSwizzleRequired(bool must_support_alpha) const = 0; 61 virtual bool IsResourceSwizzleRequired(bool must_support_alpha) const = 0;
61 62
62 // Determine if the RasterBufferProvider can handle partial raster into 63 // Determine if the RasterBufferProvider can handle partial raster into
63 // the Resource provided in AcquireBufferForRaster. 64 // the Resource provided in AcquireBufferForRaster.
64 virtual bool CanPartialRasterIntoProvidedResource() const = 0; 65 virtual bool CanPartialRasterIntoProvidedResource() const = 0;
65 66
67 // Returns true if the indicated resource is ready to draw.
68 virtual bool IsResourceReadyToDraw(ResourceId id) const = 0;
69
70 // Calls the provided |callback| when the provided |resources| are ready to
71 // draw. Returns a callback ID which can be used to track this callback.
72 // Will return 0 if no callback is needed (resources are already ready to
73 // draw). The caller may optionally pass the ID of a pending callback to
74 // avoid creating a new callback unnecessarily. If the caller does not
75 // have a pending callback, 0 should be passed for |pending_callback_id|.
76 virtual uint64_t SetReadyToDrawCallback(
77 const ResourceProvider::ResourceIdArray& resource_ids,
78 const base::Callback<void()>& callback,
79 uint64_t pending_callback_id) const = 0;
80
66 // Shutdown for doing cleanup. 81 // Shutdown for doing cleanup.
67 virtual void Shutdown() = 0; 82 virtual void Shutdown() = 0;
68 83
69 protected: 84 protected:
70 // Check if resource format matches output format. 85 // Check if resource format matches output format.
71 static bool ResourceFormatRequiresSwizzle(ResourceFormat format); 86 static bool ResourceFormatRequiresSwizzle(ResourceFormat format);
72 }; 87 };
73 88
74 } // namespace cc 89 } // namespace cc
75 90
76 #endif // CC_RASTER_RASTER_BUFFER_PROVIDER_H_ 91 #endif // CC_RASTER_RASTER_BUFFER_PROVIDER_H_
OLDNEW
« no previous file with comments | « cc/raster/one_copy_raster_buffer_provider.cc ('k') | cc/raster/raster_buffer_provider_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698