Index: cc/resources/resource_provider.h |
diff --git a/cc/resources/resource_provider.h b/cc/resources/resource_provider.h |
index 2e2fecb47dd734c335b9cfe821eaedbccfe74bd1..5c69b0c2621329f40c233c62e1f8c311bb1ae8db 100644 |
--- a/cc/resources/resource_provider.h |
+++ b/cc/resources/resource_provider.h |
@@ -36,6 +36,7 @@ |
class GrContext; |
namespace gpu { |
+class GpuMemoryBufferManager; |
namespace gles { |
class GLES2Interface; |
} |
@@ -49,7 +50,6 @@ class Vector2d; |
namespace cc { |
class BlockingTaskRunner; |
-class GpuMemoryBufferManager; |
class IdAllocator; |
class SharedBitmap; |
class SharedBitmapManager; |
@@ -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; |
@@ -79,7 +82,7 @@ class CC_EXPORT ResourceProvider { |
static scoped_ptr<ResourceProvider> Create( |
OutputSurface* output_surface, |
SharedBitmapManager* shared_bitmap_manager, |
- GpuMemoryBufferManager* gpu_memory_buffer_manager, |
+ gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, |
BlockingTaskRunner* blocking_main_thread_task_runner, |
int highp_threshold_min, |
bool use_rgba_4444_texture_format, |
@@ -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_; |
+ gpu::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); |
}; |
@@ -482,7 +488,7 @@ class CC_EXPORT ResourceProvider { |
ResourceProvider(OutputSurface* output_surface, |
SharedBitmapManager* shared_bitmap_manager, |
- GpuMemoryBufferManager* gpu_memory_buffer_manager, |
+ gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, |
BlockingTaskRunner* blocking_main_thread_task_runner, |
int highp_threshold_min, |
bool use_rgba_4444_texture_format, |
@@ -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); |
@@ -530,7 +532,7 @@ class CC_EXPORT ResourceProvider { |
OutputSurface* output_surface_; |
SharedBitmapManager* shared_bitmap_manager_; |
- GpuMemoryBufferManager* gpu_memory_buffer_manager_; |
+ gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager_; |
BlockingTaskRunner* blocking_main_thread_task_runner_; |
bool lost_output_surface_; |
int highp_threshold_min_; |