summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/platform/graphics/qt/ImageBufferDataQt.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/platform/graphics/qt/ImageBufferDataQt.h')
-rw-r--r--Source/WebCore/platform/graphics/qt/ImageBufferDataQt.h47
1 files changed, 40 insertions, 7 deletions
diff --git a/Source/WebCore/platform/graphics/qt/ImageBufferDataQt.h b/Source/WebCore/platform/graphics/qt/ImageBufferDataQt.h
index abd51a584..2ead943ca 100644
--- a/Source/WebCore/platform/graphics/qt/ImageBufferDataQt.h
+++ b/Source/WebCore/platform/graphics/qt/ImageBufferDataQt.h
@@ -23,10 +23,20 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+#ifndef ImageBufferDataQt_h
+#define ImageBufferDataQt_h
+
#include "Image.h"
+#include "PlatformLayer.h"
+
+#include <QImage>
+#include <QPaintDevice>
#include <QPainter>
-#include <QPixmap>
+
+#if ENABLE(ACCELERATED_2D_CANVAS)
+#include <QOpenGLContext>
+#endif
#include <wtf/RefPtr.h>
@@ -34,16 +44,39 @@ namespace WebCore {
class IntSize;
+struct ImageBufferDataPrivate {
+ virtual ~ImageBufferDataPrivate() { }
+ virtual QPaintDevice* paintDevice() = 0;
+ virtual QImage toQImage() const = 0;
+ virtual RefPtr<Image> image() const = 0;
+ virtual RefPtr<Image> copyImage() const = 0;
+ virtual RefPtr<Image> takeImage() = 0;
+ virtual bool isAccelerated() const = 0;
+ virtual PlatformLayer* platformLayer() = 0;
+ virtual void draw(GraphicsContext& destContext, const FloatRect& destRect,
+ const FloatRect& srcRect, CompositeOperator, BlendMode,
+ bool ownContext) = 0;
+ virtual void drawPattern(GraphicsContext& destContext, const FloatRect& srcRect, const AffineTransform& patternTransform,
+ const FloatPoint& phase, const FloatSize& spacing, CompositeOperator,
+ const FloatRect& destRect, BlendMode, bool ownContext) = 0;
+ virtual void clip(GraphicsContext&, const IntRect& floatRect) const = 0;
+ virtual void platformTransformColorSpace(const Vector<int>& lookUpTable) = 0;
+};
+
class ImageBufferData {
public:
ImageBufferData(const IntSize&);
-
- QImage toQImage() const;
-
- QPixmap m_pixmap;
- std::unique_ptr<QPainter> m_painter;
- RefPtr<Image> m_image;
+#if ENABLE(ACCELERATED_2D_CANVAS)
+ ImageBufferData(const IntSize&, QOpenGLContext*);
+#endif
+ ~ImageBufferData();
+ QPainter* m_painter;
std::unique_ptr<GraphicsContext> m_context;
+ ImageBufferDataPrivate* m_impl;
+protected:
+ void initPainter();
};
} // namespace WebCore
+
+#endif