summaryrefslogtreecommitdiffstats
path: root/src/platformsupport/eglconvenience
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'dev' into stableOswald Buddenhagen2013-03-207-47/+278
|\ | | | | | | | | | | | | | | | | | | | | | | This starts Qt 5.1 release cycle Conflicts: src/gui/text/qfontdatabase.cpp src/gui/text/qharfbuzz_copy_p.h src/widgets/kernel/qapplication.cpp src/widgets/kernel/qcoreapplication.cpp Change-Id: I72fbf83ab3c2206aeea1b089428b0fc2a89bd62b
| * Fix some warnings that have crept up since I last fixed warningsThiago Macieira2013-02-271-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | qgtkstyle.cpp:3177:103: error: suggest parentheses around ‘&&’ within ‘||’ [-Werror=parentheses] qcups.cpp:517:66: error: ‘QString::QString(const char*)’ is deprecated itemviews.cpp:795:13: error: unused parameter ‘actionName’ [-Werror=unused-parameter] qeglconvenience.cpp:268:9: error: ‘cfg’ may be used uninitialized in this function [-Werror=maybe-uninitialized] Change-Id: I9b8a175ff1c2ddc443363e08b92e09cf7c2f91cf Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: John Layt <jlayt@kde.org> Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
| * Fix EGL_BAD_MATCH when requesting a 16-bit surface with eglfs.Michael Brasser2013-02-191-1/+1
| | | | | | | | | | | | | | | | | | | | QEglFSWindow does not request highestPixelFormat, and can obtain a 16-bit config when requested. QEGLPlatformContext does request highestPixelFormat, and can obtain a 32-bit config when a 16-bit config is requested, leading to this error. Change-Id: I418c09a35ec19b2e9ca372b32599034e02384e44 Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
| * Added QOffscreenSurface class.Yoann Lopes2013-02-183-2/+149
| | | | | | | | | | | | | | | | | | | | | | | | Inherits QSurface and allows to use OpenGL from an arbitrary thread. Platform plugins can implement QPlatformOffscreenSurface, otherwise an invisible QWindow is used by QOffscreenSurface. This patch includes an implementation of QOffscreenSurface for XCB and EglFS platform plugins using pbuffers. Change-Id: I57b4fc1db417331f34826dcfa754b7698782fde4 Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
| * Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-01-226-6/+6
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/io/qsavefile_p.h src/corelib/tools/qregularexpression.cpp src/gui/util/qvalidator.cpp src/gui/util/qvalidator.h Change-Id: I58fdf0358bd86e2fad5d9ad0556f3d3f1f535825
| * | eglfs: Introduce way of filtering out unwanted EGL configs.Samuel Rødal2013-01-184-44/+128
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some times a platform might want to exclude certain configs, for example based on EGL_NATIVE_VISUAL_ID. This patch introduces a new QEglConfigChooser class which has a virtual filterConfig() function which can be re-implemented in a sub-class to give finer control of how configs are chosen. Change-Id: I8b684f01be95a47307b1e429857f01337a9a38d8 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* | | Compile when EGL headers are located in non-standard locationGunnar Sletta2013-03-121-0/+1
| |/ |/| | | | | | | | | Task-number: QTBUG-30101 Change-Id: I0fb774392c3d4fc7551ba31d1546788c78ca8afc Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* | Update copyright year in Digia's license headersSergio Ahumada2013-01-186-6/+6
|/ | | | | Change-Id: Ic804938fc352291d011800d21e549c10acac66fb Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Change copyrights from Nokia to DigiaIikka Eklund2012-09-226-146/+146
| | | | | | | | Change copyrights and license headers from Nokia to Digia Change-Id: If1cc974286d29fd01ec6c19dd4719a67f4c3f00e Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
* Enable autodetecting of EGL event for desktop GLJorgen Lind2012-09-071-9/+8
| | | | | | | | And only use the QT_CONFIG,egl syntax in eglconvenience Change-Id: I81c0602334714f4b27a7e90e7b5859c989e6bd63 Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com> Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
* Use true and false in preference to TRUE and FALSESergio Ahumada2012-09-051-1/+1
| | | | | | | | The TRUE and FALSE macros are obsolete and should be replaced with true and false (all lower case) respectively. Change-Id: Iee352e8173500683e6319be0abbf5bacf29016e0 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fixed missing way of choosing EGL renderable type with QSurfaceFormat.Samuel Rødal2012-06-273-8/+41
| | | | | | | | | | | This has been long overdue, since EGL now lets you choose between desktop and ES based OpenGL. We also add OpenVG for those who want to use raw OpenVG with a QOpenGLContext. The underlying EGL API for using OpenGL / OpenVG is the same, with eglMakeCurrent() and eglSwapBuffers(). Change-Id: Ib0146b3fde5fe632069ebf99e7712f496ee7ea4d Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* egl: return EGL config when r/g/b sizes are not setGirish Ramakrishnan2012-06-141-5/+4
| | | | | | | | | | | The check is already done for alpha. Do a similar check for r/g/b sizes. The problem was discovered because the default scenegraph context in QSGContext::defaultSurfaceFormat does not have r/g/b set. Change-Id: I2f529c9d5cc7dbc61a27722336e8099e7be08965 Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
* Verify the surfaceType before activating the GL contextHolger Hans Peter Freyther2012-06-051-0/+2
| | | | | | | | | | | | Verify that the surfaceType() of the QPlatformContext is of type OpenGLSurface before making the context active. Make it possible to get the QSurface from a QPlatformSurface, make QPlatformWindow use that to access the QWindow. Remove the setSurfaceType call from the eglfs plugin as this hiding a problem. Change-Id: I08906da052e066bb1f1f042030643c6389ab17d7 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com> Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
* Fix compile error in eglconvenienceGirish Ramakrishnan2012-05-302-3/+3
| | | | | | Change-Id: Ic20d890a9c59e21a5f0c81f961074ab02083a266 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com> Reviewed-by: Sergio Ahumada <sergio.ahumada@nokia.com>
* Add q_printEglConfig to qeglconvenienceGirish Ramakrishnan2012-05-292-0/+45
| | | | | | | The code was initially part of eglfs. Change-Id: I8aa6e77edec85ab2b23765ca04e4416757f3bed6 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* QEGLPlatformContext: Add accessors for display and config.Friedemann Kleint2012-05-232-8/+18
| | | | | | | Change-Id: I4a7c033691ed83698ac161c034f795f1ac3b0ade Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com> Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Expose QPA API under qpa/*Girish Ramakrishnan2012-05-072-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The main reasons for doing this are: 1. _qpa.h end up in the master QtGui include file. QtGui is meant for userland applications. qpa code is neither binary nor source compatible. Inadvertant use of QPA api makes the user code binary-incompatible. 2. syncqt creates forwarding headers for non-private header files. This gives people the impression that this is public API. As discussed on the mailing list, even though QPA api is internal and subject to change, it needs to treated differently from private headers since they will be used by in-qtbase and out-of-qtbase plugins. This commit does the following: 1. The _qpa in QPA header files is dropped. 2. syncqt now treats any file with qplatform prefix as a special file and moves it to qpa/ directory. The recommended way of using QPA API in plugins is: #include <qpa/qplatformfoo.h>. This allows the user include QPA API from multiple modules (for example, qplatformfoo might be in QtPrintSupport) 3. The user needs to explicitly add QT += <module>-private to get access to the qpa api. 4. Creates compat headers for the olden style qplatformfoo_qpa.h and QPlatformFoo includes. This commit does not change the cpp filenames. This requires a more careful merging of existing non qpa cpp files and existing cpp files on a case by case basis. This can be done at anytime. The following files are not renamed as part of this changed but will be fixed as part of a future change: src/gui/kernel/qgenericpluginfactory_qpa.h src/gui/kernel/qgenericplugin_qpa.h src/gui/kernel/qwindowsysteminterface_qpa.h files were renamed using for x in `find . -name "qplatform*_qpa.h"`; do git mv $x "${x/_qpa.h/.h}"; done for x in `find . -name "qplatform*_qpa_p.h"`; do git mv $x "${x/_qpa_p.h/_p.h}"; done includes were renamed using script for file in `find . -name "*.h" -or -name "*.cpp" -or -name "*.mm"`; do sed -i -e 's,.*#.*include.*<\(Qt.*/\)\?\(QPlatform.*\)>,#include <qpa/\L\2.h>,g' \ -e 's,.*#.*include.*"\(Qt.*/\)\?\(QPlatform.*\)",#include <qpa/\L\2.h>,g' \ -e 's,.*#.*include.* "\(qplatform.*\)_qpa.h",#include <qpa/\L\1.h>,g' \ -e 's,.*#.*include.*"\(qplatform.*\)_qpa_p.h",#include <qpa/\L\1_p.h>,g' \ -e 's,.*#.*include.*<\(Qt.*/\|Qt.*/private/\|private/\)\?\(qplatform.*\)_qpa\(.*\)>,#include <qpa/\2\3>,g' \ -e 's,.*#.*include.*"\(Qt.*/\|Qt.*/private/\|private/\)\?\(qplatform.*\)_qpa\(.*\)",#include <qpa/\2\3>,g' \ $file done Change-Id: I04a350314a45746e3911f54b3b21ad03315afb67 Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com> Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
* Modified project files to be iOS compatible.Qt4iOS2012-04-111-6/+8
| | | | | | | | Removed some MacOS source code files from iOS build. Use unix standard paths for now (iOS-specific implementation will come later). Change-Id: I8b2731b431b3a379a1ec4ec07d227e886209e3e9 Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Change bugreports.qt.nokia.com -> bugreports.qt-project.orgSergio Ahumada2012-03-021-1/+1
| | | | | Change-Id: Ia795098f24cf358b15067f54cd08dff0bd792bc5 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* More graceful handling of QSurfaceFormat::samples() with EGL.Samuel Rødal2012-02-101-4/+10
| | | | | | | | | | Earlier, if we asked for say 16 and the implementation only handled 4, we defaulted to 0 (no antialiasing). Now, we instead try a progressively lower number until we find a match. Task-number: QTBUG-22669 Change-Id: I63f4b8aadf8e06713d19fdc9b9d73672162c816a Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
* Remove "All rights reserved" line from license headers.Jason McDonald2012-01-306-6/+6
| | | | | | | | | | As in the past, to avoid rewriting various autotests that contain line-number information, an extra blank line has been inserted at the end of the license text to ensure that this commit does not change the total number of lines in the license header. Change-Id: I311e001373776812699d6efc045b5f742890c689 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Update contact information in license headers.Jason McDonald2012-01-236-6/+6
| | | | | | | Replace Nokia contact email address with Qt Project website. Change-Id: I431bbbf76d7c27d8b502f87947675c116994c415 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Update copyright year in license headers.Jason McDonald2012-01-056-6/+6
| | | | | Change-Id: I02f2c620296fcd91d4967d58767ea33fc4e1e7dc Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Better handling of GLX / EGL errors.Samuel Rødal2011-12-072-6/+8
| | | | | | | | | | If context creation fails, try again without a shared context. Added QPlatformOpenGLContext::isSharing() and QPlatformOpenGLContext::isValid() to propagate whether the platform context was successfully created with or without sharing. Change-Id: I37080b645f531fd207946441057be6d3f6be3f6e Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
* Re-added hellogl_es and ES 1 support for QOpenGLContext.Samuel Rødal2011-10-313-4/+4
| | | | | Change-Id: I576cf3595cdeeefb4ed840bb3b2b7097b3609cc7 Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
* Fix compilation on HarmattanSimon Hausmann2011-10-032-3/+3
| | | | | | | | | | | Improved fix from e327401743dba9112faca77fd764869709ae4367 to add the necessary includes in the header file, where the types are also needed. The same header file is also included from the xcb plugin. Change-Id: I52a891be1ecc67d49a088a4db698270a06db6b54 Reviewed-on: http://codereview.qt-project.org/5932 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Fix compilation on HarmattanSimon Hausmann2011-10-031-0/+3
| | | | | | | | | Include X11 headers to get VisualID and other "types". Change-Id: Idbb323329d346726b98312b1e02c9b199f2b7a65 Reviewed-on: http://codereview.qt-project.org/5928 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* No dependencies on opengl, widgets and printsupportLars Knoll2011-09-191-1/+0
| | | | | | | | | | | The problem is that the libQtPlatformSupport.prl file will otherwise add these as link dependencies, making any platform plugin link against these. Change-Id: Ief71726e86990bb44b12cf86e78b844a1a23ae3c Reviewed-on: http://codereview.qt-project.org/5098 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Fixed XComposite hardware integration in wayland plugin.Samuel Rødal2011-09-171-1/+1
| | | | | | | | | | We should set both the pixmap and window bits for XComposite to work on a stricter EGL / GLX implementation. Change-Id: Ie1be44ebcc68fed87f48c74dffd887ffae1189d5 Reviewed-on: http://codereview.qt-project.org/4893 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com>
* Copy core GL functionality to QtGui with QGL -> QOpenGL naming.Samuel Rødal2011-08-292-4/+4
| | | | | | Change-Id: Ibc989afa4a30dd184d41d1a1cd89f97196e48855 Reviewed-on: http://codereview.qt.nokia.com/3710 Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
* More graceful choosing of EGL configs.Samuel Rødal2011-07-271-11/+18
| | | | | | | | | | | | If someone asks for a depth buffer of size 32, we should try to give them a smaller depth buffer if none of that size is available. Also, don't unconditionally read the alpha size of the configure attributes, since it might have been removed when reducing the config. Change-Id: If2f9d49c1cc3ded015384f9551b19cd15c523ce3 Reviewed-on: http://codereview.qt.nokia.com/2269 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
* Get the eglfs plugin compiling.Samuel Rødal2011-07-261-0/+1
| | | | | | | Change-Id: I5addb1a2593a670d559b9fbf9183f52af410895b Reviewed-on: http://codereview.qt.nokia.com/2176 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
* OpenGL API refactor.Samuel Rødal2011-06-214-38/+26
| | | | | | Rename QGuiGLFormat to QSurfaceFormat, and make QWindow sub-class of QSurface and QPlatformWindow sub-class of QPlatformSurface, instead of having QPlatformGLSurface accessor in QWindow.
* QtPlatformSupport: A helper library for platform pluginsJørgen Lind2011-06-107-0/+866
QtPlatformSupport is a static library. Platform plugins are meant to link against this library to pull in dependencies such as fontengines and convenience functions for finding the right GL configs. The linker will only pull in the symbols used, so the size of the library doesn't really matter