summaryrefslogtreecommitdiffstats
path: root/src/opengl/qgl_p.h
Commit message (Collapse)AuthorAgeFilesLines
* Made extension resolving work with Core profile.Samuel Rødal2011-04-051-29/+15
| | | | | | | | | | | | | | | The Core profile was introduced in OpenGL 3.2 and if chosen removes all deprecated functionality from the OpenGL API. In the Core profile glGetString(GL_EXTENSIONS) is unsupported, so instead we need to use glGetStringi(GL_EXTENSIONS, index) together with glGetIntegerv(GL_NUM_EXTENSIONS). Also optimized the QGLExtensionMatcher to not have to recompute the split positions all the time. Preliminary support to prevent non-core-functions to be called in the GL 2 engine has also been added. Reviewed-by: Kim
* QGLContext on EGL gets an additional QEglProperties static field applied to ↵Michael Dominic K2011-04-011-0/+3
| | | | | | | | | every window surface created. Conflicts: src/opengl/qgl_egl.cpp src/opengl/qgl_p.h
* Reset GL glyph cache when texture limit is reachedEskil Abrahamsen Blomfeldt2011-03-231-0/+1
| | | | | | | | | | | | | | This is a port of 72f161739b270b01807f97cd853030440f0fd430 which was reverted in integration to master, since it was incompatible with the refactored glyph cache. When the GL glyph cache reached its texture limit, we have to reset it and start over. Added a new cleanup() function in QGLContextGroupResourceBase which deletes the resource for a given context and removes itself from that context group. Task-number: QTBUG-13784 Reviewed-by: Samuel
* Optimized glyph uploads in GL texture cache.Samuel Rødal2011-03-211-0/+3
| | | | | | | Avoid doing a lot of glTexSubImage2D calls in favor of doing a single call (even if it involves an additional image copy). Reviewed-by: Eskil
* Merge branch 'master' into lighthouse-masterJørgen Lind2011-01-261-1/+1
|\
| * Merge remote branch 'origin/4.7' into qt-master-from-4.7Olivier Goffart2011-01-171-1/+1
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: examples/webkit/imageanalyzer/imageanalyzer.h examples/webkit/imageanalyzer/mainwindow.h mkspecs/unsupported/qws/linux-x86-openkode-g++/qplatformdefs.h src/corelib/io/qfsfileengine_iterator_unix.cpp src/corelib/io/qfsfileengine_iterator_win.cpp src/corelib/kernel/qcoreapplication.cpp src/network/access/qnetworkaccessdatabackend.cpp src/plugins/bearer/connman/qconnmanservice_linux.cpp src/plugins/platforms/openvglite/qwindowsurface_vglite.h src/s60installs/bwins/QtCoreu.def src/s60installs/eabi/QtCoreu.def src/s60installs/s60installs.pro tools/assistant/tools/assistant/helpviewer_qwv.h tools/qdoc3/test/qt-html-templates.qdocconf
| | * Update copyright year to 2011.Jason McDonald2011-01-101-1/+1
| | | | | | | | | | | | Reviewed-by: Trust Me
* | | Make QGLContext::fromPlatformGLContext show correct sharingJørgen Lind2011-01-251-0/+1
|/ / | | | | | | | | | | | | information. Prior to this, if a context was created with QGLWidget it would setup the sharing correct, but all sharing actually created on a QPlatformGLContext level was ignored by the QGLContext, thus indicating that it wasnt sharing with any other context.
* | Merge remote branch 'origin/4.7' into qt-master-from-4.7Olivier Goffart2010-12-201-0/+1
|\ \ | |/ | | | | | | | | | | | | | | | | Conflicts: demos/declarative/minehunt/minehunt.pro src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp src/plugins/phonon/mmf/mmf.pro src/s60installs/s60installs.pro tests/auto/qapplication/test/test.pro tests/auto/qgraphicsview/tst_qgraphicsview.cpp
| * Add work around for bug when painting w/glTexSubImage into large textureEskil Abrahamsen Blomfeldt2010-12-161-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | It seems that copying small rectangles from glTexSubImage2D into a texture which is 2048x2048 is busted on some SGX drivers, even though the driver reports 2048 as the maximum texture size. This caused text to turn into flickering garbage once the texture glyph cache had grown to its max size (e.g. when painting very many Chinese glyphs.) To work around the problem, we hardcore the maximum texture height to 1024 on this driver so that the texture glyph cache is reset whenever that size is exceeded. Task-number: QT-3971 Done-with: Samuel
* | Merge branch 'master' of scm.dev.nokia.troll.no:qt/oslo-staging-2Gunnar Sletta2010-11-291-1/+2
|\ \
| * \ Merge remote branch 'origin/4.7' into qt-master-from-4.7Olivier Goffart2010-11-251-1/+2
| |\ \ | | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: qmake/generators/symbian/symmake.cpp src/corelib/global/qglobal.h src/gui/kernel/qwidget_p.h src/gui/painting/qtextureglyphcache.cpp src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp src/opengl/gl2paintengineex/qtextureglyphcache_gl_p.h src/plugins/qpluginbase.pri src/qbase.pri tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp tests/auto/qthread/tst_qthread.cpp tests/auto/selftests/expected_cmptest.txt tests/auto/selftests/expected_crashes_3.txt tests/auto/selftests/expected_longstring.txt tests/auto/selftests/expected_maxwarnings.txt tests/auto/selftests/expected_skip.txt tools/assistant/tools/assistant/doc/assistant.qdocconf tools/qdoc3/test/assistant.qdocconf tools/qdoc3/test/designer.qdocconf tools/qdoc3/test/linguist.qdocconf tools/qdoc3/test/qdeclarative.qdocconf tools/qdoc3/test/qmake.qdocconf tools/qdoc3/test/qt-build-docs.qdocconf tools/qdoc3/test/qt-build-docs_ja_JP.qdocconf tools/qdoc3/test/qt-build-docs_zh_CN.qdocconf tools/qdoc3/test/qt.qdocconf tools/qdoc3/test/qt_ja_JP.qdocconf tools/qdoc3/test/qt_zh_CN.qdocconf
| | * Fixed crash when destroying QGLWidgetThorbjørn Lindeijer2010-11-171-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | The QGLWidget destroys the QGLContext, which in turn destroys the bound pixmap. When this happens there may not be a current QGLContext, so check that before trying to restore it. Done-with: Gunnar Sletta Reviewed-by: Samuel
* | | --warnGunnar Sletta2010-11-241-0/+1
|/ /
* | Merge remote branch 'origin/4.7' into qt-master-from-4.7Olivier Goffart2010-11-121-24/+56
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: configure doc/src/snippets/code/doc_src_qmake-manual.qdoc mkspecs/features/symbian/application_icon.prf mkspecs/features/symbian/default_post.prf mkspecs/features/symbian/symbian_building.prf qmake/generators/symbian/initprojectdeploy_symbian.cpp src/multimedia/audio/audio.pri src/network/access/qnetworkaccessmanager.cpp src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp src/opengl/qgl_p.h src/plugins/bearer/corewlan/qcorewlanengine.mm src/plugins/phonon/mmf/mmf.pro tests/auto/qscriptvalue/tst_qscriptvalue.cpp tests/auto/qscriptvalue/tst_qscriptvalue.h tools/qdoc3/doc/qdoc-manual.qdocconf
| * Prevented race condition on texture destruction.Samuel Rødal2010-11-081-10/+20
| | | | | | | | | | | | | | | | | | | | | | | | When texture destruction was triggered from a different thread, we posted a signal to the QGLSignalProxy. However, before the signal is delivered the corresponding QGLContext might be destroyed in the main thread. We need to post a signal to a QObject which is destroyed when the QGLContext is destroyed instead, to prevent trying to access an invalid QGLContext pointer. Task-number: QT-4238 Reviewed-by: Gunnar Sletta
| * Prevented threading related crash in OpenGL module.Samuel Rødal2010-10-291-23/+45
| | | | | | | | | | | | | | | | | | | | | | | | If the last shallow copy of a QImage which is cached in the QGLTextureCache is destroyed in a thread at the same time as the QGLContext which the texture was initialized in is active in a different thread, the QImage thread incorrectly tries to make the context active in two threads at once. To prevent this from happening it's best to always do the texture clean-up in the main thread. Task-number: QT-4238 Reviewed-by: Eskil Abrahamsen Blomfeldt
* | Merge remote branch 'qt/master' into lighthouse-masterPaul Olav Tvete2010-10-261-2/+4
|\ \ | | | | | | | | | | | | Conflicts: src/opengl/qwindowsurface_gl.cpp
| * \ Merge branch 4.7 into qt-master-from-4.7Qt Continuous Integration System2010-10-261-1/+1
| |\ \ | | |/
| | * Added support for blitting to native child widgets in GL window surface.Samuel Rødal2010-10-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Support blitting by copying from the top-level window's back buffer to a temporary texture and then blitting from the texture to the native child widget. Performance suffers, but it's better than failing. Reviewed-by: Gunnar Sletta
| * | Merge remote branch 'origin/4.7' into qt-master-from-4.7Olivier Goffart2010-10-251-1/+3
| |\ \ | | |/ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: demos/declarative/snake/snake.qml qmake/generators/symbian/symbiancommon.cpp src/network/access/qnetworkaccessmanager.cpp src/s60installs/s60installs.pro tests/auto/qitemselectionmodel/tst_qitemselectionmodel.cpp tests/auto/qnetworkreply/tst_qnetworkreply.cpp
| | * Fix GL_OES_element_index_uint and add GL_OES_depth24 detection.Jani Hautakangas2010-10-201-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | GL_OES_element_index_uint detection was not working because EGL config wasn't yet resolved. In addition QFrameBufferObject should use 24bit depth render buffer if extension is available. Task-number: QTBUG-14542 Reviewed-by: Gunnar
* | | Merge remote branch 'qt/master' into lighthouse-masterPaul Olav Tvete2010-10-221-2/+1
|\ \ \ | |/ / | | | | | | | | | | | | | | | Conflicts: src/gui/kernel/qapplication_win.cpp src/gui/kernel/qwidget.cpp src/gui/text/qfontengine_ft.cpp
| * | Merge branch 4.7 into qt-master-from-4.7Qt Continuous Integration System2010-10-121-2/+1
| |\ \ | | |/
| | * Revert "Don't define highp/mediump/lowp if desktop GL has them"Trond Kjernåsen2010-10-121-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 6155050f68cc86c445552da61a5f240c16f5e2cd. The GL_ARB_ES2_compatibility extension does not mention the lowp, mediump or highp keywords. Task-number: QTBUG-14384 Reviewed-by: Samuel Reviewed-by: Prasanth
| * | Merge commit 'c1f9978c9d61bcbdb2f280185a3abdea13d7f532' into master-from-4.7Rohan McGovern2010-10-051-0/+3
| |\ \ | | |/
| | * Don't disable texture_from_pixmap on GLX/X11 by default.Trond Kjernåsen2010-09-271-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We made a mistake of trying to make use of the texture_from_pixmap extension by default when binding textures in Qt. The extension have several limitation and using it produces crashes with certain drivers/graphic card combos, but we can't change this now since it will break existing apps using well behaved drivers. We'll fix this for 4.8 with either a QGL::BindOption or configure flag. Revert "Don't try to use the texture_from_pixmap extension in GL on desktop/X11." This reverts commit 07c5429d5aacab932cd912e66287d66fb952e7c4.
| * | Merge remote branch 'origin/4.7' into qt-master-from-4.7Olivier Goffart2010-09-281-3/+0
| |\ \ | | |/ | | | | | | | | | | | | | | | | | | Conflicts: src/gui/painting/qrasterizer.cpp src/network/access/qnetworkaccessmanager.cpp tests/auto/qpainter/tst_qpainter.cpp tools/assistant/tools/assistant/mainwindow.cpp
| | * Don't try to use the texture_from_pixmap extension in GL on desktop/X11.Trond Kjernåsen2010-09-231-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | There are far too many problems with this extension for it to be usable on desktop at the moment, so disable on desktop GL for now. It's still enabled for EGL, where it seems to have better driver support. Task-number: related to QTBUG-11158 Reviewed-by: Samuel
* | | Merge remote branch 'qt/master' into lighthouse-masterPaul Olav Tvete2010-09-131-1/+2
|\ \ \ | |/ / | | | | | | | | | | | | | | | Conflicts: configure src/corelib/global/qglobal.h src/corelib/tools/qsimd.cpp
| * | Merge remote branch 'origin/4.7' into qt-master-from-4.7Olivier Goffart2010-08-301-1/+2
| |\ \ | | |/ | | | | | | | | | | | | | | | Conflicts: qmake/generators/win32/msbuild_objectmodel.cpp qmake/generators/win32/msvc_vcxproj.cpp tests/auto/qnetworkreply/tst_qnetworkreply.cpp
| | * Merge remote branch 'origin/4.6' into qt-4.7-from-4.6Thiago Macieira2010-08-261-1/+2
| | |\ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: bin/syncqt src/opengl/qgl.cpp tools/configure/configureapp.cpp
| | | * Don't define highp/mediump/lowp if desktop GL has themRhys Weatherley2010-08-131-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | OpenGL 4.0 systems now have compatibility with ES2, including support for the precision qualifiers. If the GL_ARB_ES2_compatibility extension is present, then we don't define highp/mediump/lowp to the empty string. Task-number: QTBUG-12862 Reviewed-by: Sarah Smith
* | | | Merge remote branch 'lighthouse/4.7' into lighthouse-masterPaul Olav Tvete2010-08-261-1/+1
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | Conflicts: src/opengl/qgl_p.h
| * \ \ \ Merge branch 'qt-4.7' into lighthouse-4.7Paul Olav Tvete2010-08-261-1/+8
| |\ \ \ \ | | | |/ / | | |/| | | | | | | | | | | | | | | | | | | | | | Conflicts: src/opengl/opengl.pro src/opengl/qgl.cpp src/opengl/qgl_p.h
* | | | | Merge remote branch 'qt/master' into lighthouse-masterPaul Olav Tvete2010-08-261-1/+8
|\ \ \ \ \ | | |_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/opengl/opengl.pro src/opengl/qgl.cpp src/opengl/qgl_p.h
| * | | | Merge remote branch 'origin/4.7' into qt-master-from-4.7Olivier Goffart2010-08-251-1/+11
| |\ \ \ \ | | | |/ / | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: qmake/generators/win32/msbuild_objectmodel.cpp src/declarative/qml/qdeclarativexmlhttprequest.cpp src/opengl/opengl.pro src/opengl/qgl_p.h src/plugins/bearer/connman/qconnmanservice_linux.cpp tests/auto/qpainter/tst_qpainter.cpp tools/assistant/tools/assistant/helpviewer_qwv.h tools/assistant/tools/assistant/openpageswidget.h
| | * | | Introduce QtOpenGL module for Symbian.Jani Hautakangas2010-08-201-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | Task-number: QT-2139 Reviewed-by: Gunnar Sletta
* | | | | Merge remote branch 'lighthouse/4.7' into lighthouse-masterPaul Olav Tvete2010-08-191-0/+3
|\ \ \ \ \ | | |_|/ / | |/| | | | | | | | | | | | | | | | | | Conflicts: src/plugins/bearer/connman/qconnmanservice_linux.cpp tests/auto/qpainter/tst_qpainter.cpp
| * | | | Merge remote branch 'qt/4.7' into lighthouse-4.7Paul Olav Tvete2010-08-191-0/+3
| |\ \ \ \ | | | |/ / | | |/| | | | | | | | | | | | Conflicts: src/opengl/qgl_p.h
| | * | | Prevented Xorg crash in qtdemo when running corkboards example.Samuel Rødal2010-08-171-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The crash happens in the Nvidia driver in glXReleaseTexImageEXT when scrolling the corkboard using the mouse. To work around it we detect the Nvidia driver versions where this is known to be a problem and skip using the texture from pixmap extension in those cases. Task-number: QTBUG-12914 Reviewed-by: Trond
* | | | | Merge remote branch 'remotes/lighthouse/4.7' into lighthouse-masterPaul Olav Tvete2010-07-191-3/+14
|\ \ \ \ \ | |/ / / / | | | / / | |_|/ / |/| | | Conflicts: src/opengl/qgl_p.h
| * | | Merge remote branch 'qt/4.7' into lighthouse-4.7Paul Olav Tvete2010-07-141-2/+3
| |\ \ \ | | |/ / | | | | | | | | | | | | | | | | | | | | Conflicts: src/gui/image/image.pri src/gui/image/qpixmapdatafactory.cpp src/gui/painting/qgraphicssystem.cpp
| * | | Say hello to Q_WS_QPA!Jørgen Lind2010-06-241-3/+3
| | | | | | | | | | | | | | | | Rename Q_WS_LITE -> Q_WS_QPA
| * | | Merge remote branch 'qt/4.7' into lighthousePaul Olav Tvete2010-06-181-16/+38
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: configure mkspecs/common/qws.conf src/corelib/io/qresource.cpp src/gui/image/qpixmapdata_p.h src/gui/kernel/qapplication.cpp src/gui/kernel/qapplication_p.h src/gui/painting/qpaintengine_raster.cpp src/gui/text/qfontdatabase.cpp src/opengl/qgl_p.h src/plugins/mediaservices/gstreamer/gstreamer.pro
| * | | | Added QPlatformGLContext to QPlatformWindowJørgen Lind2010-06-111-4/+2
| | | | | | | | | | | | | | | | | | | | and removed the the creator function. Child QGLWidgets don't work
| * | | | Merge remote branch 'qt/4.7' into lighthouse-4.7Paul Olav Tvete2010-05-101-1/+1
| |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/gui/egl/egl.pri src/gui/painting/qwindowsurface_p.h
| * | | | | ifdef fix for egl on ws_litetsenyk2010-05-051-3/+6
| | | | | | | | | | | | | | | | | | | | | | | | reviewed by: Jørgen
| * | | | | Add QPlatformGLWidgetSurface to GL integrtationTom Cooksey2010-04-291-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This class is a way to for the GL platform integration to track the movement and resizing of a QGLWidget with respect to the top-level. Most platform implementations will seperate the surface from the context anyway, so this is a natural abstraction.
| * | | | | Merge remote branch 'origin/4.7' into lighthouseJørgen Lind2010-04-211-7/+7
| |\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: configure src/gui/kernel/qapplication.cpp src/gui/painting/qbackingstore.cpp src/opengl/qgl.cpp src/opengl/qgl_p.h src/plugins/plugins.pro tests/auto/declarative/qdeclarativedom/data/importlib/sublib/qmldir tools/tools.pro