summaryrefslogtreecommitdiffstats
path: root/src/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/core')
-rw-r--r--src/core/content_browser_client_qt.cpp7
-rw-r--r--src/core/delegated_frame_node.cpp17
-rw-r--r--src/core/delegated_frame_node.h6
-rw-r--r--src/core/render_widget_host_view_qt.cpp4
-rw-r--r--src/core/render_widget_host_view_qt.h2
-rw-r--r--src/core/render_widget_host_view_qt_delegate.h4
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;