| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Task-number: QTBUG-7545
Reviewed-by: Kim
|
|
|
|
|
| |
Task-number: QT-2988
Reviewed-by: Julian de Bhal
|
|
|
|
|
| |
Reviewed-By: Trond
Autotest: tst_QGL::qglContextDefaultBindTexture
|
|
|
|
|
|
|
|
|
|
|
| |
Don't try to use the texture_from_pixmap extension when drawing a pixmap
from one X11 screen onto a different X11 screen in the GL 2 engine.
For that to work, the pixmap will have to be re-created on the new
screen, which is exactly what the default bind method does (via QImage
conversion).
Task-number: QTBUG-8054
Reviewed-by: Kim
|
|
|
|
|
|
|
| |
The assert wrong, it may be that the texture isn't removed from the
cache if it doesn't have the MemoryManaged bind option set.
Reviewed-by: Samuel
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes quite a lot of issues:
* QtOpenGL only registered qpixmap destruction hooks on X11 and
those only cleanup the EGL/GLX surface, not the texture object.
* The QPixmap destruction hooks were only being called from the
QPixmap destructor. However, this means when a QPixmap is assigned
to another QPixmap, the hooks don't get called.
Task-number: QTBUG-7647
Reviewed-By: Samuel
Reviewed-By: Trond
|
|
|
|
|
|
|
|
|
| |
renderText() can't be used while a GL 2 paint engine is active on the
same device, because it will clash with the GL 1 engine and wreck havoc.
We simply don't support that scenario.
Task-number: QTBUG-7592
Reviewed-by: Samuel
|
|
|
|
| |
Reviewed-by: Trust Me
|
|
|
|
|
|
|
|
| |
Using renderPixmap() with scenes that contained textures might not work
due to the wrong texture format being used under certain circumstances.
Task-number: QTBUG-7213
Reviewed-by: Gunnar
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Qt used to store the GL extensions a particular implementation supported
in a global cache, which was initialized once and never updated.
This could cause problems because different types of context might
support different kinds of extensions (e.g. the difference between
sw and hw contexts). With this patch, the GL extensions are cached
and updated within each QGLContext. It also makes the extension
initialization lazy, which saves application initialization costs for
embedded platforms.
The patch introduces a internal cross platform QGLTemporaryContext
class that is used to create a light-weight GL context without going
via QGLWidget and friends (QWS and WinCE still have QGLWidget fallbacks
for now).
Reviewed-by: Kim
Reviewed-by: Samuel
|
|\
| |
| |
| |
| | |
Conflicts:
dist/changes-4.6.1
|
| |\
| | |
| | |
| | |
| | | |
Conflicts:
src/multimedia/audio/qaudioformat.cpp
|
| |\ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
4.6-integration
* '4.6' of scm.dev.nokia.troll.no:qt/oslo-staging-1:
QIODevice: Fix readAll()
Temporary hackiesh solution to prevent BOM in the xml data.
Fixed qxmlstream autotest when using shadow builds.
Attempt at readding the capital P headers for Phonon
Remove special Phonon processing from syncqt.
Use the lowercase/shortname.h headers for Phonon includes
Fixes a crash when setting focus on a widget with a focus proxy.
Update copyright year to 2010
doc: Clarified activeSubControls and subControls.
Remove warning "statement with no effect"
doc: Clarified that .lnk files are System files on Windows.
|
| | | |
| | | |
| | | |
| | | | |
Reviewed-by: Trust Me
|
| |_|/
|/| |
| | |
| | |
| | |
| | |
| | |
| | | |
QGLPixmapData::toImage() called qt_gl_read_texture() which didn't take
into account that the texture was in a premultiplied format.
Task-number: QTBUG-7190
Reviewed-by: Trond
|
|/ /
| |
| |
| |
| |
| | |
This is already done in the QGLWidget constructor.
Reviewed-by: Kim
|
| |
| |
| |
| |
| | |
Task-number: QT-2600
Reviewed-by: Samuel
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fall back and use the GL 1 engine for the renderText() functions.
Getting it to work with the GL 2 engine is a futile effort.
Making it work with renderPixmap() in the GL 2 engine is not possible
at all, since software contexts in general do not support shader
programs.
Task-number: QTBUG-5002, QTBUG-6931
Reviewed-by: Kim
|
|/
|
|
|
|
|
|
|
|
|
|
|
| |
The GL2 engine (and probably Qt/3D) needs to track which vertex
attribute arrays are currently enabled and which are disabled. As
this is per-context state, the logical place to track this is in the
context and not in the paint engine.
This patch also makes the GL2 engine's shader manager enable/disable
the appropriate attribute arrays for a given shader program when it
is used.
Reviewed-By: Kim
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
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
|
| | | |
| | | |
| | | |
| | | | |
Reviewed-by: Trust Me
|
| |_|/
|/| |
| | |
| | |
| | |
| | |
| | | |
The "vertical flip" flag in the PVR format is the inverse of the
"inverted y" state that we use in Qt.
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
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QPaintDevice and QImage used the functions numColors(), setNumColors(),
and numBytes(). However, this is not consistent with the rest of the Qt
API which uses *Count() and set*Count().
Removed all usage of these functions inside Qt and test-cases.
Reviewed-by: Andreas Aardal Hanssen
|
|\ \ |
|
| | |
| | |
| | |
| | | |
Reviewed-by: Gunnar Sletta
|
| | | |
|
|/ /
| |
| |
| | |
Reviewed-by: TrustMe
|
| |
| |
| |
| |
| |
| |
| | |
Better than having to befriend QPixmapData and setting is_cached
manually.
Reviewed-by: Tom Cooksey
|
| |
| |
| |
| | |
Reviewed-by: Tom
|
| |
| |
| |
| |
| |
| |
| | |
We can't create a QGLWidget in the QGLEngineSelector, since it may
be called before a QApplication object has been constructed.
Reviewed-by: Kim
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|\ \ |
|
| | |
| | |
| | |
| | | |
Reviewed-by: Tom
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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)
|