summaryrefslogtreecommitdiff
path: root/chromium/cc/resources/scoped_ui_resource.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/cc/resources/scoped_ui_resource.h')
-rw-r--r--chromium/cc/resources/scoped_ui_resource.h24
1 files changed, 13 insertions, 11 deletions
diff --git a/chromium/cc/resources/scoped_ui_resource.h b/chromium/cc/resources/scoped_ui_resource.h
index 628d372c552..c257e1e25dc 100644
--- a/chromium/cc/resources/scoped_ui_resource.h
+++ b/chromium/cc/resources/scoped_ui_resource.h
@@ -15,25 +15,27 @@ namespace cc {
class LayerTreeHost;
+// ScopedUIResource creates an UIResource from a bitmap and a LayerTreeHost.
+// This class holds a pointer to the host so that when the instance goes out of
+// scope, the created resource is deleted. On a GetBitmap call from the
+// UIResource manager, ScopeUIResource always returns the reference to the
+// initially given bitmap regardless of whether the request was due to lost
+// resource or not.
class CC_EXPORT ScopedUIResource : public UIResourceClient {
public:
- static scoped_ptr<ScopedUIResource> Create(
- LayerTreeHost* host,
- scoped_refptr<UIResourceBitmap> bitmap);
+ static scoped_ptr<ScopedUIResource> Create(LayerTreeHost* host,
+ const UIResourceBitmap& bitmap);
virtual ~ScopedUIResource();
- virtual scoped_refptr<UIResourceBitmap> GetBitmap(
- UIResourceId uid,
- bool resource_lost) OVERRIDE;
+ // UIResourceClient implementation.
+ virtual UIResourceBitmap GetBitmap(UIResourceId uid,
+ bool resource_lost) OVERRIDE;
UIResourceId id() { return id_; }
protected:
- ScopedUIResource(LayerTreeHost* host, scoped_refptr<UIResourceBitmap> bitmap);
+ ScopedUIResource(LayerTreeHost* host, const UIResourceBitmap& bitmap);
- // An empty default contructor for testing.
- ScopedUIResource();
-
- scoped_refptr<UIResourceBitmap> bitmap_;
+ UIResourceBitmap bitmap_;
LayerTreeHost* host_;
UIResourceId id_;