summaryrefslogtreecommitdiffstats
path: root/src/opengl
Commit message (Collapse)AuthorAgeFilesLines
* Fix text drawing into alpha pixmap with opengl engineEskil Abrahamsen Blomfeldt2010-07-072-6/+0
| | | | | | | | | | | | | The merge 03dc74984749adf5b11482bf871a47086217845c mistakenly merged the glyphMargin() (which had been removed in 4.7 because QGLTextureGlyphCache now inherits from the image glyph cache) with the glyphPadding() which had been introduced in separate commits in both branches (probably backported.) This broke text drawing into a pixmap with an alpha with the GL engine, because we'd assume a margin of 1, but the alphaMapForGlyph() function doesn't support margins. Task-number: QTBUG-11987 Reviewed-by: Gunnar
* 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-014-2/+41
| | | | | | | (if extension available). Merge-request: 712 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Check for EGLSurface leak only when paint device is a QGLWidget.Michael Dominic K2010-07-011-9/+12
| | | | | | | (not QGLWindowSurface for example). Merge-request: 722 Reviewed-by: Trond
* Export various symbols needed to make a custom GL graphicssystem.Michael Dominic K2010-06-303-2/+4
| | | | | Merge-request: 2422 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-308-8/+47
|\
| * Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into ↵Qt Continuous Integration System2010-06-286-6/+13
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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() ...
| | * Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into ↵Qt Continuous Integration System2010-06-276-6/+13
| | |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. ...
| | | * EGL plane levels are the same as all other GL backends.Trond Kjernåsen2010-06-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Qt has never used level 1 for the main plane, it's always been 0 and will always be 0. Reviewed-by: Harald Fernengel
| | | * Need to access extensionFuncs in subclasses too.Michael Dominic K2010-06-252-1/+8
| | | | | | | | | | | | | | | | | | | | Merge-request: 2422 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
| | | * Export QGLWindowSurface too.Michael Dominic K2010-06-251-1/+1
| | | | | | | | | | | | | | | | | | | | Merge-request: 2422 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
| | | * Export the QGLPixmapData so that we can override it in a custom graphics system.Michael Dominic K2010-06-251-1/+1
| | | | | | | | | | | | | | | | | | | | Merge-request: 2422 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
| | | * Normalize integers when calling glVertexAttribPointer()Rhys Weatherley2010-06-241-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When QGLShaderProgram::setAttributeArray() is used with a type like GL_UNSIGNED_BYTE, it is normally going to be a value that should be normalized to the range 0..1. But the function wasn't normalizing, which led to errors in programs that used per-vertex colors with the 4ub representation. Reviewed-by: Sarah Smith
| * | | Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public into ↵Qt Continuous Integration System2010-06-271-1/+1
| |\ \ \ | | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public: (31 commits) Make symbian/unix shadow builds work again. Change the files to camelcase as avkon now does that Update EABI and WINSCW DEF files for Symbian Fix linking on arm with def files Updated Harfbuzz from git+ssh://git.freedesktop.org/git/harfbuzz to 4b88f595ab62b7c5f703a286c4f5f13f8784a936 Fixed incorrect parsing of TARGET.EPOCHEAPSIZE. Fixed make runonphone that looked for the package in the wrong place. Fixed several problems with the postlinker for Symbian (elf2e32). Don't crash when cleaning the uninitialized fontdatabase (Symbian) Revert "Fixing the race condition in event dispatcher implementation on" Revert "Fixing race condition in qeventdispatcher_symbian.cpp code path" Updated Harfbuzz from git+ssh://git.freedesktop.org/git/harfbuzz to a80fd59e3b3b18116803a14e6369345933994236 Updated Harfbuzz from git+ssh://git.freedesktop.org/git/harfbuzz to a80fd59e3b3b18116803a14e6369345933994236 Fixed memory restrictions not being passed on to elf2e32. Allow TLW translucency on Symbian without Qt::FramelessWindowHint Updated UIDs for spectrum demo Ensure that compiling with the no debug/warning output defines works Updated Harfbuzz from git+ssh://git.freedesktop.org/git/harfbuzz to f0dcb906fe56b5dc06aa305b6cfc821d5dd25a28 Clean up HB_Anchor's DeviceTables on failure when loading format 3 Make sure ValueRecord's DeviceTables are cleaned up on failure ...
| | * | 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
| * | | Add qDebug() operator for QGLFormatHarald Fernengel2010-06-252-0/+33
| |/ / | | | | | | | | | | | | | | | Very handy to trace GL issues on a device with broken gdb Reviewed-by: Trond Kjernåsen <trond.kjernasen@nokia.com>
| * | qgl_cl_p.h is no longer existentluohua2010-06-181-1/+0
| | | | | | | | | | | | | | | Merge-request: 695 Reviewed-by: Joerg Bornemann <joerg.bornemann@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-113-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | 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
* | Fix another potential strstr() crash for EGL based GL apps.Trond Kjernåsen2010-06-111-1/+2
| | | | | | | | | | Task-number: releated to QT-3498 Reviewed-by: Samuel
* | Fixed an on-exit application crash for GL apps using EGL.Trond Kjernåsen2010-06-111-1/+1
| | | | | | | | | | Task-number: QT-3498 Reviewed-by: Samuel
* | Compile fix.Samuel Rødal2010-06-111-2/+6
| | | | | | | | | | | | | | The PFNGLXCREATECONTEXTATTRIBSARBPROC typedef isn't defined on all GLX 1.3 systems, so we use our own. Reviewed-by: Trond
* | Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into ↵Qt Continuous Integration System2010-06-081-143/+224
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2: QVarLenghtArray: Add typedefs for stl compatibility. prefer QElapsedTimer over QTime Allow to build Qt in static with mingw Protected call to glXChooseFBConfig with appropriate defines. Use the new OpenGL 3.* context/profile if asked with X11/GLX. Splitted attrib_list generation into buildSpec from QGLContext::tryVisual. Fix QTransform::map(const QPainterPath &) not working with paths that
| * | Protected call to glXChooseFBConfig with appropriate defines.Samuel Rødal2010-06-071-0/+11
| | | | | | | | | | | | Reviewed-by: Trond
| * | Use the new OpenGL 3.* context/profile if asked with X11/GLX.Riku Palomäki2010-06-071-6/+69
| | | | | | | | | | | | | | | Merge-request: 609 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
| * | Splitted attrib_list generation into buildSpec from QGLContext::tryVisual.Riku Palomäki2010-06-071-137/+144
| | | | | | | | | | | | | | | Merge-request: 609 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* | | Merge remote branch 'origin/4.6' into qt-4.7-from-4.6Olivier Goffart2010-06-083-0/+9
|\ \ \ | |/ / |/| / | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/3rdparty/webkit/VERSION src/3rdparty/webkit/WebCore/ChangeLog src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp src/3rdparty/webkit/WebKit/qt/ChangeLog src/gui/painting/qpainter.cpp src/gui/painting/qtextureglyphcache.cpp src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp src/opengl/gl2paintengineex/qtextureglyphcache_gl_p.h src/s60installs/bwins/QtGuiu.def src/s60installs/eabi/QtCoreu.def src/s60installs/eabi/QtGuiu.def src/s60installs/eabi/QtNetworku.def src/s60installs/eabi/QtOpenVGu.def tests/auto/qfontmetrics/tst_qfontmetrics.cpp tools/linguist/lupdate/main.cpp
| * Fix the bindTexture() filters on X11 to not rely on mipmap generation.Trond Kjernåsen2010-06-031-0/+3
| | | | | | | | | | | | | | | | | | | | | | The default GL_TEXTURE_MIN_FILTER is GL_NEAREST_MIPMAP_LINEAR, which means you have to have mipmaps generated in order for it to produce correct results. We don't use mipmaps when this particular path is taken, so use texture filters that is in line with what we do in the non-pixmap_to_texture path. Task-number: QTBUG-11158 Reviewed-by: Kim
| * Fix antialiasing with transformed text in OpenGL2 paint engineEskil Abrahamsen Blomfeldt2010-05-313-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since the paint engine now transforms the prerendered glyphs instead of rendering transformed glyphs as paths, we need to turn on texture filtering to avoid antialiasing artifacts. In order to do this, we also need to pad the glyphs in the glyph cache, otherwise you will get artifacts when sampling the area around the glyph's bounding rect (where there might be other glyphs.) This done by adding a glyphPadding() function to the cache which returns the number of pixels to pad between each glyph. Updated: This also fixes a general issue where some combinations of font sizes and transformations will cause the engine to sample neighbouring glyphs, so this has been backported to Qt 4.6.x. Task-number: QTBUG-9706, QTBUG-11028 Reviewed-by: Tom Conflicts: src/gui/painting/qtextureglyphcache.cpp src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
* | Added OpenGL 3.3 and 4.0 recognition to QGLFormatSebastian Hartte2010-06-032-3/+23
| | | | | | | | | | Merge-request: 2404 Reviewed-by: Trond
* | Added static version of QGLFramebufferObject::release().Kim Motoyoshi Kalland2010-06-022-0/+32
| | | | | | | | | | | | The function is marked internal for now. Reviewed-by: Gunnar
* | Merge branch '4.7' of git@scm.dev.nokia.troll.no:qt/oslo-staging-2 into 4.7Eskil Abrahamsen Blomfeldt2010-06-012-20/+67
|\ \
| * | Fixed a problem where QPixmaps where re-bound in non-sharing contexts.Trond Kjernåsen2010-06-012-20/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | Speed up QStaticText with affine transformation on GL2 engineEskil Abrahamsen Blomfeldt2010-06-012-22/+14
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since the OpenGL2 paint engine supports transforming the prerendered glyphs rather than rasterizing the glyphs with the transformation applied, we don't need to recalculate the QStaticText layout whenever the transformation changes. This means that we can do fast animated transforms for QStaticText on this paint engine. A quick test yields something like 100x speed-up on Windows. This also give visually better results, as we previously would animate the hinting of the glyphs, thus causing jittering. The autotest has been updated to reflect the fact that drawText() and drawStaticText() now go through identical paths on GL, also when transforms are set on the painter. However, the scale was changed in one test, because it was so great that drawText() would fall back to paths. With QStaticText the idea is speed, so you'll get a poor, but fast result instead, which is better than tricking people. Reviewed-by: Samuel
* | Make QGLBuffer copiableRhys Weatherley2010-05-282-11/+90
| | | | | | | | Reviewed-by: Gunnar
* | Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into ↵Qt Continuous Integration System2010-05-272-2/+2
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2: Wrong QGraphicsItem::childrenBoundingRect() when applying effects. Fix a bug in QDirectFBPixmapData::fromImage Replace memmove with memcpy Fixed compilation of QtOpenGL. Optimize initialization of QStaticText
| * | Fixed compilation of QtOpenGL.Samuel Rødal2010-05-272-2/+2
| | | | | | | | | | | | Reviewed-by: Eskil
* | | fix irix buildOswald Buddenhagen2010-05-201-0/+1
|/ / | | | | | | | | Task-number: QTBUG-10611 Reviewed-by: joerg
* | Merge remote branch 'origin/4.6' into qt-4.7-from-4.6Olivier Goffart2010-05-174-9/+16
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: demos/demos.pro mkspecs/features/resources.prf mkspecs/features/uic.prf src/corelib/io/qurl.cpp src/corelib/tools/qlocale_symbian.cpp src/gui/graphicsview/qgraphicsscene.cpp src/gui/graphicsview/qgraphicswidget_p.cpp src/gui/graphicsview/qgraphicswidget_p.h src/gui/util/qsystemtrayicon_win.cpp src/multimedia/audio/qaudioinput.cpp tests/auto/qhostinfo/qhostinfo.pro
| * Workaround for ATI driver bug when using QGraphicsEffect with GL.Kim Motoyoshi Kalland2010-05-122-5/+6
| | | | | | | | | | | | | | | | | | If you forward declare a shader function which takes a sampler as argument, the shader program will fail to link on ATI cards under Windows. Task-number: QTBUG-10510 Reviewed-by: Trond
| * Fixed QGLPixmapDropShadowFilter on Nvidia hardware.Trond Kjernaasen2010-05-111-4/+5
| | | | | | | | | | | | | | | | There seems to be a driver bug that causes glTexSubImage2D() to not align data correctly when uploading a GL_ALPHA texture. Task-number: related to QTBUG-10510 Reviewed-by: Samuel
| * Fixed an issue with pixmaps not being released correctly in the GL 1 engine.Trond Kjernåsen2010-05-101-0/+5
| | | | | | | | | | | | | | | | | | | | When a pixmap is bound using the texture_from_pixmap extension we retain a reference to the pixmap to stop us destroying it before swapBuffers() or glFlush() is called. The references were not cleared out correctly in the GL 1 engine. Task-number: QTBUG-10529 Reviewed-by: Samuel
* | Limit the lower glyph texture cache size to 16x16 in GL.Trond Kjernåsen2010-05-141-0/+12
| | | | | | | | | | | | | | | | | | | | | | The SGX chip has a limitation regarding FBOs in that it doesn't support FBO sizes that are POT and less than 16 pixels in width/height. Since the FBO we use in the GL glyph cache always mirrors the size of the texture itself, we limit that instead to avoid creating invalid FBOs. Task-number: QTBUG-10645 Reviewed-by: Gunnar
* | Added workarounds for two MBX/SGX specific GL ES bugs/problems.Trond Kjernåsen2010-05-147-18/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | Compile fix on Windows.Kim Motoyoshi Kalland2010-05-121-1/+1
| | | | | | | | Reviewed-by: Trond
* | Remove an unnecessary assert.Trond Kjernåsen2010-05-121-2/+1
| | | | | | | | Reviewed-by: Kim
* | Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into ↵Qt Continuous Integration System2010-05-113-59/+105
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2: (24 commits) Stabilize tst_QColumnView::parentCurrentIndex Really fix tst_QDockWidget::taskQTBUG_9758_undockedGeometry on Linux Fix typos in Elastic Nodes example documentation. Made paint engine texture drawing work in GL ES 2 and updated docs. Opt out of visual-config size checks with extension Fix off-by-one in text layouts and widget size hints on Mac Stabilize tst_QDockWidget::taskQTBUG_9758_undockedGeometry Mark QFileDialog::Options as a Q_FLAGS fix tst_QDockWidget::taskQTBUG_9758_undockedGeometry on Linux Fixed scrolling bugs in widget graphics effect backend. Fixed source pixmap bug in widget graphics effect backend. Fix crash with stylesheet if widget change style in the changeEvent Fix textdrawing under GL on N900. Fixed bug in QIODevice::read after first reading 0 bytes. Fix auto-test failure on Mac/Linux/QWS. Some EGL implementations does not return a EGLNativeDisplayType Fixed the sizing of the dock area with fixed size dock widgets QSortFilterProxyModel: Warning or assert failure Performance issue with QGraphicsItem::ItemClipsChildrenToShape. Fixes crash in QGraphicsItem::mouseMove for untransformable items. ...
| * | 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
| * | Fix textdrawing under GL on N900.Gunnar Sletta2010-05-072-32/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The driver in the N900 doesn't support glCopyTexSubImage or glReadPixels for FBO's that have a GL_ALPHA or POT color attachment. The ifdef'ed code in resize() was a previous attempt to make this work which didn't. We could have changed the texture to be GL_RGBA and changed the texture size to be NPOT, but that would have wasted precious GPU memory and would have been slower, so we waste a bit of system memory instead, by having a QImage copy along with the texture. Reviewed-by: Eskil Reviewed-by: Trond