summaryrefslogtreecommitdiffstats
path: root/src/opengl/qgl_p.h
Commit message (Collapse)AuthorAgeFilesLines
* 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
* 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 copyright year to 2011.Jason McDonald2011-01-101-1/+1
| | | | Reviewed-by: Trust Me
* 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
* 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
* 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
* 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
* 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
* 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
* 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.
* 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 '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
* | Introduce QtOpenGL module for Symbian.Jani Hautakangas2010-08-201-1/+8
| | | | | | | | | | Task-number: QT-2139 Reviewed-by: Gunnar Sletta
* | 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
* | QGLWindowSurface support for partial updates via EGL_NOK_swap_region2Michael Dominic K2010-07-011-0/+1
| | | | | | | | | | | | | | (if extension available). Merge-request: 712 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* | Export various symbols needed to make a custom GL graphicssystem.Michael Dominic K2010-06-301-1/+1
| | | | | | | | | | Merge-request: 2422 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* | Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into ↵Qt Continuous Integration System2010-06-281-1/+1
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2: (24 commits) Fix an assertion in comp_func_SourceOver_sse2() if const_alpha == 0 Add a manual test for regular widget interaction with the table. New variant of ::createPixmapData with origin for QGraphicsSystem. EGL plane levels are the same as all other GL backends. Need to access extensionFuncs in subclasses too. Export QGLWindowSurface too. Export the QGLPixmapData so that we can override it in a custom graphics system. Fixed autotest failure in QPathClipper on N900. Fixed autotest failure in QPainter::setOpacity when NEON is used. Fix compilation when configured with -no-xrender Add a new (internal) flag QGraphicsItem::ItemStopsClickFocusPropagation. Fixed some potential index-out-of-bounds issues in QImage. Fixed autotest failure in fillRect_stretchToDeviceMode Adding a known issue for VC2010 64 bit Added a note to desupport VC2010 64-bit Normalize integers when calling glVertexAttribPointer() Add an implementation of comp_func_solid_SourceOver_neon() with Neon. Fix the casts of qdrawhelper_sse2 Add a SSE2 implementation of comp_func_solid_SourceOver() Add a SSE2 version of comp_func_SourceOver() ...
| * | Need to access extensionFuncs in subclasses too.Michael Dominic K2010-06-251-1/+1
| | | | | | | | | | | | | | | Merge-request: 2422 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* | | Merge branch '4.6-s60' into 4.7-s60axis2010-06-241-1/+1
|\ \ \ | |/ / |/| / | |/ | | | | | | | | Conflicts: src/3rdparty/phonon/qt7/mediaobject.mm src/3rdparty/webkit/VERSION src/3rdparty/webkit/WebCore/ChangeLog src/plugins/phonon/mmf/mmf.pro
| * Ensure that compiling with the no debug/warning output defines worksAndy Shaw2010-06-231-1/+1
| | | | | | | | | | | | | | | | The defines that can be used are QT_NO_DEBUG_OUTPUT and QT_NO_WARNING_OUTPUT in order to turn off qDebug and qWarning output. Reviewed-by: cduclos Reviewed-by: Markus Goetz
* | Fixed an on-exit crash for apps using GL.Trond Kjernåsen2010-06-111-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | If a QGLWidget is left on the heap when the QApplication destructor is called, it will leave the QGLWidget in a broken state. The widget itself is released and set to a non-created state, which the associated QGLContext doesn't get notified about. With this patch the QGLWidget knows when QWidget::destroy() is called and can act acordingly. Task-number: QT-3498, QTBUG-10995 Reviewed-by: Paul
* | Fixed a problem where QPixmaps where re-bound in non-sharing contexts.Trond Kjernåsen2010-06-011-13/+23
| | | | | | | | | | | | | | | | | | | | If you have two non-sharing GL contexts and try to draw the same QPixmap in both of them, they will wind up competing for a spot in the texture cache. Make the context group a part of the cache key to avoid that. Task-number: QT-3462 Reviewed-by: Kim
* | Added workarounds for two MBX/SGX specific GL ES bugs/problems.Trond Kjernåsen2010-05-141-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The workaround flags are put into the platform independent section for now, since there might be a general need for these as we expand our GL and GL ES usage. The workaround_needsFullClearOnEveryFrame flag covers the case where you get a performance penalty on PowerVR hw if all rendering buffers are not cleared. The workaround_brokenFBOReadBack flag covers the case where copying pixels from a texture (e.g. via glCopyTexSubImage2d()) bound in an FBO doesn't work. Task-number: QTBUG-10670 Reviewed-by: Gunnar
* | Make sure recreateEglSurface creates a surface if there isn't oneTom Cooksey2010-04-221-1/+1
| | | | | | | | | | | | | | | | If QGLWidgetPrivate::recreateEglSurface is called after a surface has been deleted, it should always create a new surface and ignore the fact that the window ID may not have changed. Reviewed-By: Trond
* | Support building with desktop OpenGL managed via EGLTom Cooksey2010-04-141-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This mostly replaces lots of QT_OPENGL_ES defines with QT_NO_EGL instead. It also switches off EGL auto-detection by default. This is to make sure we default to using GLX on systems with both EGL and desktop OpenGL. If -opengl es1|es2 or -openvg is specified, then EGL auto-detection is switched back on (as a requirement. If configure auto-detects OpenGL ES it also switches on EGL auto-detection, but failue then just disables both EGL & OpenGL. As a side effect, this patch also fixes building Qt when both EGL and glx are avaliable, as they are in Mesa >= 7.8.0. Reviewed-by: Trond Task-number: QTBUG-9691
* | Merge branch '4.7' of git@scm.dev.nokia.troll.no:qt/oslo-staging-2 into 4.7David Boddie2010-03-301-41/+56
|\ \ | |/ |/| | | | | | | | | | | | | | | Conflicts: doc/src/modules.qdoc mkspecs/common/symbian/symbian.conf src/gui/graphicsview/qgraphicswidget.h src/s60installs/bwins/QtGuiu.def src/s60installs/eabi/QtGuiu.def
| * Avoid having to create temporary QPixmaps when binding to textureTom Cooksey2010-03-261-1/+1
| | | | | | | | Reviewed-By: TrustMe
| * Made QGLExtensions::glExtensions() thread-safe.Trond Kjernåsen2010-03-121-2/+0
| | | | | | | | Reviewed-by: Gunnar
| * Delete the QGLContext in ~QX11GLPixmapDataTom Cooksey2010-03-111-0/+1
| | | | | | | | | | | | | | | | This also includes changes which allow QGLContext to not own it's own QEglContext. With X11GL, the QEglContext gets reused by multiple QGLContexts so it is important QGLContext doesn't delete it. Reviewed-By: TrustMe
| * Made QGLTextureCache::instance() threadsafe.Trond Kjernåsen2010-03-111-1/+0
| | | | | | | | Reviewed-by: Tom Cooksey
| * Merge remote branch 'origin/4.6' into qt-4.7-from-4.6Rohan McGovern2010-03-061-1/+1
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: configure.exe examples/multimedia/audioinput/audioinput.cpp src/corelib/io/qfsfileengine.cpp src/gui/egl/qegl_wince.cpp src/gui/egl/qeglproperties.cpp src/gui/egl/qeglproperties_p.h src/gui/embedded/directfb.pri src/gui/kernel/qapplication_win.cpp src/gui/painting/qdrawutil.cpp src/opengl/qgl_p.h src/sql/drivers/odbc/qsql_odbc.cpp src/sql/drivers/odbc/qsql_odbc.h tests/auto/auto.pro tests/auto/qgl/tst_qgl.cpp translations/assistant_adp_ru.ts
| * | Fix build when egl.h includes X11 headers & pollutes namespaceTom Cooksey2010-03-041-7/+1
| | | | | | | | | | | | | | | | | | | | | At some point we should fix the include order in all the .cpp files, however #udef'ing the defines we use elsewhere seems to work for now. Reviewed-By: TrustMe
| * | Add and use QGLContextPrivate::eglSurfaceForDevice()Tom Cooksey2010-03-021-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | The QGLContext only stores the EGLSurface for QWidgets & QGLWidgets, other device types like QPixmap & QGLPixelBuffer store the surface themsselves. With this patch it is possible to create a QGLContext on a QPixmap, make it current and render GL to that QPixmap on X11. Reviewed-By: TrustMe
| * | Merge remote branch 'origin/master' into qt-master-from-4.6Thiago Macieira2010-02-201-6/+36
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: configure.exe src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp src/opengl/qgl.cpp
| | * | Some threading improvements to the GL moduleGunnar Sletta2010-02-171-6/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Make bindTexture threadsafe - Document which areas of QGLWidget needs locking in order to do out-of-gui thread rendering - Testcases to prove that these cases work Reviewed-by: Trond
| * | | Merge branch '4.6' into qt-master-from-4.6Thiago Macieira2010-02-171-2/+2
| |\ \ \ | | |/ / | |/| | | | | | | | | | | | | | | | | | Conflicts: mkspecs/common/symbian/symbian.conf src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp tools/assistant/tools/assistant/helpviewer.cpp
| * | | Merge remote branch 'origin/4.6' into qt-master-from-4.6Thiago Macieira2010-02-121-1/+3
| |\ \ \
| * \ \ \ Merge remote branch 'qt/4.6' into qt-master-from-4.6Qt Continuous Integration System2010-02-091-6/+3
| |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/gui/kernel/qcocoapanel_mac.mm src/gui/kernel/qcocoasharedwindowmethods_mac_p.h
| * | | | | Remove obsolete OpenGL/ES CommonLite (fixed-point) supportRhys Weatherley2010-02-041-16/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-7683 Reviewed-by: Tom Cooksey
| * | | | | Merge branch '4.6'Thiago Macieira2010-01-181-36/+59
| |\ \ \ \ \
| * \ \ \ \ \ Merge branch '4.6'Thiago Macieira2010-01-131-1/+1
| |\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: bin/syncqt doc/src/deployment/deployment.qdoc src/corelib/io/qfsfileengine_win.cpp src/corelib/xml/qxmlstream.cpp src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h tools/assistant/tools/assistant/centralwidget.cpp tools/linguist/lupdate/main.cpp
| * \ \ \ \ \ \ Merge branch '4.6'Thiago Macieira2010-01-081-16/+18
| |\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/io/qfsfileengine.cpp src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp src/opengl/opengl.pro
| * | | | | | | | Added support for OpenGL up to version 3.2 on Windows.Kim Motoyoshi Kalland2009-12-301-2/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-4438, QT-2662, QT-2663 Reviewed-by: Tom
* | | | | | | | | Export QGLContextResource for use with Qt/3DRhys Weatherley2010-03-291-1/+1
| |_|_|_|_|_|_|/ |/| | | | | | |
* | | | | | | | Preparation to enable OpenGLES 2.0 for Windows Mobile.ninerider2010-02-271-3/+9
| |_|_|_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As there are no SDKs available for our test device (HTC HD2) that support OpenGL, we had to construct the libraries by extracting them from the ROM image. This is still work in progress at this time.