summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xbin/syncqt1
-rw-r--r--dist/changes-4.7.04
-rw-r--r--doc/src/index.qdoc2
-rw-r--r--examples/network/bearermonitor/sessionwidget.cpp2
-rw-r--r--mkspecs/features/qt.prf3
-rw-r--r--qmake/generators/makefile.cpp2
-rw-r--r--src/3rdparty/webkit/.tag2
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/ChangeLog57
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/bytecode/Opcode.h2
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/jit/JITStubs.cpp97
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/Platform.h5
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/Vector.h2
-rw-r--r--src/3rdparty/webkit/VERSION2
-rw-r--r--src/3rdparty/webkit/WebCore/ChangeLog102
-rw-r--r--src/3rdparty/webkit/WebCore/WebCore.pro11
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/npapi.h31
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/PluginPackage.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/PluginView.cpp10
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/PluginView.h10
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/qt/PluginViewQt.cpp109
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qwebkitglobal.h4
-rw-r--r--src/3rdparty/webkit/WebKit/qt/ChangeLog77
-rw-r--r--src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp17
-rw-r--r--src/3rdparty/webkit/WebKit/qt/qt_webkit_version.pri4
-rw-r--r--src/corelib/io/qsettings_win.cpp24
-rw-r--r--src/corelib/io/qurl.cpp25
-rw-r--r--src/corelib/kernel/qobject.h91
-rw-r--r--src/corelib/plugin/qfactoryloader.cpp8
-rw-r--r--src/corelib/plugin/qfactoryloader_p.h4
-rw-r--r--src/declarative/graphicsitems/qdeclarativeflickable.cpp6
-rw-r--r--src/declarative/graphicsitems/qdeclarativeflickable_p_p.h1
-rw-r--r--src/declarative/graphicsitems/qdeclarativegridview.cpp2
-rw-r--r--src/declarative/graphicsitems/qdeclarativelistview.cpp2
-rw-r--r--src/declarative/graphicsitems/qdeclarativemousearea.cpp17
-rw-r--r--src/declarative/graphicsitems/qdeclarativemousearea_p_p.h6
-rw-r--r--src/declarative/util/qdeclarativeanimation.cpp5
-rw-r--r--src/declarative/util/qdeclarativestateoperations.cpp5
-rw-r--r--src/gui/egl/qegl.cpp2
-rw-r--r--src/gui/egl/qegl_p.h4
-rw-r--r--src/gui/egl/qeglcontext_p.h3
-rw-r--r--src/gui/egl/qeglproperties.cpp2
-rw-r--r--src/gui/graphicsview/qgraphicslayoutitem.cpp2
-rw-r--r--src/gui/graphicsview/qgraphicsscene.cpp2
-rw-r--r--src/gui/kernel/qapplication.cpp27
-rw-r--r--src/gui/kernel/qapplication_x11.cpp28
-rw-r--r--src/gui/kernel/qgesture.cpp2
-rw-r--r--src/gui/kernel/qgesture.h3
-rw-r--r--src/gui/kernel/qgesture_p.h18
-rw-r--r--src/gui/kernel/qgesturemanager.cpp2
-rw-r--r--src/gui/kernel/qstandardgestures.cpp16
-rw-r--r--src/gui/kernel/qwidget_mac.mm9
-rw-r--r--src/gui/kernel/qwidget_s60.cpp2
-rw-r--r--src/gui/painting/qdrawhelper_sse2.cpp15
-rw-r--r--src/gui/painting/qdrawhelper_ssse3.cpp75
-rw-r--r--src/gui/painting/qgraphicssystem_runtime.cpp6
-rw-r--r--src/gui/painting/qgraphicssystem_runtime_p.h1
-rw-r--r--src/gui/painting/qstroker.cpp2
-rw-r--r--src/gui/text/qfontengine.cpp4
-rw-r--r--src/gui/text/qfontengine_win.cpp3
-rw-r--r--src/gui/text/qstatictext.cpp3
-rw-r--r--src/gui/widgets/qdockarealayout.cpp10
-rw-r--r--src/gui/widgets/qdockwidget.cpp37
-rw-r--r--src/gui/widgets/qmainwindow.cpp71
-rw-r--r--src/gui/widgets/qmainwindowlayout.cpp11
-rw-r--r--src/gui/widgets/qmainwindowlayout_p.h2
-rw-r--r--src/gui/widgets/qtoolbar.cpp20
-rw-r--r--src/gui/widgets/qtoolbararealayout.cpp5
-rw-r--r--src/gui/widgets/qtoolbarlayout.cpp7
-rw-r--r--src/imports/folderlistmodel/qdeclarativefolderlistmodel.cpp4
-rw-r--r--src/imports/folderlistmodel/qdeclarativefolderlistmodel.h2
-rw-r--r--src/network/bearer/qbearerengine.cpp3
-rw-r--r--src/network/kernel/qauthenticator.cpp39
-rw-r--r--src/network/kernel/qauthenticator_p.h1
-rw-r--r--src/opengl/qpixmapdata_gl_p.h1
-rw-r--r--src/opengl/qwindowsurface_gl.cpp17
-rw-r--r--src/openvg/qpaintengine_vg.cpp158
-rw-r--r--src/openvg/qvg_symbian.cpp31
-rw-r--r--src/openvg/qvgimagepool.cpp13
-rw-r--r--src/plugins/bearer/bearer.pro6
-rw-r--r--src/plugins/bearer/connman/qofonoservice_linux_p.h2
-rw-r--r--src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp11
-rw-r--r--src/plugins/bearer/networkmanager/qnetworkmanagerservice.cpp2
-rw-r--r--src/plugins/graphicssystems/graphicssystems.pro4
-rw-r--r--src/plugins/graphicssystems/meego/meego.pro13
-rw-r--r--src/plugins/graphicssystems/meego/qmeegoextensions.cpp129
-rw-r--r--src/plugins/graphicssystems/meego/qmeegoextensions.h89
-rw-r--r--src/plugins/graphicssystems/meego/qmeegographicssystem.cpp248
-rw-r--r--src/plugins/graphicssystems/meego/qmeegographicssystem.h85
-rw-r--r--src/plugins/graphicssystems/meego/qmeegographicssystemplugin.cpp58
-rw-r--r--src/plugins/graphicssystems/meego/qmeegographicssystemplugin.h54
-rw-r--r--src/plugins/graphicssystems/meego/qmeegopixmapdata.cpp206
-rw-r--r--src/plugins/graphicssystems/meego/qmeegopixmapdata.h73
-rw-r--r--src/s60installs/bwins/QtOpenGLu.def701
-rw-r--r--src/s60installs/eabi/QtOpenGLu.def705
-rw-r--r--tests/auto/declarative/qdeclarativeanimatedimage/tst_qdeclarativeanimatedimage.cpp17
-rw-r--r--tests/auto/declarative/qdeclarativeborderimage/tst_qdeclarativeborderimage.cpp23
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp16
-rw-r--r--tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp2
-rw-r--r--tests/auto/declarative/qdeclarativeimageprovider/tst_qdeclarativeimageprovider.cpp21
-rw-r--r--tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp2
-rw-r--r--tests/auto/declarative/qdeclarativeloader/tst_qdeclarativeloader.cpp15
-rw-r--r--tests/auto/declarative/qdeclarativemousearea/data/doubleclick.qml14
-rw-r--r--tests/auto/declarative/qdeclarativemousearea/tst_qdeclarativemousearea.cpp32
-rw-r--r--tests/auto/declarative/qdeclarativestates/data/parentChange6.qml30
-rw-r--r--tests/auto/declarative/qdeclarativestates/tst_qdeclarativestates.cpp15
-rw-r--r--tests/auto/declarative/qdeclarativexmlhttprequest/tst_qdeclarativexmlhttprequest.cpp67
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/parsecpp/main.cpp41
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/parsecpp/project.ts.result16
-rw-r--r--tests/auto/moc/tst_moc.cpp8
-rw-r--r--tests/auto/q3table/tst_q3table.cpp8
-rw-r--r--tests/auto/qcompleter/tst_qcompleter.cpp4
-rw-r--r--tests/auto/qgraphicslayoutitem/tst_qgraphicslayoutitem.cpp8
-rw-r--r--tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp20
-rw-r--r--tests/auto/qlineedit/tst_qlineedit.cpp18
-rw-r--r--tests/auto/qmainwindow/tst_qmainwindow.cpp3
-rw-r--r--tests/auto/qobject/tst_qobject.cpp8
-rw-r--r--tests/auto/qsequentialanimationgroup/tst_qsequentialanimationgroup.cpp4
-rw-r--r--tests/auto/qsettings/tst_qsettings.cpp63
-rw-r--r--tests/auto/qstatictext/tst_qstatictext.cpp11
-rw-r--r--tests/auto/qurl/tst_qurl.cpp10
-rw-r--r--tools/linguist/linguist/mainwindow.cpp6
-rw-r--r--tools/linguist/linguist/sourcecodeview.cpp2
-rw-r--r--tools/linguist/lupdate/cpp.cpp19
-rw-r--r--tools/qdoc3/test/qt-html-templates.qdocconf2
-rw-r--r--tools/qmeegographicssystemhelper/qmeegographicssystemhelper.cpp133
-rw-r--r--tools/qmeegographicssystemhelper/qmeegographicssystemhelper.h175
-rw-r--r--tools/qmeegographicssystemhelper/qmeegographicssystemhelper.pro10
-rw-r--r--tools/qmeegographicssystemhelper/qmeegoliveimage.cpp115
-rw-r--r--tools/qmeegographicssystemhelper/qmeegoliveimage.h106
-rw-r--r--tools/qmeegographicssystemhelper/qmeegoliveimage_p.h63
-rw-r--r--tools/qmeegographicssystemhelper/qmeegolivepixmap.cpp163
-rw-r--r--tools/qmeegographicssystemhelper/qmeegolivepixmap.h98
-rw-r--r--tools/qmeegographicssystemhelper/qmeegolivepixmap_p.h66
-rw-r--r--tools/qmeegographicssystemhelper/qmeegooverlaywidget.cpp99
-rw-r--r--tools/qmeegographicssystemhelper/qmeegooverlaywidget.h86
-rw-r--r--tools/qmeegographicssystemhelper/qmeegoruntime.cpp158
-rw-r--r--tools/qmeegographicssystemhelper/qmeegoruntime.h61
-rw-r--r--tools/runonphone/ossignalconverter.cpp1
-rw-r--r--tools/tools.pro4
139 files changed, 5043 insertions, 603 deletions
diff --git a/bin/syncqt b/bin/syncqt
index 907869d..c73d119 100755
--- a/bin/syncqt
+++ b/bin/syncqt
@@ -51,6 +51,7 @@ my %modules = ( # path to module name map
"QtWebKit" => "$basedir/src/3rdparty/webkit/WebCore",
"phonon" => "$basedir/src/phonon",
"QtMultimedia" => "$basedir/src/multimedia",
+ "QtMeeGoGraphicsSystemHelper" => "$basedir/tools/qmeegographicssystemhelper",
);
my %moduleheaders = ( # restrict the module headers to those found in relative path
"QtWebKit" => "../WebKit/qt/Api",
diff --git a/dist/changes-4.7.0 b/dist/changes-4.7.0
index a5939e3..53e51f8 100644
--- a/dist/changes-4.7.0
+++ b/dist/changes-4.7.0
@@ -371,6 +371,10 @@ Qt for Symbian
- QSplashScreen
* [QTBUG-11129] Fixed a hanging bug in QSplashScreen on 3.1 devices.
+ - QS60Main... classes
+ * The future compatibility of QS60MainAppUi, QS60MainDocument and
+ QS60MainApplication are improved by removing the need for any
+ sub-class to link to Avkon functions that may not exist in future.
****************************************************************************
diff --git a/doc/src/index.qdoc b/doc/src/index.qdoc
index edb4d1e..77856ec 100644
--- a/doc/src/index.qdoc
+++ b/doc/src/index.qdoc
@@ -77,7 +77,7 @@
<ul>
<li><a href="qtquick.html">Qt Quick</a></li>
<li><a href="qdeclarativeintroduction.html">Introduction to QML</a></li>
- <li><a href="qmlelements.html">QML Elements</a></li>
+ <li><a href="qdeclarativeelements.html">QML Elements</a></li>
<li><a href="qdeclarativeexamples.html">QML Examples and Demos</a></li>
</ul>
</div>
diff --git a/examples/network/bearermonitor/sessionwidget.cpp b/examples/network/bearermonitor/sessionwidget.cpp
index ecc2a93..5ec9d53 100644
--- a/examples/network/bearermonitor/sessionwidget.cpp
+++ b/examples/network/bearermonitor/sessionwidget.cpp
@@ -107,7 +107,7 @@ void SessionWidget::updateSession()
if (session->state() == QNetworkSession::Connected)
statsTimer = startTimer(1000);
- else
+ else if (statsTimer != -1)
killTimer(statsTimer);
if (session->configuration().type() == QNetworkConfiguration::InternetAccessPoint)
diff --git a/mkspecs/features/qt.prf b/mkspecs/features/qt.prf
index 4fd804d..e59319f 100644
--- a/mkspecs/features/qt.prf
+++ b/mkspecs/features/qt.prf
@@ -36,7 +36,7 @@ INCLUDEPATH = $$QMAKE_INCDIR_QT $$INCLUDEPATH #prepending prevents us from picki
win32:INCLUDEPATH += $$QMAKE_INCDIR_QT/ActiveQt
# As order does matter for static libs, we reorder the QT variable here
-TMPLIBS = declarative webkit phonon multimedia dbus testlib script scripttools svg qt3support sql xmlpatterns xml egl opengl openvg gui network core
+TMPLIBS = declarative webkit phonon multimedia dbus testlib script scripttools svg qt3support sql xmlpatterns xml egl opengl openvg gui network core meegographicssystemhelper
for(QTLIB, $$list($$TMPLIBS)) {
contains(QT, $$QTLIB): QT_ORDERED += $$QTLIB
}
@@ -175,6 +175,7 @@ for(QTLIB, $$list($$lower($$unique(QT)))) {
}
} else:isEqual(QTLIB, declarative):qlib = QtDeclarative
else:isEqual(QTLIB, multimedia):qlib = QtMultimedia
+ else:isEqual(QTLIB, meegographicssystemhelper):qlib = QtMeeGoGraphicsSystemHelper
else:message("Unknown QT: $$QTLIB"):qlib =
!isEmpty(qlib) {
target_qt:isEqual(TARGET, qlib) {
diff --git a/qmake/generators/makefile.cpp b/qmake/generators/makefile.cpp
index c7b1473..cd034b8 100644
--- a/qmake/generators/makefile.cpp
+++ b/qmake/generators/makefile.cpp
@@ -1794,10 +1794,10 @@ MakefileGenerator::writeExtraCompilerTargets(QTextStream &t)
const QString c = Option::fixPathToLocalOS(cmdline.at(argv0), true);
if(exists(c)) {
cmdline[argv0] = escapeFilePath(Option::fixPathToLocalOS(cmdline.at(argv0), false));
- tmp_dep_cmd = cmdline.join(" ");
} else {
cmdline[argv0] = escapeFilePath(cmdline.at(argv0));
}
+ tmp_dep_cmd = cmdline.join(" ");
}
dep_cd_cmd = QLatin1String("cd ")
+ escapeFilePath(Option::fixPathToLocalOS(Option::output_dir, false))
diff --git a/src/3rdparty/webkit/.tag b/src/3rdparty/webkit/.tag
index 1148320..ae33228 100644
--- a/src/3rdparty/webkit/.tag
+++ b/src/3rdparty/webkit/.tag
@@ -1 +1 @@
-460b651cbe4f6994b492ff08614e57b0e31a24c8
+715b53069911a31a559aa0b3d94ffc6a5ac20988
diff --git a/src/3rdparty/webkit/JavaScriptCore/ChangeLog b/src/3rdparty/webkit/JavaScriptCore/ChangeLog
index 2be6f5a..9922da6 100644
--- a/src/3rdparty/webkit/JavaScriptCore/ChangeLog
+++ b/src/3rdparty/webkit/JavaScriptCore/ChangeLog
@@ -1,3 +1,60 @@
+2010-06-16 Thiago Macieira <thiago.macieira@nokia.com>
+
+ Reviewed by NOBODY (OOPS!).
+
+ Reindent the asm code I've moved to inside the function
+ (previous commit)
+
+ * jit/JITStubs.cpp:
+
+2010-06-16 Thiago Macieira <thiago.macieira@nokia.com>
+
+ Reviewed by NOBODY (OOPS!).
+
+ Fix the JIT compilation with the Intel 32-bit C++ compiler.
+
+ ICC doesn't understand the use of "asm" statements outside of
+ function bodies, so move the assembly code inside a dummy
+ function (and mark it so that the compiler doesn't remove it
+ altogether).
+
+ Also removed the ".text" entry that I had added because now
+ the assembly code is properly inside a code section (fixes
+ compilation with -ffunction-sections).
+
+ * jit/JITStubs.cpp:
+
+2010-06-16 Thiago Macieira <thiago.macieira@nokia.com>
+
+ Reviewed by NOBODY (OOPS!).
+
+ Don't use __attribute__((may_alias)) with the Intel compiler,
+ as it doesn't understand it.
+
+ * wtf/Vector.h:
+
+2010-06-16 Thiago Macieira <thiago.macieira@nokia.com>
+
+ Reviewed by NOBODY (OOPS!).
+
+ Fix compilation with the Intel C++ compiler (11.1.072).
+
+ Like RVCT, label pointers must be void*, not const void*.
+
+ * bytecode/Opcode.h:
+
+2010-06-16 Thiago Macieira <thiago.macieira@nokia.com>
+
+ Reviewed by NOBODY (OOPS!).
+
+ Add the WTF_COMPILER_INTEL for when the Intel compiler is used
+ for building. Usually, the Intel compiler masquerades as
+ another compiler in the system and gets away with it, but some
+ times specific fixes are required (such as when using language
+ extensions).
+
+ * wtf/Platform.h:
+
2010-07-08 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Oliver Hunt.
diff --git a/src/3rdparty/webkit/JavaScriptCore/bytecode/Opcode.h b/src/3rdparty/webkit/JavaScriptCore/bytecode/Opcode.h
index 509daeb..f7f53fd 100644
--- a/src/3rdparty/webkit/JavaScriptCore/bytecode/Opcode.h
+++ b/src/3rdparty/webkit/JavaScriptCore/bytecode/Opcode.h
@@ -206,7 +206,7 @@ namespace JSC {
#undef VERIFY_OPCODE_ID
#if HAVE(COMPUTED_GOTO)
-#if COMPILER(RVCT)
+#if COMPILER(RVCT) || COMPILER(INTEL)
typedef void* Opcode;
#else
typedef const void* Opcode;
diff --git a/src/3rdparty/webkit/JavaScriptCore/jit/JITStubs.cpp b/src/3rdparty/webkit/JavaScriptCore/jit/JITStubs.cpp
index e5fcdc4..23fcb96 100644
--- a/src/3rdparty/webkit/JavaScriptCore/jit/JITStubs.cpp
+++ b/src/3rdparty/webkit/JavaScriptCore/jit/JITStubs.cpp
@@ -113,56 +113,59 @@ COMPILE_ASSERT(offsetof(struct JITStackFrame, savedEBX) == 0x3c, JITStackFrame_s
COMPILE_ASSERT(offsetof(struct JITStackFrame, callFrame) == 0x58, JITStackFrame_callFrame_offset_matches_ctiTrampoline);
COMPILE_ASSERT(offsetof(struct JITStackFrame, code) == 0x50, JITStackFrame_code_offset_matches_ctiTrampoline);
-asm volatile (
-".text\n"
-".globl " SYMBOL_STRING(ctiTrampoline) "\n"
-HIDE_SYMBOL(ctiTrampoline) "\n"
-SYMBOL_STRING(ctiTrampoline) ":" "\n"
- "pushl %ebp" "\n"
- "movl %esp, %ebp" "\n"
- "pushl %esi" "\n"
- "pushl %edi" "\n"
- "pushl %ebx" "\n"
- "subl $0x3c, %esp" "\n"
- "movl $512, %esi" "\n"
- "movl 0x58(%esp), %edi" "\n"
- "call *0x50(%esp)" "\n"
- "addl $0x3c, %esp" "\n"
- "popl %ebx" "\n"
- "popl %edi" "\n"
- "popl %esi" "\n"
- "popl %ebp" "\n"
- "ret" "\n"
-);
-
-asm volatile (
-".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n"
-HIDE_SYMBOL(ctiVMThrowTrampoline) "\n"
-SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
+static void __attribute__((used)) asm_wrapper()
+{
+ asm volatile (
+ ".text\n"
+ ".globl " SYMBOL_STRING(ctiTrampoline) "\n"
+ HIDE_SYMBOL(ctiTrampoline) "\n"
+ SYMBOL_STRING(ctiTrampoline) ":" "\n"
+ "pushl %ebp" "\n"
+ "movl %esp, %ebp" "\n"
+ "pushl %esi" "\n"
+ "pushl %edi" "\n"
+ "pushl %ebx" "\n"
+ "subl $0x3c, %esp" "\n"
+ "movl $512, %esi" "\n"
+ "movl 0x58(%esp), %edi" "\n"
+ "call *0x50(%esp)" "\n"
+ "addl $0x3c, %esp" "\n"
+ "popl %ebx" "\n"
+ "popl %edi" "\n"
+ "popl %esi" "\n"
+ "popl %ebp" "\n"
+ "ret" "\n"
+ );
+
+ asm volatile (
+ ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n"
+ HIDE_SYMBOL(ctiVMThrowTrampoline) "\n"
+ SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
#if !USE(JIT_STUB_ARGUMENT_VA_LIST)
- "movl %esp, %ecx" "\n"
+ "movl %esp, %ecx" "\n"
#endif
- "call " SYMBOL_STRING_RELOCATION(cti_vm_throw) "\n"
- "addl $0x3c, %esp" "\n"
- "popl %ebx" "\n"
- "popl %edi" "\n"
- "popl %esi" "\n"
- "popl %ebp" "\n"
- "ret" "\n"
-);
-
-asm volatile (
-".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n"
-HIDE_SYMBOL(ctiOpThrowNotCaught) "\n"
-SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n"
- "addl $0x3c, %esp" "\n"
- "popl %ebx" "\n"
- "popl %edi" "\n"
- "popl %esi" "\n"
- "popl %ebp" "\n"
- "ret" "\n"
-);
+ "call " SYMBOL_STRING_RELOCATION(cti_vm_throw) "\n"
+ "addl $0x3c, %esp" "\n"
+ "popl %ebx" "\n"
+ "popl %edi" "\n"
+ "popl %esi" "\n"
+ "popl %ebp" "\n"
+ "ret" "\n"
+ );
+ asm volatile (
+ ".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n"
+ HIDE_SYMBOL(ctiOpThrowNotCaught) "\n"
+ SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n"
+ "addl $0x3c, %esp" "\n"
+ "popl %ebx" "\n"
+ "popl %edi" "\n"
+ "popl %esi" "\n"
+ "popl %ebp" "\n"
+ "ret" "\n"
+ );
+}
+
#elif COMPILER(GCC) && CPU(X86_64)
#if USE(JIT_STUB_ARGUMENT_VA_LIST)
diff --git a/src/3rdparty/webkit/JavaScriptCore/wtf/Platform.h b/src/3rdparty/webkit/JavaScriptCore/wtf/Platform.h
index 84b6153..15f0ffc 100644
--- a/src/3rdparty/webkit/JavaScriptCore/wtf/Platform.h
+++ b/src/3rdparty/webkit/JavaScriptCore/wtf/Platform.h
@@ -99,7 +99,10 @@
#undef _WIN32
#endif
-
+/* COMPILER(INTEL) - Intel C++ Compiler */
+#if defined(__INTEL_COMPILER)
+#define WTF_COMPILER_INTEL 1
+#endif
/* ==== CPU() - the target CPU architecture ==== */
diff --git a/src/3rdparty/webkit/JavaScriptCore/wtf/Vector.h b/src/3rdparty/webkit/JavaScriptCore/wtf/Vector.h
index 4d9ea61..c267050 100644
--- a/src/3rdparty/webkit/JavaScriptCore/wtf/Vector.h
+++ b/src/3rdparty/webkit/JavaScriptCore/wtf/Vector.h
@@ -49,7 +49,7 @@ namespace WTF {
#error WTF_ALIGN macros need alignment control.
#endif
- #if COMPILER(GCC) && (((__GNUC__ * 100) + __GNUC_MINOR__) >= 303)
+ #if COMPILER(GCC) && !COMPILER(INTEL) && (((__GNUC__ * 100) + __GNUC_MINOR__) >= 303)
typedef char __attribute__((__may_alias__)) AlignedBufferChar;
#else
typedef char AlignedBufferChar;
diff --git a/src/3rdparty/webkit/VERSION b/src/3rdparty/webkit/VERSION
index aff3f2a..f919bdf 100644
--- a/src/3rdparty/webkit/VERSION
+++ b/src/3rdparty/webkit/VERSION
@@ -4,4 +4,4 @@ This is a snapshot of the Qt port of WebKit from
and has the sha1 checksum
- 460b651cbe4f6994b492ff08614e57b0e31a24c8
+ 715b53069911a31a559aa0b3d94ffc6a5ac20988
diff --git a/src/3rdparty/webkit/WebCore/ChangeLog b/src/3rdparty/webkit/WebCore/ChangeLog
index 98d4d51..2d20cbd 100644
--- a/src/3rdparty/webkit/WebCore/ChangeLog
+++ b/src/3rdparty/webkit/WebCore/ChangeLog
@@ -1,3 +1,105 @@
+2010-09-09 Kristian Amlie <kristian.amlie@nokia.com>
+
+ Reviewed by Andreas Kling.
+
+ [Qt] Fixed incorrect Symbian scoping.
+
+ The missing install functionality is only true for mmp based systems.
+
+ https://bugs.webkit.org/show_bug.cgi?id=45268
+
+ * WebCore.pro:
+
+2010-09-12 Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
+
+ Reviewed by Simon Hausmann.
+
+ [Qt] fix qt_webkit_version.pri install for in-Qt builds
+
+ Always add the target, even if building inside Qt - as opposed to the
+ headers and libraries, there are no rules for that coming from
+ qbase.pri.
+
+ Task-number: QTBUG-13306
+
+ * WebCore.pro:
+
+2010-09-12 Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
+
+ Reviewed by Simon Hausmann.
+
+ [Qt] Let QtWebKit inject itself into the qt configuration
+
+ i.e., don't explicitly deal with qt_webkit_version.pri outside of the
+ webkit source directory.
+
+ Task-number: QTBUG-12379
+
+ * WebCore.pro:
+
+2010-08-20 Girish Ramakrishnan <girish@forwardbias.in>
+
+ Reviewed by Ariya Hidayat.
+
+ [Qt] When using the raster graphics system on Maemo5, allow
+ Flash to render directly into the raster window surface.
+ wmode=transparent is now supported as a result of this change.
+
+ https://bugs.webkit.org/show_bug.cgi?id=44043
+
+ * plugins/qt/PluginViewQt.cpp:
+ (WebCore::PluginView::paintUsingImageSurfaceExtension):
+
+2010-08-18 Girish Ramakrishnan <girish@forwardbias.in>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [Qt] Implement Maemo5 local rendering NPAPI extension. See
+ https://wiki.mozilla.org/Plugins:NokiaMaemoImageSurface for details.
+
+ With the local rendering extension, Flash will paint into a 16-bit surface.
+ For wmode=transparent, Flash expects the surface to contain the contents
+ beneath it. As it is tricky to implement the content propagation across all
+ graphics systems, transparent Flash is not supported. We just fill the surface
+ with white and wmode=transparent behaves the same as wmode=opaque with a white
+ background.
+
+ https://bugs.webkit.org/show_bug.cgi?id=44043
+
+ * WebCore.pro:
+ * plugins/PluginView.cpp:
+ (WebCore::PluginView::setValue):
+ (WebCore::PluginView::PluginView):
+ * plugins/PluginView.h:
+ * plugins/qt/PluginViewQt.cpp:
+ (WebCore::PluginView::updatePluginWidget):
+ (WebCore::PluginView::paintUsingImageSurfaceExtension):
+ (WebCore::PluginView::paint):
+ (WebCore::PluginView::platformGetValueStatic):
+
+2010-08-17 Girish Ramakrishnan <girish@forwardbias.in>
+
+ Reviewed by Antonio Gomes.
+
+ [Qt] On Maemo5, there is no libgdk-x11-2.0.so symlink. Look for
+ libgdk-x11-2.0.so.0 instead on X11 and Maemo5.
+
+ https://bugs.webkit.org/show_bug.cgi?id=44043
+
+ * plugins/qt/PluginViewQt.cpp:
+ (WebCore::getPluginDisplay):
+
+2010-08-17 Girish Ramakrishnan <girish@forwardbias.in>
+
+ Reviewed by Kenneth Rohde Christiansen.
+ Set PluginQuirkRequiresDefaultScreenDepth for all Flash versions and not
+ just Flash 10.
+
+ https://bugs.webkit.org/show_bug.cgi?id=44043
+
+ * plugins/PluginPackage.cpp:
+ (WebCore::PluginPackage::determineQuirks):
+
2010-08-10 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
Reviewed by Simon Hausmann.
diff --git a/src/3rdparty/webkit/WebCore/WebCore.pro b/src/3rdparty/webkit/WebCore/WebCore.pro
index 5ea1e77..87638a0 100644
--- a/src/3rdparty/webkit/WebCore/WebCore.pro
+++ b/src/3rdparty/webkit/WebCore/WebCore.pro
@@ -2192,6 +2192,9 @@ contains(DEFINES, ENABLE_NETSCAPE_PLUGIN_API=1) {
CONFIG += x11
LIBS += -lXrender
}
+ maemo5 {
+ DEFINES += MOZ_PLATFORM_MAEMO=5
+ }
SOURCES += \
plugins/qt/PluginContainerQt.cpp \
plugins/qt/PluginPackageQt.cpp \
@@ -2857,13 +2860,13 @@ contains(DEFINES, ENABLE_SYMBIAN_DIALOG_PROVIDERS) {
}
}
-!symbian-abld:!symbian-sbsv2 {
+!symbian {
modfile.files = $$moduleFile
modfile.path = $$[QMAKE_MKSPECS]/modules
INSTALLS += modfile
} else {
- # INSTALLS is not implemented in qmake's mmp generators, copy headers manually
+ # INSTALLS is not implemented in qmake's s60 generators, copy headers manually
inst_modfile.commands = $$QMAKE_COPY ${QMAKE_FILE_NAME} ${QMAKE_FILE_OUT}
inst_modfile.input = moduleFile
@@ -2883,7 +2886,7 @@ HEADERS += $$WEBKIT_API_HEADERS
exists($$OUTPUT_DIR/include/QtWebKit/classheaders.pri): include($$OUTPUT_DIR/include/QtWebKit/classheaders.pri)
WEBKIT_INSTALL_HEADERS = $$WEBKIT_API_HEADERS $$WEBKIT_CLASS_HEADERS
- !symbian {
+ !symbian-abld:!symbian-sbsv2 {
headers.files = $$WEBKIT_INSTALL_HEADERS
!isEmpty(INSTALL_HEADERS): headers.path = $$INSTALL_HEADERS/QtWebKit
@@ -2894,7 +2897,7 @@ HEADERS += $$WEBKIT_API_HEADERS
INSTALLS += target headers
} else {
- # INSTALLS is not implemented in qmake's s60 generators, copy headers manually
+ # INSTALLS is not implemented in qmake's mmp generators, copy headers manually
inst_headers.commands = $$QMAKE_COPY ${QMAKE_FILE_NAME} ${QMAKE_FILE_OUT}
inst_headers.input = WEBKIT_INSTALL_HEADERS
inst_headers.CONFIG = no_clean
diff --git a/src/3rdparty/webkit/WebCore/bridge/npapi.h b/src/3rdparty/webkit/WebCore/bridge/npapi.h
index 533fcba..daa3a36 100644
--- a/src/3rdparty/webkit/WebCore/bridge/npapi.h
+++ b/src/3rdparty/webkit/WebCore/bridge/npapi.h
@@ -247,6 +247,12 @@ typedef struct _NPRect
} NPRect;
+typedef struct _NPSize
+{
+ int32 width;
+ int32 height;
+} NPSize;
+
#ifdef XP_UNIX
/*
* Unix specific structures and definitions
@@ -373,6 +379,11 @@ typedef enum {
/* In the NPDrawingModelCoreAnimation drawing model, the browser asks the plug-in for a Core Animation layer. */
NPPVpluginCoreAnimationLayer = 1003
#endif
+
+
+#if defined(MOZ_PLATFORM_MAEMO) && (MOZ_PLATFORM_MAEMO == 5)
+ NPPVpluginWindowlessLocalBool = 2002
+#endif
} NPPVariable;
/*
@@ -419,6 +430,9 @@ typedef enum {
, NPNVsupportsCocoaBool = 3001 /* TRUE if the browser supports the Cocoa event model */
#endif /* XP_MACOSX */
+#if defined(MOZ_PLATFORM_MAEMO) && (MOZ_PLATFORM_MAEMO == 5)
+ , NPNVSupportsWindowlessLocal = 2002
+#endif
} NPNVariable;
typedef enum {
@@ -539,6 +553,23 @@ typedef struct _NPWindow
} NPWindow;
+typedef struct _NPImageExpose
+{
+ char* data; /* image pointer */
+ int32 stride; /* Stride of data image pointer */
+ int32 depth; /* Depth of image pointer */
+ int32 x; /* Expose x */
+ int32 y; /* Expose y */
+ uint32 width; /* Expose width */
+ uint32 height; /* Expose height */
+ NPSize dataSize; /* Data buffer size */
+ float translateX; /* translate X matrix value */
+ float translateY; /* translate Y matrix value */
+ float scaleX; /* scale X matrix value */
+ float scaleY; /* scale Y matrix value */
+} NPImageExpose;
+
+
typedef struct _NPFullPrint
{
NPBool pluginPrinted; /* Set TRUE if plugin handled fullscreen */
diff --git a/src/3rdparty/webkit/WebCore/plugins/PluginPackage.cpp b/src/3rdparty/webkit/WebCore/plugins/PluginPackage.cpp
index ad03ecd..3881f54 100644
--- a/src/3rdparty/webkit/WebCore/plugins/PluginPackage.cpp
+++ b/src/3rdparty/webkit/WebCore/plugins/PluginPackage.cpp
@@ -185,12 +185,12 @@ void PluginPackage::determineQuirks(const String& mimeType)
#if PLATFORM(QT)
m_quirks.add(PluginQuirkRequiresGtkToolKit);
#endif
- m_quirks.add(PluginQuirkRequiresDefaultScreenDepth);
} else {
// Flash 9 and older requests windowless plugins if we return a mozilla user agent
m_quirks.add(PluginQuirkWantsMozillaUserAgent);
}
+ m_quirks.add(PluginQuirkRequiresDefaultScreenDepth);
m_quirks.add(PluginQuirkThrottleInvalidate);
m_quirks.add(PluginQuirkThrottleWMUserPlusOneMessages);
m_quirks.add(PluginQuirkFlashURLNotifyBug);
diff --git a/src/3rdparty/webkit/WebCore/plugins/PluginView.cpp b/src/3rdparty/webkit/WebCore/plugins/PluginView.cpp
index df9a29b..b8b2f2f 100644
--- a/src/3rdparty/webkit/WebCore/plugins/PluginView.cpp
+++ b/src/3rdparty/webkit/WebCore/plugins/PluginView.cpp
@@ -1,6 +1,7 @@
/*
* Copyright (C) 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserved.
* Copyright (C) 2008 Collabora Ltd. All rights reserved.
+ * Copyright (C) 2010 Girish Ramakrishnan <girish@forwardbias.in>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -679,6 +680,12 @@ NPError PluginView::setValue(NPPVariable variable, void* value)
}
#endif // defined(XP_MACOSX)
+#if PLATFORM(QT) && defined(MOZ_PLATFORM_MAEMO) && (MOZ_PLATFORM_MAEMO == 5)
+ case NPPVpluginWindowlessLocalBool:
+ m_renderToImage = true;
+ return NPERR_NO_ERROR;
+#endif
+
default:
notImplemented();
return NPERR_GENERIC_ERROR;
@@ -852,6 +859,9 @@ PluginView::PluginView(Frame* parentFrame, const IntSize& size, PluginPackage* p
, m_colormap(0)
, m_pluginDisplay(0)
#endif
+#if PLATFORM(QT) && defined(MOZ_PLATFORM_MAEMO) && (MOZ_PLATFORM_MAEMO == 5)
+ , m_renderToImage(false)
+#endif
, m_loadManually(loadManually)
, m_manualStream(0)
, m_isJavaScriptPaused(false)
diff --git a/src/3rdparty/webkit/WebCore/plugins/PluginView.h b/src/3rdparty/webkit/WebCore/plugins/PluginView.h
index 51b2127..f346134 100644
--- a/src/3rdparty/webkit/WebCore/plugins/PluginView.h
+++ b/src/3rdparty/webkit/WebCore/plugins/PluginView.h
@@ -54,6 +54,10 @@ typedef PlatformWidget PlatformPluginWidget;
#include <QPixmap>
#endif
#endif
+#if PLATFORM(QT) && defined(MOZ_PLATFORM_MAEMO) && (MOZ_PLATFORM_MAEMO == 5)
+#include <QImage>
+class QPainter;
+#endif
namespace JSC {
namespace Bindings {
@@ -371,6 +375,12 @@ private:
void initXEvent(XEvent* event);
#endif
+#if PLATFORM(QT) && defined(MOZ_PLATFORM_MAEMO) && (MOZ_PLATFORM_MAEMO == 5)
+ QImage m_image;
+ bool m_renderToImage;
+ void paintUsingImageSurfaceExtension(QPainter* painter, const IntRect& exposedRect);
+#endif
+
IntRect m_clipRect; // The clip rect to apply to a windowed plug-in
IntRect m_windowRect; // Our window rect.
diff --git a/src/3rdparty/webkit/WebCore/plugins/qt/PluginViewQt.cpp b/src/3rdparty/webkit/WebCore/plugins/qt/PluginViewQt.cpp
index fb88b87..8dadc11 100644
--- a/src/3rdparty/webkit/WebCore/plugins/qt/PluginViewQt.cpp
+++ b/src/3rdparty/webkit/WebCore/plugins/qt/PluginViewQt.cpp
@@ -110,12 +110,20 @@ void PluginView::updatePluginWidget()
return;
if (!m_isWindowed && m_windowRect.size() != oldWindowRect.size()) {
- if (m_drawable)
- XFreePixmap(QX11Info::display(), m_drawable);
+#if defined(MOZ_PLATFORM_MAEMO) && (MOZ_PLATFORM_MAEMO == 5)
+ // On Maemo5, Flash always renders to 16-bit buffer
+ if (m_renderToImage)
+ m_image = QImage(m_windowRect.width(), m_windowRect.height(), QImage::Format_RGB16);
+ else
+#endif
+ {
+ if (m_drawable)
+ XFreePixmap(QX11Info::display(), m_drawable);
- m_drawable = XCreatePixmap(QX11Info::display(), QX11Info::appRootWindow(), m_windowRect.width(), m_windowRect.height(),
- ((NPSetWindowCallbackStruct*)m_npWindow.ws_info)->depth);
- QApplication::syncX(); // make sure that the server knows about the Drawable
+ m_drawable = XCreatePixmap(QX11Info::display(), QX11Info::appRootWindow(), m_windowRect.width(), m_windowRect.height(),
+ ((NPSetWindowCallbackStruct*)m_npWindow.ws_info)->depth);
+ QApplication::syncX(); // make sure that the server knows about the Drawable
+ }
}
// do not call setNPWindowIfNeeded immediately, will be called on paint()
@@ -154,6 +162,71 @@ void PluginView::hide()
Widget::hide();
}
+#if defined(MOZ_PLATFORM_MAEMO) && (MOZ_PLATFORM_MAEMO == 5)
+void PluginView::paintUsingImageSurfaceExtension(QPainter* painter, const IntRect& exposedRect)
+{
+ NPImageExpose imageExpose;
+ QPoint offset;
+ QWebPageClient* client = m_parentFrame->view()->hostWindow()->platformPageClient();
+ const bool surfaceHasUntransformedContents = client && qobject_cast<QWidget*>(client->pluginParent());
+
+ QPaintDevice* surface = QPainter::redirected(painter->device(), &offset);
+
+ // If the surface is a QImage, we can render directly into it
+ if (surfaceHasUntransformedContents && surface && surface->devType() == QInternal::Image) {
+ QImage* image = static_cast<QImage*>(surface);
+ offset = -offset; // negating the offset gives us the offset of the view within the surface
+ imageExpose.data = reinterpret_cast<char*>(image->bits());
+ imageExpose.dataSize.width = image->width();
+ imageExpose.dataSize.height = image->height();
+ imageExpose.stride = image->bytesPerLine();
+ imageExpose.depth = image->depth(); // this is guaranteed to be 16 on Maemo5
+ imageExpose.translateX = offset.x() + m_windowRect.x();
+ imageExpose.translateY = offset.y() + m_windowRect.y();
+ imageExpose.scaleX = 1;
+ imageExpose.scaleY = 1;
+ } else {
+ if (m_isTransparent) {
+ // On Maemo5, Flash expects the buffer to contain the contents that are below it.
+ // We don't support transparency for non-raster graphicssystem, so clean the image
+ // before giving to Flash.
+ QPainter imagePainter(&m_image);
+ imagePainter.fillRect(exposedRect, Qt::white);
+ }
+
+ imageExpose.data = reinterpret_cast<char*>(m_image.bits());
+ imageExpose.dataSize.width = m_image.width();
+ imageExpose.dataSize.height = m_image.height();
+ imageExpose.stride = m_image.bytesPerLine();
+ imageExpose.depth = m_image.depth();
+ imageExpose.translateX = 0;
+ imageExpose.translateY = 0;
+ imageExpose.scaleX = 1;
+ imageExpose.scaleY = 1;
+ }
+ imageExpose.x = exposedRect.x();
+ imageExpose.y = exposedRect.y();
+ imageExpose.width = exposedRect.width();
+ imageExpose.height = exposedRect.height();
+
+ XEvent xevent;
+ memset(&xevent, 0, sizeof(XEvent));
+ XGraphicsExposeEvent& exposeEvent = xevent.xgraphicsexpose;
+ exposeEvent.type = GraphicsExpose;
+ exposeEvent.display = 0;
+ exposeEvent.drawable = reinterpret_cast<XID>(&imageExpose);
+ exposeEvent.x = exposedRect.x();
+ exposeEvent.y = exposedRect.y();
+ exposeEvent.width = exposedRect.width();
+ exposeEvent.height = exposedRect.height();
+
+ dispatchNPEvent(xevent);
+
+ if (!surfaceHasUntransformedContents || !surface || surface->devType() != QInternal::Image)
+ painter->drawImage(QPoint(frameRect().x() + exposedRect.x(), frameRect().y() + exposedRect.y()), m_image, exposedRect);
+}
+#endif
+
void PluginView::paint(GraphicsContext* context, const IntRect& rect)
{
if (!m_isStarted) {
@@ -166,19 +239,32 @@ void PluginView::paint(GraphicsContext* context, const IntRect& rect)
setNPWindowIfNeeded();
- if (m_isWindowed || !m_drawable)
+ if (m_isWindowed)
return;
- const bool syncX = m_pluginDisplay && m_pluginDisplay != QX11Info::display();
+ if (!m_drawable
+#if defined(MOZ_PLATFORM_MAEMO) && (MOZ_PLATFORM_MAEMO == 5)
+ && m_image.isNull()
+#endif
+ )
+ return;
QPainter* painter = context->platformContext();
IntRect exposedRect(rect);
exposedRect.intersect(frameRect());
exposedRect.move(-frameRect().x(), -frameRect().y());
+#if defined(MOZ_PLATFORM_MAEMO) && (MOZ_PLATFORM_MAEMO == 5)
+ if (!m_image.isNull()) {
+ paintUsingImageSurfaceExtension(painter, exposedRect);
+ return;
+ }
+#endif
+
QPixmap qtDrawable = QPixmap::fromX11Pixmap(m_drawable, QPixmap::ExplicitlyShared);
const int drawableDepth = ((NPSetWindowCallbackStruct*)m_npWindow.ws_info)->depth;
ASSERT(drawableDepth == qtDrawable.depth());
+ const bool syncX = m_pluginDisplay && m_pluginDisplay != QX11Info::display();
// When printing, Qt uses a QPicture to capture the output in preview mode. The
// QPicture holds a reference to the X Pixmap. As a result, the print preview would
@@ -576,6 +662,13 @@ bool PluginView::platformGetValueStatic(NPNVariable variable, void* value, NPErr
*result = NPERR_NO_ERROR;
return true;
+#if defined(MOZ_PLATFORM_MAEMO) && (MOZ_PLATFORM_MAEMO == 5)
+ case NPNVSupportsWindowlessLocal:
+ *static_cast<NPBool*>(value) = true;
+ *result = NPERR_NO_ERROR;
+ return true;
+#endif
+
default:
return false;
}
@@ -651,7 +744,7 @@ static Display *getPluginDisplay()
// support gdk based plugins (like flash) that use a different X connection.
// The code below has the same effect as this one:
// Display *gdkDisplay = gdk_x11_display_get_xdisplay(gdk_display_get_default());
- QLibrary library("libgdk-x11-2.0");
+ QLibrary library("libgdk-x11-2.0.so.0");
if (!library.load())
return 0;
diff --git a/src/3rdparty/webkit/WebKit/qt/Api/qwebkitglobal.h b/src/3rdparty/webkit/WebKit/qt/Api/qwebkitglobal.h
index 665bf1b..63d9e55 100644
--- a/src/3rdparty/webkit/WebKit/qt/Api/qwebkitglobal.h
+++ b/src/3rdparty/webkit/WebKit/qt/Api/qwebkitglobal.h
@@ -22,9 +22,9 @@
#include <QtCore/qglobal.h>
-#define QTWEBKIT_VERSION_STR "2.0.0"
+#define QTWEBKIT_VERSION_STR "2.0.1"
// QTWEBKIT_VERSION is (major << 16) + (minor << 8) + patch. Similar to Qt.
-#define QTWEBKIT_VERSION 0x020000
+#define QTWEBKIT_VERSION 0x020001
// Use: #if (QTWEBKIT_VERSION >= QTWEBKIT_VERSION_CHECK(2, 0, 0)). Similar to Qt.
#define QTWEBKIT_VERSION_CHECK(major, minor, patch) ((major<<16)|(minor<<8)|(patch))
diff --git a/src/3rdparty/webkit/WebKit/qt/ChangeLog b/src/3rdparty/webkit/WebKit/qt/ChangeLog
index 5083ba5..c6c3d72 100644
--- a/src/3rdparty/webkit/WebKit/qt/ChangeLog
+++ b/src/3rdparty/webkit/WebKit/qt/ChangeLog
@@ -1,3 +1,80 @@
+2010-09-12 Martin Smith <martin.smith@nokia.com>
+
+ Reviewed by Simon Hausmann.
+
+ doc: Changed the title so lists of contents sort better.
+
+ * docs/qtwebkit.qdoc:
+
+2010-09-12 David Boddie <david.boddie@nokia.com>
+
+ Reviewed by Simon Hausmann.
+
+ Doc: More work on the QML documentation.
+
+ * declarative/qdeclarativewebview.cpp:
+
+2010-09-12 Martin Jones <martin.jones@nokia.com>
+
+ Reviewed by Simon Hausmann.
+
+ [Qml] Ensure WebView gets focus when an editable node is clicked on.
+
+ Task-number: QTBUG-13342
+
+ * declarative/qdeclarativewebview.cpp:
+ (GraphicsWebView::mousePressEvent):
+
+2010-09-12 David Boddie <david.boddie@nokia.com>
+
+ Reviewed by Simon Hausmann.
+
+ Doc: qdoc fixes.
+
+ * declarative/qdeclarativewebview.cpp:
+
+2010-09-12 Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
+
+ Reviewed by Simon Hausmann.
+
+ [Qt] let WebKit inject itself into the qt configuration
+
+ Task-number: QTBUG-12379
+
+ * qt_webkit_version.pri: Use the faster + instead of *
+ operator to add webkit to the config.
+
+2010-09-12 Martin Smith <martin.smith@nokia.com>
+
+ Reviewed by Simon Hausmann.
+
+ [Qt] Fix group of declarative web view in QML docs.
+
+ * declarative/qdeclarativewebview.cpp:
+
+2010-08-20 Girish Ramakrishnan <girish@forwardbias.in>
+
+ Reviewed by Ariya Hidayat.
+
+ [Qt] Allow wmode=transparent in QWebView on Maemo5 after r65775.
+
+ https://bugs.webkit.org/show_bug.cgi?id=44043
+
+ * WebCoreSupport/FrameLoaderClientQt.cpp:
+ (WebCore::FrameLoaderClientQt::createPlugin):
+
+2010-08-19 Girish Ramakrishnan <girish@forwardbias.in>
+
+ Reviewed by Kenneth Christiansen.
+
+ [Qt] Inject wmode=opaque for both QWebView and QGraphicsWebView on Maemo5
+ as Flash XEmbed support is flaky.
+
+ https://bugs.webkit.org/show_bug.cgi?id=44043
+
+ * WebCoreSupport/FrameLoaderClientQt.cpp:
+ (WebCore::FrameLoaderClientQt::createPlugin):
+
2010-08-05 David Leong <david.leong@nokia.com>
Reviewed by Simon Hausmann.
diff --git a/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp b/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp
index 713fa39..dcbf614 100644
--- a/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp
+++ b/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp
@@ -4,7 +4,7 @@
* Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies)
* Copyright (C) 2008 Collabora Ltd. All rights reserved.
* Coypright (C) 2008 Holger Hans Peter Freyther
- * Coypright (C) 2009 Girish Ramakrishnan <girish@forwardbias.in>
+ * Coypright (C) 2009, 2010 Girish Ramakrishnan <girish@forwardbias.in>
*
* All rights reserved.
*
@@ -1349,7 +1349,19 @@ PassRefPtr<Widget> FrameLoaderClientQt::createPlugin(const IntSize& pluginSize,
Vector<String> values = paramValues;
if (mimeType == "application/x-shockwave-flash") {
QWebPageClient* client = m_webFrame->page()->d->client;
- if (!client || !qobject_cast<QWidget*>(client->pluginParent())) {
+ const bool isQWebView = client && qobject_cast<QWidget*>(client->pluginParent());
+#if defined(MOZ_PLATFORM_MAEMO) && (MOZ_PLATFORM_MAEMO == 5)
+ size_t wmodeIndex = params.find("wmode");
+ if (wmodeIndex == -1) {
+ // Disable XEmbed mode and force it to opaque mode
+ params.append("wmode");
+ values.append("opaque");
+ } else if (!isQWebView) {
+ // Disable transparency if client is not a QWebView
+ values[wmodeIndex] = "opaque";
+ }
+#else
+ if (!isQWebView) {
// inject wmode=opaque when there is no client or the client is not a QWebView
size_t wmodeIndex = params.find("wmode");
if (wmodeIndex == -1) {
@@ -1358,6 +1370,7 @@ PassRefPtr<Widget> FrameLoaderClientQt::createPlugin(const IntSize& pluginSize,
} else
values[wmodeIndex] = "opaque";
}
+#endif
}
RefPtr<PluginView> pluginView = PluginView::create(m_frame, pluginSize, element, url,
diff --git a/src/3rdparty/webkit/WebKit/qt/qt_webkit_version.pri b/src/3rdparty/webkit/WebKit/qt/qt_webkit_version.pri
index 4594d1e..f2282f8 100644
--- a/src/3rdparty/webkit/WebKit/qt/qt_webkit_version.pri
+++ b/src/3rdparty/webkit/WebKit/qt/qt_webkit_version.pri
@@ -1,5 +1,5 @@
-QT_WEBKIT_VERSION = 4.7.0
+QT_WEBKIT_VERSION = 4.7.1
QT_WEBKIT_MAJOR_VERSION = 4
QT_WEBKIT_MINOR_VERSION = 7
-QT_WEBKIT_PATCH_VERSION = 0
+QT_WEBKIT_PATCH_VERSION = 1
QT_CONFIG += webkit
diff --git a/src/corelib/io/qsettings_win.cpp b/src/corelib/io/qsettings_win.cpp
index de96e06..b3fe734 100644
--- a/src/corelib/io/qsettings_win.cpp
+++ b/src/corelib/io/qsettings_win.cpp
@@ -535,6 +535,15 @@ bool QWinSettingsPrivate::readKey(HKEY parentHandle, const QString &rSubKey, QVa
break;
}
+ case REG_QWORD: {
+ Q_ASSERT(data.size() == sizeof(qint64));
+ qint64 i;
+ memcpy((char*)&i, data.constData(), sizeof(qint64));
+ if (value != 0)
+ *value = i;
+ break;
+ }
+
default:
qWarning("QSettings: Unknown data %d type in Windows registry", static_cast<int>(dataType));
if (value != 0)
@@ -683,10 +692,19 @@ void QWinSettingsPrivate::set(const QString &uKey, const QVariant &value)
break;
}
- case QVariant::Int: {
+ case QVariant::Int:
+ case QVariant::UInt: {
type = REG_DWORD;
- int i = value.toInt();
- regValueBuff = QByteArray((const char*)&i, sizeof(int));
+ qint32 i = value.toInt();
+ regValueBuff = QByteArray((const char*)&i, sizeof(qint32));
+ break;
+ }
+
+ case QVariant::LongLong:
+ case QVariant::ULongLong: {
+ type = REG_QWORD;
+ qint64 i = value.toLongLong();
+ regValueBuff = QByteArray((const char*)&i, sizeof(qint64));
break;
}
diff --git a/src/corelib/io/qurl.cpp b/src/corelib/io/qurl.cpp
index 74c24b5..d1fab2d 100644
--- a/src/corelib/io/qurl.cpp
+++ b/src/corelib/io/qurl.cpp
@@ -3417,9 +3417,8 @@ QString QUrlPrivate::canonicalHost() const
that->host = host.toLower();
} else {
that->host = qt_ACE_do(host, NormalizeAce);
- if (that->host.isNull())
- that->isHostValid = false;
}
+ that->isHostValid = !that->host.isNull();
return that->host;
}
@@ -3734,6 +3733,10 @@ void QUrlPrivate::validate() const
QString auth = authority(); // causes the non-encoded forms to be valid
+ // authority() calls canonicalHost() which sets this
+ if (!isHostValid)
+ return;
+
if (scheme == QLatin1String("mailto")) {
if (!host.isEmpty() || port != -1 || !userName.isEmpty() || !password.isEmpty()) {
that->isValid = false;
@@ -3907,9 +3910,10 @@ QByteArray QUrlPrivate::toEncoded(QUrl::FormattingOptions options) const
url += scheme.toLatin1();
url += ':';
}
+ QString savedHost = host; // pre-validation, may be invalid!
QString auth = authority();
bool doFileScheme = scheme == QLatin1String("file") && encodedPath.startsWith('/');
- if ((options & QUrl::RemoveAuthority) != QUrl::RemoveAuthority && (!auth.isEmpty() || doFileScheme)) {
+ if ((options & QUrl::RemoveAuthority) != QUrl::RemoveAuthority && (!auth.isEmpty() || doFileScheme || !savedHost.isEmpty())) {
if (doFileScheme && !encodedPath.startsWith('/'))
url += '/';
url += "//";
@@ -3935,6 +3939,12 @@ QByteArray QUrlPrivate::toEncoded(QUrl::FormattingOptions options) const
url += '[';
url += host.toLatin1();
url += ']';
+ } else if (host.isEmpty() && !savedHost.isEmpty()) {
+ // this case is only possible with an invalid URL
+ // it's here only so that we can keep the original, invalid hostname
+ // in encodedOriginal.
+ // QUrl::isValid() will return false, so toEncoded() can be anything (it's not valid)
+ url += savedHost.toUtf8();
} else {
url += QUrl::toAce(host);
}
@@ -4054,7 +4064,7 @@ const QByteArray &QUrlPrivate::normalized() const
QString QUrlPrivate::createErrorString()
{
- if (isValid)
+ if (isValid && isHostValid)
return QString();
QString errorString(QLatin1String(QT_TRANSLATE_NOOP(QUrl, "Invalid URL \"")));
@@ -4078,7 +4088,10 @@ QString QUrlPrivate::createErrorString()
errorString += QLatin1String(QT_TRANSLATE_NOOP(QUrl, "\'"));
} else {
errorString += QLatin1String(QT_TRANSLATE_NOOP(QUrl, ": "));
- errorString += QLatin1String(errorInfo._message);
+ if (isHostValid)
+ errorString += QLatin1String(errorInfo._message);
+ else
+ errorString += QLatin1String(QT_TRANSLATE_NOOP(QUrl, "invalid hostname"));
}
if (errorInfo._found) {
errorString += QLatin1String(QT_TRANSLATE_NOOP(QUrl, ", but found \'"));
@@ -4441,7 +4454,7 @@ void QUrl::setAuthority(const QString &authority)
if (!QURL_HASFLAG(d->stateFlags, QUrlPrivate::Parsed)) d->parse();
detach();
- QURL_UNSETFLAG(d->stateFlags, QUrlPrivate::Validated | QUrlPrivate::Normalized);
+ QURL_UNSETFLAG(d->stateFlags, QUrlPrivate::Validated | QUrlPrivate::Normalized | QUrlPrivate::HostCanonicalized);
d->setAuthority(authority);
}
diff --git a/src/corelib/kernel/qobject.h b/src/corelib/kernel/qobject.h
index 1b613a6..d98d1f0 100644
--- a/src/corelib/kernel/qobject.h
+++ b/src/corelib/kernel/qobject.h
@@ -325,95 +325,6 @@ Q_CORE_EXPORT void qt_qFindChildren_helper(const QObject *parent, const QString
const QMetaObject &mo, QList<void *> *list);
Q_CORE_EXPORT QObject *qt_qFindChild_helper(const QObject *parent, const QString &name, const QMetaObject &mo);
-#if defined Q_CC_MSVC && _MSC_VER < 1300
-
-template<typename T>
-inline T qFindChild(const QObject *o, const QString &name, T)
-{ return static_cast<T>(qt_qFindChild_helper(o, name, ((T)0)->staticMetaObject)); }
-
-template<typename T>
-inline QList<T> qFindChildren(const QObject *o, const QString &name, T)
-{
- QList<T> list;
- union {
- QList<T> *typedList;
- QList<void *> *voidList;
- } u;
- u.typedList = &list;
- qt_qFindChildren_helper(o, name, 0, ((T)0)->staticMetaObject, u.voidList);
- return list;
-}
-
-template<typename T>
-inline T qFindChild(const QObject *o, const QString &name)
-{ return qFindChild<T>(o, name, T(0)); }
-
-template<typename T>
-inline T qFindChild(const QObject *o)
-{ return qFindChild<T>(o, QString(), T(0)); }
-
-template<typename T>
-inline QList<T> qFindChildren(const QObject *o, const QString &name)
-{ return qFindChildren<T>(o, name, T(0)); }
-
-template<typename T>
-inline QList<T> qFindChildren(const QObject *o)
-{ return qFindChildren<T>(o, QString(), T(0)); }
-
-#ifndef QT_NO_REGEXP
-template<typename T>
-inline QList<T> qFindChildren(const QObject *o, const QRegExp &re, T)
-{
- QList<T> list;
- union {
- QList<T> *typedList;
- QList<void *> *voidList;
- } u;
- u.typedList = &list;
- qt_qFindChildren_helper(o, 0, &re, ((T)0)->staticMetaObject, u.voidList);
- return list;
-}
-
-template<typename T>
-inline QList<T> qFindChildren(const QObject *o, const QRegExp &re)
-{ return qFindChildren<T>(o, re, T(0)); }
-
-#endif
-
-#ifdef Q_MOC_RUN
-# define Q_DECLARE_INTERFACE(IFace, IId) Q_DECLARE_INTERFACE(IFace, IId)
-#endif // Q_MOC_RUN
-
-
-template <class T> inline const char * qobject_interface_iid()
-{ return 0; }
-
-template <class T> inline T qobject_cast_helper(QObject *object, T)
-{ return static_cast<T>(((T)0)->staticMetaObject.cast(object)); }
-
-template <class T> inline T qobject_cast_helper(const QObject *object, T)
-{ return static_cast<T>(const_cast<const QObject *>(((T)0)->staticMetaObject.cast(const_cast<QObject *>(object)))); }
-
-template <class T>
-inline T qobject_cast(QObject *object)
-{ return qobject_cast_helper<T>(object, T(0)); }
-
-template <class T>
-inline T qobject_cast(const QObject *object)
-{ return qobject_cast_helper<T>(object, T(0)); }
-
-#ifndef Q_MOC_RUN
-# define Q_DECLARE_INTERFACE(IFace, IId) \
- template <> inline const char *qobject_interface_iid<IFace *>() \
- { return IId; } \
- template <> inline IFace *qobject_cast_helper<IFace *>(QObject *object, IFace *) \
- { return (IFace *)(object ? object->qt_metacast(IId) : 0); } \
- template <> inline IFace *qobject_cast_helper<IFace *>(const QObject *object, IFace *) \
- { return (IFace *)(object ? const_cast<QObject *>(object)->qt_metacast(IId) : 0); }
-#endif // Q_MOC_RUN
-
-#else
-
template<typename T>
inline T qFindChild(const QObject *o, const QString &name)
{ return static_cast<T>(qt_qFindChild_helper(o, name, reinterpret_cast<T>(0)->staticMetaObject)); }
@@ -482,8 +393,6 @@ template <class T> inline const char * qobject_interface_iid()
{ return reinterpret_cast<IFace *>((object ? const_cast<QObject *>(object)->qt_metacast(IId) : 0)); }
#endif // Q_MOC_RUN
-#endif
-
#ifndef QT_NO_DEBUG_STREAM
Q_CORE_EXPORT QDebug operator<<(QDebug, const QObject *);
#endif
diff --git a/src/corelib/plugin/qfactoryloader.cpp b/src/corelib/plugin/qfactoryloader.cpp
index 62d565a..a26dcd8 100644
--- a/src/corelib/plugin/qfactoryloader.cpp
+++ b/src/corelib/plugin/qfactoryloader.cpp
@@ -244,6 +244,14 @@ QObject *QFactoryLoader::instance(const QString &key) const
return 0;
}
+#ifdef Q_WS_X11
+QLibraryPrivate *QFactoryLoader::library(const QString &key) const
+{
+ Q_D(const QFactoryLoader);
+ return d->keyMap.value(d->cs ? key : key.toLower());
+}
+#endif
+
void QFactoryLoader::refreshAll()
{
QMutexLocker locker(qt_factoryloader_mutex());
diff --git a/src/corelib/plugin/qfactoryloader_p.h b/src/corelib/plugin/qfactoryloader_p.h
index 10e6e2a..068c6c7 100644
--- a/src/corelib/plugin/qfactoryloader_p.h
+++ b/src/corelib/plugin/qfactoryloader_p.h
@@ -77,6 +77,10 @@ public:
QStringList keys() const;
QObject *instance(const QString &key) const;
+#ifdef Q_WS_X11
+ QLibraryPrivate *library(const QString &key) const;
+#endif
+
void update();
static void refreshAll();
diff --git a/src/declarative/graphicsitems/qdeclarativeflickable.cpp b/src/declarative/graphicsitems/qdeclarativeflickable.cpp
index 062bbfb..c0b664f 100644
--- a/src/declarative/graphicsitems/qdeclarativeflickable.cpp
+++ b/src/declarative/graphicsitems/qdeclarativeflickable.cpp
@@ -128,8 +128,8 @@ QDeclarativeFlickablePrivate::QDeclarativeFlickablePrivate()
, flickingHorizontally(false), flickingVertically(false)
, hMoved(false), vMoved(false)
, movingHorizontally(false), movingVertically(false)
- , stealMouse(false), pressed(false)
- , interactive(true), deceleration(500), maxVelocity(2000), reportedVelocitySmoothing(100)
+ , stealMouse(false), pressed(false), interactive(true), calcVelocity(false)
+ , deceleration(500), maxVelocity(2000), reportedVelocitySmoothing(100)
, delayedPressEvent(0), delayedPressTarget(0), pressDelay(0), fixupDuration(600)
, vTime(0), visibleArea(0)
, flickableDirection(QDeclarativeFlickable::AutoFlickDirection)
@@ -981,7 +981,7 @@ void QDeclarativeFlickable::viewportMoved()
qreal prevY = d->lastFlickablePosition.x();
qreal prevX = d->lastFlickablePosition.y();
d->velocityTimeline.clear();
- if (d->pressed) {
+ if (d->pressed || d->calcVelocity) {
int elapsed = QDeclarativeItemPrivate::restart(d->velocityTime);
if (elapsed > 0) {
qreal horizontalVelocity = (prevX - d->hData.move.value()) * 1000 / elapsed;
diff --git a/src/declarative/graphicsitems/qdeclarativeflickable_p_p.h b/src/declarative/graphicsitems/qdeclarativeflickable_p_p.h
index c398faa..2da034c 100644
--- a/src/declarative/graphicsitems/qdeclarativeflickable_p_p.h
+++ b/src/declarative/graphicsitems/qdeclarativeflickable_p_p.h
@@ -141,6 +141,7 @@ public:
bool stealMouse : 1;
bool pressed : 1;
bool interactive : 1;
+ bool calcVelocity : 1;
QElapsedTimer lastPosTime;
QPointF lastPos;
QPointF pressPos;
diff --git a/src/declarative/graphicsitems/qdeclarativegridview.cpp b/src/declarative/graphicsitems/qdeclarativegridview.cpp
index a0faf14..6a99733 100644
--- a/src/declarative/graphicsitems/qdeclarativegridview.cpp
+++ b/src/declarative/graphicsitems/qdeclarativegridview.cpp
@@ -2241,7 +2241,9 @@ void QDeclarativeGridView::trackedPositionChanged()
}
if (viewPos != pos) {
cancelFlick();
+ d->calcVelocity = true;
d->setPosition(pos);
+ d->calcVelocity = false;
}
}
}
diff --git a/src/declarative/graphicsitems/qdeclarativelistview.cpp b/src/declarative/graphicsitems/qdeclarativelistview.cpp
index 177c5b3..ae504aa 100644
--- a/src/declarative/graphicsitems/qdeclarativelistview.cpp
+++ b/src/declarative/graphicsitems/qdeclarativelistview.cpp
@@ -2732,7 +2732,9 @@ void QDeclarativeListView::trackedPositionChanged()
}
if (viewPos != pos) {
cancelFlick();
+ d->calcVelocity = true;
d->setPosition(pos);
+ d->calcVelocity = false;
}
}
}
diff --git a/src/declarative/graphicsitems/qdeclarativemousearea.cpp b/src/declarative/graphicsitems/qdeclarativemousearea.cpp
index 5516611..4685e65 100644
--- a/src/declarative/graphicsitems/qdeclarativemousearea.cpp
+++ b/src/declarative/graphicsitems/qdeclarativemousearea.cpp
@@ -303,7 +303,9 @@ QDeclarativeMouseAreaPrivate::~QDeclarativeMouseAreaPrivate()
The \l {MouseEvent}{mouse} parameter provides information about the click, including the x and y
position of the release of the click, and whether the click was held.
- The \e accepted property of the MouseEvent parameter is ignored in this handler.
+ If the \e accepted property of the \l {MouseEvent}{mouse} parameter is set to false
+ in the handler, the onPressed/onReleased/onClicked handlers will be called for the second
+ click; otherwise they are supressed. The accepted property defaults to true.
*/
/*!
@@ -525,12 +527,13 @@ void QDeclarativeMouseArea::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *even
if (!d->absorb) {
QDeclarativeItem::mouseDoubleClickEvent(event);
} else {
- QDeclarativeItem::mouseDoubleClickEvent(event);
- if (event->isAccepted()) {
- // Only deliver the event if we have accepted the press.
- d->saveEvent(event);
- QDeclarativeMouseEvent me(d->lastPos.x(), d->lastPos.y(), d->lastButton, d->lastButtons, d->lastModifiers, true, false);
- emit this->doubleClicked(&me);
+ d->saveEvent(event);
+ QDeclarativeMouseEvent me(d->lastPos.x(), d->lastPos.y(), d->lastButton, d->lastButtons, d->lastModifiers, true, false);
+ me.setAccepted(d->isDoubleClickConnected());
+ emit this->doubleClicked(&me);
+ if (!me.isAccepted()) {
+ // Only deliver the press event if we haven't accepted the double click.
+ QDeclarativeItem::mouseDoubleClickEvent(event);
}
}
}
diff --git a/src/declarative/graphicsitems/qdeclarativemousearea_p_p.h b/src/declarative/graphicsitems/qdeclarativemousearea_p_p.h
index cf9dc18..48a56d9 100644
--- a/src/declarative/graphicsitems/qdeclarativemousearea_p_p.h
+++ b/src/declarative/graphicsitems/qdeclarativemousearea_p_p.h
@@ -95,6 +95,12 @@ public:
return QObjectPrivate::get(q)->isSignalConnected(idx);
}
+ bool isDoubleClickConnected() {
+ Q_Q(QDeclarativeMouseArea);
+ static int idx = QObjectPrivate::get(q)->signalIndex("doubleClicked(QDeclarativeMouseEvent*)");
+ return QObjectPrivate::get(q)->isSignalConnected(idx);
+ }
+
bool absorb : 1;
bool hovered : 1;
bool pressed : 1;
diff --git a/src/declarative/util/qdeclarativeanimation.cpp b/src/declarative/util/qdeclarativeanimation.cpp
index 3c09747..ea3da25 100644
--- a/src/declarative/util/qdeclarativeanimation.cpp
+++ b/src/declarative/util/qdeclarativeanimation.cpp
@@ -2699,14 +2699,15 @@ void QDeclarativeParentAnimation::transition(QDeclarativeStateActions &actions,
qreal scale = 1;
qreal rotation = 0;
- if (ok && transform.type() != QTransform::TxRotate) {
+ bool isRotate = (transform.type() == QTransform::TxRotate) || (transform.m11() < 0);
+ if (ok && !isRotate) {
if (transform.m11() == transform.m22())
scale = transform.m11();
else {
qmlInfo(this) << QDeclarativeParentAnimation::tr("Unable to preserve appearance under non-uniform scale");
ok = false;
}
- } else if (ok && transform.type() == QTransform::TxRotate) {
+ } else if (ok && isRotate) {
if (transform.m11() == transform.m22())
scale = qSqrt(transform.m11()*transform.m11() + transform.m12()*transform.m12());
else {
diff --git a/src/declarative/util/qdeclarativestateoperations.cpp b/src/declarative/util/qdeclarativestateoperations.cpp
index 845b3da..a78fc54 100644
--- a/src/declarative/util/qdeclarativestateoperations.cpp
+++ b/src/declarative/util/qdeclarativestateoperations.cpp
@@ -98,14 +98,15 @@ void QDeclarativeParentChangePrivate::doChange(QDeclarativeItem *targetParent, Q
qreal scale = 1;
qreal rotation = 0;
- if (ok && transform.type() != QTransform::TxRotate) {
+ bool isRotate = (transform.type() == QTransform::TxRotate) || (transform.m11() < 0);
+ if (ok && !isRotate) {
if (transform.m11() == transform.m22())
scale = transform.m11();
else {
qmlInfo(q) << QDeclarativeParentChange::tr("Unable to preserve appearance under non-uniform scale");
ok = false;
}
- } else if (ok && transform.type() == QTransform::TxRotate) {
+ } else if (ok && isRotate) {
if (transform.m11() == transform.m22())
scale = qSqrt(transform.m11()*transform.m11() + transform.m12()*transform.m12());
else {
diff --git a/src/gui/egl/qegl.cpp b/src/gui/egl/qegl.cpp
index 605b1e6..af3b79a 100644
--- a/src/gui/egl/qegl.cpp
+++ b/src/gui/egl/qegl.cpp
@@ -259,7 +259,7 @@ EGLConfig QEgl::defaultConfig(int devType, API api, ConfigOptions options)
// Add paint engine requirements
if (api == OpenVG) {
-#ifndef QVG_SCISSOR_CLIP
+#if !defined(QVG_SCISSOR_CLIP) && defined(EGL_ALPHA_MASK_SIZE)
configAttribs.setValue(EGL_ALPHA_MASK_SIZE, 1);
#endif
} else {
diff --git a/src/gui/egl/qegl_p.h b/src/gui/egl/qegl_p.h
index c214e88..aa08934 100644
--- a/src/gui/egl/qegl_p.h
+++ b/src/gui/egl/qegl_p.h
@@ -65,6 +65,10 @@ QT_BEGIN_INCLUDE_NAMESPACE
#else
# include <EGL/egl.h>
#endif
+#if !defined(EGL_VERSION_1_2)
+typedef unsigned int EGLenum;
+typedef void *EGLClientBuffer;
+#endif
#else
//types from egltypes.h for compiling stub without EGL headers
diff --git a/src/gui/egl/qeglcontext_p.h b/src/gui/egl/qeglcontext_p.h
index cae8164..5bc8f09 100644
--- a/src/gui/egl/qeglcontext_p.h
+++ b/src/gui/egl/qeglcontext_p.h
@@ -107,6 +107,9 @@ private:
static QEglContext *currentContext(QEgl::API api);
static void setCurrentContext(QEgl::API api, QEglContext *context);
+
+ friend class QMeeGoGraphicsSystem;
+ friend class QMeeGoPixmapData;
};
QT_END_NAMESPACE
diff --git a/src/gui/egl/qeglproperties.cpp b/src/gui/egl/qeglproperties.cpp
index 3638de5..eeae06d 100644
--- a/src/gui/egl/qeglproperties.cpp
+++ b/src/gui/egl/qeglproperties.cpp
@@ -241,8 +241,10 @@ void QEglProperties::setRenderableType(QEgl::API api)
// reductions in complexity are possible.
bool QEglProperties::reduceConfiguration()
{
+#ifdef EGL_SWAP_BEHAVIOR
if (value(EGL_SWAP_BEHAVIOR) != EGL_DONT_CARE)
removeValue(EGL_SWAP_BEHAVIOR);
+#endif
#ifdef EGL_VG_ALPHA_FORMAT_PRE_BIT
// For OpenVG, we sometimes try to create a surface using a pre-multiplied format. If we can't
diff --git a/src/gui/graphicsview/qgraphicslayoutitem.cpp b/src/gui/graphicsview/qgraphicslayoutitem.cpp
index 3707591..634f68c 100644
--- a/src/gui/graphicsview/qgraphicslayoutitem.cpp
+++ b/src/gui/graphicsview/qgraphicslayoutitem.cpp
@@ -234,7 +234,7 @@ void QGraphicsLayoutItemPrivate::setSize(Qt::SizeHint which, const QSizeF &size)
if (userSizeHints) {
if (size == userSizeHints[which])
return;
- } else if (!size.isValid()) {
+ } else if (size.width() < 0 && size.height() < 0) {
return;
}
diff --git a/src/gui/graphicsview/qgraphicsscene.cpp b/src/gui/graphicsview/qgraphicsscene.cpp
index 539685a..36a24db 100644
--- a/src/gui/graphicsview/qgraphicsscene.cpp
+++ b/src/gui/graphicsview/qgraphicsscene.cpp
@@ -5270,7 +5270,6 @@ void QGraphicsScene::drawItems(QPainter *painter,
if (!d->unpolishedItems.isEmpty())
d->_q_polishItems();
- d->updateAll = false;
QTransform viewTransform = painter->worldTransform();
Q_UNUSED(options);
@@ -5279,6 +5278,7 @@ void QGraphicsScene::drawItems(QPainter *painter,
QRegion *expose = 0;
const quint32 oldRectAdjust = d->rectAdjust;
if (view) {
+ d->updateAll = false;
expose = &view->d_func()->exposedRegion;
if (view->d_func()->optimizationFlags & QGraphicsView::DontAdjustForAntialiasing)
d->rectAdjust = 1;
diff --git a/src/gui/kernel/qapplication.cpp b/src/gui/kernel/qapplication.cpp
index 82dd83a..caeeeb9 100644
--- a/src/gui/kernel/qapplication.cpp
+++ b/src/gui/kernel/qapplication.cpp
@@ -65,6 +65,7 @@
#include "qcolormap.h"
#include "qdebug.h"
#include "private/qgraphicssystemfactory_p.h"
+#include "private/qgraphicssystem_p.h"
#include "private/qstylesheetstyle_p.h"
#include "private/qstyle_p.h"
#include "qmessagebox.h"
@@ -94,6 +95,10 @@
#include <stdlib.h>
+#if defined(Q_WS_X11) && !defined(QT_NO_EGL)
+#include <link.h>
+#endif
+
#include "qapplication_p.h"
#include "qevent_p.h"
#include "qwidget_p.h"
@@ -768,6 +773,13 @@ QApplication::QApplication(int &argc, char **argv, Type type , int _internal)
: QCoreApplication(*new QApplicationPrivate(argc, argv, type))
{ Q_D(QApplication); d->construct(); QApplicationPrivate::app_compile_version = _internal;}
+#if defined(Q_WS_X11) && !defined(QT_NO_EGL)
+static int qt_matchLibraryName(dl_phdr_info *info, size_t, void *data)
+{
+ const char *name = static_cast<const char *>(data);
+ return strstr(info->dlpi_name, name) != 0;
+}
+#endif
/*!
\internal
@@ -785,6 +797,19 @@ void QApplicationPrivate::construct(
// the environment variable has the lowest precedence of runtime graphicssystem switches
if (graphics_system_name.isEmpty())
graphics_system_name = QString::fromLocal8Bit(qgetenv("QT_GRAPHICSSYSTEM"));
+
+#if defined(Q_WS_X11) && !defined(QT_NO_EGL)
+ if (graphics_system_name.isEmpty()) {
+ bool linksWithMeeGoTouch = dl_iterate_phdr(qt_matchLibraryName, const_cast<char *>("libmeegotouchcore"));
+ bool linksWithMeeGoGraphicsSystemHelper = dl_iterate_phdr(qt_matchLibraryName, const_cast<char *>("libQtMeeGoGraphicsSystemHelper"));
+
+ if (linksWithMeeGoTouch && !linksWithMeeGoGraphicsSystemHelper) {
+ qWarning("Running non-meego graphics system enabled MeeGo touch, forcing native graphicssystem\n");
+ graphics_system_name = QLatin1String("native");
+ }
+ }
+#endif
+
// Must be called before initialize()
qt_init(this, qt_appType
#ifdef Q_WS_X11
@@ -1116,6 +1141,8 @@ QApplication::~QApplication()
QApplicationPrivate::app_style = 0;
delete QApplicationPrivate::app_icon;
QApplicationPrivate::app_icon = 0;
+ delete QApplicationPrivate::graphics_system;
+ QApplicationPrivate::graphics_system = 0;
#ifndef QT_NO_CURSOR
d->cursor_list.clear();
#endif
diff --git a/src/gui/kernel/qapplication_x11.cpp b/src/gui/kernel/qapplication_x11.cpp
index 7495f6d..e7b7ed8 100644
--- a/src/gui/kernel/qapplication_x11.cpp
+++ b/src/gui/kernel/qapplication_x11.cpp
@@ -400,11 +400,39 @@ QTabletDeviceDataList *qt_tablet_devices()
extern bool qt_tabletChokeMouse;
#endif
+typedef bool(*QX11FilterFunction)(XEvent *event);
+
+Q_GLOBAL_STATIC(QList<QX11FilterFunction>, x11Filters)
+
+Q_GUI_EXPORT void qt_installX11EventFilter(QX11FilterFunction func)
+{
+ Q_ASSERT(func);
+
+ if (QList<QX11FilterFunction> *list = x11Filters())
+ list->append(func);
+}
+
+Q_GUI_EXPORT void qt_removeX11EventFilter(QX11FilterFunction func)
+{
+ Q_ASSERT(func);
+
+ if (QList<QX11FilterFunction> *list = x11Filters())
+ list->removeOne(func);
+}
+
+
static bool qt_x11EventFilter(XEvent* ev)
{
long unused;
if (qApp->filterEvent(ev, &unused))
return true;
+ if (const QList<QX11FilterFunction> *list = x11Filters()) {
+ for (QList<QX11FilterFunction>::const_iterator it = list->constBegin(); it != list->constEnd(); ++it) {
+ if ((*it)(ev))
+ return true;
+ }
+ }
+
return qApp->x11EventFilter(ev);
}
diff --git a/src/gui/kernel/qgesture.cpp b/src/gui/kernel/qgesture.cpp
index 13274c4..5725a22 100644
--- a/src/gui/kernel/qgesture.cpp
+++ b/src/gui/kernel/qgesture.cpp
@@ -775,4 +775,6 @@ int QTapAndHoldGesturePrivate::Timeout = 700; // in ms
QT_END_NAMESPACE
+#include <moc_qgesture.cpp>
+
#endif // QT_NO_GESTURES
diff --git a/src/gui/kernel/qgesture.h b/src/gui/kernel/qgesture.h
index dcb0264..2e279b0 100644
--- a/src/gui/kernel/qgesture.h
+++ b/src/gui/kernel/qgesture.h
@@ -112,6 +112,8 @@ class Q_GUI_EXPORT QPanGesture : public QGesture
Q_PROPERTY(QPointF offset READ offset WRITE setOffset)
Q_PROPERTY(QPointF delta READ delta STORED false)
Q_PROPERTY(qreal acceleration READ acceleration WRITE setAcceleration)
+ Q_PRIVATE_PROPERTY(QPanGesture::d_func(), qreal horizontalVelocity READ horizontalVelocity WRITE setHorizontalVelocity)
+ Q_PRIVATE_PROPERTY(QPanGesture::d_func(), qreal verticalVelocity READ verticalVelocity WRITE setVerticalVelocity)
public:
QPanGesture(QObject *parent = 0);
@@ -210,6 +212,7 @@ class Q_GUI_EXPORT QSwipeGesture : public QGesture
Q_PROPERTY(SwipeDirection horizontalDirection READ horizontalDirection STORED false)
Q_PROPERTY(SwipeDirection verticalDirection READ verticalDirection STORED false)
Q_PROPERTY(qreal swipeAngle READ swipeAngle WRITE setSwipeAngle)
+ Q_PRIVATE_PROPERTY(QSwipeGesture::d_func(), qreal velocity READ velocity WRITE setVelocity)
public:
enum SwipeDirection { NoDirection, Left, Right, Up, Down };
diff --git a/src/gui/kernel/qgesture_p.h b/src/gui/kernel/qgesture_p.h
index 29b923e..6a856ac 100644
--- a/src/gui/kernel/qgesture_p.h
+++ b/src/gui/kernel/qgesture_p.h
@@ -88,14 +88,21 @@ class QPanGesturePrivate : public QGesturePrivate
public:
QPanGesturePrivate()
- : acceleration(0)
+ : acceleration(0), xVelocity(0), yVelocity(0)
{
}
+ qreal horizontalVelocity() const { return xVelocity; }
+ void setHorizontalVelocity(qreal value) { xVelocity = value; }
+ qreal verticalVelocity() const { return yVelocity; }
+ void setVerticalVelocity(qreal value) { yVelocity = value; }
+
QPointF lastOffset;
QPointF offset;
QPoint startPosition;
qreal acceleration;
+ qreal xVelocity;
+ qreal yVelocity;
};
class QPinchGesturePrivate : public QGesturePrivate
@@ -105,7 +112,7 @@ class QPinchGesturePrivate : public QGesturePrivate
public:
QPinchGesturePrivate()
: totalChangeFlags(0), changeFlags(0),
- totalScaleFactor(0), lastScaleFactor(0), scaleFactor(0),
+ totalScaleFactor(1), lastScaleFactor(1), scaleFactor(1),
totalRotationAngle(0), lastRotationAngle(0), rotationAngle(0),
isNewSequence(true)
{
@@ -139,17 +146,20 @@ public:
: horizontalDirection(QSwipeGesture::NoDirection),
verticalDirection(QSwipeGesture::NoDirection),
swipeAngle(0),
- started(false), speed(0)
+ started(false), velocityValue(0)
{
}
+ qreal velocity() const { return velocityValue; }
+ void setVelocity(qreal value) { velocityValue = value; }
+
QSwipeGesture::SwipeDirection horizontalDirection;
QSwipeGesture::SwipeDirection verticalDirection;
qreal swipeAngle;
QPoint lastPositions[3];
bool started;
- qreal speed;
+ qreal velocityValue;
QElapsedTimer time;
};
diff --git a/src/gui/kernel/qgesturemanager.cpp b/src/gui/kernel/qgesturemanager.cpp
index 5c80340..6dd8127 100644
--- a/src/gui/kernel/qgesturemanager.cpp
+++ b/src/gui/kernel/qgesturemanager.cpp
@@ -184,7 +184,7 @@ void QGestureManager::cleanupCachedGestures(QObject *target, Qt::GestureType typ
// get or create a QGesture object that will represent the state for a given object, used by the recognizer
QGesture *QGestureManager::getState(QObject *object, QGestureRecognizer *recognizer, Qt::GestureType type)
{
- // if the widget is being deleted we should be carefull and not to
+ // if the widget is being deleted we should be careful not to
// create a new state, as it will create QWeakPointer which doesnt work
// from the destructor.
if (object->isWidgetType()) {
diff --git a/src/gui/kernel/qstandardgestures.cpp b/src/gui/kernel/qstandardgestures.cpp
index 127e150..893ba2b 100644
--- a/src/gui/kernel/qstandardgestures.cpp
+++ b/src/gui/kernel/qstandardgestures.cpp
@@ -199,6 +199,7 @@ QGestureRecognizer::Result QPinchGestureRecognizer::recognize(QGesture *state,
d->startPosition[1] = p2.screenPos();
}
QLineF line(p1.screenPos(), p2.screenPos());
+ QLineF lastLine(p1.lastScreenPos(), p2.lastScreenPos());
QLineF tmp(line);
tmp.setLength(line.length() / 2.);
QPointF centerPoint = tmp.p2();
@@ -207,16 +208,15 @@ QGestureRecognizer::Result QPinchGestureRecognizer::recognize(QGesture *state,
d->centerPoint = centerPoint;
d->changeFlags |= QPinchGesture::CenterPointChanged;
- const qreal scaleFactor =
- QLineF(p1.screenPos(), p2.screenPos()).length()
- / QLineF(d->startPosition[0], d->startPosition[1]).length();
+ const qreal scaleFactor = line.length() / lastLine.length();
+
if (d->isNewSequence) {
d->lastScaleFactor = scaleFactor;
} else {
d->lastScaleFactor = d->scaleFactor;
}
d->scaleFactor = scaleFactor;
- d->totalScaleFactor += d->scaleFactor - d->lastScaleFactor;
+ d->totalScaleFactor = d->totalScaleFactor * scaleFactor;
d->changeFlags |= QPinchGesture::ScaleFactorChanged;
qreal angle = QLineF(p1.screenPos(), p2.screenPos()).angle();
@@ -266,7 +266,7 @@ void QPinchGestureRecognizer::reset(QGesture *state)
d->totalChangeFlags = d->changeFlags = 0;
d->startCenterPoint = d->lastCenterPoint = d->centerPoint = QPointF();
- d->totalScaleFactor = d->lastScaleFactor = d->scaleFactor = 0;
+ d->totalScaleFactor = d->lastScaleFactor = d->scaleFactor = 1;
d->totalRotationAngle = d->lastRotationAngle = d->rotationAngle = 0;
d->isNewSequence = true;
@@ -304,7 +304,7 @@ QGestureRecognizer::Result QSwipeGestureRecognizer::recognize(QGesture *state,
switch (event->type()) {
case QEvent::TouchBegin: {
- d->speed = 1;
+ d->velocityValue = 1;
d->time.start();
d->started = true;
result = QGestureRecognizer::MayBeGesture;
@@ -345,7 +345,7 @@ QGestureRecognizer::Result QSwipeGestureRecognizer::recognize(QGesture *state,
int elapsedTime = d->time.restart();
if (!elapsedTime)
elapsedTime = 1;
- d->speed = 0.9 * d->speed + distance / elapsedTime;
+ d->velocityValue = 0.9 * d->velocityValue + distance / elapsedTime;
d->swipeAngle = QLineF(p1.startScreenPos(), p1.screenPos()).angle();
static const int MoveThreshold = 50;
@@ -407,7 +407,7 @@ void QSwipeGestureRecognizer::reset(QGesture *state)
d->lastPositions[0] = d->lastPositions[1] = d->lastPositions[2] = QPoint();
d->started = false;
- d->speed = 0;
+ d->velocityValue = 0;
d->time.invalidate();
QGestureRecognizer::reset(state);
diff --git a/src/gui/kernel/qwidget_mac.mm b/src/gui/kernel/qwidget_mac.mm
index 1979c84..159c45d 100644
--- a/src/gui/kernel/qwidget_mac.mm
+++ b/src/gui/kernel/qwidget_mac.mm
@@ -2375,7 +2375,8 @@ void QWidgetPrivate::recreateMacWindow()
HIViewRemoveFromSuperview(myView);
determineWindowClass();
createWindow_sys();
- if (QMainWindowLayout *mwl = qobject_cast<QMainWindowLayout *>(q->layout())) {
+
+ if (QMainWindowLayout *mwl = qt_mainwindow_layout(qobject_cast<QMainWindow *>(q))) {
mwl->updateHIToolBarStatus();
}
@@ -2912,7 +2913,7 @@ void QWidgetPrivate::setParent_sys(QWidget *parent, Qt::WindowFlags f)
// We do this down below for wasCreated, so avoid doing this twice
// (only for performance, it gets called a lot anyway).
if (!wasCreated) {
- if (QMainWindowLayout *mwl = qobject_cast<QMainWindowLayout *>(q->layout())) {
+ if (QMainWindowLayout *mwl = qt_mainwindow_layout(qobject_cast<QMainWindow *>(q))) {
mwl->updateHIToolBarStatus();
}
}
@@ -2937,7 +2938,7 @@ void QWidgetPrivate::setParent_sys(QWidget *parent, Qt::WindowFlags f)
// If we were a unified window, We just transfered our toolbars out of the unified toolbar.
// So redo the status one more time. It apparently is not an issue with Cocoa.
if (q->isWindow()) {
- if (QMainWindowLayout *mwl = qobject_cast<QMainWindowLayout *>(q->layout())) {
+ if (QMainWindowLayout *mwl = qt_mainwindow_layout(qobject_cast<QMainWindow *>(q))) {
mwl->updateHIToolBarStatus();
}
}
@@ -5138,7 +5139,7 @@ void QWidgetPrivate::macUpdateMetalAttribute()
return;
recreateMacWindow();
#else
- QMainWindowLayout *layout = qobject_cast<QMainWindowLayout *>(q->layout());
+ QMainWindowLayout *layout = qt_mainwindow_layout(qobject_cast<QMainWindow *>(q));
if (q->testAttribute(Qt::WA_MacBrushedMetal)) {
if (layout)
layout->updateHIToolBarStatus();
diff --git a/src/gui/kernel/qwidget_s60.cpp b/src/gui/kernel/qwidget_s60.cpp
index c98c05a..4109ed8 100644
--- a/src/gui/kernel/qwidget_s60.cpp
+++ b/src/gui/kernel/qwidget_s60.cpp
@@ -518,7 +518,7 @@ void QWidgetPrivate::show_sys()
if (q->windowState() & Qt::WindowMaximized) {
TRect r = static_cast<CEikAppUi*>(S60->appUi())->ClientRect();
id->SetExtent(r.iTl, r.Size());
- } else if (!q->testAttribute(Qt::WA_Moved)) {
+ } else if (!q->testAttribute(Qt::WA_Moved) && q->windowType() != Qt::Dialog) {
id->SetPosition(static_cast<CEikAppUi*>(S60->appUi())->ClientRect().iTl);
}
}
diff --git a/src/gui/painting/qdrawhelper_sse2.cpp b/src/gui/painting/qdrawhelper_sse2.cpp
index ba2ba32..f97d865 100644
--- a/src/gui/painting/qdrawhelper_sse2.cpp
+++ b/src/gui/painting/qdrawhelper_sse2.cpp
@@ -266,10 +266,10 @@ void qt_memfill32_sse2(quint32 *dest, quint32 value, int count)
int n = (count128 + 3) / 4;
switch (count128 & 0x3) {
- case 0: do { _mm_store_si128(dst128++, value128);
- case 3: _mm_store_si128(dst128++, value128);
- case 2: _mm_store_si128(dst128++, value128);
- case 1: _mm_store_si128(dst128++, value128);
+ case 0: do { _mm_stream_si128(dst128++, value128);
+ case 3: _mm_stream_si128(dst128++, value128);
+ case 2: _mm_stream_si128(dst128++, value128);
+ case 1: _mm_stream_si128(dst128++, value128);
} while (--n > 0);
}
@@ -300,11 +300,14 @@ void QT_FASTCALL comp_func_solid_SourceOver_sse2(uint *destPixels, int length, u
const __m128i half = _mm_set1_epi16(0x80);
const __m128i minusAlphaOfColorVector = _mm_set1_epi16(minusAlphaOfColor);
+ ALIGNMENT_PROLOGUE_16BYTES(dst, x, length)
+ destPixels[x] = color + BYTE_MUL(destPixels[x], minusAlphaOfColor);
+
for (; x < length-3; x += 4) {
- __m128i dstVector = _mm_loadu_si128((__m128i *)&dst[x]);
+ __m128i dstVector = _mm_load_si128((__m128i *)&dst[x]);
BYTE_MUL_SSE2(dstVector, dstVector, minusAlphaOfColorVector, colorMask, half);
dstVector = _mm_add_epi8(colorVector, dstVector);
- _mm_storeu_si128((__m128i *)&dst[x], dstVector);
+ _mm_store_si128((__m128i *)&dst[x], dstVector);
}
for (;x < length; ++x)
destPixels[x] = color + BYTE_MUL(destPixels[x], minusAlphaOfColor);
diff --git a/src/gui/painting/qdrawhelper_ssse3.cpp b/src/gui/painting/qdrawhelper_ssse3.cpp
index 4cb4089..fb5602e 100644
--- a/src/gui/painting/qdrawhelper_ssse3.cpp
+++ b/src/gui/painting/qdrawhelper_ssse3.cpp
@@ -79,69 +79,6 @@ inline static void blend_pixel(quint32 &dst, const quint32 src)
}
-#define BLEND_SOURCE_OVER_ARGB32_FIRST_ROW_SSSE3(dst, src, length, nullVector, half, one, colorMask, alphaMask) { \
- int x = 0; \
-\
- /* First, get dst aligned. */ \
- const int offsetToAlignOn16Bytes = (4 - ((reinterpret_cast<quintptr>(dst) >> 2) & 0x3)) & 0x3;\
- const int prologLength = qMin(length, offsetToAlignOn16Bytes);\
-\
- for (; x < prologLength; ++x) {\
- blend_pixel(dst[x], src[x]); \
- } \
-\
- const int minusOffsetToAlignSrcOn16Bytes = (reinterpret_cast<quintptr>(&(src[x])) >> 2) & 0x3;\
-\
- if (!minusOffsetToAlignSrcOn16Bytes) {\
- /* src is aligned, usual algorithm but with aligned operations.\
- See the SSE2 version for more documentation on the algorithm itself. */\
- const __m128i alphaShuffleMask = _mm_set_epi8(0xff,15,0xff,15,0xff,11,0xff,11,0xff,7,0xff,7,0xff,3,0xff,3);\
- for (; x < length-3; x += 4) { \
- const __m128i srcVector = _mm_load_si128((__m128i *)&src[x]); \
- const __m128i srcVectorAlpha = _mm_and_si128(srcVector, alphaMask); \
- if (_mm_movemask_epi8(_mm_cmpeq_epi32(srcVectorAlpha, alphaMask)) == 0xffff) { \
- _mm_store_si128((__m128i *)&dst[x], srcVector); \
- } else if (_mm_movemask_epi8(_mm_cmpeq_epi32(srcVectorAlpha, nullVector)) != 0xffff) { \
- __m128i alphaChannel = _mm_shuffle_epi8(srcVector, alphaShuffleMask); \
- alphaChannel = _mm_sub_epi16(one, alphaChannel); \
- const __m128i dstVector = _mm_load_si128((__m128i *)&dst[x]); \
- __m128i destMultipliedByOneMinusAlpha; \
- BYTE_MUL_SSE2(destMultipliedByOneMinusAlpha, dstVector, alphaChannel, colorMask, half); \
- const __m128i result = _mm_add_epi8(srcVector, destMultipliedByOneMinusAlpha); \
- _mm_store_si128((__m128i *)&dst[x], result); \
- } \
- } /* end for() */\
- } else if ((length - x) >= 8) {\
- /* We are at the first line, so "x - minusOffsetToAlignSrcOn16Bytes" could go before src, and\
- generate an invalid access. */\
-\
- /* We use two vectors to extract the src: prevLoaded for the first pixels, lastLoaded for the current pixels. */\
- __m128i srcVectorPrevLoaded;\
- if (minusOffsetToAlignSrcOn16Bytes > prologLength) {\
- /* We go forward 4 pixels to avoid reading before src. */\
- for (; x < prologLength + 4; ++x)\
- blend_pixel(dst[x], src[x]); \
- }\
- srcVectorPrevLoaded = _mm_load_si128((__m128i *)&src[x - minusOffsetToAlignSrcOn16Bytes]);\
- const int palignrOffset = minusOffsetToAlignSrcOn16Bytes << 2;\
-\
- const __m128i alphaShuffleMask = _mm_set_epi8(0xff,15,0xff,15,0xff,11,0xff,11,0xff,7,0xff,7,0xff,3,0xff,3);\
- switch (palignrOffset) {\
- case 4:\
- BLENDING_LOOP(4, length)\
- break;\
- case 8:\
- BLENDING_LOOP(8, length)\
- break;\
- case 12:\
- BLENDING_LOOP(12, length)\
- break;\
- }\
- }\
- for (; x < length; ++x) \
- blend_pixel(dst[x], src[x]); \
-}
-
// Basically blend src over dst with the const alpha defined as constAlphaVector.
// nullVector, half, one, colorMask are constant accross the whole image/texture, and should be defined as:
//const __m128i nullVector = _mm_set1_epi32(0);
@@ -153,7 +90,7 @@ inline static void blend_pixel(quint32 &dst, const quint32 src)
// The computation being done is:
// result = s + d * (1-alpha)
// with shortcuts if fully opaque or fully transparent.
-#define BLEND_SOURCE_OVER_ARGB32_MAIN_SSSE3(dst, src, length, nullVector, half, one, colorMask, alphaMask) { \
+#define BLEND_SOURCE_OVER_ARGB32_SSSE3(dst, src, length, nullVector, half, one, colorMask, alphaMask) { \
int x = 0; \
\
/* First, get dst aligned. */ \
@@ -218,14 +155,8 @@ void qt_blend_argb32_on_argb32_ssse3(uchar *destPixels, int dbpl,
const __m128i one = _mm_set1_epi16(0xff);
const __m128i colorMask = _mm_set1_epi32(0x00ff00ff);
- // We have to unrol the first row in order to deal with the load on unaligned data
- // prior to the src pointer.
- BLEND_SOURCE_OVER_ARGB32_FIRST_ROW_SSSE3(dst, src, w, nullVector, half, one, colorMask, alphaMask);
- dst = (quint32 *)(((uchar *) dst) + dbpl);
- src = (const quint32 *)(((const uchar *) src) + sbpl);
-
- for (int y = 1; y < h; ++y) {
- BLEND_SOURCE_OVER_ARGB32_MAIN_SSSE3(dst, src, w, nullVector, half, one, colorMask, alphaMask);
+ for (int y = 0; y < h; ++y) {
+ BLEND_SOURCE_OVER_ARGB32_SSSE3(dst, src, w, nullVector, half, one, colorMask, alphaMask);
dst = (quint32 *)(((uchar *) dst) + dbpl);
src = (const quint32 *)(((const uchar *) src) + sbpl);
}
diff --git a/src/gui/painting/qgraphicssystem_runtime.cpp b/src/gui/painting/qgraphicssystem_runtime.cpp
index 2828e9d..a9fbbee 100644
--- a/src/gui/painting/qgraphicssystem_runtime.cpp
+++ b/src/gui/painting/qgraphicssystem_runtime.cpp
@@ -94,7 +94,8 @@ QRuntimePixmapData::QRuntimePixmapData(const QRuntimeGraphicsSystem *gs, PixelTy
QRuntimePixmapData::~QRuntimePixmapData()
{
- m_graphicsSystem->removePixmapData(this);
+ if (QApplicationPrivate::graphics_system)
+ m_graphicsSystem->removePixmapData(this);
delete m_data;
}
@@ -258,7 +259,8 @@ QRuntimeWindowSurface::QRuntimeWindowSurface(const QRuntimeGraphicsSystem *gs, Q
QRuntimeWindowSurface::~QRuntimeWindowSurface()
{
- m_graphicsSystem->removeWindowSurface(this);
+ if (QApplicationPrivate::graphics_system)
+ m_graphicsSystem->removeWindowSurface(this);
}
QPaintDevice *QRuntimeWindowSurface::paintDevice()
diff --git a/src/gui/painting/qgraphicssystem_runtime_p.h b/src/gui/painting/qgraphicssystem_runtime_p.h
index 0232241..421fbeb 100644
--- a/src/gui/painting/qgraphicssystem_runtime_p.h
+++ b/src/gui/painting/qgraphicssystem_runtime_p.h
@@ -177,6 +177,7 @@ private:
friend class QRuntimePixmapData;
friend class QRuntimeWindowSurface;
+ friend class QMeeGoGraphicsSystem;
};
QT_END_NAMESPACE
diff --git a/src/gui/painting/qstroker.cpp b/src/gui/painting/qstroker.cpp
index eabbd8a..9cff339 100644
--- a/src/gui/painting/qstroker.cpp
+++ b/src/gui/painting/qstroker.cpp
@@ -609,7 +609,7 @@ void QStroker::joinPoints(qfixed focal_x, qfixed focal_y, const QLineF &nextLine
}
QLineF miterLine(QPointF(qt_fixed_to_real(focal_x),
qt_fixed_to_real(focal_y)), isect);
- if (miterLine.length() > qt_fixed_to_real(m_strokeWidth * m_miterLimit) / 2) {
+ if (type == QLineF::NoIntersection || miterLine.length() > qt_fixed_to_real(m_strokeWidth * m_miterLimit) / 2) {
emitLineTo(qt_real_to_fixed(nextLine.x1()),
qt_real_to_fixed(nextLine.y1()));
} else {
diff --git a/src/gui/text/qfontengine.cpp b/src/gui/text/qfontengine.cpp
index 1e8461f..a3f4d8a 100644
--- a/src/gui/text/qfontengine.cpp
+++ b/src/gui/text/qfontengine.cpp
@@ -631,10 +631,10 @@ QImage QFontEngine::alphaMapForGlyph(glyph_t glyph)
if (glyph_width <= 0 || glyph_height <= 0)
return QImage();
QFixedPoint pt;
- pt.x = 0;
+ pt.x = -glyph_x;
pt.y = -glyph_y; // the baseline
QPainterPath path;
- QImage im(glyph_width + qAbs(glyph_x) + 4, glyph_height, QImage::Format_ARGB32_Premultiplied);
+ QImage im(glyph_width + 4, glyph_height, QImage::Format_ARGB32_Premultiplied);
im.fill(Qt::transparent);
QPainter p(&im);
p.setRenderHint(QPainter::Antialiasing);
diff --git a/src/gui/text/qfontengine_win.cpp b/src/gui/text/qfontengine_win.cpp
index 82de0d5..ef1b504 100644
--- a/src/gui/text/qfontengine_win.cpp
+++ b/src/gui/text/qfontengine_win.cpp
@@ -1296,6 +1296,7 @@ QFontEngineMultiWin::QFontEngineMultiWin(QFontEngineWin *first, const QStringLis
engines[0] = first;
first->ref.ref();
fontDef = engines[0]->fontDef;
+ cache_cost = first->cache_cost;
}
void QFontEngineMultiWin::loadEngine(int at)
@@ -1317,6 +1318,8 @@ void QFontEngineMultiWin::loadEngine(int at)
engines[at] = new QFontEngineWin(fam, hfont, stockFont, lf);
engines[at]->ref.ref();
engines[at]->fontDef = fontDef;
+
+ // TODO: increase cost in QFontCache for the font engine loaded here
}
QT_END_NAMESPACE
diff --git a/src/gui/text/qstatictext.cpp b/src/gui/text/qstatictext.cpp
index b950b13..7a5dec4 100644
--- a/src/gui/text/qstatictext.cpp
+++ b/src/gui/text/qstatictext.cpp
@@ -448,7 +448,6 @@ namespace {
currentItem.font = ti.font();
currentItem.charOffset = m_chars.size();
currentItem.numChars = ti.num_chars;
- currentItem.numGlyphs = ti.glyphs.numGlyphs;
currentItem.glyphOffset = m_glyphs.size(); // Store offset into glyph pool
currentItem.positionOffset = m_glyphs.size(); // Offset into position pool
currentItem.useBackendOptimizations = m_useBackendOptimizations;
@@ -463,8 +462,8 @@ namespace {
ti.fontEngine->getGlyphPositions(ti.glyphs, matrix, ti.flags, glyphs, positions);
int size = glyphs.size();
- Q_ASSERT(size == ti.glyphs.numGlyphs);
Q_ASSERT(size == positions.size());
+ currentItem.numGlyphs = size;
m_glyphs.resize(m_glyphs.size() + size);
m_positions.resize(m_glyphs.size());
diff --git a/src/gui/widgets/qdockarealayout.cpp b/src/gui/widgets/qdockarealayout.cpp
index 171000b..b540e76 100644
--- a/src/gui/widgets/qdockarealayout.cpp
+++ b/src/gui/widgets/qdockarealayout.cpp
@@ -60,6 +60,9 @@
QT_BEGIN_NAMESPACE
+// qmainwindow.cpp
+extern QMainWindowLayout *qt_mainwindow_layout(const QMainWindow *window);
+
enum { StateFlagVisible = 1, StateFlagFloating = 2 };
/******************************************************************************
@@ -1480,7 +1483,7 @@ QList<int> QDockAreaLayoutInfo::indexOf(QWidget *widget) const
QMainWindowLayout *QDockAreaLayoutInfo::mainWindowLayout() const
{
- QMainWindowLayout *result = qobject_cast<QMainWindowLayout*>(mainWindow->layout());
+ QMainWindowLayout *result = qt_mainwindow_layout(mainWindow);
Q_ASSERT(result != 0);
return result;
}
@@ -3070,8 +3073,7 @@ void QDockAreaLayout::splitDockWidget(QDockWidget *after,
void QDockAreaLayout::apply(bool animate)
{
- QWidgetAnimator &widgetAnimator
- = qobject_cast<QMainWindowLayout*>(mainWindow->layout())->widgetAnimator;
+ QWidgetAnimator &widgetAnimator = qt_mainwindow_layout(mainWindow)->widgetAnimator;
for (int i = 0; i < QInternal::DockCount; ++i)
docks[i].apply(animate);
@@ -3176,7 +3178,7 @@ void QDockAreaLayout::updateSeparatorWidgets() const
if (j < separatorWidgets.size()) {
sepWidget = separatorWidgets.at(j);
} else {
- sepWidget = qobject_cast<QMainWindowLayout*>(mainWindow->layout())->getSeparatorWidget();
+ sepWidget = qt_mainwindow_layout(mainWindow)->getSeparatorWidget();
separatorWidgets.append(sepWidget);
}
j++;
diff --git a/src/gui/widgets/qdockwidget.cpp b/src/gui/widgets/qdockwidget.cpp
index 11f0a94..df9b171 100644
--- a/src/gui/widgets/qdockwidget.cpp
+++ b/src/gui/widgets/qdockwidget.cpp
@@ -68,6 +68,9 @@ QT_BEGIN_NAMESPACE
extern QString qt_setWindowTitle_helperHelper(const QString&, const QWidget*); // qwidget.cpp
+// qmainwindow.cpp
+extern QMainWindowLayout *qt_mainwindow_layout(const QMainWindow *window);
+
static inline bool hasFeature(const QDockWidgetPrivate *priv, QDockWidget::DockWidgetFeature feature)
{ return (priv->features & feature) == feature; }
@@ -690,7 +693,7 @@ void QDockWidgetPrivate::initDrag(const QPoint &pos, bool nca)
QMainWindow *win = qobject_cast<QMainWindow*>(parent);
Q_ASSERT(win != 0);
- QMainWindowLayout *layout = qobject_cast<QMainWindowLayout*>(win->layout());
+ QMainWindowLayout *layout = qt_mainwindow_layout(win);
Q_ASSERT(layout != 0);
if (layout->pluggingWidget != 0) // the main window is animating a docking operation
return;
@@ -711,8 +714,7 @@ void QDockWidgetPrivate::startDrag()
if (state == 0 || state->dragging)
return;
- QMainWindowLayout *layout
- = qobject_cast<QMainWindowLayout *>(q->parentWidget()->layout());
+ QMainWindowLayout *layout = qt_mainwindow_layout(qobject_cast<QMainWindow *>(q->parentWidget()));
Q_ASSERT(layout != 0);
state->widgetItem = layout->unplug(q);
@@ -739,8 +741,7 @@ void QDockWidgetPrivate::endDrag(bool abort)
q->releaseMouse();
if (state->dragging) {
- QMainWindowLayout *mwLayout =
- qobject_cast<QMainWindowLayout *>(q->parentWidget()->layout());
+ QMainWindowLayout *mwLayout = qt_mainwindow_layout(qobject_cast<QMainWindow *>(q->parentWidget()));
Q_ASSERT(mwLayout != 0);
if (abort || !mwLayout->plug(state->widgetItem)) {
@@ -780,8 +781,7 @@ bool QDockWidgetPrivate::isAnimating() const
if (mainWin == 0)
return false;
- QMainWindowLayout *mainWinLayout
- = qobject_cast<QMainWindowLayout*>(mainWin->layout());
+ QMainWindowLayout *mainWinLayout = qt_mainwindow_layout(mainWin);
if (mainWinLayout == 0)
return false;
@@ -847,9 +847,8 @@ bool QDockWidgetPrivate::mouseMoveEvent(QMouseEvent *event)
return ret;
QDockWidgetLayout *dwlayout
- = qobject_cast<QDockWidgetLayout*>(layout);
- QMainWindowLayout *mwlayout
- = qobject_cast<QMainWindowLayout*>(q->parentWidget()->layout());
+ = qobject_cast<QDockWidgetLayout *>(layout);
+ QMainWindowLayout *mwlayout = qt_mainwindow_layout(qobject_cast<QMainWindow *>(q->parentWidget()));
if (!dwlayout->nativeWindowDeco()) {
if (!state->dragging
&& mwlayout->pluggingWidget == 0
@@ -943,8 +942,7 @@ void QDockWidgetPrivate::nonClientAreaMouseEvent(QMouseEvent *event)
}
#ifdef Q_OS_MAC
else { // workaround for lack of mouse-grab on Mac
- QMainWindowLayout *layout
- = qobject_cast<QMainWindowLayout *>(q->parentWidget()->layout());
+ QMainWindowLayout *layout = qt_mainwindow_layout(qobject_cast<QMainWindow *>(q->parentWidget()));
Q_ASSERT(layout != 0);
q->move(event->globalPos() - state->pressPos);
@@ -980,8 +978,7 @@ void QDockWidgetPrivate::moveEvent(QMoveEvent *event)
if (state->ctrlDrag)
return;
- QMainWindowLayout *layout
- = qobject_cast<QMainWindowLayout *>(q->parentWidget()->layout());
+ QMainWindowLayout *layout = qt_mainwindow_layout(qobject_cast<QMainWindow *>(q->parentWidget()));
Q_ASSERT(layout != 0);
QPoint globalMousePos = event->pos() + state->pressPos;
@@ -1009,7 +1006,7 @@ void QDockWidgetPrivate::setWindowState(bool floating, bool unplug, const QRect
Q_Q(QDockWidget);
if (!floating && parent) {
- QMainWindowLayout *mwlayout = qobject_cast<QMainWindowLayout *>(q->parentWidget()->layout());
+ QMainWindowLayout *mwlayout = qt_mainwindow_layout(qobject_cast<QMainWindow *>(q->parentWidget()));
if (mwlayout && mwlayout->dockWidgetArea(q) == Qt::NoDockWidgetArea)
return; // this dockwidget can't be redocked
}
@@ -1055,7 +1052,7 @@ void QDockWidgetPrivate::setWindowState(bool floating, bool unplug, const QRect
if (floating != wasFloating) {
emit q->topLevelChanged(floating);
if (!floating && parent) {
- QMainWindowLayout *mwlayout = qobject_cast<QMainWindowLayout *>(q->parentWidget()->layout());
+ QMainWindowLayout *mwlayout = qt_mainwindow_layout(qobject_cast<QMainWindow *>(q->parentWidget()));
if (mwlayout)
emit q->dockLocationChanged(mwlayout->dockWidgetArea(q));
}
@@ -1326,10 +1323,10 @@ void QDockWidget::changeEvent(QEvent *event)
#ifndef QT_NO_TABBAR
{
QMainWindow *win = qobject_cast<QMainWindow*>(parentWidget());
- if (QMainWindowLayout *winLayout =
- (win ? qobject_cast<QMainWindowLayout*>(win->layout()) : 0))
+ if (QMainWindowLayout *winLayout = qt_mainwindow_layout(win)) {
if (QDockAreaLayoutInfo *info = winLayout->layoutState.dockAreaLayout.info(this))
info->updateTabBar();
+ }
}
#endif // QT_NO_TABBAR
break;
@@ -1382,9 +1379,7 @@ bool QDockWidget::event(QEvent *event)
Q_D(QDockWidget);
QMainWindow *win = qobject_cast<QMainWindow*>(parentWidget());
- QMainWindowLayout *layout = 0;
- if (win != 0)
- layout = qobject_cast<QMainWindowLayout*>(win->layout());
+ QMainWindowLayout *layout = qt_mainwindow_layout(win);
switch (event->type()) {
#ifndef QT_NO_ACTION
diff --git a/src/gui/widgets/qmainwindow.cpp b/src/gui/widgets/qmainwindow.cpp
index 44483ea..1183be6 100644
--- a/src/gui/widgets/qmainwindow.cpp
+++ b/src/gui/widgets/qmainwindow.cpp
@@ -39,6 +39,8 @@
**
****************************************************************************/
+//#define QT_EXPERIMENTAL_CLIENT_DECORATIONS
+
#include "qmainwindow.h"
#include "qmainwindowlayout_p.h"
@@ -99,12 +101,70 @@ public:
uint hasOldCursor : 1;
uint cursorAdjusted : 1;
#endif
+
+ static inline QMainWindowLayout *mainWindowLayout(const QMainWindow *mainWindow)
+ {
+ return mainWindow ? mainWindow->d_func()->layout : static_cast<QMainWindowLayout *>(0);
+ }
};
+QMainWindowLayout *qt_mainwindow_layout(const QMainWindow *mainWindow)
+{
+ return QMainWindowPrivate::mainWindowLayout(mainWindow);
+}
+
+#ifdef QT_EXPERIMENTAL_CLIENT_DECORATIONS
+Q_GUI_EXPORT void qt_setMainWindowTitleWidget(QMainWindow *mainWindow, Qt::DockWidgetArea area, QWidget *widget)
+{
+ QGridLayout *topLayout = qobject_cast<QGridLayout *>(mainWindow->layout());
+ Q_ASSERT(topLayout);
+
+ int row = 0;
+ int column = 0;
+
+ switch (area) {
+ case Qt::LeftDockWidgetArea:
+ row = 1;
+ column = 0;
+ break;
+ case Qt::TopDockWidgetArea:
+ row = 0;
+ column = 1;
+ break;
+ case Qt::BottomDockWidgetArea:
+ row = 2;
+ column = 1;
+ break;
+ case Qt::RightDockWidgetArea:
+ row = 1;
+ column = 2;
+ break;
+ default:
+ Q_ASSERT_X(false, "qt_setMainWindowTitleWidget", "Unknown area");
+ return;
+ }
+
+ if (QLayoutItem *oldItem = topLayout->itemAtPosition(row, column))
+ delete oldItem->widget();
+ topLayout->addWidget(widget, row, column);
+}
+#endif
+
void QMainWindowPrivate::init()
{
Q_Q(QMainWindow);
- layout = new QMainWindowLayout(q);
+
+#ifdef QT_EXPERIMENTAL_CLIENT_DECORATIONS
+ QGridLayout *topLayout = new QGridLayout(q);
+ topLayout->setContentsMargins(0, 0, 0, 0);
+
+ layout = new QMainWindowLayout(q, topLayout);
+
+ topLayout->addItem(layout, 1, 1);
+#else
+ layout = new QMainWindowLayout(q, 0);
+#endif
+
const int metric = q->style()->pixelMetric(QStyle::PM_ToolBarIconSize, 0, q);
iconSize = QSize(metric, metric);
q->setAttribute(Qt::WA_Hover);
@@ -461,10 +521,11 @@ QMenuBar *QMainWindow::menuBar() const
*/
void QMainWindow::setMenuBar(QMenuBar *menuBar)
{
- Q_D(QMainWindow);
- if (d->layout->menuBar() && d->layout->menuBar() != menuBar) {
+ QLayout *topLayout = layout();
+
+ if (topLayout->menuBar() && topLayout->menuBar() != menuBar) {
// Reparent corner widgets before we delete the old menu bar.
- QMenuBar *oldMenuBar = qobject_cast<QMenuBar *>(d->layout->menuBar());
+ QMenuBar *oldMenuBar = qobject_cast<QMenuBar *>(topLayout->menuBar());
if (menuBar) {
// TopLeftCorner widget.
QWidget *cornerWidget = oldMenuBar->cornerWidget(Qt::TopLeftCorner);
@@ -478,7 +539,7 @@ void QMainWindow::setMenuBar(QMenuBar *menuBar)
oldMenuBar->hide();
oldMenuBar->deleteLater();
}
- d->layout->setMenuBar(menuBar);
+ topLayout->setMenuBar(menuBar);
}
/*!
diff --git a/src/gui/widgets/qmainwindowlayout.cpp b/src/gui/widgets/qmainwindowlayout.cpp
index 62ee398..4dd5208 100644
--- a/src/gui/widgets/qmainwindowlayout.cpp
+++ b/src/gui/widgets/qmainwindowlayout.cpp
@@ -160,7 +160,7 @@ static void dumpLayout(QTextStream &qout, const QDockAreaLayout &layout, QString
void qt_dumpLayout(QTextStream &qout, QMainWindow *window)
{
- QMainWindowLayout *layout = qobject_cast<QMainWindowLayout*>(window->layout());
+ QMainWindowLayout *layout = qt_mainwindow_layout(window);
dumpLayout(qout, layout->layoutState.dockAreaLayout, QString());
}
@@ -235,7 +235,7 @@ void QMainWindowLayoutState::apply(bool animated)
dockAreaLayout.apply(animated);
#else
if (centralWidgetItem != 0) {
- QMainWindowLayout *layout = qobject_cast<QMainWindowLayout*>(mainWindow->layout());
+ QMainWindowLayout *layout = qt_mainwindow_layout(mainWindow);
Q_ASSERT(layout != 0);
layout->widgetAnimator.animate(centralWidgetItem->widget(), centralWidgetRect, animated);
}
@@ -1674,8 +1674,8 @@ void QMainWindowLayout::restore(bool keepSavedState)
updateGapIndicator();
}
-QMainWindowLayout::QMainWindowLayout(QMainWindow *mainwindow)
- : QLayout(mainwindow)
+QMainWindowLayout::QMainWindowLayout(QMainWindow *mainwindow, QLayout *parentLayout)
+ : QLayout(parentLayout ? static_cast<QWidget *>(0) : mainwindow)
, layoutState(mainwindow)
, savedState(mainwindow)
, dockOptions(QMainWindow::AnimatedDocks | QMainWindow::AllowTabbedDocks)
@@ -1698,6 +1698,9 @@ QMainWindowLayout::QMainWindowLayout(QMainWindow *mainwindow)
, blockVisiblityCheck(false)
#endif
{
+ if (parentLayout)
+ setParent(parentLayout);
+
#ifndef QT_NO_DOCKWIDGET
#ifndef QT_NO_TABBAR
sep = mainwindow->style()->pixelMetric(QStyle::PM_DockWidgetSeparatorExtent, 0, mainwindow);
diff --git a/src/gui/widgets/qmainwindowlayout_p.h b/src/gui/widgets/qmainwindowlayout_p.h
index 955693d..e1b981c 100644
--- a/src/gui/widgets/qmainwindowlayout_p.h
+++ b/src/gui/widgets/qmainwindowlayout_p.h
@@ -159,7 +159,7 @@ class Q_AUTOTEST_EXPORT QMainWindowLayout : public QLayout
public:
QMainWindowLayoutState layoutState, savedState;
- explicit QMainWindowLayout(QMainWindow *mainwindow);
+ QMainWindowLayout(QMainWindow *mainwindow, QLayout *parentLayout);
~QMainWindowLayout();
QMainWindow::DockOptions dockOptions;
diff --git a/src/gui/widgets/qtoolbar.cpp b/src/gui/widgets/qtoolbar.cpp
index 7ed27ea..316bb44 100644
--- a/src/gui/widgets/qtoolbar.cpp
+++ b/src/gui/widgets/qtoolbar.cpp
@@ -82,6 +82,9 @@ static void qt_mac_updateToolBarButtonHint(QWidget *parentWidget)
}
#endif
+// qmainwindow.cpp
+extern QMainWindowLayout *qt_mainwindow_layout(const QMainWindow *window);
+
/******************************************************************************
** QToolBarPrivate
*/
@@ -197,7 +200,7 @@ void QToolBarPrivate::initDrag(const QPoint &pos)
QMainWindow *win = qobject_cast<QMainWindow*>(parent);
Q_ASSERT(win != 0);
- QMainWindowLayout *layout = qobject_cast<QMainWindowLayout*>(win->layout());
+ QMainWindowLayout *layout = qt_mainwindow_layout(win);
Q_ASSERT(layout != 0);
if (layout->pluggingWidget != 0) // the main window is animating a docking operation
return;
@@ -223,7 +226,7 @@ void QToolBarPrivate::startDrag(bool moving)
QMainWindow *win = qobject_cast<QMainWindow*>(parent);
Q_ASSERT(win != 0);
- QMainWindowLayout *layout = qobject_cast<QMainWindowLayout*>(win->layout());
+ QMainWindowLayout *layout = qt_mainwindow_layout(win);
Q_ASSERT(layout != 0);
if (!moving) {
@@ -247,8 +250,7 @@ void QToolBarPrivate::endDrag()
q->releaseMouse();
if (state->dragging) {
- QMainWindowLayout *layout =
- qobject_cast<QMainWindowLayout *>(q->parentWidget()->layout());
+ QMainWindowLayout *layout = qt_mainwindow_layout(qobject_cast<QMainWindow *>(q->parentWidget()));
Q_ASSERT(layout != 0);
if (!layout->plug(state->widgetItem)) {
@@ -340,7 +342,7 @@ bool QToolBarPrivate::mouseMoveEvent(QMouseEvent *event)
if (win == 0)
return true;
- QMainWindowLayout *layout = qobject_cast<QMainWindowLayout*>(win->layout());
+ QMainWindowLayout *layout = qt_mainwindow_layout(win);
Q_ASSERT(layout != 0);
if (layout->pluggingWidget == 0
@@ -588,7 +590,7 @@ QToolBar::~QToolBar()
QMainWindow *mainwindow = qobject_cast<QMainWindow *>(parentWidget());
if (mainwindow) {
#ifdef Q_WS_MAC
- QMainWindowLayout *mainwin_layout = qobject_cast<QMainWindowLayout *>(mainwindow->layout());
+ QMainWindowLayout *mainwin_layout = qt_mainwindow_layout(mainwindow);
if (mainwin_layout && mainwin_layout->layoutState.toolBarAreaLayout.isEmpty()
&& mainwindow->testAttribute(Qt::WA_WState_Created))
macWindowToolbarShow(mainwindow, false);
@@ -1135,7 +1137,7 @@ bool QToolBar::event(QEvent *event)
if (toolbarInUnifiedToolBar(this)) {
// I can static_cast because I did the qobject_cast in the if above, therefore
// we must have a QMainWindowLayout here.
- QMainWindowLayout *mwLayout = static_cast<QMainWindowLayout *>(parentWidget()->layout());
+ QMainWindowLayout *mwLayout = qt_mainwindow_layout(qobject_cast<QMainWindow *>(parentWidget()));
mwLayout->fixSizeInUnifiedToolbar(this);
mwLayout->syncUnifiedToolbarVisibility();
}
@@ -1289,6 +1291,8 @@ QWidget *QToolBar::widgetForAction(QAction *action) const
return d->layout->itemAt(index)->widget();
}
+extern QMainWindowLayout *qt_mainwindow_layout(const QMainWindow *window);
+
/*!
\internal
*/
@@ -1315,7 +1319,7 @@ void QToolBar::initStyleOption(QStyleOptionToolBar *option) const
if (!mainWindow)
return;
- QMainWindowLayout *layout = qobject_cast<QMainWindowLayout *>(mainWindow->layout());
+ QMainWindowLayout *layout = qt_mainwindow_layout(mainWindow);
Q_ASSERT_X(layout != 0, "QToolBar::initStyleOption()",
"QMainWindow->layout() != QMainWindowLayout");
diff --git a/src/gui/widgets/qtoolbararealayout.cpp b/src/gui/widgets/qtoolbararealayout.cpp
index 8327af5..b312751 100644
--- a/src/gui/widgets/qtoolbararealayout.cpp
+++ b/src/gui/widgets/qtoolbararealayout.cpp
@@ -59,6 +59,9 @@
QT_BEGIN_NAMESPACE
+// qmainwindow.cpp
+extern QMainWindowLayout *qt_mainwindow_layout(const QMainWindow *mainWindow);
+
QSize QToolBarAreaLayoutItem::minimumSize() const
{
if (skip())
@@ -872,7 +875,7 @@ void QToolBarAreaLayout::insertItem(QToolBar *before, QLayoutItem *item)
void QToolBarAreaLayout::apply(bool animate)
{
- QMainWindowLayout *layout = qobject_cast<QMainWindowLayout*>(mainWindow->layout());
+ QMainWindowLayout *layout = qt_mainwindow_layout(mainWindow);
Q_ASSERT(layout != 0);
Qt::LayoutDirection dir = mainWindow->layoutDirection();
diff --git a/src/gui/widgets/qtoolbarlayout.cpp b/src/gui/widgets/qtoolbarlayout.cpp
index f87510f..59b027e 100644
--- a/src/gui/widgets/qtoolbarlayout.cpp
+++ b/src/gui/widgets/qtoolbarlayout.cpp
@@ -57,6 +57,9 @@
QT_BEGIN_NAMESPACE
+// qmainwindow.cpp
+extern QMainWindowLayout *qt_mainwindow_layout(const QMainWindow *window);
+
/******************************************************************************
** QToolBarItem
*/
@@ -404,7 +407,7 @@ void QToolBarLayout::setGeometry(const QRect &rect)
if (QMainWindow *win = qobject_cast<QMainWindow*>(tb->parentWidget())) {
Qt::ToolBarArea area = win->toolBarArea(tb);
if (win->unifiedTitleAndToolBarOnMac() && area == Qt::TopToolBarArea) {
- static_cast<QMainWindowLayout *>(win->layout())->fixSizeInUnifiedToolbar(tb);
+ qt_mainwindow_layout(win)->fixSizeInUnifiedToolbar(tb);
}
}
# endif
@@ -659,7 +662,7 @@ void QToolBarLayout::setExpanded(bool exp)
#else
animating = !tb->isWindow() && win->isAnimated();
#endif
- QMainWindowLayout *layout = qobject_cast<QMainWindowLayout*>(win->layout());
+ QMainWindowLayout *layout = qt_mainwindow_layout(win);
if (expanded) {
tb->raise();
} else {
diff --git a/src/imports/folderlistmodel/qdeclarativefolderlistmodel.cpp b/src/imports/folderlistmodel/qdeclarativefolderlistmodel.cpp
index 4983840..abab33c 100644
--- a/src/imports/folderlistmodel/qdeclarativefolderlistmodel.cpp
+++ b/src/imports/folderlistmodel/qdeclarativefolderlistmodel.cpp
@@ -167,7 +167,7 @@ QDeclarativeFolderListModel::QDeclarativeFolderListModel(QObject *parent)
connect(&d->model, SIGNAL(rowsRemoved(const QModelIndex&,int,int))
, this, SLOT(removed(const QModelIndex&,int,int)));
connect(&d->model, SIGNAL(dataChanged(const QModelIndex&,const QModelIndex&))
- , this, SLOT(dataChanged(const QModelIndex&,const QModelIndex&)));
+ , this, SLOT(handleDataChanged(const QModelIndex&,const QModelIndex&)));
connect(&d->model, SIGNAL(modelReset()), this, SLOT(refresh()));
connect(&d->model, SIGNAL(layoutChanged()), this, SLOT(refresh()));
}
@@ -363,7 +363,7 @@ void QDeclarativeFolderListModel::removed(const QModelIndex &index, int start, i
}
}
-void QDeclarativeFolderListModel::dataChanged(const QModelIndex &start, const QModelIndex &end)
+void QDeclarativeFolderListModel::handleDataChanged(const QModelIndex &start, const QModelIndex &end)
{
if (start.parent() == d->folderIndex)
emit dataChanged(index(start.row(),0), index(end.row(),0));
diff --git a/src/imports/folderlistmodel/qdeclarativefolderlistmodel.h b/src/imports/folderlistmodel/qdeclarativefolderlistmodel.h
index 1bab5f84..24edecd 100644
--- a/src/imports/folderlistmodel/qdeclarativefolderlistmodel.h
+++ b/src/imports/folderlistmodel/qdeclarativefolderlistmodel.h
@@ -138,7 +138,7 @@ private Q_SLOTS:
void refresh();
void inserted(const QModelIndex &index, int start, int end);
void removed(const QModelIndex &index, int start, int end);
- void dataChanged(const QModelIndex &start, const QModelIndex &end);
+ void handleDataChanged(const QModelIndex &start, const QModelIndex &end);
private:
Q_DISABLE_COPY(QDeclarativeFolderListModel)
diff --git a/src/network/bearer/qbearerengine.cpp b/src/network/bearer/qbearerengine.cpp
index 2f8624a..b074924 100644
--- a/src/network/bearer/qbearerengine.cpp
+++ b/src/network/bearer/qbearerengine.cpp
@@ -58,18 +58,21 @@ QBearerEngine::~QBearerEngine()
it.value()->isValid = false;
it.value()->id.clear();
}
+ snapConfigurations.clear();
for (it = accessPointConfigurations.begin(), end = accessPointConfigurations.end();
it != end; ++it) {
it.value()->isValid = false;
it.value()->id.clear();
}
+ accessPointConfigurations.clear();
for (it = userChoiceConfigurations.begin(), end = userChoiceConfigurations.end();
it != end; ++it) {
it.value()->isValid = false;
it.value()->id.clear();
}
+ userChoiceConfigurations.clear();
}
bool QBearerEngine::requiresPolling() const
diff --git a/src/network/kernel/qauthenticator.cpp b/src/network/kernel/qauthenticator.cpp
index 18cc14e..f97d833 100644
--- a/src/network/kernel/qauthenticator.cpp
+++ b/src/network/kernel/qauthenticator.cpp
@@ -210,19 +210,38 @@ void QAuthenticator::setUser(const QString &user)
switch(d->method) {
case QAuthenticatorPrivate::DigestMd5:
- case QAuthenticatorPrivate::Ntlm:
- if((separatorPosn = user.indexOf(QLatin1String("\\"))) != -1)
- {
+ if((separatorPosn = user.indexOf(QLatin1String("\\"))) != -1) {
//domain name is present
+ d->userDomain.clear();
d->realm = user.left(separatorPosn);
d->user = user.mid(separatorPosn + 1);
} else if((separatorPosn = user.indexOf(QLatin1String("@"))) != -1) {
//domain name is present
+ d->userDomain.clear();
d->realm = user.mid(separatorPosn + 1);
d->user = user.left(separatorPosn);
} else {
d->user = user;
d->realm.clear();
+ d->userDomain.clear();
+ }
+ break;
+
+ case QAuthenticatorPrivate::Ntlm:
+ if((separatorPosn = user.indexOf(QLatin1String("\\"))) != -1) {
+ //domain name is present
+ d->realm.clear();
+ d->userDomain = user.left(separatorPosn);
+ d->user = user.mid(separatorPosn + 1);
+ } else if((separatorPosn = user.indexOf(QLatin1String("@"))) != -1) {
+ //domain name is present
+ d->realm.clear();
+ d->userDomain = user.left(separatorPosn);
+ d->user = user.left(separatorPosn);
+ } else {
+ d->user = user;
+ d->realm.clear();
+ d->userDomain.clear();
}
break;
// For other auth mechanisms, domain name will be part of username
@@ -1178,7 +1197,7 @@ static QByteArray qCreatev2Hash(const QAuthenticatorPrivate *ctx,
// Assuming the user and domain is always unicode in challenge
QByteArray message =
qStringAsUcs2Le(ctx->user.toUpper()) +
- qStringAsUcs2Le(ctx->realm);
+ qStringAsUcs2Le(phase3->domainStr);
phase3->v2Hash = qEncodeHmacMd5(hashKey, message);
}
@@ -1364,9 +1383,6 @@ static QByteArray qNtlmPhase3(QAuthenticatorPrivate *ctx, const QByteArray& phas
bool unicode = ch.flags & NTLMSSP_NEGOTIATE_UNICODE;
- if(ctx->realm.isEmpty())
- ctx->realm = ch.targetNameStr;
-
pb.flags = NTLMSSP_NEGOTIATE_NTLM;
if (unicode)
pb.flags |= NTLMSSP_NEGOTIATE_UNICODE;
@@ -1377,8 +1393,13 @@ static QByteArray qNtlmPhase3(QAuthenticatorPrivate *ctx, const QByteArray& phas
int offset = QNtlmPhase3BlockBase::Size;
Q_ASSERT(QNtlmPhase3BlockBase::Size == sizeof(QNtlmPhase3BlockBase));
- offset = qEncodeNtlmString(pb.domain, offset, ctx->realm, unicode);
- pb.domainStr = ctx->realm;
+ if(ctx->userDomain.isEmpty()) {
+ offset = qEncodeNtlmString(pb.domain, offset, ch.targetNameStr, unicode);
+ pb.domainStr = ch.targetNameStr;
+ } else {
+ offset = qEncodeNtlmString(pb.domain, offset, ctx->userDomain, unicode);
+ pb.domainStr = ctx->userDomain;
+ }
offset = qEncodeNtlmString(pb.user, offset, ctx->user, unicode);
pb.userStr = ctx->user;
diff --git a/src/network/kernel/qauthenticator_p.h b/src/network/kernel/qauthenticator_p.h
index 1096601..4e09360 100644
--- a/src/network/kernel/qauthenticator_p.h
+++ b/src/network/kernel/qauthenticator_p.h
@@ -91,6 +91,7 @@ public:
// ntlm specific
QString workstation;
+ QString userDomain;
QByteArray calculateResponse(const QByteArray &method, const QByteArray &path);
diff --git a/src/opengl/qpixmapdata_gl_p.h b/src/opengl/qpixmapdata_gl_p.h
index 4cb67b0..f000993 100644
--- a/src/opengl/qpixmapdata_gl_p.h
+++ b/src/opengl/qpixmapdata_gl_p.h
@@ -168,6 +168,7 @@ private:
mutable QGLPixmapGLPaintDevice m_glDevice;
friend class QGLPixmapGLPaintDevice;
+ friend class QMeeGoPixmapData;
};
QT_END_NAMESPACE
diff --git a/src/opengl/qwindowsurface_gl.cpp b/src/opengl/qwindowsurface_gl.cpp
index e84bc29..f98dcff 100644
--- a/src/opengl/qwindowsurface_gl.cpp
+++ b/src/opengl/qwindowsurface_gl.cpp
@@ -190,7 +190,10 @@ public:
QGLWidget *shareWidget() {
if (!initializing && !widget && !cleanedUp) {
initializing = true;
- widget = new QGLWidget;
+
+ widget = new QGLWidget(QGLFormat(QGL::SingleBuffer | QGL::NoDepthBuffer | QGL::NoStencilBuffer));
+ widget->resize(1, 1);
+
// We dont need this internal widget to appear in QApplication::topLevelWidgets()
if (QWidgetPrivate::allWidgets)
QWidgetPrivate::allWidgets->remove(widget);
@@ -342,12 +345,14 @@ QGLWindowSurface::~QGLWindowSurface()
void QGLWindowSurface::deleted(QObject *object)
{
- // Make sure that the fbo is destroyed before destroying its context.
- delete d_ptr->fbo;
- d_ptr->fbo = 0;
-
QWidget *widget = qobject_cast<QWidget *>(object);
if (widget) {
+ if (widget == window()) {
+ // Make sure that the fbo is destroyed before destroying its context.
+ delete d_ptr->fbo;
+ d_ptr->fbo = 0;
+ }
+
QWidgetPrivate *widgetPrivate = widget->d_func();
if (widgetPrivate->extraData()) {
union { QGLContext **ctxPtr; void **voidPtr; };
@@ -419,6 +424,8 @@ QPaintDevice *QGLWindowSurface::paintDevice()
QGLContext *ctx = reinterpret_cast<QGLContext *>(window()->d_func()->extraData()->glContext);
ctx->makeCurrent();
+
+ Q_ASSERT(d_ptr->fbo);
return d_ptr->fbo;
}
diff --git a/src/openvg/qpaintengine_vg.cpp b/src/openvg/qpaintengine_vg.cpp
index 75e5a60..1b0c5e8 100644
--- a/src/openvg/qpaintengine_vg.cpp
+++ b/src/openvg/qpaintengine_vg.cpp
@@ -196,7 +196,9 @@ public:
#endif
QTransform transform; // Currently active transform.
- bool simpleTransform; // True if the transform is simple (non-projective).
+ bool affineTransform; // True if the transform is non-projective.
+ bool simpleTransform; // True if the transform is simple translate
+ // or 0, 90, 180, and 270 degree rotation
qreal penScale; // Pen scaling factor from "transform".
QTransform pathTransform; // Calculated VG path transformation.
@@ -372,6 +374,7 @@ void QVGPaintEnginePrivate::init()
roundRectPath = 0;
#endif
+ affineTransform = true;
simpleTransform = true;
pathTransformSet = false;
penScale = 1.0;
@@ -524,12 +527,59 @@ void QVGPaintEnginePrivate::setTransform
vgLoadMatrix(mat);
}
+// Determine if a co-ordinate transform is simple enough to allow
+// rectangle-based clipping with vgMask() and rounding translation
+// to integers. Simple transforms most often result from origin translations.
+static inline bool transformIsSimple(const QTransform& transform)
+{
+ QTransform::TransformationType type = transform.type();
+ if (type == QTransform::TxNone || type == QTransform::TxTranslate) {
+ return true;
+ } else if (type == QTransform::TxScale) {
+ // Check for 0 and 180 degree rotations.
+ // (0 might happen after 4 rotations of 90 degrees).
+ qreal m11 = transform.m11();
+ qreal m12 = transform.m12();
+ qreal m21 = transform.m21();
+ qreal m22 = transform.m22();
+ if (m12 == 0.0f && m21 == 0.0f) {
+ if (m11 == 1.0f && m22 == 1.0f)
+ return true; // 0 degrees
+ else if (m11 == -1.0f && m22 == -1.0f)
+ return true; // 180 degrees.
+ if(m11 == 1.0f && m22 == -1.0f)
+ return true; // 0 degrees inverted y.
+ else if(m11 == -1.0f && m22 == 1.0f)
+ return true; // 180 degrees inverted y.
+ }
+ } else if (type == QTransform::TxRotate) {
+ // Check for 90, and 270 degree rotations.
+ qreal m11 = transform.m11();
+ qreal m12 = transform.m12();
+ qreal m21 = transform.m21();
+ qreal m22 = transform.m22();
+ if (m11 == 0.0f && m22 == 0.0f) {
+ if (m12 == 1.0f && m21 == -1.0f)
+ return true; // 90 degrees.
+ else if (m12 == -1.0f && m21 == 1.0f)
+ return true; // 270 degrees.
+ else if (m12 == -1.0f && m21 == -1.0f)
+ return true; // 90 degrees inverted y.
+ else if (m12 == 1.0f && m21 == 1.0f)
+ return true; // 270 degrees inverted y.
+ }
+ }
+ return false;
+}
+
Q_DECL_IMPORT extern bool qt_scaleForTransform(const QTransform &transform, qreal *scale);
void QVGPaintEnginePrivate::updateTransform(QPaintDevice *pdev)
{
VGfloat devh = pdev->height();
+ simpleTransform = transformIsSimple(transform);
+
// Construct the VG transform by combining the Qt transform with
// the following viewport transformation:
// | 1 0 0 |
@@ -552,9 +602,9 @@ void QVGPaintEnginePrivate::updateTransform(QPaintDevice *pdev)
// so we will have to convert the co-ordinates ourselves.
// Change the matrix to just the viewport transformation.
pathTransform = viewport;
- simpleTransform = false;
+ affineTransform = false;
} else {
- simpleTransform = true;
+ affineTransform = true;
}
pathTransformSet = false;
@@ -583,7 +633,7 @@ VGPath QVGPaintEnginePrivate::vectorPathToVGPath(const QVectorPath& path)
// Size is sufficient segments for drawRoundedRect() paths.
QVarLengthArray<VGubyte, 20> segments;
- if (sizeof(qreal) == sizeof(VGfloat) && elements && simpleTransform) {
+ if (sizeof(qreal) == sizeof(VGfloat) && elements && affineTransform) {
// If Qt was compiled with qreal the same size as VGfloat,
// then convert the segment types and use the incoming
// points array directly.
@@ -618,7 +668,7 @@ VGPath QVGPaintEnginePrivate::vectorPathToVGPath(const QVectorPath& path)
int curvePos = 0;
QPointF temp;
- if (elements && simpleTransform) {
+ if (elements && affineTransform) {
// Convert the members of the element array.
for (int i = 0; i < count; ++i) {
switch (elements[i]) {
@@ -662,7 +712,7 @@ VGPath QVGPaintEnginePrivate::vectorPathToVGPath(const QVectorPath& path)
}
points += 2;
}
- } else if (elements && !simpleTransform) {
+ } else if (elements && !affineTransform) {
// Convert the members of the element array after applying the
// current transform to the path locally.
for (int i = 0; i < count; ++i) {
@@ -711,7 +761,7 @@ VGPath QVGPaintEnginePrivate::vectorPathToVGPath(const QVectorPath& path)
}
points += 2;
}
- } else if (count > 0 && simpleTransform) {
+ } else if (count > 0 && affineTransform) {
// If there is no element array, then the path is assumed
// to be a MoveTo followed by several LineTo's.
coords.append(points[0]);
@@ -724,7 +774,7 @@ VGPath QVGPaintEnginePrivate::vectorPathToVGPath(const QVectorPath& path)
segments.append(VG_LINE_TO_ABS);
--count;
}
- } else if (count > 0 && !simpleTransform) {
+ } else if (count > 0 && !affineTransform) {
// Convert a simple path, and apply the transform locally.
temp = transform.map(QPointF(points[0], points[1]));
coords.append(temp.x());
@@ -785,7 +835,7 @@ VGPath QVGPaintEnginePrivate::painterPathToVGPath(const QPainterPath& path)
bool haveStart = false;
bool haveEnd = false;
- if (simpleTransform) {
+ if (affineTransform) {
// Convert the members of the element array.
for (int i = 0; i < count; ++i) {
switch (elements[i].type) {
@@ -1560,36 +1610,6 @@ void QVGPaintEngine::stroke(const QVectorPath &path, const QPen &pen)
vgDestroyPath(vgpath);
}
-// Determine if a co-ordinate transform is simple enough to allow
-// rectangle-based clipping with vgMask(). Simple transforms most
-// often result from origin translations.
-static inline bool clipTransformIsSimple(const QTransform& transform)
-{
- QTransform::TransformationType type = transform.type();
- if (type == QTransform::TxNone || type == QTransform::TxTranslate)
- return true;
- if (type == QTransform::TxRotate) {
- // Check for 0, 90, 180, and 270 degree rotations.
- // (0 might happen after 4 rotations of 90 degrees).
- qreal m11 = transform.m11();
- qreal m12 = transform.m12();
- qreal m21 = transform.m21();
- qreal m22 = transform.m22();
- if (m11 == 0.0f && m22 == 0.0f) {
- if (m12 == 1.0f && m21 == -1.0f)
- return true; // 90 degrees.
- else if (m12 == -1.0f && m21 == 1.0f)
- return true; // 270 degrees.
- } else if (m12 == 0.0f && m21 == 0.0f) {
- if (m11 == -1.0f && m22 == -1.0f)
- return true; // 180 degrees.
- else if (m11 == 1.0f && m22 == 1.0f)
- return true; // 0 degrees.
- }
- }
- return false;
-}
-
#if defined(QVG_SCISSOR_CLIP)
void QVGPaintEngine::clip(const QVectorPath &path, Qt::ClipOperation op)
@@ -1607,7 +1627,7 @@ void QVGPaintEngine::clip(const QVectorPath &path, Qt::ClipOperation op)
// We aren't using masking, so handle simple QRectF's only.
if (path.shape() == QVectorPath::RectangleHint &&
- path.elementCount() == 4 && clipTransformIsSimple(d->transform)) {
+ path.elementCount() == 4 && d->simpleTransform) {
// Clipping region that resulted from QPainter::setClipRect(QRectF).
// Convert it into a QRect and apply.
const qreal *points = path.points();
@@ -1757,7 +1777,7 @@ void QVGPaintEngine::clip(const QVectorPath &path, Qt::ClipOperation op)
// We don't have vgRenderToMask(), so handle simple QRectF's only.
if (path.shape() == QVectorPath::RectangleHint &&
- path.elementCount() == 4 && clipTransformIsSimple(d->transform)) {
+ path.elementCount() == 4 && d->simpleTransform) {
// Clipping region that resulted from QPainter::setClipRect(QRectF).
// Convert it into a QRect and apply.
const qreal *points = path.points();
@@ -1809,7 +1829,7 @@ void QVGPaintEngine::clip(const QRect &rect, Qt::ClipOperation op)
d->dirty |= QPaintEngine::DirtyClipRegion;
// If we have a non-simple transform, then use path-based clipping.
- if (op != Qt::NoClip && !clipTransformIsSimple(d->transform)) {
+ if (op != Qt::NoClip && !d->simpleTransform) {
QPaintEngineEx::clip(rect, op);
return;
}
@@ -1928,7 +1948,7 @@ void QVGPaintEngine::clip(const QRegion &region, Qt::ClipOperation op)
d->dirty |= QPaintEngine::DirtyClipRegion;
// If we have a non-simple transform, then use path-based clipping.
- if (op != Qt::NoClip && !clipTransformIsSimple(d->transform)) {
+ if (op != Qt::NoClip && !d->simpleTransform) {
QPaintEngineEx::clip(region, op);
return;
}
@@ -2505,14 +2525,14 @@ void QVGPaintEngine::fillRect(const QRectF &rect, const QBrush &brush)
// Check to see if we can use vgClear() for faster filling.
if (brush.style() == Qt::SolidPattern && brush.isOpaque() &&
- clipTransformIsSimple(d->transform) && d->opacity == 1.0f &&
+ d->simpleTransform && d->opacity == 1.0f &&
clearRect(rect, brush.color())) {
return;
}
#if !defined(QVG_NO_MODIFY_PATH)
VGfloat coords[8];
- if (d->simpleTransform) {
+ if (d->affineTransform) {
coords[0] = rect.x();
coords[1] = rect.y();
coords[2] = rect.x() + rect.width();
@@ -2547,14 +2567,14 @@ void QVGPaintEngine::fillRect(const QRectF &rect, const QColor &color)
Q_D(QVGPaintEngine);
// Check to see if we can use vgClear() for faster filling.
- if (clipTransformIsSimple(d->transform) && d->opacity == 1.0f && color.alpha() == 255 &&
+ if (d->simpleTransform && d->opacity == 1.0f && color.alpha() == 255 &&
clearRect(rect, color)) {
return;
}
#if !defined(QVG_NO_MODIFY_PATH)
VGfloat coords[8];
- if (d->simpleTransform) {
+ if (d->affineTransform) {
coords[0] = rect.x();
coords[1] = rect.y();
coords[2] = rect.x() + rect.width();
@@ -2587,7 +2607,7 @@ void QVGPaintEngine::fillRect(const QRectF &rect, const QColor &color)
void QVGPaintEngine::drawRoundedRect(const QRectF &rect, qreal xrad, qreal yrad, Qt::SizeMode mode)
{
Q_D(QVGPaintEngine);
- if (d->simpleTransform) {
+ if (d->affineTransform) {
QVGPainterState *s = state();
VGPath vgpath = d->roundedRectPath(rect, xrad, yrad, mode);
d->draw(vgpath, s->pen, s->brush);
@@ -2606,7 +2626,7 @@ void QVGPaintEngine::drawRects(const QRect *rects, int rectCount)
QVGPainterState *s = state();
for (int i = 0; i < rectCount; ++i, ++rects) {
VGfloat coords[8];
- if (d->simpleTransform) {
+ if (d->affineTransform) {
coords[0] = rects->x();
coords[1] = rects->y();
coords[2] = rects->x() + rects->width();
@@ -2647,7 +2667,7 @@ void QVGPaintEngine::drawRects(const QRectF *rects, int rectCount)
QVGPainterState *s = state();
for (int i = 0; i < rectCount; ++i, ++rects) {
VGfloat coords[8];
- if (d->simpleTransform) {
+ if (d->affineTransform) {
coords[0] = rects->x();
coords[1] = rects->y();
coords[2] = rects->x() + rects->width();
@@ -2685,7 +2705,7 @@ void QVGPaintEngine::drawLines(const QLine *lines, int lineCount)
QVGPainterState *s = state();
for (int i = 0; i < lineCount; ++i, ++lines) {
VGfloat coords[4];
- if (d->simpleTransform) {
+ if (d->affineTransform) {
coords[0] = lines->x1();
coords[1] = lines->y1();
coords[2] = lines->x2();
@@ -2713,7 +2733,7 @@ void QVGPaintEngine::drawLines(const QLineF *lines, int lineCount)
QVGPainterState *s = state();
for (int i = 0; i < lineCount; ++i, ++lines) {
VGfloat coords[4];
- if (d->simpleTransform) {
+ if (d->affineTransform) {
coords[0] = lines->x1();
coords[1] = lines->y1();
coords[2] = lines->x2();
@@ -2739,7 +2759,7 @@ void QVGPaintEngine::drawEllipse(const QRectF &r)
// Based on the description of vguEllipse() in the OpenVG specification.
// We don't use vguEllipse(), to avoid unnecessary library dependencies.
Q_D(QVGPaintEngine);
- if (d->simpleTransform) {
+ if (d->affineTransform) {
QVGPainterState *s = state();
VGPath path = vgCreatePath(VG_PATH_FORMAT_STANDARD,
VG_PATH_DATATYPE_F,
@@ -2812,7 +2832,7 @@ void QVGPaintEngine::drawPoints(const QPointF *points, int pointCount)
for (int i = 0; i < pointCount; ++i, ++points) {
VGfloat coords[4];
- if (d->simpleTransform) {
+ if (d->affineTransform) {
coords[0] = points->x();
coords[1] = points->y();
coords[2] = coords[0];
@@ -2846,7 +2866,7 @@ void QVGPaintEngine::drawPoints(const QPoint *points, int pointCount)
for (int i = 0; i < pointCount; ++i, ++points) {
VGfloat coords[4];
- if (d->simpleTransform) {
+ if (d->affineTransform) {
coords[0] = points->x();
coords[1] = points->y();
coords[2] = coords[0];
@@ -2880,7 +2900,7 @@ void QVGPaintEngine::drawPolygon(const QPointF *points, int pointCount, PolygonD
QVarLengthArray<VGfloat, 16> coords;
QVarLengthArray<VGubyte, 10> segments;
for (int i = 0; i < pointCount; ++i, ++points) {
- if (d->simpleTransform) {
+ if (d->affineTransform) {
coords.append(points->x());
coords.append(points->y());
} else {
@@ -2927,7 +2947,7 @@ void QVGPaintEngine::drawPolygon(const QPoint *points, int pointCount, PolygonDr
QVarLengthArray<VGfloat, 16> coords;
QVarLengthArray<VGubyte, 10> segments;
for (int i = 0; i < pointCount; ++i, ++points) {
- if (d->simpleTransform) {
+ if (d->affineTransform) {
coords.append(points->x());
coords.append(points->y());
} else {
@@ -2962,7 +2982,7 @@ void QVGPaintEngine::drawPolygon(const QPoint *points, int pointCount, PolygonDr
void QVGPaintEnginePrivate::setImageOptions()
{
- if (opacity != 1.0f && simpleTransform) {
+ if (opacity != 1.0f && affineTransform) {
if (opacity != paintOpacity) {
VGfloat values[4];
values[0] = 1.0f;
@@ -3009,7 +3029,10 @@ static void drawVGImage(QVGPaintEnginePrivate *d,
QTransform transform(d->imageTransform);
VGfloat scaleX = sr.width() == 0.0f ? 0.0f : r.width() / sr.width();
VGfloat scaleY = sr.height() == 0.0f ? 0.0f : r.height() / sr.height();
- transform.translate(r.x(), r.y());
+ if (d->simpleTransform)
+ transform.translate(qRound(r.x()), qRound(r.y()));
+ else
+ transform.translate(r.x(), r.y());
transform.scale(scaleX, scaleY);
d->setTransform(VG_MATRIX_IMAGE_USER_TO_SURFACE, transform);
@@ -3027,7 +3050,10 @@ static void drawVGImage(QVGPaintEnginePrivate *d,
return;
QTransform transform(d->imageTransform);
- transform.translate(pos.x(), pos.y());
+ if(d->simpleTransform)
+ transform.translate(qRound(pos.x()), qRound(pos.y()));
+ else
+ transform.translate(pos.x(), pos.y());
d->setTransform(VG_MATRIX_IMAGE_USER_TO_SURFACE, transform);
d->setImageOptions();
@@ -3070,7 +3096,7 @@ void QVGPaintEngine::drawPixmap(const QRectF &r, const QPixmap &pm, const QRectF
QVGPixmapData *vgpd = static_cast<QVGPixmapData *>(pd);
if (!vgpd->isValid())
return;
- if (d->simpleTransform)
+ if (d->affineTransform)
drawVGImage(d, r, vgpd->toVGImage(), vgpd->size(), sr);
else
drawVGImage(d, r, vgpd->toVGImage(d->opacity), vgpd->size(), sr);
@@ -3089,7 +3115,7 @@ void QVGPaintEngine::drawPixmap(const QPointF &pos, const QPixmap &pm)
QVGPixmapData *vgpd = static_cast<QVGPixmapData *>(pd);
if (!vgpd->isValid())
return;
- if (d->simpleTransform)
+ if (d->affineTransform)
drawVGImage(d, pos, vgpd->toVGImage());
else
drawVGImage(d, pos, vgpd->toVGImage(d->opacity));
@@ -3104,7 +3130,7 @@ void QVGPaintEngine::drawImage
{
Q_D(QVGPaintEngine);
VGImage vgImg;
- if (d->simpleTransform || d->opacity == 1.0f)
+ if (d->affineTransform || d->opacity == 1.0f)
vgImg = toVGImageSubRect(image, sr.toRect(), flags);
else
vgImg = toVGImageWithOpacitySubRect(image, d->opacity, sr.toRect());
@@ -3127,7 +3153,7 @@ void QVGPaintEngine::drawImage(const QPointF &pos, const QImage &image)
{
Q_D(QVGPaintEngine);
VGImage vgImg;
- if (d->simpleTransform || d->opacity == 1.0f)
+ if (d->affineTransform || d->opacity == 1.0f)
vgImg = toVGImage(image);
else
vgImg = toVGImageWithOpacity(image, d->opacity);
@@ -3160,7 +3186,7 @@ void QVGPaintEngine::drawPixmapFragments(const QPainter::PixmapFragment *drawing
QPixmapData *pd = pixmap.pixmapData();
if (!pd)
return; // null QPixmap
- if (pd->classId() != QPixmapData::OpenVGClass || !d->simpleTransform) {
+ if (pd->classId() != QPixmapData::OpenVGClass || !d->affineTransform) {
QPaintEngineEx::drawPixmapFragments(drawingData, dataCount, pixmap, hints);
return;
}
@@ -3385,7 +3411,7 @@ void QVGPaintEngine::drawTextItem(const QPointF &p, const QTextItem &textItem)
// If we are not using a simple transform, then fall back
// to the default Qt path stroking algorithm.
- if (!d->simpleTransform) {
+ if (!d->affineTransform) {
QPaintEngineEx::drawTextItem(p, textItem);
return;
}
diff --git a/src/openvg/qvg_symbian.cpp b/src/openvg/qvg_symbian.cpp
index 0e6e773..ef0160c 100644
--- a/src/openvg/qvg_symbian.cpp
+++ b/src/openvg/qvg_symbian.cpp
@@ -112,25 +112,8 @@ static VGImage sgImageToVGImage(QEglContext *context, const RSgImage &sgImage)
VGImage vgImage = VG_INVALID_HANDLE;
- TInt err = 0;
-
- RSgDriver driver;
- err = driver.Open();
- if (err != KErrNone) {
- return vgImage;
- }
-
- if (sgImage.IsNull()) {
- driver.Close();
- return vgImage;
- }
-
- TSgImageInfo sgImageInfo;
- err = sgImage.GetInfo(sgImageInfo);
- if (err != KErrNone) {
- driver.Close();
+ if (sgImage.IsNull())
return vgImage;
- }
const EGLint KEglImageAttribs[] = {EGL_IMAGE_PRESERVED_SYMBIAN, EGL_TRUE, EGL_NONE};
EGLImageKHR eglImage = QEgl::eglCreateImageKHR(QEgl::display(),
@@ -139,22 +122,12 @@ static VGImage sgImageToVGImage(QEglContext *context, const RSgImage &sgImage)
(EGLClientBuffer)&sgImage,
(EGLint*)KEglImageAttribs);
- if (!eglImage || eglGetError() != EGL_SUCCESS) {
- driver.Close();
+ if (!eglImage)
return vgImage;
- }
vgImage = QVG::vgCreateEGLImageTargetKHR(eglImage);
- if (!vgImage || vgGetError() != VG_NO_ERROR) {
- QEgl::eglDestroyImageKHR(QEgl::display(), eglImage);
- driver.Close();
- return vgImage;
- }
- //setSerialNumber(++qt_vg_pixmap_serial);
- // release stuff
QEgl::eglDestroyImageKHR(QEgl::display(), eglImage);
- driver.Close();
return vgImage;
}
#endif
diff --git a/src/openvg/qvgimagepool.cpp b/src/openvg/qvgimagepool.cpp
index 78277aa..0c236ea 100644
--- a/src/openvg/qvgimagepool.cpp
+++ b/src/openvg/qvgimagepool.cpp
@@ -154,16 +154,23 @@ bool QVGImagePool::reclaimSpace(VGImageFormat format,
Q_UNUSED(width);
Q_UNUSED(height);
- if (data)
+ bool succeeded = false;
+ bool wasInLRU = false;
+ if (data) {
+ wasInLRU = data->inLRU;
moveToHeadOfLRU(data);
+ }
QVGPixmapData *lrudata = pixmapLRU();
if (lrudata && lrudata != data) {
lrudata->reclaimImages();
- return true;
+ succeeded = true;
}
- return false;
+ if (data && !wasInLRU)
+ removeFromLRU(data);
+
+ return succeeded;
}
void QVGImagePool::hibernate()
diff --git a/src/plugins/bearer/bearer.pro b/src/plugins/bearer/bearer.pro
index bbe8ab1..d1d75f0 100644
--- a/src/plugins/bearer/bearer.pro
+++ b/src/plugins/bearer/bearer.pro
@@ -3,9 +3,9 @@ TEMPLATE = subdirs
contains(QT_CONFIG, dbus) {
contains(QT_CONFIG, icd) {
SUBDIRS += icd
- } else {
+ } else:linux* {
SUBDIRS += generic
- linux*:SUBDIRS += connman networkmanager
+ SUBDIRS += connman networkmanager
}
}
@@ -16,4 +16,4 @@ macx:contains(QT_CONFIG, corewlan):SUBDIRS += corewlan
macx:SUBDIRS += generic
symbian:SUBDIRS += symbian
-isEmpty(SUBDIRS):SUBDIRS += generic
+isEmpty(SUBDIRS):SUBDIRS = generic
diff --git a/src/plugins/bearer/connman/qofonoservice_linux_p.h b/src/plugins/bearer/connman/qofonoservice_linux_p.h
index 4892666..0ac1e4a 100644
--- a/src/plugins/bearer/connman/qofonoservice_linux_p.h
+++ b/src/plugins/bearer/connman/qofonoservice_linux_p.h
@@ -329,4 +329,6 @@ Q_SIGNALS:
void incomingMessage(const QString &message, const QVariantMap &info);
};
+QT_END_NAMESPACE
+
#endif //QOFONOSERVICE_H
diff --git a/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp b/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp
index 29445ce..554f9b7 100644
--- a/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp
+++ b/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp
@@ -97,6 +97,10 @@ QNetworkManagerEngine::QNetworkManagerEngine(QObject *parent)
QNetworkManagerEngine::~QNetworkManagerEngine()
{
+ qDeleteAll(connections);
+ qDeleteAll(accessPoints);
+ qDeleteAll(wirelessDevices);
+ qDeleteAll(activeConnections);
}
void QNetworkManagerEngine::initialize()
@@ -389,7 +393,7 @@ void QNetworkManagerEngine::deviceRemoved(const QDBusObjectPath &path)
{
QMutexLocker locker(&mutex);
- delete wirelessDevices.value(path.path());
+ delete wirelessDevices.take(path.path());
}
void QNetworkManagerEngine::newConnection(const QDBusObjectPath &path,
@@ -455,6 +459,8 @@ void QNetworkManagerEngine::removeConnection(const QString &path)
QNetworkConfigurationPrivatePointer ptr = accessPointConfigurations.take(id);
+ connection->deleteLater();
+
locker.unlock();
emit configurationRemoved(ptr);
}
@@ -631,7 +637,8 @@ void QNetworkManagerEngine::removeAccessPoint(const QString &path,
locker.unlock();
emit configurationChanged(ptr);
- return;
+ locker.relock();
+ break;
}
}
} else {
diff --git a/src/plugins/bearer/networkmanager/qnetworkmanagerservice.cpp b/src/plugins/bearer/networkmanager/qnetworkmanagerservice.cpp
index f47c97c..499fe5a 100644
--- a/src/plugins/bearer/networkmanager/qnetworkmanagerservice.cpp
+++ b/src/plugins/bearer/networkmanager/qnetworkmanagerservice.cpp
@@ -743,8 +743,6 @@ bool QNetworkManagerSettingsConnection::isAutoConnect()
quint64 QNetworkManagerSettingsConnection::getTimestamp()
{
- qDebug() << d->settingsMap.value(QLatin1String("connection"));
-
return d->settingsMap.value(QLatin1String("connection"))
.value(QLatin1String("timestamp")).toUInt();
}
diff --git a/src/plugins/graphicssystems/graphicssystems.pro b/src/plugins/graphicssystems/graphicssystems.pro
index 0788933..29a1f34 100644
--- a/src/plugins/graphicssystems/graphicssystems.pro
+++ b/src/plugins/graphicssystems/graphicssystems.pro
@@ -7,3 +7,7 @@ contains(QT_CONFIG, shivavg) {
# Only works under X11 at present
!win32:!embedded:!mac:SUBDIRS += shivavg
}
+
+!win32:!embedded:!mac:!symbian:CONFIG += x11
+
+x11:contains(QT_CONFIG, opengles2):contains(QT_CONFIG, egl):SUBDIRS += meego
diff --git a/src/plugins/graphicssystems/meego/meego.pro b/src/plugins/graphicssystems/meego/meego.pro
new file mode 100644
index 0000000..d750d34
--- /dev/null
+++ b/src/plugins/graphicssystems/meego/meego.pro
@@ -0,0 +1,13 @@
+TARGET = qmeegographicssystem
+include(../../qpluginbase.pri)
+
+QT += gui opengl
+
+QTDIR_build:DESTDIR = $$QT_BUILD_TREE/plugins/graphicssystems
+
+HEADERS = qmeegographicssystem.h qmeegopixmapdata.h qmeegoextensions.h
+SOURCES = qmeegographicssystem.cpp qmeegographicssystem.h qmeegographicssystemplugin.h qmeegographicssystemplugin.cpp qmeegopixmapdata.h qmeegopixmapdata.cpp qmeegoextensions.h qmeegoextensions.cpp
+
+target.path += $$[QT_INSTALL_PLUGINS]/graphicssystems
+INSTALLS += target
+
diff --git a/src/plugins/graphicssystems/meego/qmeegoextensions.cpp b/src/plugins/graphicssystems/meego/qmeegoextensions.cpp
new file mode 100644
index 0000000..e7f6439
--- /dev/null
+++ b/src/plugins/graphicssystems/meego/qmeegoextensions.cpp
@@ -0,0 +1,129 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qmeegoextensions.h"
+#include <private/qeglcontext_p.h>
+#include <private/qpixmapdata_gl_p.h>
+
+bool QMeeGoExtensions::initialized = false;
+bool QMeeGoExtensions::hasImageShared = false;
+bool QMeeGoExtensions::hasSurfaceScaling = false;
+
+/* Extension funcs */
+
+typedef EGLBoolean (EGLAPIENTRY *eglQueryImageNOKFunc)(EGLDisplay, EGLImageKHR, EGLint, EGLint*);
+typedef EGLNativeSharedImageTypeNOK (EGLAPIENTRY *eglCreateSharedImageNOKFunc)(EGLDisplay, EGLImageKHR, EGLint*);
+typedef EGLBoolean (EGLAPIENTRY *eglDestroySharedImageNOKFunc)(EGLDisplay, EGLNativeSharedImageTypeNOK);
+typedef EGLBoolean (EGLAPIENTRY *eglSetSurfaceScalingNOKFunc)(EGLDisplay, EGLSurface, EGLint, EGLint, EGLint, EGLint);
+
+static eglQueryImageNOKFunc _eglQueryImageNOK = 0;
+static eglCreateSharedImageNOKFunc _eglCreateSharedImageNOK = 0;
+static eglDestroySharedImageNOKFunc _eglDestroySharedImageNOK = 0;
+static eglSetSurfaceScalingNOKFunc _eglSetSurfaceScalingNOK = 0;
+
+/* Public */
+
+void QMeeGoExtensions::ensureInitialized()
+{
+ if (!initialized)
+ initialize();
+
+ initialized = true;
+}
+
+EGLNativeSharedImageTypeNOK QMeeGoExtensions::eglCreateSharedImageNOK(EGLDisplay dpy, EGLImageKHR image, EGLint *props)
+{
+ if (! hasImageShared)
+ qFatal("EGL_NOK_image_shared not found but trying to use capability!");
+
+ return _eglCreateSharedImageNOK(dpy, image, props);
+}
+
+bool QMeeGoExtensions::eglQueryImageNOK(EGLDisplay dpy, EGLImageKHR image, EGLint prop, EGLint *v)
+{
+ if (! hasImageShared)
+ qFatal("EGL_NOK_image_shared not found but trying to use capability!");
+
+ return _eglQueryImageNOK(dpy, image, prop, v);
+}
+
+bool QMeeGoExtensions::eglDestroySharedImageNOK(EGLDisplay dpy, EGLNativeSharedImageTypeNOK img)
+{
+ if (! hasImageShared)
+ qFatal("EGL_NOK_image_shared not found but trying to use capability!");
+
+ return _eglDestroySharedImageNOK(dpy, img);
+}
+
+bool QMeeGoExtensions::eglSetSurfaceScalingNOK(EGLDisplay dpy, EGLSurface surface, int x, int y, int width, int height)
+{
+ if (! hasSurfaceScaling)
+ qFatal("EGL_NOK_surface_scaling not found but trying to use capability!");
+
+ return _eglSetSurfaceScalingNOK(dpy, surface, x, y, width, height);
+}
+
+/* Private */
+
+void QMeeGoExtensions::initialize()
+{
+ QGLContext *ctx = (QGLContext *) QGLContext::currentContext();
+ qt_resolve_eglimage_gl_extensions(ctx);
+
+ if (QEgl::hasExtension("EGL_NOK_image_shared")) {
+ qDebug("MeegoGraphics: found EGL_NOK_image_shared");
+ _eglQueryImageNOK = (eglQueryImageNOKFunc) eglGetProcAddress("eglQueryImageNOK");
+ _eglCreateSharedImageNOK = (eglCreateSharedImageNOKFunc) eglGetProcAddress("eglCreateSharedImageNOK");
+ _eglDestroySharedImageNOK = (eglDestroySharedImageNOKFunc) eglGetProcAddress("eglDestroySharedImageNOK");
+
+ Q_ASSERT(_eglQueryImageNOK && _eglCreateSharedImageNOK && _eglDestroySharedImageNOK);
+ hasImageShared = true;
+ }
+
+ if (QEgl::hasExtension("EGL_NOK_surface_scaling")) {
+ qDebug("MeegoGraphics: found EGL_NOK_surface_scaling");
+ _eglSetSurfaceScalingNOK = (eglSetSurfaceScalingNOKFunc) eglGetProcAddress("eglSetSurfaceScalingNOK");
+
+ Q_ASSERT(_eglSetSurfaceScalingNOK);
+ hasSurfaceScaling = true;
+ }
+}
+
diff --git a/src/plugins/graphicssystems/meego/qmeegoextensions.h b/src/plugins/graphicssystems/meego/qmeegoextensions.h
new file mode 100644
index 0000000..7f219de
--- /dev/null
+++ b/src/plugins/graphicssystems/meego/qmeegoextensions.h
@@ -0,0 +1,89 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef MEXTENSIONS_H
+#define MEXTENSIONS_H
+
+#include <EGL/egl.h>
+#include <EGL/eglext.h>
+#include <GLES2/gl2.h>
+#include <GLES2/gl2ext.h>
+#include <private/qgl_p.h>
+#include <private/qeglcontext_p.h>
+#include <private/qpixmapdata_gl_p.h>
+
+/* Extensions decls */
+
+#ifndef EGL_SHARED_IMAGE_NOK
+#define EGL_SHARED_IMAGE_NOK 0x30DA
+typedef void* EGLNativeSharedImageTypeNOK;
+#endif
+
+#ifndef EGL_GL_TEXTURE_2D_KHR
+#define EGL_GL_TEXTURE_2D_KHR 0x30B1
+#endif
+
+#ifndef EGL_FIXED_WIDTH_NOK
+#define EGL_FIXED_WIDTH_NOK 0x30DB
+#define EGL_FIXED_HEIGHT_NOK 0x30DC
+#endif
+
+/* Class */
+
+class QMeeGoExtensions
+{
+public:
+ static void ensureInitialized();
+
+ static EGLNativeSharedImageTypeNOK eglCreateSharedImageNOK(EGLDisplay dpy, EGLImageKHR image, EGLint *props);
+ static bool eglQueryImageNOK(EGLDisplay dpy, EGLImageKHR image, EGLint prop, EGLint *v);
+ static bool eglDestroySharedImageNOK(EGLDisplay dpy, EGLNativeSharedImageTypeNOK img);
+ static bool eglSetSurfaceScalingNOK(EGLDisplay dpy, EGLSurface surface, int x, int y, int width, int height);
+
+private:
+ static void initialize();
+
+ static bool initialized;
+ static bool hasImageShared;
+ static bool hasSurfaceScaling;
+};
+
+#endif
diff --git a/src/plugins/graphicssystems/meego/qmeegographicssystem.cpp b/src/plugins/graphicssystems/meego/qmeegographicssystem.cpp
new file mode 100644
index 0000000..e2c8425
--- /dev/null
+++ b/src/plugins/graphicssystems/meego/qmeegographicssystem.cpp
@@ -0,0 +1,248 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QDebug>
+#include <private/qpixmap_raster_p.h>
+#include <private/qwindowsurface_gl_p.h>
+#include <private/qegl_p.h>
+#include <private/qglextensions_p.h>
+#include <private/qgl_p.h>
+#include <private/qimagepixmapcleanuphooks_p.h>
+#include <private/qapplication_p.h>
+#include <private/qgraphicssystem_runtime_p.h>
+#include <private/qimage_p.h>
+#include <private/qeglproperties_p.h>
+#include <private/qeglcontext_p.h>
+
+#include "qmeegopixmapdata.h"
+#include "qmeegographicssystem.h"
+#include "qmeegoextensions.h"
+
+bool QMeeGoGraphicsSystem::surfaceWasCreated = false;
+
+QMeeGoGraphicsSystem::QMeeGoGraphicsSystem()
+{
+ qDebug("Using the meego graphics system");
+}
+
+QMeeGoGraphicsSystem::~QMeeGoGraphicsSystem()
+{
+ qDebug("Meego graphics system destroyed");
+ qt_destroy_gl_share_widget();
+}
+
+QWindowSurface* QMeeGoGraphicsSystem::createWindowSurface(QWidget *widget) const
+{
+ QMeeGoGraphicsSystem::surfaceWasCreated = true;
+ QWindowSurface *surface = new QGLWindowSurface(widget);
+ surface->window()->setAttribute(Qt::WA_NoSystemBackground);
+ return surface;
+}
+
+QPixmapData *QMeeGoGraphicsSystem::createPixmapData(QPixmapData::PixelType type) const
+{
+ // Long story short: without this it's possible to hit an
+ // unitialized paintDevice due to a Qt bug too complex to even
+ // explain here... not to mention fix without going crazy.
+ // MDK
+ QGLShareContextScope ctx(qt_gl_share_widget()->context());
+
+ return new QRasterPixmapData(type);
+}
+
+QPixmapData *QMeeGoGraphicsSystem::createPixmapData(QPixmapData *origin)
+{
+ // If the pixmap is a raster type...
+ // and if the pixmap pointer matches our mapping...
+ // create a shared image instead with the given handle.
+
+ if (origin->classId() == QPixmapData::RasterClass) {
+ QRasterPixmapData *rasterClass = static_cast <QRasterPixmapData *> (origin);
+ void *rawResource = static_cast <void *> (rasterClass->buffer()->data_ptr()->data);
+
+ if (QMeeGoPixmapData::sharedImagesMap.contains(rawResource))
+ return new QMeeGoPixmapData();
+ }
+
+ return new QRasterPixmapData(origin->pixelType());
+}
+
+QPixmapData* QMeeGoGraphicsSystem::wrapPixmapData(QPixmapData *pmd)
+{
+ QString name = QApplicationPrivate::instance()->graphics_system_name;
+ if (name == "runtime") {
+ QRuntimeGraphicsSystem *rsystem = (QRuntimeGraphicsSystem *) QApplicationPrivate::instance()->graphics_system;
+ QRuntimePixmapData *rt = new QRuntimePixmapData(rsystem, pmd->pixelType());;
+ rt->m_data = pmd;
+ rt->readBackInfo();
+ rsystem->m_pixmapDatas << rt;
+ return rt;
+ } else
+ return pmd;
+}
+
+void QMeeGoGraphicsSystem::setSurfaceFixedSize(int /*width*/, int /*height*/)
+{
+ if (QMeeGoGraphicsSystem::surfaceWasCreated)
+ qWarning("Trying to set surface fixed size but surface already created!");
+
+#ifdef QT_WAS_PATCHED
+ QEglProperties *properties = new QEglProperties();
+ properties->setValue(EGL_FIXED_WIDTH_NOK, width);
+ properties->setValue(EGL_FIXED_HEIGHT_NOK, height);
+ QGLContextPrivate::setExtraWindowSurfaceCreationProps(properties);
+#endif
+}
+
+void QMeeGoGraphicsSystem::setSurfaceScaling(int x, int y, int width, int height)
+{
+ QMeeGoExtensions::ensureInitialized();
+ QMeeGoExtensions::eglSetSurfaceScalingNOK(QEgl::display(), QEglContext::currentContext(QEgl::OpenGL)->currentSurface, x, y, width, height);
+}
+
+void QMeeGoGraphicsSystem::setTranslucent(bool translucent)
+{
+ QGLWindowSurface::surfaceFormat.setSampleBuffers(false);
+ QGLWindowSurface::surfaceFormat.setSamples(0);
+ QGLWindowSurface::surfaceFormat.setAlpha(translucent);
+}
+
+QPixmapData *QMeeGoGraphicsSystem::pixmapDataFromEGLSharedImage(Qt::HANDLE handle, const QImage &softImage)
+{
+ if (softImage.format() != QImage::Format_ARGB32_Premultiplied &&
+ softImage.format() != QImage::Format_ARGB32) {
+ qFatal("For egl shared images, the soft image has to be ARGB32 or ARGB32_Premultiplied");
+ return NULL;
+ }
+
+ if (QMeeGoGraphicsSystem::meeGoRunning()) {
+ QMeeGoPixmapData *pmd = new QMeeGoPixmapData;
+ pmd->fromEGLSharedImage(handle, softImage);
+ return QMeeGoGraphicsSystem::wrapPixmapData(pmd);
+ } else {
+ QRasterPixmapData *pmd = new QRasterPixmapData(QPixmapData::PixmapType);
+ pmd->fromImage(softImage, Qt::NoOpaqueDetection);
+
+ // Make sure that the image was not converted in any way
+ if (pmd->buffer()->data_ptr()->data !=
+ const_cast<QImage &>(softImage).data_ptr()->data)
+ qFatal("Iternal misalignment of raster data detected. Prolly a QImage copy fail.");
+
+ QMeeGoPixmapData::registerSharedImage(handle, softImage);
+ return QMeeGoGraphicsSystem::wrapPixmapData(pmd);
+ }
+}
+
+void QMeeGoGraphicsSystem::updateEGLSharedImagePixmap(QPixmap *pixmap)
+{
+ QMeeGoPixmapData *pmd = (QMeeGoPixmapData *) pixmap->pixmapData();
+
+ // Basic sanity check to make sure this is really a QMeeGoPixmapData...
+ if (pmd->classId() != QPixmapData::OpenGLClass)
+ qFatal("Trying to updated EGLSharedImage pixmap but it's not really a shared image pixmap!");
+
+ pmd->updateFromSoftImage();
+}
+
+QPixmapData *QMeeGoGraphicsSystem::pixmapDataWithGLTexture(int w, int h)
+{
+ QGLPixmapData *pmd = new QGLPixmapData(QPixmapData::PixmapType);
+ pmd->resize(w, h);
+ return QMeeGoGraphicsSystem::wrapPixmapData(pmd);
+}
+
+bool QMeeGoGraphicsSystem::meeGoRunning()
+{
+ if (! QApplicationPrivate::instance()) {
+ qWarning("Application not running just yet... hard to know what system running!");
+ return false;
+ }
+
+ QString name = QApplicationPrivate::instance()->graphics_system_name;
+ if (name == "runtime") {
+ QRuntimeGraphicsSystem *rsystem = (QRuntimeGraphicsSystem *) QApplicationPrivate::instance()->graphics_system;
+ name = rsystem->graphicsSystemName();
+ }
+
+ return (name == "meego");
+}
+
+/* C API */
+
+int qt_meego_image_to_egl_shared_image(const QImage &image)
+{
+ return QMeeGoPixmapData::imageToEGLSharedImage(image);
+}
+
+QPixmapData* qt_meego_pixmapdata_from_egl_shared_image(Qt::HANDLE handle, const QImage &softImage)
+{
+ return QMeeGoGraphicsSystem::pixmapDataFromEGLSharedImage(handle, softImage);
+}
+
+QPixmapData* qt_meego_pixmapdata_with_gl_texture(int w, int h)
+{
+ return QMeeGoGraphicsSystem::pixmapDataWithGLTexture(w, h);
+}
+
+bool qt_meego_destroy_egl_shared_image(Qt::HANDLE handle)
+{
+ return QMeeGoPixmapData::destroyEGLSharedImage(handle);
+}
+
+void qt_meego_set_surface_fixed_size(int width, int height)
+{
+ QMeeGoGraphicsSystem::setSurfaceFixedSize(width, height);
+}
+
+void qt_meego_set_surface_scaling(int x, int y, int width, int height)
+{
+ QMeeGoGraphicsSystem::setSurfaceScaling(x, y, width, height);
+}
+
+void qt_meego_set_translucent(bool translucent)
+{
+ QMeeGoGraphicsSystem::setTranslucent(translucent);
+}
+
+void qt_meego_update_egl_shared_image_pixmap(QPixmap *pixmap)
+{
+ QMeeGoGraphicsSystem::updateEGLSharedImagePixmap(pixmap);
+}
diff --git a/src/plugins/graphicssystems/meego/qmeegographicssystem.h b/src/plugins/graphicssystems/meego/qmeegographicssystem.h
new file mode 100644
index 0000000..905f0c3
--- /dev/null
+++ b/src/plugins/graphicssystems/meego/qmeegographicssystem.h
@@ -0,0 +1,85 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef MGRAPHICSSYSTEM_H
+#define MGRAPHICSSYSTEM_H
+
+#include <private/qgraphicssystem_p.h>
+
+class QMeeGoGraphicsSystem : public QGraphicsSystem
+{
+public:
+ QMeeGoGraphicsSystem();
+ ~QMeeGoGraphicsSystem();
+
+ virtual QWindowSurface *createWindowSurface(QWidget *widget) const;
+ virtual QPixmapData *createPixmapData(QPixmapData::PixelType) const;
+ virtual QPixmapData *createPixmapData(QPixmapData *origin);
+
+ static QPixmapData *wrapPixmapData(QPixmapData *pmd);
+ static void setSurfaceFixedSize(int width, int height);
+ static void setSurfaceScaling(int x, int y, int width, int height);
+ static void setTranslucent(bool translucent);
+
+ static QPixmapData *pixmapDataFromEGLSharedImage(Qt::HANDLE handle, const QImage &softImage);
+ static QPixmapData *pixmapDataWithGLTexture(int w, int h);
+ static void updateEGLSharedImagePixmap(QPixmap *pixmap);
+
+private:
+ static bool meeGoRunning();
+
+ static bool surfaceWasCreated;
+};
+
+/* C api */
+
+extern "C" {
+ Q_DECL_EXPORT int qt_meego_image_to_egl_shared_image(const QImage &image);
+ Q_DECL_EXPORT QPixmapData* qt_meego_pixmapdata_from_egl_shared_image(Qt::HANDLE handle, const QImage &softImage);
+ Q_DECL_EXPORT QPixmapData* qt_meego_pixmapdata_with_gl_texture(int w, int h);
+ Q_DECL_EXPORT void qt_meego_update_egl_shared_image_pixmap(QPixmap *pixmap);
+ Q_DECL_EXPORT bool qt_meego_destroy_egl_shared_image(Qt::HANDLE handle);
+ Q_DECL_EXPORT void qt_meego_set_surface_fixed_size(int width, int height);
+ Q_DECL_EXPORT void qt_meego_set_surface_scaling(int x, int y, int width, int height);
+ Q_DECL_EXPORT void qt_meego_set_translucent(bool translucent);
+}
+
+#endif
diff --git a/src/plugins/graphicssystems/meego/qmeegographicssystemplugin.cpp b/src/plugins/graphicssystems/meego/qmeegographicssystemplugin.cpp
new file mode 100644
index 0000000..7c142eb
--- /dev/null
+++ b/src/plugins/graphicssystems/meego/qmeegographicssystemplugin.cpp
@@ -0,0 +1,58 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QDebug>
+#include "qmeegographicssystemplugin.h"
+#include "qmeegographicssystem.h"
+
+QStringList QMeeGoGraphicsSystemPlugin::keys() const
+{
+ QStringList list;
+ list << "meego";
+ return list;
+}
+
+QGraphicsSystem *QMeeGoGraphicsSystemPlugin::create(const QString&)
+{
+ return new QMeeGoGraphicsSystem;
+}
+
+Q_EXPORT_PLUGIN2(meego, QMeeGoGraphicsSystemPlugin)
diff --git a/src/plugins/graphicssystems/meego/qmeegographicssystemplugin.h b/src/plugins/graphicssystems/meego/qmeegographicssystemplugin.h
new file mode 100644
index 0000000..336458f
--- /dev/null
+++ b/src/plugins/graphicssystems/meego/qmeegographicssystemplugin.h
@@ -0,0 +1,54 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef MGRAPHICSSYSTEMPLUGIN_H
+#define MGRAPHICSSYSTEMPLUGIN_H
+
+#include <private/qgraphicssystemplugin_p.h>
+
+class QMeeGoGraphicsSystemPlugin : public QGraphicsSystemPlugin
+{
+public:
+ virtual QStringList keys() const;
+ virtual QGraphicsSystem *create(const QString&);
+};
+
+#endif
diff --git a/src/plugins/graphicssystems/meego/qmeegopixmapdata.cpp b/src/plugins/graphicssystems/meego/qmeegopixmapdata.cpp
new file mode 100644
index 0000000..33611dc
--- /dev/null
+++ b/src/plugins/graphicssystems/meego/qmeegopixmapdata.cpp
@@ -0,0 +1,206 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qmeegopixmapdata.h"
+#include "qmeegoextensions.h"
+#include <private/qimage_p.h>
+#include <private/qwindowsurface_gl_p.h>
+#include <private/qeglcontext_p.h>
+#include <private/qapplication_p.h>
+#include <private/qgraphicssystem_runtime_p.h>
+
+static EGLint preserved_image_attribs[] = { EGL_IMAGE_PRESERVED_KHR, EGL_TRUE, EGL_NONE };
+
+QHash <void*, QMeeGoImageInfo*> QMeeGoPixmapData::sharedImagesMap;
+
+/* Public */
+
+QMeeGoPixmapData::QMeeGoPixmapData() : QGLPixmapData(QPixmapData::PixmapType)
+{
+}
+
+void QMeeGoPixmapData::fromTexture(GLuint textureId, int w, int h, bool alpha)
+{
+ resize(w, h);
+ texture()->id = textureId;
+ m_hasAlpha = alpha;
+ softImage = QImage();
+}
+
+QImage QMeeGoPixmapData::toImage() const
+{
+ return softImage;
+}
+
+void QMeeGoPixmapData::fromImage(const QImage &image,
+ Qt::ImageConversionFlags flags)
+{
+ void *rawResource = static_cast <void *> (((QImage &) image).data_ptr()->data);
+
+ if (sharedImagesMap.contains(rawResource)) {
+ QMeeGoImageInfo *info = sharedImagesMap.value(rawResource);
+ fromEGLSharedImage(info->handle, image);
+ } else {
+ // This should *never* happen since the graphics system should never
+ // create a QMeeGoPixmapData for an origin that doesn't contain a raster
+ // image we know about. But...
+ qWarning("QMeeGoPixmapData::fromImage called on non-know resource. Falling back...");
+ QGLPixmapData::fromImage(image, flags);
+ }
+}
+
+void QMeeGoPixmapData::fromEGLSharedImage(Qt::HANDLE handle, const QImage &si)
+{
+ if (si.isNull())
+ qFatal("Trying to build pixmap with an empty/null softimage!");
+
+ QGLShareContextScope ctx(qt_gl_share_widget()->context());
+
+ QMeeGoExtensions::ensureInitialized();
+
+ bool textureIsBound = false;
+ GLuint newTextureId;
+ GLint newWidth, newHeight;
+
+ glGenTextures(1, &newTextureId);
+ glBindTexture(GL_TEXTURE_2D, newTextureId);
+
+ glFinish();
+ EGLImageKHR image = QEgl::eglCreateImageKHR(QEgl::display(), EGL_NO_CONTEXT, EGL_SHARED_IMAGE_NOK,
+ (EGLClientBuffer)handle, preserved_image_attribs);
+
+ if (image != EGL_NO_IMAGE_KHR) {
+ glFinish();
+ glEGLImageTargetTexture2DOES(GL_TEXTURE_2D, image);
+ GLint err = glGetError();
+ if (err == GL_NO_ERROR)
+ textureIsBound = true;
+
+ QMeeGoExtensions::eglQueryImageNOK(QEgl::display(), image, EGL_WIDTH, &newWidth);
+ QMeeGoExtensions::eglQueryImageNOK(QEgl::display(), image, EGL_HEIGHT, &newHeight);
+
+ QEgl::eglDestroyImageKHR(QEgl::display(), image);
+ glFinish();
+ }
+
+ if (textureIsBound) {
+ // FIXME Remove this ugly hasAlphaChannel check when Qt lands the NoOpaqueCheck flag fix
+ // for QGLPixmapData.
+ fromTexture(newTextureId, newWidth, newHeight,
+ (si.hasAlphaChannel() && const_cast<QImage &>(si).data_ptr()->checkForAlphaPixels()));
+ softImage = si;
+ QMeeGoPixmapData::registerSharedImage(handle, softImage);
+ } else {
+ qWarning("Failed to create a texture from a shared image!");
+ glDeleteTextures(1, &newTextureId);
+ }
+}
+
+Qt::HANDLE QMeeGoPixmapData::imageToEGLSharedImage(const QImage &image)
+{
+ QGLShareContextScope ctx(qt_gl_share_widget()->context());
+
+ QMeeGoExtensions::ensureInitialized();
+
+ glFinish();
+ QGLPixmapData pixmapData(QPixmapData::PixmapType);
+ pixmapData.fromImage(image, 0);
+ GLuint textureId = pixmapData.bind();
+
+ glFinish();
+ EGLImageKHR eglimage = QEgl::eglCreateImageKHR(QEgl::display(), QEglContext::currentContext(QEgl::OpenGL)->context(),
+ EGL_GL_TEXTURE_2D_KHR,
+ (EGLClientBuffer) textureId,
+ preserved_image_attribs);
+ glFinish();
+
+ if (eglimage) {
+ EGLNativeSharedImageTypeNOK handle = QMeeGoExtensions::eglCreateSharedImageNOK(QEgl::display(), eglimage, NULL);
+ QEgl::eglDestroyImageKHR(QEgl::display(), eglimage);
+ glFinish();
+ return (Qt::HANDLE) handle;
+ } else {
+ qWarning("Failed to create shared image from pixmap/texture!");
+ return 0;
+ }
+}
+
+void QMeeGoPixmapData::updateFromSoftImage()
+{
+ m_dirty = true;
+ m_source = softImage;
+ ensureCreated();
+
+ if (softImage.width() != w || softImage.height() != h)
+ qWarning("Ooops, looks like softImage changed dimensions since last updated! Corruption ahead?!");
+}
+
+bool QMeeGoPixmapData::destroyEGLSharedImage(Qt::HANDLE h)
+{
+ QGLShareContextScope ctx(qt_gl_share_widget()->context());
+ QMeeGoExtensions::ensureInitialized();
+
+ QMutableHashIterator <void*, QMeeGoImageInfo*> i(sharedImagesMap);
+ while (i.hasNext()) {
+ i.next();
+ if (i.value()->handle == h)
+ i.remove();
+ }
+
+ return QMeeGoExtensions::eglDestroySharedImageNOK(QEgl::display(), (EGLNativeSharedImageTypeNOK) h);
+}
+
+void QMeeGoPixmapData::registerSharedImage(Qt::HANDLE handle, const QImage &si)
+{
+ void *raw = static_cast <void *> (((QImage) si).data_ptr()->data);
+ QMeeGoImageInfo *info;
+
+ if (! sharedImagesMap.contains(raw)) {
+ info = new QMeeGoImageInfo;
+ info->handle = handle;
+ info->rawFormat = si.format();
+ sharedImagesMap.insert(raw, info);
+ } else {
+ info = sharedImagesMap.value(raw);
+ if (info->handle != handle || info->rawFormat != si.format())
+ qWarning("Inconsistency detected: overwriting entry in sharedImagesMap but handle/format different");
+ }
+}
diff --git a/src/plugins/graphicssystems/meego/qmeegopixmapdata.h b/src/plugins/graphicssystems/meego/qmeegopixmapdata.h
new file mode 100644
index 0000000..8af33bd
--- /dev/null
+++ b/src/plugins/graphicssystems/meego/qmeegopixmapdata.h
@@ -0,0 +1,73 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef MPIXMAPDATA_H
+#define MPIXMAPDATA_H
+
+#include <private/qpixmapdata_gl_p.h>
+
+struct QMeeGoImageInfo
+{
+ Qt::HANDLE handle;
+ QImage::Format rawFormat;
+};
+
+class QMeeGoPixmapData : public QGLPixmapData
+{
+public:
+ QMeeGoPixmapData();
+ void fromTexture(GLuint textureId, int w, int h, bool alpha);
+
+ virtual void fromEGLSharedImage(Qt::HANDLE handle, const QImage &softImage);
+ virtual void fromImage (const QImage &image, Qt::ImageConversionFlags flags);
+ virtual QImage toImage() const;
+ virtual void updateFromSoftImage();
+
+ QImage softImage;
+
+ static QHash <void*, QMeeGoImageInfo*> sharedImagesMap;
+
+ static Qt::HANDLE imageToEGLSharedImage(const QImage &image);
+ static bool destroyEGLSharedImage(Qt::HANDLE h);
+ static void registerSharedImage(Qt::HANDLE handle, const QImage &si);
+};
+
+#endif
diff --git a/src/s60installs/bwins/QtOpenGLu.def b/src/s60installs/bwins/QtOpenGLu.def
new file mode 100644
index 0000000..fa340e4
--- /dev/null
+++ b/src/s60installs/bwins/QtOpenGLu.def
@@ -0,0 +1,701 @@
+EXPORTS
+ ?setUniformValueArray@QGLShaderProgram@@QAEXHPBV?$QGenericMatrix@$01$01M@@H@Z @ 1 NONAME ; void QGLShaderProgram::setUniformValueArray(int, class QGenericMatrix<2, 2, float> const *, int)
+ ?setPaintEnginePrivate@QGLTextureGlyphCache@@QAEXPAVQGL2PaintEngineExPrivate@@@Z @ 2 NONAME ; void QGLTextureGlyphCache::setPaintEnginePrivate(class QGL2PaintEngineExPrivate *)
+ ??1QGLFormat@@QAE@XZ @ 3 NONAME ; QGLFormat::~QGLFormat(void)
+ ?setOpacityMode@QGLEngineShaderManager@@QAEXW4OpacityMode@1@@Z @ 4 NONAME ; void QGLEngineShaderManager::setOpacityMode(enum QGLEngineShaderManager::OpacityMode)
+ ?entryRgb@QGLColormap@@QBEIH@Z @ 5 NONAME ; unsigned int QGLColormap::entryRgb(int) const
+ ??0QGLFormat@@QAE@ABV0@@Z @ 6 NONAME ; QGLFormat::QGLFormat(class QGLFormat const &)
+ ?d_func@QGLShader@@AAEPAVQGLShaderPrivate@@XZ @ 7 NONAME ; class QGLShaderPrivate * QGLShader::d_func(void)
+ ?bindToDynamicTexture@QGLPixelBuffer@@QAE_NI@Z @ 8 NONAME ; bool QGLPixelBuffer::bindToDynamicTexture(unsigned int)
+ ??0QGLWidget@@QAE@PAVQGLContext@@PAVQWidget@@PBV0@V?$QFlags@W4WindowType@Qt@@@@@Z @ 9 NONAME ; QGLWidget::QGLWidget(class QGLContext *, class QWidget *, class QGLWidget const *, class QFlags<enum Qt::WindowType>)
+ ??_EQGLFormat@@QAE@I@Z @ 10 NONAME ; QGLFormat::~QGLFormat(unsigned int)
+ ?drawPixmapFragments@QGL2PaintEngineEx@@UAEXPBVPixmapFragment@QPainter@@HABVQPixmap@@V?$QFlags@W4PixmapFragmentHint@QPainter@@@@@Z @ 11 NONAME ; void QGL2PaintEngineEx::drawPixmapFragments(class QPainter::PixmapFragment const *, int, class QPixmap const &, class QFlags<enum QPainter::PixmapFragmentHint>)
+ ?paintEngine@QGLWidget@@UBEPAVQPaintEngine@@XZ @ 12 NONAME ; class QPaintEngine * QGLWidget::paintEngine(void) const
+ ?setPreferredPaintEngine@QGL@@YAXW4Type@QPaintEngine@@@Z @ 13 NONAME ; void QGL::setPreferredPaintEngine(enum QPaintEngine::Type)
+ ?isValid@QGLPixelBuffer@@QBE_NXZ @ 14 NONAME ; bool QGLPixelBuffer::isValid(void) const
+ ?stereo@QGLFormat@@QBE_NXZ @ 15 NONAME ; bool QGLFormat::stereo(void) const
+ ?size@QGLPixelBuffer@@QBE?AVQSize@@XZ @ 16 NONAME ; class QSize QGLPixelBuffer::size(void) const
+ ?qt_gl_transfer_context@@YAPBVQGLContext@@PBV1@@Z @ 17 NONAME ; class QGLContext const * qt_gl_transfer_context(class QGLContext const *)
+ ?format@QGLContext@@QBE?AVQGLFormat@@XZ @ 18 NONAME ; class QGLFormat QGLContext::format(void) const
+ ?getStaticMetaObject@QGraphicsShaderEffect@@SAABUQMetaObject@@XZ @ 19 NONAME ; struct QMetaObject const & QGraphicsShaderEffect::getStaticMetaObject(void)
+ ??1QGLWidget@@UAE@XZ @ 20 NONAME ; QGLWidget::~QGLWidget(void)
+ ??0QGLPixelBuffer@@QAE@ABVQSize@@ABVQGLFormat@@PAVQGLWidget@@@Z @ 21 NONAME ; QGLPixelBuffer::QGLPixelBuffer(class QSize const &, class QGLFormat const &, class QGLWidget *)
+ ?isEmpty@QGLColormap@@QBE_NXZ @ 22 NONAME ; bool QGLColormap::isEmpty(void) const
+ ?setAttributeValue@QGLShaderProgram@@QAEXPBDABVQVector2D@@@Z @ 23 NONAME ; void QGLShaderProgram::setAttributeValue(char const *, class QVector2D const &)
+ ?setUniformValue@QGLShaderProgram@@QAEXHABVQSize@@@Z @ 24 NONAME ; void QGLShaderProgram::setUniformValue(int, class QSize const &)
+ ?attachment@QGLFramebufferObjectFormat@@QBE?AW4Attachment@QGLFramebufferObject@@XZ @ 25 NONAME ; enum QGLFramebufferObject::Attachment QGLFramebufferObjectFormat::attachment(void) const
+ ?setGeometry@QGLWindowSurface@@UAEXABVQRect@@@Z @ 26 NONAME ; void QGLWindowSurface::setGeometry(class QRect const &)
+ ?setUniformValue@QGLShaderProgram@@QAEXPBDABVQVector3D@@@Z @ 27 NONAME ; void QGLShaderProgram::setUniformValue(char const *, class QVector3D const &)
+ ?release@QGLShaderProgram@@QAEXXZ @ 28 NONAME ; void QGLShaderProgram::release(void)
+ ?entryColor@QGLColormap@@QBE?AVQColor@@H@Z @ 29 NONAME ; class QColor QGLColormap::entryColor(int) const
+ ?setUniformValue@QGLShaderProgram@@QAEXHABV?$QGenericMatrix@$02$02M@@@Z @ 30 NONAME ; void QGLShaderProgram::setUniformValue(int, class QGenericMatrix<3, 3, float> const &)
+ ?setCompositionMode@QGLEngineShaderManager@@QAEXW4CompositionMode@QPainter@@@Z @ 31 NONAME ; void QGLEngineShaderManager::setCompositionMode(enum QPainter::CompositionMode)
+ ?bindTexture@QGLPixelBuffer@@QAEIABVQString@@@Z @ 32 NONAME ; unsigned int QGLPixelBuffer::bindTexture(class QString const &)
+ ?stencil@QGLFormat@@QBE_NXZ @ 33 NONAME ; bool QGLFormat::stencil(void) const
+ ?format@QGLPaintDevice@@UBE?AVQGLFormat@@XZ @ 34 NONAME ; class QGLFormat QGLPaintDevice::format(void) const
+ ?d_func@QGLContext@@AAEPAVQGLContextPrivate@@XZ @ 35 NONAME ; class QGLContextPrivate * QGLContext::d_func(void)
+ ?bindAttributeLocation@QGLShaderProgram@@QAEXABVQString@@H@Z @ 36 NONAME ; void QGLShaderProgram::bindAttributeLocation(class QString const &, int)
+ ?depthBufferSize@QGLFormat@@QBEHXZ @ 37 NONAME ; int QGLFormat::depthBufferSize(void) const
+ ?write@QGLBuffer@@QAEXHPBXH@Z @ 38 NONAME ; void QGLBuffer::write(int, void const *, int)
+ ?tr@QGraphicsShaderEffect@@SA?AVQString@@PBD0@Z @ 39 NONAME ; class QString QGraphicsShaderEffect::tr(char const *, char const *)
+ ?currentProgram@QGLEngineShaderManager@@QAEPAVQGLShaderProgram@@XZ @ 40 NONAME ; class QGLShaderProgram * QGLEngineShaderManager::currentProgram(void)
+ ?isLinked@QGLShaderProgram@@QBE_NXZ @ 41 NONAME ; bool QGLShaderProgram::isLinked(void) const
+ ?resizeTextureData@QGLTextureGlyphCache@@UAEXHH@Z @ 42 NONAME ; void QGLTextureGlyphCache::resizeTextureData(int, int)
+ ?device@QGLContext@@QBEPAVQPaintDevice@@XZ @ 43 NONAME ; class QPaintDevice * QGLContext::device(void) const
+ ?create@QGLContext@@UAE_NPBV1@@Z @ 44 NONAME ; bool QGLContext::create(class QGLContext const *)
+ ?staticMetaObject@QGLWindowSurface@@2UQMetaObject@@B @ 45 NONAME ; struct QMetaObject const QGLWindowSurface::staticMetaObject
+ ?staticMetaObject@QGLShader@@2UQMetaObject@@B @ 46 NONAME ; struct QMetaObject const QGLShader::staticMetaObject
+ ?state@QGL2PaintEngineEx@@QAEPAVQOpenGL2PaintEngineState@@XZ @ 47 NONAME ; class QOpenGL2PaintEngineState * QGL2PaintEngineEx::state(void)
+ ?setUsagePattern@QGLBuffer@@QAEXW4UsagePattern@1@@Z @ 48 NONAME ; void QGLBuffer::setUsagePattern(enum QGLBuffer::UsagePattern)
+ ?drawTexture@QGL2PaintEngineEx@@QAE_NABVQRectF@@IABVQSize@@0@Z @ 49 NONAME ; bool QGL2PaintEngineEx::drawTexture(class QRectF const &, unsigned int, class QSize const &, class QRectF const &)
+ ?qt_metacast@QGLShaderProgram@@UAEPAXPBD@Z @ 50 NONAME ; void * QGLShaderProgram::qt_metacast(char const *)
+ ?tr@QGLWidget@@SA?AVQString@@PBD0H@Z @ 51 NONAME ; class QString QGLWidget::tr(char const *, char const *, int)
+ ?fromData@QGLPixmapData@@UAE_NPBEIPBDV?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 52 NONAME ; bool QGLPixmapData::fromData(unsigned char const *, unsigned int, char const *, class QFlags<enum Qt::ImageConversionFlag>)
+ ?brushOriginChanged@QGL2PaintEngineEx@@UAEXXZ @ 53 NONAME ; void QGL2PaintEngineEx::brushOriginChanged(void)
+ ?setContext@QGLSharedResourceGuard@@QAEXPBVQGLContext@@@Z @ 54 NONAME ; void QGLSharedResourceGuard::setContext(class QGLContext const *)
+ ?create@QGLBuffer@@QAE_NXZ @ 55 NONAME ; bool QGLBuffer::create(void)
+ ?setEntry@QGLColormap@@QAEXHI@Z @ 56 NONAME ; void QGLColormap::setEntry(int, unsigned int)
+ ?useBlitProgram@QGLEngineShaderManager@@QAEXXZ @ 57 NONAME ; void QGLEngineShaderManager::useBlitProgram(void)
+ ?paintEngine@QGLPixmapData@@UBEPAVQPaintEngine@@XZ @ 58 NONAME ; class QPaintEngine * QGLPixmapData::paintEngine(void) const
+ ?qt_destroy_gl_share_widget@@YAXXZ @ 59 NONAME ; void qt_destroy_gl_share_widget(void)
+ ?updateGL@QGLWidget@@UAEXXZ @ 60 NONAME ; void QGLWidget::updateGL(void)
+ ?setUniformValueArray@QGLShaderProgram@@QAEXHPBV?$QGenericMatrix@$02$02M@@H@Z @ 61 NONAME ; void QGLShaderProgram::setUniformValueArray(int, class QGenericMatrix<3, 3, float> const *, int)
+ ?setUniformValue@QGLShaderProgram@@QAEXPBDABVQColor@@@Z @ 62 NONAME ; void QGLShaderProgram::setUniformValue(char const *, class QColor const &)
+ ?d_func@QGLCustomShaderStage@@ABEPBVQGLCustomShaderStagePrivate@@XZ @ 63 NONAME ; class QGLCustomShaderStagePrivate const * QGLCustomShaderStage::d_func(void) const
+ ?link@QGLShaderProgram@@UAE_NXZ @ 64 NONAME ; bool QGLShaderProgram::link(void)
+ ??0QGLWindowSurface@@QAE@PAVQWidget@@@Z @ 65 NONAME ; QGLWindowSurface::QGLWindowSurface(class QWidget *)
+ ??9@YA_NABVQGLFormat@@0@Z @ 66 NONAME ; bool operator!=(class QGLFormat const &, class QGLFormat const &)
+ ?trUtf8@QGLEngineShaderManager@@SA?AVQString@@PBD0H@Z @ 67 NONAME ; class QString QGLEngineShaderManager::trUtf8(char const *, char const *, int)
+ ?clip@QGL2PaintEngineEx@@UAEXABVQVectorPath@@W4ClipOperation@Qt@@@Z @ 68 NONAME ; void QGL2PaintEngineEx::clip(class QVectorPath const &, enum Qt::ClipOperation)
+ ?setRgba@QGLFormat@@QAEX_N@Z @ 69 NONAME ; void QGLFormat::setRgba(bool)
+ ??1QGLGraphicsSystem@@UAE@XZ @ 70 NONAME ; QGLGraphicsSystem::~QGLGraphicsSystem(void)
+ ?simpleProgram@QGLEngineShaderManager@@QAEPAVQGLShaderProgram@@XZ @ 71 NONAME ; class QGLShaderProgram * QGLEngineShaderManager::simpleProgram(void)
+ ?generateDynamicTexture@QGLPixelBuffer@@QBEIXZ @ 72 NONAME ; unsigned int QGLPixelBuffer::generateDynamicTexture(void) const
+ ?metaObject@QGLShaderProgram@@UBEPBUQMetaObject@@XZ @ 73 NONAME ; struct QMetaObject const * QGLShaderProgram::metaObject(void) const
+ ?usagePattern@QGLBuffer@@QBE?AW4UsagePattern@1@XZ @ 74 NONAME ; enum QGLBuffer::UsagePattern QGLBuffer::usagePattern(void) const
+ ?setAttributeArray@QGLShaderProgram@@QAEXPBDPBVQVector4D@@H@Z @ 75 NONAME ; void QGLShaderProgram::setAttributeArray(char const *, class QVector4D const *, int)
+ ?setUniformValue@QGLShaderProgram@@QAEXHI@Z @ 76 NONAME ; void QGLShaderProgram::setUniformValue(int, unsigned int)
+ ?blitProgram@QGLEngineShaderManager@@QAEPAVQGLShaderProgram@@XZ @ 77 NONAME ; class QGLShaderProgram * QGLEngineShaderManager::blitProgram(void)
+ ?metaObject@QGLSignalProxy@@UBEPBUQMetaObject@@XZ @ 78 NONAME ; struct QMetaObject const * QGLSignalProxy::metaObject(void) const
+ ??1QGLShaderProgram@@UAE@XZ @ 79 NONAME ; QGLShaderProgram::~QGLShaderProgram(void)
+ ?height@QGLTextureGlyphCache@@QBEHXZ @ 80 NONAME ; int QGLTextureGlyphCache::height(void) const
+ ??_EQGLWindowSurface@@UAE@I@Z @ 81 NONAME ; QGLWindowSurface::~QGLWindowSurface(unsigned int)
+ ?renderPixmap@QGLWidget@@QAE?AVQPixmap@@HH_N@Z @ 82 NONAME ; class QPixmap QGLWidget::renderPixmap(int, int, bool)
+ ?read@QGLBuffer@@QAE_NHPAXH@Z @ 83 NONAME ; bool QGLBuffer::read(int, void *, int)
+ ?qglClearColor@QGLWidget@@QBEXABVQColor@@@Z @ 84 NONAME ; void QGLWidget::qglClearColor(class QColor const &) const
+ ??0QGLFramebufferObject@@QAE@HHW4Attachment@0@II@Z @ 85 NONAME ; QGLFramebufferObject::QGLFramebufferObject(int, int, enum QGLFramebufferObject::Attachment, unsigned int, unsigned int)
+ ?penChanged@QGL2PaintEngineEx@@UAEXXZ @ 86 NONAME ; void QGL2PaintEngineEx::penChanged(void)
+ ??_EQGraphicsShaderEffect@@UAE@I@Z @ 87 NONAME ; QGraphicsShaderEffect::~QGraphicsShaderEffect(unsigned int)
+ ?doneCurrent@QGLContext@@UAEXXZ @ 88 NONAME ; void QGLContext::doneCurrent(void)
+ ??_EQGLContext@@UAE@I@Z @ 89 NONAME ; QGLContext::~QGLContext(unsigned int)
+ ?release@QGLBuffer@@QAEXXZ @ 90 NONAME ; void QGLBuffer::release(void)
+ ??0QGLPixmapData@@QAE@W4PixelType@QPixmapData@@@Z @ 91 NONAME ; QGLPixmapData::QGLPixmapData(enum QPixmapData::PixelType)
+ ?texture@QGLPixmapData@@QBEPAVQGLTexture@@XZ @ 92 NONAME ; class QGLTexture * QGLPixmapData::texture(void) const
+ ?updateGeometry@QGLWindowSurface@@QAEXXZ @ 93 NONAME ; void QGLWindowSurface::updateGeometry(void)
+ ?windowCreated@QGLContext@@IBE_NXZ @ 94 NONAME ; bool QGLContext::windowCreated(void) const
+ ?setWindowCreated@QGLContext@@IAEX_N@Z @ 95 NONAME ; void QGLContext::setWindowCreated(bool)
+ ?uniformLocation@QGLShaderProgram@@QBEHABVQString@@@Z @ 96 NONAME ; int QGLShaderProgram::uniformLocation(class QString const &) const
+ ?metaObject@QGLWindowSurface@@UBEPBUQMetaObject@@XZ @ 97 NONAME ; struct QMetaObject const * QGLWindowSurface::metaObject(void) const
+ ?setAttributeBuffer@QGLShaderProgram@@QAEXHIHHH@Z @ 98 NONAME ; void QGLShaderProgram::setAttributeBuffer(int, unsigned int, int, int, int)
+ ?getProcAddress@QGLContext@@QBEPAXABVQString@@@Z @ 99 NONAME ; void * QGLContext::getProcAddress(class QString const &) const
+ ?qt_metacall@QGLTextureGlyphCache@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 100 NONAME ; int QGLTextureGlyphCache::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ??1QGLPixelBuffer@@UAE@XZ @ 101 NONAME ; QGLPixelBuffer::~QGLPixelBuffer(void)
+ ?setUniformValueArray@QGLShaderProgram@@QAEXHPBVQVector4D@@H@Z @ 102 NONAME ; void QGLShaderProgram::setUniformValueArray(int, class QVector4D const *, int)
+ ?releaseFromDynamicTexture@QGLPixelBuffer@@QAEXXZ @ 103 NONAME ; void QGLPixelBuffer::releaseFromDynamicTexture(void)
+ ?setUniformsDirty@QGraphicsShaderEffect@@IAEXXZ @ 104 NONAME ; void QGraphicsShaderEffect::setUniformsDirty(void)
+ ?drawTexture@QGLFramebufferObject@@QAEXABVQPointF@@II@Z @ 105 NONAME ; void QGLFramebufferObject::drawTexture(class QPointF const &, unsigned int, unsigned int)
+ ??0QGLContext@@QAE@ABVQGLFormat@@@Z @ 106 NONAME ; QGLContext::QGLContext(class QGLFormat const &)
+ ?geometryOutputVertexCount@QGLShaderProgram@@QBEHXZ @ 107 NONAME ; int QGLShaderProgram::geometryOutputVertexCount(void) const
+ ?setAccum@QGLFormat@@QAEX_N@Z @ 108 NONAME ; void QGLFormat::setAccum(bool)
+ ??0QGLSignalProxy@@QAE@XZ @ 109 NONAME ; QGLSignalProxy::QGLSignalProxy(void)
+ ?isUninitialized@QGLPixmapData@@ABE_NXZ @ 110 NONAME ; bool QGLPixmapData::isUninitialized(void) const
+ ??0QGLFramebufferObjectFormat@@QAE@XZ @ 111 NONAME ; QGLFramebufferObjectFormat::QGLFramebufferObjectFormat(void)
+ ??8@YA_NABVQGLFormat@@0@Z @ 112 NONAME ; bool operator==(class QGLFormat const &, class QGLFormat const &)
+ ?toImage@QGLFramebufferObject@@QBE?AVQImage@@XZ @ 113 NONAME ; class QImage QGLFramebufferObject::toImage(void) const
+ ?setUniformValue@QGLShaderProgram@@QAEXPBDABV?$QGenericMatrix@$01$02M@@@Z @ 114 NONAME ; void QGLShaderProgram::setUniformValue(char const *, class QGenericMatrix<2, 3, float> const &)
+ ?useCorrectShaderProg@QGLEngineShaderManager@@QAE_NXZ @ 115 NONAME ; bool QGLEngineShaderManager::useCorrectShaderProg(void)
+ ?setAlphaBufferSize@QGLFormat@@QAEXH@Z @ 116 NONAME ; void QGLFormat::setAlphaBufferSize(int)
+ ??0QGLContextResource@@QAE@P6AXPAX@Z@Z @ 117 NONAME ; QGLContextResource::QGLContextResource(void (*)(void *))
+ ?tr@QGLEngineShaderManager@@SA?AVQString@@PBD0H@Z @ 118 NONAME ; class QString QGLEngineShaderManager::tr(char const *, char const *, int)
+ ?setUniformValue@QGLShaderProgram@@QAEXHABVQVector4D@@@Z @ 119 NONAME ; void QGLShaderProgram::setUniformValue(int, class QVector4D const &)
+ ?d_func@QGLContext@@ABEPBVQGLContextPrivate@@XZ @ 120 NONAME ; class QGLContextPrivate const * QGLContext::d_func(void) const
+ ?setUniformValue@QGLShaderProgram@@QAEXHABVQMatrix4x4@@@Z @ 121 NONAME ; void QGLShaderProgram::setUniformValue(int, class QMatrix4x4 const &)
+ ?deleteTexture@QGLContext@@QAEXI@Z @ 122 NONAME ; void QGLContext::deleteTexture(unsigned int)
+ ?setAttributeArray@QGLShaderProgram@@QAEXHPBMHH@Z @ 123 NONAME ; void QGLShaderProgram::setAttributeArray(int, float const *, int, int)
+ ?bindTexture@QGLWidget@@QAEIABVQImage@@IHV?$QFlags@W4BindOption@QGLContext@@@@@Z @ 124 NONAME ; unsigned int QGLWidget::bindTexture(class QImage const &, unsigned int, int, class QFlags<enum QGLContext::BindOption>)
+ ?ensureCreated@QGLPixmapData@@ABEXXZ @ 125 NONAME ; void QGLPixmapData::ensureCreated(void) const
+ ?setSource@QGLCustomShaderStage@@IAEXABVQByteArray@@@Z @ 126 NONAME ; void QGLCustomShaderStage::setSource(class QByteArray const &)
+ ?trUtf8@QGLTextureGlyphCache@@SA?AVQString@@PBD0@Z @ 127 NONAME ; class QString QGLTextureGlyphCache::trUtf8(char const *, char const *)
+ ?removeFromPainter@QGLCustomShaderStage@@QAEXPAVQPainter@@@Z @ 128 NONAME ; void QGLCustomShaderStage::removeFromPainter(class QPainter *)
+ ?qt_metacall@QGLWindowSurface@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 129 NONAME ; int QGLWindowSurface::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ??0QGLBuffer@@QAE@W4Type@0@@Z @ 130 NONAME ; QGLBuffer::QGLBuffer(enum QGLBuffer::Type)
+ ?fillColor@QGLPixmapData@@ABE?AVQColor@@XZ @ 131 NONAME ; class QColor QGLPixmapData::fillColor(void) const
+ ?setSamples@QGLFormat@@QAEXH@Z @ 132 NONAME ; void QGLFormat::setSamples(int)
+ ?makeCurrent@QGLContext@@UAEXXZ @ 133 NONAME ; void QGLContext::makeCurrent(void)
+ ?setUniformValue@QGLShaderProgram@@QAEXHABV?$QGenericMatrix@$03$02M@@@Z @ 134 NONAME ; void QGLShaderProgram::setUniformValue(int, class QGenericMatrix<4, 3, float> const &)
+ ?hasOpenGLShaders@QGLShader@@SA_NV?$QFlags@W4ShaderTypeBit@QGLShader@@@@PBVQGLContext@@@Z @ 135 NONAME ; bool QGLShader::hasOpenGLShaders(class QFlags<enum QGLShader::ShaderTypeBit>, class QGLContext const *)
+ ?hasComplexGeometry@QGLEngineShaderManager@@QBE_NXZ @ 136 NONAME ; bool QGLEngineShaderManager::hasComplexGeometry(void) const
+ ?tr@QGLEngineShaderManager@@SA?AVQString@@PBD0@Z @ 137 NONAME ; class QString QGLEngineShaderManager::tr(char const *, char const *)
+ ??0QGLFramebufferObject@@QAE@ABVQSize@@I@Z @ 138 NONAME ; QGLFramebufferObject::QGLFramebufferObject(class QSize const &, unsigned int)
+ ?setSrcPixelType@QGLEngineShaderManager@@QAEXW4PixelSrcType@1@@Z @ 139 NONAME ; void QGLEngineShaderManager::setSrcPixelType(enum QGLEngineShaderManager::PixelSrcType)
+ ?isValid@QGLFramebufferObject@@QBE_NXZ @ 140 NONAME ; bool QGLFramebufferObject::isValid(void) const
+ ??0QGLFramebufferObject@@QAE@HHABVQGLFramebufferObjectFormat@@@Z @ 141 NONAME ; QGLFramebufferObject::QGLFramebufferObject(int, int, class QGLFramebufferObjectFormat const &)
+ ?setDirectRendering@QGLFormat@@QAEX_N@Z @ 142 NONAME ; void QGLFormat::setDirectRendering(bool)
+ ?hasAlphaChannel@QGLPixmapData@@UBE_NXZ @ 143 NONAME ; bool QGLPixmapData::hasAlphaChannel(void) const
+ ?tr@QGLSignalProxy@@SA?AVQString@@PBD0H@Z @ 144 NONAME ; class QString QGLSignalProxy::tr(char const *, char const *, int)
+ ?setContext@QGLWidget@@QAEXPAVQGLContext@@PBV2@_N@Z @ 145 NONAME ; void QGLWidget::setContext(class QGLContext *, class QGLContext const *, bool)
+ ?d_func@QGLPixelBuffer@@ABEPBVQGLPixelBufferPrivate@@XZ @ 146 NONAME ; class QGLPixelBufferPrivate const * QGLPixelBuffer::d_func(void) const
+ ?getStaticMetaObject@QGLSignalProxy@@SAABUQMetaObject@@XZ @ 147 NONAME ; struct QMetaObject const & QGLSignalProxy::getStaticMetaObject(void)
+ ?setState@QGL2PaintEngineEx@@UAEXPAVQPainterState@@@Z @ 148 NONAME ; void QGL2PaintEngineEx::setState(class QPainterState *)
+ ?addShader@QGLShaderProgram@@QAE_NPAVQGLShader@@@Z @ 149 NONAME ; bool QGLShaderProgram::addShader(class QGLShader *)
+ ?hasOpenGLShaderPrograms@QGLShaderProgram@@SA_NPBVQGLContext@@@Z @ 150 NONAME ; bool QGLShaderProgram::hasOpenGLShaderPrograms(class QGLContext const *)
+ ?plane@QGLFormat@@QBEHXZ @ 151 NONAME ; int QGLFormat::plane(void) const
+ ??0QGLFormat@@QAE@XZ @ 152 NONAME ; QGLFormat::QGLFormat(void)
+ ?renderText@QGLWidget@@QAEXNNNABVQString@@ABVQFont@@H@Z @ 153 NONAME ; void QGLWidget::renderText(double, double, double, class QString const &, class QFont const &, int)
+ ?setAttributeArray@QGLShaderProgram@@QAEXPBDIPBXHH@Z @ 154 NONAME ; void QGLShaderProgram::setAttributeArray(char const *, unsigned int, void const *, int, int)
+ ?hasOpenGLFramebufferBlit@QGLFramebufferObject@@SA_NXZ @ 155 NONAME ; bool QGLFramebufferObject::hasOpenGLFramebufferBlit(void)
+ ?setUniformValue@QGLShaderProgram@@QAEXHABVQVector2D@@@Z @ 156 NONAME ; void QGLShaderProgram::setUniformValue(int, class QVector2D const &)
+ ?setUniformValueArray@QGLShaderProgram@@QAEXPBDPBVQVector2D@@H@Z @ 157 NONAME ; void QGLShaderProgram::setUniformValueArray(char const *, class QVector2D const *, int)
+ ??1QGLContext@@UAE@XZ @ 158 NONAME ; QGLContext::~QGLContext(void)
+ ?drawTexture@QGLContext@@QAEXABVQRectF@@II@Z @ 159 NONAME ; void QGLContext::drawTexture(class QRectF const &, unsigned int, unsigned int)
+ ??1QGLCustomShaderStage@@UAE@XZ @ 160 NONAME ; QGLCustomShaderStage::~QGLCustomShaderStage(void)
+ ?state@QGL2PaintEngineEx@@QBEPBVQOpenGL2PaintEngineState@@XZ @ 161 NONAME ; class QOpenGL2PaintEngineState const * QGL2PaintEngineEx::state(void) const
+ ?setUniformValue@QGLShaderProgram@@QAEXPBDM@Z @ 162 NONAME ; void QGLShaderProgram::setUniformValue(char const *, float)
+ ?tr@QGLShaderProgram@@SA?AVQString@@PBD0@Z @ 163 NONAME ; class QString QGLShaderProgram::tr(char const *, char const *)
+ ?setHasComplexGeometry@QGLEngineShaderManager@@QAEX_N@Z @ 164 NONAME ; void QGLEngineShaderManager::setHasComplexGeometry(bool)
+ ?devType@QGLPaintDevice@@UBEHXZ @ 165 NONAME ; int QGLPaintDevice::devType(void) const
+ ?setDepthBufferSize@QGLFormat@@QAEXH@Z @ 166 NONAME ; void QGLFormat::setDepthBufferSize(int)
+ ?attributeLocation@QGLShaderProgram@@QBEHABVQString@@@Z @ 167 NONAME ; int QGLShaderProgram::attributeLocation(class QString const &) const
+ ?isSharing@QGLWidget@@QBE_NXZ @ 168 NONAME ; bool QGLWidget::isSharing(void) const
+ ?brushChanged@QGL2PaintEngineEx@@UAEXXZ @ 169 NONAME ; void QGL2PaintEngineEx::brushChanged(void)
+ ?bind@QGLShaderProgram@@QAE_NXZ @ 170 NONAME ; bool QGLShaderProgram::bind(void)
+ ?fill@QGLPixmapData@@UAEXABVQColor@@@Z @ 171 NONAME ; void QGLPixmapData::fill(class QColor const &)
+ ?staticMetaObject@QGLShaderProgram@@2UQMetaObject@@B @ 172 NONAME ; struct QMetaObject const QGLShaderProgram::staticMetaObject
+ ?setPlane@QGLFormat@@QAEXH@Z @ 173 NONAME ; void QGLFormat::setPlane(int)
+ ?setGeometryOutputType@QGLShaderProgram@@QAEXI@Z @ 174 NONAME ; void QGLShaderProgram::setGeometryOutputType(unsigned int)
+ ?setAccumBufferSize@QGLFormat@@QAEXH@Z @ 175 NONAME ; void QGLFormat::setAccumBufferSize(int)
+ ?detach@QGLFramebufferObjectFormat@@AAEXXZ @ 176 NONAME ; void QGLFramebufferObjectFormat::detach(void)
+ ?testOption@QGLFormat@@QBE_NV?$QFlags@W4FormatOption@QGL@@@@@Z @ 177 NONAME ; bool QGLFormat::testOption(class QFlags<enum QGL::FormatOption>) const
+ ?setUniformValueArray@QGLShaderProgram@@QAEXPBDPBV?$QGenericMatrix@$01$03M@@H@Z @ 178 NONAME ; void QGLShaderProgram::setUniformValueArray(char const *, class QGenericMatrix<2, 4, float> const *, int)
+ ?setAttributeValue@QGLShaderProgram@@QAEXPBDABVQColor@@@Z @ 179 NONAME ; void QGLShaderProgram::setAttributeValue(char const *, class QColor const &)
+ ?devType@QGLPixelBuffer@@MBEHXZ @ 180 NONAME ; int QGLPixelBuffer::devType(void) const
+ ?doubleBuffer@QGLFormat@@QBE_NXZ @ 181 NONAME ; bool QGLFormat::doubleBuffer(void) const
+ ?setUniformsDirty@QGLCustomShaderStage@@QAEXXZ @ 182 NONAME ; void QGLCustomShaderStage::setUniformsDirty(void)
+ ?setAttributeValue@QGLShaderProgram@@QAEXHMM@Z @ 183 NONAME ; void QGLShaderProgram::setAttributeValue(int, float, float)
+ ?setAttributeArray@QGLShaderProgram@@QAEXPBDPBMHH@Z @ 184 NONAME ; void QGLShaderProgram::setAttributeArray(char const *, float const *, int, int)
+ ?getStaticMetaObject@QGLEngineShaderManager@@SAABUQMetaObject@@XZ @ 185 NONAME ; struct QMetaObject const & QGLEngineShaderManager::getStaticMetaObject(void)
+ ?setVersion@QGLFormat@@QAEXHH@Z @ 186 NONAME ; void QGLFormat::setVersion(int, int)
+ ?grabFrameBuffer@QGLWidget@@QAE?AVQImage@@_N@Z @ 187 NONAME ; class QImage QGLWidget::grabFrameBuffer(bool)
+ ?hasOpenGL@QGLFormat@@SA_NXZ @ 188 NONAME ; bool QGLFormat::hasOpenGL(void)
+ ?setInitialized@QGLContext@@IAEX_N@Z @ 189 NONAME ; void QGLContext::setInitialized(bool)
+ ?copyBackFromRenderFbo@QGLPixmapData@@ABEX_N@Z @ 190 NONAME ; void QGLPixmapData::copyBackFromRenderFbo(bool) const
+ ??0QGLBuffer@@QAE@ABV0@@Z @ 191 NONAME ; QGLBuffer::QGLBuffer(class QGLBuffer const &)
+ ?attachment@QGLFramebufferObject@@QBE?AW4Attachment@1@XZ @ 192 NONAME ; enum QGLFramebufferObject::Attachment QGLFramebufferObject::attachment(void) const
+ ?createCompatiblePixmapData@QGLPixmapData@@UBEPAVQPixmapData@@XZ @ 193 NONAME ; class QPixmapData * QGLPixmapData::createCompatiblePixmapData(void) const
+ ?detach@QGLFormat@@AAEXXZ @ 194 NONAME ; void QGLFormat::detach(void)
+ ??9QGLFramebufferObjectFormat@@QBE_NABV0@@Z @ 195 NONAME ; bool QGLFramebufferObjectFormat::operator!=(class QGLFramebufferObjectFormat const &) const
+ ?endPaint@QGLWindowSurface@@UAEXABVQRegion@@@Z @ 196 NONAME ; void QGLWindowSurface::endPaint(class QRegion const &)
+ ?findNearest@QGLColormap@@QBEHI@Z @ 197 NONAME ; int QGLColormap::findNearest(unsigned int) const
+ ?toImage@QGLPixmapData@@UBE?AVQImage@@XZ @ 198 NONAME ; class QImage QGLPixmapData::toImage(void) const
+ ??_EQGLShader@@UAE@I@Z @ 199 NONAME ; QGLShader::~QGLShader(unsigned int)
+ ?setUniformValueArray@QGLShaderProgram@@QAEXHPBHH@Z @ 200 NONAME ; void QGLShaderProgram::setUniformValueArray(int, int const *, int)
+ ?d_func@QGLFramebufferObject@@AAEPAVQGLFramebufferObjectPrivate@@XZ @ 201 NONAME ; class QGLFramebufferObjectPrivate * QGLFramebufferObject::d_func(void)
+ ?trUtf8@QGLWidget@@SA?AVQString@@PBD0H@Z @ 202 NONAME ; class QString QGLWidget::trUtf8(char const *, char const *, int)
+ ?qt_metacast@QGraphicsShaderEffect@@UAEPAXPBD@Z @ 203 NONAME ; void * QGraphicsShaderEffect::qt_metacast(char const *)
+ ?init@QGLShaderProgram@@AAE_NXZ @ 204 NONAME ; bool QGLShaderProgram::init(void)
+ ?doneCurrent@QGLWidget@@QAEXXZ @ 205 NONAME ; void QGLWidget::doneCurrent(void)
+ ?setUniformValue@QGLShaderProgram@@QAEXPBDABV?$QGenericMatrix@$02$02M@@@Z @ 206 NONAME ; void QGLShaderProgram::setUniformValue(char const *, class QGenericMatrix<3, 3, float> const &)
+ ?setUniformValue@QGLShaderProgram@@QAEXPBDMMMM@Z @ 207 NONAME ; void QGLShaderProgram::setUniformValue(char const *, float, float, float, float)
+ ?requestedFormat@QGLContext@@QBE?AVQGLFormat@@XZ @ 208 NONAME ; class QGLFormat QGLContext::requestedFormat(void) const
+ ?fillTexture@QGLTextureGlyphCache@@UAEXABUCoord@QTextureGlyphCache@@I@Z @ 209 NONAME ; void QGLTextureGlyphCache::fillTexture(struct QTextureGlyphCache::Coord const &, unsigned int)
+ ?isNativePaintingActive@QGL2PaintEngineEx@@QBE_NXZ @ 210 NONAME ; bool QGL2PaintEngineEx::isNativePaintingActive(void) const
+ ?accumBufferSize@QGLFormat@@QBEHXZ @ 211 NONAME ; int QGLFormat::accumBufferSize(void) const
+ ?setAttributeValue@QGLShaderProgram@@QAEXHPBMHH@Z @ 212 NONAME ; void QGLShaderProgram::setAttributeValue(int, float const *, int, int)
+ ?doubleBuffer@QGLWidget@@QBE_NXZ @ 213 NONAME ; bool QGLWidget::doubleBuffer(void) const
+ ?bindTexture@QGLContext@@QAEIABVQString@@@Z @ 214 NONAME ; unsigned int QGLContext::bindTexture(class QString const &)
+ ??0QGLFramebufferObject@@QAE@ABVQSize@@ABVQGLFramebufferObjectFormat@@@Z @ 215 NONAME ; QGLFramebufferObject::QGLFramebufferObject(class QSize const &, class QGLFramebufferObjectFormat const &)
+ ?bind@QGLFramebufferObject@@QAE_NXZ @ 216 NONAME ; bool QGLFramebufferObject::bind(void)
+ ?stroke@QGL2PaintEngineEx@@UAEXABVQVectorPath@@ABVQPen@@@Z @ 217 NONAME ; void QGL2PaintEngineEx::stroke(class QVectorPath const &, class QPen const &)
+ ?format@QGLWidget@@QBE?AVQGLFormat@@XZ @ 218 NONAME ; class QGLFormat QGLWidget::format(void) const
+ ?qt_metacall@QGLWidget@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 219 NONAME ; int QGLWidget::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?setUniformValue@QGLShaderProgram@@QAEXHABVQSizeF@@@Z @ 220 NONAME ; void QGLShaderProgram::setUniformValue(int, class QSizeF const &)
+ ?setGreenBufferSize@QGLFormat@@QAEXH@Z @ 221 NONAME ; void QGLFormat::setGreenBufferSize(int)
+ ?setAttributeValue@QGLShaderProgram@@QAEXPBDM@Z @ 222 NONAME ; void QGLShaderProgram::setAttributeValue(char const *, float)
+ ?setAttributeArray@QGLShaderProgram@@QAEXHPBVQVector4D@@H@Z @ 223 NONAME ; void QGLShaderProgram::setAttributeArray(int, class QVector4D const *, int)
+ ?setValid@QGLContext@@IAEX_N@Z @ 224 NONAME ; void QGLContext::setValid(bool)
+ ?trUtf8@QGraphicsShaderEffect@@SA?AVQString@@PBD0@Z @ 225 NONAME ; class QString QGraphicsShaderEffect::trUtf8(char const *, char const *)
+ ?aboutToDestroyContext@QGLSignalProxy@@IAEXPBVQGLContext@@@Z @ 226 NONAME ; void QGLSignalProxy::aboutToDestroyContext(class QGLContext const *)
+ ??0QGraphicsShaderEffect@@QAE@PAVQObject@@@Z @ 227 NONAME ; QGraphicsShaderEffect::QGraphicsShaderEffect(class QObject *)
+ ?deviceIsPixmap@QGLContext@@IBE_NXZ @ 228 NONAME ; bool QGLContext::deviceIsPixmap(void) const
+ ??1QGraphicsShaderEffect@@UAE@XZ @ 229 NONAME ; QGraphicsShaderEffect::~QGraphicsShaderEffect(void)
+ ??1QGLPaintDevice@@UAE@XZ @ 230 NONAME ; QGLPaintDevice::~QGLPaintDevice(void)
+ ?setGeometryInputType@QGLShaderProgram@@QAEXI@Z @ 231 NONAME ; void QGLShaderProgram::setGeometryInputType(unsigned int)
+ ?isValid@QGLPixmapData@@ABE_NXZ @ 232 NONAME ; bool QGLPixmapData::isValid(void) const
+ ?cleanup@QGLContextResource@@QAEXPBVQGLContext@@PAX@Z @ 233 NONAME ; void QGLContextResource::cleanup(class QGLContext const *, void *)
+ ?context@QGLWidget@@QBEPBVQGLContext@@XZ @ 234 NONAME ; class QGLContext const * QGLWidget::context(void) const
+ ?tr@QGLShaderProgram@@SA?AVQString@@PBD0H@Z @ 235 NONAME ; class QString QGLShaderProgram::tr(char const *, char const *, int)
+ ??0QGLPixelBuffer@@QAE@HHABVQGLFormat@@PAVQGLWidget@@@Z @ 236 NONAME ; QGLPixelBuffer::QGLPixelBuffer(int, int, class QGLFormat const &, class QGLWidget *)
+ ?setUniformValueArray@QGLShaderProgram@@QAEXHPBV?$QGenericMatrix@$01$03M@@H@Z @ 237 NONAME ; void QGLShaderProgram::setUniformValueArray(int, class QGenericMatrix<2, 4, float> const *, int)
+ ?release@QGLFramebufferObject@@QAE_NXZ @ 238 NONAME ; bool QGLFramebufferObject::release(void)
+ ?chooseContext@QGLContext@@MAE_NPBV1@@Z @ 239 NONAME ; bool QGLContext::chooseContext(class QGLContext const *)
+ ?setUniformValueArray@QGLShaderProgram@@QAEXPBDPBV?$QGenericMatrix@$02$01M@@H@Z @ 240 NONAME ; void QGLShaderProgram::setUniformValueArray(char const *, class QGenericMatrix<3, 2, float> const *, int)
+ ?greenBufferSize@QGLFormat@@QBEHXZ @ 241 NONAME ; int QGLFormat::greenBufferSize(void) const
+ ?detach@QGLColormap@@QAEXXZ @ 242 NONAME ; void QGLColormap::detach(void)
+ ??0QGLWidget@@QAE@ABVQGLFormat@@PAVQWidget@@PBV0@V?$QFlags@W4WindowType@Qt@@@@@Z @ 243 NONAME ; QGLWidget::QGLWidget(class QGLFormat const &, class QWidget *, class QGLWidget const *, class QFlags<enum Qt::WindowType>)
+ ?allocate@QGLBuffer@@QAEXPBXH@Z @ 244 NONAME ; void QGLBuffer::allocate(void const *, int)
+ ?setDirty@QGLEngineShaderManager@@QAEXXZ @ 245 NONAME ; void QGLEngineShaderManager::setDirty(void)
+ ?setCustomStage@QGLEngineShaderManager@@QAEXPAVQGLCustomShaderStage@@@Z @ 246 NONAME ; void QGLEngineShaderManager::setCustomStage(class QGLCustomShaderStage *)
+ ?programId@QGLShaderProgram@@QBEIXZ @ 247 NONAME ; unsigned int QGLShaderProgram::programId(void) const
+ ?glyphPadding@QGLTextureGlyphCache@@UBEHXZ @ 248 NONAME ; int QGLTextureGlyphCache::glyphPadding(void) const
+ ?texture@QGLFramebufferObject@@QBEIXZ @ 249 NONAME ; unsigned int QGLFramebufferObject::texture(void) const
+ ??0QGLFramebufferObject@@QAE@HHI@Z @ 250 NONAME ; QGLFramebufferObject::QGLFramebufferObject(int, int, unsigned int)
+ ?size@QGLBuffer@@QBEHXZ @ 251 NONAME ; int QGLBuffer::size(void) const
+ ?maxGeometryOutputVertices@QGLShaderProgram@@QBEHXZ @ 252 NONAME ; int QGLShaderProgram::maxGeometryOutputVertices(void) const
+ ?setAttributeBuffer@QGLShaderProgram@@QAEXPBDIHHH@Z @ 253 NONAME ; void QGLShaderProgram::setAttributeBuffer(char const *, unsigned int, int, int, int)
+ ?setOverlay@QGLFormat@@QAEX_N@Z @ 254 NONAME ; void QGLFormat::setOverlay(bool)
+ ?beginPaint@QGLWindowSurface@@UAEXABVQRegion@@@Z @ 255 NONAME ; void QGLWindowSurface::beginPaint(class QRegion const &)
+ ?compileSourceCode@QGLShader@@QAE_NPBD@Z @ 256 NONAME ; bool QGLShader::compileSourceCode(char const *)
+ ?createWindowSurface@QGLGraphicsSystem@@UBEPAVQWindowSurface@@PAVQWidget@@@Z @ 257 NONAME ; class QWindowSurface * QGLGraphicsSystem::createWindowSurface(class QWidget *) const
+ ?shaderId@QGLShader@@QBEIXZ @ 258 NONAME ; unsigned int QGLShader::shaderId(void) const
+ ?ensureActive@QGL2PaintEngineEx@@QAEXXZ @ 259 NONAME ; void QGL2PaintEngineEx::ensureActive(void)
+ ?qt_metacall@QGLEngineShaderManager@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 260 NONAME ; int QGLEngineShaderManager::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?drawTexture@QGLWidget@@QAEXABVQPointF@@II@Z @ 261 NONAME ; void QGLWidget::drawTexture(class QPointF const &, unsigned int, unsigned int)
+ ?setStencil@QGLFormat@@QAEX_N@Z @ 262 NONAME ; void QGLFormat::setStencil(bool)
+ ?type@QGL2PaintEngineEx@@UBE?AW4Type@QPaintEngine@@XZ @ 263 NONAME ; enum QPaintEngine::Type QGL2PaintEngineEx::type(void) const
+ ?compileSourceFile@QGLShader@@QAE_NABVQString@@@Z @ 264 NONAME ; bool QGLShader::compileSourceFile(class QString const &)
+ ?d_func@QGraphicsShaderEffect@@ABEPBVQGraphicsShaderEffectPrivate@@XZ @ 265 NONAME ; class QGraphicsShaderEffectPrivate const * QGraphicsShaderEffect::d_func(void) const
+ ?deleteTexture@QGLWidget@@QAEXI@Z @ 266 NONAME ; void QGLWidget::deleteTexture(unsigned int)
+ ?tr@QGLWindowSurface@@SA?AVQString@@PBD0H@Z @ 267 NONAME ; class QString QGLWindowSurface::tr(char const *, char const *, int)
+ ?d_func@QGLBuffer@@ABEPBVQGLBufferPrivate@@XZ @ 268 NONAME ; class QGLBufferPrivate const * QGLBuffer::d_func(void) const
+ ?buffer@QGLWindowSurface@@UAEPAVQImage@@PBVQWidget@@@Z @ 269 NONAME ; class QImage * QGLWindowSurface::buffer(class QWidget const *)
+ ?texture@QGLTextureGlyphCache@@QBEIXZ @ 270 NONAME ; unsigned int QGLTextureGlyphCache::texture(void) const
+ ?staticMetaObject@QGraphicsShaderEffect@@2UQMetaObject@@B @ 271 NONAME ; struct QMetaObject const QGraphicsShaderEffect::staticMetaObject
+ ?uniformLocation@QGLShaderProgram@@QBEHPBD@Z @ 272 NONAME ; int QGLShaderProgram::uniformLocation(char const *) const
+ ?profile@QGLFormat@@QBE?AW4OpenGLContextProfile@1@XZ @ 273 NONAME ; enum QGLFormat::OpenGLContextProfile QGLFormat::profile(void) const
+ ?setUniformValue@QGLShaderProgram@@QAEXHABV?$QGenericMatrix@$01$03M@@@Z @ 274 NONAME ; void QGLShaderProgram::setUniformValue(int, class QGenericMatrix<2, 4, float> const &)
+ ?bindDefault@QGLFramebufferObject@@SA_NXZ @ 275 NONAME ; bool QGLFramebufferObject::bindDefault(void)
+ ?internalTextureFormat@QGLFramebufferObjectFormat@@QBEIXZ @ 276 NONAME ; unsigned int QGLFramebufferObjectFormat::internalTextureFormat(void) const
+ ??4QGLBuffer@@QAEAAV0@ABV0@@Z @ 277 NONAME ; class QGLBuffer & QGLBuffer::operator=(class QGLBuffer const &)
+ ?bindTexture@QGLWidget@@QAEIABVQImage@@IH@Z @ 278 NONAME ; unsigned int QGLWidget::bindTexture(class QImage const &, unsigned int, int)
+ ?surfaceFormat@QGLWindowSurface@@2VQGLFormat@@A @ 279 NONAME ; class QGLFormat QGLWindowSurface::surfaceFormat
+ ??0QGLGraphicsSystem@@QAE@_N@Z @ 280 NONAME ; QGLGraphicsSystem::QGLGraphicsSystem(bool)
+ ??0QGLShaderProgram@@QAE@PBVQGLContext@@PAVQObject@@@Z @ 281 NONAME ; QGLShaderProgram::QGLShaderProgram(class QGLContext const *, class QObject *)
+ ?setUniformValueArray@QGLShaderProgram@@QAEXPBDPBV?$QGenericMatrix@$03$02M@@H@Z @ 282 NONAME ; void QGLShaderProgram::setUniformValueArray(char const *, class QGenericMatrix<4, 3, float> const *, int)
+ ??0QGLShaderProgram@@QAE@PAVQObject@@@Z @ 283 NONAME ; QGLShaderProgram::QGLShaderProgram(class QObject *)
+ ?qt_metacast@QGLTextureGlyphCache@@UAEPAXPBD@Z @ 284 NONAME ; void * QGLTextureGlyphCache::qt_metacast(char const *)
+ ?staticMetaObject@QGLEngineShaderManager@@2UQMetaObject@@B @ 285 NONAME ; struct QMetaObject const QGLEngineShaderManager::staticMetaObject
+ ?setDevice@QGLContext@@IAEXPAVQPaintDevice@@@Z @ 286 NONAME ; void QGLContext::setDevice(class QPaintDevice *)
+ ?setUniformValueArray@QGLShaderProgram@@QAEXHPBV?$QGenericMatrix@$02$01M@@H@Z @ 287 NONAME ; void QGLShaderProgram::setUniformValueArray(int, class QGenericMatrix<3, 2, float> const *, int)
+ ?setUniformValue@QGLShaderProgram@@QAEXPBDABV?$QGenericMatrix@$03$02M@@@Z @ 288 NONAME ; void QGLShaderProgram::setUniformValue(char const *, class QGenericMatrix<4, 3, float> const &)
+ ?setAttributeArray@QGLShaderProgram@@QAEXHIPBXHH@Z @ 289 NONAME ; void QGLShaderProgram::setAttributeArray(int, unsigned int, void const *, int, int)
+ ?tr@QGLTextureGlyphCache@@SA?AVQString@@PBD0H@Z @ 290 NONAME ; class QString QGLTextureGlyphCache::tr(char const *, char const *, int)
+ ?setDefaultOverlayFormat@QGLFormat@@SAXABV1@@Z @ 291 NONAME ; void QGLFormat::setDefaultOverlayFormat(class QGLFormat const &)
+ ?qt_gl_share_widget@@YAPAVQGLWidget@@XZ @ 292 NONAME ; class QGLWidget * qt_gl_share_widget(void)
+ ?initializeOverlayGL@QGLWidget@@MAEXXZ @ 293 NONAME ; void QGLWidget::initializeOverlayGL(void)
+ ?setUniformValue@QGLShaderProgram@@QAEXHMM@Z @ 294 NONAME ; void QGLShaderProgram::setUniformValue(int, float, float)
+ ?attributeLocation@QGLShaderProgram@@QBEHPBD@Z @ 295 NONAME ; int QGLShaderProgram::attributeLocation(char const *) const
+ ?setAttributeArray@QGLShaderProgram@@QAEXPBDPBVQVector3D@@H@Z @ 296 NONAME ; void QGLShaderProgram::setAttributeArray(char const *, class QVector3D const *, int)
+ ?setInternalTextureFormat@QGLFramebufferObjectFormat@@QAEXI@Z @ 297 NONAME ; void QGLFramebufferObjectFormat::setInternalTextureFormat(unsigned int)
+ ?glDraw@QGLWidget@@MAEXXZ @ 298 NONAME ; void QGLWidget::glDraw(void)
+ ?blueBufferSize@QGLFormat@@QBEHXZ @ 299 NONAME ; int QGLFormat::blueBufferSize(void) const
+ ?createTextureData@QGLTextureGlyphCache@@UAEXHH@Z @ 300 NONAME ; void QGLTextureGlyphCache::createTextureData(int, int)
+ ?opacityChanged@QGL2PaintEngineEx@@UAEXXZ @ 301 NONAME ; void QGL2PaintEngineEx::opacityChanged(void)
+ ?setUniformValue@QGLShaderProgram@@QAEXHABV?$QGenericMatrix@$01$01M@@@Z @ 302 NONAME ; void QGLShaderProgram::setUniformValue(int, class QGenericMatrix<2, 2, float> const &)
+ ?addShaderFromSourceCode@QGLShaderProgram@@QAE_NV?$QFlags@W4ShaderTypeBit@QGLShader@@@@PBD@Z @ 303 NONAME ; bool QGLShaderProgram::addShaderFromSourceCode(class QFlags<enum QGLShader::ShaderTypeBit>, char const *)
+ ?accum@QGLFormat@@QBE_NXZ @ 304 NONAME ; bool QGLFormat::accum(void) const
+ ?transformChanged@QGL2PaintEngineEx@@UAEXXZ @ 305 NONAME ; void QGL2PaintEngineEx::transformChanged(void)
+ ?trUtf8@QGraphicsShaderEffect@@SA?AVQString@@PBD0H@Z @ 306 NONAME ; class QString QGraphicsShaderEffect::trUtf8(char const *, char const *, int)
+ ?metaObject@QGLWidget@@UBEPBUQMetaObject@@XZ @ 307 NONAME ; struct QMetaObject const * QGLWidget::metaObject(void) const
+ ?setBlueBufferSize@QGLFormat@@QAEXH@Z @ 308 NONAME ; void QGLFormat::setBlueBufferSize(int)
+ ?useSimpleProgram@QGLEngineShaderManager@@QAEXXZ @ 309 NONAME ; void QGLEngineShaderManager::useSimpleProgram(void)
+ ?trUtf8@QGLWidget@@SA?AVQString@@PBD0@Z @ 310 NONAME ; class QString QGLWidget::trUtf8(char const *, char const *)
+ ??_EQGLPixmapData@@UAE@I@Z @ 311 NONAME ; QGLPixmapData::~QGLPixmapData(unsigned int)
+ ?setPixelShaderFragment@QGraphicsShaderEffect@@QAEXABVQByteArray@@@Z @ 312 NONAME ; void QGraphicsShaderEffect::setPixelShaderFragment(class QByteArray const &)
+ ?setAttributeValue@QGLShaderProgram@@QAEXHABVQVector4D@@@Z @ 313 NONAME ; void QGLShaderProgram::setAttributeValue(int, class QVector4D const &)
+ ?setAttributeValue@QGLShaderProgram@@QAEXPBDMMM@Z @ 314 NONAME ; void QGLShaderProgram::setAttributeValue(char const *, float, float, float)
+ ??1QGLShader@@UAE@XZ @ 315 NONAME ; QGLShader::~QGLShader(void)
+ ?setUniformValueArray@QGLShaderProgram@@QAEXHPBIH@Z @ 316 NONAME ; void QGLShaderProgram::setUniformValueArray(int, unsigned int const *, int)
+ ?fromImage@QGLPixmapData@@UAEXABVQImage@@V?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 317 NONAME ; void QGLPixmapData::fromImage(class QImage const &, class QFlags<enum Qt::ImageConversionFlag>)
+ ?shaderType@QGLShader@@QBE?AV?$QFlags@W4ShaderTypeBit@QGLShader@@@@XZ @ 318 NONAME ; class QFlags<enum QGLShader::ShaderTypeBit> QGLShader::shaderType(void) const
+ ?reset@QGLContext@@QAEXXZ @ 319 NONAME ; void QGLContext::reset(void)
+ ??BQGLShareContextScope@@QAEPAVQGLContext@@XZ @ 320 NONAME ; QGLShareContextScope::operator class QGLContext *(void)
+ ?createPixmapData@QGLGraphicsSystem@@UBEPAVQPixmapData@@W4PixelType@2@@Z @ 321 NONAME ; class QPixmapData * QGLGraphicsSystem::createPixmapData(enum QPixmapData::PixelType) const
+ ?setUniformValueArray@QGLShaderProgram@@QAEXHPBVQVector3D@@H@Z @ 322 NONAME ; void QGLShaderProgram::setUniformValueArray(int, class QVector3D const *, int)
+ ?paintOverlayGL@QGLWidget@@MAEXXZ @ 323 NONAME ; void QGLWidget::paintOverlayGL(void)
+ ??6@YA?AVQDebug@@V0@ABVQGLFormat@@@Z @ 324 NONAME ; class QDebug operator<<(class QDebug, class QGLFormat const &)
+ ?ensureActiveTarget@QGLPaintDevice@@UAEXXZ @ 325 NONAME ; void QGLPaintDevice::ensureActiveTarget(void)
+ ?swapInterval@QGLFormat@@QBEHXZ @ 326 NONAME ; int QGLFormat::swapInterval(void) const
+ ?setUniformValue@QGLShaderProgram@@QAEXHM@Z @ 327 NONAME ; void QGLShaderProgram::setUniformValue(int, float)
+ ?map@QGLBuffer@@QAEPAXW4Access@1@@Z @ 328 NONAME ; void * QGLBuffer::map(enum QGLBuffer::Access)
+ ?setUniformValue@QGLShaderProgram@@QAEXPBDABVQTransform@@@Z @ 329 NONAME ; void QGLShaderProgram::setUniformValue(char const *, class QTransform const &)
+ ?shaders@QGLShaderProgram@@QBE?AV?$QList@PAVQGLShader@@@@XZ @ 330 NONAME ; class QList<class QGLShader *> QGLShaderProgram::shaders(void) const
+ ?drawTexture@QGLPixelBuffer@@QAEXABVQRectF@@II@Z @ 331 NONAME ; void QGLPixelBuffer::drawTexture(class QRectF const &, unsigned int, unsigned int)
+ ??1QGLSharedResourceGuard@@QAE@XZ @ 332 NONAME ; QGLSharedResourceGuard::~QGLSharedResourceGuard(void)
+ ?textureCacheLimit@QGLContext@@SAHXZ @ 333 NONAME ; int QGLContext::textureCacheLimit(void)
+ ??0QGLPaintDevice@@QAE@XZ @ 334 NONAME ; QGLPaintDevice::QGLPaintDevice(void)
+ ??0QGLColormap@@QAE@ABV0@@Z @ 335 NONAME ; QGLColormap::QGLColormap(class QGLColormap const &)
+ ?setUniformValue@QGLShaderProgram@@QAEXPBDABVQSizeF@@@Z @ 336 NONAME ; void QGLShaderProgram::setUniformValue(char const *, class QSizeF const &)
+ ?tr@QGLWindowSurface@@SA?AVQString@@PBD0@Z @ 337 NONAME ; class QString QGLWindowSurface::tr(char const *, char const *)
+ ?setUniformValueArray@QGLShaderProgram@@QAEXHPBV?$QGenericMatrix@$03$02M@@H@Z @ 338 NONAME ; void QGLShaderProgram::setUniformValueArray(int, class QGenericMatrix<4, 3, float> const *, int)
+ ?setAutoBufferSwap@QGLWidget@@IAEX_N@Z @ 339 NONAME ; void QGLWidget::setAutoBufferSwap(bool)
+ ?isSharing@QGLContext@@QBE_NXZ @ 340 NONAME ; bool QGLContext::isSharing(void) const
+ ?setAttributeValue@QGLShaderProgram@@QAEXHMMMM@Z @ 341 NONAME ; void QGLShaderProgram::setAttributeValue(int, float, float, float, float)
+ ?metaObject@QGLEngineShaderManager@@UBEPBUQMetaObject@@XZ @ 342 NONAME ; struct QMetaObject const * QGLEngineShaderManager::metaObject(void) const
+ ?metaObject@QGraphicsShaderEffect@@UBEPBUQMetaObject@@XZ @ 343 NONAME ; struct QMetaObject const * QGraphicsShaderEffect::metaObject(void) const
+ ?setSampleBuffers@QGLFormat@@QAEX_N@Z @ 344 NONAME ; void QGLFormat::setSampleBuffers(bool)
+ ?trUtf8@QGLShader@@SA?AVQString@@PBD0@Z @ 345 NONAME ; class QString QGLShader::trUtf8(char const *, char const *)
+ ??4QGLFormat@@QAEAAV0@ABV0@@Z @ 346 NONAME ; class QGLFormat & QGLFormat::operator=(class QGLFormat const &)
+ ?setAttributeValue@QGLShaderProgram@@QAEXPBDABVQVector3D@@@Z @ 347 NONAME ; void QGLShaderProgram::setAttributeValue(char const *, class QVector3D const &)
+ ??_EQGLSignalProxy@@UAE@I@Z @ 348 NONAME ; QGLSignalProxy::~QGLSignalProxy(unsigned int)
+ ?setUniformValue@QGLShaderProgram@@QAEXPBDABVQVector4D@@@Z @ 349 NONAME ; void QGLShaderProgram::setUniformValue(char const *, class QVector4D const &)
+ ?setUniformValue@QGLShaderProgram@@QAEXHMMMM@Z @ 350 NONAME ; void QGLShaderProgram::setUniformValue(int, float, float, float, float)
+ ?generateFontDisplayLists@QGLContext@@IAEXABVQFont@@H@Z @ 351 NONAME ; void QGLContext::generateFontDisplayLists(class QFont const &, int)
+ ?setAttributeValue@QGLShaderProgram@@QAEXHABVQVector2D@@@Z @ 352 NONAME ; void QGLShaderProgram::setAttributeValue(int, class QVector2D const &)
+ ?setUniformValue@QGLShaderProgram@@QAEXHABV?$QGenericMatrix@$02$03M@@@Z @ 353 NONAME ; void QGLShaderProgram::setUniformValue(int, class QGenericMatrix<3, 4, float> const &)
+ ?d_func@QGLShaderProgram@@AAEPAVQGLShaderProgramPrivate@@XZ @ 354 NONAME ; class QGLShaderProgramPrivate * QGLShaderProgram::d_func(void)
+ ?setUniformValueArray@QGLShaderProgram@@QAEXPBDPBHH@Z @ 355 NONAME ; void QGLShaderProgram::setUniformValueArray(char const *, int const *, int)
+ ??_EQGL2PaintEngineEx@@UAE@I@Z @ 356 NONAME ; QGL2PaintEngineEx::~QGL2PaintEngineEx(unsigned int)
+ ??0QGLFramebufferObject@@QAE@ABVQSize@@W4Attachment@0@II@Z @ 357 NONAME ; QGLFramebufferObject::QGLFramebufferObject(class QSize const &, enum QGLFramebufferObject::Attachment, unsigned int, unsigned int)
+ ??_EQGLEngineShaderManager@@UAE@I@Z @ 358 NONAME ; QGLEngineShaderManager::~QGLEngineShaderManager(unsigned int)
+ ?d_func@QGLFramebufferObject@@ABEPBVQGLFramebufferObjectPrivate@@XZ @ 359 NONAME ; class QGLFramebufferObjectPrivate const * QGLFramebufferObject::d_func(void) const
+ ?tr@QGLShader@@SA?AVQString@@PBD0H@Z @ 360 NONAME ; class QString QGLShader::tr(char const *, char const *, int)
+ ?setUniformValueArray@QGLShaderProgram@@QAEXPBDPBVQVector4D@@H@Z @ 361 NONAME ; void QGLShaderProgram::setUniformValueArray(char const *, class QVector4D const *, int)
+ ?addShaderFromSourceFile@QGLShaderProgram@@QAE_NV?$QFlags@W4ShaderTypeBit@QGLShader@@@@ABVQString@@@Z @ 362 NONAME ; bool QGLShaderProgram::addShaderFromSourceFile(class QFlags<enum QGLShader::ShaderTypeBit>, class QString const &)
+ ?copy@QGLPixmapData@@UAEXPBVQPixmapData@@ABVQRect@@@Z @ 363 NONAME ; void QGLPixmapData::copy(class QPixmapData const *, class QRect const &)
+ ?samples@QGLFramebufferObjectFormat@@QBEHXZ @ 364 NONAME ; int QGLFramebufferObjectFormat::samples(void) const
+ ?setInactive@QGLCustomShaderStage@@QAEXXZ @ 365 NONAME ; void QGLCustomShaderStage::setInactive(void)
+ ?extensionFuncs@QGLContextPrivate@@SAAAUQGLExtensionFuncs@@PBVQGLContext@@@Z @ 366 NONAME ; struct QGLExtensionFuncs & QGLContextPrivate::extensionFuncs(class QGLContext const *)
+ ?value@QGLContextResource@@QAEPAXPBVQGLContext@@@Z @ 367 NONAME ; void * QGLContextResource::value(class QGLContext const *)
+ ?majorVersion@QGLFormat@@QBEHXZ @ 368 NONAME ; int QGLFormat::majorVersion(void) const
+ ?rgba@QGLFormat@@QBE_NXZ @ 369 NONAME ; bool QGLFormat::rgba(void) const
+ ?paintDevice@QGLWindowSurface@@UAEPAVQPaintDevice@@XZ @ 370 NONAME ; class QPaintDevice * QGLWindowSurface::paintDevice(void)
+ ?setStencilBufferSize@QGLFormat@@QAEXH@Z @ 371 NONAME ; void QGLFormat::setStencilBufferSize(int)
+ ??1QGLEngineShaderManager@@UAE@XZ @ 372 NONAME ; QGLEngineShaderManager::~QGLEngineShaderManager(void)
+ ?qt_metacall@QGLShaderProgram@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 373 NONAME ; int QGLShaderProgram::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?setUniformValue@QGLShaderProgram@@QAEXPBDABVQVector2D@@@Z @ 374 NONAME ; void QGLShaderProgram::setUniformValue(char const *, class QVector2D const &)
+ ?bind@QGLPixmapData@@QBEI_N@Z @ 375 NONAME ; unsigned int QGLPixmapData::bind(bool) const
+ ?setDepth@QGLFormat@@QAEX_N@Z @ 376 NONAME ; void QGLFormat::setDepth(bool)
+ ?paintGL@QGLWidget@@MAEXXZ @ 377 NONAME ; void QGLWidget::paintGL(void)
+ ??0QGLContext@@QAE@ABVQGLFormat@@PAVQPaintDevice@@@Z @ 378 NONAME ; QGLContext::QGLContext(class QGLFormat const &, class QPaintDevice *)
+ ?setUniformValue@QGLShaderProgram@@QAEXHABV?$QGenericMatrix@$02$01M@@@Z @ 379 NONAME ; void QGLShaderProgram::setUniformValue(int, class QGenericMatrix<3, 2, float> const &)
+ ?drawPixmap@QGL2PaintEngineEx@@UAEXABVQRectF@@ABVQPixmap@@0@Z @ 380 NONAME ; void QGL2PaintEngineEx::drawPixmap(class QRectF const &, class QPixmap const &, class QRectF const &)
+ ?getUniformLocation@QGLEngineShaderManager@@QAEIW4Uniform@1@@Z @ 381 NONAME ; unsigned int QGLEngineShaderManager::getUniformLocation(enum QGLEngineShaderManager::Uniform)
+ ?setUniformValueArray@QGLShaderProgram@@QAEXPBDPBV?$QGenericMatrix@$01$02M@@H@Z @ 382 NONAME ; void QGLShaderProgram::setUniformValueArray(char const *, class QGenericMatrix<2, 3, float> const *, int)
+ ??0QGLEngineShaderManager@@QAE@PAVQGLContext@@@Z @ 383 NONAME ; QGLEngineShaderManager::QGLEngineShaderManager(class QGLContext *)
+ ?deleted@QGLWindowSurface@@AAEXPAVQObject@@@Z @ 384 NONAME ; void QGLWindowSurface::deleted(class QObject *)
+ ?source@QGLCustomShaderStage@@QBE?AVQByteArray@@XZ @ 385 NONAME ; class QByteArray QGLCustomShaderStage::source(void) const
+ ?d_func@QGLPixelBuffer@@AAEPAVQGLPixelBufferPrivate@@XZ @ 386 NONAME ; class QGLPixelBufferPrivate * QGLPixelBuffer::d_func(void)
+ ??4QGLColormap@@QAEAAV0@ABV0@@Z @ 387 NONAME ; class QGLColormap & QGLColormap::operator=(class QGLColormap const &)
+ ?find@QGLColormap@@QBEHI@Z @ 388 NONAME ; int QGLColormap::find(unsigned int) const
+ ??1QGLColormap@@QAE@XZ @ 389 NONAME ; QGLColormap::~QGLColormap(void)
+ ?toImage@QGLPixelBuffer@@QBE?AVQImage@@XZ @ 390 NONAME ; class QImage QGLPixelBuffer::toImage(void) const
+ ?hasOpenGLOverlays@QGLFormat@@SA_NXZ @ 391 NONAME ; bool QGLFormat::hasOpenGLOverlays(void)
+ ?setMouseTracking@QGLWidget@@QAEX_N@Z @ 392 NONAME ; void QGLWidget::setMouseTracking(bool)
+ ?type@QGLBuffer@@QBE?AW4Type@1@XZ @ 393 NONAME ; enum QGLBuffer::Type QGLBuffer::type(void) const
+ ?fontDisplayListBase@QGLWidget@@IAEHABVQFont@@H@Z @ 394 NONAME ; int QGLWidget::fontDisplayListBase(class QFont const &, int)
+ ?addShaderFromSourceCode@QGLShaderProgram@@QAE_NV?$QFlags@W4ShaderTypeBit@QGLShader@@@@ABVQByteArray@@@Z @ 395 NONAME ; bool QGLShaderProgram::addShaderFromSourceCode(class QFlags<enum QGLShader::ShaderTypeBit>, class QByteArray const &)
+ ?bindTexture@QGLContext@@QAEIABVQPixmap@@IH@Z @ 396 NONAME ; unsigned int QGLContext::bindTexture(class QPixmap const &, unsigned int, int)
+ ?d_func@QGLWidget@@ABEPBVQGLWidgetPrivate@@XZ @ 397 NONAME ; class QGLWidgetPrivate const * QGLWidget::d_func(void) const
+ ?metric@QGLPaintDevice@@MBEHW4PaintDeviceMetric@QPaintDevice@@@Z @ 398 NONAME ; int QGLPaintDevice::metric(enum QPaintDevice::PaintDeviceMetric) const
+ ?drawTexture@QGLWidget@@QAEXABVQRectF@@II@Z @ 399 NONAME ; void QGLWidget::drawTexture(class QRectF const &, unsigned int, unsigned int)
+ ?isValid@QGLWidget@@QBE_NXZ @ 400 NONAME ; bool QGLWidget::isValid(void) const
+ ?shared_null@QGLColormap@@0UQGLColormapData@1@A @ 401 NONAME ; struct QGLColormap::QGLColormapData QGLColormap::shared_null
+ ?setUniformValue@QGLShaderProgram@@QAEXPBDQAY01M@Z @ 402 NONAME ; void QGLShaderProgram::setUniformValue(char const *, float [2] * const)
+ ?insert@QGLContextResource@@QAEXPBVQGLContext@@PAX@Z @ 403 NONAME ; void QGLContextResource::insert(class QGLContext const *, void *)
+ ??0QGLCustomShaderStage@@QAE@XZ @ 404 NONAME ; QGLCustomShaderStage::QGLCustomShaderStage(void)
+ ?setDefaultFormat@QGLFormat@@SAXABV1@@Z @ 405 NONAME ; void QGLFormat::setDefaultFormat(class QGLFormat const &)
+ ?sourceCode@QGLShader@@QBE?AVQByteArray@@XZ @ 406 NONAME ; class QByteArray QGLShader::sourceCode(void) const
+ ??8QGLFramebufferObjectFormat@@QBE_NABV0@@Z @ 407 NONAME ; bool QGLFramebufferObjectFormat::operator==(class QGLFramebufferObjectFormat const &) const
+ ?detach_helper@QGLColormap@@AAEXXZ @ 408 NONAME ; void QGLColormap::detach_helper(void)
+ ?setUniformValue@QGLShaderProgram@@QAEXHQAY01M@Z @ 409 NONAME ; void QGLShaderProgram::setUniformValue(int, float [2] * const)
+ ?compileSourceCode@QGLShader@@QAE_NABVQString@@@Z @ 410 NONAME ; bool QGLShader::compileSourceCode(class QString const &)
+ ?setUniformValueArray@QGLShaderProgram@@QAEXHPBVQMatrix4x4@@H@Z @ 411 NONAME ; void QGLShaderProgram::setUniformValueArray(int, class QMatrix4x4 const *, int)
+ ?invalidateState@QGL2PaintEngineEx@@QAEXXZ @ 412 NONAME ; void QGL2PaintEngineEx::invalidateState(void)
+ ?scroll@QGLWindowSurface@@UAE_NABVQRegion@@HH@Z @ 413 NONAME ; bool QGLWindowSurface::scroll(class QRegion const &, int, int)
+ ??4QGLFramebufferObjectFormat@@QAEAAV0@ABV0@@Z @ 414 NONAME ; class QGLFramebufferObjectFormat & QGLFramebufferObjectFormat::operator=(class QGLFramebufferObjectFormat const &)
+ ?bindAttributeLocation@QGLShaderProgram@@QAEXABVQByteArray@@H@Z @ 415 NONAME ; void QGLShaderProgram::bindAttributeLocation(class QByteArray const &, int)
+ ?pixelShaderFragment@QGraphicsShaderEffect@@QBE?AVQByteArray@@XZ @ 416 NONAME ; class QByteArray QGraphicsShaderEffect::pixelShaderFragment(void) const
+ ?size@QGLColormap@@QBEHXZ @ 417 NONAME ; int QGLColormap::size(void) const
+ ??0QGLShareContextScope@@QAE@PBVQGLContext@@@Z @ 418 NONAME ; QGLShareContextScope::QGLShareContextScope(class QGLContext const *)
+ ?removeAllShaders@QGLShaderProgram@@QAEXXZ @ 419 NONAME ; void QGLShaderProgram::removeAllShaders(void)
+ ??_EQGLShaderProgram@@UAE@I@Z @ 420 NONAME ; QGLShaderProgram::~QGLShaderProgram(unsigned int)
+ ?pixmapFilter@QGL2PaintEngineEx@@UAEPAVQPixmapFilter@@HPBV2@@Z @ 421 NONAME ; class QPixmapFilter * QGL2PaintEngineEx::pixmapFilter(int, class QPixmapFilter const *)
+ ?scroll@QGLPixmapData@@UAE_NHHABVQRect@@@Z @ 422 NONAME ; bool QGLPixmapData::scroll(int, int, class QRect const &)
+ ?contextDestroyed@QGLTextureGlyphCache@@QAEXPBVQGLContext@@@Z @ 423 NONAME ; void QGLTextureGlyphCache::contextDestroyed(class QGLContext const *)
+ ??0QGLColormap@@QAE@XZ @ 424 NONAME ; QGLColormap::QGLColormap(void)
+ ?metric@QGLFramebufferObject@@MBEHW4PaintDeviceMetric@QPaintDevice@@@Z @ 425 NONAME ; int QGLFramebufferObject::metric(enum QPaintDevice::PaintDeviceMetric) const
+ ?devType@QGLFramebufferObject@@MBEHXZ @ 426 NONAME ; int QGLFramebufferObject::devType(void) const
+ ?isValidContext@QGLPixmapData@@QBE_NPBVQGLContext@@@Z @ 427 NONAME ; bool QGLPixmapData::isValidContext(class QGLContext const *) const
+ ?directRendering@QGLFormat@@QBE_NXZ @ 428 NONAME ; bool QGLFormat::directRendering(void) const
+ ?metric@QGLPixelBuffer@@MBEHW4PaintDeviceMetric@QPaintDevice@@@Z @ 429 NONAME ; int QGLPixelBuffer::metric(enum QPaintDevice::PaintDeviceMetric) const
+ ??0QGLSharedResourceGuard@@QAE@PBVQGLContext@@@Z @ 430 NONAME ; QGLSharedResourceGuard::QGLSharedResourceGuard(class QGLContext const *)
+ ?setUniformValue@QGLShaderProgram@@QAEXPBDABV?$QGenericMatrix@$01$03M@@@Z @ 431 NONAME ; void QGLShaderProgram::setUniformValue(char const *, class QGenericMatrix<2, 4, float> const &)
+ ?trUtf8@QGLShaderProgram@@SA?AVQString@@PBD0@Z @ 432 NONAME ; class QString QGLShaderProgram::trUtf8(char const *, char const *)
+ ?fill@QGL2PaintEngineEx@@UAEXABVQVectorPath@@ABVQBrush@@@Z @ 433 NONAME ; void QGL2PaintEngineEx::fill(class QVectorPath const &, class QBrush const &)
+ ?disableAttributeArray@QGLShaderProgram@@QAEXPBD@Z @ 434 NONAME ; void QGLShaderProgram::disableAttributeArray(char const *)
+ ?paintEngine@QGLPixelBuffer@@UBEPAVQPaintEngine@@XZ @ 435 NONAME ; class QPaintEngine * QGLPixelBuffer::paintEngine(void) const
+ ?qt_metacall@QGLShader@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 436 NONAME ; int QGLShader::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?setUniformValue@QGLShaderProgram@@QAEXHMMM@Z @ 437 NONAME ; void QGLShaderProgram::setUniformValue(int, float, float, float)
+ ??1QGLFramebufferObject@@UAE@XZ @ 438 NONAME ; QGLFramebufferObject::~QGLFramebufferObject(void)
+ ?minorVersion@QGLFormat@@QBEHXZ @ 439 NONAME ; int QGLFormat::minorVersion(void) const
+ ?setAttributeValue@QGLShaderProgram@@QAEXHABVQColor@@@Z @ 440 NONAME ; void QGLShaderProgram::setAttributeValue(int, class QColor const &)
+ ?setUniformValueArray@QGLShaderProgram@@QAEXPBDPBVQMatrix4x4@@H@Z @ 441 NONAME ; void QGLShaderProgram::setUniformValueArray(char const *, class QMatrix4x4 const *, int)
+ ?setAttachment@QGLFramebufferObjectFormat@@QAEXW4Attachment@QGLFramebufferObject@@@Z @ 442 NONAME ; void QGLFramebufferObjectFormat::setAttachment(enum QGLFramebufferObject::Attachment)
+ ?setSwapInterval@QGLFormat@@QAEXH@Z @ 443 NONAME ; void QGLFormat::setSwapInterval(int)
+ ?event@QGLWidget@@MAE_NPAVQEvent@@@Z @ 444 NONAME ; bool QGLWidget::event(class QEvent *)
+ ?initializeGL@QGLWidget@@MAEXXZ @ 445 NONAME ; void QGLWidget::initializeGL(void)
+ ?setAttributeArray@QGLShaderProgram@@QAEXHPBVQVector3D@@H@Z @ 446 NONAME ; void QGLShaderProgram::setAttributeArray(int, class QVector3D const *, int)
+ ?hijackWindow@QGLWindowSurface@@AAEXPAVQWidget@@@Z @ 447 NONAME ; void QGLWindowSurface::hijackWindow(class QWidget *)
+ ?d_func@QGLShader@@ABEPBVQGLShaderPrivate@@XZ @ 448 NONAME ; class QGLShaderPrivate const * QGLShader::d_func(void) const
+ ?setUniformValue@QGLShaderProgram@@QAEXHABVQPointF@@@Z @ 449 NONAME ; void QGLShaderProgram::setUniformValue(int, class QPointF const &)
+ ?addShaderFromSourceCode@QGLShaderProgram@@QAE_NV?$QFlags@W4ShaderTypeBit@QGLShader@@@@ABVQString@@@Z @ 450 NONAME ; bool QGLShaderProgram::addShaderFromSourceCode(class QFlags<enum QGLShader::ShaderTypeBit>, class QString const &)
+ ?setUniformValueArray@QGLShaderProgram@@QAEXPBDPBV?$QGenericMatrix@$02$03M@@H@Z @ 451 NONAME ; void QGLShaderProgram::setUniformValueArray(char const *, class QGenericMatrix<3, 4, float> const *, int)
+ ?width@QGLTextureGlyphCache@@QBEHXZ @ 452 NONAME ; int QGLTextureGlyphCache::width(void) const
+ ?setAttributeValue@QGLShaderProgram@@QAEXHM@Z @ 453 NONAME ; void QGLShaderProgram::setAttributeValue(int, float)
+ ?resizeOverlayGL@QGLWidget@@MAEXHH@Z @ 454 NONAME ; void QGLWidget::resizeOverlayGL(int, int)
+ ?setUniformValueArray@QGLShaderProgram@@QAEXHPBV?$QGenericMatrix@$01$02M@@H@Z @ 455 NONAME ; void QGLShaderProgram::setUniformValueArray(int, class QGenericMatrix<2, 3, float> const *, int)
+ ?bufferId@QGLBuffer@@QBEIXZ @ 456 NONAME ; unsigned int QGLBuffer::bufferId(void) const
+ ?disableAttributeArray@QGLShaderProgram@@QAEXH@Z @ 457 NONAME ; void QGLShaderProgram::disableAttributeArray(int)
+ ?end@QGL2PaintEngineEx@@UAE_NXZ @ 458 NONAME ; bool QGL2PaintEngineEx::end(void)
+ ??0QGL2PaintEngineEx@@QAE@XZ @ 459 NONAME ; QGL2PaintEngineEx::QGL2PaintEngineEx(void)
+ ?trUtf8@QGLEngineShaderManager@@SA?AVQString@@PBD0@Z @ 460 NONAME ; class QString QGLEngineShaderManager::trUtf8(char const *, char const *)
+ ??1QGLTextureGlyphCache@@UAE@XZ @ 461 NONAME ; QGLTextureGlyphCache::~QGLTextureGlyphCache(void)
+ ?context@QGLSharedResourceGuard@@QBEPBVQGLContext@@XZ @ 462 NONAME ; class QGLContext const * QGLSharedResourceGuard::context(void) const
+ ?resizeEvent@QGLWidget@@MAEXPAVQResizeEvent@@@Z @ 463 NONAME ; void QGLWidget::resizeEvent(class QResizeEvent *)
+ ?setDoubleBuffer@QGLFormat@@QAEX_N@Z @ 464 NONAME ; void QGLFormat::setDoubleBuffer(bool)
+ ??1QGLBuffer@@QAE@XZ @ 465 NONAME ; QGLBuffer::~QGLBuffer(void)
+ ?id@QGLSharedResourceGuard@@QBEIXZ @ 466 NONAME ; unsigned int QGLSharedResourceGuard::id(void) const
+ ?d_func@QGL2PaintEngineEx@@AAEPAVQGL2PaintEngineExPrivate@@XZ @ 467 NONAME ; class QGL2PaintEngineExPrivate * QGL2PaintEngineEx::d_func(void)
+ ?resize@QGLPixmapData@@UAEXHH@Z @ 468 NONAME ; void QGLPixmapData::resize(int, int)
+ ?setUniformValue@QGLShaderProgram@@QAEXPBDABV?$QGenericMatrix@$01$01M@@@Z @ 469 NONAME ; void QGLShaderProgram::setUniformValue(char const *, class QGenericMatrix<2, 2, float> const &)
+ ?trUtf8@QGLTextureGlyphCache@@SA?AVQString@@PBD0H@Z @ 470 NONAME ; class QString QGLTextureGlyphCache::trUtf8(char const *, char const *, int)
+ ?begin@QGL2PaintEngineEx@@UAE_NPAVQPaintDevice@@@Z @ 471 NONAME ; bool QGL2PaintEngineEx::begin(class QPaintDevice *)
+ ?samples@QGLFormat@@QBEHXZ @ 472 NONAME ; int QGLFormat::samples(void) const
+ ?setFormat@QGLContext@@QAEXABVQGLFormat@@@Z @ 473 NONAME ; void QGLContext::setFormat(class QGLFormat const &)
+ ?trUtf8@QGLSignalProxy@@SA?AVQString@@PBD0@Z @ 474 NONAME ; class QString QGLSignalProxy::trUtf8(char const *, char const *)
+ ?setUniformValue@QGLShaderProgram@@QAEXHABVQVector3D@@@Z @ 475 NONAME ; void QGLShaderProgram::setUniformValue(int, class QVector3D const &)
+ ?alphaBufferSize@QGLFormat@@QBEHXZ @ 476 NONAME ; int QGLFormat::alphaBufferSize(void) const
+ ?deleteTexture@QGLPixelBuffer@@QAEXI@Z @ 477 NONAME ; void QGLPixelBuffer::deleteTexture(unsigned int)
+ ?qt_qgl_paint_engine@@YAPAVQPaintEngine@@XZ @ 478 NONAME ; class QPaintEngine * qt_qgl_paint_engine(void)
+ ?trUtf8@QGLSignalProxy@@SA?AVQString@@PBD0H@Z @ 479 NONAME ; class QString QGLSignalProxy::trUtf8(char const *, char const *, int)
+ ??1QGLWindowSurface@@UAE@XZ @ 480 NONAME ; QGLWindowSurface::~QGLWindowSurface(void)
+ ?bind@QGLBuffer@@QAE_NXZ @ 481 NONAME ; bool QGLBuffer::bind(void)
+ ?getStaticMetaObject@QGLWidget@@SAABUQMetaObject@@XZ @ 482 NONAME ; struct QMetaObject const & QGLWidget::getStaticMetaObject(void)
+ ??_EQGLPixelBuffer@@UAE@I@Z @ 483 NONAME ; QGLPixelBuffer::~QGLPixelBuffer(unsigned int)
+ ?clipEnabledChanged@QGL2PaintEngineEx@@UAEXXZ @ 484 NONAME ; void QGL2PaintEngineEx::clipEnabledChanged(void)
+ ??_EQGLGraphicsSystem@@UAE@I@Z @ 485 NONAME ; QGLGraphicsSystem::~QGLGraphicsSystem(unsigned int)
+ ?endNativePainting@QGL2PaintEngineEx@@UAEXXZ @ 486 NONAME ; void QGL2PaintEngineEx::endNativePainting(void)
+ ?setFormat@QGLWidget@@QAEXABVQGLFormat@@@Z @ 487 NONAME ; void QGLWidget::setFormat(class QGLFormat const &)
+ ?setOption@QGLFormat@@QAEXV?$QFlags@W4FormatOption@QGL@@@@@Z @ 488 NONAME ; void QGLFormat::setOption(class QFlags<enum QGL::FormatOption>)
+ ?shaderDestroyed@QGLShaderProgram@@AAEXXZ @ 489 NONAME ; void QGLShaderProgram::shaderDestroyed(void)
+ ?qt_metacall@QGLSignalProxy@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 490 NONAME ; int QGLSignalProxy::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?setId@QGLSharedResourceGuard@@QAEXI@Z @ 491 NONAME ; void QGLSharedResourceGuard::setId(unsigned int)
+ ?setUniformValue@QGLShaderProgram@@QAEXHABV?$QGenericMatrix@$03$01M@@@Z @ 492 NONAME ; void QGLShaderProgram::setUniformValue(int, class QGenericMatrix<4, 2, float> const &)
+ ?makeOverlayCurrent@QGLWidget@@QAEXXZ @ 493 NONAME ; void QGLWidget::makeOverlayCurrent(void)
+ ?setGeometryOutputVertexCount@QGLShaderProgram@@QAEXH@Z @ 494 NONAME ; void QGLShaderProgram::setGeometryOutputVertexCount(int)
+ ?setUniformValue@QGLShaderProgram@@QAEXPBDABVQSize@@@Z @ 495 NONAME ; void QGLShaderProgram::setUniformValue(char const *, class QSize const &)
+ ?convertToGLFormat@QGLWidget@@SA?AVQImage@@ABV2@@Z @ 496 NONAME ; class QImage QGLWidget::convertToGLFormat(class QImage const &)
+ ?staticMetaObject@QGLTextureGlyphCache@@2UQMetaObject@@B @ 497 NONAME ; struct QMetaObject const QGLTextureGlyphCache::staticMetaObject
+ ??_EQGLContextResource@@QAE@I@Z @ 498 NONAME ; QGLContextResource::~QGLContextResource(unsigned int)
+ ?handle@QGLColormap@@IAEKXZ @ 499 NONAME ; unsigned long QGLColormap::handle(void)
+ ?isCreated@QGLBuffer@@QBE_NXZ @ 500 NONAME ; bool QGLBuffer::isCreated(void) const
+ ?setColormap@QGLWidget@@QAEXABVQGLColormap@@@Z @ 501 NONAME ; void QGLWidget::setColormap(class QGLColormap const &)
+ ?instance@QGLSignalProxy@@SAPAV1@XZ @ 502 NONAME ; class QGLSignalProxy * QGLSignalProxy::instance(void)
+ ?setUniformValueArray@QGLShaderProgram@@QAEXPBDPBIH@Z @ 503 NONAME ; void QGLShaderProgram::setUniformValueArray(char const *, unsigned int const *, int)
+ ?isValid@QGLContext@@QBE_NXZ @ 504 NONAME ; bool QGLContext::isValid(void) const
+ ?currentCtx@QGLContext@@1PAV1@A @ 505 NONAME ; class QGLContext * QGLContext::currentCtx
+ ?hasOpenGLFramebufferObjects@QGLFramebufferObject@@SA_NXZ @ 506 NONAME ; bool QGLFramebufferObject::hasOpenGLFramebufferObjects(void)
+ ?compileSourceCode@QGLShader@@QAE_NABVQByteArray@@@Z @ 507 NONAME ; bool QGLShader::compileSourceCode(class QByteArray const &)
+ ?colormap@QGLWidget@@QBEABVQGLColormap@@XZ @ 508 NONAME ; class QGLColormap const & QGLWidget::colormap(void) const
+ ?getStaticMetaObject@QGLShaderProgram@@SAABUQMetaObject@@XZ @ 509 NONAME ; struct QMetaObject const & QGLShaderProgram::getStaticMetaObject(void)
+ ??_EQGLWidget@@UAE@I@Z @ 510 NONAME ; QGLWidget::~QGLWidget(unsigned int)
+ ?setStereo@QGLFormat@@QAEX_N@Z @ 511 NONAME ; void QGLFormat::setStereo(bool)
+ ?setAttributeValue@QGLShaderProgram@@QAEXPBDMM@Z @ 512 NONAME ; void QGLShaderProgram::setAttributeValue(char const *, float, float)
+ ?setAttributeValue@QGLShaderProgram@@QAEXHMMM@Z @ 513 NONAME ; void QGLShaderProgram::setAttributeValue(int, float, float, float)
+ ?context@QGLWindowSurface@@QBEPAVQGLContext@@XZ @ 514 NONAME ; class QGLContext * QGLWindowSurface::context(void) const
+ ?d_func@QGLBuffer@@AAEPAVQGLBufferPrivate@@XZ @ 515 NONAME ; class QGLBufferPrivate * QGLBuffer::d_func(void)
+ ?textureTarget@QGLFramebufferObjectFormat@@QBEIXZ @ 516 NONAME ; unsigned int QGLFramebufferObjectFormat::textureTarget(void) const
+ ?needsFill@QGLPixmapData@@ABE_NXZ @ 517 NONAME ; bool QGLPixmapData::needsFill(void) const
+ ??CQGLShareContextScope@@QAEPAVQGLContext@@XZ @ 518 NONAME ; class QGLContext * QGLShareContextScope::operator->(void)
+ ?setUniformValue@QGLShaderProgram@@QAEXPBDH@Z @ 519 NONAME ; void QGLShaderProgram::setUniformValue(char const *, int)
+ ?release@QGLBuffer@@SAXW4Type@1@@Z @ 520 NONAME ; void QGLBuffer::release(enum QGLBuffer::Type)
+ ??0QGLWidget@@QAE@PAVQWidget@@PBV0@V?$QFlags@W4WindowType@Qt@@@@@Z @ 521 NONAME ; QGLWidget::QGLWidget(class QWidget *, class QGLWidget const *, class QFlags<enum Qt::WindowType>)
+ ?stencilBufferSize@QGLFormat@@QBEHXZ @ 522 NONAME ; int QGLFormat::stencilBufferSize(void) const
+ ?getStaticMetaObject@QGLShader@@SAABUQMetaObject@@XZ @ 523 NONAME ; struct QMetaObject const & QGLShader::getStaticMetaObject(void)
+ ?setUniformValue@QGLShaderProgram@@QAEXPBDMM@Z @ 524 NONAME ; void QGLShaderProgram::setUniformValue(char const *, float, float)
+ ?log@QGLShader@@QBE?AVQString@@XZ @ 525 NONAME ; class QString QGLShader::log(void) const
+ ?setUniformValueArray@QGLShaderProgram@@QAEXHPBV?$QGenericMatrix@$02$03M@@H@Z @ 526 NONAME ; void QGLShaderProgram::setUniformValueArray(int, class QGenericMatrix<3, 4, float> const *, int)
+ ?setUniformValueArray@QGLShaderProgram@@QAEXPBDPBV?$QGenericMatrix@$03$01M@@H@Z @ 527 NONAME ; void QGLShaderProgram::setUniformValueArray(char const *, class QGenericMatrix<4, 2, float> const *, int)
+ ?qt_metacast@QGLWindowSurface@@UAEPAXPBD@Z @ 528 NONAME ; void * QGLWindowSurface::qt_metacast(char const *)
+ ?autoBufferSwap@QGLWidget@@IBE_NXZ @ 529 NONAME ; bool QGLWidget::autoBufferSwap(void) const
+ ?size@QGLFramebufferObject@@QBE?AVQSize@@XZ @ 530 NONAME ; class QSize QGLFramebufferObject::size(void) const
+ ??1QGL2PaintEngineEx@@UAE@XZ @ 531 NONAME ; QGL2PaintEngineEx::~QGL2PaintEngineEx(void)
+ ?trUtf8@QGLShader@@SA?AVQString@@PBD0H@Z @ 532 NONAME ; class QString QGLShader::trUtf8(char const *, char const *, int)
+ ?drawTexture@QGLContext@@QAEXABVQPointF@@II@Z @ 533 NONAME ; void QGLContext::drawTexture(class QPointF const &, unsigned int, unsigned int)
+ ?defaultOverlayFormat@QGLFormat@@SA?AV1@XZ @ 534 NONAME ; class QGLFormat QGLFormat::defaultOverlayFormat(void)
+ ?setUniformValue@QGLShaderProgram@@QAEXPBDABV?$QGenericMatrix@$02$03M@@@Z @ 535 NONAME ; void QGLShaderProgram::setUniformValue(char const *, class QGenericMatrix<3, 4, float> const &)
+ ?allocate@QGLBuffer@@QAEXH@Z @ 536 NONAME ; void QGLBuffer::allocate(int)
+ ?setAttributeArray@QGLShaderProgram@@QAEXPBDPBVQVector2D@@H@Z @ 537 NONAME ; void QGLShaderProgram::setAttributeArray(char const *, class QVector2D const *, int)
+ ?d_func@QGLShaderProgram@@ABEPBVQGLShaderProgramPrivate@@XZ @ 538 NONAME ; class QGLShaderProgramPrivate const * QGLShaderProgram::d_func(void) const
+ ?staticMetaObject@QGLSignalProxy@@2UQMetaObject@@B @ 539 NONAME ; struct QMetaObject const QGLSignalProxy::staticMetaObject
+ ??_EQGLPaintDevice@@UAE@I@Z @ 540 NONAME ; QGLPaintDevice::~QGLPaintDevice(unsigned int)
+ ?geometryInputType@QGLShaderProgram@@QBEIXZ @ 541 NONAME ; unsigned int QGLShaderProgram::geometryInputType(void) const
+ ?drawTexture@QGLPixelBuffer@@QAEXABVQPointF@@II@Z @ 542 NONAME ; void QGLPixelBuffer::drawTexture(class QPointF const &, unsigned int, unsigned int)
+ ?setUniformValue@QGLShaderProgram@@QAEXPBDABVQMatrix4x4@@@Z @ 543 NONAME ; void QGLShaderProgram::setUniformValue(char const *, class QMatrix4x4 const &)
+ ??1QGLFramebufferObjectFormat@@QAE@XZ @ 544 NONAME ; QGLFramebufferObjectFormat::~QGLFramebufferObjectFormat(void)
+ ?staticMetaObject@QGLWidget@@2UQMetaObject@@B @ 545 NONAME ; struct QMetaObject const QGLWidget::staticMetaObject
+ ?isCompiled@QGLShader@@QBE_NXZ @ 546 NONAME ; bool QGLShader::isCompiled(void) const
+ ?setUniformValue@QGLShaderProgram@@QAEXPBDQAY02M@Z @ 547 NONAME ; void QGLShaderProgram::setUniformValue(char const *, float [3] * const)
+ ?setUniformValue@QGLShaderProgram@@QAEXPBDABVQPointF@@@Z @ 548 NONAME ; void QGLShaderProgram::setUniformValue(char const *, class QPointF const &)
+ ?getDevice@QGLPaintDevice@@SAPAV1@PAVQPaintDevice@@@Z @ 549 NONAME ; class QGLPaintDevice * QGLPaintDevice::getDevice(class QPaintDevice *)
+ ?setUniformValue@QGLShaderProgram@@QAEXHQAY02M@Z @ 550 NONAME ; void QGLShaderProgram::setUniformValue(int, float [3] * const)
+ ?getStaticMetaObject@QGLTextureGlyphCache@@SAABUQMetaObject@@XZ @ 551 NONAME ; struct QMetaObject const & QGLTextureGlyphCache::getStaticMetaObject(void)
+ ?swapBuffers@QGLContext@@UBEXXZ @ 552 NONAME ; void QGLContext::swapBuffers(void) const
+ ?renderText@QGLWidget@@QAEXHHABVQString@@ABVQFont@@H@Z @ 553 NONAME ; void QGLWidget::renderText(int, int, class QString const &, class QFont const &, int)
+ ?defaultFormat@QGLFormat@@SA?AV1@XZ @ 554 NONAME ; class QGLFormat QGLFormat::defaultFormat(void)
+ ?bindTexture@QGLWidget@@QAEIABVQPixmap@@IH@Z @ 555 NONAME ; unsigned int QGLWidget::bindTexture(class QPixmap const &, unsigned int, int)
+ ?setUniformValue@QGLShaderProgram@@QAEXHABVQPoint@@@Z @ 556 NONAME ; void QGLShaderProgram::setUniformValue(int, class QPoint const &)
+ ?bindTexture@QGLContext@@QAEIABVQImage@@IHV?$QFlags@W4BindOption@QGLContext@@@@@Z @ 557 NONAME ; unsigned int QGLContext::bindTexture(class QImage const &, unsigned int, int, class QFlags<enum QGLContext::BindOption>)
+ ?initialized@QGLContext@@IBE_NXZ @ 558 NONAME ; bool QGLContext::initialized(void) const
+ ?cleanup@QGLColormap@@CAXPAUQGLColormapData@1@@Z @ 559 NONAME ; void QGLColormap::cleanup(struct QGLColormap::QGLColormapData *)
+ ??1QGLContextResource@@QAE@XZ @ 560 NONAME ; QGLContextResource::~QGLContextResource(void)
+ ?bindTexture@QGLWidget@@QAEIABVQPixmap@@IHV?$QFlags@W4BindOption@QGLContext@@@@@Z @ 561 NONAME ; unsigned int QGLWidget::bindTexture(class QPixmap const &, unsigned int, int, class QFlags<enum QGLContext::BindOption>)
+ ?setUniformValue@QGLShaderProgram@@QAEXPBDABV?$QGenericMatrix@$02$01M@@@Z @ 562 NONAME ; void QGLShaderProgram::setUniformValue(char const *, class QGenericMatrix<3, 2, float> const &)
+ ?setUniformValueArray@QGLShaderProgram@@QAEXHPBMHH@Z @ 563 NONAME ; void QGLShaderProgram::setUniformValueArray(int, float const *, int, int)
+ ?qt_metacall@QGraphicsShaderEffect@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 564 NONAME ; int QGraphicsShaderEffect::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?setUniformValueArray@QGLShaderProgram@@QAEXHPBVQVector2D@@H@Z @ 565 NONAME ; void QGLShaderProgram::setUniformValueArray(int, class QVector2D const *, int)
+ ?beginNativePainting@QGL2PaintEngineEx@@UAEXXZ @ 566 NONAME ; void QGL2PaintEngineEx::beginNativePainting(void)
+ ?overlayTransparentColor@QGLContext@@QBE?AVQColor@@XZ @ 567 NONAME ; class QColor QGLContext::overlayTransparentColor(void) const
+ ?endPaint@QGLPaintDevice@@UAEXXZ @ 568 NONAME ; void QGLPaintDevice::endPaint(void)
+ ?areSharing@QGLContext@@SA_NPBV1@0@Z @ 569 NONAME ; bool QGLContext::areSharing(class QGLContext const *, class QGLContext const *)
+ ?setSamples@QGLFramebufferObjectFormat@@QAEXH@Z @ 570 NONAME ; void QGLFramebufferObjectFormat::setSamples(int)
+ ?d_func@QGLCustomShaderStage@@AAEPAVQGLCustomShaderStagePrivate@@XZ @ 571 NONAME ; class QGLCustomShaderStagePrivate * QGLCustomShaderStage::d_func(void)
+ ?doneCurrent@QGLPixelBuffer@@QAE_NXZ @ 572 NONAME ; bool QGLPixelBuffer::doneCurrent(void)
+ ?geometryOutputType@QGLShaderProgram@@QBEIXZ @ 573 NONAME ; unsigned int QGLShaderProgram::geometryOutputType(void) const
+ ?removeShader@QGLShaderProgram@@QAEXPAVQGLShader@@@Z @ 574 NONAME ; void QGLShaderProgram::removeShader(class QGLShader *)
+ ?setUniformValueArray@QGLShaderProgram@@QAEXHPBV?$QGenericMatrix@$03$01M@@H@Z @ 575 NONAME ; void QGLShaderProgram::setUniformValueArray(int, class QGenericMatrix<4, 2, float> const *, int)
+ ?setEntries@QGLColormap@@QAEXHPBIH@Z @ 576 NONAME ; void QGLColormap::setEntries(int, unsigned int const *, int)
+ ?setUniformValue@QGLShaderProgram@@QAEXPBDI@Z @ 577 NONAME ; void QGLShaderProgram::setUniformValue(char const *, unsigned int)
+ ?d_func@QGL2PaintEngineEx@@ABEPBVQGL2PaintEngineExPrivate@@XZ @ 578 NONAME ; class QGL2PaintEngineExPrivate const * QGL2PaintEngineEx::d_func(void) const
+ ?removeCustomStage@QGLEngineShaderManager@@QAEXXZ @ 579 NONAME ; void QGLEngineShaderManager::removeCustomStage(void)
+ ?bindTexture@QGLPixelBuffer@@QAEIABVQImage@@I@Z @ 580 NONAME ; unsigned int QGLPixelBuffer::bindTexture(class QImage const &, unsigned int)
+ ??_EQGLCustomShaderStage@@UAE@I@Z @ 581 NONAME ; QGLCustomShaderStage::~QGLCustomShaderStage(unsigned int)
+ ?format@QGLPixelBuffer@@QBE?AVQGLFormat@@XZ @ 582 NONAME ; class QGLFormat QGLPixelBuffer::format(void) const
+ ?swapBuffers@QGLWidget@@QAEXXZ @ 583 NONAME ; void QGLWidget::swapBuffers(void)
+ ??_EQGLFramebufferObject@@UAE@I@Z @ 584 NONAME ; QGLFramebufferObject::~QGLFramebufferObject(unsigned int)
+ ?glDevice@QGLPixmapData@@QBEPAVQGLPaintDevice@@XZ @ 585 NONAME ; class QGLPaintDevice * QGLPixmapData::glDevice(void) const
+ ?compositionModeChanged@QGL2PaintEngineEx@@UAEXXZ @ 586 NONAME ; void QGL2PaintEngineEx::compositionModeChanged(void)
+ ?tr@QGLWidget@@SA?AVQString@@PBD0@Z @ 587 NONAME ; class QString QGLWidget::tr(char const *, char const *)
+ ?setUniforms@QGraphicsShaderEffect@@MAEXPAVQGLShaderProgram@@@Z @ 588 NONAME ; void QGraphicsShaderEffect::setUniforms(class QGLShaderProgram *)
+ ?drawImage@QGL2PaintEngineEx@@UAEXABVQRectF@@ABVQImage@@0V?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 589 NONAME ; void QGL2PaintEngineEx::drawImage(class QRectF const &, class QImage const &, class QRectF const &, class QFlags<enum Qt::ImageConversionFlag>)
+ ?flush@QGLWindowSurface@@UAEXPAVQWidget@@ABVQRegion@@ABVQPoint@@@Z @ 590 NONAME ; void QGLWindowSurface::flush(class QWidget *, class QRegion const &, class QPoint const &)
+ ??0QGLTextureGlyphCache@@QAE@PAVQGLContext@@W4Type@QFontEngineGlyphCache@@ABVQTransform@@@Z @ 591 NONAME ; QGLTextureGlyphCache::QGLTextureGlyphCache(class QGLContext *, enum QFontEngineGlyphCache::Type, class QTransform const &)
+ ??_EQGLTextureGlyphCache@@UAE@I@Z @ 592 NONAME ; QGLTextureGlyphCache::~QGLTextureGlyphCache(unsigned int)
+ ??1QGLShareContextScope@@QAE@XZ @ 593 NONAME ; QGLShareContextScope::~QGLShareContextScope(void)
+ ?alpha@QGLFormat@@QBE_NXZ @ 594 NONAME ; bool QGLFormat::alpha(void) const
+ ?drawTextItem@QGL2PaintEngineEx@@UAEXABVQPointF@@ABVQTextItem@@@Z @ 595 NONAME ; void QGL2PaintEngineEx::drawTextItem(class QPointF const &, class QTextItem const &)
+ ?bindTexture@QGLContext@@QAEIABVQPixmap@@IHV?$QFlags@W4BindOption@QGLContext@@@@@Z @ 596 NONAME ; unsigned int QGLContext::bindTexture(class QPixmap const &, unsigned int, int, class QFlags<enum QGLContext::BindOption>)
+ ?fillImage@QGLPixmapData@@ABE?AVQImage@@ABVQColor@@@Z @ 597 NONAME ; class QImage QGLPixmapData::fillImage(class QColor const &) const
+ ?renderHintsChanged@QGL2PaintEngineEx@@UAEXXZ @ 598 NONAME ; void QGL2PaintEngineEx::renderHintsChanged(void)
+ ?trUtf8@QGLShaderProgram@@SA?AVQString@@PBD0H@Z @ 599 NONAME ; class QString QGLShaderProgram::trUtf8(char const *, char const *, int)
+ ?setUniformValue@QGLShaderProgram@@QAEXHABVQTransform@@@Z @ 600 NONAME ; void QGLShaderProgram::setUniformValue(int, class QTransform const &)
+ ?qt_resolve_eglimage_gl_extensions@@YA_NPAVQGLContext@@@Z @ 601 NONAME ; bool qt_resolve_eglimage_gl_extensions(class QGLContext *)
+ ?glInit@QGLWidget@@MAEXXZ @ 602 NONAME ; void QGLWidget::glInit(void)
+ ?setEntry@QGLColormap@@QAEXHABVQColor@@@Z @ 603 NONAME ; void QGLColormap::setEntry(int, class QColor const &)
+ ?setUniformValueArray@QGLShaderProgram@@QAEXPBDPBVQVector3D@@H@Z @ 604 NONAME ; void QGLShaderProgram::setUniformValueArray(char const *, class QVector3D const *, int)
+ ??1QGLPixmapData@@UAE@XZ @ 605 NONAME ; QGLPixmapData::~QGLPixmapData(void)
+ ?log@QGLShaderProgram@@QBE?AVQString@@XZ @ 606 NONAME ; class QString QGLShaderProgram::log(void) const
+ ?metric@QGLPixmapData@@UBEHW4PaintDeviceMetric@QPaintDevice@@@Z @ 607 NONAME ; int QGLPixmapData::metric(enum QPaintDevice::PaintDeviceMetric) const
+ ?qglColor@QGLWidget@@QBEXABVQColor@@@Z @ 608 NONAME ; void QGLWidget::qglColor(class QColor const &) const
+ ??0QGLBuffer@@QAE@XZ @ 609 NONAME ; QGLBuffer::QGLBuffer(void)
+ ?setAttributeValue@QGLShaderProgram@@QAEXPBDPBMHH@Z @ 610 NONAME ; void QGLShaderProgram::setAttributeValue(char const *, float const *, int, int)
+ ?handle@QGLFramebufferObject@@QBEIXZ @ 611 NONAME ; unsigned int QGLFramebufferObject::handle(void) const
+ ?tr@QGLSignalProxy@@SA?AVQString@@PBD0@Z @ 612 NONAME ; class QString QGLSignalProxy::tr(char const *, char const *)
+ ?hasOverlay@QGLFormat@@QBE_NXZ @ 613 NONAME ; bool QGLFormat::hasOverlay(void) const
+ ?setSrcPixelType@QGLEngineShaderManager@@QAEXW4BrushStyle@Qt@@@Z @ 614 NONAME ; void QGLEngineShaderManager::setSrcPixelType(enum Qt::BrushStyle)
+ ?emitAboutToDestroyContext@QGLSignalProxy@@QAEXPBVQGLContext@@@Z @ 615 NONAME ; void QGLSignalProxy::emitAboutToDestroyContext(class QGLContext const *)
+ ?colorIndex@QGLContext@@IBEIABVQColor@@@Z @ 616 NONAME ; unsigned int QGLContext::colorIndex(class QColor const &) const
+ ?alphaRequested@QGLPaintDevice@@UBE_NXZ @ 617 NONAME ; bool QGLPaintDevice::alphaRequested(void) const
+ ?unmap@QGLBuffer@@QAE_NXZ @ 618 NONAME ; bool QGLBuffer::unmap(void)
+ ?setUniformValueArray@QGLShaderProgram@@QAEXPBDPBMHH@Z @ 619 NONAME ; void QGLShaderProgram::setUniformValueArray(char const *, float const *, int, int)
+ ??0QGLSharedResourceGuard@@QAE@PBVQGLContext@@I@Z @ 620 NONAME ; QGLSharedResourceGuard::QGLSharedResourceGuard(class QGLContext const *, unsigned int)
+ ?bindAttributeLocation@QGLShaderProgram@@QAEXPBDH@Z @ 621 NONAME ; void QGLShaderProgram::bindAttributeLocation(char const *, int)
+ ?setUniformValue@QGLShaderProgram@@QAEXHABVQColor@@@Z @ 622 NONAME ; void QGLShaderProgram::setUniformValue(int, class QColor const &)
+ ?enableAttributeArray@QGLShaderProgram@@QAEXH@Z @ 623 NONAME ; void QGLShaderProgram::enableAttributeArray(int)
+ ?tr@QGLShader@@SA?AVQString@@PBD0@Z @ 624 NONAME ; class QString QGLShader::tr(char const *, char const *)
+ ?overlayContext@QGLWidget@@QBEPBVQGLContext@@XZ @ 625 NONAME ; class QGLContext const * QGLWidget::overlayContext(void) const
+ ?beginPaint@QGLPaintDevice@@UAEXXZ @ 626 NONAME ; void QGLPaintDevice::beginPaint(void)
+ ?setTextureCacheLimit@QGLContext@@SAXH@Z @ 627 NONAME ; void QGLContext::setTextureCacheLimit(int)
+ ?setOnPainter@QGLCustomShaderStage@@QAE_NPAVQPainter@@@Z @ 628 NONAME ; bool QGLCustomShaderStage::setOnPainter(class QPainter *)
+ ?bindTexture@QGLPixelBuffer@@QAEIABVQPixmap@@I@Z @ 629 NONAME ; unsigned int QGLPixelBuffer::bindTexture(class QPixmap const &, unsigned int)
+ ?resizeGL@QGLWidget@@MAEXHH@Z @ 630 NONAME ; void QGLWidget::resizeGL(int, int)
+ ?trUtf8@QGLWindowSurface@@SA?AVQString@@PBD0@Z @ 631 NONAME ; class QString QGLWindowSurface::trUtf8(char const *, char const *)
+ ?qt_metacast@QGLEngineShaderManager@@UAEPAXPBD@Z @ 632 NONAME ; void * QGLEngineShaderManager::qt_metacast(char const *)
+ ?sampleBuffers@QGLFormat@@QBE_NXZ @ 633 NONAME ; bool QGLFormat::sampleBuffers(void) const
+ ?trUtf8@QGLWindowSurface@@SA?AVQString@@PBD0H@Z @ 634 NONAME ; class QString QGLWindowSurface::trUtf8(char const *, char const *, int)
+ ?shaderProgNeedsChangingSlot@QGLEngineShaderManager@@AAEXXZ @ 635 NONAME ; void QGLEngineShaderManager::shaderProgNeedsChangingSlot(void)
+ ?metaObject@QGLTextureGlyphCache@@UBEPBUQMetaObject@@XZ @ 636 NONAME ; struct QMetaObject const * QGLTextureGlyphCache::metaObject(void) const
+ ?paintEvent@QGLWidget@@MAEXPAVQPaintEvent@@@Z @ 637 NONAME ; void QGLWidget::paintEvent(class QPaintEvent *)
+ ?uniformLocation@QGLShaderProgram@@QBEHABVQByteArray@@@Z @ 638 NONAME ; int QGLShaderProgram::uniformLocation(class QByteArray const &) const
+ ?currentContext@QGLContext@@SAPBV1@XZ @ 639 NONAME ; class QGLContext const * QGLContext::currentContext(void)
+ ?setUniformValue@QGLShaderProgram@@QAEXHABV?$QGenericMatrix@$01$02M@@@Z @ 640 NONAME ; void QGLShaderProgram::setUniformValue(int, class QGenericMatrix<2, 3, float> const &)
+ ??0QGLShader@@QAE@V?$QFlags@W4ShaderTypeBit@QGLShader@@@@PAVQObject@@@Z @ 641 NONAME ; QGLShader::QGLShader(class QFlags<enum QGLShader::ShaderTypeBit>, class QObject *)
+ ?setUniformValueArray@QGLShaderProgram@@QAEXPBDPBV?$QGenericMatrix@$01$01M@@H@Z @ 642 NONAME ; void QGLShaderProgram::setUniformValueArray(char const *, class QGenericMatrix<2, 2, float> const *, int)
+ ?drawStaticTextItem@QGL2PaintEngineEx@@UAEXPAVQStaticTextItem@@@Z @ 643 NONAME ; void QGL2PaintEngineEx::drawStaticTextItem(class QStaticTextItem *)
+ ?metaObject@QGLShader@@UBEPBUQMetaObject@@XZ @ 644 NONAME ; struct QMetaObject const * QGLShader::metaObject(void) const
+ ?tr@QGLTextureGlyphCache@@SA?AVQString@@PBD0@Z @ 645 NONAME ; class QString QGLTextureGlyphCache::tr(char const *, char const *)
+ ?drawTexture@QGLFramebufferObject@@QAEXABVQRectF@@II@Z @ 646 NONAME ; void QGLFramebufferObject::drawTexture(class QRectF const &, unsigned int, unsigned int)
+ ?openGLVersionFlags@QGLFormat@@SA?AV?$QFlags@W4OpenGLVersionFlag@QGLFormat@@@@XZ @ 647 NONAME ; class QFlags<enum QGLFormat::OpenGLVersionFlag> QGLFormat::openGLVersionFlags(void)
+ ?setRedBufferSize@QGLFormat@@QAEXH@Z @ 648 NONAME ; void QGLFormat::setRedBufferSize(int)
+ ??0QGLFormat@@QAE@V?$QFlags@W4FormatOption@QGL@@@@H@Z @ 649 NONAME ; QGLFormat::QGLFormat(class QFlags<enum QGL::FormatOption>, int)
+ ?setMaskType@QGLEngineShaderManager@@QAEXW4MaskType@1@@Z @ 650 NONAME ; void QGLEngineShaderManager::setMaskType(enum QGLEngineShaderManager::MaskType)
+ ?setUniforms@QGLCustomShaderStage@@UAEXPAVQGLShaderProgram@@@Z @ 651 NONAME ; void QGLCustomShaderStage::setUniforms(class QGLShaderProgram *)
+ ??0QGLFramebufferObjectFormat@@QAE@ABV0@@Z @ 652 NONAME ; QGLFramebufferObjectFormat::QGLFramebufferObjectFormat(class QGLFramebufferObjectFormat const &)
+ ?fromFile@QGLPixmapData@@UAE_NABVQString@@PBDV?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 653 NONAME ; bool QGLPixmapData::fromFile(class QString const &, char const *, class QFlags<enum Qt::ImageConversionFlag>)
+ ?qt_metacast@QGLShader@@UAEPAXPBD@Z @ 654 NONAME ; void * QGLShader::qt_metacast(char const *)
+ ?attributeLocation@QGLShaderProgram@@QBEHABVQByteArray@@@Z @ 655 NONAME ; int QGLShaderProgram::attributeLocation(class QByteArray const &) const
+ ?bindTexture@QGLContext@@QAEIABVQImage@@IH@Z @ 656 NONAME ; unsigned int QGLContext::bindTexture(class QImage const &, unsigned int, int)
+ ?optimiseForBrushTransform@QGLEngineShaderManager@@QAEXW4TransformationType@QTransform@@@Z @ 657 NONAME ; void QGLEngineShaderManager::optimiseForBrushTransform(enum QTransform::TransformationType)
+ ?setAlpha@QGLFormat@@QAEX_N@Z @ 658 NONAME ; void QGLFormat::setAlpha(bool)
+ ?setAttributeValue@QGLShaderProgram@@QAEXPBDMMMM@Z @ 659 NONAME ; void QGLShaderProgram::setAttributeValue(char const *, float, float, float, float)
+ ?setUniformValue@QGLShaderProgram@@QAEXPBDABV?$QGenericMatrix@$03$01M@@@Z @ 660 NONAME ; void QGLShaderProgram::setUniformValue(char const *, class QGenericMatrix<4, 2, float> const &)
+ ?blitFramebuffer@QGLFramebufferObject@@SAXPAV1@ABVQRect@@01II@Z @ 661 NONAME ; void QGLFramebufferObject::blitFramebuffer(class QGLFramebufferObject *, class QRect const &, class QGLFramebufferObject *, class QRect const &, unsigned int, unsigned int)
+ ?d_func@QGraphicsShaderEffect@@AAEPAVQGraphicsShaderEffectPrivate@@XZ @ 662 NONAME ; class QGraphicsShaderEffectPrivate * QGraphicsShaderEffect::d_func(void)
+ ?d_func@QGLWidget@@AAEPAVQGLWidgetPrivate@@XZ @ 663 NONAME ; class QGLWidgetPrivate * QGLWidget::d_func(void)
+ ?qt_metacast@QGLSignalProxy@@UAEPAXPBD@Z @ 664 NONAME ; void * QGLSignalProxy::qt_metacast(char const *)
+ ?createState@QGL2PaintEngineEx@@UBEPAVQPainterState@@PAV2@@Z @ 665 NONAME ; class QPainterState * QGL2PaintEngineEx::createState(class QPainterState *) const
+ ??0QGLShader@@QAE@V?$QFlags@W4ShaderTypeBit@QGLShader@@@@PBVQGLContext@@PAVQObject@@@Z @ 666 NONAME ; QGLShader::QGLShader(class QFlags<enum QGLShader::ShaderTypeBit>, class QGLContext const *, class QObject *)
+ ?format@QGLFramebufferObject@@QBE?AVQGLFramebufferObjectFormat@@XZ @ 667 NONAME ; class QGLFramebufferObjectFormat QGLFramebufferObject::format(void) const
+ ?tr@QGraphicsShaderEffect@@SA?AVQString@@PBD0H@Z @ 668 NONAME ; class QString QGraphicsShaderEffect::tr(char const *, char const *, int)
+ ?destroy@QGLBuffer@@QAEXXZ @ 669 NONAME ; void QGLBuffer::destroy(void)
+ ?setUniformValue@QGLShaderProgram@@QAEXPBDMMM@Z @ 670 NONAME ; void QGLShaderProgram::setUniformValue(char const *, float, float, float)
+ ?paintEngine@QGLFramebufferObject@@UBEPAVQPaintEngine@@XZ @ 671 NONAME ; class QPaintEngine * QGLFramebufferObject::paintEngine(void) const
+ ?setTextureTarget@QGLFramebufferObjectFormat@@QAEXI@Z @ 672 NONAME ; void QGLFramebufferObjectFormat::setTextureTarget(unsigned int)
+ ?hasOpenGLPbuffers@QGLPixelBuffer@@SA_NXZ @ 673 NONAME ; bool QGLPixelBuffer::hasOpenGLPbuffers(void)
+ ?handle@QGLPixelBuffer@@QBEKXZ @ 674 NONAME ; unsigned long QGLPixelBuffer::handle(void) const
+ ?setHandle@QGLColormap@@IAEXK@Z @ 675 NONAME ; void QGLColormap::setHandle(unsigned long)
+ ?size@QGLPixmapData@@ABE?AVQSize@@XZ @ 676 NONAME ; class QSize QGLPixmapData::size(void) const
+ ??1QGLSignalProxy@@UAE@XZ @ 677 NONAME ; QGLSignalProxy::~QGLSignalProxy(void)
+ ?isBound@QGLFramebufferObject@@QBE_NXZ @ 678 NONAME ; bool QGLFramebufferObject::isBound(void) const
+ ?updateOverlayGL@QGLWidget@@UAEXXZ @ 679 NONAME ; void QGLWidget::updateOverlayGL(void)
+ ?makeCurrent@QGLPixelBuffer@@QAE_NXZ @ 680 NONAME ; bool QGLPixelBuffer::makeCurrent(void)
+ ?setUniformValue@QGLShaderProgram@@QAEXPBDQAY03M@Z @ 681 NONAME ; void QGLShaderProgram::setUniformValue(char const *, float [4] * const)
+ ?draw@QGraphicsShaderEffect@@MAEXPAVQPainter@@@Z @ 682 NONAME ; void QGraphicsShaderEffect::draw(class QPainter *)
+ ?bindTexture@QGLWidget@@QAEIABVQString@@@Z @ 683 NONAME ; unsigned int QGLWidget::bindTexture(class QString const &)
+ ?setAttributeValue@QGLShaderProgram@@QAEXPBDABVQVector4D@@@Z @ 684 NONAME ; void QGLShaderProgram::setAttributeValue(char const *, class QVector4D const &)
+ ?setAttributeArray@QGLShaderProgram@@QAEXHPBVQVector2D@@H@Z @ 685 NONAME ; void QGLShaderProgram::setAttributeArray(int, class QVector2D const *, int)
+ ?makeCurrent@QGLWidget@@QAEXXZ @ 686 NONAME ; void QGLWidget::makeCurrent(void)
+ ?setUniformValue@QGLShaderProgram@@QAEXHQAY03M@Z @ 687 NONAME ; void QGLShaderProgram::setUniformValue(int, float [4] * const)
+ ?setUniformValue@QGLShaderProgram@@QAEXPBDABVQPoint@@@Z @ 688 NONAME ; void QGLShaderProgram::setUniformValue(char const *, class QPoint const &)
+ ?redBufferSize@QGLFormat@@QBEHXZ @ 689 NONAME ; int QGLFormat::redBufferSize(void) const
+ ?setUniformValueArray@QGLShaderProgram@@QAEXPBDPBV?$QGenericMatrix@$02$02M@@H@Z @ 690 NONAME ; void QGLShaderProgram::setUniformValueArray(char const *, class QGenericMatrix<3, 3, float> const *, int)
+ ?setAttributeValue@QGLShaderProgram@@QAEXHABVQVector3D@@@Z @ 691 NONAME ; void QGLShaderProgram::setAttributeValue(int, class QVector3D const &)
+ ?useFramebufferObjects@QGLPixmapData@@ABE_NXZ @ 692 NONAME ; bool QGLPixmapData::useFramebufferObjects(void) const
+ ?enableAttributeArray@QGLShaderProgram@@QAEXPBD@Z @ 693 NONAME ; void QGLShaderProgram::enableAttributeArray(char const *)
+ ?depth@QGLFormat@@QBE_NXZ @ 694 NONAME ; bool QGLFormat::depth(void) const
+ ?getStaticMetaObject@QGLWindowSurface@@SAABUQMetaObject@@XZ @ 695 NONAME ; struct QMetaObject const & QGLWindowSurface::getStaticMetaObject(void)
+ ?qt_metacast@QGLWidget@@UAEPAXPBD@Z @ 696 NONAME ; void * QGLWidget::qt_metacast(char const *)
+ ?setProfile@QGLFormat@@QAEXW4OpenGLContextProfile@1@@Z @ 697 NONAME ; void QGLFormat::setProfile(enum QGLFormat::OpenGLContextProfile)
+ ?updateDynamicTexture@QGLPixelBuffer@@QBEXI@Z @ 698 NONAME ; void QGLPixelBuffer::updateDynamicTexture(unsigned int) const
+ ?setUniformValue@QGLShaderProgram@@QAEXHH@Z @ 699 NONAME ; void QGLShaderProgram::setUniformValue(int, int)
+
diff --git a/src/s60installs/eabi/QtOpenGLu.def b/src/s60installs/eabi/QtOpenGLu.def
new file mode 100644
index 0000000..7ceade4
--- /dev/null
+++ b/src/s60installs/eabi/QtOpenGLu.def
@@ -0,0 +1,705 @@
+EXPORTS
+ _Z18qt_gl_share_widgetv @ 1 NONAME
+ _Z19qt_qgl_paint_enginev @ 2 NONAME
+ _Z22qt_gl_transfer_contextPK10QGLContext @ 3 NONAME
+ _Z26qt_destroy_gl_share_widgetv @ 4 NONAME
+ _Z33qt_resolve_eglimage_gl_extensionsP10QGLContext @ 5 NONAME
+ _ZN10QGLContext10areSharingEPKS_S1_ @ 6 NONAME
+ _ZN10QGLContext10currentCtxE @ 7 NONAME DATA 4
+ _ZN10QGLContext11bindTextureERK6QImageji @ 8 NONAME
+ _ZN10QGLContext11bindTextureERK6QImageji6QFlagsINS_10BindOptionEE @ 9 NONAME
+ _ZN10QGLContext11bindTextureERK7QPixmapji @ 10 NONAME
+ _ZN10QGLContext11bindTextureERK7QPixmapji6QFlagsINS_10BindOptionEE @ 11 NONAME
+ _ZN10QGLContext11bindTextureERK7QString @ 12 NONAME
+ _ZN10QGLContext11doneCurrentEv @ 13 NONAME
+ _ZN10QGLContext11drawTextureERK6QRectFjj @ 14 NONAME
+ _ZN10QGLContext11drawTextureERK7QPointFjj @ 15 NONAME
+ _ZN10QGLContext11makeCurrentEv @ 16 NONAME
+ _ZN10QGLContext13chooseContextEPKS_ @ 17 NONAME
+ _ZN10QGLContext13deleteTextureEj @ 18 NONAME
+ _ZN10QGLContext14currentContextEv @ 19 NONAME
+ _ZN10QGLContext14setInitializedEb @ 20 NONAME
+ _ZN10QGLContext16setWindowCreatedEb @ 21 NONAME
+ _ZN10QGLContext17textureCacheLimitEv @ 22 NONAME
+ _ZN10QGLContext20setTextureCacheLimitEi @ 23 NONAME
+ _ZN10QGLContext24generateFontDisplayListsERK5QFonti @ 24 NONAME
+ _ZN10QGLContext5resetEv @ 25 NONAME
+ _ZN10QGLContext6createEPKS_ @ 26 NONAME
+ _ZN10QGLContext8setValidEb @ 27 NONAME
+ _ZN10QGLContext9setDeviceEP12QPaintDevice @ 28 NONAME
+ _ZN10QGLContext9setFormatERK9QGLFormat @ 29 NONAME
+ _ZN10QGLContextC1ERK9QGLFormat @ 30 NONAME
+ _ZN10QGLContextC1ERK9QGLFormatP12QPaintDevice @ 31 NONAME
+ _ZN10QGLContextC2ERK9QGLFormat @ 32 NONAME
+ _ZN10QGLContextC2ERK9QGLFormatP12QPaintDevice @ 33 NONAME
+ _ZN10QGLContextD0Ev @ 34 NONAME
+ _ZN10QGLContextD1Ev @ 35 NONAME
+ _ZN10QGLContextD2Ev @ 36 NONAME
+ _ZN11QGLColormap10setEntriesEiPKji @ 37 NONAME
+ _ZN11QGLColormap11shared_nullE @ 38 NONAME DATA 12
+ _ZN11QGLColormap13detach_helperEv @ 39 NONAME
+ _ZN11QGLColormap7cleanupEPNS_15QGLColormapDataE @ 40 NONAME
+ _ZN11QGLColormap8setEntryEiRK6QColor @ 41 NONAME
+ _ZN11QGLColormap8setEntryEij @ 42 NONAME
+ _ZN11QGLColormapC1ERKS_ @ 43 NONAME
+ _ZN11QGLColormapC1Ev @ 44 NONAME
+ _ZN11QGLColormapC2ERKS_ @ 45 NONAME
+ _ZN11QGLColormapC2Ev @ 46 NONAME
+ _ZN11QGLColormapD1Ev @ 47 NONAME
+ _ZN11QGLColormapD2Ev @ 48 NONAME
+ _ZN11QGLColormapaSERKS_ @ 49 NONAME
+ _ZN13QGLPixmapData4copyEPK11QPixmapDataRK5QRect @ 50 NONAME
+ _ZN13QGLPixmapData4fillERK6QColor @ 51 NONAME
+ _ZN13QGLPixmapData6resizeEii @ 52 NONAME
+ _ZN13QGLPixmapData6scrollEiiRK5QRect @ 53 NONAME
+ _ZN13QGLPixmapData8fromDataEPKhjPKc6QFlagsIN2Qt19ImageConversionFlagEE @ 54 NONAME
+ _ZN13QGLPixmapData8fromFileERK7QStringPKc6QFlagsIN2Qt19ImageConversionFlagEE @ 55 NONAME
+ _ZN13QGLPixmapData9fromImageERK6QImage6QFlagsIN2Qt19ImageConversionFlagEE @ 56 NONAME
+ _ZN13QGLPixmapDataC1EN11QPixmapData9PixelTypeE @ 57 NONAME
+ _ZN13QGLPixmapDataC2EN11QPixmapData9PixelTypeE @ 58 NONAME
+ _ZN13QGLPixmapDataD0Ev @ 59 NONAME
+ _ZN13QGLPixmapDataD1Ev @ 60 NONAME
+ _ZN13QGLPixmapDataD2Ev @ 61 NONAME
+ _ZN14QGLPaintDevice10beginPaintEv @ 62 NONAME
+ _ZN14QGLPaintDevice18ensureActiveTargetEv @ 63 NONAME
+ _ZN14QGLPaintDevice8endPaintEv @ 64 NONAME
+ _ZN14QGLPaintDevice9getDeviceEP12QPaintDevice @ 65 NONAME
+ _ZN14QGLPaintDeviceC2Ev @ 66 NONAME
+ _ZN14QGLPaintDeviceD0Ev @ 67 NONAME
+ _ZN14QGLPaintDeviceD1Ev @ 68 NONAME
+ _ZN14QGLPaintDeviceD2Ev @ 69 NONAME
+ _ZN14QGLPixelBuffer11bindTextureERK6QImagej @ 70 NONAME
+ _ZN14QGLPixelBuffer11bindTextureERK7QPixmapj @ 71 NONAME
+ _ZN14QGLPixelBuffer11bindTextureERK7QString @ 72 NONAME
+ _ZN14QGLPixelBuffer11doneCurrentEv @ 73 NONAME
+ _ZN14QGLPixelBuffer11drawTextureERK6QRectFjj @ 74 NONAME
+ _ZN14QGLPixelBuffer11drawTextureERK7QPointFjj @ 75 NONAME
+ _ZN14QGLPixelBuffer11makeCurrentEv @ 76 NONAME
+ _ZN14QGLPixelBuffer13deleteTextureEj @ 77 NONAME
+ _ZN14QGLPixelBuffer17hasOpenGLPbuffersEv @ 78 NONAME
+ _ZN14QGLPixelBuffer20bindToDynamicTextureEj @ 79 NONAME
+ _ZN14QGLPixelBuffer25releaseFromDynamicTextureEv @ 80 NONAME
+ _ZN14QGLPixelBufferC1ERK5QSizeRK9QGLFormatP9QGLWidget @ 81 NONAME
+ _ZN14QGLPixelBufferC1EiiRK9QGLFormatP9QGLWidget @ 82 NONAME
+ _ZN14QGLPixelBufferC2ERK5QSizeRK9QGLFormatP9QGLWidget @ 83 NONAME
+ _ZN14QGLPixelBufferC2EiiRK9QGLFormatP9QGLWidget @ 84 NONAME
+ _ZN14QGLPixelBufferD0Ev @ 85 NONAME
+ _ZN14QGLPixelBufferD1Ev @ 86 NONAME
+ _ZN14QGLPixelBufferD2Ev @ 87 NONAME
+ _ZN14QGLSignalProxy11qt_metacallEN11QMetaObject4CallEiPPv @ 88 NONAME
+ _ZN14QGLSignalProxy11qt_metacastEPKc @ 89 NONAME
+ _ZN14QGLSignalProxy16staticMetaObjectE @ 90 NONAME DATA 16
+ _ZN14QGLSignalProxy19getStaticMetaObjectEv @ 91 NONAME
+ _ZN14QGLSignalProxy21aboutToDestroyContextEPK10QGLContext @ 92 NONAME
+ _ZN14QGLSignalProxy8instanceEv @ 93 NONAME
+ _ZN16QGLShaderProgram11qt_metacallEN11QMetaObject4CallEiPPv @ 94 NONAME
+ _ZN16QGLShaderProgram11qt_metacastEPKc @ 95 NONAME
+ _ZN16QGLShaderProgram12removeShaderEP9QGLShader @ 96 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEPKcPA2_Kf @ 97 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEPKcPA3_Kf @ 98 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEPKcPA4_Kf @ 99 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEPKcRK10QMatrix4x4 @ 100 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEPKcRK10QTransform @ 101 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEPKcRK14QGenericMatrixILi2ELi2EfE @ 102 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEPKcRK14QGenericMatrixILi2ELi3EfE @ 103 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEPKcRK14QGenericMatrixILi2ELi4EfE @ 104 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEPKcRK14QGenericMatrixILi3ELi2EfE @ 105 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEPKcRK14QGenericMatrixILi3ELi3EfE @ 106 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEPKcRK14QGenericMatrixILi3ELi4EfE @ 107 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEPKcRK14QGenericMatrixILi4ELi2EfE @ 108 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEPKcRK14QGenericMatrixILi4ELi3EfE @ 109 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEPKcRK5QSize @ 110 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEPKcRK6QColor @ 111 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEPKcRK6QPoint @ 112 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEPKcRK6QSizeF @ 113 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEPKcRK7QPointF @ 114 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEPKcRK9QVector2D @ 115 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEPKcRK9QVector3D @ 116 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEPKcRK9QVector4D @ 117 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEPKcf @ 118 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEPKcff @ 119 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEPKcfff @ 120 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEPKcffff @ 121 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEPKci @ 122 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEPKcj @ 123 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEiPA2_Kf @ 124 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEiPA3_Kf @ 125 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEiPA4_Kf @ 126 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEiRK10QMatrix4x4 @ 127 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEiRK10QTransform @ 128 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEiRK14QGenericMatrixILi2ELi2EfE @ 129 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEiRK14QGenericMatrixILi2ELi3EfE @ 130 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEiRK14QGenericMatrixILi2ELi4EfE @ 131 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEiRK14QGenericMatrixILi3ELi2EfE @ 132 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEiRK14QGenericMatrixILi3ELi3EfE @ 133 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEiRK14QGenericMatrixILi3ELi4EfE @ 134 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEiRK14QGenericMatrixILi4ELi2EfE @ 135 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEiRK14QGenericMatrixILi4ELi3EfE @ 136 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEiRK5QSize @ 137 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEiRK6QColor @ 138 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEiRK6QPoint @ 139 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEiRK6QSizeF @ 140 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEiRK7QPointF @ 141 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEiRK9QVector2D @ 142 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEiRK9QVector3D @ 143 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEiRK9QVector4D @ 144 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEif @ 145 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEiff @ 146 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEifff @ 147 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEiffff @ 148 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEii @ 149 NONAME
+ _ZN16QGLShaderProgram15setUniformValueEij @ 150 NONAME
+ _ZN16QGLShaderProgram15shaderDestroyedEv @ 151 NONAME
+ _ZN16QGLShaderProgram16removeAllShadersEv @ 152 NONAME
+ _ZN16QGLShaderProgram16staticMetaObjectE @ 153 NONAME DATA 16
+ _ZN16QGLShaderProgram17setAttributeArrayEPKcPK9QVector2Di @ 154 NONAME
+ _ZN16QGLShaderProgram17setAttributeArrayEPKcPK9QVector3Di @ 155 NONAME
+ _ZN16QGLShaderProgram17setAttributeArrayEPKcPK9QVector4Di @ 156 NONAME
+ _ZN16QGLShaderProgram17setAttributeArrayEPKcPKfii @ 157 NONAME
+ _ZN16QGLShaderProgram17setAttributeArrayEPKcjPKvii @ 158 NONAME
+ _ZN16QGLShaderProgram17setAttributeArrayEiPK9QVector2Di @ 159 NONAME
+ _ZN16QGLShaderProgram17setAttributeArrayEiPK9QVector3Di @ 160 NONAME
+ _ZN16QGLShaderProgram17setAttributeArrayEiPK9QVector4Di @ 161 NONAME
+ _ZN16QGLShaderProgram17setAttributeArrayEiPKfii @ 162 NONAME
+ _ZN16QGLShaderProgram17setAttributeArrayEijPKvii @ 163 NONAME
+ _ZN16QGLShaderProgram17setAttributeValueEPKcPKfii @ 164 NONAME
+ _ZN16QGLShaderProgram17setAttributeValueEPKcRK6QColor @ 165 NONAME
+ _ZN16QGLShaderProgram17setAttributeValueEPKcRK9QVector2D @ 166 NONAME
+ _ZN16QGLShaderProgram17setAttributeValueEPKcRK9QVector3D @ 167 NONAME
+ _ZN16QGLShaderProgram17setAttributeValueEPKcRK9QVector4D @ 168 NONAME
+ _ZN16QGLShaderProgram17setAttributeValueEPKcf @ 169 NONAME
+ _ZN16QGLShaderProgram17setAttributeValueEPKcff @ 170 NONAME
+ _ZN16QGLShaderProgram17setAttributeValueEPKcfff @ 171 NONAME
+ _ZN16QGLShaderProgram17setAttributeValueEPKcffff @ 172 NONAME
+ _ZN16QGLShaderProgram17setAttributeValueEiPKfii @ 173 NONAME
+ _ZN16QGLShaderProgram17setAttributeValueEiRK6QColor @ 174 NONAME
+ _ZN16QGLShaderProgram17setAttributeValueEiRK9QVector2D @ 175 NONAME
+ _ZN16QGLShaderProgram17setAttributeValueEiRK9QVector3D @ 176 NONAME
+ _ZN16QGLShaderProgram17setAttributeValueEiRK9QVector4D @ 177 NONAME
+ _ZN16QGLShaderProgram17setAttributeValueEif @ 178 NONAME
+ _ZN16QGLShaderProgram17setAttributeValueEiff @ 179 NONAME
+ _ZN16QGLShaderProgram17setAttributeValueEifff @ 180 NONAME
+ _ZN16QGLShaderProgram17setAttributeValueEiffff @ 181 NONAME
+ _ZN16QGLShaderProgram18setAttributeBufferEPKcjiii @ 182 NONAME
+ _ZN16QGLShaderProgram18setAttributeBufferEijiii @ 183 NONAME
+ _ZN16QGLShaderProgram19getStaticMetaObjectEv @ 184 NONAME
+ _ZN16QGLShaderProgram20enableAttributeArrayEPKc @ 185 NONAME
+ _ZN16QGLShaderProgram20enableAttributeArrayEi @ 186 NONAME
+ _ZN16QGLShaderProgram20setGeometryInputTypeEj @ 187 NONAME
+ _ZN16QGLShaderProgram20setUniformValueArrayEPKcPK10QMatrix4x4i @ 188 NONAME
+ _ZN16QGLShaderProgram20setUniformValueArrayEPKcPK14QGenericMatrixILi2ELi2EfEi @ 189 NONAME
+ _ZN16QGLShaderProgram20setUniformValueArrayEPKcPK14QGenericMatrixILi2ELi3EfEi @ 190 NONAME
+ _ZN16QGLShaderProgram20setUniformValueArrayEPKcPK14QGenericMatrixILi2ELi4EfEi @ 191 NONAME
+ _ZN16QGLShaderProgram20setUniformValueArrayEPKcPK14QGenericMatrixILi3ELi2EfEi @ 192 NONAME
+ _ZN16QGLShaderProgram20setUniformValueArrayEPKcPK14QGenericMatrixILi3ELi3EfEi @ 193 NONAME
+ _ZN16QGLShaderProgram20setUniformValueArrayEPKcPK14QGenericMatrixILi3ELi4EfEi @ 194 NONAME
+ _ZN16QGLShaderProgram20setUniformValueArrayEPKcPK14QGenericMatrixILi4ELi2EfEi @ 195 NONAME
+ _ZN16QGLShaderProgram20setUniformValueArrayEPKcPK14QGenericMatrixILi4ELi3EfEi @ 196 NONAME
+ _ZN16QGLShaderProgram20setUniformValueArrayEPKcPK9QVector2Di @ 197 NONAME
+ _ZN16QGLShaderProgram20setUniformValueArrayEPKcPK9QVector3Di @ 198 NONAME
+ _ZN16QGLShaderProgram20setUniformValueArrayEPKcPK9QVector4Di @ 199 NONAME
+ _ZN16QGLShaderProgram20setUniformValueArrayEPKcPKfii @ 200 NONAME
+ _ZN16QGLShaderProgram20setUniformValueArrayEPKcPKii @ 201 NONAME
+ _ZN16QGLShaderProgram20setUniformValueArrayEPKcPKji @ 202 NONAME
+ _ZN16QGLShaderProgram20setUniformValueArrayEiPK10QMatrix4x4i @ 203 NONAME
+ _ZN16QGLShaderProgram20setUniformValueArrayEiPK14QGenericMatrixILi2ELi2EfEi @ 204 NONAME
+ _ZN16QGLShaderProgram20setUniformValueArrayEiPK14QGenericMatrixILi2ELi3EfEi @ 205 NONAME
+ _ZN16QGLShaderProgram20setUniformValueArrayEiPK14QGenericMatrixILi2ELi4EfEi @ 206 NONAME
+ _ZN16QGLShaderProgram20setUniformValueArrayEiPK14QGenericMatrixILi3ELi2EfEi @ 207 NONAME
+ _ZN16QGLShaderProgram20setUniformValueArrayEiPK14QGenericMatrixILi3ELi3EfEi @ 208 NONAME
+ _ZN16QGLShaderProgram20setUniformValueArrayEiPK14QGenericMatrixILi3ELi4EfEi @ 209 NONAME
+ _ZN16QGLShaderProgram20setUniformValueArrayEiPK14QGenericMatrixILi4ELi2EfEi @ 210 NONAME
+ _ZN16QGLShaderProgram20setUniformValueArrayEiPK14QGenericMatrixILi4ELi3EfEi @ 211 NONAME
+ _ZN16QGLShaderProgram20setUniformValueArrayEiPK9QVector2Di @ 212 NONAME
+ _ZN16QGLShaderProgram20setUniformValueArrayEiPK9QVector3Di @ 213 NONAME
+ _ZN16QGLShaderProgram20setUniformValueArrayEiPK9QVector4Di @ 214 NONAME
+ _ZN16QGLShaderProgram20setUniformValueArrayEiPKfii @ 215 NONAME
+ _ZN16QGLShaderProgram20setUniformValueArrayEiPKii @ 216 NONAME
+ _ZN16QGLShaderProgram20setUniformValueArrayEiPKji @ 217 NONAME
+ _ZN16QGLShaderProgram21bindAttributeLocationEPKci @ 218 NONAME
+ _ZN16QGLShaderProgram21bindAttributeLocationERK10QByteArrayi @ 219 NONAME
+ _ZN16QGLShaderProgram21bindAttributeLocationERK7QStringi @ 220 NONAME
+ _ZN16QGLShaderProgram21disableAttributeArrayEPKc @ 221 NONAME
+ _ZN16QGLShaderProgram21disableAttributeArrayEi @ 222 NONAME
+ _ZN16QGLShaderProgram21setGeometryOutputTypeEj @ 223 NONAME
+ _ZN16QGLShaderProgram23addShaderFromSourceCodeE6QFlagsIN9QGLShader13ShaderTypeBitEEPKc @ 224 NONAME
+ _ZN16QGLShaderProgram23addShaderFromSourceCodeE6QFlagsIN9QGLShader13ShaderTypeBitEERK10QByteArray @ 225 NONAME
+ _ZN16QGLShaderProgram23addShaderFromSourceCodeE6QFlagsIN9QGLShader13ShaderTypeBitEERK7QString @ 226 NONAME
+ _ZN16QGLShaderProgram23addShaderFromSourceFileE6QFlagsIN9QGLShader13ShaderTypeBitEERK7QString @ 227 NONAME
+ _ZN16QGLShaderProgram23hasOpenGLShaderProgramsEPK10QGLContext @ 228 NONAME
+ _ZN16QGLShaderProgram28setGeometryOutputVertexCountEi @ 229 NONAME
+ _ZN16QGLShaderProgram4bindEv @ 230 NONAME
+ _ZN16QGLShaderProgram4initEv @ 231 NONAME
+ _ZN16QGLShaderProgram4linkEv @ 232 NONAME
+ _ZN16QGLShaderProgram7releaseEv @ 233 NONAME
+ _ZN16QGLShaderProgram9addShaderEP9QGLShader @ 234 NONAME
+ _ZN16QGLShaderProgramC1EP7QObject @ 235 NONAME
+ _ZN16QGLShaderProgramC1EPK10QGLContextP7QObject @ 236 NONAME
+ _ZN16QGLShaderProgramC2EP7QObject @ 237 NONAME
+ _ZN16QGLShaderProgramC2EPK10QGLContextP7QObject @ 238 NONAME
+ _ZN16QGLShaderProgramD0Ev @ 239 NONAME
+ _ZN16QGLShaderProgramD1Ev @ 240 NONAME
+ _ZN16QGLShaderProgramD2Ev @ 241 NONAME
+ _ZN16QGLWindowSurface10beginPaintERK7QRegion @ 242 NONAME
+ _ZN16QGLWindowSurface11paintDeviceEv @ 243 NONAME
+ _ZN16QGLWindowSurface11qt_metacallEN11QMetaObject4CallEiPPv @ 244 NONAME
+ _ZN16QGLWindowSurface11qt_metacastEPKc @ 245 NONAME
+ _ZN16QGLWindowSurface11setGeometryERK5QRect @ 246 NONAME
+ _ZN16QGLWindowSurface12hijackWindowEP7QWidget @ 247 NONAME
+ _ZN16QGLWindowSurface13surfaceFormatE @ 248 NONAME DATA 4
+ _ZN16QGLWindowSurface14updateGeometryEv @ 249 NONAME
+ _ZN16QGLWindowSurface16staticMetaObjectE @ 250 NONAME DATA 16
+ _ZN16QGLWindowSurface19getStaticMetaObjectEv @ 251 NONAME
+ _ZN16QGLWindowSurface5flushEP7QWidgetRK7QRegionRK6QPoint @ 252 NONAME
+ _ZN16QGLWindowSurface6bufferEPK7QWidget @ 253 NONAME
+ _ZN16QGLWindowSurface6scrollERK7QRegionii @ 254 NONAME
+ _ZN16QGLWindowSurface7deletedEP7QObject @ 255 NONAME
+ _ZN16QGLWindowSurface8endPaintERK7QRegion @ 256 NONAME
+ _ZN16QGLWindowSurfaceC1EP7QWidget @ 257 NONAME
+ _ZN16QGLWindowSurfaceC2EP7QWidget @ 258 NONAME
+ _ZN16QGLWindowSurfaceD0Ev @ 259 NONAME
+ _ZN16QGLWindowSurfaceD1Ev @ 260 NONAME
+ _ZN16QGLWindowSurfaceD2Ev @ 261 NONAME
+ _ZN17QGL2PaintEngineEx10drawPixmapERK6QRectFRK7QPixmapS2_ @ 262 NONAME
+ _ZN17QGL2PaintEngineEx10penChangedEv @ 263 NONAME
+ _ZN17QGL2PaintEngineEx11drawTextureERK6QRectFjRK5QSizeS2_ @ 264 NONAME
+ _ZN17QGL2PaintEngineEx12brushChangedEv @ 265 NONAME
+ _ZN17QGL2PaintEngineEx12drawTextItemERK7QPointFRK9QTextItem @ 266 NONAME
+ _ZN17QGL2PaintEngineEx12ensureActiveEv @ 267 NONAME
+ _ZN17QGL2PaintEngineEx12pixmapFilterEiPK13QPixmapFilter @ 268 NONAME
+ _ZN17QGL2PaintEngineEx14opacityChangedEv @ 269 NONAME
+ _ZN17QGL2PaintEngineEx15invalidateStateEv @ 270 NONAME
+ _ZN17QGL2PaintEngineEx16transformChangedEv @ 271 NONAME
+ _ZN17QGL2PaintEngineEx17endNativePaintingEv @ 272 NONAME
+ _ZN17QGL2PaintEngineEx18brushOriginChangedEv @ 273 NONAME
+ _ZN17QGL2PaintEngineEx18clipEnabledChangedEv @ 274 NONAME
+ _ZN17QGL2PaintEngineEx18drawStaticTextItemEP15QStaticTextItem @ 275 NONAME
+ _ZN17QGL2PaintEngineEx18renderHintsChangedEv @ 276 NONAME
+ _ZN17QGL2PaintEngineEx19beginNativePaintingEv @ 277 NONAME
+ _ZN17QGL2PaintEngineEx19drawPixmapFragmentsEPKN8QPainter14PixmapFragmentEiRK7QPixmap6QFlagsINS0_18PixmapFragmentHintEE @ 278 NONAME
+ _ZN17QGL2PaintEngineEx22compositionModeChangedEv @ 279 NONAME
+ _ZN17QGL2PaintEngineEx3endEv @ 280 NONAME
+ _ZN17QGL2PaintEngineEx4clipERK11QVectorPathN2Qt13ClipOperationE @ 281 NONAME
+ _ZN17QGL2PaintEngineEx4fillERK11QVectorPathRK6QBrush @ 282 NONAME
+ _ZN17QGL2PaintEngineEx5beginEP12QPaintDevice @ 283 NONAME
+ _ZN17QGL2PaintEngineEx6strokeERK11QVectorPathRK4QPen @ 284 NONAME
+ _ZN17QGL2PaintEngineEx8setStateEP13QPainterState @ 285 NONAME
+ _ZN17QGL2PaintEngineEx9drawImageERK6QRectFRK6QImageS2_6QFlagsIN2Qt19ImageConversionFlagEE @ 286 NONAME
+ _ZN17QGL2PaintEngineExC1Ev @ 287 NONAME
+ _ZN17QGL2PaintEngineExC2Ev @ 288 NONAME
+ _ZN17QGL2PaintEngineExD0Ev @ 289 NONAME
+ _ZN17QGL2PaintEngineExD1Ev @ 290 NONAME
+ _ZN17QGL2PaintEngineExD2Ev @ 291 NONAME
+ _ZN17QGLContextPrivate14extensionFuncsEPK10QGLContext @ 292 NONAME
+ _ZN17QGLGraphicsSystemC1Eb @ 293 NONAME
+ _ZN17QGLGraphicsSystemC2Eb @ 294 NONAME
+ _ZN18QGLContextResource5valueEPK10QGLContext @ 295 NONAME
+ _ZN18QGLContextResource6insertEPK10QGLContextPv @ 296 NONAME
+ _ZN18QGLContextResource7cleanupEPK10QGLContextPv @ 297 NONAME
+ _ZN18QGLContextResourceC1EPFvPvE @ 298 NONAME
+ _ZN18QGLContextResourceC2EPFvPvE @ 299 NONAME
+ _ZN18QGLContextResourceD1Ev @ 300 NONAME
+ _ZN18QGLContextResourceD2Ev @ 301 NONAME
+ _ZN20QGLCustomShaderStage11setInactiveEv @ 302 NONAME
+ _ZN20QGLCustomShaderStage12setOnPainterEP8QPainter @ 303 NONAME
+ _ZN20QGLCustomShaderStage16setUniformsDirtyEv @ 304 NONAME
+ _ZN20QGLCustomShaderStage17removeFromPainterEP8QPainter @ 305 NONAME
+ _ZN20QGLCustomShaderStage9setSourceERK10QByteArray @ 306 NONAME
+ _ZN20QGLCustomShaderStageC1Ev @ 307 NONAME
+ _ZN20QGLCustomShaderStageC2Ev @ 308 NONAME
+ _ZN20QGLCustomShaderStageD0Ev @ 309 NONAME
+ _ZN20QGLCustomShaderStageD1Ev @ 310 NONAME
+ _ZN20QGLCustomShaderStageD2Ev @ 311 NONAME
+ _ZN20QGLFramebufferObject11bindDefaultEv @ 312 NONAME
+ _ZN20QGLFramebufferObject11drawTextureERK6QRectFjj @ 313 NONAME
+ _ZN20QGLFramebufferObject11drawTextureERK7QPointFjj @ 314 NONAME
+ _ZN20QGLFramebufferObject15blitFramebufferEPS_RK5QRectS0_S3_jj @ 315 NONAME
+ _ZN20QGLFramebufferObject24hasOpenGLFramebufferBlitEv @ 316 NONAME
+ _ZN20QGLFramebufferObject27hasOpenGLFramebufferObjectsEv @ 317 NONAME
+ _ZN20QGLFramebufferObject4bindEv @ 318 NONAME
+ _ZN20QGLFramebufferObject7releaseEv @ 319 NONAME
+ _ZN20QGLFramebufferObjectC1ERK5QSizeNS_10AttachmentEjj @ 320 NONAME
+ _ZN20QGLFramebufferObjectC1ERK5QSizeRK26QGLFramebufferObjectFormat @ 321 NONAME
+ _ZN20QGLFramebufferObjectC1ERK5QSizej @ 322 NONAME
+ _ZN20QGLFramebufferObjectC1EiiNS_10AttachmentEjj @ 323 NONAME
+ _ZN20QGLFramebufferObjectC1EiiRK26QGLFramebufferObjectFormat @ 324 NONAME
+ _ZN20QGLFramebufferObjectC1Eiij @ 325 NONAME
+ _ZN20QGLFramebufferObjectC2ERK5QSizeNS_10AttachmentEjj @ 326 NONAME
+ _ZN20QGLFramebufferObjectC2ERK5QSizeRK26QGLFramebufferObjectFormat @ 327 NONAME
+ _ZN20QGLFramebufferObjectC2ERK5QSizej @ 328 NONAME
+ _ZN20QGLFramebufferObjectC2EiiNS_10AttachmentEjj @ 329 NONAME
+ _ZN20QGLFramebufferObjectC2EiiRK26QGLFramebufferObjectFormat @ 330 NONAME
+ _ZN20QGLFramebufferObjectC2Eiij @ 331 NONAME
+ _ZN20QGLFramebufferObjectD0Ev @ 332 NONAME
+ _ZN20QGLFramebufferObjectD1Ev @ 333 NONAME
+ _ZN20QGLFramebufferObjectD2Ev @ 334 NONAME
+ _ZN20QGLTextureGlyphCache11fillTextureERKN18QTextureGlyphCache5CoordEj @ 335 NONAME
+ _ZN20QGLTextureGlyphCache11qt_metacallEN11QMetaObject4CallEiPPv @ 336 NONAME
+ _ZN20QGLTextureGlyphCache11qt_metacastEPKc @ 337 NONAME
+ _ZN20QGLTextureGlyphCache16staticMetaObjectE @ 338 NONAME DATA 16
+ _ZN20QGLTextureGlyphCache17createTextureDataEii @ 339 NONAME
+ _ZN20QGLTextureGlyphCache17resizeTextureDataEii @ 340 NONAME
+ _ZN20QGLTextureGlyphCache19getStaticMetaObjectEv @ 341 NONAME
+ _ZN20QGLTextureGlyphCacheC1EP10QGLContextN21QFontEngineGlyphCache4TypeERK10QTransform @ 342 NONAME
+ _ZN20QGLTextureGlyphCacheC2EP10QGLContextN21QFontEngineGlyphCache4TypeERK10QTransform @ 343 NONAME
+ _ZN20QGLTextureGlyphCacheD0Ev @ 344 NONAME
+ _ZN20QGLTextureGlyphCacheD1Ev @ 345 NONAME
+ _ZN20QGLTextureGlyphCacheD2Ev @ 346 NONAME
+ _ZN21QGraphicsShaderEffect11qt_metacallEN11QMetaObject4CallEiPPv @ 347 NONAME
+ _ZN21QGraphicsShaderEffect11qt_metacastEPKc @ 348 NONAME
+ _ZN21QGraphicsShaderEffect11setUniformsEP16QGLShaderProgram @ 349 NONAME
+ _ZN21QGraphicsShaderEffect16setUniformsDirtyEv @ 350 NONAME
+ _ZN21QGraphicsShaderEffect16staticMetaObjectE @ 351 NONAME DATA 16
+ _ZN21QGraphicsShaderEffect19getStaticMetaObjectEv @ 352 NONAME
+ _ZN21QGraphicsShaderEffect22setPixelShaderFragmentERK10QByteArray @ 353 NONAME
+ _ZN21QGraphicsShaderEffect4drawEP8QPainter @ 354 NONAME
+ _ZN21QGraphicsShaderEffectC1EP7QObject @ 355 NONAME
+ _ZN21QGraphicsShaderEffectC2EP7QObject @ 356 NONAME
+ _ZN21QGraphicsShaderEffectD0Ev @ 357 NONAME
+ _ZN21QGraphicsShaderEffectD1Ev @ 358 NONAME
+ _ZN21QGraphicsShaderEffectD2Ev @ 359 NONAME
+ _ZN22QGLEngineShaderManager11blitProgramEv @ 360 NONAME
+ _ZN22QGLEngineShaderManager11qt_metacallEN11QMetaObject4CallEiPPv @ 361 NONAME
+ _ZN22QGLEngineShaderManager11qt_metacastEPKc @ 362 NONAME
+ _ZN22QGLEngineShaderManager11setMaskTypeENS_8MaskTypeE @ 363 NONAME
+ _ZN22QGLEngineShaderManager13simpleProgramEv @ 364 NONAME
+ _ZN22QGLEngineShaderManager14currentProgramEv @ 365 NONAME
+ _ZN22QGLEngineShaderManager14setCustomStageEP20QGLCustomShaderStage @ 366 NONAME
+ _ZN22QGLEngineShaderManager14setOpacityModeENS_11OpacityModeE @ 367 NONAME
+ _ZN22QGLEngineShaderManager14useBlitProgramEv @ 368 NONAME
+ _ZN22QGLEngineShaderManager15setSrcPixelTypeEN2Qt10BrushStyleE @ 369 NONAME
+ _ZN22QGLEngineShaderManager15setSrcPixelTypeENS_12PixelSrcTypeE @ 370 NONAME
+ _ZN22QGLEngineShaderManager16staticMetaObjectE @ 371 NONAME DATA 16
+ _ZN22QGLEngineShaderManager16useSimpleProgramEv @ 372 NONAME
+ _ZN22QGLEngineShaderManager17removeCustomStageEv @ 373 NONAME
+ _ZN22QGLEngineShaderManager18getUniformLocationENS_7UniformE @ 374 NONAME
+ _ZN22QGLEngineShaderManager18setCompositionModeEN8QPainter15CompositionModeE @ 375 NONAME
+ _ZN22QGLEngineShaderManager19getStaticMetaObjectEv @ 376 NONAME
+ _ZN22QGLEngineShaderManager20useCorrectShaderProgEv @ 377 NONAME
+ _ZN22QGLEngineShaderManager25optimiseForBrushTransformEN10QTransform18TransformationTypeE @ 378 NONAME
+ _ZN22QGLEngineShaderManager8setDirtyEv @ 379 NONAME
+ _ZN22QGLEngineShaderManagerC1EP10QGLContext @ 380 NONAME
+ _ZN22QGLEngineShaderManagerC2EP10QGLContext @ 381 NONAME
+ _ZN22QGLEngineShaderManagerD0Ev @ 382 NONAME
+ _ZN22QGLEngineShaderManagerD1Ev @ 383 NONAME
+ _ZN22QGLEngineShaderManagerD2Ev @ 384 NONAME
+ _ZN22QGLSharedResourceGuard10setContextEPK10QGLContext @ 385 NONAME
+ _ZN22QGLSharedResourceGuardD1Ev @ 386 NONAME
+ _ZN22QGLSharedResourceGuardD2Ev @ 387 NONAME
+ _ZN26QGLFramebufferObjectFormat10setSamplesEi @ 388 NONAME
+ _ZN26QGLFramebufferObjectFormat13setAttachmentEN20QGLFramebufferObject10AttachmentE @ 389 NONAME
+ _ZN26QGLFramebufferObjectFormat16setTextureTargetEj @ 390 NONAME
+ _ZN26QGLFramebufferObjectFormat24setInternalTextureFormatEj @ 391 NONAME
+ _ZN26QGLFramebufferObjectFormat6detachEv @ 392 NONAME
+ _ZN26QGLFramebufferObjectFormatC1ERKS_ @ 393 NONAME
+ _ZN26QGLFramebufferObjectFormatC1Ev @ 394 NONAME
+ _ZN26QGLFramebufferObjectFormatC2ERKS_ @ 395 NONAME
+ _ZN26QGLFramebufferObjectFormatC2Ev @ 396 NONAME
+ _ZN26QGLFramebufferObjectFormatD1Ev @ 397 NONAME
+ _ZN26QGLFramebufferObjectFormatD2Ev @ 398 NONAME
+ _ZN26QGLFramebufferObjectFormataSERKS_ @ 399 NONAME
+ _ZN3QGL23setPreferredPaintEngineEN12QPaintEngine4TypeE @ 400 NONAME
+ _ZN9QGLBuffer15setUsagePatternENS_12UsagePatternE @ 401 NONAME
+ _ZN9QGLBuffer3mapENS_6AccessE @ 402 NONAME
+ _ZN9QGLBuffer4bindEv @ 403 NONAME
+ _ZN9QGLBuffer4readEiPvi @ 404 NONAME
+ _ZN9QGLBuffer5unmapEv @ 405 NONAME
+ _ZN9QGLBuffer5writeEiPKvi @ 406 NONAME
+ _ZN9QGLBuffer6createEv @ 407 NONAME
+ _ZN9QGLBuffer7destroyEv @ 408 NONAME
+ _ZN9QGLBuffer7releaseENS_4TypeE @ 409 NONAME
+ _ZN9QGLBuffer7releaseEv @ 410 NONAME
+ _ZN9QGLBuffer8allocateEPKvi @ 411 NONAME
+ _ZN9QGLBufferC1ENS_4TypeE @ 412 NONAME
+ _ZN9QGLBufferC1ERKS_ @ 413 NONAME
+ _ZN9QGLBufferC1Ev @ 414 NONAME
+ _ZN9QGLBufferC2ENS_4TypeE @ 415 NONAME
+ _ZN9QGLBufferC2ERKS_ @ 416 NONAME
+ _ZN9QGLBufferC2Ev @ 417 NONAME
+ _ZN9QGLBufferD1Ev @ 418 NONAME
+ _ZN9QGLBufferD2Ev @ 419 NONAME
+ _ZN9QGLBufferaSERKS_ @ 420 NONAME
+ _ZN9QGLFormat10setOverlayEb @ 421 NONAME
+ _ZN9QGLFormat10setProfileENS_20OpenGLContextProfileE @ 422 NONAME
+ _ZN9QGLFormat10setSamplesEi @ 423 NONAME
+ _ZN9QGLFormat10setStencilEb @ 424 NONAME
+ _ZN9QGLFormat10setVersionEii @ 425 NONAME
+ _ZN9QGLFormat13defaultFormatEv @ 426 NONAME
+ _ZN9QGLFormat15setDoubleBufferEb @ 427 NONAME
+ _ZN9QGLFormat15setSwapIntervalEi @ 428 NONAME
+ _ZN9QGLFormat16setDefaultFormatERKS_ @ 429 NONAME
+ _ZN9QGLFormat16setRedBufferSizeEi @ 430 NONAME
+ _ZN9QGLFormat16setSampleBuffersEb @ 431 NONAME
+ _ZN9QGLFormat17hasOpenGLOverlaysEv @ 432 NONAME
+ _ZN9QGLFormat17setBlueBufferSizeEi @ 433 NONAME
+ _ZN9QGLFormat18openGLVersionFlagsEv @ 434 NONAME
+ _ZN9QGLFormat18setAccumBufferSizeEi @ 435 NONAME
+ _ZN9QGLFormat18setAlphaBufferSizeEi @ 436 NONAME
+ _ZN9QGLFormat18setDepthBufferSizeEi @ 437 NONAME
+ _ZN9QGLFormat18setDirectRenderingEb @ 438 NONAME
+ _ZN9QGLFormat18setGreenBufferSizeEi @ 439 NONAME
+ _ZN9QGLFormat20defaultOverlayFormatEv @ 440 NONAME
+ _ZN9QGLFormat20setStencilBufferSizeEi @ 441 NONAME
+ _ZN9QGLFormat23setDefaultOverlayFormatERKS_ @ 442 NONAME
+ _ZN9QGLFormat6detachEv @ 443 NONAME
+ _ZN9QGLFormat7setRgbaEb @ 444 NONAME
+ _ZN9QGLFormat8setAccumEb @ 445 NONAME
+ _ZN9QGLFormat8setAlphaEb @ 446 NONAME
+ _ZN9QGLFormat8setDepthEb @ 447 NONAME
+ _ZN9QGLFormat8setPlaneEi @ 448 NONAME
+ _ZN9QGLFormat9hasOpenGLEv @ 449 NONAME
+ _ZN9QGLFormat9setOptionE6QFlagsIN3QGL12FormatOptionEE @ 450 NONAME
+ _ZN9QGLFormat9setStereoEb @ 451 NONAME
+ _ZN9QGLFormatC1E6QFlagsIN3QGL12FormatOptionEEi @ 452 NONAME
+ _ZN9QGLFormatC1ERKS_ @ 453 NONAME
+ _ZN9QGLFormatC1Ev @ 454 NONAME
+ _ZN9QGLFormatC2E6QFlagsIN3QGL12FormatOptionEEi @ 455 NONAME
+ _ZN9QGLFormatC2ERKS_ @ 456 NONAME
+ _ZN9QGLFormatC2Ev @ 457 NONAME
+ _ZN9QGLFormatD1Ev @ 458 NONAME
+ _ZN9QGLFormatD2Ev @ 459 NONAME
+ _ZN9QGLFormataSERKS_ @ 460 NONAME
+ _ZN9QGLShader11qt_metacallEN11QMetaObject4CallEiPPv @ 461 NONAME
+ _ZN9QGLShader11qt_metacastEPKc @ 462 NONAME
+ _ZN9QGLShader16hasOpenGLShadersE6QFlagsINS_13ShaderTypeBitEEPK10QGLContext @ 463 NONAME
+ _ZN9QGLShader16staticMetaObjectE @ 464 NONAME DATA 16
+ _ZN9QGLShader17compileSourceCodeEPKc @ 465 NONAME
+ _ZN9QGLShader17compileSourceCodeERK10QByteArray @ 466 NONAME
+ _ZN9QGLShader17compileSourceCodeERK7QString @ 467 NONAME
+ _ZN9QGLShader17compileSourceFileERK7QString @ 468 NONAME
+ _ZN9QGLShader19getStaticMetaObjectEv @ 469 NONAME
+ _ZN9QGLShaderC1E6QFlagsINS_13ShaderTypeBitEEP7QObject @ 470 NONAME
+ _ZN9QGLShaderC1E6QFlagsINS_13ShaderTypeBitEEPK10QGLContextP7QObject @ 471 NONAME
+ _ZN9QGLShaderC2E6QFlagsINS_13ShaderTypeBitEEP7QObject @ 472 NONAME
+ _ZN9QGLShaderC2E6QFlagsINS_13ShaderTypeBitEEPK10QGLContextP7QObject @ 473 NONAME
+ _ZN9QGLShaderD0Ev @ 474 NONAME
+ _ZN9QGLShaderD1Ev @ 475 NONAME
+ _ZN9QGLShaderD2Ev @ 476 NONAME
+ _ZN9QGLWidget10paintEventEP11QPaintEvent @ 477 NONAME
+ _ZN9QGLWidget10renderTextEdddRK7QStringRK5QFonti @ 478 NONAME
+ _ZN9QGLWidget10renderTextEiiRK7QStringRK5QFonti @ 479 NONAME
+ _ZN9QGLWidget10setContextEP10QGLContextPKS0_b @ 480 NONAME
+ _ZN9QGLWidget11bindTextureERK6QImageji @ 481 NONAME
+ _ZN9QGLWidget11bindTextureERK6QImageji6QFlagsIN10QGLContext10BindOptionEE @ 482 NONAME
+ _ZN9QGLWidget11bindTextureERK7QPixmapji @ 483 NONAME
+ _ZN9QGLWidget11bindTextureERK7QPixmapji6QFlagsIN10QGLContext10BindOptionEE @ 484 NONAME
+ _ZN9QGLWidget11bindTextureERK7QString @ 485 NONAME
+ _ZN9QGLWidget11doneCurrentEv @ 486 NONAME
+ _ZN9QGLWidget11drawTextureERK6QRectFjj @ 487 NONAME
+ _ZN9QGLWidget11drawTextureERK7QPointFjj @ 488 NONAME
+ _ZN9QGLWidget11makeCurrentEv @ 489 NONAME
+ _ZN9QGLWidget11qt_metacallEN11QMetaObject4CallEiPPv @ 490 NONAME
+ _ZN9QGLWidget11qt_metacastEPKc @ 491 NONAME
+ _ZN9QGLWidget11resizeEventEP12QResizeEvent @ 492 NONAME
+ _ZN9QGLWidget11setColormapERK11QGLColormap @ 493 NONAME
+ _ZN9QGLWidget11swapBuffersEv @ 494 NONAME
+ _ZN9QGLWidget12initializeGLEv @ 495 NONAME
+ _ZN9QGLWidget12renderPixmapEiib @ 496 NONAME
+ _ZN9QGLWidget13deleteTextureEj @ 497 NONAME
+ _ZN9QGLWidget14paintOverlayGLEv @ 498 NONAME
+ _ZN9QGLWidget15grabFrameBufferEb @ 499 NONAME
+ _ZN9QGLWidget15resizeOverlayGLEii @ 500 NONAME
+ _ZN9QGLWidget15updateOverlayGLEv @ 501 NONAME
+ _ZN9QGLWidget16setMouseTrackingEb @ 502 NONAME
+ _ZN9QGLWidget16staticMetaObjectE @ 503 NONAME DATA 16
+ _ZN9QGLWidget17convertToGLFormatERK6QImage @ 504 NONAME
+ _ZN9QGLWidget17setAutoBufferSwapEb @ 505 NONAME
+ _ZN9QGLWidget18makeOverlayCurrentEv @ 506 NONAME
+ _ZN9QGLWidget19fontDisplayListBaseERK5QFonti @ 507 NONAME
+ _ZN9QGLWidget19getStaticMetaObjectEv @ 508 NONAME
+ _ZN9QGLWidget19initializeOverlayGLEv @ 509 NONAME
+ _ZN9QGLWidget5eventEP6QEvent @ 510 NONAME
+ _ZN9QGLWidget6glDrawEv @ 511 NONAME
+ _ZN9QGLWidget6glInitEv @ 512 NONAME
+ _ZN9QGLWidget7paintGLEv @ 513 NONAME
+ _ZN9QGLWidget8resizeGLEii @ 514 NONAME
+ _ZN9QGLWidget8updateGLEv @ 515 NONAME
+ _ZN9QGLWidget9setFormatERK9QGLFormat @ 516 NONAME
+ _ZN9QGLWidgetC1EP10QGLContextP7QWidgetPKS_6QFlagsIN2Qt10WindowTypeEE @ 517 NONAME
+ _ZN9QGLWidgetC1EP7QWidgetPKS_6QFlagsIN2Qt10WindowTypeEE @ 518 NONAME
+ _ZN9QGLWidgetC1ERK9QGLFormatP7QWidgetPKS_6QFlagsIN2Qt10WindowTypeEE @ 519 NONAME
+ _ZN9QGLWidgetC2EP10QGLContextP7QWidgetPKS_6QFlagsIN2Qt10WindowTypeEE @ 520 NONAME
+ _ZN9QGLWidgetC2EP7QWidgetPKS_6QFlagsIN2Qt10WindowTypeEE @ 521 NONAME
+ _ZN9QGLWidgetC2ERK9QGLFormatP7QWidgetPKS_6QFlagsIN2Qt10WindowTypeEE @ 522 NONAME
+ _ZN9QGLWidgetD0Ev @ 523 NONAME
+ _ZN9QGLWidgetD1Ev @ 524 NONAME
+ _ZN9QGLWidgetD2Ev @ 525 NONAME
+ _ZNK10QGLContext10colorIndexERK6QColor @ 526 NONAME
+ _ZNK10QGLContext11initializedEv @ 527 NONAME
+ _ZNK10QGLContext11swapBuffersEv @ 528 NONAME
+ _ZNK10QGLContext13windowCreatedEv @ 529 NONAME
+ _ZNK10QGLContext14deviceIsPixmapEv @ 530 NONAME
+ _ZNK10QGLContext14getProcAddressERK7QString @ 531 NONAME
+ _ZNK10QGLContext15requestedFormatEv @ 532 NONAME
+ _ZNK10QGLContext23overlayTransparentColorEv @ 533 NONAME
+ _ZNK10QGLContext6deviceEv @ 534 NONAME
+ _ZNK10QGLContext6formatEv @ 535 NONAME
+ _ZNK10QGLContext7isValidEv @ 536 NONAME
+ _ZNK10QGLContext9isSharingEv @ 537 NONAME
+ _ZNK11QGLColormap10entryColorEi @ 538 NONAME
+ _ZNK11QGLColormap11findNearestEj @ 539 NONAME
+ _ZNK11QGLColormap4findEj @ 540 NONAME
+ _ZNK11QGLColormap4sizeEv @ 541 NONAME
+ _ZNK11QGLColormap7isEmptyEv @ 542 NONAME
+ _ZNK11QGLColormap8entryRgbEi @ 543 NONAME
+ _ZNK13QGLPixmapData11paintEngineEv @ 544 NONAME
+ _ZNK13QGLPixmapData13ensureCreatedEv @ 545 NONAME
+ _ZNK13QGLPixmapData14isValidContextEPK10QGLContext @ 546 NONAME
+ _ZNK13QGLPixmapData15hasAlphaChannelEv @ 547 NONAME
+ _ZNK13QGLPixmapData21copyBackFromRenderFboEb @ 548 NONAME
+ _ZNK13QGLPixmapData21useFramebufferObjectsEv @ 549 NONAME
+ _ZNK13QGLPixmapData26createCompatiblePixmapDataEv @ 550 NONAME
+ _ZNK13QGLPixmapData4bindEb @ 551 NONAME
+ _ZNK13QGLPixmapData6metricEN12QPaintDevice17PaintDeviceMetricE @ 552 NONAME
+ _ZNK13QGLPixmapData7isValidEv @ 553 NONAME
+ _ZNK13QGLPixmapData7textureEv @ 554 NONAME
+ _ZNK13QGLPixmapData7toImageEv @ 555 NONAME
+ _ZNK13QGLPixmapData8glDeviceEv @ 556 NONAME
+ _ZNK13QGLPixmapData9fillImageERK6QColor @ 557 NONAME
+ _ZNK14QGLPaintDevice14alphaRequestedEv @ 558 NONAME
+ _ZNK14QGLPaintDevice6formatEv @ 559 NONAME
+ _ZNK14QGLPaintDevice6metricEN12QPaintDevice17PaintDeviceMetricE @ 560 NONAME
+ _ZNK14QGLPixelBuffer11paintEngineEv @ 561 NONAME
+ _ZNK14QGLPixelBuffer20updateDynamicTextureEj @ 562 NONAME
+ _ZNK14QGLPixelBuffer22generateDynamicTextureEv @ 563 NONAME
+ _ZNK14QGLPixelBuffer4sizeEv @ 564 NONAME
+ _ZNK14QGLPixelBuffer6formatEv @ 565 NONAME
+ _ZNK14QGLPixelBuffer6handleEv @ 566 NONAME
+ _ZNK14QGLPixelBuffer6metricEN12QPaintDevice17PaintDeviceMetricE @ 567 NONAME
+ _ZNK14QGLPixelBuffer7isValidEv @ 568 NONAME
+ _ZNK14QGLPixelBuffer7toImageEv @ 569 NONAME
+ _ZNK14QGLSignalProxy10metaObjectEv @ 570 NONAME
+ _ZNK16QGLShaderProgram10metaObjectEv @ 571 NONAME
+ _ZNK16QGLShaderProgram15uniformLocationEPKc @ 572 NONAME
+ _ZNK16QGLShaderProgram15uniformLocationERK10QByteArray @ 573 NONAME
+ _ZNK16QGLShaderProgram15uniformLocationERK7QString @ 574 NONAME
+ _ZNK16QGLShaderProgram17attributeLocationEPKc @ 575 NONAME
+ _ZNK16QGLShaderProgram17attributeLocationERK10QByteArray @ 576 NONAME
+ _ZNK16QGLShaderProgram17attributeLocationERK7QString @ 577 NONAME
+ _ZNK16QGLShaderProgram17geometryInputTypeEv @ 578 NONAME
+ _ZNK16QGLShaderProgram18geometryOutputTypeEv @ 579 NONAME
+ _ZNK16QGLShaderProgram25geometryOutputVertexCountEv @ 580 NONAME
+ _ZNK16QGLShaderProgram25maxGeometryOutputVerticesEv @ 581 NONAME
+ _ZNK16QGLShaderProgram3logEv @ 582 NONAME
+ _ZNK16QGLShaderProgram7shadersEv @ 583 NONAME
+ _ZNK16QGLShaderProgram8isLinkedEv @ 584 NONAME
+ _ZNK16QGLShaderProgram9programIdEv @ 585 NONAME
+ _ZNK16QGLWindowSurface10metaObjectEv @ 586 NONAME
+ _ZNK16QGLWindowSurface7contextEv @ 587 NONAME
+ _ZNK17QGL2PaintEngineEx11createStateEP13QPainterState @ 588 NONAME
+ _ZNK17QGL2PaintEngineEx22isNativePaintingActiveEv @ 589 NONAME
+ _ZNK17QGLGraphicsSystem16createPixmapDataEN11QPixmapData9PixelTypeE @ 590 NONAME
+ _ZNK17QGLGraphicsSystem19createWindowSurfaceEP7QWidget @ 591 NONAME
+ _ZNK20QGLCustomShaderStage6sourceEv @ 592 NONAME
+ _ZNK20QGLFramebufferObject10attachmentEv @ 593 NONAME
+ _ZNK20QGLFramebufferObject11paintEngineEv @ 594 NONAME
+ _ZNK20QGLFramebufferObject4sizeEv @ 595 NONAME
+ _ZNK20QGLFramebufferObject6formatEv @ 596 NONAME
+ _ZNK20QGLFramebufferObject6handleEv @ 597 NONAME
+ _ZNK20QGLFramebufferObject6metricEN12QPaintDevice17PaintDeviceMetricE @ 598 NONAME
+ _ZNK20QGLFramebufferObject7isBoundEv @ 599 NONAME
+ _ZNK20QGLFramebufferObject7isValidEv @ 600 NONAME
+ _ZNK20QGLFramebufferObject7textureEv @ 601 NONAME
+ _ZNK20QGLFramebufferObject7toImageEv @ 602 NONAME
+ _ZNK20QGLTextureGlyphCache10metaObjectEv @ 603 NONAME
+ _ZNK20QGLTextureGlyphCache12glyphPaddingEv @ 604 NONAME
+ _ZNK21QGraphicsShaderEffect10metaObjectEv @ 605 NONAME
+ _ZNK21QGraphicsShaderEffect19pixelShaderFragmentEv @ 606 NONAME
+ _ZNK22QGLEngineShaderManager10metaObjectEv @ 607 NONAME
+ _ZNK26QGLFramebufferObjectFormat10attachmentEv @ 608 NONAME
+ _ZNK26QGLFramebufferObjectFormat13textureTargetEv @ 609 NONAME
+ _ZNK26QGLFramebufferObjectFormat21internalTextureFormatEv @ 610 NONAME
+ _ZNK26QGLFramebufferObjectFormat7samplesEv @ 611 NONAME
+ _ZNK26QGLFramebufferObjectFormateqERKS_ @ 612 NONAME
+ _ZNK26QGLFramebufferObjectFormatneERKS_ @ 613 NONAME
+ _ZNK9QGLBuffer12usagePatternEv @ 614 NONAME
+ _ZNK9QGLBuffer4sizeEv @ 615 NONAME
+ _ZNK9QGLBuffer4typeEv @ 616 NONAME
+ _ZNK9QGLBuffer8bufferIdEv @ 617 NONAME
+ _ZNK9QGLBuffer9isCreatedEv @ 618 NONAME
+ _ZNK9QGLFormat10testOptionE6QFlagsIN3QGL12FormatOptionEE @ 619 NONAME
+ _ZNK9QGLFormat12majorVersionEv @ 620 NONAME
+ _ZNK9QGLFormat12minorVersionEv @ 621 NONAME
+ _ZNK9QGLFormat12swapIntervalEv @ 622 NONAME
+ _ZNK9QGLFormat13redBufferSizeEv @ 623 NONAME
+ _ZNK9QGLFormat14blueBufferSizeEv @ 624 NONAME
+ _ZNK9QGLFormat15accumBufferSizeEv @ 625 NONAME
+ _ZNK9QGLFormat15alphaBufferSizeEv @ 626 NONAME
+ _ZNK9QGLFormat15depthBufferSizeEv @ 627 NONAME
+ _ZNK9QGLFormat15greenBufferSizeEv @ 628 NONAME
+ _ZNK9QGLFormat17stencilBufferSizeEv @ 629 NONAME
+ _ZNK9QGLFormat5planeEv @ 630 NONAME
+ _ZNK9QGLFormat7profileEv @ 631 NONAME
+ _ZNK9QGLFormat7samplesEv @ 632 NONAME
+ _ZNK9QGLShader10isCompiledEv @ 633 NONAME
+ _ZNK9QGLShader10metaObjectEv @ 634 NONAME
+ _ZNK9QGLShader10shaderTypeEv @ 635 NONAME
+ _ZNK9QGLShader10sourceCodeEv @ 636 NONAME
+ _ZNK9QGLShader3logEv @ 637 NONAME
+ _ZNK9QGLShader8shaderIdEv @ 638 NONAME
+ _ZNK9QGLWidget10metaObjectEv @ 639 NONAME
+ _ZNK9QGLWidget11paintEngineEv @ 640 NONAME
+ _ZNK9QGLWidget12doubleBufferEv @ 641 NONAME
+ _ZNK9QGLWidget13qglClearColorERK6QColor @ 642 NONAME
+ _ZNK9QGLWidget14autoBufferSwapEv @ 643 NONAME
+ _ZNK9QGLWidget14overlayContextEv @ 644 NONAME
+ _ZNK9QGLWidget6formatEv @ 645 NONAME
+ _ZNK9QGLWidget7contextEv @ 646 NONAME
+ _ZNK9QGLWidget7isValidEv @ 647 NONAME
+ _ZNK9QGLWidget8colormapEv @ 648 NONAME
+ _ZNK9QGLWidget8qglColorERK6QColor @ 649 NONAME
+ _ZNK9QGLWidget9isSharingEv @ 650 NONAME
+ _ZTI10QGLContext @ 651 NONAME
+ _ZTI13QGLPixmapData @ 652 NONAME
+ _ZTI14QGLPaintDevice @ 653 NONAME
+ _ZTI14QGLPixelBuffer @ 654 NONAME
+ _ZTI14QGLSignalProxy @ 655 NONAME
+ _ZTI16QGLShaderProgram @ 656 NONAME
+ _ZTI16QGLWindowSurface @ 657 NONAME
+ _ZTI17QGL2PaintEngineEx @ 658 NONAME
+ _ZTI17QGLGraphicsSystem @ 659 NONAME
+ _ZTI20QGLCustomShaderStage @ 660 NONAME
+ _ZTI20QGLFramebufferObject @ 661 NONAME
+ _ZTI20QGLTextureGlyphCache @ 662 NONAME
+ _ZTI21QGraphicsShaderEffect @ 663 NONAME
+ _ZTI22QGLEngineShaderManager @ 664 NONAME
+ _ZTI9QGLShader @ 665 NONAME
+ _ZTI9QGLWidget @ 666 NONAME
+ _ZTV10QGLContext @ 667 NONAME
+ _ZTV13QGLPixmapData @ 668 NONAME
+ _ZTV14QGLPaintDevice @ 669 NONAME
+ _ZTV14QGLPixelBuffer @ 670 NONAME
+ _ZTV14QGLSignalProxy @ 671 NONAME
+ _ZTV16QGLShaderProgram @ 672 NONAME
+ _ZTV16QGLWindowSurface @ 673 NONAME
+ _ZTV17QGL2PaintEngineEx @ 674 NONAME
+ _ZTV17QGLGraphicsSystem @ 675 NONAME
+ _ZTV20QGLCustomShaderStage @ 676 NONAME
+ _ZTV20QGLFramebufferObject @ 677 NONAME
+ _ZTV20QGLTextureGlyphCache @ 678 NONAME
+ _ZTV21QGraphicsShaderEffect @ 679 NONAME
+ _ZTV22QGLEngineShaderManager @ 680 NONAME
+ _ZTV9QGLShader @ 681 NONAME
+ _ZTV9QGLWidget @ 682 NONAME
+ _ZThn8_N16QGLWindowSurface10beginPaintERK7QRegion @ 683 NONAME
+ _ZThn8_N16QGLWindowSurface11paintDeviceEv @ 684 NONAME
+ _ZThn8_N16QGLWindowSurface11setGeometryERK5QRect @ 685 NONAME
+ _ZThn8_N16QGLWindowSurface5flushEP7QWidgetRK7QRegionRK6QPoint @ 686 NONAME
+ _ZThn8_N16QGLWindowSurface6bufferEPK7QWidget @ 687 NONAME
+ _ZThn8_N16QGLWindowSurface6scrollERK7QRegionii @ 688 NONAME
+ _ZThn8_N16QGLWindowSurface8endPaintERK7QRegion @ 689 NONAME
+ _ZThn8_N16QGLWindowSurfaceD0Ev @ 690 NONAME
+ _ZThn8_N16QGLWindowSurfaceD1Ev @ 691 NONAME
+ _ZThn8_N20QGLTextureGlyphCache11fillTextureERKN18QTextureGlyphCache5CoordEj @ 692 NONAME
+ _ZThn8_N20QGLTextureGlyphCache17createTextureDataEii @ 693 NONAME
+ _ZThn8_N20QGLTextureGlyphCache17resizeTextureDataEii @ 694 NONAME
+ _ZThn8_N20QGLTextureGlyphCacheD0Ev @ 695 NONAME
+ _ZThn8_N20QGLTextureGlyphCacheD1Ev @ 696 NONAME
+ _ZThn8_N9QGLWidgetD0Ev @ 697 NONAME
+ _ZThn8_N9QGLWidgetD1Ev @ 698 NONAME
+ _ZThn8_NK20QGLTextureGlyphCache12glyphPaddingEv @ 699 NONAME
+ _ZThn8_NK9QGLWidget11paintEngineEv @ 700 NONAME
+ _ZeqRK9QGLFormatS1_ @ 701 NONAME
+ _Zls6QDebugRK9QGLFormat @ 702 NONAME
+ _ZneRK9QGLFormatS1_ @ 703 NONAME
+
diff --git a/tests/auto/declarative/qdeclarativeanimatedimage/tst_qdeclarativeanimatedimage.cpp b/tests/auto/declarative/qdeclarativeanimatedimage/tst_qdeclarativeanimatedimage.cpp
index 1001278..da15a85 100644
--- a/tests/auto/declarative/qdeclarativeanimatedimage/tst_qdeclarativeanimatedimage.cpp
+++ b/tests/auto/declarative/qdeclarativeanimatedimage/tst_qdeclarativeanimatedimage.cpp
@@ -47,22 +47,13 @@
#include <private/qdeclarativeanimatedimage_p.h>
#include "../shared/testhttpserver.h"
+#include "../../../shared/util.h"
#ifdef Q_OS_SYMBIAN
// In Symbian OS test data is located in applications private dir
#define SRCDIR "."
#endif
-#define TRY_WAIT(expr) \
- do { \
- for (int ii = 0; ii < 6; ++ii) { \
- if ((expr)) break; \
- QTest::qWait(50); \
- } \
- QVERIFY((expr)); \
- } while (false)
-
-
class tst_qdeclarativeanimatedimage : public QObject
{
Q_OBJECT
@@ -152,14 +143,14 @@ void tst_qdeclarativeanimatedimage::remote()
QDeclarativeEngine engine;
QDeclarativeComponent component(&engine, QUrl("http://127.0.0.1:14449/" + fileName));
- TRY_WAIT(component.isReady());
+ QTRY_VERIFY(component.isReady());
QDeclarativeAnimatedImage *anim = qobject_cast<QDeclarativeAnimatedImage *>(component.create());
QVERIFY(anim);
- TRY_WAIT(anim->isPlaying());
+ QTRY_VERIFY(anim->isPlaying());
if (paused) {
- TRY_WAIT(anim->isPaused());
+ QTRY_VERIFY(anim->isPaused());
QCOMPARE(anim->currentFrame(), 2);
}
QVERIFY(anim->status() != QDeclarativeAnimatedImage::Error);
diff --git a/tests/auto/declarative/qdeclarativeborderimage/tst_qdeclarativeborderimage.cpp b/tests/auto/declarative/qdeclarativeborderimage/tst_qdeclarativeborderimage.cpp
index 1b73cf7..c77d395 100644
--- a/tests/auto/declarative/qdeclarativeborderimage/tst_qdeclarativeborderimage.cpp
+++ b/tests/auto/declarative/qdeclarativeborderimage/tst_qdeclarativeborderimage.cpp
@@ -53,6 +53,7 @@
#include <QtDeclarative/qdeclarativecontext.h>
#include "../shared/testhttpserver.h"
+#include "../../../shared/util.h"
#ifdef Q_OS_SYMBIAN
// In Symbian OS test data is located in applications private dir
@@ -62,16 +63,6 @@
#define SERVER_PORT 14446
#define SERVER_ADDR "http://127.0.0.1:14446"
-#define TRY_WAIT(expr) \
- do { \
- for (int ii = 0; ii < 60; ++ii) { \
- if ((expr)) break; \
- QTest::qWait(50); \
- } \
- QVERIFY((expr)); \
- } while (false)
-
-
class tst_qdeclarativeborderimage : public QObject
{
@@ -154,18 +145,18 @@ void tst_qdeclarativeborderimage::imageSource()
QVERIFY(obj != 0);
if (remote)
- TRY_WAIT(obj->status() == QDeclarativeBorderImage::Loading);
+ QTRY_VERIFY(obj->status() == QDeclarativeBorderImage::Loading);
QCOMPARE(obj->source(), remote ? source : QUrl(source));
if (error.isEmpty()) {
- TRY_WAIT(obj->status() == QDeclarativeBorderImage::Ready);
+ QTRY_VERIFY(obj->status() == QDeclarativeBorderImage::Ready);
QCOMPARE(obj->width(), 120.);
QCOMPARE(obj->height(), 120.);
QCOMPARE(obj->horizontalTileMode(), QDeclarativeBorderImage::Stretch);
QCOMPARE(obj->verticalTileMode(), QDeclarativeBorderImage::Stretch);
} else {
- TRY_WAIT(obj->status() == QDeclarativeBorderImage::Error);
+ QTRY_VERIFY(obj->status() == QDeclarativeBorderImage::Error);
}
delete obj;
@@ -273,14 +264,14 @@ void tst_qdeclarativeborderimage::sciSource()
QVERIFY(obj != 0);
if (remote)
- TRY_WAIT(obj->status() == QDeclarativeBorderImage::Loading);
+ QTRY_VERIFY(obj->status() == QDeclarativeBorderImage::Loading);
QCOMPARE(obj->source(), remote ? source : QUrl(source));
QCOMPARE(obj->width(), 300.);
QCOMPARE(obj->height(), 300.);
if (valid) {
- TRY_WAIT(obj->status() == QDeclarativeBorderImage::Ready);
+ QTRY_VERIFY(obj->status() == QDeclarativeBorderImage::Ready);
QCOMPARE(obj->border()->left(), 10);
QCOMPARE(obj->border()->top(), 20);
QCOMPARE(obj->border()->right(), 30);
@@ -288,7 +279,7 @@ void tst_qdeclarativeborderimage::sciSource()
QCOMPARE(obj->horizontalTileMode(), QDeclarativeBorderImage::Round);
QCOMPARE(obj->verticalTileMode(), QDeclarativeBorderImage::Repeat);
} else {
- TRY_WAIT(obj->status() == QDeclarativeBorderImage::Error);
+ QTRY_VERIFY(obj->status() == QDeclarativeBorderImage::Error);
}
delete obj;
diff --git a/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp b/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp
index 33bf7ea..c10a110 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp
+++ b/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp
@@ -52,6 +52,7 @@
#include <private/qdeclarativeglobalscriptclass_p.h>
#include "testtypes.h"
#include "testhttpserver.h"
+#include "../../../shared/util.h"
#ifdef Q_OS_SYMBIAN
// In Symbian OS test data is located in applications private dir
@@ -2416,15 +2417,6 @@ void tst_qdeclarativeecmascript::function()
delete o;
}
-#define TRY_WAIT(expr) \
- do { \
- for (int ii = 0; ii < 6; ++ii) { \
- if ((expr)) break; \
- QTest::qWait(50); \
- } \
- QVERIFY((expr)); \
- } while (false)
-
// Test the "Qt.include" method
void tst_qdeclarativeecmascript::include()
{
@@ -2496,8 +2488,8 @@ void tst_qdeclarativeecmascript::include()
QObject *o = component.create();
QVERIFY(o != 0);
- TRY_WAIT(o->property("done").toBool() == true);
- TRY_WAIT(o->property("done2").toBool() == true);
+ QTRY_VERIFY(o->property("done").toBool() == true);
+ QTRY_VERIFY(o->property("done2").toBool() == true);
QCOMPARE(o->property("test1").toBool(), true);
QCOMPARE(o->property("test2").toBool(), true);
@@ -2524,7 +2516,7 @@ void tst_qdeclarativeecmascript::include()
QObject *o = component.create();
QVERIFY(o != 0);
- TRY_WAIT(o->property("done").toBool() == true);
+ QTRY_VERIFY(o->property("done").toBool() == true);
QCOMPARE(o->property("test1").toBool(), true);
QCOMPARE(o->property("test2").toBool(), true);
diff --git a/tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp b/tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp
index d4d8bf6..5fd373c 100644
--- a/tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp
+++ b/tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp
@@ -604,6 +604,8 @@ void tst_QDeclarativeGridView::currentIndex()
// no wrap
gridview->setCurrentIndex(0);
QCOMPARE(gridview->currentIndex(), 0);
+ // confirm that the velocity is updated
+ QTRY_VERIFY(gridview->verticalVelocity() != 0.0);
gridview->moveCurrentIndexUp();
QCOMPARE(gridview->currentIndex(), 0);
diff --git a/tests/auto/declarative/qdeclarativeimageprovider/tst_qdeclarativeimageprovider.cpp b/tests/auto/declarative/qdeclarativeimageprovider/tst_qdeclarativeimageprovider.cpp
index d0afc8a..d38160d 100644
--- a/tests/auto/declarative/qdeclarativeimageprovider/tst_qdeclarativeimageprovider.cpp
+++ b/tests/auto/declarative/qdeclarativeimageprovider/tst_qdeclarativeimageprovider.cpp
@@ -45,26 +45,15 @@
#include <private/qdeclarativeimage_p.h>
#include <QImageReader>
#include <QWaitCondition>
+#include "../../../shared/util.h"
#ifdef Q_OS_SYMBIAN
// In Symbian OS test data is located in applications private dir
#define SRCDIR "."
#endif
-// QDeclarativeImageProvider::request() is run in an idle thread where possible
-// Be generous in our timeout.
-#define TRY_WAIT(expr) \
- do { \
- for (int ii = 0; ii < 10; ++ii) { \
- if ((expr)) break; \
- QTest::qWait(100); \
- } \
- QVERIFY((expr)); \
- } while (false)
-
Q_DECLARE_METATYPE(QDeclarativeImageProvider*);
-
class tst_qdeclarativeimageprovider : public QObject
{
Q_OBJECT
@@ -212,13 +201,13 @@ void tst_qdeclarativeimageprovider::runTest(bool async, QDeclarativeImageProvide
QVERIFY(obj != 0);
if (async)
- TRY_WAIT(obj->status() == QDeclarativeImage::Loading);
+ QTRY_VERIFY(obj->status() == QDeclarativeImage::Loading);
QCOMPARE(obj->source(), QUrl(source));
if (error.isEmpty()) {
if (async)
- TRY_WAIT(obj->status() == QDeclarativeImage::Ready);
+ QTRY_VERIFY(obj->status() == QDeclarativeImage::Ready);
else
QVERIFY(obj->status() == QDeclarativeImage::Ready);
QCOMPARE(obj->width(), qreal(size.width()));
@@ -229,7 +218,7 @@ void tst_qdeclarativeimageprovider::runTest(bool async, QDeclarativeImageProvide
QCOMPARE(obj->progress(), 1.0);
} else {
if (async)
- TRY_WAIT(obj->status() == QDeclarativeImage::Error);
+ QTRY_VERIFY(obj->status() == QDeclarativeImage::Error);
else
QVERIFY(obj->status() == QDeclarativeImage::Error);
}
@@ -391,7 +380,7 @@ void tst_qdeclarativeimageprovider::threadTest()
provider->cond.wakeAll();
QTest::qWait(250);
foreach(QDeclarativeImage *img, images) {
- TRY_WAIT(img->status() == QDeclarativeImage::Ready);
+ QTRY_VERIFY(img->status() == QDeclarativeImage::Ready);
}
}
diff --git a/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp b/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp
index e4b59a7..cd17fad 100644
--- a/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp
+++ b/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp
@@ -1016,6 +1016,8 @@ void tst_QDeclarativeListView::currentIndex()
// no wrap
listview->setCurrentIndex(0);
QCOMPARE(listview->currentIndex(), 0);
+ // confirm that the velocity is updated
+ QTRY_VERIFY(listview->verticalVelocity() != 0.0);
listview->incrementCurrentIndex();
QCOMPARE(listview->currentIndex(), 1);
diff --git a/tests/auto/declarative/qdeclarativeloader/tst_qdeclarativeloader.cpp b/tests/auto/declarative/qdeclarativeloader/tst_qdeclarativeloader.cpp
index 3baf848..b62392d 100644
--- a/tests/auto/declarative/qdeclarativeloader/tst_qdeclarativeloader.cpp
+++ b/tests/auto/declarative/qdeclarativeloader/tst_qdeclarativeloader.cpp
@@ -61,15 +61,6 @@ inline QUrl TEST_FILE(const QString &filename)
return QUrl::fromLocalFile(QLatin1String(SRCDIR) + QLatin1String("/data/") + filename);
}
-#define TRY_WAIT(expr) \
- do { \
- for (int ii = 0; ii < 6; ++ii) { \
- if ((expr)) break; \
- QTest::qWait(50); \
- } \
- QVERIFY((expr)); \
- } while (false)
-
class tst_QDeclarativeLoader : public QObject
{
@@ -460,7 +451,7 @@ void tst_QDeclarativeLoader::networkRequestUrl()
QDeclarativeLoader *loader = qobject_cast<QDeclarativeLoader*>(component.create());
QVERIFY(loader != 0);
- TRY_WAIT(loader->status() == QDeclarativeLoader::Ready);
+ QTRY_VERIFY(loader->status() == QDeclarativeLoader::Ready);
QVERIFY(loader->item());
QCOMPARE(loader->progress(), 1.0);
@@ -491,7 +482,7 @@ void tst_QDeclarativeLoader::networkComponent()
QDeclarativeLoader *loader = qobject_cast<QDeclarativeLoader*>(item->QGraphicsObject::children().at(1));
QVERIFY(loader);
- TRY_WAIT(loader->status() == QDeclarativeLoader::Ready);
+ QTRY_VERIFY(loader->status() == QDeclarativeLoader::Ready);
QVERIFY(loader->item());
QCOMPARE(loader->progress(), 1.0);
@@ -515,7 +506,7 @@ void tst_QDeclarativeLoader::failNetworkRequest()
QDeclarativeLoader *loader = qobject_cast<QDeclarativeLoader*>(component.create());
QVERIFY(loader != 0);
- TRY_WAIT(loader->status() == QDeclarativeLoader::Error);
+ QTRY_VERIFY(loader->status() == QDeclarativeLoader::Error);
QVERIFY(loader->item() == 0);
QCOMPARE(loader->progress(), 0.0);
diff --git a/tests/auto/declarative/qdeclarativemousearea/data/doubleclick.qml b/tests/auto/declarative/qdeclarativemousearea/data/doubleclick.qml
new file mode 100644
index 0000000..9cddf1b
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativemousearea/data/doubleclick.qml
@@ -0,0 +1,14 @@
+import Qt 4.7
+
+Item {
+ id: root
+ property int clicked: 0
+ property int doubleClicked: 0
+
+ MouseArea {
+ width: 200; height: 200
+ onClicked: { root.clicked++ }
+ onDoubleClicked: { root.doubleClicked++ }
+ }
+}
+
diff --git a/tests/auto/declarative/qdeclarativemousearea/tst_qdeclarativemousearea.cpp b/tests/auto/declarative/qdeclarativemousearea/tst_qdeclarativemousearea.cpp
index c9bb467..e4ec01f 100644
--- a/tests/auto/declarative/qdeclarativemousearea/tst_qdeclarativemousearea.cpp
+++ b/tests/auto/declarative/qdeclarativemousearea/tst_qdeclarativemousearea.cpp
@@ -62,6 +62,7 @@ private slots:
void updateMouseAreaPosOnResize();
void noOnClickedWithPressAndHold();
void onMousePressRejected();
+ void doubleClick();
private:
QDeclarativeView *createView();
@@ -390,6 +391,37 @@ void tst_QDeclarativeMouseArea::onMousePressRejected()
QVERIFY(!canvas->rootObject()->property("mr2_released").toBool());
}
+void tst_QDeclarativeMouseArea::doubleClick()
+{
+ QDeclarativeView *canvas = createView();
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/doubleclick.qml"));
+ canvas->show();
+ canvas->setFocus();
+ QVERIFY(canvas->rootObject() != 0);
+
+ QGraphicsScene *scene = canvas->scene();
+ QGraphicsSceneMouseEvent pressEvent(QEvent::GraphicsSceneMousePress);
+ pressEvent.setScenePos(QPointF(100, 100));
+ pressEvent.setButton(Qt::LeftButton);
+ pressEvent.setButtons(Qt::LeftButton);
+ QApplication::sendEvent(scene, &pressEvent);
+
+ QGraphicsSceneMouseEvent releaseEvent(QEvent::GraphicsSceneMouseRelease);
+ releaseEvent.setScenePos(QPointF(100, 100));
+ releaseEvent.setButton(Qt::LeftButton);
+ releaseEvent.setButtons(Qt::LeftButton);
+ QApplication::sendEvent(scene, &releaseEvent);
+
+ QGraphicsSceneMouseEvent dblClickEvent(QEvent::GraphicsSceneMouseDoubleClick);
+ dblClickEvent.setScenePos(QPointF(100, 100));
+ dblClickEvent.setButton(Qt::LeftButton);
+ dblClickEvent.setButtons(Qt::LeftButton);
+ QApplication::sendEvent(scene, &dblClickEvent);
+
+ QCOMPARE(canvas->rootObject()->property("clicked").toInt(), 1);
+ QCOMPARE(canvas->rootObject()->property("doubleClicked").toInt(), 1);
+}
+
QTEST_MAIN(tst_QDeclarativeMouseArea)
#include "tst_qdeclarativemousearea.moc"
diff --git a/tests/auto/declarative/qdeclarativestates/data/parentChange6.qml b/tests/auto/declarative/qdeclarativestates/data/parentChange6.qml
new file mode 100644
index 0000000..be92aba
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativestates/data/parentChange6.qml
@@ -0,0 +1,30 @@
+import Qt 4.7
+
+Rectangle {
+ width: 400; height: 400
+ Rectangle {
+ id: myRect
+ objectName: "MyRect"
+ x: 5; y: 5
+ width: 100; height: 100
+ color: "red"
+ }
+ MouseArea {
+ id: clickable
+ anchors.fill: parent
+ }
+
+ Item {
+ id: newParent
+ rotation: 180
+ }
+
+ states: State {
+ name: "reparented"
+ when: clickable.pressed
+ ParentChange {
+ target: myRect
+ parent: newParent
+ }
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativestates/tst_qdeclarativestates.cpp b/tests/auto/declarative/qdeclarativestates/tst_qdeclarativestates.cpp
index 6ae2759..0621602 100644
--- a/tests/auto/declarative/qdeclarativestates/tst_qdeclarativestates.cpp
+++ b/tests/auto/declarative/qdeclarativestates/tst_qdeclarativestates.cpp
@@ -581,6 +581,21 @@ void tst_qdeclarativestates::parentChange()
//do a non-qFuzzyCompare fuzzy compare
QVERIFY(innerRect->y() < qreal(0.00001) && innerRect->y() > qreal(-0.00001));
}
+
+ {
+ QDeclarativeComponent rectComponent(&engine, SRCDIR "/data/parentChange6.qml");
+ QDeclarativeRectangle *rect = qobject_cast<QDeclarativeRectangle*>(rectComponent.create());
+ QVERIFY(rect != 0);
+
+ QDeclarativeRectangle *innerRect = qobject_cast<QDeclarativeRectangle*>(rect->findChild<QDeclarativeRectangle*>("MyRect"));
+ QVERIFY(innerRect != 0);
+
+ QDeclarativeItemPrivate::get(rect)->setState("reparented");
+ QCOMPARE(innerRect->rotation(), qreal(180));
+ QCOMPARE(innerRect->scale(), qreal(1));
+ QCOMPARE(innerRect->x(), qreal(-105));
+ QCOMPARE(innerRect->y(), qreal(-105));
+ }
}
void tst_qdeclarativestates::parentChangeErrors()
diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/tst_qdeclarativexmlhttprequest.cpp b/tests/auto/declarative/qdeclarativexmlhttprequest/tst_qdeclarativexmlhttprequest.cpp
index ecce349..89252fb 100644
--- a/tests/auto/declarative/qdeclarativexmlhttprequest/tst_qdeclarativexmlhttprequest.cpp
+++ b/tests/auto/declarative/qdeclarativexmlhttprequest/tst_qdeclarativexmlhttprequest.cpp
@@ -45,6 +45,7 @@
#include <QDebug>
#include <QNetworkCookieJar>
#include "testhttpserver.h"
+#include "../../../shared/util.h"
#define SERVER_PORT 14445
@@ -156,16 +157,6 @@ void tst_qdeclarativexmlhttprequest::domExceptionCodes()
delete object;
}
-#define TRY_WAIT(expr) \
- do { \
- for (int ii = 0; ii < 6; ++ii) { \
- if ((expr)) break; \
- QTest::qWait(50); \
- } \
- QVERIFY((expr)); \
- } while (false)
-
-
void tst_qdeclarativexmlhttprequest::callbackException_data()
{
QTest::addColumn<QString>("which");
@@ -193,7 +184,7 @@ void tst_qdeclarativexmlhttprequest::callbackException()
object->setProperty("which", which);
component.completeCreate();
- TRY_WAIT(object->property("threw").toBool() == true);
+ QTRY_VERIFY(object->property("threw").toBool() == true);
delete object;
}
@@ -289,7 +280,7 @@ void tst_qdeclarativexmlhttprequest::open()
QCOMPARE(object->property("responseText").toBool(), true);
QCOMPARE(object->property("responseXML").toBool(), true);
- TRY_WAIT(object->property("dataOK").toBool() == true);
+ QTRY_VERIFY(object->property("dataOK").toBool() == true);
delete server;
delete object;
@@ -372,7 +363,7 @@ void tst_qdeclarativexmlhttprequest::setRequestHeader()
object->setProperty("url", "http://127.0.0.1:14445/testdocument.html");
component.completeCreate();
- TRY_WAIT(object->property("dataOK").toBool() == true);
+ QTRY_VERIFY(object->property("dataOK").toBool() == true);
delete object;
}
@@ -442,7 +433,7 @@ void tst_qdeclarativexmlhttprequest::setRequestHeader_illegalName()
QCOMPARE(object->property("responseText").toBool(), true);
QCOMPARE(object->property("responseXML").toBool(), true);
- TRY_WAIT(object->property("dataOK").toBool() == true);
+ QTRY_VERIFY(object->property("dataOK").toBool() == true);
delete object;
}
@@ -464,7 +455,7 @@ void tst_qdeclarativexmlhttprequest::setRequestHeader_sent()
QCOMPARE(object->property("test").toBool(), true);
- TRY_WAIT(object->property("dataOK").toBool() == true);
+ QTRY_VERIFY(object->property("dataOK").toBool() == true);
delete object;
}
@@ -501,7 +492,7 @@ void tst_qdeclarativexmlhttprequest::send_alreadySent()
QVERIFY(object != 0);
QCOMPARE(object->property("test").toBool(), true);
- TRY_WAIT(object->property("dataOK").toBool() == true);
+ QTRY_VERIFY(object->property("dataOK").toBool() == true);
delete object;
}
@@ -523,7 +514,7 @@ void tst_qdeclarativexmlhttprequest::send_ignoreData()
object->setProperty("url", "http://127.0.0.1:14445/testdocument.html");
component.completeCreate();
- TRY_WAIT(object->property("dataOK").toBool() == true);
+ QTRY_VERIFY(object->property("dataOK").toBool() == true);
delete object;
}
@@ -542,7 +533,7 @@ void tst_qdeclarativexmlhttprequest::send_ignoreData()
object->setProperty("url", "http://127.0.0.1:14445/testdocument.html");
component.completeCreate();
- TRY_WAIT(object->property("dataOK").toBool() == true);
+ QTRY_VERIFY(object->property("dataOK").toBool() == true);
delete object;
}
@@ -566,7 +557,7 @@ void tst_qdeclarativexmlhttprequest::send_withdata()
object->setProperty("url", "http://127.0.0.1:14445/testdocument.html");
component.completeCreate();
- TRY_WAIT(object->property("dataOK").toBool() == true);
+ QTRY_VERIFY(object->property("dataOK").toBool() == true);
delete object;
}
@@ -601,7 +592,7 @@ void tst_qdeclarativexmlhttprequest::abort_unsent()
QCOMPARE(object->property("responseText").toBool(), true);
QCOMPARE(object->property("responseXML").toBool(), true);
- TRY_WAIT(object->property("dataOK").toBool() == true);
+ QTRY_VERIFY(object->property("dataOK").toBool() == true);
delete object;
}
@@ -622,7 +613,7 @@ void tst_qdeclarativexmlhttprequest::abort_opened()
QCOMPARE(object->property("responseText").toBool(), true);
QCOMPARE(object->property("responseXML").toBool(), true);
- TRY_WAIT(object->property("dataOK").toBool() == true);
+ QTRY_VERIFY(object->property("dataOK").toBool() == true);
delete object;
}
@@ -647,7 +638,7 @@ void tst_qdeclarativexmlhttprequest::abort()
QCOMPARE(object->property("didNotSeeUnsent").toBool(), true);
QCOMPARE(object->property("endStateUnsent").toBool(), true);
- TRY_WAIT(object->property("dataOK").toBool() == true);
+ QTRY_VERIFY(object->property("dataOK").toBool() == true);
delete object;
}
@@ -674,7 +665,7 @@ void tst_qdeclarativexmlhttprequest::getResponseHeader()
QCOMPARE(object->property("readyState").toBool(), true);
QCOMPARE(object->property("openedState").toBool(), true);
- TRY_WAIT(object->property("dataOK").toBool() == true);
+ QTRY_VERIFY(object->property("dataOK").toBool() == true);
QCOMPARE(object->property("headersReceivedState").toBool(), true);
QCOMPARE(object->property("headersReceivedNullHeader").toBool(), true);
@@ -722,7 +713,7 @@ void tst_qdeclarativexmlhttprequest::getResponseHeader_args()
QObject *object = component.create();
QVERIFY(object != 0);
- TRY_WAIT(object->property("exceptionThrown").toBool() == true);
+ QTRY_VERIFY(object->property("exceptionThrown").toBool() == true);
delete object;
}
@@ -748,7 +739,7 @@ void tst_qdeclarativexmlhttprequest::getAllResponseHeaders()
QCOMPARE(object->property("readyState").toBool(), true);
QCOMPARE(object->property("openedState").toBool(), true);
- TRY_WAIT(object->property("dataOK").toBool() == true);
+ QTRY_VERIFY(object->property("dataOK").toBool() == true);
QCOMPARE(object->property("headersReceivedState").toBool(), true);
QCOMPARE(object->property("headersReceivedHeader").toBool(), true);
@@ -790,7 +781,7 @@ void tst_qdeclarativexmlhttprequest::getAllResponseHeaders_args()
QObject *object = component.create();
QVERIFY(object != 0);
- TRY_WAIT(object->property("exceptionThrown").toBool() == true);
+ QTRY_VERIFY(object->property("exceptionThrown").toBool() == true);
delete object;
}
@@ -813,7 +804,7 @@ void tst_qdeclarativexmlhttprequest::status()
object->setProperty("expectedStatus", status);
component.completeCreate();
- TRY_WAIT(object->property("dataOK").toBool() == true);
+ QTRY_VERIFY(object->property("dataOK").toBool() == true);
QCOMPARE(object->property("unsentException").toBool(), true);
QCOMPARE(object->property("openedException").toBool(), true);
@@ -853,7 +844,7 @@ void tst_qdeclarativexmlhttprequest::statusText()
object->setProperty("expectedStatus", statusText);
component.completeCreate();
- TRY_WAIT(object->property("dataOK").toBool() == true);
+ QTRY_VERIFY(object->property("dataOK").toBool() == true);
QCOMPARE(object->property("unsentException").toBool(), true);
QCOMPARE(object->property("openedException").toBool(), true);
@@ -894,7 +885,7 @@ void tst_qdeclarativexmlhttprequest::responseText()
object->setProperty("expectedText", responseText);
component.completeCreate();
- TRY_WAIT(object->property("dataOK").toBool() == true);
+ QTRY_VERIFY(object->property("dataOK").toBool() == true);
QCOMPARE(object->property("unsent").toBool(), true);
QCOMPARE(object->property("opened").toBool(), true);
@@ -931,7 +922,7 @@ void tst_qdeclarativexmlhttprequest::nonUtf8()
object->setProperty("fileName", fileName);
QMetaObject::invokeMethod(object, "startRequest");
- TRY_WAIT(object->property("dataOK").toBool() == true);
+ QTRY_VERIFY(object->property("dataOK").toBool() == true);
QCOMPARE(object->property("responseText").toString(), responseText);
@@ -1000,7 +991,7 @@ void tst_qdeclarativexmlhttprequest::redirects()
object->setProperty("expectedText", "");
component.completeCreate();
- TRY_WAIT(object->property("done").toBool() == true);
+ QTRY_VERIFY(object->property("done").toBool() == true);
QCOMPARE(object->property("dataOK").toBool(), true);
delete object;
@@ -1019,7 +1010,7 @@ void tst_qdeclarativexmlhttprequest::redirects()
object->setProperty("expectedText", "");
component.completeCreate();
- TRY_WAIT(object->property("done").toBool() == true);
+ QTRY_VERIFY(object->property("done").toBool() == true);
QCOMPARE(object->property("dataOK").toBool(), true);
delete object;
@@ -1056,7 +1047,7 @@ void tst_qdeclarativexmlhttprequest::responseXML_invalid()
QObject *object = component.create();
QVERIFY(object != 0);
- TRY_WAIT(object->property("dataOK").toBool() == true);
+ QTRY_VERIFY(object->property("dataOK").toBool() == true);
QCOMPARE(object->property("xmlNull").toBool(), true);
@@ -1070,7 +1061,7 @@ void tst_qdeclarativexmlhttprequest::document()
QObject *object = component.create();
QVERIFY(object != 0);
- TRY_WAIT(object->property("dataOK").toBool() == true);
+ QTRY_VERIFY(object->property("dataOK").toBool() == true);
QCOMPARE(object->property("xmlTest").toBool(), true);
@@ -1084,7 +1075,7 @@ void tst_qdeclarativexmlhttprequest::element()
QObject *object = component.create();
QVERIFY(object != 0);
- TRY_WAIT(object->property("dataOK").toBool() == true);
+ QTRY_VERIFY(object->property("dataOK").toBool() == true);
QCOMPARE(object->property("xmlTest").toBool(), true);
@@ -1098,7 +1089,7 @@ void tst_qdeclarativexmlhttprequest::attr()
QObject *object = component.create();
QVERIFY(object != 0);
- TRY_WAIT(object->property("dataOK").toBool() == true);
+ QTRY_VERIFY(object->property("dataOK").toBool() == true);
QCOMPARE(object->property("xmlTest").toBool(), true);
@@ -1112,7 +1103,7 @@ void tst_qdeclarativexmlhttprequest::text()
QObject *object = component.create();
QVERIFY(object != 0);
- TRY_WAIT(object->property("dataOK").toBool() == true);
+ QTRY_VERIFY(object->property("dataOK").toBool() == true);
QCOMPARE(object->property("xmlTest").toBool(), true);
@@ -1126,7 +1117,7 @@ void tst_qdeclarativexmlhttprequest::cdata()
QObject *object = component.create();
QVERIFY(object != 0);
- TRY_WAIT(object->property("dataOK").toBool() == true);
+ QTRY_VERIFY(object->property("dataOK").toBool() == true);
QCOMPARE(object->property("xmlTest").toBool(), true);
diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp/main.cpp b/tests/auto/linguist/lupdate/testdata/good/parsecpp/main.cpp
index f58f932..706e8d0 100644
--- a/tests/auto/linguist/lupdate/testdata/good/parsecpp/main.cpp
+++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp/main.cpp
@@ -302,3 +302,44 @@ static inline QString message2()
}
}
+
+
+
+// QTBUG-11426: operator overloads
+class LotsaFun : public QObject
+{
+ Q_OBJECT
+public:
+ int operator<<(int left, int right);
+};
+
+int LotsaFun::operator<<(int left, int right)
+{
+ tr("this is inside operator<<");
+ return left << right;
+}
+
+
+
+// QTBUG-12683: define in re-opened namespace
+namespace NameSchpace {
+
+class YetMoreFun : public QObject
+{
+ Q_OBJECT
+public:
+ void funStuff();
+};
+
+}
+
+namespace NameSchpace {
+
+#define somevar 1
+
+void YetMoreFun::funStuff()
+{
+ tr("funStuff!");
+}
+
+}
diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/parsecpp/project.ts.result
index 7ac318e..f73fc64 100644
--- a/tests/auto/linguist/lupdate/testdata/good/parsecpp/project.ts.result
+++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp/project.ts.result
@@ -141,6 +141,22 @@ backslashed \ stuff.</source>
</message>
</context>
<context>
+ <name>LotsaFun</name>
+ <message>
+ <location filename="main.cpp" line="318"/>
+ <source>this is inside operator&lt;&lt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>NameSchpace::YetMoreFun</name>
+ <message>
+ <location filename="main.cpp" line="342"/>
+ <source>funStuff!</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>Plurals, QCoreApplication</name>
<message numerus="yes">
<location filename="main.cpp" line="81"/>
diff --git a/tests/auto/moc/tst_moc.cpp b/tests/auto/moc/tst_moc.cpp
index f9c3ccb..bb23f49 100644
--- a/tests/auto/moc/tst_moc.cpp
+++ b/tests/auto/moc/tst_moc.cpp
@@ -1077,10 +1077,10 @@ void tst_Moc::qprivateslots()
class PrivatePropertyTest : public QObject
{
Q_OBJECT
- Q_PROPERTY(int foo READ foo WRITE setFoo);
- Q_PRIVATE_PROPERTY(d, int bar READ bar WRITE setBar);
- Q_PRIVATE_PROPERTY(PrivatePropertyTest::d, int plop READ plop WRITE setPlop);
- Q_PRIVATE_PROPERTY(PrivatePropertyTest::d_func(), int baz READ baz WRITE setBaz);
+ Q_PROPERTY(int foo READ foo WRITE setFoo)
+ Q_PRIVATE_PROPERTY(d, int bar READ bar WRITE setBar)
+ Q_PRIVATE_PROPERTY(PrivatePropertyTest::d, int plop READ plop WRITE setPlop)
+ Q_PRIVATE_PROPERTY(PrivatePropertyTest::d_func(), int baz READ baz WRITE setBaz)
class MyDPointer {
public:
MyDPointer() : mBar(0), mPlop(0) {}
diff --git a/tests/auto/q3table/tst_q3table.cpp b/tests/auto/q3table/tst_q3table.cpp
index 90bf806..93de251 100644
--- a/tests/auto/q3table/tst_q3table.cpp
+++ b/tests/auto/q3table/tst_q3table.cpp
@@ -502,7 +502,7 @@ void tst_Q3Table::pageUpDownNavigation()
void tst_Q3Table::simpleKeyboardNavigation()
{
QApplication::setActiveWindow(testWidget);
- QTRY_COMPARE(QApplication::activeWindow(), testWidget);
+ QTRY_COMPARE(QApplication::activeWindow(), static_cast<QWidget *>(testWidget));
QWidget *w;
// Test for task #24726
@@ -1208,7 +1208,7 @@ void tst_Q3Table::editCheck()
table.show();
QApplication::setActiveWindow(&table);
QTest::qWaitForWindowShown(&table);
- QTRY_COMPARE(QApplication::activeWindow(), &table);
+ QTRY_COMPARE(QApplication::activeWindow(), static_cast<QWidget *>(&table));
table.setCurrentCell(0, 0);
#ifdef WAITS
QTest::qWait(50);
@@ -1345,7 +1345,7 @@ void tst_Q3Table::valueChanged()
testWidget->show();
QApplication::setActiveWindow(testWidget);
QTest::qWaitForWindowShown(testWidget);
- QTRY_COMPARE(QApplication::activeWindow(), testWidget);
+ QTRY_COMPARE(QApplication::activeWindow(), static_cast<QWidget *>(testWidget));
#ifdef WAITS
QTest::qWait(50);
#endif
@@ -1395,7 +1395,7 @@ void tst_Q3Table::dateTimeEdit()
testWidget->show();
QApplication::setActiveWindow(testWidget);
QTest::qWaitForWindowShown(testWidget);
- QTRY_COMPARE(QApplication::activeWindow(), testWidget);
+ QTRY_COMPARE(QApplication::activeWindow(), static_cast<QWidget *>(testWidget));
#ifdef WAITS
QTest::qWait(50);
#endif
diff --git a/tests/auto/qcompleter/tst_qcompleter.cpp b/tests/auto/qcompleter/tst_qcompleter.cpp
index a62720b..1590528 100644
--- a/tests/auto/qcompleter/tst_qcompleter.cpp
+++ b/tests/auto/qcompleter/tst_qcompleter.cpp
@@ -1324,7 +1324,7 @@ void tst_QCompleter::task253125_lineEditCompletion()
#endif
QTest::qWait(10);
QApplication::setActiveWindow(&edit);
- QTRY_COMPARE(QApplication::activeWindow(), &edit);
+ QTRY_COMPARE(QApplication::activeWindow(), static_cast<QWidget *>(&edit));
QTest::keyClick(&edit, 'i');
QCOMPARE(edit.completer()->currentCompletion(), QString("iota"));
@@ -1362,7 +1362,7 @@ void tst_QCompleter::task247560_keyboardNavigation()
QTest::qWait(10);
QApplication::setActiveWindow(&edit);
- QTRY_COMPARE(QApplication::activeWindow(), &edit);
+ QTRY_COMPARE(QApplication::activeWindow(), static_cast<QWidget *>(&edit));
QTest::keyClick(&edit, 'r');
QTest::keyClick(edit.completer()->popup(), Qt::Key_Down);
diff --git a/tests/auto/qgraphicslayoutitem/tst_qgraphicslayoutitem.cpp b/tests/auto/qgraphicslayoutitem/tst_qgraphicslayoutitem.cpp
index 879e12b..dbffa6e 100644
--- a/tests/auto/qgraphicslayoutitem/tst_qgraphicslayoutitem.cpp
+++ b/tests/auto/qgraphicslayoutitem/tst_qgraphicslayoutitem.cpp
@@ -75,6 +75,7 @@ private slots:
void setPreferredSize_data();
void setPreferredSize();
void setSizePolicy_data();
+ void setPreferredSize2();
void setSizePolicy();
};
@@ -343,6 +344,13 @@ void tst_QGraphicsLayoutItem::setPreferredSize()
}
}
+void tst_QGraphicsLayoutItem::setPreferredSize2()
+{
+ SubQGraphicsLayoutItem layoutItem;
+ layoutItem.setPreferredSize(QSizeF(30, -1));
+ QCOMPARE(layoutItem.preferredWidth(), qreal(30));
+}
+
void tst_QGraphicsLayoutItem::setSizePolicy_data()
{
QTest::addColumn<QSizePolicy>("policy");
diff --git a/tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp b/tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp
index c145623..b8e729e 100644
--- a/tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp
+++ b/tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp
@@ -287,6 +287,7 @@ private slots:
void taskQTBUG_5904_crashWithDeviceCoordinateCache();
void taskQT657_paintIntoCacheWithTransparentParts();
void taskQTBUG_7863_paintIntoCacheWithTransparentParts();
+ void taskQT_3674_doNotCrash();
};
void tst_QGraphicsScene::initTestCase()
@@ -4565,6 +4566,25 @@ void tst_QGraphicsScene::taskQTBUG_7863_paintIntoCacheWithTransparentParts()
}
}
+void tst_QGraphicsScene::taskQT_3674_doNotCrash()
+{
+ QGraphicsScene scene;
+
+ QGraphicsView view(&scene);
+ view.resize(200, 200);
+
+ QPixmap pixmap(view.size());
+ QPainter painter(&pixmap);
+ view.render(&painter);
+ painter.end();
+
+ scene.addItem(new QGraphicsWidget);
+ scene.setBackgroundBrush(Qt::green);
+
+ QApplication::processEvents();
+ QApplication::processEvents();
+}
+
void tst_QGraphicsScene::zeroScale()
{
//should not crash
diff --git a/tests/auto/qlineedit/tst_qlineedit.cpp b/tests/auto/qlineedit/tst_qlineedit.cpp
index bfa9406..93bd447 100644
--- a/tests/auto/qlineedit/tst_qlineedit.cpp
+++ b/tests/auto/qlineedit/tst_qlineedit.cpp
@@ -3747,15 +3747,15 @@ void tst_QLineEdit::QTBUG697_paletteCurrentColorGroup()
void tst_QLineEdit::QTBUG13520_textNotVisible()
{
LineEdit le;
- le.setAlignment( Qt::AlignRight | Qt::AlignVCenter);
- le.show();
- QTest::qWaitForWindowShown(&le);
- le.setText("01-ST16-01SIL-MPL001wfgsdfgsdgsdfgsdfgsdfgsdfgsdfg");
- le.setCursorPosition(0);
- QTest::qWait(100); //just make sure we get he lineedit correcly painted
-
- QVERIFY(le.cursorRect().center().x() < le.width() / 2);
-
+ le.setAlignment( Qt::AlignRight | Qt::AlignVCenter);
+ le.show();
+ QTest::qWaitForWindowShown(&le);
+ le.setText("01-ST16-01SIL-MPL001wfgsdfgsdgsdfgsdfgsdfgsdfgsdfg");
+ le.setCursorPosition(0);
+ QTest::qWait(100); //just make sure we get he lineedit correcly painted
+
+ QVERIFY(le.cursorRect().center().x() < le.width() / 2);
+
}
diff --git a/tests/auto/qmainwindow/tst_qmainwindow.cpp b/tests/auto/qmainwindow/tst_qmainwindow.cpp
index 1273e85..5a69d9c 100644
--- a/tests/auto/qmainwindow/tst_qmainwindow.cpp
+++ b/tests/auto/qmainwindow/tst_qmainwindow.cpp
@@ -1449,8 +1449,7 @@ Q_DECLARE_METATYPE(MoveList)
void MoveSeparator::apply(QMainWindow *mw) const
{
-
- QMainWindowLayout *l = qobject_cast<QMainWindowLayout*>(mw->layout());
+ QMainWindowLayout *l = qFindChild<QMainWindowLayout *>(mw);
QVERIFY(l);
QList<int> path;
diff --git a/tests/auto/qobject/tst_qobject.cpp b/tests/auto/qobject/tst_qobject.cpp
index 08b7c19..5f6262e 100644
--- a/tests/auto/qobject/tst_qobject.cpp
+++ b/tests/auto/qobject/tst_qobject.cpp
@@ -3243,16 +3243,16 @@ void tst_QObject::overloads()
QCOMPARE(obj2.s_num, 101);
emit obj1.sig(&obj2, &obj3); //this signal is connected
QCOMPARE(obj1.s_num, 11);
- QCOMPARE(obj1.o1_obj, &obj2);
+ QCOMPARE(obj1.o1_obj, (QObject *)&obj2);
QCOMPARE(obj1.o2_obj, &obj3);
QCOMPARE(obj1.o3_obj, (QObject *)0); //default arg of the signal
- QCOMPARE(obj1.o4_obj, qApp); //default arg of the slot
+ QCOMPARE(obj1.o4_obj, (QObject *)qApp); //default arg of the slot
QCOMPARE(obj2.s_num, 111);
- QCOMPARE(obj2.o1_obj, &obj2);
+ QCOMPARE(obj2.o1_obj, (QObject *)&obj2);
QCOMPARE(obj2.o2_obj, &obj3);
QCOMPARE(obj2.o3_obj, (QObject *)0); //default arg of the signal
- QCOMPARE(obj2.o4_obj, qApp); //default arg of the slot
+ QCOMPARE(obj2.o4_obj, (QObject *)qApp); //default arg of the slot
}
class ManySignals : public QObject
diff --git a/tests/auto/qsequentialanimationgroup/tst_qsequentialanimationgroup.cpp b/tests/auto/qsequentialanimationgroup/tst_qsequentialanimationgroup.cpp
index e154528..e16be8b 100644
--- a/tests/auto/qsequentialanimationgroup/tst_qsequentialanimationgroup.cpp
+++ b/tests/auto/qsequentialanimationgroup/tst_qsequentialanimationgroup.cpp
@@ -381,7 +381,7 @@ void tst_QSequentialAnimationGroup::setCurrentTimeWithUncontrolledAnimation()
QCOMPARE(a1_s_o2->currentLoopTime(), 250);
QCOMPARE(notTimeDriven->currentLoopTime(), 0);
QCOMPARE(loopsForever->currentLoopTime(), 0);
- QCOMPARE(group.currentAnimation(), notTimeDriven);
+ QCOMPARE(group.currentAnimation(), static_cast<QAbstractAnimation *>(notTimeDriven));
// Current time = 505
group.setCurrentTime(505);
@@ -391,7 +391,7 @@ void tst_QSequentialAnimationGroup::setCurrentTimeWithUncontrolledAnimation()
QCOMPARE(a1_s_o2->currentLoopTime(), 250);
QCOMPARE(notTimeDriven->currentLoopTime(), 5);
QCOMPARE(loopsForever->currentLoopTime(), 0);
- QCOMPARE(group.currentAnimation(), notTimeDriven);
+ QCOMPARE(group.currentAnimation(), static_cast<QAbstractAnimation *>(notTimeDriven));
QCOMPARE(sequence->state(), QAnimationGroup::Stopped);
QCOMPARE(a1_s_o1->state(), QAnimationGroup::Stopped);
QCOMPARE(a1_s_o2->state(), QAnimationGroup::Stopped);
diff --git a/tests/auto/qsettings/tst_qsettings.cpp b/tests/auto/qsettings/tst_qsettings.cpp
index 058a750..0395eff 100644
--- a/tests/auto/qsettings/tst_qsettings.cpp
+++ b/tests/auto/qsettings/tst_qsettings.cpp
@@ -60,6 +60,10 @@
#include <io.h>
#endif
+#if defined(Q_OS_WIN)
+#include <QtCore/qt_windows.h>
+#endif
+
#ifndef QSETTINGS_P_H_VERSION
#define QSETTINGS_P_H_VERSION 1
#endif
@@ -127,6 +131,9 @@ private slots:
#if !defined(Q_OS_WIN) && !defined(Q_OS_SYMBIAN)
void dontReorderIniKeysNeedlessly();
#endif
+#if defined(Q_OS_WIN)
+ void qtbug_13249();
+#endif
/*
These tests were developed for the Qt 3 QSettings class.
@@ -3801,6 +3808,62 @@ void tst_QSettings::setPathBug()
}
#endif
+#if defined(Q_OS_WIN)
+
+static DWORD readKeyType(HKEY handle, const QString &rSubKey)
+{
+ DWORD dataType;
+ DWORD dataSize;
+ LONG res = RegQueryValueEx(handle, reinterpret_cast<const wchar_t *>(rSubKey.utf16()), 0, &dataType, 0, &dataSize);
+
+ if (res == ERROR_SUCCESS)
+ return dataType;
+
+ return 0;
+}
+
+void tst_QSettings::qtbug_13249()
+{
+ QSettings settings1(QSettings::UserScope, "software.org", "KillerAPP");
+
+ qint32 x = 1024;
+ settings1.setValue("qtbug_13249_a", (qint32)x);
+ QCOMPARE(settings1.value("qtbug_13249_a").toInt(), (qint32)1024);
+ settings1.setValue("qtbug_13249_b", (quint32)x);
+ QCOMPARE(settings1.value("qtbug_13249_b").toUInt(), (quint32)1024);
+ settings1.setValue("qtbug_13249_c", (qint64)x);
+ QCOMPARE(settings1.value("qtbug_13249_c").toLongLong(), (qint64)1024);
+ settings1.setValue("qtbug_13249_d", (quint64)x);
+ QCOMPARE(settings1.value("qtbug_13249_d").toULongLong(), (quint64)1024);
+ settings1.sync();
+
+ HKEY handle;
+ LONG res;
+ QString keyName = "Software\\software.org\\KillerAPP";
+ res = RegOpenKeyEx(HKEY_CURRENT_USER, reinterpret_cast<const wchar_t *>(keyName.utf16()), 0, KEY_READ, &handle);
+ if (res == ERROR_SUCCESS)
+ {
+ DWORD dataType;
+ dataType = readKeyType(handle, QString("qtbug_13249_a"));
+ if (dataType != 0) {
+ QCOMPARE((int)REG_DWORD, (int)dataType);
+ }
+ dataType = readKeyType(handle, QString("qtbug_13249_b"));
+ if (dataType != 0) {
+ QCOMPARE((int)REG_DWORD, (int)dataType);
+ }
+ dataType = readKeyType(handle, QString("qtbug_13249_c"));
+ if (dataType != 0) {
+ QCOMPARE((int)REG_QWORD, (int)dataType);
+ }
+ dataType = readKeyType(handle, QString("qtbug_13249_d"));
+ if (dataType != 0) {
+ QCOMPARE((int)REG_QWORD, (int)dataType);
+ }
+ RegCloseKey(handle);
+ }
+}
+#endif
/*
// Not tested at the moment.
void tst_QSettings::oldSubkeyList()
diff --git a/tests/auto/qstatictext/tst_qstatictext.cpp b/tests/auto/qstatictext/tst_qstatictext.cpp
index 2a60e9e..68c3ea9 100644
--- a/tests/auto/qstatictext/tst_qstatictext.cpp
+++ b/tests/auto/qstatictext/tst_qstatictext.cpp
@@ -91,6 +91,8 @@ private slots:
void drawStruckOutText();
void drawOverlinedText();
void drawUnderlinedText();
+
+ void unprintableCharacter_qtbug12614();
};
void tst_QStaticText::init()
@@ -753,5 +755,14 @@ void tst_QStaticText::drawUnderlinedText()
QCOMPARE(imageDrawText, imageDrawStaticText);
}
+void tst_QStaticText::unprintableCharacter_qtbug12614()
+{
+ QString s(QChar(0x200B)); // U+200B, ZERO WIDTH SPACE
+
+ QStaticText staticText(s);
+
+ QVERIFY(staticText.size().isValid()); // Force layout. Should not crash.
+}
+
QTEST_MAIN(tst_QStaticText)
#include "tst_qstatictext.moc"
diff --git a/tests/auto/qurl/tst_qurl.cpp b/tests/auto/qurl/tst_qurl.cpp
index b5236e5..63f9721 100644
--- a/tests/auto/qurl/tst_qurl.cpp
+++ b/tests/auto/qurl/tst_qurl.cpp
@@ -2478,16 +2478,26 @@ void tst_QUrl::isValid()
QUrl url = QUrl::fromEncoded("http://strange;hostname/here");
QVERIFY(!url.isValid());
QCOMPARE(url.path(), QString("/here"));
+ url.setAuthority("strange;hostname");
+ QVERIFY(!url.isValid());
url.setAuthority("foobar@bar");
QVERIFY(url.isValid());
+ url.setAuthority("strange;hostname");
+ QVERIFY(!url.isValid());
+ QVERIFY(url.errorString().contains("invalid hostname"));
}
{
QUrl url = QUrl::fromEncoded("foo://stuff;1/g");
QVERIFY(!url.isValid());
QCOMPARE(url.path(), QString("/g"));
+ url.setHost("stuff;1");
+ QVERIFY(!url.isValid());
url.setHost("stuff-1");
QVERIFY(url.isValid());
+ url.setHost("stuff;1");
+ QVERIFY(!url.isValid());
+ QVERIFY(url.errorString().contains("invalid hostname"));
}
}
diff --git a/tools/linguist/linguist/mainwindow.cpp b/tools/linguist/linguist/mainwindow.cpp
index 265df05..18baa24 100644
--- a/tools/linguist/linguist/mainwindow.cpp
+++ b/tools/linguist/linguist/mainwindow.cpp
@@ -1522,7 +1522,7 @@ void MainWindow::selectedMessageChanged(const QModelIndex &sortedIndex, const QM
}
m_phraseView->setSourceText(-1, QString());
}
- if (m) {
+ if (m && !m->fileName().isEmpty()) {
if (hasFormPreview(m->fileName())) {
m_sourceAndFormView->setCurrentWidget(m_formPreviewView);
m_formPreviewView->setSourceContext(model, m);
@@ -1577,7 +1577,7 @@ void MainWindow::updateTranslation(const QStringList &translations)
return;
m->setTranslations(translations);
- if (hasFormPreview(m->fileName()))
+ if (!m->fileName().isEmpty() && hasFormPreview(m->fileName()))
m_formPreviewView->setSourceContext(m_currentIndex.model(), m);
updateDanger(m_currentIndex, true);
@@ -1996,7 +1996,7 @@ void MainWindow::updateLatestModel(int model)
if (m_currentIndex.isValid()) {
if (MessageItem *item = m_dataModel->messageItem(m_currentIndex)) {
- if (hasFormPreview(item->fileName()))
+ if (!item->fileName().isEmpty() && hasFormPreview(item->fileName()))
m_formPreviewView->setSourceContext(model, item);
if (enableRw && !item->isObsolete())
m_phraseView->setSourceText(model, item->text());
diff --git a/tools/linguist/linguist/sourcecodeview.cpp b/tools/linguist/linguist/sourcecodeview.cpp
index b8dd9c0..d2eef56 100644
--- a/tools/linguist/linguist/sourcecodeview.cpp
+++ b/tools/linguist/linguist/sourcecodeview.cpp
@@ -64,7 +64,7 @@ void SourceCodeView::setSourceContext(const QString &fileName, const int lineNum
m_fileToLoad.clear();
setToolTip(fileName);
- if (fileName.isNull()) {
+ if (fileName.isEmpty()) {
clear();
m_currentFileName.clear();
appendHtml(tr("<i>Source code not available</i>"));
diff --git a/tools/linguist/lupdate/cpp.cpp b/tools/linguist/lupdate/cpp.cpp
index 970d44b..6ea7299 100644
--- a/tools/linguist/lupdate/cpp.cpp
+++ b/tools/linguist/lupdate/cpp.cpp
@@ -489,6 +489,7 @@ STRING(class);
STRING(findMessage);
STRING(friend);
STRING(namespace);
+STRING(operator);
STRING(qtTrId);
STRING(return);
STRING(struct);
@@ -753,6 +754,20 @@ uint CppParser::getToken()
if (yyWord == strnamespace)
return Tok_namespace;
break;
+ case 'o':
+ if (yyWord == stroperator) {
+ // Operator overload declaration/definition.
+ // We need to prevent those characters from confusing the followup
+ // parsing. Actually using them does not add value, so just eat them.
+ while (isspace(yyCh))
+ yyCh = getChar();
+ while (yyCh == '+' || yyCh == '-' || yyCh == '*' || yyCh == '/' || yyCh == '%'
+ || yyCh == '=' || yyCh == '<' || yyCh == '>' || yyCh == '!'
+ || yyCh == '&' || yyCh == '|' || yyCh == '~' || yyCh == '^'
+ || yyCh == '[' || yyCh == ']')
+ yyCh = getChar();
+ }
+ break;
case 'q':
if (yyWord == strqtTrId)
return Tok_trid;
@@ -1678,6 +1693,8 @@ void CppParser::parseInternal(ConversionData &cd, QSet<QString> &inclusions)
functionContextUnresolved.clear(); // Pointless
prospectiveContext.clear();
pendingContext.clear();
+
+ yyTok = getToken();
}
break;
case Tok_namespace:
@@ -1689,7 +1706,6 @@ void CppParser::parseInternal(ConversionData &cd, QSet<QString> &inclusions)
HashString ns = HashString(text);
yyTok = getToken();
if (yyTok == Tok_LeftBrace) {
- yyTok = getToken();
namespaceDepths.push(namespaces.count());
enterNamespace(&namespaces, ns);
@@ -1697,6 +1713,7 @@ void CppParser::parseInternal(ConversionData &cd, QSet<QString> &inclusions)
functionContextUnresolved.clear();
prospectiveContext.clear();
pendingContext.clear();
+ yyTok = getToken();
} else if (yyTok == Tok_Equals) {
// e.g. namespace Is = OuterSpace::InnerSpace;
QList<HashString> fullName;
diff --git a/tools/qdoc3/test/qt-html-templates.qdocconf b/tools/qdoc3/test/qt-html-templates.qdocconf
index dc56ac9..1203357 100644
--- a/tools/qdoc3/test/qt-html-templates.qdocconf
+++ b/tools/qdoc3/test/qt-html-templates.qdocconf
@@ -89,7 +89,7 @@ HTML.postheader = " <div class=\"header\" id=\"qtdocheader\">\n" \
" <li class=\"defaultLink\"><a href=\"modules.html\">Modules</a></li>\n" \
" <li class=\"defaultLink\"><a href=\"namespaces.html\">Namespaces</a></li>\n" \
" <li class=\"defaultLink\"><a href=\"qtglobal.html\">Global Declarations</a></li>\n" \
- " <li class=\"defaultLink\"><a href=\"qmlelements.html\">QML elements</a></li>\n" \
+ " <li class=\"defaultLink\"><a href=\"qdeclarativeelements.html\">QML elements</a></li>\n" \
" </ul> \n" \
" </div>\n" \
" </div>\n" \
diff --git a/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.cpp b/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.cpp
new file mode 100644
index 0000000..0670ac4
--- /dev/null
+++ b/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.cpp
@@ -0,0 +1,133 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#define ENSURE_RUNNING_MEEGO {if (! QMeeGoGraphicsSystemHelper::isRunningMeeGo()) { qFatal("Using meego functionality but not running meego graphics system!"); }}
+
+#include "qmeegographicssystemhelper.h"
+#include <private/qapplication_p.h>
+#include <private/qgraphicssystem_runtime_p.h>
+#include <private/qpixmap_raster_p.h>
+#include "qmeegoruntime.h"
+
+QString QMeeGoGraphicsSystemHelper::runningGraphicsSystemName()
+{
+ if (! QApplicationPrivate::instance()) {
+ qWarning("Querying graphics system but application not running yet!");
+ return QString();
+ }
+
+ QString name = QApplicationPrivate::instance()->graphics_system_name;
+ if (name == QLatin1String("runtime")) {
+ QRuntimeGraphicsSystem *rsystem = (QRuntimeGraphicsSystem *) QApplicationPrivate::instance()->graphics_system;
+ name = rsystem->graphicsSystemName();
+ }
+
+ return name;
+}
+
+bool QMeeGoGraphicsSystemHelper::isRunningMeeGo()
+{
+ return (runningGraphicsSystemName() == QLatin1String("meego"));
+}
+
+void QMeeGoGraphicsSystemHelper::switchToMeeGo()
+{
+ if (isRunningMeeGo())
+ return;
+
+ if (QApplicationPrivate::instance()->graphics_system_name != QLatin1String("runtime"))
+ qWarning("Can't switch to meego - switching only supported with 'runtime' graphics system.");
+ else {
+ QApplication *app = static_cast<QApplication *>(QCoreApplication::instance());
+ app->setGraphicsSystem(QLatin1String("meego"));
+ }
+}
+
+void QMeeGoGraphicsSystemHelper::switchToRaster()
+{
+ if (runningGraphicsSystemName() == QLatin1String("raster"))
+ return;
+
+ if (QApplicationPrivate::instance()->graphics_system_name != QLatin1String("runtime"))
+ qWarning("Can't switch to raster - switching only supported with 'runtime' graphics system.");
+ else {
+ QApplication *app = static_cast<QApplication *>(QCoreApplication::instance());
+ app->setGraphicsSystem(QLatin1String("raster"));
+ }
+}
+
+Qt::HANDLE QMeeGoGraphicsSystemHelper::imageToEGLSharedImage(const QImage &image)
+{
+ ENSURE_RUNNING_MEEGO;
+ return QMeeGoRuntime::imageToEGLSharedImage(image);
+}
+
+QPixmap QMeeGoGraphicsSystemHelper::pixmapFromEGLSharedImage(Qt::HANDLE handle, const QImage &softImage)
+{
+ // This function is supported when not running meego too. A raster-backed
+ // pixmap will be created... but when you switch back to 'meego', it'll
+ // be replaced with a EGL shared image backing.
+ return QMeeGoRuntime::pixmapFromEGLSharedImage(handle, softImage);
+}
+
+QPixmap QMeeGoGraphicsSystemHelper::pixmapWithGLTexture(int w, int h)
+{
+ ENSURE_RUNNING_MEEGO;
+ return QMeeGoRuntime::pixmapWithGLTexture(w, h);
+}
+
+bool QMeeGoGraphicsSystemHelper::destroyEGLSharedImage(Qt::HANDLE handle)
+{
+ ENSURE_RUNNING_MEEGO;
+ return QMeeGoRuntime::destroyEGLSharedImage(handle);
+}
+
+void QMeeGoGraphicsSystemHelper::updateEGLSharedImagePixmap(QPixmap *p)
+{
+ ENSURE_RUNNING_MEEGO;
+ return QMeeGoRuntime::updateEGLSharedImagePixmap(p);
+}
+
+void QMeeGoGraphicsSystemHelper::setTranslucent(bool translucent)
+{
+ ENSURE_RUNNING_MEEGO;
+ QMeeGoRuntime::setTranslucent(translucent);
+}
diff --git a/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.h b/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.h
new file mode 100644
index 0000000..02f2fa2
--- /dev/null
+++ b/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.h
@@ -0,0 +1,175 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QMEEGOGRAPHICSSYSTEMHELPER_H
+#define QMEEGOGRAPHICSSYSTEMHELPER_H
+
+#include <QPixmap>
+#include <QImage>
+#include "qmeegolivepixmap.h"
+
+class QLibrary;
+
+//! The base class for accressing special meego graphics system features.
+/*!
+ This class is a helper class with static-only methods for accessing various
+ meego graphics system functionalities. The way it works is that the helper
+ dynamically calls-in to the loaded graphicssystem plugin... therefore, you're
+ expected to make sure that you're indeed running with 'meego' before using any
+ of the specialized methods.
+
+ In example:
+
+ \code
+ QPixmap p;
+ if (QMeeGoGraphicsSystemHelper::isRunningMeeGo()) {
+ p = QMeeGoGraphicsSystemHelper::pixmapWithGLTexture(64, 64);
+ } else {
+ p = QPixmap(64, 64);
+ }
+ \endcode
+
+ Calling any of the meego-specific features while not running meego might
+ give unpredictable results. The only functions safe to call at all times are:
+
+ \code
+ QMeeGoGraphicsSystemHelper::isRunningMeeGo();
+ QMeeGoGraphicsSystemHelper::runningGraphicsSystemName();
+ QMeeGoGraphicsSystemHelper::switchToMeeGo();
+ QMeeGoGraphicsSystemHelper::switchToRaster();
+ \endcode
+*/
+
+class Q_DECL_EXPORT QMeeGoGraphicsSystemHelper
+{
+public:
+ //! Returns true if running meego.
+ /*!
+ Returns true if the currently active (running) system is 'meego' with OpenGL.
+ This returns both true if the app was started with 'meego' or was started with
+ 'runtime' graphics system and the currently active system through the runtime
+ switching is 'meego'.
+ */
+ static bool isRunningMeeGo();
+
+ //! Switches to meego graphics system.
+ /*!
+ When running with the 'runtime' graphics system, sets the currently active
+ system to 'meego'. The window surface and all the resources are automatically
+ migrated to OpenGL. Will fail if the active graphics system is not 'runtime'.
+ */
+ static void switchToMeeGo();
+
+ //! Switches to raster graphics system
+ /*!
+ When running with the 'runtime' graphics system, sets the currently active
+ system to 'raster'. The window surface and the graphics resources (including the
+ EGL shared image resources) are automatically migrated back to the CPU. All OpenGL
+ resources (surface, context, cache, font cache) are automaticall anihilated.
+ */
+ static void switchToRaster();
+
+ //! Returns the name of the active graphics system
+ /*!
+ Returns the name of the currently active system. If running with 'runtime' graphics
+ system, returns the name of the active system inside the runtime graphics system
+ */
+ static QString runningGraphicsSystemName();
+
+ //! Creates a new EGL shared image.
+ /*!
+ Creates a new EGL shared image from the given image. The EGL shared image wraps
+ a GL texture in the native format and can be easily accessed from other processes.
+ */
+ static Qt::HANDLE imageToEGLSharedImage(const QImage &image);
+
+ //! Creates a QPixmap from an EGL shared image
+ /*!
+ Creates a new QPixmap from the given EGL shared image handle. The QPixmap can be
+ used for painting like any other pixmap. The softImage should point to an alternative,
+ software version of the graphical resource -- ie. obtained from theme daemon. The
+ softImage can be allocated on a QSharedMemory slice for easy sharing across processes
+ too. When the application is migrated ToRaster, this softImage will replace the
+ contents of the sharedImage.
+
+ It's ok to call this function too when not running 'meego' graphics system. In this
+ case it'll create a QPixmap backed with a raster data (from softImage)... but when
+ the system is switched back to 'meego', the QPixmap will be migrated to a EGL-shared image
+ backed storage (handle).
+ */
+ static QPixmap pixmapFromEGLSharedImage(Qt::HANDLE handle, const QImage &softImage);
+
+ //! Destroys an EGL shared image.
+ /*!
+ Destroys an EGLSharedImage previously created with an ::imageToEGLSharedImage call.
+ Returns true if the image was found and the destruction was successfull. Notice that
+ this destroys the image for all processes using it.
+ */
+ static bool destroyEGLSharedImage(Qt::HANDLE handle);
+
+ //! Updates the QPixmap backed with an EGLShared image.
+ /*!
+ This function re-reads the softImage that was specified when creating the pixmap with
+ ::pixmapFromEGLSharedImage and updates the EGL Shared image contents. It can be used
+ to share cross-proccess mutable EGLShared images.
+ */
+ static void updateEGLSharedImagePixmap(QPixmap *p);
+
+ //! Create a new QPixmap with a GL texture.
+ /*!
+ Creates a new QPixmap which is backed by an OpenGL local texture. Drawing to this
+ QPixmap will be accelerated by hardware -- unlike the normal (new QPixmap()) pixmaps,
+ which are backed by a software engine and only migrated to GPU when used. Migrating those
+ GL-backed pixmaps when going ToRaster is expsensive (they need to be downloaded from
+ GPU to CPU) so use wisely.
+ */
+ static QPixmap pixmapWithGLTexture(int w, int h);
+
+ //! Sets translucency (alpha) on the base window surface.
+ /*!
+ This function needs to be called *before* any widget/content is created.
+ When called with true, the base window surface will be translucent and initialized
+ with QGLFormat.alpha == true.
+ */
+ static void setTranslucent(bool translucent);
+};
+
+#endif
diff --git a/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.pro b/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.pro
new file mode 100644
index 0000000..1e6e233
--- /dev/null
+++ b/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.pro
@@ -0,0 +1,10 @@
+TEMPLATE = lib
+TARGET = QtMeeGoGraphicsSystemHelper
+
+include(../../src/qbase.pri)
+
+QT += gui
+INCLUDEPATH += '../../src/plugins/graphicssystems/meego'
+
+HEADERS = qmeegographicssystemhelper.h qmeegooverlaywidget.h qmeegolivepixmap.h qmeegoliveimage.h qmeegoruntime.h qmeegoliveimage_p.h qmeegolivepixmap_p.h
+SOURCES = qmeegographicssystemhelper.cpp qmeegooverlaywidget.cpp qmeegoruntime.cpp qmeegolivepixmap.cpp qmeegoliveimage.cpp
diff --git a/tools/qmeegographicssystemhelper/qmeegoliveimage.cpp b/tools/qmeegographicssystemhelper/qmeegoliveimage.cpp
new file mode 100644
index 0000000..83a1e28
--- /dev/null
+++ b/tools/qmeegographicssystemhelper/qmeegoliveimage.cpp
@@ -0,0 +1,115 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qmeegoliveimage.h"
+#include "qmeegoliveimage_p.h"
+#include "qmeegolivepixmap.h"
+#include "qmeegolivepixmap_p.h"
+
+/* QMeeGoLiveImagePrivate */
+
+QMeeGoLiveImagePrivate::QMeeGoLiveImagePrivate()
+{
+}
+
+QMeeGoLiveImagePrivate::~QMeeGoLiveImagePrivate()
+{
+ if (attachedPixmaps.length() > 0)
+ qWarning("Destroying QMeeGoLiveImage but it still has QMeeGoLivePixmaps attached!");
+}
+
+void QMeeGoLiveImagePrivate::attachPixmap(QMeeGoLivePixmap* pixmap)
+{
+ attachedPixmaps << pixmap;
+}
+
+void QMeeGoLiveImagePrivate::detachPixmap(QMeeGoLivePixmap* pixmap)
+{
+ attachedPixmaps.removeAll(pixmap);
+}
+
+/* QMeeGoLiveImage */
+
+QMeeGoLiveImage* QMeeGoLiveImage::liveImageWithSize(int w, int h, Format format, int buffers)
+{
+ if (format != Format_ARGB32_Premultiplied) {
+ qWarning("Only _ARGB32_Premultiplied format is supported for live images now!");
+ return 0;
+ }
+
+ if (buffers != 1) {
+ qWarning("Only single-buffer streams are supported at the moment");
+ return 0;
+ }
+
+ QMeeGoLiveImage *liveImage = new QMeeGoLiveImage(w, h);
+ return liveImage;
+}
+
+QMeeGoLiveImage::QMeeGoLiveImage(int w, int h) : QImage(w, h, QImage::Format_ARGB32_Premultiplied), d_ptr(new QMeeGoLiveImagePrivate())
+{
+ Q_D(QMeeGoLiveImage);
+ d->q_ptr = this;
+}
+
+QMeeGoLiveImage::~QMeeGoLiveImage()
+{
+}
+
+void QMeeGoLiveImage::lock(int buffer)
+{
+ if (buffer != 0)
+ qWarning("Only locking 0 buffer is supported at the moment!");
+}
+
+void QMeeGoLiveImage::release(int buffer)
+{
+ Q_D(QMeeGoLiveImage);
+
+ if (buffer != 0) {
+ qWarning("Only locking 0 buffer is supported at the moment!");
+ return;
+ }
+
+ // We need to copy the update image to all the client QMeeGoLivePixmap's
+ foreach (QMeeGoLivePixmap* livePixmap, d->attachedPixmaps)
+ livePixmap->d_ptr->copyBackFrom((const void *) bits());
+}
diff --git a/tools/qmeegographicssystemhelper/qmeegoliveimage.h b/tools/qmeegographicssystemhelper/qmeegoliveimage.h
new file mode 100644
index 0000000..1e21e7b
--- /dev/null
+++ b/tools/qmeegographicssystemhelper/qmeegoliveimage.h
@@ -0,0 +1,106 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QMEEGOLIVEIMAGE_H
+#define QMEEGOLIVEIMAGE_H
+
+#include <QImage>
+
+class QMeeGoLivePixmap;
+class QMeeGoLiveImagePrivate;
+
+//! A streamable QImage subclass.
+/*!
+*/
+
+class QMeeGoLiveImage : public QImage
+{
+public:
+ //! Format specifier.
+ /*!
+ Used to specify the format of the underlying image data for QMeeGoLiveImage.
+ */
+ enum Format {
+ Format_ARGB32_Premultiplied //! 32bit, AARRGGBB format. The typical Qt format.
+ };
+
+ //! Locks the access to the image.
+ /*!
+ All drawing/access to the underlying image data needs to happen between
+ ::lock() and ::unlock() pairs.
+ */
+ void lock(int buffer = 0);
+
+ //! Unlocks the access to the image.
+ /*!
+ All drawing/access to the underlying image data needs to happen between
+ ::lock() and ::unlock() pairs.
+ */
+ void release(int buffer = 0);
+
+ //! Destroys the image.
+ /*!
+ It's a mistake to destroy an image before destroying all the QMeeGoLivePixmaps
+ built on top of it. You should first destroy all the QMeeGoLivePixmaps.
+ */
+ virtual ~QMeeGoLiveImage();
+
+ //! Creates and returns a new live image with the given parameters.
+ /*!
+ The new image is created with the given width w and the given height h.
+ The format specifies the color format used by the image. Optionally, a
+ number of buffers can be specfied for a stream-like behavior.
+ */
+ static QMeeGoLiveImage* liveImageWithSize(int w, int h, Format format, int buffers = 1);
+
+private:
+ QMeeGoLiveImage(int w, int h); //! Private bits.
+ Q_DISABLE_COPY(QMeeGoLiveImage)
+ Q_DECLARE_PRIVATE(QMeeGoLiveImage)
+
+protected:
+ QScopedPointer<QMeeGoLiveImagePrivate> d_ptr;
+
+ friend class QMeeGoLivePixmap;
+ friend class QMeeGoLivePixmapPrivate;
+};
+
+#endif
diff --git a/tools/qmeegographicssystemhelper/qmeegoliveimage_p.h b/tools/qmeegographicssystemhelper/qmeegoliveimage_p.h
new file mode 100644
index 0000000..085fed4
--- /dev/null
+++ b/tools/qmeegographicssystemhelper/qmeegoliveimage_p.h
@@ -0,0 +1,63 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qmeegoliveimage.h"
+
+#ifndef QMEEGOLIVEIMAGE_P_H
+#define QMEEGOLIVEIMAGE_P_H
+
+class QMeeGoLiveImagePrivate
+{
+public:
+ Q_DECLARE_PUBLIC(QMeeGoLiveImage);
+ QMeeGoLiveImagePrivate();
+ virtual ~QMeeGoLiveImagePrivate();
+ void attachPixmap(QMeeGoLivePixmap* pixmap);
+ void detachPixmap(QMeeGoLivePixmap* pixmap);
+
+ QList <QMeeGoLivePixmap*> attachedPixmaps;
+ QMeeGoLiveImage *q_ptr;
+
+ friend class QMeeGoLivePixmap;
+ friend class QMeeGoLivePixmapPrivate;
+};
+
+#endif
diff --git a/tools/qmeegographicssystemhelper/qmeegolivepixmap.cpp b/tools/qmeegographicssystemhelper/qmeegolivepixmap.cpp
new file mode 100644
index 0000000..2a1c04b
--- /dev/null
+++ b/tools/qmeegographicssystemhelper/qmeegolivepixmap.cpp
@@ -0,0 +1,163 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qmeegolivepixmap.h"
+#include <private/qimage_p.h>
+#include <private/qpixmap_raster_p.h>
+#include "qmeegolivepixmap_p.h"
+#include "qmeegoliveimage_p.h"
+#include <QSharedMemory>
+
+/* QMeeGoLivePixmapPrivate */
+
+QMeeGoLivePixmapPrivate::QMeeGoLivePixmapPrivate() : shm(0), shmSerial(0), owns(true), parentImage(0)
+{
+}
+
+void QMeeGoLivePixmapPrivate::copyBackFrom(const void *raw)
+{
+ Q_Q(QMeeGoLivePixmap);
+
+ q->detach();
+ shm->lock();
+ uchar *dest = ((uchar *) shm->data()) + (2 * sizeof(int));
+ memcpy(dest, raw, q->width() * q->height() * 4);
+ shm->unlock();
+}
+
+QMeeGoLivePixmapPrivate::~QMeeGoLivePixmapPrivate()
+{
+ Q_Q(QMeeGoLivePixmap);
+
+ if (parentImage)
+ parentImage->d_ptr->detachPixmap(q);
+
+ if (shm)
+ shm->detach();
+
+ if (owns)
+ delete shm;
+}
+
+/* QMeeGoLivePixmap */
+
+QMeeGoLivePixmap::QMeeGoLivePixmap(QPixmapData *p) : QPixmap(p), d_ptr(new QMeeGoLivePixmapPrivate())
+{
+ Q_D(QMeeGoLivePixmap);
+ d->q_ptr = this;
+}
+
+QMeeGoLivePixmap* QMeeGoLivePixmap::fromLiveImage(QMeeGoLiveImage *liveImage)
+{
+ static int counter = 100;
+ QSharedMemory *shm = NULL;
+ uchar* imgData = NULL;
+ int *header = NULL;
+ int w = liveImage->width();
+ int h = liveImage->height();
+
+ counter++;
+ shm = new QSharedMemory(QString(QLatin1String("QMeeGoLivePixmap%1")).arg(counter));
+ shm->create((w * h * 4) + 2 * sizeof(int)); // +2 to store width & height
+ shm->attach();
+
+ imgData = ((uchar *) shm->data()) + (2 * sizeof(int));
+ header = (int *) shm->data();
+
+ header[0] = w;
+ header[1] = h;
+
+ QImage img(imgData, w, h, QImage::Format_ARGB32_Premultiplied);
+
+ QPixmapData *pmd = new QRasterPixmapData(QPixmapData::PixmapType);
+ pmd->fromImage(img, Qt::NoOpaqueDetection);
+
+ QMeeGoLivePixmap *livePixmap = new QMeeGoLivePixmap(pmd);
+ livePixmap->d_ptr->shm = shm;
+ livePixmap->d_ptr->owns = true;
+ livePixmap->d_ptr->shmSerial = counter;
+ livePixmap->d_ptr->parentImage = liveImage;
+
+ liveImage->d_ptr->attachPixmap(livePixmap);
+
+ return livePixmap;
+}
+
+QMeeGoLivePixmap* QMeeGoLivePixmap::fromHandle(Qt::HANDLE handle)
+{
+ QSharedMemory *shm = NULL;
+ int *header;
+ int width;
+ int height;
+ uchar* imgData;
+
+ shm = new QSharedMemory(QString(QLatin1String("QMeeGoLivePixmap%1")).arg(handle));
+ shm->attach();
+
+ shm->lock();
+ header = (int *) shm->data();
+ width = header[0];
+ height = header[1];
+ shm->unlock();
+
+ imgData = ((uchar *) shm->data()) + (2 * sizeof(int));
+ QImage img(imgData, width, height, QImage::Format_ARGB32_Premultiplied);
+
+ QPixmapData *pmd = new QRasterPixmapData(QPixmapData::PixmapType);
+ pmd->fromImage(img, Qt::NoOpaqueDetection);
+
+ QMeeGoLivePixmap *livePixmap = new QMeeGoLivePixmap(pmd);
+ livePixmap->d_ptr->shm = shm;
+ livePixmap->d_ptr->owns = false;
+ livePixmap->d_ptr->shmSerial = handle;
+
+ return livePixmap;
+}
+
+QMeeGoLivePixmap::~QMeeGoLivePixmap()
+{
+}
+
+Qt::HANDLE QMeeGoLivePixmap::handle()
+{
+ Q_D(QMeeGoLivePixmap);
+ return d->shmSerial;
+}
diff --git a/tools/qmeegographicssystemhelper/qmeegolivepixmap.h b/tools/qmeegographicssystemhelper/qmeegolivepixmap.h
new file mode 100644
index 0000000..2fa9db2
--- /dev/null
+++ b/tools/qmeegographicssystemhelper/qmeegolivepixmap.h
@@ -0,0 +1,98 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QMEEGOLIVEPIXMAP_H
+#define QMEEGOLIVEPIXMAP_H
+
+#include <QPixmap>
+#include "qmeegoliveimage.h"
+
+class QMeeGoLivePixmapPrivate;
+class QSharedMemory;
+class QImage;
+
+//! A pixmap representing streamed content.
+/*!
+*/
+
+class QMeeGoLivePixmap : public QPixmap
+{
+public:
+ //! Creates new pixmap from the given QMeeGoLiveImage.
+ /*!
+ The created QMeeGoLivePixmap will be attached to the given QMeeGoLiveImage.
+ Updates to the QMeeGoLiveImage will be represented on this newly created
+ QMeeGoLivePixmap.
+ */
+ static QMeeGoLivePixmap* fromLiveImage(QMeeGoLiveImage *liveImage);
+
+ //! Creates a new QMeeGoLivePixmap from the specified handle.
+ /*!
+ The handle can be used to share QMeeGoLivePixmap cross-process.
+ */
+ static QMeeGoLivePixmap* fromHandle(Qt::HANDLE handle);
+
+ //! Returns the handle for this QMeeGoLivePixmap.
+ /*!
+ The handle can be used to share QMeeGoLivePixmap cross-process.
+ */
+ Qt::HANDLE handle();
+
+ //! Destroys the QMeeGoLivePixmap.
+ /*!
+ All QMeeGoLivePixmaps attached to a given QMeeGoLiveImage have to be destroyed
+ before the QMeeGoLiveImage itself is destroyed.
+ */
+ virtual ~QMeeGoLivePixmap();
+
+private:
+ QMeeGoLivePixmap(QPixmapData *p);
+ Q_DISABLE_COPY(QMeeGoLivePixmap)
+ Q_DECLARE_PRIVATE(QMeeGoLivePixmap)
+
+protected:
+ QScopedPointer<QMeeGoLivePixmapPrivate> d_ptr; //! Private bits.
+
+ friend class QMeeGoLiveImage;
+ friend class QMeeGoLiveImagePrivate;
+};
+
+#endif
diff --git a/tools/qmeegographicssystemhelper/qmeegolivepixmap_p.h b/tools/qmeegographicssystemhelper/qmeegolivepixmap_p.h
new file mode 100644
index 0000000..c2591dc
--- /dev/null
+++ b/tools/qmeegographicssystemhelper/qmeegolivepixmap_p.h
@@ -0,0 +1,66 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qmeegolivepixmap.h"
+
+#ifndef QMEEGOLIVEPIXMAP_P_H
+#define QMEEGOLIVEPIXMAP_P_H
+
+class QMeeGoLivePixmapPrivate
+{
+public:
+ Q_DECLARE_PUBLIC(QMeeGoLivePixmap);
+ QMeeGoLivePixmapPrivate();
+ void copyBackFrom(const void *raw);
+ virtual ~QMeeGoLivePixmapPrivate();
+
+ QSharedMemory *shm;
+ int shmSerial;
+ bool owns;
+ QMeeGoLiveImage *parentImage;
+
+ QMeeGoLivePixmap *q_ptr;
+
+ friend class QMeeGoLiveImage;
+ friend class QMeeGoLiveImagePrivate;
+};
+
+#endif
diff --git a/tools/qmeegographicssystemhelper/qmeegooverlaywidget.cpp b/tools/qmeegographicssystemhelper/qmeegooverlaywidget.cpp
new file mode 100644
index 0000000..f9f14ae
--- /dev/null
+++ b/tools/qmeegographicssystemhelper/qmeegooverlaywidget.cpp
@@ -0,0 +1,99 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QDebug>
+#include <QEvent>
+#include <QMouseEvent>
+#include <QCoreApplication>
+#include "qmeegooverlaywidget.h"
+#include "qmeegographicssystemhelper.h"
+#include "qmeegoruntime.h"
+
+QMeeGoOverlayWidget::QMeeGoOverlayWidget(int surfaceWidth, int surfaceHeight, QWidget *parent) : QWidget(parent, 0),
+ sw(surfaceWidth),
+ sh(surfaceHeight)
+{
+ if (! QMeeGoGraphicsSystemHelper::isRunningMeeGo())
+ qFatal("QMeeGoOverlayWidget can only be used when running with 'meego' graphics system!");
+
+ QMeeGoRuntime::setSurfaceFixedSize(surfaceWidth, surfaceHeight);
+
+ scaleW = sw / 864.0;
+ scaleH = sh / 480.0;
+ installEventFilter(this);
+}
+
+QPoint QMeeGoOverlayWidget::convertPoint(const QPoint &p)
+{
+ int x = p.x() * scaleW;
+ int y = p.y() * scaleH;
+ return QPoint(x, y);
+}
+
+void QMeeGoOverlayWidget::showEvent(QShowEvent *)
+{
+ QMeeGoRuntime::setSurfaceScaling(0, 0, width(), height());
+}
+
+bool QMeeGoOverlayWidget::eventFilter(QObject *, QEvent *event)
+{
+ if (event->spontaneous() == false)
+ return false;
+
+ switch(event->type()) {
+ case QEvent::MouseButtonPress:
+ case QEvent::MouseButtonRelease:
+ {
+ QMouseEvent *e = static_cast <QMouseEvent *>(event);
+ QMouseEvent newEvent = QMouseEvent(e->type(),
+ convertPoint(e->pos()),
+ convertPoint(e->globalPos()),
+ e->button(),
+ e->buttons(),
+ e->modifiers());
+ QCoreApplication::sendEvent(this, &newEvent);
+ return true;
+ }
+
+ default:
+ return false;
+ }
+}
diff --git a/tools/qmeegographicssystemhelper/qmeegooverlaywidget.h b/tools/qmeegographicssystemhelper/qmeegooverlaywidget.h
new file mode 100644
index 0000000..c2c08b4
--- /dev/null
+++ b/tools/qmeegographicssystemhelper/qmeegooverlaywidget.h
@@ -0,0 +1,86 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QMEEGOOVERLAYWIDGET_H
+#define QMEEGOOVERLAYWIDGET_H
+
+#include <QWidget>
+
+//! A widget automatically scaling it's content.
+/*!
+*/
+
+class QMeeGoOverlayWidget : public QWidget
+{
+public:
+ //! Constructs a new scaling widget.
+ /*!
+ The real surface used for this widget will have the specified
+ width and height.
+ */
+ QMeeGoOverlayWidget(int surfaceWidth, int surfaceHeight, QWidget *parent = 0);
+
+
+ //! Event filtering function.
+ /*!
+ Converts coordinates for mouse/touch event. Do not
+ call manually.
+ */
+ bool eventFilter(QObject *obj, QEvent *event);
+
+ //! Standard override.
+ /*!
+ The surface scaling on the target paint device is being
+ set when the widget is displayed for the first time.
+ */
+ virtual void showEvent(QShowEvent *event);
+
+private:
+ //! Converts coordinates between real & virtual area of the widget.
+ QPoint convertPoint(const QPoint &p);
+
+ int sw; /// Surface real width.
+ int sh; /// Surface real height.
+ float scaleW; /// Width scaling factor.
+ float scaleH; /// Height scaling factor.
+};
+
+#endif
diff --git a/tools/qmeegographicssystemhelper/qmeegoruntime.cpp b/tools/qmeegographicssystemhelper/qmeegoruntime.cpp
new file mode 100644
index 0000000..70b5dc1
--- /dev/null
+++ b/tools/qmeegographicssystemhelper/qmeegoruntime.cpp
@@ -0,0 +1,158 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qmeegoruntime.h"
+
+#include <private/qlibrary_p.h>
+#include <private/qfactoryloader_p.h>
+#include <private/qgraphicssystemplugin_p.h>
+
+#define ENSURE_INITIALIZED {if (!initialized) initialize();}
+
+bool QMeeGoRuntime::initialized = false;
+
+typedef int (*QMeeGoImageToEglSharedImageFunc) (const QImage&);
+typedef QPixmapData* (*QMeeGoPixmapDataFromEglSharedImageFunc) (Qt::HANDLE handle, const QImage&);
+typedef QPixmapData* (*QMeeGoPixmapDataWithGLTextureFunc) (int w, int h);
+typedef bool (*QMeeGoDestroyEGLSharedImageFunc) (Qt::HANDLE handle);
+typedef void (*QMeeGoUpdateEglSharedImagePixmapFunc) (QPixmap*);
+typedef void (*QMeeGoSetSurfaceFixedSizeFunc) (int w, int h);
+typedef void (*QMeeGoSetSurfaceScalingFunc) (int x, int y, int w, int h);
+typedef void (*QMeeGoSetTranslucentFunc) (bool translucent);
+
+static QMeeGoImageToEglSharedImageFunc qt_meego_image_to_egl_shared_image = NULL;
+static QMeeGoPixmapDataFromEglSharedImageFunc qt_meego_pixmapdata_from_egl_shared_image = NULL;
+static QMeeGoPixmapDataWithGLTextureFunc qt_meego_pixmapdata_with_gl_texture = NULL;
+static QMeeGoDestroyEGLSharedImageFunc qt_meego_destroy_egl_shared_image = NULL;
+static QMeeGoUpdateEglSharedImagePixmapFunc qt_meego_update_egl_shared_image_pixmap = NULL;
+static QMeeGoSetSurfaceFixedSizeFunc qt_meego_set_surface_fixed_size = NULL;
+static QMeeGoSetSurfaceScalingFunc qt_meego_set_surface_scaling = NULL;
+static QMeeGoSetTranslucentFunc qt_meego_set_translucent = NULL;
+
+void QMeeGoRuntime::initialize()
+{
+ QFactoryLoader loader(QGraphicsSystemFactoryInterface_iid, QLatin1String("/graphicssystems"), Qt::CaseInsensitive);
+
+ QLibraryPrivate *libraryPrivate = loader.library(QLatin1String("meego"));
+ Q_ASSERT(libraryPrivate);
+
+ QLibrary library(libraryPrivate->fileName, libraryPrivate->fullVersion);
+
+ bool success = library.load();
+
+ if (success) {
+ qt_meego_image_to_egl_shared_image = (QMeeGoImageToEglSharedImageFunc) library.resolve("qt_meego_image_to_egl_shared_image");
+ qt_meego_pixmapdata_from_egl_shared_image = (QMeeGoPixmapDataFromEglSharedImageFunc) library.resolve("qt_meego_pixmapdata_from_egl_shared_image");
+ qt_meego_pixmapdata_with_gl_texture = (QMeeGoPixmapDataWithGLTextureFunc) library.resolve("qt_meego_pixmapdata_with_gl_texture");
+ qt_meego_destroy_egl_shared_image = (QMeeGoDestroyEGLSharedImageFunc) library.resolve("qt_meego_destroy_egl_shared_image");
+ qt_meego_update_egl_shared_image_pixmap = (QMeeGoUpdateEglSharedImagePixmapFunc) library.resolve("qt_meego_update_egl_shared_image_pixmap");
+ qt_meego_set_surface_fixed_size = (QMeeGoSetSurfaceFixedSizeFunc) library.resolve("qt_meego_set_surface_fixed_size");
+ qt_meego_set_surface_scaling = (QMeeGoSetSurfaceScalingFunc) library.resolve("qt_meego_set_surface_scaling");
+ qt_meego_set_translucent = (QMeeGoSetTranslucentFunc) library.resolve("qt_meego_set_translucent");
+
+ if (qt_meego_image_to_egl_shared_image && qt_meego_pixmapdata_from_egl_shared_image && qt_meego_pixmapdata_with_gl_texture
+ && qt_meego_destroy_egl_shared_image && qt_meego_update_egl_shared_image_pixmap && qt_meego_set_surface_fixed_size
+ && qt_meego_set_surface_scaling && qt_meego_set_translucent)
+ {
+ qDebug("Successfully resolved MeeGo graphics system: %s %s\n", qPrintable(libraryPrivate->fileName), qPrintable(libraryPrivate->fullVersion));
+ }
+ } else {
+ Q_ASSERT(false);
+ }
+
+ initialized = true;
+}
+
+Qt::HANDLE QMeeGoRuntime::imageToEGLSharedImage(const QImage &image)
+{
+ ENSURE_INITIALIZED;
+ Q_ASSERT(qt_meego_image_to_egl_shared_image);
+ return qt_meego_image_to_egl_shared_image(image);
+}
+
+QPixmap QMeeGoRuntime::pixmapFromEGLSharedImage(Qt::HANDLE handle, const QImage &softImage)
+{
+ ENSURE_INITIALIZED;
+ Q_ASSERT(qt_meego_pixmapdata_from_egl_shared_image);
+ return QPixmap(qt_meego_pixmapdata_from_egl_shared_image(handle, softImage));
+}
+
+QPixmap QMeeGoRuntime::pixmapWithGLTexture(int w, int h)
+{
+ ENSURE_INITIALIZED;
+ Q_ASSERT(qt_meego_pixmapdata_with_gl_texture);
+ return QPixmap(qt_meego_pixmapdata_with_gl_texture(w, h));
+}
+
+bool QMeeGoRuntime::destroyEGLSharedImage(Qt::HANDLE handle)
+{
+ ENSURE_INITIALIZED;
+ Q_ASSERT(qt_meego_destroy_egl_shared_image);
+ return qt_meego_destroy_egl_shared_image(handle);
+}
+
+void QMeeGoRuntime::updateEGLSharedImagePixmap(QPixmap *p)
+{
+ ENSURE_INITIALIZED;
+ Q_ASSERT(qt_meego_update_egl_shared_image_pixmap);
+ return qt_meego_update_egl_shared_image_pixmap(p);
+}
+
+void QMeeGoRuntime::setSurfaceFixedSize(int w, int h)
+{
+ ENSURE_INITIALIZED;
+ Q_ASSERT(qt_meego_set_surface_fixed_size);
+ qt_meego_set_surface_fixed_size(w, h);
+}
+
+void QMeeGoRuntime::setSurfaceScaling(int x, int y, int w, int h)
+{
+ ENSURE_INITIALIZED;
+ Q_ASSERT(qt_meego_set_surface_scaling);
+ qt_meego_set_surface_scaling(x, y, w, h);
+}
+
+void QMeeGoRuntime::setTranslucent(bool translucent)
+{
+ ENSURE_INITIALIZED;
+ Q_ASSERT(qt_meego_set_translucent);
+ qt_meego_set_translucent(translucent);
+}
diff --git a/tools/qmeegographicssystemhelper/qmeegoruntime.h b/tools/qmeegographicssystemhelper/qmeegoruntime.h
new file mode 100644
index 0000000..82fdb52
--- /dev/null
+++ b/tools/qmeegographicssystemhelper/qmeegoruntime.h
@@ -0,0 +1,61 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QPixmap>
+#include <QImage>
+
+class QMeeGoRuntime
+{
+public:
+ static void initialize();
+
+ static Qt::HANDLE imageToEGLSharedImage(const QImage &image);
+ static QPixmap pixmapFromEGLSharedImage(Qt::HANDLE handle, const QImage &softImage);
+ static QPixmap pixmapWithGLTexture(int w, int h);
+ static bool destroyEGLSharedImage(Qt::HANDLE handle);
+ static void updateEGLSharedImagePixmap(QPixmap *p);
+ static void setSurfaceFixedSize(int w, int h);
+ static void setSurfaceScaling(int x, int y, int w, int h);
+ static void setTranslucent(bool translucent);
+
+private:
+ static bool initialized;
+};
diff --git a/tools/runonphone/ossignalconverter.cpp b/tools/runonphone/ossignalconverter.cpp
index 6554e9f..8566458 100644
--- a/tools/runonphone/ossignalconverter.cpp
+++ b/tools/runonphone/ossignalconverter.cpp
@@ -42,6 +42,7 @@
#include "ossignalconverter_p.h"
#include <signal.h>
#include <QTimer>
+#include <stdio.h>
Q_GLOBAL_STATIC(OsSignalConverter, osSignalConverter);
diff --git a/tools/tools.pro b/tools/tools.pro
index f254230..8f23fe4 100644
--- a/tools/tools.pro
+++ b/tools/tools.pro
@@ -43,3 +43,7 @@ embedded: SUBDIRS += makeqpf
CONFIG+=ordered
QTDIR_build:REQUIRES = "contains(QT_CONFIG, full-config)"
+
+!win32:!embedded:!mac:!symbian:CONFIG += x11
+
+x11:contains(QT_CONFIG, opengles2):contains(QT_CONFIG, egl):SUBDIRS += qmeegographicssystemhelper