| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Reviewed-by: Trustme
|
|
|
|
| |
Reviewed-By: Trustme
|
|\ |
|
| | |
|
| |
| |
| |
| |
| | |
Added QGLContextPrivate::bindTextureFromNativePixmap() implementation
for X11/EGL.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Make a clear seperation between the GL texture and the GLX pixmap. A
GLXPixmap is valid in any GL context and thus does not need to be
re-created every time the pixmap has changed.
Reviewed-By: Samuel
|
| |
| |
| |
| |
| |
| |
| | |
The new class alows more than one hook to be installed at a time and,
for QPixmaps, the hook is told which pixmap is getting deleted.
Reviewed-By: Samuel
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QGLColormap::setEntry() was inserting entries instead of
replacing them; QGLColormap::setEntries() had an incorrect
assert and weird behaviour for the "base".
The documentation for QGLColormap::isEmpty() has been updated
to reflect that it will also report empty if the colormap has
not been set on a QGLWidget even if it has entries in it.
This behaviour is required by existing code.
Reviewed-by: Rohan McGovern
|
| |
| |
| |
| |
| |
| |
| | |
Stencil buffer has been enabled by default for quite some time
(2 years) but the documentation was still saying disabled.
Reviewed-by: bnilsen
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Use scissor based clipping when only dealing with rectangular intersect
clips. As soon as we get any more complex clips (or unite/replace clips)
we fall back to depth buffer based clipping.
Task-number: 258748
Reviewed-by: Tom
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This makes Qt work on VxWorks 6.6+ in native (kernel) mode.
* compiles with the WindRiver GNU toolchain (Linux only)
* works with QWS (tested with the VNC driver only)
* tested on PPC hardware and the x86 VxWorks simulator
* no q3support, no phonon, no webkit
* no QSharedMemory, no QSystemSemaphore, no QProcess
* only one QApplication instance (flat address space)
* filesystem support depends heavily on the quality of the native driver
* QLibrary is just a dummy to make plugins work at all
* qmake transparently creates VxWorks munching rules for static ctors
* made auto-test cope with missing OS features
A special note regarding the Q_FOREACH patch for dcc:
when calling foreach(a,c) with c being a function returning a container,
the compiler would generate 5 references to some labels (.LXXXX), which
are not there (so the linker complains in the end).
Seems like dcc doesn't really like the 'true ? 0 : <function call to get type>'
statement
Reviewed-By: Harald Fernengel
|
|/
|
|
| |
Reviewed-by: Gunnar Sletta
|
| |
|
|
|
|
|
| |
Solaris seems to define glXReleaseTexImageEXT rather than let it be
resolved as a function pointer.
|
|
|
|
|
|
| |
The conditionals were the wrong way round.
Reviewed-By: Samuel
|
|
|
|
|
|
|
|
| |
Don't just assume they're going to be ARGB just because the config has
an alpha channel. This makes QGLWidgets with WA_TranslucentBackground
set work again on the rx71 when running under xcompmgr.
Reviewed-By: Trustme
|
|
|
|
| |
Reviewed-By: Trustme
|
|
|
|
| |
Reviewed-By: Trustme
|
|
|
|
|
|
|
| |
This fixes the build on older Solaris machines which don't have
the GLX_EXT_texture_from_pixmap defines in glxext.h.
Reviewed-By: Trustme
|
|
|
|
|
|
|
|
|
| |
The texture_from_pixmap patch removed a bindTexture overload from
QGLContextPrivate which is actually needed by all architectures. It was
just it's use in the mac compat methods which broke the build and
highlighted the issue.
Reviewed-By: Trustme
|
|
|
|
|
|
|
|
|
| |
~QGLTexture wouldn't make the texture's context current if the current
context was zero, meaning the texture would leak. This also means
deleteBoundPixmap doesn't need to make the context currnet anymore (as
it's only called from ~QGLTexture).
Reviewed-By: Kim
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The patch tries to use texture_from_pixmap extentions on glX to properly
bind an X Pixmap to a texture in QGLContextPrivate::bindTexture(QPixmap,).
Because GL & X have different coordinate systems, the pixmap will be
inverted about the y-axis. The extension does however allow a
GLX_Y_INVERTED_EXT attribute to be set which will bind the pixmap the
correct way up. If the underlying driver doesn't support this,
texture_from_pixmap can't be used for QGLContext::bindTexture, because
that function expects the resulting texture to be the right way up.
However, it can still be used internally by the paint engine for
drawPixmap operations. For these cases, if the pixmap is inverted, the
paint engine can simply invert the texture coords to compensate. This is
why this patch also moves QGLTexture into qgl_p.h.
QGLContextPrivate::bindTexture(QPixmap,) now returns a QGLTexture which
the paint engine can inspect to see if it needs to invert the texture
coords.
Finally, it seems on some (probably all) drivers, deleting an X pixmap
which has been bound to a texture before calling glFinish/swapBuffers
renders garbage. Presumably this is because X deletes the pixmap behind
the driver's back before it's had a chance to use it. To fix this, we
reference all QPixmaps which have been bound to stop them being deleted
and only deref them after we swap the buffer, when they can be safely
deleted.
Reviewed-By: Kim
|
|
|
|
|
| |
When an extern function is declared in the scope of another function,
MSVC sometimes ignores the enclosing namespace {}.
|
|
|
|
|
|
|
| |
When premultiplying a color with the opacity, the color's alpha channel
was not set correcly.
Reviewed-by: Tom
|
|
|
|
|
|
|
| |
Texture filtering was set before binding the texture, so the gradient
spread was not set correctly.
Reviewed-by: Tom
|
|
|
|
| |
Reviewed-by: Tom
|
|
|
|
| |
Reviewed-by: Tom
|
|
|
|
| |
Reviewed-by: Tom
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I added a QGLContextResource class which can be used internally in Qt
for sharing resources between contexts. The QGLContextResource is a
hash map where the context is used as 'key', and the resource is the
'value'. All the sharing contexts point to the same resource, and the
resource is automatically deleted when it is not referenced any more.
Now, the shader manager uses the QGLContextResource class.
I also added a pointer to a struct in the QGLContextPrivate class. The
struct is shared between all the sharing contexts and is deleted
automatically. Currently, the struct only contains the resolved OpenGL
function pointers.
The shared context register code has been simplified.
Reviewed-by: Tom
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/3rdparty/webkit/VERSION
src/3rdparty/webkit/WebCore/ChangeLog
src/3rdparty/webkit/WebCore/generated/JSDOMWindow.cpp
src/3rdparty/webkit/WebCore/page/DOMWindow.idl
src/corelib/io/qdiriterator.cpp
src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp
src/plugins/gfxdrivers/directfb/qdirectfbpixmap.h
tests/auto/qxmlquery/tst_qxmlquery.cpp
tools/linguist/lconvert/main.cpp
|
| |
| |
| |
| |
| |
| |
| | |
Regression from Qt 4.4.
Task-number: 257990
Reviewed-by: Tom
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When copying a glyph image into the glyph cache, garbage appeared in
the glyph cache in the lower part of the destination rectangle. This
happened whenever the glyph image's width was not a multiple of four
bytes. I suppose this is a driver bug (nVidia). As a workaround, I
converted the glyph image to ARGB32 such that the width is guaranteed
to be a multiple of four bytes.
Reviewed-by: Tom
|
| | |
|
| |
| |
| |
| |
| | |
we should include qt_windows.h and not windows.h because we have to
define WINVER to 0x500.
|
| |
| |
| |
| |
| |
| |
| | |
omissions when qdoc is used in certain Windows environments.
Task-number: 256415
Reviewed-by: Trust Me
|
| |
| |
| |
| |
| |
| | |
Simplified caching of uniform locations.
Reviewed-by: Samuel
|
| |
| |
| |
| |
| |
| | |
Without this, QWindowSurface::flush() doesn't work.
Reviewed-by: Samuel
|
| |
| |
| |
| |
| |
| |
| | |
Need to call syncState() to let the paint engine set depth clipping
state parameters back to their OpenGL defaults.
Reviewed-by: Trond
|
| |
| |
| |
| |
| |
| |
| | |
This could potentially crash when a context was destroyed before
the actual font engine holding the QGLTextureGlyphCache was destroyed.
Reviewed-by: Samuel
|
| |
| |
| |
| |
| |
| |
| | |
support
Merge-request: 604
Reviewed-by: Marius Storm-Olsen <marius@trolltech.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Make sure a QPixmap gets an alpha channel when filled with a non-opaque
color, and fix issues where shader manager did not active correct shader
program.
Reviewed-by: Tom
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The sync() function properly sets up the state to allow using raw
OpenGL commands with an active QPainter, but we also need to properly
restore the state after sync() has been called and some other painting
operation is done.
Reviewed-by: Trond
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The gl_Position x, y, and z coordinates are always divided by the
homogenuous w coordinate to yield the final coordinates. Since we want
the depth to be constant for the whole item we need to premultiply it by
the w-coordinate. We can do this in the main() function in the vertex
programs since all the vertex programs use the depth uniform, thus
simplifying the programs a bit.
Reviewed-by: Trond
|
| |
| |
| |
| |
| |
| |
| | |
Keep track of uniform locations for the current shader program in the
shader manager. Also don't change texture parameters unless necessary.
Reviewed-by: Kim
|
|\ \
| |/
| |
| |
| | |
Conflicts:
src/sql/drivers/psql/qsql_psql.cpp
|
| |
| |
| |
| |
| |
| |
| | |
The offset was completely ignored for the GL 1 paint engine.
Task-number: 256608
Reviewed-by: Samuel
|
| |
| |
| |
| |
| | |
This change also moves the EGL support classes from QtOpenGL to QtGui
so they can be shared between OpenGL and OpenVG.
|