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

Unified Diff: cc/resources/resource_provider.h

Issue 645943002: cc: Move GpuMemoryBuffer allocation to worker threads. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@chromium-image-refactor
Patch Set: address review feedback Created 6 years, 2 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/resources/one_copy_raster_worker_pool.cc ('k') | cc/resources/resource_provider.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/resources/resource_provider.h
diff --git a/cc/resources/resource_provider.h b/cc/resources/resource_provider.h
index 2e2fecb47dd734c335b9cfe821eaedbccfe74bd1..543b306727ab6adce61c869841e1f973cf501c1d 100644
--- a/cc/resources/resource_provider.h
+++ b/cc/resources/resource_provider.h
@@ -58,6 +58,9 @@ class TextureUploader;
// This class is not thread-safe and can only be called from the thread it was
// created on (in practice, the impl thread).
class CC_EXPORT ResourceProvider {
+ private:
+ struct Resource;
+
public:
typedef unsigned ResourceId;
typedef std::vector<ResourceId> ResourceIdArray;
@@ -258,7 +261,7 @@ class CC_EXPORT ResourceProvider {
private:
ResourceProvider* resource_provider_;
- ResourceProvider::ResourceId resource_id_;
+ ResourceProvider::Resource* resource_;
unsigned texture_id_;
DISALLOW_COPY_AND_ASSIGN(ScopedWriteLockGL);
@@ -298,7 +301,7 @@ class CC_EXPORT ResourceProvider {
private:
ResourceProvider* resource_provider_;
- ResourceProvider::ResourceId resource_id_;
+ ResourceProvider::Resource* resource_;
SkBitmap sk_bitmap_;
scoped_ptr<SkCanvas> sk_canvas_;
@@ -311,12 +314,15 @@ class CC_EXPORT ResourceProvider {
ResourceProvider::ResourceId resource_id);
~ScopedWriteLockGpuMemoryBuffer();
- gfx::GpuMemoryBuffer* gpu_memory_buffer() { return gpu_memory_buffer_; }
+ gfx::GpuMemoryBuffer* GetGpuMemoryBuffer();
private:
ResourceProvider* resource_provider_;
- ResourceProvider::ResourceId resource_id_;
+ ResourceProvider::Resource* resource_;
+ GpuMemoryBufferManager* gpu_memory_buffer_manager_;
gfx::GpuMemoryBuffer* gpu_memory_buffer_;
+ gfx::Size size_;
+ ResourceFormat format_;
DISALLOW_COPY_AND_ASSIGN(ScopedWriteLockGpuMemoryBuffer);
};
@@ -331,7 +337,7 @@ class CC_EXPORT ResourceProvider {
private:
ResourceProvider* resource_provider_;
- ResourceProvider::ResourceId resource_id_;
+ ResourceProvider::Resource* resource_;
DISALLOW_COPY_AND_ASSIGN(ScopedWriteLockGr);
};
@@ -493,12 +499,8 @@ class CC_EXPORT ResourceProvider {
Resource* GetResource(ResourceId id);
const Resource* LockForRead(ResourceId id);
void UnlockForRead(ResourceId id);
- const Resource* LockForWrite(ResourceId id);
- void UnlockForWrite(ResourceId id);
- const Resource* LockForWriteToGpuMemoryBuffer(ResourceId id);
- void UnlockForWriteToGpuMemoryBuffer(ResourceId id);
- void LockForWriteToSkSurface(ResourceId id);
- void UnlockForWriteToSkSurface(ResourceId id);
+ Resource* LockForWrite(ResourceId id);
+ void UnlockForWrite(Resource* resource);
static void PopulateSkBitmapWithResource(SkBitmap* sk_bitmap,
const Resource* resource);
« no previous file with comments | « cc/resources/one_copy_raster_worker_pool.cc ('k') | cc/resources/resource_provider.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698