Index: cc/resources/resource_provider.h |
diff --git a/cc/resources/resource_provider.h b/cc/resources/resource_provider.h |
index e2b97c6210489c78023f0634ff71c54802db685f..96f212fba32f28b61cfc9fd0a08f88f9f9b18363 100644 |
--- a/cc/resources/resource_provider.h |
+++ b/cc/resources/resource_provider.h |
@@ -216,23 +216,21 @@ |
public: |
ScopedReadLockGL(ResourceProvider* resource_provider, |
ResourceId resource_id); |
- ~ScopedReadLockGL(); |
- |
- unsigned texture_id() const { return texture_id_; } |
- GLenum target() const { return target_; } |
- const gfx::Size& size() const { return size_; } |
+ virtual ~ScopedReadLockGL(); |
+ |
+ unsigned texture_id() const { return resource_->gl_id; } |
+ GLenum target() const { return resource_->target; } |
+ const gfx::Size& texture_size() const { return resource_->size; } |
private: |
ResourceProvider* resource_provider_; |
ResourceId resource_id_; |
- unsigned texture_id_; |
- GLenum target_; |
- gfx::Size size_; |
+ const ResourceProvider::Resource* resource_; |
DISALLOW_COPY_AND_ASSIGN(ScopedReadLockGL); |
}; |
- class CC_EXPORT ScopedSamplerGL { |
+ class CC_EXPORT ScopedSamplerGL : public ScopedReadLockGL { |
public: |
ScopedSamplerGL(ResourceProvider* resource_provider, |
ResourceId resource_id, |
@@ -241,13 +239,11 @@ |
ResourceId resource_id, |
GLenum unit, |
GLenum filter); |
- ~ScopedSamplerGL(); |
- |
- unsigned texture_id() const { return resource_lock_.texture_id(); } |
+ ~ScopedSamplerGL() override; |
+ |
GLenum target() const { return target_; } |
private: |
- ScopedReadLockGL resource_lock_; |
GLenum unit_; |
GLenum target_; |
@@ -257,72 +253,24 @@ |
class CC_EXPORT ScopedWriteLockGL { |
public: |
ScopedWriteLockGL(ResourceProvider* resource_provider, |
- ResourceId resource_id, |
- bool create_mailbox); |
+ ResourceId resource_id); |
~ScopedWriteLockGL(); |
unsigned texture_id() const { return texture_id_; } |
- GLenum target() const { return target_; } |
- ResourceFormat format() const { return format_; } |
- const gfx::Size& size() const { return size_; } |
- |
- const TextureMailbox& mailbox() const { return mailbox_; } |
- |
- void set_sync_token(const gpu::SyncToken& sync_token) { |
+ |
+ void UpdateResourceSyncToken(const gpu::SyncToken& sync_token) { |
+ set_sync_token_ = true; |
sync_token_ = sync_token; |
} |
- void set_synchronized(bool synchronized) { synchronized_ = synchronized; } |
- |
private: |
ResourceProvider* resource_provider_; |
- ResourceId resource_id_; |
+ ResourceProvider::Resource* resource_; |
unsigned texture_id_; |
- GLenum target_; |
- ResourceFormat format_; |
- gfx::Size size_; |
- TextureMailbox mailbox_; |
+ bool set_sync_token_; |
gpu::SyncToken sync_token_; |
- bool synchronized_; |
- base::ThreadChecker thread_checker_; |
DISALLOW_COPY_AND_ASSIGN(ScopedWriteLockGL); |
- }; |
- |
- class CC_EXPORT ScopedTextureProvider { |
- public: |
- ScopedTextureProvider(gpu::gles2::GLES2Interface* gl, |
- ScopedWriteLockGL* resource_lock, |
- bool use_mailbox); |
- ~ScopedTextureProvider(); |
- |
- unsigned texture_id() const { return texture_id_; } |
- |
- private: |
- gpu::gles2::GLES2Interface* gl_; |
- bool use_mailbox_; |
- unsigned texture_id_; |
- |
- DISALLOW_COPY_AND_ASSIGN(ScopedTextureProvider); |
- }; |
- |
- class CC_EXPORT ScopedSkSurfaceProvider { |
- public: |
- ScopedSkSurfaceProvider(ContextProvider* context_provider, |
- ScopedWriteLockGL* resource_lock, |
- bool use_mailbox, |
- bool use_distance_field_text, |
- bool can_use_lcd_text, |
- int msaa_sample_count); |
- ~ScopedSkSurfaceProvider(); |
- |
- SkSurface* sk_surface() { return sk_surface_.get(); } |
- |
- private: |
- ScopedTextureProvider texture_provider_; |
- sk_sp<SkSurface> sk_surface_; |
- |
- DISALLOW_COPY_AND_ASSIGN(ScopedSkSurfaceProvider); |
}; |
class CC_EXPORT ScopedReadLockSoftware { |
@@ -357,7 +305,7 @@ |
private: |
ResourceProvider* resource_provider_; |
- ResourceId resource_id_; |
+ ResourceProvider::Resource* resource_; |
SkBitmap sk_bitmap_; |
base::ThreadChecker thread_checker_; |
@@ -374,13 +322,43 @@ |
private: |
ResourceProvider* resource_provider_; |
- ResourceId resource_id_; |
- ResourceFormat format_; |
- gfx::Size size_; |
+ ResourceProvider::Resource* resource_; |
std::unique_ptr<gfx::GpuMemoryBuffer> gpu_memory_buffer_; |
base::ThreadChecker thread_checker_; |
DISALLOW_COPY_AND_ASSIGN(ScopedWriteLockGpuMemoryBuffer); |
+ }; |
+ |
+ class CC_EXPORT ScopedWriteLockGr { |
+ public: |
+ ScopedWriteLockGr(ResourceProvider* resource_provider, |
+ ResourceId resource_id); |
+ ~ScopedWriteLockGr(); |
+ |
+ void InitSkSurface(GrContext* gr_context, |
+ bool use_distance_field_text, |
+ bool can_use_lcd_text, |
+ int msaa_sample_count); |
+ void ReleaseSkSurface(); |
+ |
+ SkSurface* sk_surface() { return sk_surface_.get(); } |
+ |
+ gfx::Size GetResourceSize() const { return resource_->size; } |
+ |
+ void UpdateResourceSyncToken(const gpu::SyncToken& sync_token) { |
+ set_sync_token_ = true; |
+ sync_token_ = sync_token; |
+ } |
+ |
+ private: |
+ ResourceProvider* resource_provider_; |
+ ResourceProvider::Resource* resource_; |
+ base::ThreadChecker thread_checker_; |
+ sk_sp<SkSurface> sk_surface_; |
+ bool set_sync_token_; |
+ gpu::SyncToken sync_token_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(ScopedWriteLockGr); |
}; |
class Fence : public base::RefCounted<Fence> { |