From fbe3acc7b2823f64c8f4e74233bb9fa8028f52bf Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Mon, 11 Jul 2016 11:42:10 +0200 Subject: Switch away from deprecated QSG*Node classes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Use the new public QSG classes meant to replace QSGSimpleRectNode and QSGSimpleTextureNode. Change-Id: Icdfc3b4ba13dd28258defa955d050927abbae95b Reviewed-by: Michael BrĂ¼ning --- src/core/delegated_frame_node.cpp | 21 +++++++++++++------- src/core/render_widget_host_view_qt_delegate.h | 9 +++++++++ .../render_widget_host_view_qt_delegate_quick.cpp | 23 ++++++++++++++++++++++ .../render_widget_host_view_qt_delegate_quick.h | 2 ++ ...er_widget_host_view_qt_delegate_quickwindow.cpp | 10 ++++++++++ ...nder_widget_host_view_qt_delegate_quickwindow.h | 2 ++ .../render_widget_host_view_qt_delegate_widget.cpp | 23 ++++++++++++++++++++++ .../render_widget_host_view_qt_delegate_widget.h | 2 ++ 8 files changed, 85 insertions(+), 7 deletions(-) diff --git a/src/core/delegated_frame_node.cpp b/src/core/delegated_frame_node.cpp index 8b635d912..0c2b3cdea 100644 --- a/src/core/delegated_frame_node.cpp +++ b/src/core/delegated_frame_node.cpp @@ -73,12 +73,19 @@ #include #include -#include -#include +#include #include #include #include +#if (QT_VERSION >= QT_VERSION_CHECK(5, 8, 0)) +#include +#include +#else +#include +#include +#endif + #if !defined(QT_NO_EGL) #include #include @@ -538,7 +545,7 @@ void DelegatedFrameNode::commit(ChromiumCompositorData *chromiumCompositorData, if (!layer) continue; - // Only QSGImageNode currently supports QSGLayer textures. + // Only QSGInternalImageNode currently supports QSGLayer textures. QSGInternalImageNode *imageNode = apiDelegate->createImageNode(); imageNode->setTargetRect(toQt(quad->rect)); imageNode->setInnerTargetRect(toQt(quad->rect)); @@ -550,8 +557,8 @@ void DelegatedFrameNode::commit(ChromiumCompositorData *chromiumCompositorData, const cc::TextureDrawQuad *tquad = cc::TextureDrawQuad::MaterialCast(quad); ResourceHolder *resource = findAndHoldResource(tquad->resource_id(), resourceCandidates); - QSGSimpleTextureNode *textureNode = new QSGSimpleTextureNode; - textureNode->setTextureCoordinatesTransform(tquad->y_flipped ? QSGSimpleTextureNode::MirrorVertically : QSGSimpleTextureNode::NoTransform); + QSGTextureNode *textureNode = apiDelegate->createTextureNode(); + textureNode->setTextureCoordinatesTransform(tquad->y_flipped ? QSGTextureNode::MirrorVertically : QSGTextureNode::NoTransform); textureNode->setRect(toQt(quad->rect)); textureNode->setFiltering(resource->transferableResource().filter == GL_LINEAR ? QSGTexture::Linear : QSGTexture::Nearest); textureNode->setTexture(initAndHoldTexture(resource, quad->ShouldDrawWithBlending(), apiDelegate)); @@ -559,7 +566,7 @@ void DelegatedFrameNode::commit(ChromiumCompositorData *chromiumCompositorData, break; } case cc::DrawQuad::SOLID_COLOR: { const cc::SolidColorDrawQuad *scquad = cc::SolidColorDrawQuad::MaterialCast(quad); - QSGSimpleRectNode *rectangleNode = new QSGSimpleRectNode; + QSGRectangleNode *rectangleNode = apiDelegate->createRectangleNode(); // Qt only supports MSAA and this flag shouldn't be needed. // If we ever want to use QSGRectangleNode::setAntialiasing for this we should @@ -598,7 +605,7 @@ void DelegatedFrameNode::commit(ChromiumCompositorData *chromiumCompositorData, const cc::TileDrawQuad *tquad = cc::TileDrawQuad::MaterialCast(quad); ResourceHolder *resource = findAndHoldResource(tquad->resource_id(), resourceCandidates); - QSGSimpleTextureNode *textureNode = new QSGSimpleTextureNode; + QSGTextureNode *textureNode = apiDelegate->createTextureNode(); textureNode->setRect(toQt(quad->rect)); textureNode->setSourceRect(toQt(tquad->tex_coord_rect)); textureNode->setFiltering(resource->transferableResource().filter == GL_LINEAR ? QSGTexture::Linear : QSGTexture::Nearest); diff --git a/src/core/render_widget_host_view_qt_delegate.h b/src/core/render_widget_host_view_qt_delegate.h index 7ae936bad..39c972f4b 100644 --- a/src/core/render_widget_host_view_qt_delegate.h +++ b/src/core/render_widget_host_view_qt_delegate.h @@ -59,8 +59,15 @@ class QInputMethodEvent; #if (QT_VERSION < QT_VERSION_CHECK(5, 8, 0)) class QSGImageNode; typedef QSGImageNode QSGInternalImageNode; +class QSGSimpleTextureNode; +typedef QSGSimpleTextureNode QSGTextureNode; +class QSGSimpleRectNode; +typedef QSGSimpleRectNode QSGRectangleNode; #else class QSGInternalImageNode; +class QSGRectangleNode; +class QSGImageNode; +typedef QSGImageNode QSGTextureNode; #endif QT_END_NAMESPACE @@ -100,6 +107,8 @@ public: virtual QSGTexture *createTextureFromImage(const QImage &) = 0; virtual QSGLayer *createLayer() = 0; virtual QSGInternalImageNode *createImageNode() = 0; + virtual QSGTextureNode *createTextureNode() = 0; + virtual QSGRectangleNode *createRectangleNode() = 0; virtual void update() = 0; virtual void updateCursor(const QCursor &) = 0; virtual void resize(int width, int height) = 0; diff --git a/src/webengine/render_widget_host_view_qt_delegate_quick.cpp b/src/webengine/render_widget_host_view_qt_delegate_quick.cpp index 1f52d9896..3b86e623e 100644 --- a/src/webengine/render_widget_host_view_qt_delegate_quick.cpp +++ b/src/webengine/render_widget_host_view_qt_delegate_quick.cpp @@ -50,6 +50,11 @@ #include #include +#if (QT_VERSION < QT_VERSION_CHECK(5, 8, 0)) +#include +#include +#endif + namespace QtWebEngineCore { RenderWidgetHostViewQtDelegateQuick::RenderWidgetHostViewQtDelegateQuick(RenderWidgetHostViewQtDelegateClient *client, bool isPopup) @@ -187,6 +192,24 @@ QSGInternalImageNode *RenderWidgetHostViewQtDelegateQuick::createImageNode() #endif } +QSGTextureNode *RenderWidgetHostViewQtDelegateQuick::createTextureNode() +{ +#if (QT_VERSION >= QT_VERSION_CHECK(5, 8, 0)) + return QQuickItem::window()->createImageNode(); +#else + return new QSGSimpleTextureNode(); +#endif +} + +QSGRectangleNode *RenderWidgetHostViewQtDelegateQuick::createRectangleNode() +{ +#if (QT_VERSION >= QT_VERSION_CHECK(5, 8, 0)) + return QQuickItem::window()->createRectangleNode(); +#else + return new QSGSimpleRectNode(); +#endif +} + void RenderWidgetHostViewQtDelegateQuick::update() { QQuickItem::update(); diff --git a/src/webengine/render_widget_host_view_qt_delegate_quick.h b/src/webengine/render_widget_host_view_qt_delegate_quick.h index c894b1fde..2267a131b 100644 --- a/src/webengine/render_widget_host_view_qt_delegate_quick.h +++ b/src/webengine/render_widget_host_view_qt_delegate_quick.h @@ -67,6 +67,8 @@ public: virtual QSGTexture *createTextureFromImage(const QImage &) Q_DECL_OVERRIDE; virtual QSGLayer *createLayer() Q_DECL_OVERRIDE; virtual QSGInternalImageNode *createImageNode() Q_DECL_OVERRIDE; + virtual QSGTextureNode *createTextureNode() Q_DECL_OVERRIDE; + virtual QSGRectangleNode *createRectangleNode() Q_DECL_OVERRIDE; virtual void update() Q_DECL_OVERRIDE; virtual void updateCursor(const QCursor &) Q_DECL_OVERRIDE; virtual void resize(int width, int height) Q_DECL_OVERRIDE; diff --git a/src/webengine/render_widget_host_view_qt_delegate_quickwindow.cpp b/src/webengine/render_widget_host_view_qt_delegate_quickwindow.cpp index fda5784cb..7b7d32d67 100644 --- a/src/webengine/render_widget_host_view_qt_delegate_quickwindow.cpp +++ b/src/webengine/render_widget_host_view_qt_delegate_quickwindow.cpp @@ -116,6 +116,16 @@ QSGInternalImageNode *RenderWidgetHostViewQtDelegateQuickWindow::createImageNode return m_realDelegate->createImageNode(); } +QSGTextureNode *RenderWidgetHostViewQtDelegateQuickWindow::createTextureNode() +{ + return m_realDelegate->createTextureNode(); +} + +QSGRectangleNode *RenderWidgetHostViewQtDelegateQuickWindow::createRectangleNode() +{ + return m_realDelegate->createRectangleNode(); +} + void RenderWidgetHostViewQtDelegateQuickWindow::update() { QQuickWindow::update(); diff --git a/src/webengine/render_widget_host_view_qt_delegate_quickwindow.h b/src/webengine/render_widget_host_view_qt_delegate_quickwindow.h index 11e33a3df..d0a5e480c 100644 --- a/src/webengine/render_widget_host_view_qt_delegate_quickwindow.h +++ b/src/webengine/render_widget_host_view_qt_delegate_quickwindow.h @@ -70,6 +70,8 @@ public: virtual QSGTexture *createTextureFromImage(const QImage &) Q_DECL_OVERRIDE; virtual QSGLayer *createLayer() Q_DECL_OVERRIDE; virtual QSGInternalImageNode *createImageNode() Q_DECL_OVERRIDE; + virtual QSGTextureNode *createTextureNode() Q_DECL_OVERRIDE; + virtual QSGRectangleNode *createRectangleNode() Q_DECL_OVERRIDE; virtual void update() Q_DECL_OVERRIDE; virtual void updateCursor(const QCursor &) Q_DECL_OVERRIDE; virtual void resize(int width, int height) Q_DECL_OVERRIDE; diff --git a/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp b/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp index f1c0faf63..098e48b9d 100644 --- a/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp +++ b/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp @@ -51,6 +51,11 @@ #include #include +#if (QT_VERSION < QT_VERSION_CHECK(5, 8, 0)) +#include +#include +#endif + namespace QtWebEngineCore { class RenderWidgetHostViewQuickItem : public QQuickItem { @@ -240,6 +245,24 @@ QSGInternalImageNode *RenderWidgetHostViewQtDelegateWidget::createImageNode() #endif } +QSGTextureNode *RenderWidgetHostViewQtDelegateWidget::createTextureNode() +{ +#if (QT_VERSION >= QT_VERSION_CHECK(5, 8, 0)) + return quickWindow()->createImageNode(); +#else + return new QSGSimpleTextureNode(); +#endif +} + +QSGRectangleNode *RenderWidgetHostViewQtDelegateWidget::createRectangleNode() +{ +#if (QT_VERSION >= QT_VERSION_CHECK(5, 8, 0)) + return quickWindow()->createRectangleNode(); +#else + return new QSGSimpleRectNode(); +#endif +} + void RenderWidgetHostViewQtDelegateWidget::update() { m_rootItem->update(); diff --git a/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.h b/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.h index 1de67a70b..29cac82db 100644 --- a/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.h +++ b/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.h @@ -68,6 +68,8 @@ public: virtual QSGTexture *createTextureFromImage(const QImage &) Q_DECL_OVERRIDE; virtual QSGLayer *createLayer() Q_DECL_OVERRIDE; virtual QSGInternalImageNode *createImageNode() Q_DECL_OVERRIDE; + virtual QSGTextureNode *createTextureNode() Q_DECL_OVERRIDE; + virtual QSGRectangleNode *createRectangleNode() Q_DECL_OVERRIDE; virtual void update() Q_DECL_OVERRIDE; virtual void updateCursor(const QCursor &) Q_DECL_OVERRIDE; virtual void resize(int width, int height) Q_DECL_OVERRIDE; -- cgit v1.2.3