| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
Updated version of LGPL and FDL licenseheaders.
Apply release phase licenseheaders for all source files.
Reviewed-by: Trust Me
|
|
|
|
|
|
|
| |
1. Changed externs to Q_GUI_EXPORTs
2. ABSENTed missing exports from openGL's DEF-file
Reviewed-by: Tomi Vihria
|
|\
| |
| |
| |
| |
| |
| | |
Conflicts:
src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp
src/s60installs/bwins/QtGuiu.def
src/s60installs/eabi/QtGuiu.def
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The OpenVG engine correctly uses vgClear() to fill the surface with
transparent pixels whenever the window has the WA_TranslucentBackground
attribute enabled. However both scissoring and masking affects
the operation of vgClear(). Drawing artifacts were previously
visible due this, simply because scissoring was left enabled by
the VG paint engine, and the filling with transparent pixels
happens in the window surface's beginPaint() that is called
between the paint engine's end() (for the previous paint) and
begin() (for the next paint).
Task-number: QT-4907
Reviewed-by: Jani Hautakangas
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
master-integration
* 'master' of scm.dev.nokia.troll.no:qt/qt-fire-staging: (31 commits)
Make QtQuick2 compile on QPA
Use maximum ascent/descent/leading from fallback fonts in shaping
Another ugly hack to make bidi cursor work with Core Text
Make sure layoutData exist before checking for string direction
Removed warning from QPixmap::handle().
Take leading space width into account for painting and selection
doc: Simplify language in QGlyphs docs
doc: Minor cleanup in QGlyphs docs
Remove extra comma at the end of enum list
Fix compilation with Qt3Support
Don't transform glyph positions for Core Graphics paint engine
Skip linearGradientSymmetry test on QWS.
Turn on HarfBuzz support for Mac/Cocoa
Support visual cursor movement for BIDI text
Disable tst_QPixmap::onlyNullPixmapsOutsideGuiThread on Mac
Revert "Switch the default graphics system to raster on Mac."
Fix an race condition in the auto test.
Made linearGradientSymmetry test pass on qreal=float platforms.
Make sure #ifdef'd tests still have main() function
Long live QRawFont!
...
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The extended radial gradients conform to the radial gradient
specification in HTML 5 canvas.
Task-number: QTBUG-14075
Reviewed-by: Andreas Kling
|
|\ \ \
| |/ /
|/| /
| |/
| |
| |
| |
| |
| | |
Conflicts:
qmake/generators/makefile.cpp
qmake/generators/win32/msbuild_objectmodel.cpp
qmake/generators/win32/msvc_vcxproj.cpp
src/corelib/global/qnamespace.h
src/gui/text/qtextcontrol.cpp
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
OpenVG paint engine tries to use vgWritePixels shortcut
whenever possible to optimize rendering performance. The
check 'canVgWritePixels' failed to map formats correctly
and resulted to incorrect return value.
Task-number: QTBUG-18682
Reviewed-by: Jason Barron
|
|/
|
|
| |
Reviewed-by: Samuel Rødal
|
|
|
|
|
|
|
|
|
|
|
|
| |
The vgWritePixel-based "fallback" in drawImage can only be used when
the transformation is simple and no opacity is set. The tiled drawing
introduced here will serve as an additional fallback for the more
complex cases and will allow drawing large (12 Mpix or more) pixmaps
and images with transformation and semi-transparency even when the
complete image data would not fit into the GPU memory.
Task-number: QTBUG-18251
Reviewed-by: Jani Hautakangas
|
|
|
|
|
|
|
|
|
| |
QVGPaintEngine did not have proper checks for null QImage in the
drawImage functions so it went on trying to create a VGImage of
size 0x0 which is bound to fail always. This resulted in confusing
warnings about not being able to reclaim space for 0x0 images.
Reviewed-by: Jani Hautakangas
|
|
|
|
|
|
|
|
|
| |
OpenVG paint engine didn't reset it's
mask fallback state correctly when engine
was resetted.
Task-number: QTBUG-17966
Reviewed-by: Jason Barron
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
From now on the image data coming from CFbsBitmap will not be forced
to RGB32 or ARGB32_Premultiplied in openvg. This allows copy-less
creation and drawing of pixmaps not just from bitmaps with display mode
EColor16MAP and EColor16MU, but also a few other modes, like EColor64K.
Painting into such pixmaps or drawing them via the raster engine is
potentially slower in such cases, which is now reflected in the
fromSymbianCFbsBitmap documentation.
Note that this patch has no effect on extended bitmaps (e.g. skin
graphics), those must always be rasterized first regardless of the
display mode.
Task-number: QTBUG-18027
Reviewed-by: Jani Hautakangas
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Similarly to QS60PixmapData, that is used on raster, QVGPixmapData
is also backed by a CFbsBitmap from now on (at least when it makes
sense to do so). This allows copy-less bitmap handle duplication in
from- and toSymbianCFbsBitmap() in case of certain image formats,
reduces local heap usage and improves performance with the s60 style
due to a reduced number of pixel data copies.
Task-number: QT-2505
Reviewed-by: Jason Barron
Reviewed-by: Jani Hautakangas
|
|
|
|
|
|
|
|
|
|
| |
OpenVG implementation for Broadcom chip has limited scissor rect
count to 32. Because of that Qt OpenVG paint engine fails to clip
correctly if clip rect count exceeds 32. This patch makes Qt
OpenVG paint engine to use mask instead of scissors in such cases.
Task-number: QTBUG-16932
Reviewed-by: Jason Barron
|
|
|
|
|
|
|
|
|
| |
Shape should not be filled using pen if pen brush
type is NoBrush. OpenVG paint engine didn't check
NoBrush case when applying pen.
Task-number: QTBUG-15870
Reviewed-by: Gunnar
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Q_DECL_IMPORT is still __declspec(dllimport), which is unsuitable for
static code.
Commit edbc656b changed Q_DECL_IMPORT_IMPORT to Q_CORE_EXPORT when
declaring QtCore functions in svg.
Now we change Q_DECL_IMPORT to Q_GUI_EXPORT when declaring QtGui
functions into opengl and openvg.
Also removed the redundant keyword "extern" from the function declarations.
Merge-request: 2540
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: mariusSO
|
|
|
|
|
|
|
|
| |
Solution is to round adjustment offsets to integer values to prevent
blurry text.
Task-number: QTBUG-16240
Reviewed-by: Alessandro Portale
|
|
|
|
| |
Reviewed-by: Trust Me
|
|
|
|
|
|
|
|
|
|
| |
QWidget uses QPainter::drawTiledPixmap to draw textured
background brush but OpenVG paint engine fails to
render pixmaps correctly because of incorrect offset
calculation.
Task-number: QTBUG-15737
Reviewed-by: Gunnar Sletta
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public: (27 commits)
Use parent class function to generate Makefile headers in Symbian
Fix spaces
Fix QPixmap::fromImage() in the OpenVG pixmap backend.
Native color dialog on symbian
Fix non-stroked filled paths in OpenVG paint engine.
Fix symbian-mmp.conf include path
Fix a build break when namespace is defined
Fixed namespace issues related to epocroot.cpp
Corrected ASCII comparison and removed extra braces
Add symbian scope for qfiledialog_symbian.cpp
Resolve EPOCROOT in qt.conf using same logic as in .pro
Make epocroot resolving compatible with more build environments
Fix for QtOpenGL RVCT4 compilation error
Removed extra cpp and done changes based on comments
Correct flags for Symbian file dialogs
Fix for WServ 64 crash on Symbian.
Use include(original mkspec) instead of copying of mkspec to default
Fixed code style of d92cbfc5, reported by git push.
Switched qdesktopservices to use SchemeHandler for Symbian^3 and later.
Removed unnecessary Q_OS_SYMBIAN flags from qdesktopservices_s60.cpp.
...
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The QPainter::fillRect() functions are optimizations to avoid state
changes in the paint engines. Since these functions should be
completely independant of state, ideally they should only call
functions that are also stateless.
QVGPaintEngine::fillRect() has two different code paths for this.
The vgClearRect() path of this function is stateless however in the
case of non-opaque or complex fills, this code path cannot be used and
instead we use the normal path fill function which is not entirely
stateless because ensureTransform() will apply the aliased coordinate
transform if the current state includes a stroked pen.
To avoid this happening for a pure fill (no stroke) we temporary set
the pen state to be Qt::NoPen such that the state used by
ensureTransform() is correct.
Task-number: QTBUG-14717
Reviewed-by: Jani Hautakangas
|
|/
|
|
|
|
|
|
|
|
| |
The origin of text needs to be rounded, just like the translation in
the transform because text drawn at subpixel positions is unsupported
on some devices. Since the font is integer-based, the advance-array
does not need to be rounded.
Task-number: QTBUG-15263
Reviewed-by: Jason Barron
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2:
Doc: Fixing typo
Fix QTBUG-14640:oci performance problem with qlonglong
32bit => 16bit conversion has 4byte-aligned output.
Fix gcc bug in qReallocAligned
Prevented threading related crash in OpenGL module.
Fix possible crash in QStaticText and QDeclarativeTextLayout
Fix QTBUG-14132 oracle (xe) stored procedures with bind variables get errors
|
| |\
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2:
32bit => 16bit conversion has 4byte-aligned output.
Fix gcc bug in qReallocAligned
Prevented threading related crash in OpenGL module.
Fix possible crash in QStaticText and QDeclarativeTextLayout
Fix QTBUG-14132 oracle (xe) stored procedures with bind variables get errors
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The QStaticTextItem held an uncounted reference to QFontEngine. The
pointer would dangle in some cases where there was no font object
referencing the engine and the cache was cleaned out (e.g. when a
new application font is added.) Properly count the reference, and also
add reference counting to userData to make it harder to shoot yourself
in the foot, since the QStaticTextItem class is now being used in
different places,
Task-number: QTBUG-14446
Reviewed-by: Martin Jones
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When the state is restored and the 'dirty' flag indicates that the clip
state has changed, the paint engine needs to set 'scissorDirty' flag to
true so that updateScissor() applies the restored clip region to the
scissor rects.
Task-number: QTBUG-14907
Reviewed-by: Jani Hautakangas
|
|/
|
|
|
|
|
|
|
|
| |
Use vgWritePixels, if possible, in case where VGImage
for QPixmap can't be allocated due to low GPU memory
situation. This patch also renames some VG paint engine
internal functions to clarify their purpose.
Task-number: QT-3589
Reviewed-by: Jason Barron
|
|
|
|
|
|
| |
ShivaVG doesn't have VGFont support for example.
Reviewed-by: Jason Barron
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
pixel."
This reverts commit 2acdc634ee895af4a9738c0f6c2496e388afba38.
Originally this fixed QT-3791 but it caused lots of problems in
other sites. So reverting this will fix QT-4001 but reopens
QT-3791. QT-4001 blocks Qt 4.7.1 but QT-3791 doesn't.
Task-number: QT-4001
Reviewed-by: Jason Barron
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Stroking a path can sometimes result in inconsistent rendering
especially when combined with a clip. For example, if the logical edge
of a clip rect coincides with the logical edge of a path then it can
happen that the edge is not painted correctly because the stroke lies
outside the bounds of the clip rect. To workaround this problem, we add
the 'aliasedCoordinateDelta' such that the rounding will err on the
side of caution. This improves the correctness when using the raster
engine as a reference.
Task-number: QTBUG-13165
Reviewed-by: Samuel
|
|
|
|
| |
Reviewed-by: Rhys Weatherley
|
|
|
|
|
|
|
|
|
|
| |
This happens because of differences in OpenVG and Qt pixel center point
handling. Currently there is no easy generic way to adjust Qt pixels to
match OpenVG. This patch adjusts pixels for simple affine transformations
by rounding them.
Task-number: QT-3791
Reviewed-by: Jason Barron
|
|\
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/gui/kernel/qt_s60_p.h
src/opengl/qglextensions.cpp
src/opengl/qglshaderprogram.cpp
tests/auto/mediaobject/tst_mediaobject.cpp
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Commit b0bbabe728fedb8531fc2837403856bd5ed44e1b fixed text blurriness
in the OpenVG paint engine by forcing the coordinates of the text
items to integer coordinates (for unrotated, unscaled text).
That was not yet enough. In addition to the coordinates, also the
d->pathTransform in QVGPaintEngine can have a non-integer translation.
This patch makes sure that the text item coordinate combined with the
translation result in final integer coordinates.
Since it is not possible to set an absolute translation of a
QTransform (only relative is possible), first dx() is added to p.x(),
then after rounding, it is again substracted. Sam for y, but with
opposite prefix, since the y-axis in Qt and in transformation
matrices are in opposite directions.
The ceil stunt (which I cerated by trial and error) was replaced
by floor(x + aliasedCoordinateDelta), which *exactly* what other
paint engines do.
Task-number: QTBUG-12330
Reviewed-by: Jason Barron
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Proxy widgets use the shared painter functionality and this implies
that the paint engine's begin function does not get called for each new
widget that gets painted. This causes a problem because the system clip
gets modified by QPainter, but the paint engine does not realize that
this happened and fails to use the new clip. The result is that you can
end up painting outside the intended clip area.
The fix is to reimplement the virtual systemStateChanged() function in
QVGPaintEnginePrivate and make it call updateScissor() to re-evaluate
the clipping flags and update the current clip accordingly.
A similar fix was done to the OpenGL paint engine way back in 307c2954.
Task-number: QTBUG-12486
Reviewed-by: Rhys Weatherley
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
bin/syncqt
src/3rdparty/webkit/VERSION
src/3rdparty/webkit/WebCore/ChangeLog
src/3rdparty/webkit/WebCore/bridge/qt/qt_instance.cpp
src/3rdparty/webkit/WebCore/bridge/qt/qt_runtime.h
src/3rdparty/webkit/WebCore/page/FrameView.cpp
src/3rdparty/webkit/WebCore/page/FrameView.h
src/3rdparty/webkit/WebCore/platform/ScrollView.cpp
src/3rdparty/webkit/WebCore/platform/ScrollView.h
src/corelib/plugin/quuid.cpp
src/gui/dialogs/qfontdialog.cpp
src/multimedia/audio/qaudiodevicefactory.cpp
src/opengl/qgl.cpp
src/openvg/qpaintengine_vg.cpp
tests/auto/qxmlquery/tst_qxmlquery.cpp
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The convertToPainterPath() function assumes that the QVectorPath
contains at least one path element when creating the QPainterPath. This
is not necessarily the case here though because if QVG_SCISSOR_CLIP is
defined and setClipPath() is called with an empty QPainterPath, this is
then converted to an empty QVectorPath in QPaintEngineEx::clip() which
then calls QVGPaintEngine::clip(). This function then goes on to
convert the QVectorPath back into a QPainterPath using the
aforementioned function which crashes when attempting to access the
first element of the path.
In case you are wondering why this seemingly redundant conversion
happens at all, it happens because when QVG_SCISSOR_CLIP is defined, we
attempt to convert the path to a series of rects for scissor clipping
and this conversion function operates on QPainterPath instead of
QVectorPath which is what this clip() function was designed to deal
with.
The fix is to skip over the path conversion for empty paths and go
directly to an empty QRegion.
Reviewed-by: Alessandro Portale
|
| |
| |
| |
| | |
Reviewed-by: Julian de Bhal
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Qt's graphics system uses qreal as measurement unit.
The established paint engines (such as "raster") implicitly
round textitem coordinates for technical reasons, e.g. for
optimized blitting.
Some Qt based Ui libraries (such as QWidgets) can in some
cases cause textitems to be drawn on non-integer coordinates.
In particular, this happens when centering text.
Since these libraries have been developed against the
established paint engines with implicit rounding, these
non-integer coordinates were never an issue.
The new OpenVG paintengine took these coordinates seriously
without rounding them. On some OpenVG implementations (e.g.
that of some Symbian phones), this led to blurry text
rendering.
This patch adds coordinate rounding for unscaled, unrotated
textitems to the OpenVG paintengine. So that it does the
same as the raster paint engine.
Task-number: QT-3071
Reviewed-By: Jason Barron
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The OpenVG paint engine traditionally takes glyph images from the
alphaMapForGlyph() function which returns the glyph image in the
upright projection. When it constructs a VGImage from this image, it
passes a positive data stride which will read the top scanline of the
source image into the bottom scanline of the VGImage due to the VG
coordinate system. It then uses the path transform where the 'sy' value
of the matrix is set to -1 and this re-inverts everything when drawing.
With the Symbian based glyph cache, the VGImage is constructed from a
RSgImage which is a hardware resource and compensates for the
coordinate system used by VG and GL at the time it is created. In
the case of the hardware glyph cache, the glyph image is read into the
RSgImage using a negative data stride so it does not need to be
inverted when drawn. To allow for this, introduce a flag which
indicates that the 'sy' entry of the matrix should be flipped such that
the glyph is drawn normally.
Also in this patch is a change to the glyph origin which now uses the
bottom of the glyph metric bounding rect instead of the top due to
orientation of the glyph inside the VGImage.
Reviewed-by: Alessandro Portale
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This introduces a specialized OpenVG font cache for the Symbian
platform. By using RGlyphDataIterator we can create a VGImage to store
inside a VGFont without having to upload our own glyph image. This
works by utilizing RSgImage which can be used to share handles to
graphics memory across processes thus allowing glyph images to be
shared by multiple processes and reducing graphics memory usage.
Reviewed-by: Alessandro Portale
|
| |
| |
| |
| |
| |
| |
| | |
Needed in order to subclass and override in the Symbian specific
implementation.
Reviewed-by: Rhys Weatherley
|
| |
| |
| |
| |
| |
| |
| |
| | |
This class will be implemented differently on Symbian due to the
presence of a class that allows cross process sharing of glyph images
so make this function virtual.
Reviewed-by: Rhys Weatherley
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/3rdparty/webkit/VERSION
src/3rdparty/webkit/WebCore/ChangeLog
src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp
src/3rdparty/webkit/WebKit/qt/ChangeLog
src/gui/painting/qpainter.cpp
src/gui/painting/qtextureglyphcache.cpp
src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
src/opengl/gl2paintengineex/qtextureglyphcache_gl_p.h
src/s60installs/bwins/QtGuiu.def
src/s60installs/eabi/QtCoreu.def
src/s60installs/eabi/QtGuiu.def
src/s60installs/eabi/QtNetworku.def
src/s60installs/eabi/QtOpenVGu.def
tests/auto/qfontmetrics/tst_qfontmetrics.cpp
tools/linguist/lupdate/main.cpp
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
WebKit draws rounded rectangles by setting a rounded rect path as a
clip and then filling the clip. This had problems when QVG_SCISSOR_CLIP
was enabled because the scissor would only clip to the bounding box
of complex paths. Thus, rounded rectangle clips were turned into
normal rectangle clips.
This change will make the scissor clipping code subdivide complex paths
into rectangles and use a tighter clip if the number of rectangles is
less than or equal to VG_MAX_SCISSOR_RECTS. If it is greater, then it
will fall back to the bounding box of the path.
Task-number: QT-3372
Reviewed-by: Jason Barron
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
demos/demos.pro
mkspecs/features/resources.prf
mkspecs/features/uic.prf
src/corelib/io/qurl.cpp
src/corelib/tools/qlocale_symbian.cpp
src/gui/graphicsview/qgraphicsscene.cpp
src/gui/graphicsview/qgraphicswidget_p.cpp
src/gui/graphicsview/qgraphicswidget_p.h
src/gui/util/qsystemtrayicon_win.cpp
src/multimedia/audio/qaudioinput.cpp
tests/auto/qhostinfo/qhostinfo.pro
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This change introduces the extra blending modes that are
defined in the VG_KHR_advanced_blending extension. Patch
originally provided by contributor:
http://qt.gitorious.org/qt/qt/merge_requests/505
Reviewed-by: Julian de Bhal
|
| | |
|
| | |
|