summaryrefslogtreecommitdiffstats
path: root/package/qt5/qt5webkit/0003-Fix-build-without-OpenGL.patch
blob: cf6aeeefc5b9ce88b275f5eb1e5f160177da03ac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
From 4ecb913768ff0806c6efdff4567ef5907f597e4a Mon Sep 17 00:00:00 2001
From: Allan Sandfeld Jensen <allan.jensen@digia.com>
Date: Tue, 6 Jan 2015 16:31:27 +0100
Subject: [PATCH] Fix build without OpenGL
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The accelerated 2D canvas feature broke building without OpenGL due to
missing feature checks.

Task-number: QTBUG-43549
Change-Id: I7e62751d5237e1c600bc784539c70db50bccfa22
Reviewed-by: Ashish Kulkarni <kulkarni.ashish@gmail.com>
Reviewed-by: Michael Brüning <michael.bruning@theqtcompany.com>
---
 Source/WebCore/Target.pri                          |    4 ++--
 Source/WebCore/html/HTMLCanvasElement.cpp          |    2 +-
 Source/WebCore/platform/graphics/ImageBuffer.h     |    4 ++--
 .../platform/graphics/qt/ImageBufferDataQt.cpp     |   11 +++++------
 .../platform/graphics/qt/ImageBufferDataQt.h       |    7 ++++++-
 .../WebCore/platform/graphics/qt/ImageBufferQt.cpp |    4 ++++
 Tools/QtTestBrowser/launcherwindow.cpp             |    8 ++++----
 Tools/QtTestBrowser/launcherwindow.h               |    2 +-
 8 files changed, 25 insertions(+), 17 deletions(-)

diff --git a/Source/WebCore/Target.pri b/Source/WebCore/Target.pri
index b9167d1..d1aad9f 100644
--- a/Source/WebCore/Target.pri
+++ b/Source/WebCore/Target.pri
@@ -2232,7 +2232,6 @@ HEADERS += \
     platform/graphics/RoundedRect.h \
     platform/graphics/qt/FontCustomPlatformData.h \
     platform/graphics/qt/NativeImageQt.h \
-    platform/graphics/qt/QFramebufferPaintDevice.h \
     platform/graphics/qt/StillImageQt.h \
     platform/graphics/qt/TransparencyLayer.h \
     platform/graphics/SegmentedFontData.h \
@@ -2886,7 +2885,6 @@ SOURCES += \
     platform/graphics/qt/IntPointQt.cpp \
     platform/graphics/qt/IntRectQt.cpp \
     platform/graphics/qt/IntSizeQt.cpp \
-    platform/graphics/qt/QFramebufferPaintDevice.cpp \
     platform/graphics/qt/PathQt.cpp \
     platform/graphics/qt/PatternQt.cpp \
     platform/graphics/qt/StillImageQt.cpp \
@@ -4146,6 +4144,7 @@ use?(3D_GRAPHICS) {
         platform/graphics/gpu/Texture.h \
         platform/graphics/gpu/TilingData.h \
         platform/graphics/opengl/Extensions3DOpenGL.h \
+        platform/graphics/qt/QFramebufferPaintDevice.h \
         platform/graphics/texmap/TextureMapperGL.h \
         platform/graphics/texmap/TextureMapperShaderProgram.h \
         platform/graphics/texmap/coordinated/AreaAllocator.h \
@@ -4182,6 +4181,7 @@ use?(3D_GRAPHICS) {
         platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp \
         platform/graphics/opengl/Extensions3DOpenGLCommon.cpp \
         platform/graphics/qt/GraphicsContext3DQt.cpp \
+        platform/graphics/qt/QFramebufferPaintDevice.cpp \
         platform/graphics/texmap/TextureMapperGL.cpp \
         platform/graphics/texmap/TextureMapperShaderProgram.cpp \
         platform/graphics/texmap/coordinated/AreaAllocator.cpp \
diff --git a/Source/WebCore/html/HTMLCanvasElement.cpp b/Source/WebCore/html/HTMLCanvasElement.cpp
index b856234..ae39959 100644
--- a/Source/WebCore/html/HTMLCanvasElement.cpp
+++ b/Source/WebCore/html/HTMLCanvasElement.cpp
@@ -586,7 +586,7 @@ void HTMLCanvasElement::createImageBuffer() const
         return;
 
     RenderingMode renderingMode = shouldAccelerate(bufferSize) ? Accelerated : Unaccelerated;
-#if PLATFORM(QT)
+#if PLATFORM(QT) && ENABLE(ACCELERATED_2D_CANVAS)
     if (renderingMode == Accelerated) {
         QWebPageClient* client = document()->page()->chrome().platformPageClient();
         // The WebKit2 Chrome does not have a pageclient.
diff --git a/Source/WebCore/platform/graphics/ImageBuffer.h b/Source/WebCore/platform/graphics/ImageBuffer.h
index 7addde9..a30d052 100644
--- a/Source/WebCore/platform/graphics/ImageBuffer.h
+++ b/Source/WebCore/platform/graphics/ImageBuffer.h
@@ -95,7 +95,7 @@ namespace WebCore {
         }
 
         static PassOwnPtr<ImageBuffer> createCompatibleBuffer(const IntSize&, float resolutionScale, ColorSpace, const GraphicsContext*, bool hasAlpha);
-#if PLATFORM(QT)
+#if PLATFORM(QT) && ENABLE(ACCELERATED_2D_CANVAS)
         static PassOwnPtr<ImageBuffer> createCompatibleBuffer(const IntSize&, float resolutionScale, ColorSpace, QOpenGLContext*);
 #endif
 
@@ -165,7 +165,7 @@ namespace WebCore {
         // This constructor will place its success into the given out-variable
         // so that create() knows when it should return failure.
         ImageBuffer(const IntSize&, float resolutionScale, ColorSpace, RenderingMode, bool& success);
-#if PLATFORM(QT)
+#if PLATFORM(QT) && ENABLE(ACCELERATED_2D_CANVAS)
         ImageBuffer(const IntSize&, float resolutionScale, ColorSpace, QOpenGLContext*, bool& success);
 #endif
     };
diff --git a/Source/WebCore/platform/graphics/qt/ImageBufferDataQt.cpp b/Source/WebCore/platform/graphics/qt/ImageBufferDataQt.cpp
index 4a16515..1235ce6 100644
--- a/Source/WebCore/platform/graphics/qt/ImageBufferDataQt.cpp
+++ b/Source/WebCore/platform/graphics/qt/ImageBufferDataQt.cpp
@@ -34,7 +34,6 @@
 #include "GraphicsSurface.h"
 #include "ImageData.h"
 #include "StillImageQt.h"
-#include "QFramebufferPaintDevice.h"
 
 #include <QImage>
 #include <QPaintEngine>
@@ -42,6 +41,7 @@
 #include <QPixmap>
 
 #if ENABLE(ACCELERATED_2D_CANVAS)
+#include "QFramebufferPaintDevice.h"
 #include "TextureMapper.h"
 #include "TextureMapperPlatformLayer.h"
 #include "TextureMapperGL.h"
@@ -483,16 +483,12 @@ ImageBufferData::ImageBufferData(const IntSize& size)
     initPainter();
 }
 
+#if ENABLE(ACCELERATED_2D_CANVAS)
 ImageBufferData::ImageBufferData(const IntSize& size, QOpenGLContext* compatibleContext)
 {
     m_painter = new QPainter;
 
-#if ENABLE(ACCELERATED_2D_CANVAS)
     m_impl = new ImageBufferDataPrivateAccelerated(size, compatibleContext);
-#else
-    Q_UNUSED(compatibleContext);
-    m_impl = new ImageBufferDataPrivateUnaccelerated(size);
-#endif
 
     if (!m_impl->paintDevice())
         return;
@@ -501,11 +497,14 @@ ImageBufferData::ImageBufferData(const IntSize& size, QOpenGLContext* compatible
 
     initPainter();
 }
+#endif
 
 ImageBufferData::~ImageBufferData()
 {
+#if ENABLE(ACCELERATED_2D_CANVAS)
     if (m_impl->isAccelerated())
         static_cast<QFramebufferPaintDevice*>(m_impl->paintDevice())->ensureActiveTarget();
+#endif
     m_painter->end();
     delete m_painter;
     delete m_impl;
diff --git a/Source/WebCore/platform/graphics/qt/ImageBufferDataQt.h b/Source/WebCore/platform/graphics/qt/ImageBufferDataQt.h
index 486b0d5..fcad887 100644
--- a/Source/WebCore/platform/graphics/qt/ImageBufferDataQt.h
+++ b/Source/WebCore/platform/graphics/qt/ImageBufferDataQt.h
@@ -29,10 +29,13 @@
 #include "Image.h"
 
 #include <QImage>
-#include <QOpenGLContext>
 #include <QPainter>
 #include <QPaintDevice>
 
+#if ENABLE(ACCELERATED_2D_CANVAS)
+#include <QOpenGLContext>
+#endif
+
 #include <wtf/RefPtr.h>
 
 namespace WebCore {
@@ -61,7 +64,9 @@ class ImageBufferData
 {
 public:
     ImageBufferData(const IntSize&);
+#if ENABLE(ACCELERATED_2D_CANVAS)
     ImageBufferData(const IntSize&, QOpenGLContext*);
+#endif
     ~ImageBufferData();
     QPainter* m_painter;
     ImageBufferDataPrivate* m_impl;
diff --git a/Source/WebCore/platform/graphics/qt/ImageBufferQt.cpp b/Source/WebCore/platform/graphics/qt/ImageBufferQt.cpp
index 400743d..09c90a6 100644
--- a/Source/WebCore/platform/graphics/qt/ImageBufferQt.cpp
+++ b/Source/WebCore/platform/graphics/qt/ImageBufferQt.cpp
@@ -47,6 +47,7 @@
 
 namespace WebCore {
 
+#if ENABLE(ACCELERATED_2D_CANVAS)
 ImageBuffer::ImageBuffer(const IntSize& size, float /* resolutionScale */, ColorSpace, QOpenGLContext* compatibleContext, bool& success)
     : m_data(size, compatibleContext)
     , m_size(size)
@@ -58,6 +59,7 @@ ImageBuffer::ImageBuffer(const IntSize& size, float /* resolutionScale */, Color
 
     m_context = adoptPtr(new GraphicsContext(m_data.m_painter));
 }
+#endif
 
 ImageBuffer::ImageBuffer(const IntSize& size, float /* resolutionScale */, ColorSpace, RenderingMode /*renderingMode*/, bool& success)
     : m_data(size)
@@ -75,6 +77,7 @@ ImageBuffer::~ImageBuffer()
 {
 }
 
+#if ENABLE(ACCELERATED_2D_CANVAS)
 PassOwnPtr<ImageBuffer> ImageBuffer::createCompatibleBuffer(const IntSize& size, float resolutionScale, ColorSpace colorSpace, QOpenGLContext* context)
 {
     bool success = false;
@@ -83,6 +86,7 @@ PassOwnPtr<ImageBuffer> ImageBuffer::createCompatibleBuffer(const IntSize& size,
         return nullptr;
     return buf.release();
 }
+#endif
 
 GraphicsContext* ImageBuffer::context() const
 {
diff --git a/Tools/QtTestBrowser/launcherwindow.cpp b/Tools/QtTestBrowser/launcherwindow.cpp
index e2dcef3..d293397 100644
--- a/Tools/QtTestBrowser/launcherwindow.cpp
+++ b/Tools/QtTestBrowser/launcherwindow.cpp
@@ -177,9 +177,9 @@ void LauncherWindow::initializeView()
 #ifndef QT_NO_OPENGL
         if (!m_windowOptions.useQOpenGLWidgetViewport)
             toggleQGLWidgetViewport(m_windowOptions.useQGLWidgetViewport);
-#endif
         if (!m_windowOptions.useQGLWidgetViewport)
             toggleQOpenGLWidgetViewport(m_windowOptions.useQOpenGLWidgetViewport);
+#endif
         view->setPage(page());
 
         connect(view, SIGNAL(currentFPSUpdated(int)), this, SLOT(updateFPS(int)));
@@ -407,7 +407,6 @@ void LauncherWindow::createChrome()
     toggleQGLWidgetViewport->setChecked(m_windowOptions.useQGLWidgetViewport);
     toggleQGLWidgetViewport->setEnabled(isGraphicsBased());
     toggleQGLWidgetViewport->connect(toggleGraphicsView, SIGNAL(toggled(bool)), SLOT(setEnabled(bool)));
-#endif
 #if QT_VERSION >= QT_VERSION_CHECK(5, 4, 0)
     QAction* toggleQOpenGLWidgetViewport = graphicsViewMenu->addAction("Toggle use of QOpenGLWidget Viewport", this, SLOT(toggleQOpenGLWidgetViewport(bool)));
     toggleQOpenGLWidgetViewport->setCheckable(true);
@@ -415,6 +414,7 @@ void LauncherWindow::createChrome()
     toggleQOpenGLWidgetViewport->setEnabled(isGraphicsBased());
     toggleQOpenGLWidgetViewport->connect(toggleGraphicsView, SIGNAL(toggled(bool)), SLOT(setEnabled(bool)));
 #endif
+#endif
 
     QMenu* viewportUpdateMenu = graphicsViewMenu->addMenu("Change Viewport Update Mode");
     viewportUpdateMenu->setEnabled(isGraphicsBased());
@@ -802,9 +802,9 @@ void LauncherWindow::screenshot()
 #ifndef QT_NO_OPENGL
     if (!m_windowOptions.useQOpenGLWidgetViewport)
         toggleQGLWidgetViewport(m_windowOptions.useQGLWidgetViewport);
-#endif
     if (!m_windowOptions.useQGLWidgetViewport)
         toggleQOpenGLWidgetViewport(m_windowOptions.useQOpenGLWidgetViewport);
+#endif
 }
 
 void LauncherWindow::setEditable(bool on)
@@ -997,7 +997,6 @@ void LauncherWindow::toggleQGLWidgetViewport(bool enable)
     WebViewGraphicsBased* view = static_cast<WebViewGraphicsBased*>(m_view);
     view->setViewport(enable ? new QGLWidget() : 0);
 }
-#endif
 
 void LauncherWindow::toggleQOpenGLWidgetViewport(bool enable)
 {
@@ -1013,6 +1012,7 @@ void LauncherWindow::toggleQOpenGLWidgetViewport(bool enable)
     view->setViewport(enable ? new QOpenGLWidget() : 0);
 #endif
 }
+#endif
 
 void LauncherWindow::changeViewportUpdateMode(int mode)
 {
diff --git a/Tools/QtTestBrowser/launcherwindow.h b/Tools/QtTestBrowser/launcherwindow.h
index c470a5a..5cee7e5 100644
--- a/Tools/QtTestBrowser/launcherwindow.h
+++ b/Tools/QtTestBrowser/launcherwindow.h
@@ -180,8 +180,8 @@ protected Q_SLOTS:
 #endif
 #ifndef QT_NO_OPENGL
     void toggleQGLWidgetViewport(bool enable);
-#endif
     void toggleQOpenGLWidgetViewport(bool enable);
+#endif
 
     void changeViewportUpdateMode(int mode);
     void animatedFlip();
-- 
1.7.1


OpenPOWER on IntegriCloud