summaryrefslogtreecommitdiffstats
path: root/src/opengl
Commit message (Collapse)AuthorAgeFilesLines
* Implement the drop shadow filter for OpenGLRhys Weatherley2009-10-052-3/+166
| | | | | Task-number: QTBUG-4583 Reviewed-by: trustme
* Update systemclip based on the correct parametersGunnar Sletta2009-10-051-1/+1
| | | | Reviewed-by: Samuel
* Consistently use QGLShareContextScope for context switchingRhys Weatherley2009-10-054-63/+45
| | | | | | | | QGLShareContextScope is safer and more reliable than trying to manually detect how and when to temporarily switch contexts. Replace the few remaining instances of context-switching with it. Reviewed-by: trustme
* Merge QGLContextReference into QGLContextGroupRhys Weatherley2009-10-042-73/+62
| | | | Reviewed-by: trustme
* Move QGLContextResource management into QGLContextGroupRhys Weatherley2009-10-042-94/+37
| | | | | | | | | Context resources are per-group, so they should be managed by the group. This should also improve performance of context shutdown slightly by removing QGLSignalProxy::aboutToDestroyContext() signal dispatches to the resources. Reviewed-by: trustme
* Add unit tests for QGLContextResourceRhys Weatherley2009-10-041-1/+1
| | | | Reviewed-by: trustme
* Changed implementation of qDrawBorderPixmap() to use qDrawPixmaps().Kim Motoyoshi Kalland2009-10-022-8/+12
| | | | Reviewed-by: Trond
* Added support for drawing a pixmap multiple times in one call.Kim Motoyoshi Kalland2009-10-025-45/+197
| | | | | | | | | This is internal API. It's possible to specify a horizontal and vertical scale, rotation, opacity and source rectangle for each pixmap item. Useful for particle effects. Reviewed-by: Trond
* Merge branch '4.6' of git@scm.dev.nokia.troll.no:qt/qt into 4.6Gunnar Sletta2009-10-0216-438/+440
|\
| * Remove QHash overhead from QGLShareRegisterRhys Weatherley2009-10-022-28/+20
| | | | | | | | | | | | | | Move the list of shared contexts from QGLShareRegister into QGLContextGroup. There is then no need for the QHash. Reviewed-by: trustme
| * Remove unnecessary reference to QGLContextGroup::extensionFuncs()Rhys Weatherley2009-10-021-2/+0
| | | | | | | | Reviewed-by: Andrew den Exter
| * Remove unnecessary function definition: qt_qgl_egl_display()Rhys Weatherley2009-10-011-2/+0
| | | | | | | | | | | | The qt_qgl_egl_display() function no longer exists. Reviewed-by: trustme
| * Fix BadDrawable errors when re-parenting a QGLWidget on X11/EGLTom Cooksey2009-10-011-2/+13
| | | | | | | | | | | | | | | | | | | | It's actually not really reparenting, but calling setWindowFlags which triggered the errors. But setWindowFlags causes a re-parent. The context isn't really the right please to free the surface, but fixing that is a much more intrusive change. Reviewed-By: TrustMe
| * Refactor retrieving the X11 visual for EGLEskil Abrahamsen Blomfeldt2009-10-011-74/+84
| | | | | | | | | | | | | | | | | | We need this in qwindowsurface_gl.cpp. This patch was modified slightly by Tom, who stole it from another branch. :-) Reviewed-by: Gunnar
| * Doc: Mark new overloads with \since 4.6.Volker Hilsheimer2009-10-011-1/+6
| |
| * Fix warnings on mingwThierry Bastian2009-10-011-0/+1
| | | | | | | | Reviewed-by: trust me
| * Split EGL config selection & surface creation into seperate functionsTom Cooksey2009-10-011-73/+102
| | | | | | | | | | This is needed to implement render-to-pixmap on x11/EGL, which will also need to create an EGL surface for pixmaps.
| * QGLContext::areSharing() to check for GL share relationshipsRhys Weatherley2009-10-016-19/+29
| | | | | | | | Reviewed-by: Samuel
| * Add unit tests for QGLShareRegisterRhys Weatherley2009-10-011-1/+1
| | | | | | | | Reviewed-by: Sarah Smith
| * Use QGLSharedResourceGuard to track contexts in the shader managerRhys Weatherley2009-10-012-5/+5
| | | | | | | | Reviewed-by: Sarah Smith
| * Make QGLFramebufferObject crash-proof if QGLContext destroyed firstRhys Weatherley2009-10-012-26/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Sometimes it isn't possible to arrange for the QGLFramebufferObject to be destroyed before the QGLContext group in which it was created. Especially during application shutdown or in applications with multiple shared contexts. This change modifies QGLFramebufferObject to use QGLSharedResourceGuard, which ensures that when the last QGLContext in a sharing group is destroyed, any remaining FBO's will revert to !isValid(). It is now safe to destroy the context before the FBO, or the FBO before the context. Unit test included. Reviewed-by: Sarah Smith
| * Add Qt::RenderHint to control rendering operations.Bjørn Erik Nilsen2009-09-301-9/+9
| | | | | | | | | | | | | | | | | | | | | | We need a way to control various rendering operations. For example, whether quality is more important than performance, or the other way around. This change also replaces occurences of QPixmapFilter/QGraphicsEffect::BlurHint (introduced in 1a431e850893b6b162c833f4f148f090e2427dda) with Qt::RenderHint. Reviewed-by: Samuel
| * Fix a memory leak of EGLSurface's in QGLContextRhys Weatherley2009-09-301-2/+4
| | | | | | | | Reviewed-by: Julian de Bhal
| * Convert OpenGL convolution filter to OpenGL2 paint engineRhys Weatherley2009-09-301-120/+59
| | | | | | | | | | | | | | The convolution filter was still using the old-style OpenGL1 method for interfacing to the paint engine. Reviewed-by: trustme
| * Make QPF's implementation of alphaMapForGlyph() consistent.Rhys Weatherley2009-09-291-16/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The QPF implementation of alphaMapForGlyph() was returning color values of RGBA = (a, a, a, 255) instead of (0, 0, 0, a), which was inconsistent with all the other font engines. This inconsistency caused some QPF-specific workarounds in the OpenGL and OpenVG paint engines. This change removes the workarounds and makes QPF generate the right colors from the start. Paint engines that ignore the color table or which don't use the alphaMapForGlyph() function (e.g. raster) are not affected. Reviewed-by: Paul
| * Fix EGL/GLX surface leak when using texture-from-pixmapTom Cooksey2009-09-291-3/+2
| | | | | | | | | | | | | | | | | | The QScopedPointer changes mean that the pixmap data's reference count is now decremented after the cleanup hooks are called. The hooks should also only be called when the pixmap data gets deleted, so we don't actually have to check the reference count at all. Reviewed-by: TrustMe
| * Use glXGetProcAddress to resolve glx extensionsTom Cooksey2009-09-292-57/+68
| | | | | | | | | | | | | | | | | | | | | | | | On systems where the GL driver is pluggable (like Mesa), we have to use the glXGetProcAddressARB extension to resolve other function pointers as the symbols wont be in the GL library, but rather in a plugin loaded by the GL library. This fix basically makes texture-from-pixmap work on Mesa drivers like intel i915 & friends. Reviewed-by: Trond
* | Make 16-bit graphicssystem opengl workGunnar Sletta2009-10-022-1/+17
| | | | | | | | Reviewed-by: Eskil
* | Added timings to the QGL_BIND_TEXTURE_DEBUG debug outputsGunnar Sletta2009-10-021-8/+20
| | | | | | | | Reviewed-by: TrustMe
* | Explicitely check for alpha pixels before creating an alpha GL pixnmapGunnar Sletta2009-10-021-6/+15
|/ | | | Reviewed-by: Samuel
* Fixed a crash in the boxes demo when using -graphicssystem opengl.Trond Kjernaasen2009-09-283-2/+8
| | | | | | | | | | | | Several problems: 1. The demo leaked the scene contents, which caused cleanup problems. 2. The QGLContext::currentContext() could be changed behind Qt's back under Windows (the temp contexts never reset the current context). 3. QGLFormat::openGLVersionFlags() function would return uninitialized flags if the QGLWidget constructor happened to call qt_gl_preferGL2Engine(). Reviewed-by: Kim
* Suppress some compiler warnings that occur under OpenGL/ES 2.0Rhys Weatherley2009-09-282-0/+6
| | | | Reviewed-by: trustme
* QGLContext::drawTexture() is not supported under OpenGL/ES 2.0Rhys Weatherley2009-09-281-2/+15
| | | | Reviewed-by: trustme
* ifdef out convolution filter for OpenGL/ES 2.0Rhys Weatherley2009-09-281-2/+14
| | | | | | | | Convolution filter is not compatible with OpenGL/ES 2.0 in its current form, and we probably don't need it now that we have a special-purpose blur filter. Reviewed-by: trustme
* Make the GL graphics system work under OpenGL/ES 2.0Rhys Weatherley2009-09-281-4/+69
| | | | | | | Very basic port of the graphics system - performance may not be the best just yet. Reviewed-by: Sarah Smith
* qdoc fixes to QGLFramebufferObject::blitFramebuffer()Rhys Weatherley2009-09-281-6/+11
|
* Fixed crash with QPixmap::fill() when pixmap is painted to using opengl1Gunnar Sletta2009-09-251-9/+17
| | | | Reviewed-by: Samuel
* Added #define to GL 2 paint engine to turn off scissor testing.Samuel Rødal2009-09-251-15/+27
| | | | Reviewed-by: Gunnar Sletta
* Move common EGL functions to qgl_egl.cppRhys Weatherley2009-09-254-112/+37
| | | | | | | | There were several copies of the same stubbed functions in qgl_wince.cpp, qgl_qws.cpp, and qgl_x11egl.cpp. Move them all to a common location for easier maintainence. Reviewed-by: Sarah Smith
* Remove the storage of the EGLSurface from QEglContextRhys Weatherley2009-09-254-20/+21
| | | | Reviewed-by: Sarah Smith
* Start to separate the EGLSurface from QEglContext in QtOpenGLRhys Weatherley2009-09-247-163/+63
| | | | | | | Also, move the EGL makeCurrent(), doneCurrent(), swapBuffers(), and reset() functions into the common qgl_egl.cpp. Reviewed-by: Sarah Smith
* Added BlurType to blur graphics effect API.Samuel Rødal2009-09-241-10/+10
| | | | | | | | This lets the user control whether to use a fast dynamic blur when animating the radius of the blur for example, or to use a static high quality blur for one-time or constant radius blurring. Reviewed-by: Gunnar Sletta
* Prevented crash in svgviewer in graphics system OpenGL with QGLWidget.Samuel Rødal2009-09-241-0/+2
| | | | | | | Need to make sure the correct context is current when painting on the window surface FBO. Reviewed-by: Kim
* Made fast blur in GL 2 engine be radius independent.Samuel Rødal2009-09-242-140/+97
| | | | | | | | | | | This is useful when animating the blur radius, as you don't want to suffer the hit of compiling / linking a new shader program for each radius the first time the animation is played. Also use the fast blur when the radius is 5 or below, as the quality difference is insignificant. Reviewed-by: Rhys Weatherley
* Added a comment to clarify the purpose of a piece of code.Trond Kjernåsen2009-09-231-1/+1
| | | | Reviewed-by: Trust Me
* Fixed a warning.Trond Kjernåsen2009-09-221-0/+2
| | | | Reviewed-by: Kim
* Fixed text drawing in the GL2 engine after sub-pixel hinting was added.Trond Kjernåsen2009-09-222-19/+29
| | | | | | | | | | 1. The mono format was not handled at all. 2. We really, really wanted to use sub-pixel hinted glyphs even when they were not available. 3. The glyphFormat type in the FT font engine wasn't updated to reflect the correct system glyph type. Reviewed-by: Kim
* Resubmit support for subpixel antialiasing on text in the GL2 engine.Kim Motoyoshi Kalland2009-09-227-24/+185
| | | | | | | The antialiasing is currently not gamma corrected and is disabled on OpenGL ES 2.0. Reviewed-by: Samuel
* Revert "Resubmit support for subpixel antialiasing on text in the GL2 engine."Rhys Weatherley2009-09-217-185/+24
| | | | This reverts commit 1b34feacef7a2d3ac005449a7cfbcb08a6bbf947.
* Optimized GL2 engine to use scissor clipping more aggressively.Samuel Rødal2009-09-212-95/+72
| | | | | | | | | | | | | | | | There's no reason to stop using a scissor clip when a more complex clip is set. Instead, we can use a combination of scissoring and depth clipping to represent the final clip. When intersecting with a new clip path, if the clip path is a rectangle we simply intersect it against the scissor clip, and otherwise we intersect its bounding rect against the scissor clip and write the actual path to the depth buffer. The patch simplifies the logic in clip() quite a bit, except in the UniteClip case in which we don't care about performance anyways. It also fixes a bug which could cause rendering errors if the stencil buffer contains junk before painting. Reviewed-by: Gunnar Sletta