| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Reviewed-by: Trond
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We add an internal cache which keeps four half-scaled versions of the
source pixmap at different blur radii, then we simply interpolate
between the two pixmaps around the desired blur radius, or between the
base source pixmap and the first blurred version.
Reviewed-by: Gunnar Sletta
|
| |
| |
| |
| | |
Reviewed-By: Samuel
|
|/
|
|
| |
Reviewed-by: TrustMe
|
|
|
|
|
|
|
|
|
|
| |
When the number of programs held in the cache exceeds a threshold, the
least frequantly used programs get deleted. This also covers programs
with custom snippets of code. As a conequence, when a
QGLCustomShaderStage gets deleted, any programs using that code will
(eventually) be freed.
Reviewed-By: Samuel Rødal
|
|
|
|
| |
This patch also adds a "snippetNameStr" helper for debugging.
|
|
|
|
|
|
|
|
|
| |
This is a first step towards supporting binary shaders.
Note: This change will introduce a (rare) leak of shader objects, as the
shaders will never be kicked out from the cache (because the cache is
still a QList) :-) This will be corrected by the next patch.
Reviewed-By: Samuel
|
|\ |
|
| |
| |
| |
| |
| |
| | |
Looks like a couple of files missed the namespace macro...
Rev-By: gunnar
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* Use ExpandToTransparentBorderPadMode since we can use GL_CLAMP_TO_EDGE
to clamp to the texture.
* Shrink the bounding rects reported by the blur
and drop shadow filters (expanding by 2 * radius isn't needed).
* Use a single-pass blur for radii <= 3 to avoid the overhead of
rendering to an FBO.
* Made the fast blur setting generate filters for only a predefined set
of radii, and then use the actual blur radius to spread the sample
points outwards.
* Optimized the generated program to rely less on temporary variables,
as those seemed to not be handled very well by certain GLSL compilers.
Reviewed-by: Gunnar Sletta
|
| |
| |
| |
| | |
Reviewed-by: Samuel
|
|/
|
|
| |
Reviewed-by: Eskil
|
| |
|
| |
|
|\
| |
| |
| |
| | |
Conflicts:
src/gui/painting/qtextureglyphcache.cpp
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The QGLEngineShaderManager pointers in QGLCustomShaderStagePrivate have
been changed to QPointers to prevent the QGLPixmapFilters in
QGL2PaintEngineEx from dereferencing the QGLEngineShaderManager after
it is destroyed.
Reviewed-by: Rhys Weatherley
|
|/ |
|
|\ |
|
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-4822, QTBUG-4824
Reviewed-by: Sarah Smith
Reviewed-by: Samuel
|
| |
| |
| |
| |
| | |
Task-number: QTBUG-2222
Reviewed-by: Gunnar
|
|/
|
|
|
|
|
|
| |
Fixed the OpenGL paint engines so that the brush origin is applied
correctly and for all brushes just like in the raster paint engine.
Task-number: QTBUG-2676
Reviewed-by: Trond
|
|
|
|
|
|
|
|
|
|
|
|
| |
Making the triangle fan of each sub path start at the sub path's
centroid will on average improve performance for complex paths, because
less pixels that are outside the path need to be touched. The centroid
is a more balanced choice than just picking the first element of the
sub path as triangle fan origin.
A performance improvement of 20 % was measured for star formed paths.
Reviewed-by: Trond
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When no stencil clip is set we reduce the number of compositing passes
for rendering winding fill paths from four to two. When stencil clip is
set, the number of compositing passes is reduced from five to four.
For clipping with a winding fill path, the number of compositing passes
are reduced from five to four when stencil clipping is already enabled.
A performance improvement of up to 85 % was measured in certain cases.
Reviewed-by: Trond
|
|
|
|
|
| |
Merge-request: 1716
Reviewed-by: Thiago Macieira <thiago.macieira@nokia.com>
|
|
|
|
|
|
|
| |
Keep track of what state actually changed so we don't have to set all
the uniforms as dirty etc.
Reviewed-by: Trond
|
|
|
|
| |
This frees all the current dependencies on the depth uniform.
|
|
|
|
| |
Also we should force Raster_A8 glyph format in renderText().
|
| |
|
|
|
|
|
| |
Based on Aaron Kennedy's patch. All tests are green, but when enabling
scissoring UniteClip seems to be broken atm.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Need to set shader manager to dirty in case we change the shader program
using native calls.
Reviewed-by: Trond
|
|
|
|
|
| |
Task-number: QTBUG-4583
Reviewed-by: trustme
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
Reviewed-by: Trond
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
Reviewed-by: trust me
|
|
|
|
| |
Reviewed-by: Sarah Smith
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
Reviewed-by: trustme
|
|
|
|
| |
Reviewed-by: Gunnar Sletta
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
Reviewed-by: Trust Me
|