summaryrefslogtreecommitdiffstats
path: root/src/opengl/qgl.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Initial implementation of GLES2.0 resource poolingJani Hautakangas2011-03-151-1/+18
| | | | | | | | | Keep the implementation in separate qpixmapdata_poolgl.cpp file until the pooling has been verified and confirmed to work ok. Task-number: QTBUG-15253 QTBUG-17850 Reviewed-by: Samuel Rødal
* 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
* Fix warning about address of a function being constant.Thiago Macieira2010-11-261-0/+4
| | | | | | In OpenGL ES 2, these functions are always expected to be present, so the address can never be zero. So only test for the function being found if we tried to find it dynamicaly.
* Prevented race condition on texture destruction.Samuel Rødal2010-11-081-0/+11
| | | | | | | | | | | | 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-1/+6
| | | | | | | | | | | | 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-0/+6
| | | | | | | | | 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-3/+0
| | | | | | | | | | 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-7/+26
| | | | | | | | | | | | | | 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 pretend to support single buffered EGL surfaces.Trond Kjernåsen2010-09-241-0/+3
| | | | | Task-number: QTBUG-12865 Reviewed-by: Samuel
* Don't try to use the texture_from_pixmap extension in GL on desktop/X11.Trond Kjernåsen2010-09-231-26/+7
| | | | | | | | | 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-09-071-0/+2
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: qmake/Makefile.win32 src/corelib/io/qfsfileengine_win.cpp src/corelib/kernel/qeventdispatcher_win.cpp src/gui/dialogs/qfiledialog_win.cpp src/gui/inputmethod/qcoefepinputcontext_s60.cpp src/gui/text/qfontdatabase_win.cpp src/gui/util/qsystemtrayicon_win.cpp src/script/utils/qscriptdate.cpp tests/auto/qinputcontext/tst_qinputcontext.cpp tests/auto/qscriptengine/tst_qscriptengine.cpp
| * Recognize GL_ARB_shader_objects as indicating shadersRhys Weatherley2010-08-271-0/+2
| | | | | | | | | | | | | | | | | | Fixes a regression introduced by bf5c25c4. Some OpenGL implementations don't have the GL_ARB_fragment_shader extension listed even though they do support shaders. Task-number: QTBUG-13179 Reviewed-by: Sarah Smith
* | Made QT_GL_SWAPBUFFER_PRESERVE=1 with the GL graphics system work.Samuel Rødal2010-08-311-5/+2
| | | | | | | | | | | | On desktop, we should just do swapBuffers() in swapRegion(). Reviewed-by: Trond
* | Merge remote branch 'origin/4.6' into qt-4.7-from-4.6Thiago Macieira2010-08-261-0/+3
|\ \ | |/ | | | | | | | | | | Conflicts: bin/syncqt src/opengl/qgl.cpp tools/configure/configureapp.cpp
| * Fix OpenGLVersionFlags on OpenGL 4.0 systemsRhys Weatherley2010-08-161-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | If the OpenGL version was 4.0 or higher, the flags for 1.1, 1.5, 2.0, and so on were not being set. This lead to the flags indicating that older OpenGL versions were not supported when they clearly were. Back port parts of 28659c21d12a267b10e5b441bf4c776e04d69bdc from Qt 4.7 to fix this in Qt 4.6. Task-number: QTBUG-12554 Reviewed-by: Sarah Smith
| * Don't define highp/mediump/lowp if desktop GL has themRhys Weatherley2010-08-131-0/+3
| | | | | | | | | | | | | | | | | | | | 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
* | On Symbian QGLWidget::glDraw() must do nothing if widget isn't visible.Jani Hautakangas2010-08-231-0/+5
| | | | | | | | | | | | | | Otherwise application crashes because rendering to invisible window surface will panic eventually. Reviewed-by: Trond
* | bindTexture: Replace texture if painting is active on pixmap/imageAndreas Kling2010-08-211-5/+18
| | | | | | | | | | | | | | This fixes an issue with WebKit canvases not updating after the first frame since there's always a QPainter open on their backing store. Reviewed-by: Samuel Rødal
* | Introduce QtOpenGL module for Symbian.Jani Hautakangas2010-08-201-2/+30
| | | | | | | | | | Task-number: QT-2139 Reviewed-by: Gunnar Sletta
* | Prevented Xorg crash in qtdemo when running corkboards example.Samuel Rødal2010-08-171-5/+25
| | | | | | | | | | | | | | | | | | | | 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
* | Correcting spelling mistakes in documentation. Part of fix for QTBUG-11938.Jerome Pasion2010-08-091-1/+1
| | | | | | | | | | Reviewer: David Boddie Task number: QTBUG-11938
* | Merge remote branch 'origin/4.7' into 4.7-from-4.6Rohan McGovern2010-07-171-4/+10
|\ \ | | | | | | | | | | | | Conflicts: tests/auto/qtexttable/tst_qtexttable.cpp
| * | doc: Fixed several qdoc warnings.Martin Smith2010-07-131-4/+10
| | |
* | | Merge remote branch 'origin/4.6' into qt-4.7-from-4.6Thiago Macieira2010-07-151-1/+1
|\ \ \ | |/ / |/| / | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: bin/syncqt src/3rdparty/webkit/VERSION src/3rdparty/webkit/WebCore/ChangeLog src/3rdparty/webkit/WebCore/bridge/qt/qt_instance.cpp src/3rdparty/webkit/WebCore/bridge/qt/qt_runtime.h src/3rdparty/webkit/WebCore/page/FrameView.cpp src/3rdparty/webkit/WebCore/page/FrameView.h src/3rdparty/webkit/WebCore/platform/ScrollView.cpp src/3rdparty/webkit/WebCore/platform/ScrollView.h src/corelib/plugin/quuid.cpp src/gui/dialogs/qfontdialog.cpp src/multimedia/audio/qaudiodevicefactory.cpp src/opengl/qgl.cpp src/openvg/qpaintengine_vg.cpp tests/auto/qxmlquery/tst_qxmlquery.cpp
| * The Q_WGL define was removed years ago.Trond Kjernåsen2010-07-081-1/+1
| | | | | | | | | | | | | | | | The proper define should be Q_WS_WIN. Task-number: QTBUG-12040 Reviewed-by: Prasanth Reviewed-by: Eskil
* | Got rid of unused variable compiler warning.Samuel Rødal2010-07-011-1/+1
| |
* | QGLWindowSurface support for partial updates via EGL_NOK_swap_region2Michael Dominic K2010-07-011-0/+10
| | | | | | | | | | | | | | (if extension available). Merge-request: 712 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* | Merge branch '4.7' of git@scm.dev.nokia.troll.no:qt/oslo-staging-2 into 4.7Gunnar Sletta2010-06-301-0/+33
|\ \
| * \ Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into ↵Qt Continuous Integration System2010-06-271-0/+7
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2: (21 commits) 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() Fixed missing copy of raster pixmap data after change fb76a872e20bd. Fixed QPixmap::toImage() bug introduced in fb76a872e20bd. Optimized sub-rect copying / painting of QPixmaps. ...
| | * | Need to access extensionFuncs in subclasses too.Michael Dominic K2010-06-251-0/+7
| | | | | | | | | | | | | | | | | | | | Merge-request: 2422 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
| * | | Add qDebug() operator for QGLFormatHarald Fernengel2010-06-251-0/+26
| |/ / | | | | | | | | | | | | | | | Very handy to trace GL issues on a device with broken gdb Reviewed-by: Trond Kjernåsen <trond.kjernasen@nokia.com>
* | | support BGRA textures on SGXGunnar Sletta2010-06-301-14/+16
|/ / | | | | | | Reviewed-by: Samuel
* | Fixed an on-exit crash for apps using GL.Trond Kjernåsen2010-06-111-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | 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
* | Added OpenGL 3.3 and 4.0 recognition to QGLFormatSebastian Hartte2010-06-031-2/+20
| | | | | | | | | | Merge-request: 2404 Reviewed-by: Trond
* | Fixed a problem where QPixmaps where re-bound in non-sharing contexts.Trond Kjernåsen2010-06-011-7/+44
| | | | | | | | | | | | | | | | | | | | 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-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | Remove an unnecessary assert.Trond Kjernåsen2010-05-121-2/+1
| | | | | | | | Reviewed-by: Kim
* | Made paint engine texture drawing work in GL ES 2 and updated docs.Samuel Rødal2010-05-101-27/+46
| | | | | | | | | | | | | | | | Now QGLWidget::drawTexture() can be used on OpenGL ES 2.0 when there's an active painter. Task-number: QTBUG-10420 Reviewed-by: Trond
* | Fixed OpenGL version flags for versions > 3.2.Kim Motoyoshi Kalland2010-05-031-1/+14
| | | | | | | | | | | | | | If the system supports an OpenGL version higher than what is recognized by Qt, all the version flags up to 3.2 should be set. Reviewed-by: Trond
* | Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into ↵Qt Continuous Integration System2010-05-021-8/+14
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2: Fix project file generation for MSVC 2010 Fix wrong translation and clip for the raster paint-engine on Mac Return the correct library name in qt_gl_library_name for GLES* qmake: remove useless evaluation of variables from VS project generators Fix QT_NO_LIBRARY Documentation for the Elastic Nodes example. qmake: fix duplicate linker options in VS project files Ensured that WA_InputMethodEnabled was set before FocusInEvent was sent. qmake: fix duplicate compiler options in VS project files Documentation for the Drag and Drop Robot example. Fix crash in styles example when running with opengl graphicssystem Fixed the sizehint for cols/rows in qtableview QUrl: parsing of host name with an undercore. Null pointer check Revert "Try to use multisampled opengl graphicssystem on all platforms" A small mistake when comparing the flag. Add unit tests covering most of QVector's API. Fix crash when CoreText fails to shape text for us Fix crash when using opengl graphicssystem on desktop Revert "Revert "Implement heightForWidth support for QTabWidget and QStackedLayout.""
| * | Return the correct library name in qt_gl_library_name for GLES*Tom Cooksey2010-04-301-4/+10
| | | | | | | | | | | | Reviewed-By: Gunnar
| * | Fix crash when using opengl graphicssystem on desktopTom Cooksey2010-04-271-4/+4
| | | | | | | | | | | | | | | Reviewed-By: Eskil Task-number: QTBUG-10225
* | | Merge remote branch 'origin/4.6' into qt-4.7-from-4.6Thiago Macieira2010-04-291-2/+10
|\ \ \ | |/ / |/| / | |/ | | | | | | | | | | | | | | | | | | | | | | | | All EGL-related changes from 4.6 were discarded. Conflicts: src/gui/egl/egl.pri src/gui/egl/qegl.cpp src/gui/egl/qegl_p.h src/gui/egl/qegl_stub.cpp src/gui/egl/qeglproperties_p.h src/gui/egl/qeglproperties_stub.cpp src/gui/gui.pro src/multimedia/multimedia/audio/qaudioinput_win32_p.h src/s60installs/bwins/QtGuiu.def src/s60installs/eabi/QtGuiu.def
| * Fixed QGLWidget::grabFrameBuffer() to honor the 'withAlpha' value.Trond Kjernåsen2010-04-271-2/+10
| | | | | | | | | | Task-number: QTBUG-7545 Reviewed-by: Kim
* | 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
* | More adjustments to QTBUG-6800Carolina Gomes2010-04-141-7/+7
| | | | | | | | | | Merge-request: 2344 Reviewed-by: Tom Cooksey
* | Adjustments to QTBUG-6800 patch.Carolina Gomes2010-04-141-8/+6
| | | | | | | | | | Merge-request: 2344 Reviewed-by: Tom Cooksey
* | QTBUG-6800 patch included, but only for OpenGL 2.0Carolina Gomes2010-04-141-0/+27
| | | | | | | | | | Merge-request: 2344 Reviewed-by: Tom Cooksey