123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291 |
- 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
|