diff options
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/content_browser_client_qt.cpp | 7 | ||||
-rw-r--r-- | src/core/delegated_frame_node.cpp | 17 | ||||
-rw-r--r-- | src/core/delegated_frame_node.h | 6 | ||||
-rw-r--r-- | src/core/render_widget_host_view_qt.cpp | 4 | ||||
-rw-r--r-- | src/core/render_widget_host_view_qt.h | 2 | ||||
-rw-r--r-- | src/core/render_widget_host_view_qt_delegate.h | 4 |
6 files changed, 20 insertions, 20 deletions
diff --git a/src/core/content_browser_client_qt.cpp b/src/core/content_browser_client_qt.cpp index 628aa6ed2..86ff11efb 100644 --- a/src/core/content_browser_client_qt.cpp +++ b/src/core/content_browser_client_qt.cpp @@ -58,6 +58,7 @@ #include "web_contents_view_qt.h" #include <QGuiApplication> +#include <QtGui/private/qopenglcontext_p.h> #include <QtQuick/private/qsgcontext_p.h> #include <qpa/qplatformnativeinterface.h> @@ -248,9 +249,13 @@ private: void ShareGroupQtQuick::AboutToAddFirstContext() { // This currently has to be setup by ::main in all applications using QQuickWebEngineView with delegated rendering. +#if (QT_VERSION < QT_VERSION_CHECK(5, 3, 0)) QOpenGLContext *shareContext = QSGContext::sharedOpenGLContext(); +#else + QOpenGLContext *shareContext = QOpenGLContextPrivate::globalShareContext(); +#endif if (!shareContext) { - qFatal("QWebEngine: OpenGL resource sharing is not set up in QtQuick. Please make sure to call QWebEngine::initialize() in your main() function."); + qFatal("QWebEngine: OpenGL resource sharing is not set up in QtQuick. Please make sure to call QWebEngine::initialize() or QWebEngineWidgets::initialize() in your main() function."); } m_shareContextQtQuick = make_scoped_refptr(new QtShareGLContext(shareContext)); } diff --git a/src/core/delegated_frame_node.cpp b/src/core/delegated_frame_node.cpp index 2cfcd4afe..1f7084d18 100644 --- a/src/core/delegated_frame_node.cpp +++ b/src/core/delegated_frame_node.cpp @@ -70,7 +70,6 @@ #include <QSGSimpleTextureNode> #include <QSGTexture> #include <QtQuick/private/qquickclipnode_p.h> -#include <QtQuick/private/qquickwindow_p.h> #include <QtQuick/private/qsgadaptationlayer_p.h> #include <QtQuick/private/qsgcontext_p.h> #include <QtQuick/private/qsgrenderer_p.h> @@ -286,8 +285,8 @@ void MailboxTexture::fetchTexture(gpu::gles2::MailboxManager *mailboxManager) m_textureId = service_id(tex); } -DelegatedFrameNode::DelegatedFrameNode(QQuickWindow *window) - : m_window(window) +DelegatedFrameNode::DelegatedFrameNode(QSGRenderContext *sgRenderContext) + : m_sgRenderContext(sgRenderContext) , m_numPendingSyncPoints(0) { setFlag(UsePreprocess); @@ -370,10 +369,8 @@ void DelegatedFrameNode::commit(DelegatedFrameNodeData* data, cc::ReturnedResour QSGNode *renderPassParent = 0; if (pass != rootRenderPass) { QSharedPointer<RenderPassTexture> rpTexture = findRenderPassTexture(pass->id, oldRenderPassTextures); - if (!rpTexture) { - QSGRenderContext *sgrc = QQuickWindowPrivate::get(m_window)->context; - rpTexture = QSharedPointer<RenderPassTexture>(new RenderPassTexture(pass->id, sgrc)); - } + if (!rpTexture) + rpTexture = QSharedPointer<RenderPassTexture>(new RenderPassTexture(pass->id, m_sgRenderContext)); m_renderPassTextures.append(rpTexture); rpTexture->setDevicePixelRatio(m_data->frameDevicePixelRatio); rpTexture->setRect(toQt(pass->output_rect)); @@ -404,8 +401,7 @@ void DelegatedFrameNode::commit(DelegatedFrameNodeData* data, cc::ReturnedResour switch (quad->material) { case cc::DrawQuad::CHECKERBOARD: { const cc::CheckerboardDrawQuad *cbquad = cc::CheckerboardDrawQuad::MaterialCast(quad); - QSGRenderContext *sgrc = QQuickWindowPrivate::get(m_window)->context; - QSGRectangleNode *rectangleNode = sgrc->sceneGraphContext()->createRectangleNode(); + QSGRectangleNode *rectangleNode = m_sgRenderContext->sceneGraphContext()->createRectangleNode(); rectangleNode->setRect(toQt(quad->rect)); rectangleNode->setColor(toQt(cbquad->color)); @@ -450,8 +446,7 @@ void DelegatedFrameNode::commit(DelegatedFrameNodeData* data, cc::ReturnedResour break; } case cc::DrawQuad::SOLID_COLOR: { const cc::SolidColorDrawQuad *scquad = cc::SolidColorDrawQuad::MaterialCast(quad); - QSGRenderContext *sgrc = QQuickWindowPrivate::get(m_window)->context; - QSGRectangleNode *rectangleNode = sgrc->sceneGraphContext()->createRectangleNode(); + QSGRectangleNode *rectangleNode = m_sgRenderContext->sceneGraphContext()->createRectangleNode(); // Qt only supports MSAA and this flag shouldn't be needed. // If we ever want to use QSGRectangleNode::setAntialiasing for this we should diff --git a/src/core/delegated_frame_node.h b/src/core/delegated_frame_node.h index 71a3e1d25..214894821 100644 --- a/src/core/delegated_frame_node.h +++ b/src/core/delegated_frame_node.h @@ -51,7 +51,7 @@ #include <QWaitCondition> QT_BEGIN_NAMESPACE -class QQuickWindow; +class QSGRenderContext; QT_END_NAMESPACE namespace cc { @@ -73,14 +73,14 @@ public: class DelegatedFrameNode : public QSGTransformNode { public: - DelegatedFrameNode(QQuickWindow *window); + DelegatedFrameNode(QSGRenderContext *sgRenderContext); ~DelegatedFrameNode(); void preprocess(); void commit(DelegatedFrameNodeData* data, cc::ReturnedResourceArray *resourcesToRelease); private: QExplicitlySharedDataPointer<DelegatedFrameNodeData> m_data; - QQuickWindow *m_window; + QSGRenderContext *m_sgRenderContext; QList<QSharedPointer<RenderPassTexture> > m_renderPassTextures; int m_numPendingSyncPoints; QWaitCondition m_mailboxesFetchedWaitCond; diff --git a/src/core/render_widget_host_view_qt.cpp b/src/core/render_widget_host_view_qt.cpp index 7430f6756..7df9ee46a 100644 --- a/src/core/render_widget_host_view_qt.cpp +++ b/src/core/render_widget_host_view_qt.cpp @@ -685,11 +685,11 @@ void RenderWidgetHostViewQt::paint(QPainter *painter, const QRectF& boundingRect m_backingStore->paintToTarget(painter, boundingRect); } -QSGNode *RenderWidgetHostViewQt::updatePaintNode(QSGNode *oldNode, QQuickWindow *window) +QSGNode *RenderWidgetHostViewQt::updatePaintNode(QSGNode *oldNode, QSGRenderContext *sgRenderContext) { DelegatedFrameNode *frameNode = static_cast<DelegatedFrameNode *>(oldNode); if (!frameNode) - frameNode = new DelegatedFrameNode(window); + frameNode = new DelegatedFrameNode(sgRenderContext); frameNode->commit(m_frameNodeData.data(), &m_resourcesToRelease); diff --git a/src/core/render_widget_host_view_qt.h b/src/core/render_widget_host_view_qt.h index 7ecfe7ecb..208336b8b 100644 --- a/src/core/render_widget_host_view_qt.h +++ b/src/core/render_widget_host_view_qt.h @@ -168,7 +168,7 @@ public: // Overridden from RenderWidgetHostViewQtDelegateClient. virtual void paint(QPainter *, const QRectF& boundingRect) Q_DECL_OVERRIDE; - virtual QSGNode *updatePaintNode(QSGNode *, QQuickWindow *) Q_DECL_OVERRIDE; + virtual QSGNode *updatePaintNode(QSGNode *, QSGRenderContext *) Q_DECL_OVERRIDE; virtual void fetchBackingStore() Q_DECL_OVERRIDE; virtual void notifyResize() Q_DECL_OVERRIDE; virtual bool forwardEvent(QEvent *) Q_DECL_OVERRIDE; diff --git a/src/core/render_widget_host_view_qt_delegate.h b/src/core/render_widget_host_view_qt_delegate.h index 08d66745b..ddfa2b3c8 100644 --- a/src/core/render_widget_host_view_qt_delegate.h +++ b/src/core/render_widget_host_view_qt_delegate.h @@ -51,8 +51,8 @@ QT_BEGIN_NAMESPACE class QCursor; class QEvent; class QPainter; -class QQuickWindow; class QSGNode; +class QSGRenderContext; class QVariant; class QWindow; class QInputMethodEvent; @@ -64,7 +64,7 @@ class QWEBENGINE_EXPORT RenderWidgetHostViewQtDelegateClient { public: virtual ~RenderWidgetHostViewQtDelegateClient() { } virtual void paint(QPainter *, const QRectF& boundingRect) = 0; - virtual QSGNode *updatePaintNode(QSGNode *, QQuickWindow *) = 0; + virtual QSGNode *updatePaintNode(QSGNode *, QSGRenderContext *) = 0; virtual void fetchBackingStore() = 0; virtual void notifyResize() = 0; virtual bool forwardEvent(QEvent *) = 0; |