diff options
author | Lorry Tar Creator <lorry-tar-importer@lorry> | 2017-06-27 06:07:23 +0000 |
---|---|---|
committer | Lorry Tar Creator <lorry-tar-importer@lorry> | 2017-06-27 06:07:23 +0000 |
commit | 1bf1084f2b10c3b47fd1a588d85d21ed0eb41d0c (patch) | |
tree | 46dcd36c86e7fbc6e5df36deb463b33e9967a6f7 /Source/WebCore/platform/graphics/cairo/ImageBufferDataCairo.h | |
parent | 32761a6cee1d0dee366b885b7b9c777e67885688 (diff) | |
download | WebKitGtk-tarball-master.tar.gz |
webkitgtk-2.16.5HEADwebkitgtk-2.16.5master
Diffstat (limited to 'Source/WebCore/platform/graphics/cairo/ImageBufferDataCairo.h')
-rw-r--r-- | Source/WebCore/platform/graphics/cairo/ImageBufferDataCairo.h | 37 |
1 files changed, 32 insertions, 5 deletions
diff --git a/Source/WebCore/platform/graphics/cairo/ImageBufferDataCairo.h b/Source/WebCore/platform/graphics/cairo/ImageBufferDataCairo.h index 72ea4c34f..93d817614 100644 --- a/Source/WebCore/platform/graphics/cairo/ImageBufferDataCairo.h +++ b/Source/WebCore/platform/graphics/cairo/ImageBufferDataCairo.h @@ -10,10 +10,10 @@ * 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 COMPUTER, INC. ``AS IS'' AND ANY + * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``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 COMPUTER, INC. OR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR * 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 @@ -23,12 +23,19 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#ifndef ImageBufferDataCairo_h +#define ImageBufferDataCairo_h + +#if USE(CAIRO) + #include "PlatformContextCairo.h" #include "RefPtrCairo.h" #if ENABLE(ACCELERATED_2D_CANVAS) +#include "PlatformLayer.h" #include "TextureMapper.h" #include "TextureMapperPlatformLayer.h" +#include "TextureMapperPlatformLayerProxy.h" #endif namespace WebCore { @@ -37,20 +44,40 @@ class IntSize; class ImageBufferData #if ENABLE(ACCELERATED_2D_CANVAS) - : public TextureMapperPlatformLayer + : public PlatformLayer #endif { public: - ImageBufferData(const IntSize&); + ImageBufferData(const IntSize&, RenderingMode); + virtual ~ImageBufferData(); RefPtr<cairo_surface_t> m_surface; PlatformContextCairo m_platformContext; + std::unique_ptr<GraphicsContext> m_context; IntSize m_size; + RenderingMode m_renderingMode; #if ENABLE(ACCELERATED_2D_CANVAS) - virtual void paintToTextureMapper(TextureMapper*, const FloatRect& target, const TransformationMatrix&, float opacity); + void createCairoGLSurface(); + +#if USE(COORDINATED_GRAPHICS_THREADED) + RefPtr<TextureMapperPlatformLayerProxy> proxy() const override { return m_platformLayerProxy.copyRef(); } + void swapBuffersIfNeeded() override; + void createCompositorBuffer(); + + RefPtr<TextureMapperPlatformLayerProxy> m_platformLayerProxy; + RefPtr<cairo_surface_t> m_compositorSurface; + uint32_t m_compositorTexture; + RefPtr<cairo_t> m_compositorCr; +#else + virtual void paintToTextureMapper(TextureMapper&, const FloatRect& target, const TransformationMatrix&, float opacity); +#endif uint32_t m_texture; #endif }; } // namespace WebCore + +#endif // USE(CAIRO) + +#endif // ImageBufferDataCairo_h |