summaryrefslogtreecommitdiffstats
path: root/src/opengl
Commit message (Collapse)AuthorAgeFilesLines
* Merge commit 'qt/master' into kinetic-graphicseffectBjørn Erik Nilsen2009-08-0710-115/+473
|\ | | | | | | | | | | | | | | | | | | Conflicts: src/gui/graphicsview/graphicsview.pri src/gui/graphicsview/qgraphicsitem.cpp src/gui/graphicsview/qgraphicsitem.h src/gui/graphicsview/qgraphicsitem_p.h src/gui/graphicsview/qgraphicsscene.cpp tests/auto/auto.pro
| * fix warnings on mingw (gcc4.4)Thierry Bastian2009-08-041-2/+3
| | | | | | | | | | | | | | basically reordering members initialization in constructors or fixing singed/unsigned checks. Reviewed-by: Trustme
| * Fix build on X11/EGL without XRenderTom Cooksey2009-08-031-2/+4
| | | | | | | | Reviewed-by: Trustme
| * Add qglpixelbuffer_p.h to opengl.pro so Creator finds itTom Cooksey2009-08-031-0/+1
| | | | | | | | Reviewed-By: Trustme
| * Merge branch 'texture_from_pixmap'Tom Cooksey2009-07-304-93/+330
| |\
| | * Fix build on Solaris x86 with old Mesa glx headersTom Cooksey2009-07-291-5/+8
| | |
| | * Support EGL_NOKIA_texture_from_pixmap on HarmattanTom Cooksey2009-07-291-8/+163
| | | | | | | | | | | | | | | Added QGLContextPrivate::bindTextureFromNativePixmap() implementation for X11/EGL.
| | * Refactor texture_from_pixmap to not re-create the gl surface each bindTom Cooksey2009-07-294-88/+151
| | | | | | | | | | | | | | | | | | | | | | | | Make a clear seperation between the GL texture and the GLX pixmap. A GLXPixmap is valid in any GL context and thus does not need to be re-created every time the pixmap has changed. Reviewed-By: Samuel
| | * Refactor QImage/QPixmap cleanup hooks into a seperate classTom Cooksey2009-07-282-6/+22
| | | | | | | | | | | | | | | | | | | | | The new class alows more than one hook to be installed at a time and, for QPixmaps, the hook is told which pixmap is getting deleted. Reviewed-By: Samuel
| * | Unit tests and bug fixes for QGLColormapRhys Weatherley2009-07-301-7/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QGLColormap::setEntry() was inserting entries instead of replacing them; QGLColormap::setEntries() had an incorrect assert and weird behaviour for the "base". The documentation for QGLColormap::isEmpty() has been updated to reflect that it will also report empty if the colormap has not been set on a QGLWidget even if it has entries in it. This behaviour is required by existing code. Reviewed-by: Rohan McGovern
| * | qdoc fix: stencil buffer is enabled by default, not disabledRhys Weatherley2009-07-301-2/+2
| | | | | | | | | | | | | | | | | | | | | Stencil buffer has been enabled by default for quite some time (2 years) but the documentation was still saying disabled. Reviewed-by: bnilsen
| * | Optimized single-rect clip case in OpenGL 2 paint engine.Samuel Rødal2009-07-292-17/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | | Use scissor based clipping when only dealing with rectangular intersect clips. As soon as we get any more complex clips (or unite/replace clips) we fall back to depth buffer based clipping. Task-number: 258748 Reviewed-by: Tom
| * | Port of Qt to VxWorksRobert Griebl2009-07-292-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes Qt work on VxWorks 6.6+ in native (kernel) mode. * compiles with the WindRiver GNU toolchain (Linux only) * works with QWS (tested with the VNC driver only) * tested on PPC hardware and the x86 VxWorks simulator * no q3support, no phonon, no webkit * no QSharedMemory, no QSystemSemaphore, no QProcess * only one QApplication instance (flat address space) * filesystem support depends heavily on the quality of the native driver * QLibrary is just a dummy to make plugins work at all * qmake transparently creates VxWorks munching rules for static ctors * made auto-test cope with missing OS features A special note regarding the Q_FOREACH patch for dcc: when calling foreach(a,c) with c being a function returning a container, the compiler would generate 5 references to some labels (.LXXXX), which are not there (so the linker complains in the end). Seems like dcc doesn't really like the 'true ? 0 : <function call to get type>' statement Reviewed-By: Harald Fernengel
| * | Fixed incorrect QGLFramebufferObject documentation.Samuel Rødal2009-07-281-1/+4
| |/ | | | | | | Reviewed-by: Gunnar Sletta
| * Disable Texture-From-Pixmap on everything other than LinuxTom Cooksey2009-07-281-1/+6
| |
| * Fix build on SolarisTom Cooksey2009-07-271-2/+5
| | | | | | | | | | Solaris seems to define glXReleaseTexImageEXT rather than let it be resolved as a function pointer.
| * Really, really fix HPUX this timeTom Cooksey2009-07-271-1/+1
| | | | | | | | | | | | The conditionals were the wrong way round. Reviewed-By: Samuel
| * Add an ARGB check for EGL-provided X visualsTom Cooksey2009-07-241-3/+20
| | | | | | | | | | | | | | | | Don't just assume they're going to be ARGB just because the config has an alpha channel. This makes QGLWidgets with WA_TranslucentBackground set work again on the rx71 when running under xcompmgr. Reviewed-By: Trustme
| * Fix build on HPUXTom Cooksey2009-07-241-0/+2
| | | | | | | | Reviewed-By: Trustme
* | QGraphicsShaderEffect doesn't need to be a metatype any moreRhys Weatherley2009-07-291-2/+0
| | | | | | | | Reviewed-by: trustme
* | Merge branch 'kinetic-graphicseffect' of ↵Bjørn Erik Nilsen2009-07-293-7/+7
|\ \ | | | | | | | | | git@scm.dev.nokia.troll.no:qt/kinetic into graphicseffects
| * | Fixed various valgrind-reported issues in GL 2 engine.Samuel Rødal2009-07-293-7/+7
| | |
* | | Conflicts after merge commit 07c2b17276057a8b47c3be57ab7c2cf66dac0eddBjørn Erik Nilsen2009-07-292-22/+16
|/ / | | | | | | Makes QGraphicsShaderEffect compatible with the new QGraphicsEffect API.
* | Improve GL filter performance by caching custom shader programs.Samuel Rødal2009-07-282-10/+19
| | | | | | | | This brings performance back up to where it was pre-merge.
* | Merge commit 'qt-graphics-team/pixmapfilters-redux' into kinetic-graphicseffectSamuel Rødal2009-07-2810-77/+453
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/opengl/gl2paintengineex/qglengineshadermanager.cpp src/opengl/gl2paintengineex/qglengineshadermanager_p.h src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h Merge custom shader / GL blur pixmap filter implementation from graphics team repo with implementation from kinetic graphics-team repo.
| * | Further optimized the GL blur filter by caching the QGLShader.Samuel Rødal2009-07-022-4/+9
| | |
| * | Fixed GL blur filter to handle painter translates and larger FBO sizes.Samuel Rødal2009-07-021-1/+17
| | |
| * | Made GL blur filter use the new FBO pool for improved performance.Samuel Rødal2009-07-021-12/+16
| | |
| * | Refactored the GL QPixmap backend to use an FBO pool class.Samuel Rødal2009-07-022-41/+106
| | | | | | | | | | | | | | | The FBO pool will be useful in other places as well, plus it makes it easier to deal with graphics memory management issues.
| * | Added caching of custom shader programs as well in GL 2 shader manager.Samuel Rødal2009-07-012-15/+32
| | | | | | | | | | | | | | | Ensures that the programs are evicted from the cache when the shaders are destroyed.
| * | Added QPixmapBlurFilter with GL implementation.Samuel Rødal2009-06-301-1/+255
| | | | | | | | | | | | | | | No raster engine based fallback so far... Also, performance is lacking since the QGLShaderProgram isn't cached.
| * | Added missing createPixmapFilter() implementation in GL 2 engine.Samuel Rødal2009-06-302-0/+10
| | |
| * | Added drawTexture function to GL 2 paint engine.Samuel Rødal2009-06-302-1/+17
| | | | | | | | | | | | Works just like drawImage / drawPixmap but uses the given texture id.
| * | Added custom shader hook to the GL 2 paint engine.Samuel Rødal2009-06-305-24/+107
| | | | | | | | | | | | | | | This will make it easier to implement pixmap filters, YUV->RGB conversions, etc in other parts of Qt.
* | | Update QGraphicsShaderEffect to match new APIRhys Weatherley2009-07-242-32/+37
| | |
* | | Reset shader stage variables when the custom shader is explicitly removed.Rhys Weatherley2009-07-241-0/+2
| | |
* | | Implement QGraphicsShaderEffect for custom shader-based effectsRhys Weatherley2009-07-243-0/+413
| | |
* | | Make it easier to change custom shaders.Rhys Weatherley2009-07-244-0/+26
| | |
* | | Make ordinary shaders work again after custom shader changes.Rhys Weatherley2009-07-241-7/+7
| | |
* | | Actually add the files... :-)Tom Cooksey2009-07-232-0/+196
| | |
* | | Initial stab at a custom shader stage APITom Cooksey2009-07-235-56/+133
| |/ |/|
* | Fix build on HarmattanTom Cooksey2009-07-231-1/+1
| | | | | | | | Reviewed-By: Trustme
* | Add texture_from_pixmap defines for systems without themTom Cooksey2009-07-231-0/+19
| | | | | | | | | | | | | | This fixes the build on older Solaris machines which don't have the GLX_EXT_texture_from_pixmap defines in glxext.h. Reviewed-By: Trustme
* | Fix build on MacTom Cooksey2009-07-222-8/+28
| | | | | | | | | | | | | | | | | | The texture_from_pixmap patch removed a bindTexture overload from QGLContextPrivate which is actually needed by all architectures. It was just it's use in the mac compat methods which broke the build and highlighted the issue. Reviewed-By: Trustme
* | Plug a texture leak when deleting QPixmaps without a current contextTom Cooksey2009-07-222-16/+9
| | | | | | | | | | | | | | | | | | ~QGLTexture wouldn't make the texture's context current if the current context was zero, meaning the texture would leak. This also means deleteBoundPixmap doesn't need to make the context currnet anymore (as it's only called from ~QGLTexture). Reviewed-By: Kim
* | Use texture_from_pixmap on X11 & avoid copiesTom Cooksey2009-07-228-174/+422
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The patch tries to use texture_from_pixmap extentions on glX to properly bind an X Pixmap to a texture in QGLContextPrivate::bindTexture(QPixmap,). Because GL & X have different coordinate systems, the pixmap will be inverted about the y-axis. The extension does however allow a GLX_Y_INVERTED_EXT attribute to be set which will bind the pixmap the correct way up. If the underlying driver doesn't support this, texture_from_pixmap can't be used for QGLContext::bindTexture, because that function expects the resulting texture to be the right way up. However, it can still be used internally by the paint engine for drawPixmap operations. For these cases, if the pixmap is inverted, the paint engine can simply invert the texture coords to compensate. This is why this patch also moves QGLTexture into qgl_p.h. QGLContextPrivate::bindTexture(QPixmap,) now returns a QGLTexture which the paint engine can inspect to see if it needs to invert the texture coords. Finally, it seems on some (probably all) drivers, deleting an X pixmap which has been bound to a texture before calling glFinish/swapBuffers renders garbage. Presumably this is because X deletes the pixmap behind the driver's back before it's had a chance to use it. To fix this, we reference all QPixmaps which have been bound to stop them being deleted and only deref them after we swap the buffer, when they can be safely deleted. Reviewed-By: Kim
* | Fixed compile with -qtnamespace and MSVC.Rohan McGovern2009-07-221-1/+2
| | | | | | | | | | When an extern function is declared in the scope of another function, MSVC sometimes ignores the enclosing namespace {}.
* | Fixed opacity bug in the GL2 paint engine.Kim Motoyoshi Kalland2009-07-211-0/+1
| | | | | | | | | | | | | | When premultiplying a color with the opacity, the color's alpha channel was not set correcly. Reviewed-by: Tom
* | Fixed gradient bug in the GL2 paint engine.Kim Motoyoshi Kalland2009-07-211-3/+3
| | | | | | | | | | | | | | Texture filtering was set before binding the texture, so the gradient spread was not set correctly. Reviewed-by: Tom
* | Corrected the value of GL_MAX_SAMPLES_EXT.Kim Motoyoshi Kalland2009-07-211-1/+1
| | | | | | | | Reviewed-by: Tom