summaryrefslogtreecommitdiffstats
path: root/src/opengl
Commit message (Collapse)AuthorAgeFilesLines
* Hot fix for compilation without QGL_USE_TEXTURE_POOLJani Hautakangas2011-03-151-0/+2
| | | | Reviewed-by: TRUSTME
* Initial implementation of GLES2.0 resource poolingJani Hautakangas2011-03-1512-17/+1467
| | | | | | | | | 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
* Don't use EGL surfaces for translucency with 32MB GPU chip.Jani Hautakangas2011-03-101-0/+12
| | | | | | | | | | | Add dynamic GPU chip detection on Symbian to decide if translucent EGL surfaces can be used. With 32MB GPU memory there is not enough memory to create for example transparent video overlay widgets and that's why hw surfaces must not be used. Task-number: QTBUG-18024 Reviewed-by: Jason Barron
* Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public into ↵Qt Continuous Integration System2011-02-264-70/+266
|\ | | | | | | | | | | | | | | | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public: Update QtOpenGL def files Fix extern usage in qpixmapdata_gl.cpp Fix for loading QPixmaps from file in GL graphics system Fix code style in qgl_symbian.cpp QPixmap::to/fromSymbianCFbsBitmap() in OpenGL graphics system. Use the 'convertInPlace' versions of QImage in QGLPixmapData load. Recreate GL surface when native window is resized on Symbian
| * Fix extern usage in qpixmapdata_gl.cppJani Hautakangas2011-02-251-1/+1
| | | | | | | | | | | | | | 'extern' is insufficient for linking on DLL-based platforms that use ELF binaries. Reviewed-by: TRUSTME
| * Fix for loading QPixmaps from file in GL graphics systemJani Hautakangas2011-02-251-22/+22
| | | | | | | | | | | | | | | | | | QPixmap::load fails if extension (.png) is left out from given filename when loading a pixmap. QPixmap should try loading with all supported formats. Task-number: QTBUG-17328 Reviewed-by: Samuel Rødal
| * Fix code style in qgl_symbian.cppJani Hautakangas2011-02-251-4/+4
| | | | | | | | Reviewed-by: TRUSTME
| * QPixmap::to/fromSymbianCFbsBitmap() in OpenGL graphics system.Jani Hautakangas2011-02-252-0/+119
| | | | | | | | | | | | | | | | | | Implementation of Symbian specific conversion functions for converting Symbian native bitmap to QPixmap and QPixmap to Symbian native bitmap. Task-number: QTBUG-16977 Reviewed-by: Jason Barron
| * Use the 'convertInPlace' versions of QImage in QGLPixmapData load.Jani Hautakangas2011-02-252-34/+83
| | | | | | | | | | | | | | | | Change QGLPixmapData load functions to use 'convertInPlace' versions of QImage to save memory. Task-number: QTBUG-17256 Reviewed-by: Samuel Rødal
| * Recreate GL surface when native window is resized on SymbianJani Hautakangas2011-02-251-13/+41
| | | | | | | | | | | | | | | | Symbian doesn't automatically resize EGL surface when native window is resized. Task-number: QTBUG-15249 Reviewed-by: Jørgen Lind
* | Fixed tst_qpixmap::toImageDeepCopy autotest for GL graphicssystem.Samuel Rødal2011-02-091-0/+6
| | | | | | | | | | | | We need to copy the image if painting is active. Reviewed-by: Jani Hautakangas
* | Fixed missing text when using static text items in GL 2 engine.Samuel Rødal2011-02-023-5/+14
|/ | | | | | | | | | | | | | | When the context is destroyed and recreated, we end up with a new glyph cache, but we only recreate the vertex arrays for the very first static text item. We need to keep track of the glyph cache in each text item, so that we can recreate the vertex arrays and re-populate the cache accordingly. As the pointer might be the same after the glyph cache is recreated, we need to use serial numbers instead. We also need to re-create the cache when the context pointer has been invalidated, so that the static text items also get invalidated, and the texture glyph cache gets repopulated. Reviewed-by: Eskil Abrahamsen Blomfeldt
* Fix static build on Windows with MinGW.Mark Brand2011-01-176-12/+12
| | | | | | | | | | | | | | | | | Q_DECL_IMPORT is still __declspec(dllimport), which is unsuitable for static code. Commit edbc656b changed Q_DECL_IMPORT_IMPORT to Q_CORE_EXPORT when declaring QtCore functions in svg. Now we change Q_DECL_IMPORT to Q_GUI_EXPORT when declaring QtGui functions into opengl and openvg. Also removed the redundant keyword "extern" from the function declarations. Merge-request: 2540 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Reviewed-by: mariusSO
* Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into ↵Qt Continuous Integration System2011-01-1072-73/+73
|\ | | | | | | | | | | | | | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1: QFont/Windows: restrict the pixel size accuracy Update copyright year to 2011. For non-developer builds, skip test that requires private API tst_qhttpnetworkconnection: Compile fix Change QHostInfoCache to use QElapsedTime instead of QTime. Fix for qtdemo bug
| * Update copyright year to 2011.Jason McDonald2011-01-1072-73/+73
| | | | | | | | Reviewed-by: Trust Me
* | Merge branch 'graphics-team-text-4.7' into 4.7Eskil Abrahamsen Blomfeldt2011-01-101-4/+0
|\ \ | |/ |/|
| * Fix regression in text rendering in OpenGL2 engineEskil Abrahamsen Blomfeldt2011-01-051-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change 532115bcaa370af827a5cbad017b272842c5aacf introduced a regression by fixing a typo in the QT_OPENGL_ES_2 macro. This caused a broken and untested code path to be used in the GLES2 case. Since the QImage scanlines are 32 bit aligned, QImage::width() cannot be used when copying the data. Rather than pass in bytesPerLine() to the GL function, I opted to revert to the proven behavior, where the pad bytes are never read by GL but each scanline is copied separately, to avoid further regressions on different hardware. This also seems like the more correct approach, as the pad bytes should ideally not be copied into the cache texture. Reviewed-by: Samuel
* | Restored old flushing behavior in -graphicssystem opengl on desktop.Samuel Rødal2011-01-071-3/+4
| | | | | | | | | | | | | | | | | | | | Change 284211ccbd2cbd recently introduced a fix for EGL, to prevent flushing when nothing has been rendered into the back buffer. However, the skip should only be done when there's no partial update support in the window surface. If there is partial update support we can still flush as usual. Reviewed-by: Gunnar Sletta
* | Support for swap modes in QGLWindowSurface.Michael Dominic K2011-01-042-1/+15
| | | | | | | | | | | | | | | | AlwaysFull and AlwaysPartial implemented in ES only for now. By default do automatic. Merge-request: 993 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* | Add work around for bug when painting w/glTexSubImage into large textureEskil Abrahamsen Blomfeldt2010-12-164-1/+8
|/ | | | | | | | | | | | | | 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 '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into ↵Qt Continuous Integration System2010-12-151-4/+7
|\ | | | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2: Don't delete FBO when resetting glyph cache
| * Don't delete FBO when resetting glyph cacheEskil Abrahamsen Blomfeldt2010-12-141-4/+7
| | | | | | | | | | | | | | | | | | | | When the glyph cache is cleared because the max texture size has been exceeded, we shouldn't delete the fbo as this is only created in setContext() and will thus not be recreated. All subsequent resizing of the cache will fail. Task-number: QT-3971 Reviewed-by: Samuel
* | Trivial: Fix coding styleHarald Fernengel2010-12-141-1/+1
| | | | | | | | Fix coding style of merge request
* | Prevent ::flush from being called on QGLWindowSurface if no painting happened.Michael Dominic K2010-12-141-0/+13
|/ | | | | | Merge-request: 2527 Reviewed-by: Harald Fernengel <harald.fernengel@nokia.com> Reviewed-by: Samuel Rødal
* Fixed GL 2 engine rendering of images / pixmaps above max texture size.Samuel Rødal2010-12-132-5/+49
| | | | | | | | Down-scale images or pixmaps that are above the max texture size. Not optimal performance-wise, but better than failing. Task-number: QTBUG-16033 Reviewed-by: Eskil Abrahamsen Blomfeldt
* Missing glyphs in GL when scaling QStaticText and QML text itemsEskil Abrahamsen Blomfeldt2010-12-101-5/+13
| | | | | | | | | | | | | Since scaled text is backed by an A8 glyph cache, it needs to repopulate even if it has previously populated the cache for the unscaled text. This means that we need to record in the userData that the type of the cache is not the same as the last time. Otherwise the A8 version of the cache will only be updated when it's created and when the text actually changes, leading to glyphs missing on screen when zooming text using a scale. Task-number: QTBUG-16012 Reviewed-by: Gunnar
* Try using pure scissor clip in GL 2 engine for rotations.Samuel Rødal2010-12-091-1/+5
| | | | | | | | As long as the final clip area is rectangular and axis aligned we can use a scissor clip. This prevents performance problems when doing 90-degree rotated rectangle clips. Reviewed-by: Bjørn Erik Nilsen
* Fixed missing text in GL 2 engine after recreating a context.Samuel Rødal2010-12-091-1/+3
| | | | | | If we recreate the texture glyph cache, we also need to repopulate. Reviewed-by: Eskil Abrahamsen Blomfeldt
* Check Qt::WA_TranslucentBackground instead of custom widget property.Michael Dominic K2010-12-081-12/+5
| | | | | Merge-request: 2523 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Support for 'qglTranslucent' in QGLWindowSurface.Michael Dominic K2010-12-081-1/+19
| | | | | Merge-request: 2523 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Fix text disappearing on GL when RGB-path is taken (no transformation)Eskil Abrahamsen Blomfeldt2010-12-071-8/+11
| | | | | | | | | | | | | When there is no transformation on a glyph in the GL texture glyph cache, it will take the RGB code path to support subpixel antialiasing. In this code path we would ask glTextImage2D() to convert from a GL_ALPHA buffer to an internal format of GL_RGBA. This is not supported on OpenGL ES 2, and would cause missing text for some drivers. The change also fixes a typo in an #ifdef. Task-number: QTBUG-15789 Reviewed-by: Kim
* Fix warning about %x parameter type mismatch in EGLThiago Macieira2010-11-261-1/+1
|
* 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.
* Fix warnings related to unused variables.Thiago Macieira2010-11-262-2/+0
| | | | | | | Just add some Q_UNUSED for parameters or remove the variable we don't need for the others. Reviewed-by: Trust Me
* Fix a build break when namespace is definedMiikka Heikkinen2010-11-221-17/+17
| | | | Reviewed-by: Jani Hautakangas
* Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public into ↵Qt Continuous Integration System2010-11-191-17/+17
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public: (21 commits) Fixed handling of QInputMethodEvents with nonzero replacementLength. Fixed namespace issues related to epocroot.cpp Corrected ASCII comparison and removed extra braces Add symbian scope for qfiledialog_symbian.cpp Resolve EPOCROOT in qt.conf using same logic as in .pro Make epocroot resolving compatible with more build environments Fix for QtOpenGL RVCT4 compilation error Removed extra cpp and done changes based on comments Correct flags for Symbian file dialogs Fix for WServ 64 crash on Symbian. Use include(original mkspec) instead of copying of mkspec to default Fixed code style of d92cbfc5, reported by git push. Switched qdesktopservices to use SchemeHandler for Symbian^3 and later. Removed unnecessary Q_OS_SYMBIAN flags from qdesktopservices_s60.cpp. Documented usage of dialogs on Symbian Native file dialog on Symbian^3 Add Location as self signable capability in patch_capabilities.pl Localize .loc and .pkg content based on TRANSLATIONS Bump Qt version to 4.7.2. SSL: Fix for systemCaCertificates being called first on symbian ...
| * Fix for QtOpenGL RVCT4 compilation errorJani Hautakangas2010-11-181-17/+17
| | | | | | | | | | | | | | | | | | RVCT4 has strict lookup rules. Calls from function ,that depends on a template parameter, to internal static functions must be qualified. Task-number: QTBUG-15424 Reviewed-by: Jason Barron
* | Fix possible corrupted text when gl glyph cache becomes fullEskil Abrahamsen Blomfeldt2010-11-193-3/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the OpenGL glyph cache filled up (the max texture size on the hardware was exceeded) the characters would be drawn as black blocks instead. As a work-around for this, the cache will now be cleared and repopulated whenever this happens, meaning that once in a while (when a lot of different glyphs have been drawn in a font) there will be a performance hit. A more complete solution is described in QTBUG-13784, but this requires so much refactoring that it was deemed too risky for a patch release. This patch fixes the problem with a small penalty and low risk. Task-number: QT-3971 Reviewed-by: 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
* | Prevent crash in GL 2 engine when stroking null rectangle.Samuel Rødal2010-11-171-0/+3
| | | | | | | | | | Task-number: QTBUG-15320 Reviewed-by: Kim
* | Fix possible missing glyphs in text when using GL engineEskil Abrahamsen Blomfeldt2010-11-163-2/+24
|/ | | | | | | | | | | | | | | If you create/destroy gl contexts a lot, you may sometimes get a new context with the same pointer as a destroyed context. When you look up the glyph cache in the font engine using the context pointer as a key, you will then get a glyph cache which contains no valid data. We need to reset the glyph cache completely in this case and set up bindings for the new context so that the glyph cache can be repopulated and reused. Note that there is a different solution for this in Qt 4.8, so this is temporary solution for the Qt 4.7.x series. Task-number: QT-4162 Reviewed-by: Fabien Freling
* Remove driver bug work-around from GL 2 paint engine.Samuel Rødal2010-11-121-5/+0
| | | | | | | For platforms where the driver bug isn't fixed, the work-around should be done by packagers instead. Reviewed-by: Gunnar Sletta
* Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into ↵Qt Continuous Integration System2010-11-111-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1: remove pointless assignment of deprecated variable fix tst_headers Fixed a shell syntax error in configure Clear X11 structure before use Make operator QRectF const Fix GC-related crash in QScriptValue::setData() get rid of dependency on QtGui Removed implicity QtGui linking from icd.pro as it is not needed. DFB: Make sure QPixmap::hasAlpha is respected fix build on mingw Fix some painting issues in QDirectFBPaintEngine QNAM: Do not need QNetworkSession in AlwaysCache load mode Don't crash if QScriptClass property getter returns an invalid value QNAM: Remove dead waitForUpstreamBytesWritten() code QNAM: Remove dead waitForDownstreamReadyRead() code fix memleak in test
| * Make operator QRectF constHarald Fernengel2010-11-091-1/+1
| | | | | | | | | | | | | | This allows us to convert a QGLRect to a QRectF also in const functions. Function is inline and private, no ABI break. Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* | Doc: Fixing typoSergio Ahumada2010-11-094-5/+5
| |
* | Prevented race condition on texture destruction.Samuel Rødal2010-11-083-10/+32
| | | | | | | | | | | | | | | | | | | | | | | | 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
* | Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into ↵Qt Continuous Integration System2010-11-054-40/+67
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2: More fix for QTBUG-14640:oci performance problem with qlonglong Doc: Fixing typo Fixed grabWidget sometimes returning uninitialized memory. Fix Malayalam Rendering - 'Ra' is PreBase Update .def files for QtGui and QtOpenVG Use 32bit textures for alpha textures after all. One more fix for dithering. Doc: Fixing typo Fix QTBUG-14640:oci performance problem with qlonglong 32bit => 16bit conversion has 4byte-aligned output. Fix gcc bug in qReallocAligned Prevented threading related crash in OpenGL module. Fix possible crash in QStaticText and QDeclarativeTextLayout Fix QTBUG-14132 oracle (xe) stored procedures with bind variables get errors
| * Prevented threading related crash in OpenGL module.Samuel Rødal2010-10-292-24/+51
| | | | | | | | | | | | | | | | | | | | | | | | 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
| * Fix possible crash in QStaticText and QDeclarativeTextLayoutEskil Abrahamsen Blomfeldt2010-10-292-16/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | The QStaticTextItem held an uncounted reference to QFontEngine. The pointer would dangle in some cases where there was no font object referencing the engine and the cache was cleaned out (e.g. when a new application font is added.) Properly count the reference, and also add reference counting to userData to make it harder to shoot yourself in the foot, since the QStaticTextItem class is now being used in different places, Task-number: QTBUG-14446 Reviewed-by: Martin Jones
* | Prevent access to non-existent memory in QGL2PEXVertexArrayTopi Reiniö2010-11-041-2/+3
|/ | | | | | | | | | | | | QGL2PEXVertexArray::addClosingLine() uses using QDataBuffer::add() to add a QPointF at the end, with a const reference to another value in the same array. As add() resizes and possibly relocates the buffer, an already-released memory location may be accessed. This change copies the value into a temporary variable before resizing the array. Task-number: QTBUG-14944 Reviewed-by: Samuel