| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| | |
|
| | |
|
|\ \
| |/
| |
| |
| | |
Conflicts:
src/openvg/qpaintengine_vg.cpp
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Correctly use the positions calculated by getGlyphPositions
to draw the glyphs.
Simplify the logic a bit so that we don't need the
glyphTransform anymore, but can instead just use the
pathTransform for text drawing as well.
Tested with latin, arabic, hebrew and Hindi text
Task-number: QT-3300
Reviewed-by: Jason Barron
|
| |
| |
| |
| |
| |
| | |
qpaintengine_vg.cpp"
This reverts commit 27688a5e317f6602752eaea257ba46abbc9acf44.
|
| | |
|
|\ \
| |/
| |
| |
| |
| |
| | |
Conflicts:
src/openvg/qpaintengine_vg.cpp
src/script/bridge/qscriptqobject_p.h
tests/auto/bic/tst_bic.cpp
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The QVGPaintEngine calls vgDrawGlyphs() to draw the glyphs of a
QTextItem. vgDrawGlyphs(), which is an official OpenVG function, and
not implemented in Qt itself, expects glyphs coordinates differently
than Qt's glyph painting loops of other paint engines expect.
Therefore, we need to handle RTL text separately in
QVGPaintEngine::drawTextItem(). Rhys Weatherley provided this patch.
This issue is not Symbian specific, but rather QVGPaintEngine
specific.
Task-number: QT-3140
Reviewed-by: Rhys Weatherley
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/3rdparty/webkit/VERSION
src/3rdparty/webkit/WebCore/ChangeLog
src/3rdparty/webkit/WebCore/page/FrameView.cpp
src/3rdparty/webkit/WebCore/rendering/RenderWidget.cpp
src/3rdparty/webkit/WebKit/qt/symbian/eabi/QtWebKitu.def
src/s60installs/bwins/QtCoreu.def
src/s60installs/bwins/QtGuiu.def
src/s60installs/bwins/QtNetworku.def
src/s60installs/eabi/QtGuiu.def
tests/auto/qscriptextqobject/tst_qscriptextqobject.cpp
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
RVCT 4 is far more strict with regards to symbol visiblity that RVCT
2.2, and will hide symbols unless all references have default visibility
in the object files. Update the various places in Qt code where the
symbol visibility was set incorrectly for DLL-based platforms (those that
use __declspec(dllimport) and (dllexport).
Note: QtWebkit and QtScript are fixed in different commits.
Task-number: QTBUG-9903
Reviewed-by: Jason Barron
|
|\ \
| |/
| |
| |
| |
| |
| |
| | |
Conflicts:
configure
doc/src/modules.qdoc
src/gui/graphicsview/qgraphicsitem_p.h
src/gui/graphicsview/qgraphicswidget.h
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Summary so far: paths and images do not need the 0.5 adjustment
to the transform, but glyphs do. Not sure why glyphs do, but the
fonts definitely look wrong without the adjustment.
Task-number: QT-3192
Reviewed-by: trustme
|
|\ \
| |/
| |
| |
| |
| |
| | |
Conflicts:
mkspecs/common/symbian/symbian.conf
qmake/generators/symbian/symmake.cpp
src/3rdparty/webkit/WebCore/WebCore.pro
|
| |
| |
| |
| |
| |
| |
| | |
Off in the vertical direction this time; previously was horizontal.
Task-number: QT-2999
Reviewed-by: Jason Barron
|
| |
| |
| |
| | |
Task-number: QTBUG-9006
|
| |
| |
| |
| | |
Reviewed-by: Kim
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
configure.exe
examples/multimedia/audioinput/audioinput.cpp
src/corelib/io/qfsfileengine.cpp
src/gui/egl/qegl_wince.cpp
src/gui/egl/qeglproperties.cpp
src/gui/egl/qeglproperties_p.h
src/gui/embedded/directfb.pri
src/gui/kernel/qapplication_win.cpp
src/gui/painting/qdrawutil.cpp
src/opengl/qgl_p.h
src/sql/drivers/odbc/qsql_odbc.cpp
src/sql/drivers/odbc/qsql_odbc.h
tests/auto/auto.pro
tests/auto/qgl/tst_qgl.cpp
translations/assistant_adp_ru.ts
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Path transforms need to be adjusted by 0.5 for the difference
in OpenVG and Qt co-ordinate systems. Image transforms do not
need to be adjusted because OpenVG implicitly adjusts by 0.5.
Task-number: QT-2999
Reviewed-by: Sarah Smith
|
| |
| |
| |
| |
| | |
Task-number: QT-3033
Reviewed-by: Julian de Bhal
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Upon further investigation, vgClearPath() doesn't help as much
on target devices as just making a new path.
Revert "Improve performance of VGPath creation by reusing the same path"
This reverts commit 8597e03495f54614e53c6063f1f13077a08109fd.
|
| |
| |
| |
| |
| |
| |
| |
| | |
This puts the QEgl namespace in a single file which can be used by
both qeglcontext and qeglproperties. Files which need QEglContext
should now include qeglcontext_p.h.
Reviewed-By: Aleksandar Sasha Babic
|
|\ \
| |/
| |
| |
| |
| | |
Conflicts:
qmake/generators/symbian/initprojectdeploy_symbian.cpp
qmake/generators/symbian/symmake_abld.h
|
| |
| |
| |
| |
| |
| |
| |
| | |
The vgClearPath() function can be used to clear a path for reuse
more efficiently than destroying the path and creating a new one.
Task-number: QT-2974
Reviewed-by: Daniel Pope
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If the brush is not totally opaque we should not use vgClear() at this
point because vgClear() does not support blending. Instead it writes
the values directly into the surface which clobbers any existing
content. The bug exhibits itself when a child widget fills itself with
any transparent color. Instead of blending with the parent widget's
content, it writes the semi-transparent color directly to the surface,
overwriting the parent content and leaving the surface in a somewhat
undefined state because the alpha channel is not honoured unless
Qt::WA_TranslucentBackground is set.
Task-number: QTBUG-8007
Reviewed-by: Rhys Weatherley
|
| |
| |
| |
| | |
After 58533cbc7322c4f821f2
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QPainter has now gotten a drawPixmapFragments() function together
with a Fragment class that describes how each pixmap fragment is
supposed to be drawn.
Reviewed-by: Gunnar
Reviewed-by: Samuel
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
tests/auto/qlineedit/tst_qlineedit.cpp
Merge branch 'master' of scm.dev.troll.no:qt/oslo-staging-2 into qstatictext-4.7
Conflicts:
src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
tests/auto/qlineedit/tst_qlineedit.cpp
Merge branch 'master' of scm.dev.troll.no:qt/oslo-staging-2 into qstatictext-4.7
Conflicts:
src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
tests/auto/qlineedit/tst_qlineedit.cpp
|
| |\ \
| | |/
| | |
| | |
| | |
| | | |
Conflicts:
src/gui/kernel/qcocoapanel_mac.mm
src/gui/kernel/qcocoasharedwindowmethods_mac_p.h
|
| | |
| | |
| | |
| | | |
Reviewed-by: Sarah Smith
|
| | |
| | |
| | |
| | |
| | | |
QStaticText was previously made private API to support inclusion in
Qt 4.6.x. This change turns it back into public API for Qt 4.7.0.
|
|\ \ \
| | |/
| |/|
| | | |
qstatictext-4.6
|
| | |
| | |
| | |
| | |
| | | |
Task-number: QTBUG-7864
Reviewed-by: Sarah Smith
|
| |/
| |
| |
| |
| | |
Task-number: QTBUG-7791
Reviewed-by: Sarah Smith
|
| |
| |
| |
| |
| |
| |
| |
| | |
Turns QStaticText into private API in preparation for Qt 4.6.x. The
related functions in QPainter are marked as internal in the docs. There
are already internal functions in QPainter, so this seemed like a
reasonable solution. Since the functions require QStaticText they will
not be accessible to anyone who does not include private API.
|
| |
| |
| |
| | |
Make the OpenVG code for QStaticText compile.
|
|/
|
|
|
| |
Done in the blind, so I don't expect this to compile, but it's to make
it easier to get it over into a Symbian-ready repository.
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| | |
Task-number: QTBUG-7015
Reviewed-by: Daniel Pope
|
|/
|
|
|
| |
Task-number: QTBUG-7051
Reviewed-by: Daniel Pope
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some OpenVG GPU's have limitations on the amount of memory
available to create VGImage's. When the memory runs out,
vgCreateImage() will fail.
This change introduces QVGImagePool, which keeps track of all
QVGPixmapData image allocations and ejects least-recently-used
pixmaps when GPU memory is exhausted.
Task-number: QT-2554
Reviewed-by: trustme
|
|
|
|
|
|
|
|
|
|
|
| |
When a complex transform was set, clip(QVectorPath) would call
clip(QRect) with the control point rect, which would then turn
around and say "transform is complex, call clip(QVectorPath)",
causing an infinite loop until stack crash. Remove the "fall back
to vector path" case as it isn't useful for scissor-only clipping.
Doesn't affect mask-based clipping.
Reviewed-by: Sarah Smith
|