summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@digia.com>2015-01-06 16:31:27 +0100
committerAshish Kulkarni <kulkarni.ashish@gmail.com>2015-01-08 17:52:21 +0100
commit4ecb913768ff0806c6efdff4567ef5907f597e4a (patch)
tree171f8ef23f66854a77279c5420cd78c665563584
parenta4449b1209fbcdbe936bfd692804a0be831c7b4f (diff)
Fix build without OpenGL
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>
-rw-r--r--Source/WebCore/Target.pri4
-rw-r--r--Source/WebCore/html/HTMLCanvasElement.cpp2
-rw-r--r--Source/WebCore/platform/graphics/ImageBuffer.h4
-rw-r--r--Source/WebCore/platform/graphics/qt/ImageBufferDataQt.cpp11
-rw-r--r--Source/WebCore/platform/graphics/qt/ImageBufferDataQt.h7
-rw-r--r--Source/WebCore/platform/graphics/qt/ImageBufferQt.cpp4
-rw-r--r--Tools/QtTestBrowser/launcherwindow.cpp8
-rw-r--r--Tools/QtTestBrowser/launcherwindow.h2
8 files changed, 25 insertions, 17 deletions
diff --git a/Source/WebCore/Target.pri b/Source/WebCore/Target.pri
index b9167d13b..d1aad9f9b 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 b856234b1..ae399596a 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 7addde9d5..a30d0523c 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 4a1651548..1235ce690 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 486b0d576..fcad887d3 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 400743df2..09c90a6a0 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 e2dcef39f..d2933979b 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 c470a5adc..5cee7e5c7 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();