summaryrefslogtreecommitdiffstats
path: root/src/opengl
Commit message (Collapse)AuthorAgeFilesLines
* 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
* Resubmit support for subpixel antialiasing on text in the GL2 engine.Kim Motoyoshi Kalland2009-09-217-24/+185
| | | | | | | The antialiasing is currently not gamma corrected and is disabled on OpenGL ES 2.0. Reviewed-by: Samuel
* Refactored gl window surface a bit.Gunnar Sletta2009-09-211-37/+43
| | | | | | | | | | | | The logic was a bit messy and didn't work on Mac OS X. On Linux we also had issues with 8xxx nvidia cards which didn't render properly. The FBO is now unbound between calls to beginPaint(), which prevents other gl calls from messing it up, which is probably what was the error in the first place. In addition, on Mac OS X, we also call the upatePaintDevice() as a result of setGeometry() to force-update the dimensions of the context. Reviewed-by: Trond
* Performance: reduce overhead of updateMatrix() in GL2 paint engineRhys Weatherley2009-09-211-32/+45
| | | | | | | | | | | The original code was performing 40 floating-point multiplications, 40 additions, and 2 divisions every time the matrix was changed. Because most of the components in the orthographic projection matrix are trivial, we can implement the same transformation with only 6 multiplications, 6 additions, and 2 divisions. Reviewed-by: Sarah Smith
* Fixed bug in GL pixmap backend (causing missing rendering in lance).Samuel Rødal2009-09-181-1/+5
| | | | | | | Since copyBackFromRenderFbo() manually changes the framebuffer object binding, we also need to update the context's current_fbo member. Reviewed-by: Kim
* Merge branch '4.6' of git@scm.dev.nokia.troll.no:qt/qt into 4.6Gunnar Sletta2009-09-181-0/+1
|\
| * Merge branch '4.6' of scm.dev.nokia.troll.no:qt/qt into 4.6Tom Cooksey2009-09-178-184/+23
| |\ | | | | | | | | | | | | Conflicts: tests/auto/qtwidgets/tst_qtwidgets.cpp
| * | Add a QMAKE_LFLAGS_EGL and QMAKE_LFLAGS_OPENGLTom Cooksey2009-09-171-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When you link cross-compiled applications on Linux, the linker needs to be able to find not just the libraries the application links against (like libQtGui.so), but the libraries' dependencies. E.g. examples/widgets/wiggly links against QtGui. QtGui links against libEGL.so. Therefore, when you link wiggly, the linker has to be able to find libEGL.so, even though wiggly doesn't use EGL directly. To facilitate this, -Wl,rpath-link=/path/to/egl needs to be added to QMAKE_PRL_LIBS in libQtGui.prl and -Wl,rpath-link=/path/to/gl needs to be added to QMAKE_PRL_LIBS in libQtOpenGL.prl. This only needs to be done when the EGL/GL libs are not in the default search directories. As the paths will also change depending on the mkspec, two new variables have been added: QMAKE_LFLAGS_EGL & QMAKE_LFLAGS_OPENGL. These can be set in the mkspec and will be added to the relevent prls. E.g. QMAKE_LFLAGS_EGL += -Wl,-rpath-link=$${QMAKE_LIBDIR_EGL} QMAKE_LFLAGS_OPENGL += -Wl,-rpath-link=$${QMAKE_LIBDIR_OPENGL} Reviewed-by: Marius Storm-Olsen
* | | context()->makeCurrent() is called above, so this is redundant.Gunnar Sletta2009-09-171-2/+0
| |/ |/| | | | | Reviewed-by: Samuel
* | qdoc: QGLContext::drawTexture referring to itself.Rhys Weatherley2009-09-171-4/+0
| |
* | Revert "Added support for subpixel antialiasing on text in the GL2 engine."Rhys Weatherley2009-09-177-180/+23
|/ | | | | | Breaks the GL2 paint engine on X11 and OpenGL/ES 2.0. This reverts commit b8ff02a67ebd8246253823b53cfed98eef400547.
* Make QtOpenGL on X11/EGL less chatty with it's debug outputTom Cooksey2009-09-161-5/+6
| | | | Reviewed-by: Trustme
* Added support for subpixel antialiasing on text in the GL2 engine.Kim Motoyoshi Kalland2009-09-167-23/+180
| | | | | | The antialiasing is currently not gamma corrected. Reviewed-by: Samuel
* Merge branch '4.6' of scm.dev.nokia.troll.no:qt/qt into 4.6Gunnar Sletta2009-09-165-36/+62
|\
| * Reduce overhead of paint engine-specific pixmap filtersRhys Weatherley2009-09-164-19/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Engine-specific pixmap filters were being created, used, and destroyed every time draw() was called on QPixmapColorizeFilter, QPixmapBlurFilter, and so on. This had a heavy performance penalty and made it difficult for the GL paint engine to cache shaders from one request to the next. A generic filter can request an engine-specific filter that matches its parameters. The engine can either create a new one or return a previously allocated filter object. Ownership of engine-specific pixmap filter objects is moved to the paint engine itself. Reviewed-by: Andrew den Exter Reviewed-by: Michael Brasser Reviewed-by: Michael Goddard Reviewed-by: Sarah Smith
| * Only regenerate pixmap filter source if the parameters have changed.Rhys Weatherley2009-09-151-2/+31
| | | | | | | | Reviewed-by: trustme
| * Remove unnecessary definitions in GL pixmap filter code.Rhys Weatherley2009-09-151-5/+0
| | | | | | | | | | | | The code does not use QGLShader directly any more. Reviewed-by: trustme
| * Fix glMatrixMode() arguments for desktop OpenGLRhys Weatherley2009-09-151-2/+2
| | | | | | | | | | | | | | The defines are GL_MODELVIEW/GL_PROJECTION, not GL_MODELVIEW_MATRIX/etc. The _MATRIX defines are for fetching the matrix, not setting it. Reviewed-by: trustme
| * Compilation fix for OpenGL/ES 2.0Rhys Weatherley2009-09-151-0/+2
| | | | | | | | | | | | Matrix functions do not exist under OpenGL/ES 2.0. Reviewed-by: trustme
| * Increased performance of blurpicker example with GL 2 engine.Samuel Rødal2009-09-151-8/+8
| | | | | | | | | | | | | | Slightly increase threshold for when to shrink an FBO, and reduce the number of calls to glBindFramebuffer. Reviewed-by: Tom
* | Fixed glsl warnings on mac and stop using texturecoords when not neededGunnar Sletta2009-09-163-26/+20
| | | | | | | | | | | | | | | | | | | | The setTextureCoordsEnabled was enabled in two places, but never disabled causing it to always be used. When using a varying in a vertex shader and not using it again in the fragment shader this produces a warning, and rightly so. Since the property is 100% detectable based on the fragment shader used, move the logic into the shader selection code and kill the property all together. This should also speed up solid filling a bit...
* | Silenced GLSL compiler warning on Mac OS XGunnar Sletta2009-09-152-1/+5
|/
* Removed GL1 pixmap filters and ported colorize filter to GL2 engine.Samuel Rødal2009-09-153-61/+22
| | | | | | | | The GL1 engine will use the raster fall back for pixmap filters. We anyhow use GLSL for the filters, which requires OpenGL 2 support, and in that case the GL2 engine is the default. Reviewed-by: Gunnar Sletta
* Fixed rendering errors in blurpicker with -graphicssystem openglSamuel Rødal2009-09-152-1/+16
| | | | | | | | | | | | | | | | 1) Need to transfer to brush drawing mode when switching active engine, to make sure we reset the vertex / texture coordinate pointers for image drawing. 2) QGLPixmapGLPaintDevice::beginPaint() was changed to use QGLContext::drawTexture() for blitting the old texture contents to the render FBO, which means that we also need to set up viewport, modelview, and projection matrices, and ensure that clipping / stencil testing is disabled. 3) Make sure stencil testing is disabled when clearing the FBO. Reviewed-by: Tom
* Don't round-trip to GL server for glGetError() in release mode.Rhys Weatherley2009-09-151-1/+10
| | | | | Reviewed-by: Samuel Reviewed-by: Tom Cooksey
* qdoc: Shift snippets in QGLShaderProgram out into doc/src/snippetsRhys Weatherley2009-09-151-49/+3
|
* Really fixed clipping bug in portedcanvas with -graphicssystem opengl.Samuel Rødal2009-09-141-1/+1
| | | | | | | | Change c72eaee91136bbe1a9fa99cdb0a7593bec60264b was wrong, we should call ensureActive(), not syncState(). Task-number: 261113 Reviewed-by: Trond
* Fixed clipping bug in GL 2 engine.Samuel Rødal2009-09-141-0/+1
| | | | | | | | | | | When dumping the rectangle clip to the depth buffer due to needing to intersect with a more complex clip, we didn't take into consideration that writeClip will transform the path by the current matrix, whereas the rectangle clip is in device coordinates. Thus, we need to map the path by the inverse matrix. Task-number: 260701 Reviewed-by: Trond
* Fixed clipping bug in portedcanvas with -graphicssystem openglSamuel Rødal2009-09-141-0/+3
| | | | | | | | | We need to call ensureActive() when save() is called, to make sure systemStateChanged() gets called and updates the scissorTestEnabled flag, so that we don't lose it on the next restore(). Task-number: 261113 Reviewed-by: Trond
* Ensured that we use GL 1 engine when -graphicssystem opengl1 is used.Samuel Rødal2009-09-141-1/+1
| | | | Reviewed-by: Trond
* Merge branch '4.6' of git@scm.dev.nokia.troll.no:qt/qt into 4.6Gunnar Sletta2009-09-141-0/+12
|\
| * Fix drawTiledPixmap for NPOT pixmaps on OpenGL ES 2.0Tom Cooksey2009-09-141-0/+12
| | | | | | | | | | | | | | | | | | OpenGL ES does not support GL_REPEAT wrap modes for NPOT textures. So instead, we emulate GL_REPEAT by only taking the fractional part of the texture coords in the fragment shader. Task-number: 260982 Reviewed-by: Samuel
* | Some small optimizations to gl2 engine.Gunnar Sletta2009-09-142-30/+11
| | | | | | | | | | | | | | | | | | | | Use qpen_ and qbrush_ accessors for slightly better performance and avoid calling for the same value again and again. Secondly, the engine doesn't use its pen and brush states so there is no point in maintaining them, so don't reset old brush all the time. Reviewed-by: Samuel
* | Fixed crash in gl when stroking with a Qt::NoBrush penGunnar Sletta2009-09-141-1/+3
|/ | | | Reviewed-by: Samuel