summaryrefslogtreecommitdiffstats
path: root/src/core/web_engine_context.cpp
diff options
context:
space:
mode:
authorAndras Becsi <andras.becsi@digia.com>2014-05-14 17:53:59 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-05-15 17:37:10 +0200
commitc0bc770eb1dfcc6689df44438cd396721d5129fc (patch)
treef07b2a56863a40c0cc7916910b7dd5977ad5e118 /src/core/web_engine_context.cpp
parentc45fc409c14f2e4ccb1aacd0b8af36dbba399666 (diff)
Enable GLContextHelper and register a SurfaceFactoryQt on eAndroid
This is needed to run on certain hardware that needs the shared EGL contexts to be created on the same thread. To prevent a deadlock on eAndroid only use a blocking connection if we are not on the main thread where the singleton was created, since there is a call to this from gpu_info_collector_android before the GPU thread is launched. Change-Id: I6887ad1218b8426097f454741dc5a79ee94f9d62 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Diffstat (limited to 'src/core/web_engine_context.cpp')
-rw-r--r--src/core/web_engine_context.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/core/web_engine_context.cpp b/src/core/web_engine_context.cpp
index d2550e48d..feec45e90 100644
--- a/src/core/web_engine_context.cpp
+++ b/src/core/web_engine_context.cpp
@@ -75,6 +75,7 @@
#include "gl_context_qt.h"
#include "media_capture_devices_dispatcher.h"
#include "type_conversion.h"
+#include "surface_factory_qt.h"
#include "web_engine_library_info.h"
#include <QGuiApplication>
#include <QStringList>
@@ -94,6 +95,7 @@ void destroyContext()
WebEngineContext::~WebEngineContext()
{
+ GLContextHelper::destroy();
m_runLoop->AfterRun();
}
@@ -159,6 +161,11 @@ WebEngineContext::WebEngineContext()
parsedCommandLine->AppendSwitch(cc::switches::kDisableCompositedAntialiasing);
parsedCommandLine->AppendSwitchASCII(switches::kProfilerTiming, switches::kProfilerTimingDisabledValue);
+
+ // On eAndroid we use this to get the native display
+ // from Qt in GLSurfaceEGL::InitializeOneOff.
+ m_surfaceFactory.reset(new SurfaceFactoryQt());
+ gfx::SurfaceFactoryOzone::SetInstance(m_surfaceFactory.get());
#endif
GLContextHelper::initialize();