| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
After API review discussions, it was decided to remove shader
binary support until we have a better handle on what we need.
Applications can directly load shader binaries on the shaderId()
using glShaderBinary() directly so they aren't prevented from
using the feature.
Reviewed-by: trustme
|
|
|
|
|
|
| |
Looks like a couple of files missed the namespace macro...
Rev-By: gunnar
|
| |
|
| |
|
| |
|
|
|
|
| |
Reviewed-by: Sarah Smith
|
|
|
|
| |
Reviewed-by: Sarah Smith
|
|
|
|
|
|
|
|
|
| |
Attribute locations must be bound before a shader program is linked
according to the GLSL specification. Issue a warning to the user if
they do it in the wrong order, which should help to isolate hard
to find bugs much quicker.
Reviewed-by: trustme
|
| |
|
|\
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| | |
We can't create a QGLWidget in the QGLEngineSelector, since it may
be called before a QApplication object has been constructed.
Reviewed-by: Kim
|
| |
| |
| |
| |
| |
| |
| | |
QGLTextureCache installs pixmap cleanup hooks which are used to clean up
the EGL surfaces.
Reviewed-By: Trustme
|
| |
| |
| |
| |
| | |
The new surface uses XCopyArea to post updates to the window and thus,
supports partial updates.
|
| |
| |
| |
| |
| |
| |
| |
| | |
If the system clip changed the stencil buffer wasn't necessarily updated
correctly. Use a region to keep track of the dirty areas in the stencil
buffer, like we do in the GL 2 engine.
Reviewed-by: Samuel
|
| |
| |
| |
| | |
Hash-Define out X11GL pixmap data until the GLX implementation is ready.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
On 16 bpp systems, RGB pixmaps are 16-bit whereas ARGB pixmaps are
32-bit. This means two different EGL configs are used which are
incompatable with each other. As a result, we have to use 2 different
EGL contexts - one for each config.
Reviewed-By: Trustme
|
| |
| |
| |
| |
| | |
Enable it by setting QT_USE_X11GL_PIXMAPS environment variable while
using the -graphicssystem opengl
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Before the QExplicitlySharedDataPointer change, the ref-count was 0 when
calling the cleanup hooks from ~QPixmap. That enabled the hook to figure
out if the pixmap is being modified or deleted. As the ref count is now
1 when calling the cleanup hooks in ~QPixmap, we need to seperate the
hooks.
This change should make using textre-from-pixmap faster as the EGL/glX
surface wont get re-created everytime the pixmap is modified.
Reviewed-By: Gunnar
|
|/ |
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If the QWS_DISPLAY is specified as "Transformed:powervr:...",
then we will encounter QScreen::TransformedClass rather than
QScreen::ProxyClass when searching for the QGLScreen. This change
makes the code search for both.
Task-number: QT-2261
Reviewed-by: Sarah Smith
|
| |
| |
| |
| | |
Reviewed-by: Tom
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Custom window surfaces, graphics systems, and Qt/Embedded screen
drivers often need to access QPaintDevice::metric(), but it is
protected. Hence the growing number of friends in QWidget and
QImage. The qt_paint_device_metric() function provides a more
future-proof approach that doesn't require lots of friends.
Reviewed-by: Gunnar
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The qt_qgl_paint_engine() function was being used by QWS, but there's
no reason why it can't be used by other platforms too. This should
also fix ES 2.0 paint engine support under QWS, which was stubbed out.
Reviewed-by: Sarah Smith
Reviewed-by: Gunnar
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The GLSL implementation messes up return values from functions so that
all our srcPixel()'s become black and several matrices are off. We
don't want to rewrite the shader code to fit an "ancient" graphics
card, so we simply fall back to the GL 1 engine.
Reviewed-by: Trond
(cherry picked from commit 33ed3d0bacddce214a43be60eb6481903e753a88)
|
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-4822, QTBUG-4824
Reviewed-by: Sarah Smith
Reviewed-by: Samuel
|
| |
| |
| |
| |
| |
| | |
Also, unbind the texture after it is initialized.
Reviewed-by: Sarah Smith
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QGLWindowSurface::flush() assumed that updateGeometry() had been
called, but in some cases it hadn't. It would therefore dereference a
null pointer and crash. This has been fixed by returning from flush()
if updateGeometry() has not been called. This fixes the symptom rather
than the bug, so we still need to find out why it hasn't been called.
Reviewed-by: Trond
|
| |
| |
| |
| |
| |
| |
| | |
QGLFramebuffer::isBound() would crash if it was called when there
wasn't a current context bound.
Reviewed-by: Kim
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When QGLPixmapData is bound after a fill(), without being painted on in
the mean-time, it's cheaper to directly generate a source image than to
go through convertToGLFormat(), since all the pixels in the image will
have the same value.
Reviewed-by: Trond
|
| |
| |
| |
| |
| |
| | |
Fixes test failures in fill() and setGetMask().
Reviewed-by: Trond
|
| |
| |
| |
| |
| |
| | |
Don't use texture_from_pixmap extension for QBitmaps.
Reviewed-by: Tom
|
| |
| |
| |
| |
| |
| |
| | |
Fixed drawing of bitmap brushes and tiled bitmaps so that they are
painted with the brush colour or pen colour instead of black.
Reviewed-by: Trond
|
| |
| |
| |
| |
| |
| |
| |
| | |
Fixed the output of enums such that the last item in the enum is not
followed by comma. Changed the output of the license to say that the
file is part of the QtOpenGL module, not the test suite.
Reviewed-by: Trond
|
| |
| |
| |
| |
| |
| |
| | |
Fixed warnings about int->float and float->vecN conversions. Removed
unused shader files.
Reviewed-by: Trond
|
| |
| |
| |
| |
| |
| | |
QPixmap::copy() now returns a pixmap with the same pixmap backend.
Reviewed-by: Gunnar Sletta
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | | |
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
|
|/ / |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The GLSL implementation messes up return values from functions so that
all our srcPixel()'s become black and several matrices are off. We
don't want to rewrite the shader code to fit an "ancient" graphics
card, so we simply fall back to the GL 1 engine.
Reviewed-by: Trond
|
|/
|
|
|
|
| |
We need to make sure that the FBO is bound in a valid context.
Reviewed-by: Tom
|
|
|
|
|
|
|
|
| |
The previous code was comparing QGLFramebufferObjectFormat::textureTarget()
against GL_RGB to determine if alpha was present. This should be
internalTextureFormat() instead.
Reviewed-by: Sarah Smith
|
|
|
|
| |
Reviewed-by: trustme
|
|
|
|
| |
Reviewed-by: trustme
|
|
|
|
|
|
|
| |
Fixing the surface memory leak in b125af1b for widgets caused this
knock-on effect in pbuffers.
Reviewed-by: trustme
|
|
|
|
|
|
|
|
| |
The previous code was searching for an exact pbuffer format of
RGBA = 1, 1, 1, 0, which of course is never going to happen.
Instead, search for the best format.
Reviewed-by: trustme
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|