| Index: Source/platform/graphics/Canvas2DLayerBridge.h
|
| diff --git a/Source/platform/graphics/Canvas2DLayerBridge.h b/Source/platform/graphics/Canvas2DLayerBridge.h
|
| index d259c5fcd9d678c4bc10e7f701853ece552f9247..1687eb42f3ea1cd97f7fbcbec92574a896794bd3 100644
|
| --- a/Source/platform/graphics/Canvas2DLayerBridge.h
|
| +++ b/Source/platform/graphics/Canvas2DLayerBridge.h
|
| @@ -52,6 +52,7 @@ class PLATFORM_EXPORT Canvas2DLayerBridge : public blink::WebExternalTextureLaye
|
| WTF_MAKE_NONCOPYABLE(Canvas2DLayerBridge);
|
| public:
|
| static PassRefPtr<Canvas2DLayerBridge> create(const IntSize&, OpacityMode, int msaaSampleCount);
|
| +
|
| virtual ~Canvas2DLayerBridge();
|
|
|
| // blink::WebExternalTextureLayerClient implementation.
|
| @@ -72,19 +73,26 @@ public:
|
| blink::WebLayer* layer() const;
|
| Platform3DObject getBackingTexture();
|
| bool isAccelerated() const { return true; }
|
| + void setIsHidden(bool);
|
|
|
| // Methods used by Canvas2DLayerManager
|
| virtual size_t freeMemoryIfPossible(size_t); // virtual for mocking
|
| virtual void flush(); // virtual for mocking
|
| virtual size_t storageAllocatedForRecording(); // virtual for faking
|
| - size_t bytesAllocated() const {return m_bytesAllocated;}
|
| + size_t bytesAllocated() const { return m_bytesAllocated; }
|
| void limitPendingFrames();
|
| + void freeReleasedMailbox();
|
| + bool hasReleasedMailbox() const { return m_releasedMailboxInfo; };
|
| + void freeTransientResources();
|
| + bool hasTransientResources() const;
|
| + bool isHidden() { return m_isHidden; }
|
|
|
| void beginDestruction();
|
|
|
| protected:
|
| Canvas2DLayerBridge(PassRefPtr<GraphicsContext3D>, PassOwnPtr<SkDeferredCanvas>, int, OpacityMode);
|
| void setRateLimitingEnabled(bool);
|
| + bool releasedMailboxHasExpired();
|
|
|
| OwnPtr<SkDeferredCanvas> m_canvas;
|
| OwnPtr<blink::WebExternalTextureLayer> m_layer;
|
| @@ -94,8 +102,10 @@ protected:
|
| bool m_didRecordDrawCommand;
|
| bool m_surfaceIsValid;
|
| int m_framesPending;
|
| + int m_framesSinceMailboxRelease;
|
| bool m_destructionInProgress;
|
| bool m_rateLimitingEnabled;
|
| + bool m_isHidden;
|
|
|
| friend class WTF::DoublyLinkedListNode<Canvas2DLayerBridge>;
|
| friend class ::Canvas2DLayerBridgeTest;
|
| @@ -110,7 +120,7 @@ protected:
|
|
|
| struct MailboxInfo {
|
| blink::WebExternalTextureMailbox m_mailbox;
|
| - SkAutoTUnref<SkImage> m_image;
|
| + RefPtr<SkImage> m_image;
|
| MailboxStatus m_status;
|
| RefPtr<Canvas2DLayerBridge> m_parentLayerBridge;
|
|
|
| @@ -121,6 +131,7 @@ protected:
|
|
|
| uint32_t m_lastImageId;
|
| Vector<MailboxInfo> m_mailboxes;
|
| + MailboxInfo* m_releasedMailboxInfo;
|
| };
|
| }
|
| #endif
|
|
|