summaryrefslogtreecommitdiffstats
path: root/src/opengl/qgl_p.h
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'master' of scm.dev.nokia.troll.no:qt/qt-fire-staging into ↵Qt Continuous Integration System2011-10-271-0/+1
|\ | | | | | | | | | | | | master-integration * 'master' of scm.dev.nokia.troll.no:qt/qt-fire-staging: Fix possible crash in glyph cache when deleting and creating contexts
| * Fix possible crash in glyph cache when deleting and creating contextsEskil Abrahamsen Blomfeldt2011-10-251-0/+1
| | | | | | | | | | | | | | | | | | | | | | The freeResource(), used in the glyph cache as a notifier of when the owner context of the cache disappears, is never called if the context is in a group with other contexts that share its resources. This implements a second notifier function instead which can be used to invalidate the glyph cache when its context is destroyed. Task-number: QTBUG-22324 Reviewed-by: Samuel
* | Merge remote-tracking branch 'origin/4.7' into qt-4.8-from-4.7Liang Qi2011-10-251-0/+3
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/kernel/qeventdispatcher_symbian.cpp src/declarative/qml/qdeclarativetypeloader.cpp src/imports/gestures/gestures.pro src/imports/particles/particles.pro src/opengl/qgl.cpp src/opengl/qgl_p.h src/s60installs/bwins/QtGuiu.def src/s60installs/eabi/QtGuiu.def tests/auto/declarative/qdeclarativescriptdebugging/qdeclarativescriptdebugging.pro tests/auto/declarative/qdeclarativewebview/qdeclarativewebview.pro tests/auto/qaudioinput/qaudioinput.pro tests/auto/qaudiooutput/qaudiooutput.pro tests/auto/qchar/qchar.pro tests/auto/qclipboard/test/test.pro tests/auto/qsound/qsound.pro
| * Workaround to VideoCore III scissor bug.Jani Hautakangas2011-10-191-0/+2
| | | | | | | | | | | | | | | | | | | | Some versions of VideoCore III drivers seem to pollute and use stencil buffer when using glScissors. Workaround is to clear stencil buffer before disabling scissoring. Task-number: QT-5308 Reviewed-by: Samuel Rødal
| * Fix to QGLWidget crashJani Hautakangas2011-10-181-0/+2
| | | | | | | | | | | | | | | | | | | | | | QGLWidget crashed due to regression caused by fix to QTTH-1553. Crash only occurred if application was locked to landscape mode but started when device was in portrait mode. Task-number: QTTH-1597 Reviewed-by: Laszlo Agocs
* | Merge remote branch 'origin/4.7' into qt-4.8-from-4.7Jani Hautakangas2011-06-221-1/+32
|\ \ | |/ | | | | | | | | | | Conflicts: src/opengl/qgl.cpp src/opengl/qpixmapdata_symbiangl.cpp src/opengl/qwindowsurface_gl.cpp
| * Add missing freeTexture() from fix for QTBUG-19180Jani Hautakangas2011-06-091-0/+6
| | | | | | | | | | Task-number: QTBUG-19180 Reviewed-by: TRUSTME
| * Simplify texture pooling logic in GL graphics system.Jani Hautakangas2011-06-091-1/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | Remove ugly TemporarilyCachedBindOption and use QGLTexture objects as texture pool entries instead of QGLPixmapData. Make texture pooling totally Symbian specific, remove VG like texture pooling code and use common texture binding path which is used on other platforms also on Symbian. QGLPixmapData should be only used to bind SgImage based textures (will be implemented by another commit). Task-number: QTBUG-19180 Reviewed-by: Samuel Rødal
| * Update licenseheader text in source filesJyri Tahtela2011-05-131-17/+17
| | | | | | | | | | | | | | Updated version of LGPL and FDL licenseheaders. Apply release phase licenseheaders for all source files. Reviewed-by: Trust Me
* | Update licenseheader text in source files for qt4.8Jyri Tahtela2011-05-131-17/+17
| | | | | | | | | | | | | | Updated version of LGPL and FDL licenseheaders. Apply release phase licenseheaders for all source files. Reviewed-by: Trust Me
* | Support gamma correction of text on GLEskil Abrahamsen Blomfeldt2011-05-031-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the SRGB framebuffer extension in GL is available, we can support gamma correction of text with a gamma of 2.1. On Mac this is sufficient for gamma correcting subpixel antialiased text. Gray antialiasing should not be gamma corrected on Mac. On Windows, the user can potentially set the gamma value to anything between 1.0 and 2.2 (or something like that). We support anything that resembles 1.0 closely enough by pushing the text out without any correction (like before). We also support anything that resembles 2.1 (the gamma hardcoded in GL's SRGB extension) by turning on the extension before blending the text. In between the two, we'll use gray antialiasing to avoid differing too much from the raster engine (which is our reference in this.) For gray antialiasing on Windows, we use a constant gamma of 2.3 which has been determined by experimentation. Since this is close enough to 2.1 we do gamma correction with SRGB extension. The distance limit of 0.2 is determined by some experimentation. Reviewed-by: Samuel
* | 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