| Index: sky/engine/platform/graphics/Canvas2DLayerBridge.h
|
| diff --git a/sky/engine/platform/graphics/Canvas2DLayerBridge.h b/sky/engine/platform/graphics/Canvas2DLayerBridge.h
|
| deleted file mode 100644
|
| index caa572082dce64f5ff92c29bd78eff95f324e2b4..0000000000000000000000000000000000000000
|
| --- a/sky/engine/platform/graphics/Canvas2DLayerBridge.h
|
| +++ /dev/null
|
| @@ -1,145 +0,0 @@
|
| -/*
|
| - * Copyright (C) 2012 Google Inc. All rights reserved.
|
| - *
|
| - * Redistribution and use in source and binary forms, with or without
|
| - * modification, are permitted provided that the following conditions
|
| - * are met:
|
| - *
|
| - * 1. Redistributions of source code must retain the above copyright
|
| - * notice, this list of conditions and the following disclaimer.
|
| - * 2. Redistributions in binary form must reproduce the above copyright
|
| - * notice, this list of conditions and the following disclaimer in the
|
| - * documentation and/or other materials provided with the distribution.
|
| - *
|
| - * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
|
| - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
| - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
| - * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
|
| - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
| - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
| - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
| - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
| - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
| - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
| - */
|
| -
|
| -#ifndef SKY_ENGINE_PLATFORM_GRAPHICS_CANVAS2DLAYERBRIDGE_H_
|
| -#define SKY_ENGINE_PLATFORM_GRAPHICS_CANVAS2DLAYERBRIDGE_H_
|
| -
|
| -#include "sky/engine/platform/PlatformExport.h"
|
| -#include "sky/engine/platform/geometry/IntSize.h"
|
| -#include "sky/engine/platform/graphics/ImageBufferSurface.h"
|
| -#include "sky/engine/public/platform/WebExternalTextureLayer.h"
|
| -#include "sky/engine/public/platform/WebExternalTextureLayerClient.h"
|
| -#include "sky/engine/public/platform/WebExternalTextureMailbox.h"
|
| -#include "sky/engine/wtf/DoublyLinkedList.h"
|
| -#include "sky/engine/wtf/PassOwnPtr.h"
|
| -#include "sky/engine/wtf/RefCounted.h"
|
| -#include "sky/engine/wtf/RefPtr.h"
|
| -#include "third_party/khronos/GLES2/gl2.h"
|
| -#include "third_party/skia/include/core/SkImage.h"
|
| -#include "third_party/skia/include/utils/SkDeferredCanvas.h"
|
| -
|
| -class Canvas2DLayerBridgeTest;
|
| -
|
| -namespace blink {
|
| -
|
| -class ImageBuffer;
|
| -class WebGraphicsContext3D;
|
| -class WebGraphicsContext3DProvider;
|
| -
|
| -class PLATFORM_EXPORT Canvas2DLayerBridge : public WebExternalTextureLayerClient, public SkDeferredCanvas::NotificationClient, public DoublyLinkedListNode<Canvas2DLayerBridge>, public RefCounted<Canvas2DLayerBridge> {
|
| - WTF_MAKE_NONCOPYABLE(Canvas2DLayerBridge);
|
| -public:
|
| - static PassRefPtr<Canvas2DLayerBridge> create(const IntSize&, OpacityMode, int msaaSampleCount);
|
| -
|
| - virtual ~Canvas2DLayerBridge();
|
| -
|
| - // WebExternalTextureLayerClient implementation.
|
| - virtual bool prepareMailbox(WebExternalTextureMailbox*, WebExternalBitmap*) override;
|
| - virtual void mailboxReleased(const WebExternalTextureMailbox&, bool lostResource) override;
|
| -
|
| - // SkDeferredCanvas::NotificationClient implementation
|
| - virtual void prepareForDraw() override;
|
| - virtual void storageAllocatedForRecordingChanged(size_t) override;
|
| - virtual void flushedDrawCommands() override;
|
| - virtual void skippedPendingDrawCommands() override;
|
| -
|
| - // ImageBufferSurface implementation
|
| - void finalizeFrame();
|
| - void willAccessPixels();
|
| - SkCanvas* canvas() const { return m_canvas.get(); }
|
| - bool checkSurfaceValid();
|
| - bool restoreSurface();
|
| - WebLayer* layer() const;
|
| - Platform3DObject getBackingTexture();
|
| - bool isAccelerated() const { return true; }
|
| - void setIsHidden(bool);
|
| - void setImageBuffer(ImageBuffer* imageBuffer) { m_imageBuffer = imageBuffer; }
|
| -
|
| - // 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; }
|
| - void limitPendingFrames();
|
| - void freeReleasedMailbox();
|
| - bool hasReleasedMailbox() const;
|
| - void freeTransientResources();
|
| - bool hasTransientResources() const;
|
| - bool isHidden() { return m_isHidden; }
|
| -
|
| - void beginDestruction();
|
| -
|
| -protected:
|
| - Canvas2DLayerBridge(PassOwnPtr<WebGraphicsContext3DProvider>, PassOwnPtr<SkDeferredCanvas>, PassRefPtr<SkSurface>, int, OpacityMode);
|
| - void setRateLimitingEnabled(bool);
|
| - bool releasedMailboxHasExpired();
|
| - WebGraphicsContext3D* context();
|
| -
|
| - OwnPtr<SkDeferredCanvas> m_canvas;
|
| - RefPtr<SkSurface> m_surface;
|
| - OwnPtr<WebExternalTextureLayer> m_layer;
|
| - OwnPtr<WebGraphicsContext3DProvider> m_contextProvider;
|
| - ImageBuffer* m_imageBuffer;
|
| - int m_msaaSampleCount;
|
| - size_t m_bytesAllocated;
|
| - bool m_didRecordDrawCommand;
|
| - bool m_isSurfaceValid;
|
| - int m_framesPending;
|
| - int m_framesSinceMailboxRelease;
|
| - bool m_destructionInProgress;
|
| - bool m_rateLimitingEnabled;
|
| - bool m_isHidden;
|
| -
|
| - friend class WTF::DoublyLinkedListNode<Canvas2DLayerBridge>;
|
| - friend class ::Canvas2DLayerBridgeTest;
|
| - Canvas2DLayerBridge* m_next;
|
| - Canvas2DLayerBridge* m_prev;
|
| -
|
| - enum MailboxStatus {
|
| - MailboxInUse,
|
| - MailboxReleased,
|
| - MailboxAvailable,
|
| - };
|
| -
|
| - struct MailboxInfo {
|
| - WebExternalTextureMailbox m_mailbox;
|
| - RefPtr<SkImage> m_image;
|
| - MailboxStatus m_status;
|
| - RefPtr<Canvas2DLayerBridge> m_parentLayerBridge;
|
| -
|
| - MailboxInfo(const MailboxInfo&);
|
| - MailboxInfo() {}
|
| - };
|
| - MailboxInfo* createMailboxInfo();
|
| - MailboxInfo* releasedMailboxInfo();
|
| -
|
| - uint32_t m_lastImageId;
|
| - Vector<MailboxInfo> m_mailboxes;
|
| - int m_releasedMailboxInfoIndex;
|
| -};
|
| -
|
| -} // namespace blink
|
| -
|
| -#endif // SKY_ENGINE_PLATFORM_GRAPHICS_CANVAS2DLAYERBRIDGE_H_
|
|
|