summaryrefslogtreecommitdiffstats
path: root/src/opengl/qgl_p.h
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* | | | | | | Fix several bugs with GL texture cacheTom Cooksey2010-02-121-2/+2
| |_|_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | Reviewed-By: Trond Autotest: tst_QGL::qglContextDefaultBindTexture
* | | | | | Merge branch '4.5' of scm.dev.nokia.troll.no:qt/qt into 4.6Kim Motoyoshi Kalland2010-02-091-1/+3
|\ \ \ \ \ \ | |_|_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/gui/kernel/qapplication_win.cpp src/gui/kernel/qwidget.cpp src/gui/kernel/qwidget_p.h
| * | | | | Fixed bug where GL widget was not fully updated on Vista.Kim Motoyoshi Kalland2010-02-041-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There were cases where the QGLWidget would not be fully updated on screen on Windows Vista and Windows 7 with Aero disabled. Task-number: QTBUG-7865 Reviewed-by: Prasanth
| * | | | | Update license headers again.Jason McDonald2009-09-081-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | Reviewed-by: Trust Me
* | | | | | Fix GL texture leaks when pixmaps are deletedTom Cooksey2010-01-291-6/+3
| |_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes quite a lot of issues: * QtOpenGL only registered qpixmap destruction hooks on X11 and those only cleanup the EGL/GLX surface, not the texture object. * The QPixmap destruction hooks were only being called from the QPixmap destructor. However, this means when a QPixmap is assigned to another QPixmap, the hooks don't get called. Task-number: QTBUG-7647 Reviewed-By: Samuel Reviewed-By: Trond
* | | | | Rework how Qt handles GL extensions.Trond Kjernåsen2010-01-131-36/+59
| |_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Qt used to store the GL extensions a particular implementation supported in a global cache, which was initialized once and never updated. This could cause problems because different types of context might support different kinds of extensions (e.g. the difference between sw and hw contexts). With this patch, the GL extensions are cached and updated within each QGLContext. It also makes the extension initialization lazy, which saves application initialization costs for embedded platforms. The patch introduces a internal cross platform QGLTemporaryContext class that is used to create a light-weight GL context without going via QGLWidget and friends (QWS and WinCE still have QGLWidget fallbacks for now). Reviewed-by: Kim Reviewed-by: Samuel
* | | | Merge branch '4.6' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into ↵Qt Continuous Integration System2010-01-071-1/+1
|\ \ \ \ | |_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.6-integration * '4.6' of scm.dev.nokia.troll.no:qt/oslo-staging-1: QIODevice: Fix readAll() Temporary hackiesh solution to prevent BOM in the xml data. Fixed qxmlstream autotest when using shadow builds. Attempt at readding the capital P headers for Phonon Remove special Phonon processing from syncqt. Use the lowercase/shortname.h headers for Phonon includes Fixes a crash when setting focus on a widget with a focus proxy. Update copyright year to 2010 doc: Clarified activeSubControls and subControls. Remove warning "statement with no effect" doc: Clarified that .lnk files are System files on Windows.
| * | | Update copyright year to 2010Jason McDonald2010-01-061-1/+1
| | |/ | |/| | | | | | | Reviewed-by: Trust Me
* | | Remove QGLShareRegister and transfer its functionality to QGLContextGroupRhys Weatherley2010-01-041-16/+9
| | | | | | | | | | | | | | | Task-number: QT-2600 Reviewed-by: Samuel
* | | Track which vertex attrib arrays are enabled in QGLContextPrivateTom Cooksey2009-12-301-0/+9
|/ / | | | | | | | | | | | | | | | | | | | | | | | | The GL2 engine (and probably Qt/3D) needs to track which vertex attribute arrays are currently enabled and which are disabled. As this is per-context state, the logical place to track this is in the context and not in the paint engine. This patch also makes the GL2 engine's shader manager enable/disable the appropriate attribute arrays for a given shader program when it is used. Reviewed-By: Kim
* | Fix EGL surface leaks when re-parenting QGLWidget on X11/EGLTom Cooksey2009-12-151-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | When a QGLWidget is re-parented, it's native X11 window usually gets destroyed and re-created. This also happens when you set a window attribute or flag. On EGL, we must destroy the surface for the window before destroying the window itself, otherwise we can leak the surface. This also fixes lots of BadDrawable errors when running the autotests (which were due to surface leaks!). Reviewed-By: TrustMe
* | Optimize our GL extension checks to avoid mallocs.Trond Kjernåsen2009-12-101-0/+43
| | | | | | | | | | | | | | | | | | | | We want to avoid any unnecessary mallocs when checking GL/GLX extensions. The GL extension string can be quite long and contain several hundred extensions. The old code forced one malloc for each extension + 1 extra malloc for the extension string itself when it was copied into the QByteArray. Reviewed-by: Kim
* | GLES 2 should *not* use a multisampled format by default.Trond Kjernåsen2009-12-091-3/+0
| | | | | | | | | | | | | | | | This is a platform regression and should never have been there in the first place. Having this as the default format on embedded devices may drop the framerates with as much as 30% on selected HW. Reviewed-by: Tom Cooksey
* | Export QGLShareRegister because qgl_share_reg() is exportedRhys Weatherley2009-12-091-1/+1
| | | | | | | | Reviewed-by: trustme
* | Detect GL2 paint engine based on fragment shaders, not programsRhys Weatherley2009-12-071-1/+2
| | | | | | | | | | | | | | | | The auto-detect logic was looking for fragment programs to check for OpenGL2 support. It should have been looking for fragment shaders. Task-number: QTBUG-5638 Reviewed-by: Sarah Smith