| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
Using a QPainter on a QGLFramebufferObject will not return the
GL context to its original conditions, especially with the OpenGL2
paint engine. Update the docs to make this clearer.
Task-number: QTBUG-6712
Reviewed-by: Daniel Pope
|
|
|
|
|
|
|
|
| |
Also document the depth testing conditions for the 2D and 3D
versions of the function.
Task-number: QTBUG-5041
Reviewed-by: Daniel Pope
|
|
|
|
|
|
|
|
|
|
|
|
| |
When a QGLWidget is re-parented, it's native X11 window usually
gets destroyed and re-created. This also happens when you set a
window attribute or flag. On EGL, we must destroy the surface
for the window before destroying the window itself, otherwise
we can leak the surface. This also fixes lots of BadDrawable
errors when running the autotests (which were due to surface
leaks!).
Reviewed-By: TrustMe
|
|
|
|
|
|
|
|
| |
If the QGLWidget's QGLFormat says it should have an alpha
channel, try to find an ARGB Visual.
Reviewed-By: Trond
Task-number: QT-2602
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
Do the blur in half the resolution in software and then upload the
result as a texture and smooth-scale it on the GPU. This leads to stable
and decent performance regardless of the blur radius, and simplifies the
implementation quite a bit.
Reviewed-by: Bjørn Erik Nilsen
|
|
|
|
|
|
|
|
|
|
| |
We want to avoid any unnecessary mallocs when checking GL/GLX
extensions. The GL extension string can be quite long and contain
several hundred extensions. The old code forced one malloc for each
extension + 1 extra malloc for the extension string itself when
it was copied into the QByteArray.
Reviewed-by: Kim
|
|
|
|
| |
Reviewed-by: Eskil
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| | |
This is a platform regression and should never have been there in the
first place. Having this as the default format on embedded devices
may drop the framerates with as much as 30% on selected HW.
Reviewed-by: Tom Cooksey
|
| |\
| | |
| | |
| | |
| | | |
Conflicts:
src/s60installs/bwins/QtGuiu.def
|
| | |\ |
|
| | |\ \ |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Intel Q45/Q43 Express Chipset has problems with glColor4ub()
not updating GL_CURRENT_COLOR correctly. Replace all references
with calls to glColor4f() instead as it is more likely to be
implemented correctly on all chipsets.
Task-number: QTBUG-6217
Reviewed-by: Sarah Smith
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
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
Back port of 8e4fa6e87f74cfb3457e8270a361cf30ca7d3593
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
8ee6d090d45198fb2530849236c97f014666b7e4: fix EGL_SAMPLES
b125af1b298d694c332f56deebe4755d0c985d5d: memory leak of EGLSurface's
ef8d9fa7091b0d45fe15aae43b8f1c47547cb16d: double-destroy of pbuffer
73d9dced8298dfad7bc72607146e81e96fffb6d4: suppress pbuffer warnings
Reviewed-by: Donald Carr
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
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
Conflicts:
src/opengl/qglpixelbuffer_egl.cpp
Back-port of 46843022acd7322c42a98858ec52b65ce7451d06
|
|/ / / /
| | | |
| | | |
| | | | |
Reviewed-by: Eskil
|
|\ \ \ \ |
|
| | | | |
| | | | |
| | | | |
| | | | | |
Reviewed-by: trustme
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The "vertical flip" flag in the PVR format is the inverse of the
"inverted y" state that we use in Qt.
Reviewed-by: trustme
|
| | |_|/
| |/| |
| | | |
| | | | |
Reviewed-by: trustme
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
OpenGL/ES requires that the internal and external formats be the
same when calling glTexImage2D(). This caused problems with
devices that had the GL_EXT_bgra extension.
This change makes the formats the same just before the upload and
also makes sure that the pixel type is GL_UNSIGNED_BYTE when
GL_BGRA is used. No change for desktop systems.
Reviewed-by: Donald Carr
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The auto-detect logic was looking for fragment programs to check
for OpenGL2 support. It should have been looking for fragment shaders.
Task-number: QTBUG-5638
Reviewed-by: Sarah Smith
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The QGLContext::bindTexture(QString) function has been augmented
with support for ETC1, PVRTC2, and PVRTC4 compressed textures,
in addition to the existing DDS support.
The QGLPixmapData class has also been modified to recognize
compressed texture formats in fromFile() and fromData().
This change also fixes a bug in bindTexture() that prevented
the same compressed texture file from being bound in multiple
contexts. There is now a separate file cache for each context group.
Task-number: QT-2547
Reviewed-by: Trond
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Also check for existing QEglContext before creating a new one and
leaking a context.
Reviewed-by: TrustMe
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | | |
The format and internal_format parameters to glTexImage2D need to always
match on OpenGL ES 2.0.
Reviewed-by: Tom Cooksey
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
If the user called QGLFramebufferObject::bind()/release() during a
beginNativePainting() callout, the release() would reset the context's
fbo to zero, not the actual window surface fbo.
Task-number: QTBUG-6204
Reviewed-by: Tom
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
bindTexture() flipped images in-place, to reduce data copying.
But there is one case where the in-place is worse: when the
QImage is not detached. In that case, the flip was copying
the entire image and then flipping the lines, effectively
processing the contents twice. The new version uses mirrored()
to reduce the overhead for non-detached images.
Reviewed-by: Samuel
|
|/ /
| |
| |
| |
| | |
Reviewed-by: Trond
Reviewed-by: Tom
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The first time a path is drawn we call makeCachable on the path, which
means that if it is drawn again, we start caching it. This is a bit of
a trick to avoid caching paths that are drawn once and discared while
at the same time cache paths that are reused automatically.
The GL engine owns the vertex information and is responsible for cleaning
it up. If the vectorpath is destroyed first, it will call the cleanup function.
if the engine dies first, we still require some hooks to clean up the cache
in the path. More to come. When VBO's are used, these will be a leaked if the
path is destroyed after the engine.
Reviewed-by: Samuel
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Fixed potential bug where you could end up taking the square root of a
negative number in drawTextItem() in the raster and OpenGL paint
engines.
Task-number: QTBUG-6327
Reviewed-by: Trond
|
| | |
| | |
| | |
| | | |
Reviewed-by: Trond
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Some of the functions had become too long to be inlined in my
opinion.
Reviewed-by: Trond
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The stroker generated two points for each miter join, one on the
convex side of the join, and one on the concave side. For sharp
joins between curved segments, the point on the concave side
could end up poking out of the stroke. This was fixed by
generating one point on the convex side only.
Reviewed-by: Trond
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Complete circles were generated at every round join, so if the
join were close to a flat cap, the circle would extend beyond
the flat cap. This was fixed by generating arcs rather than
complete circles. Likewise, round caps are now semi-circles
instead of full circles.
I also removed some unnecessary calculations when generating
square caps.
Reviewed-by: Trond
|
| | |
| | |
| | |
| | |
| | |
| | | |
Use subpixel antialiasing even if the there is an alpha channel.
Reviewed-by: Trond
|
| | |
| | |
| | |
| | | |
Over src/ tools/ examples/ and demos/
|
| |\ \ |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
We always queried the client for its GLX extensions and used them
blindly, even though they might not be available in the server.
Also fixed the extension string check itself. We used simple sub-string
search, which could potentially break if one extension name is a
sub-string of another.
Task-number: QTBUG-5732
Reviewed-by: Kim
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This fixes a regression from 4.5, where exporting a GL capable display
from an old X11 HP/Sun workstation to a modern Linux machine causes
crashes and lots of X11 error output. Just relying on the client
GL version number is not enough under X11, since the server might
only support GL 1.1 with non or very few extensions.
Also, the extension checks worked a bit randomly since it checked
for sub-strings which might or might not occur within one or more
full extension names.
Task-number: QTBUG-5853
Reviewed-by: Kim
|
| |\ \ \ |
|
| | | | |
| | | | |
| | | | | |
Revby: Gunnar
|
| | | | |
| | | | |
| | | | |
| | | | | |
Reviewed-by: Samuel
|
| | | | |
| | | | |
| | | | |
| | | | | |
Reviewed-by: Tom Cooksey
|
| |_|/ /
|/| | |
| | | |
| | | |
| | | |
| | | | |
Testcase with rounded rects went from 55 -> 62 FPS for 1000 random rects
Reviewed-By: Tom Cooksey
|
|/ / /
| | |
| | |
| | | |
Reviewed-by: Sarah Smith
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The documentation for QGLContext::isSharing() indicates that
the function returns true only when the context is sharing.
However, previously the sharing flag would stay on if the
context was created as sharing but is no longer sharing.
Task-number: QTBUG-5578
Reviewed-by: Sarah Smith
|