| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Reviewed-by: trustme
|
|
|
|
| |
Reviewed-by: trustme
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
Very basic port of the graphics system - performance may not
be the best just yet.
Reviewed-by: Sarah Smith
|
| |
|
|
|
|
| |
Reviewed-by: Samuel
|
|
|
|
| |
Reviewed-by: Gunnar Sletta
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
Reviewed-by: Sarah Smith
|
|
|
|
|
|
|
| |
Also, move the EGL makeCurrent(), doneCurrent(), swapBuffers(),
and reset() functions into the common qgl_egl.cpp.
Reviewed-by: Sarah Smith
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
Need to make sure the correct context is current when painting on the
window surface FBO.
Reviewed-by: Kim
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
Reviewed-by: Kim
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
The antialiasing is currently not gamma corrected and is disabled on
OpenGL ES 2.0.
Reviewed-by: Samuel
|
|
|
|
| |
This reverts commit 1b34feacef7a2d3ac005449a7cfbcb08a6bbf947.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
The antialiasing is currently not gamma corrected and is disabled on
OpenGL ES 2.0.
Reviewed-by: Samuel
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
Since copyBackFromRenderFbo() manually changes the framebuffer object
binding, we also need to update the context's current_fbo member.
Reviewed-by: Kim
|
|\ |
|
| |\
| | |
| | |
| | |
| | | |
Conflicts:
tests/auto/qtwidgets/tst_qtwidgets.cpp
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
| |/
|/|
| |
| | |
Reviewed-by: Samuel
|
| | |
|
|/
|
|
|
|
| |
Breaks the GL2 paint engine on X11 and OpenGL/ES 2.0.
This reverts commit b8ff02a67ebd8246253823b53cfed98eef400547.
|
|
|
|
| |
Reviewed-by: Trustme
|
|
|
|
|
|
| |
The antialiasing is currently not gamma corrected.
Reviewed-by: Samuel
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| | |
Reviewed-by: trustme
|
| |
| |
| |
| |
| |
| | |
The code does not use QGLShader directly any more.
Reviewed-by: trustme
|
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| | |
Matrix functions do not exist under OpenGL/ES 2.0.
Reviewed-by: trustme
|
| |
| |
| |
| |
| |
| |
| | |
Slightly increase threshold for when to shrink an FBO, and reduce the
number of calls to glBindFramebuffer.
Reviewed-by: Tom
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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...
|
|/ |
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
| |
Reviewed-by: Samuel
Reviewed-by: Tom Cooksey
|
| |
|
|
|
|
|
|
|
|
| |
Change c72eaee91136bbe1a9fa99cdb0a7593bec60264b was wrong, we should
call ensureActive(), not syncState().
Task-number: 261113
Reviewed-by: Trond
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
Reviewed-by: Trond
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|