| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Change 7c673a4cf64ba04 introduced some autotest failures in the
fpe_steepSlopes test in QPainter.
Since the other rasterizers all deal in a 26.6 fixed point coordinate
space we should snap the line vertices to this to prevent floating point
overflows due to very steep slopes.
This also necessitates keeping track of four different slope / inverse
slope increments for each of the four edges.
This also fixes a previously QEXPECT_FAIL'ed test case.
Task-number: QTBUG-13429
Reviewed-by: Trond
|
|
|
|
|
|
|
|
|
|
|
| |
With a large pen width and a small scale, due to the hacky way we draw
points (stroking a line from (x, y) to (x + tiny_amount, y)), we some
times end up snapping these two points to the same in rasterizeLine().
If we instead apply the SquareCap before we do clipping / snapping we
don't get this problem.
Task-number: QTBUG-13429
Reviewed-by: Trond
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit ebbab30af417dfbf3df47dec15c0e2f8d6a30fa6,
which broke fill / outline consistency, and when trying to fix that
by rounding the fill the same way that broke rendering in Creator.
Unfortunately the X11 paint engine is too sensitive to changes, there
have already been tons of patches to make it as consistent as possible.
It's simply not possible to get the same rounding for both fill and
outlines and at the same time have consistency between fill and outline
(no holes or fill outside the outline), while using the integer based
Xlib rendering API. Hopefully in 4.8 we'll switch to raster and the X11
paint engine will be a legacy.
Reviewed-by: Trond
|
|
|
|
|
|
|
|
|
|
| |
This change the behavior. (as it break tests like drawImage_task258776
and tst_QPainter::drawhelper_blend_color)
The bug it fixes is not considered importent enough
This reverts commit 121c5143f1002734ff7aa62785ff14e0e6612aae and
d8c6ae24f94133828f4f1b536538e69c5e438202
|
|
|
|
|
|
| |
This test was broken, and change 121c5143f1002734ff7aa62785ff14e0e6612aae exposed it.
Why would one check red == blue?
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
On the X11 paint engine, when rendering lines with float coordinates,
the lines were one pixel off if the decimal was > 0.5.
This fixes the WebKit bug https://bugs.webkit.org/show_bug.cgi?id=42248
Autotest by Yoann Lopes.
Reviewed-by: Simon Hausmann
Reviewed-by: Yoann Lopes
Reviewed-by: Andreas Kling
|
|
|
|
|
|
|
|
|
|
|
| |
Implement the composition function for CompositionMode_Plus with SSE2.
The macro MIX() can be replaced by a single instruction add-saturate,
which increase the speed a lot (13 times faster on the blend
benchmark).
Reviewed-by: Olivier Goffart
Reviewed-by: Andreas Kling
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2: (26 commits)
Doc: QSettings::sync() imports changes made by other processes.
Made -graphicssystem trace work with Qt::TextBypassShaping flag.
Fix an assertion in comp_func_SourceOver_sse2() if const_alpha == 0
Add a manual test for regular widget interaction with the table.
New variant of ::createPixmapData with origin for QGraphicsSystem.
EGL plane levels are the same as all other GL backends.
Need to access extensionFuncs in subclasses too.
Export QGLWindowSurface too.
Export the QGLPixmapData so that we can override it in a custom graphics system.
Fixed autotest failure in QPathClipper on N900.
Fixed autotest failure in QPainter::setOpacity when NEON is used.
Fix compilation when configured with -no-xrender
Add a new (internal) flag QGraphicsItem::ItemStopsClickFocusPropagation.
Fixed some potential index-out-of-bounds issues in QImage.
Fixed autotest failure in fillRect_stretchToDeviceMode
Adding a known issue for VC2010 64 bit
Added a note to desupport VC2010 64-bit
Normalize integers when calling glVertexAttribPointer()
Add an implementation of comp_func_solid_SourceOver_neon() with Neon.
Fix the casts of qdrawhelper_sse2
...
|
| |
| |
| |
| |
| |
| |
| | |
Be more lenient in the comparison, rounding errors might lead to
slightly different values.
Reviewed-by: Trond
|
|/ |
|
|
|
|
| |
Reviewed-by: Kim
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
The previous fix (baa7c3bdecc) attempted to fall back to path drawing in
QPainter::drawEllipse, however we have some specific filling rules for
aliased ellipse drawing in the raster paint engine. We should use the
(now free of fixed point math) drawEllipse_midpoint_i function on all
platforms.
Reviewed-by: Gunnar Sletta
|
|
|
|
| |
Reviewed-by: Trust Me
|
|
|
|
|
|
|
|
|
| |
In the paintEvent of the widget used in a QGraphicsProxyWidget, the worldMatrix was wrongly used by the painter instead of the deviceMatrix.
Similar problem in the WindowsXP Style, the worldMatrix was used instead of the deviceMatrix for determining if the widget is transformed (reviewed by eblomfel).
Task-number: QTBUG-5939
Reviewed-by: bnilsen
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|/ |
|
|
|
|
|
|
|
|
|
|
|
| |
It was working with a QImage but not with a QPixmap, which is obviously
a bug. In addition, it broke WebCore::GraphicsContext::setPlatformStrokeColor
which does exactly what I put in the unittest: get pen, set color, set pen.
This commit fixes the wrong color in the underline of the links in
http://www.davidfaure.fr/kde/link_underline_color.html in QtWebkit.
Merge-request: 1995
Reviewed-by: Samuel Rødal <sroedal@trolltech.com>
|
|
|
|
|
|
|
| |
The SVG standard changed the algorithm which implies some changes to
the results as well.
Reviewed-by: Kim
|
|\ |
|
| |
| |
| |
| | |
RevBy: Janne Anttila
|
|/
|
|
|
|
|
|
|
|
| |
Fixed QPainter::begin() so that if it fails, it can still be used on
other paint devices without causing an assert. Autotest included.
I also made begin() fail on images with the QImage::Format_Indexed8
format and added warnings in the documentation since painting on such
images is not supported.
Reviewed-by: Trond
|
|
|
|
| |
Reviewed-by: TrustMe
|
|\
| |
| |
| |
| |
| |
| | |
Conflicts:
tests/auto/qimagereader/tst_qimagereader.cpp
tests/auto/qpainter/tst_qpainter.cpp
tests/auto/qtwidgets/tst_qtwidgets.cpp
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Since the width is multiplied into the dash, it needs to be divided out,
otherwise you can get a dashOffset which is greater than the pattern at
the index, and the dash can become negative. This will in turn lead to
passing a negative width to the rasterizer, which at some point will
get cast to an unsigned int and overflow. Depending on the position of
the line and size of the buffer, this will either crash or produce
garbled output.
Task-number: QT-4444
Reviewed-by: Samuel
|
| |\ |
|
| | |
| | |
| | |
| | | |
Reviewed-by: Trust Me
|
| | |
| | |
| | |
| | | |
Reviewed-by: Trust Me
|
|\ \ \
| | |/
| |/|
| | |
| | |
| | | |
Conflicts:
tests/auto/network-settings.h
tests/auto/qpainter/tst_qpainter.cpp
|
| |/
| |
| |
| |
| |
| |
| |
| | |
We need to floor instead of round to prevent rectangles that are on the
edge from being shifted one pixel down / right.
Task-number: 258776
Reviewed-by: Kim
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
demos/boxes/glshaders.cpp
demos/boxes/vector.h
demos/embedded/fluidlauncher/pictureflow.cpp
demos/embedded/fluidlauncher/pictureflow.h
doc/src/desktop-integration.qdoc
doc/src/distributingqt.qdoc
doc/src/examples-overview.qdoc
doc/src/examples.qdoc
doc/src/frameworks-technologies/dbus-adaptors.qdoc
doc/src/geometry.qdoc
doc/src/groups.qdoc
doc/src/objecttrees.qdoc
doc/src/platform-notes.qdoc
doc/src/plugins-howto.qdoc
doc/src/qt3support.qdoc
doc/src/qtdbus.qdoc
doc/src/qtdesigner.qdoc
doc/src/qtgui.qdoc
doc/src/qtmain.qdoc
doc/src/qtopengl.qdoc
doc/src/qtsvg.qdoc
doc/src/qtuiloader.qdoc
doc/src/qundo.qdoc
doc/src/richtext.qdoc
doc/src/topics.qdoc
src/corelib/tools/qdumper.cpp
src/gui/embedded/qkbdpc101_qws.cpp
src/gui/embedded/qkbdsl5000_qws.cpp
src/gui/embedded/qkbdusb_qws.cpp
src/gui/embedded/qkbdvr41xx_qws.cpp
src/gui/embedded/qkbdyopy_qws.cpp
src/gui/embedded/qmousebus_qws.cpp
src/gui/embedded/qmousevr41xx_qws.cpp
src/gui/embedded/qmouseyopy_qws.cpp
src/gui/painting/qpaintengine_d3d.cpp
src/gui/painting/qwindowsurface_d3d.cpp
src/opengl/gl2paintengineex/glgc_shader_source.h
src/opengl/gl2paintengineex/qglpexshadermanager.cpp
src/opengl/gl2paintengineex/qglpexshadermanager_p.h
src/opengl/gl2paintengineex/qglshader.cpp
src/opengl/gl2paintengineex/qglshader_p.h
src/opengl/util/fragmentprograms_p.h
src/plugins/kbddrivers/linuxis/linuxiskbdhandler.cpp
src/plugins/mousedrivers/linuxis/linuxismousehandler.cpp
src/script/parser/qscript.g
src/script/qscriptarray_p.h
src/script/qscriptasm_p.h
src/script/qscriptbuffer_p.h
src/script/qscriptclass.cpp
src/script/qscriptclassdata_p.h
src/script/qscriptcompiler.cpp
src/script/qscriptcompiler_p.h
src/script/qscriptcontext.cpp
src/script/qscriptcontext_p.cpp
src/script/qscriptcontext_p.h
src/script/qscriptcontextfwd_p.h
src/script/qscriptecmaarray.cpp
src/script/qscriptecmaarray_p.h
src/script/qscriptecmaboolean.cpp
src/script/qscriptecmacore.cpp
src/script/qscriptecmadate.cpp
src/script/qscriptecmadate_p.h
src/script/qscriptecmaerror.cpp
src/script/qscriptecmaerror_p.h
src/script/qscriptecmafunction.cpp
src/script/qscriptecmafunction_p.h
src/script/qscriptecmaglobal.cpp
src/script/qscriptecmaglobal_p.h
src/script/qscriptecmamath.cpp
src/script/qscriptecmamath_p.h
src/script/qscriptecmanumber.cpp
src/script/qscriptecmanumber_p.h
src/script/qscriptecmaobject.cpp
src/script/qscriptecmaobject_p.h
src/script/qscriptecmaregexp.cpp
src/script/qscriptecmaregexp_p.h
src/script/qscriptecmastring.cpp
src/script/qscriptecmastring_p.h
src/script/qscriptengine.cpp
src/script/qscriptengine_p.cpp
src/script/qscriptengine_p.h
src/script/qscriptenginefwd_p.h
src/script/qscriptextenumeration.cpp
src/script/qscriptextenumeration_p.h
src/script/qscriptextqobject.cpp
src/script/qscriptextqobject_p.h
src/script/qscriptextvariant.cpp
src/script/qscriptfunction.cpp
src/script/qscriptfunction_p.h
src/script/qscriptgc_p.h
src/script/qscriptmember_p.h
src/script/qscriptobject_p.h
src/script/qscriptprettypretty.cpp
src/script/qscriptprettypretty_p.h
src/script/qscriptvalue.cpp
src/script/qscriptvalueimpl.cpp
src/script/qscriptvalueimpl_p.h
src/script/qscriptvalueimplfwd_p.h
src/script/qscriptvalueiteratorimpl.cpp
src/script/qscriptxmlgenerator.cpp
src/script/qscriptxmlgenerator_p.h
tests/auto/linguist/lupdate/testdata/recursivescan/project.ui
tests/auto/linguist/lupdate/testdata/recursivescan/sub/finddialog.cpp
tests/auto/qkeyevent/tst_qkeyevent.cpp
tools/linguist/shared/cpp.cpp
|
| |
| |
| |
| | |
Reviewed-by: Trust Me
|
| |
| |
| |
| | |
Reviewed-by: Trust Me
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
examples/opengl/samplebuffers/glwidget.cpp
src/corelib/io/qfsfileengine_unix.cpp
src/corelib/kernel/qobject.cpp
src/corelib/tools/qsharedpointer.cpp
src/gui/gui.pro
tests/auto/qhttp/tst_qhttp.cpp
tests/auto/qkeyevent/tst_qkeyevent.cpp
|
| | |
| | |
| | |
| | | |
Reviewed-by: Trust Me
|
|\ \ \
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
.gitignore
configure.exe
src/corelib/concurrent/qtconcurrentthreadengine.h
src/corelib/global/qnamespace.h
src/gui/graphicsview/qgraphicssceneevent.h
src/gui/kernel/qapplication.cpp
src/gui/kernel/qapplication.h
src/gui/kernel/qapplication_p.h
src/gui/kernel/qapplication_qws.cpp
src/gui/kernel/qwidget.h
src/gui/painting/qpaintengine_raster.cpp
src/gui/text/qfontdatabase.cpp
src/network/access/qnetworkaccesshttpbackend.cpp
tests/auto/network-settings.h
tests/auto/qscriptjstestsuite/qscriptjstestsuite.pro
tests/auto/qvariant/tst_qvariant.cpp
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Change 855aa89e0ba99f8a0f75d7b31930bab2cefb93f8 incorrectly changed
toNormalizedFillRect to use int truncation instead of qRound. This
fixes the autotest failure in tst_QPainter::drawRect2 as well.
Reviewed-by: Trond
|
| |\ \
| | |/
| | |
| | |
| | |
| | |
| | | |
Conflicts:
configure.exe
tests/auto/qpainter/tst_qpainter.cpp
translations/qt_ru.ts
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Make sure not to use the broken QRect constructor, and do an early check
on whether the clip rect is empty in QRasterizer::rasterizeLine().
Task-number: 254105
Reviewed-by: Trond
|
| |\ \
| | |/ |
|
| | |
| | |
| | |
| | | |
Reviewed-by: Trust Me
|
|\ \ \
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Bring Qt 4.6 into the Qt-S60 repo.
Conflicts:
configure.exe
mkspecs/features/qttest_p4.prf
qmake/generators/makefile.cpp
src/corelib/io/qdir.cpp
src/corelib/io/qprocess.h
src/corelib/kernel/qcoreevent.h
src/corelib/kernel/qobject.cpp
src/corelib/kernel/qsharedmemory_unix.cpp
src/corelib/thread/qthread_p.h
src/corelib/tools/qvector.h
src/gui/dialogs/qdialog.cpp
src/gui/dialogs/qfiledialog.cpp
src/gui/dialogs/qfiledialog_p.h
src/gui/dialogs/qmessagebox.cpp
src/gui/graphicsview/qgraphicsitem.cpp
src/gui/graphicsview/qgraphicsview.cpp
src/gui/image/qpixmapcache.cpp
src/gui/kernel/qapplication.cpp
src/gui/kernel/qapplication_p.h
src/gui/kernel/qwidget.cpp
src/gui/kernel/qwidget_p.h
src/gui/painting/qdrawhelper.cpp
src/gui/painting/qpaintengine_raster.cpp
src/gui/text/qfontengine_qpf.cpp
src/gui/widgets/qmenubar.cpp
src/network/socket/qlocalserver.cpp
src/testlib/qtestcase.cpp
src/testlib/testlib.pro
tests/auto/qimagereader/tst_qimagereader.cpp
tests/auto/qitemdelegate/tst_qitemdelegate.cpp
tests/auto/qnetworkreply/tst_qnetworkreply.cpp
tests/auto/qpixmap/qpixmap.pro
|
| |\ \
| | |/ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The bounding rect computed in fixup() is one pixel too wide, causing
potential memory corruption by painting outside device boundaries.
Reviewed-by: Trond
|
|\ \ \
| | |/
| |/|
| | |
| | | |
Conflicts:
tests/auto/qlocalsocket/tst_qlocalsocket.cpp
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The blend functions assume the width / height of the images being
blended to be greater than 0. A width of 0 caused the first iteration of
a duff's device memcpy (QT_MEMCPY_USHORT) to be executed, thus blending
8 pixels instead of none.
BT: yes
Task-number: 255014
Reviewed-by: Trond
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The bug appears in the raster paint engine and only in release mode as
the cause of the bug is in the MMX and SSE blend functions which are
disabled in debug. To prevent it simply we return early if we detect
that we have an opacity of 0.
Reviewed-by: Trond
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Configure.exe recompiled with MSVC6.
Conflicts:
configure.exe
examples/network/network.pro
src/gui/dialogs/qfiledialog_p.h
src/gui/dialogs/qfilesystemmodel_p.h
src/gui/kernel/qapplication.cpp
tests/auto/_Categories/qmake.txt
tests/auto/qfile/test/test.pro
tests/auto/qfile/tst_qfile.cpp
tests/auto/qlibrary/tst_qlibrary.cpp
tests/auto/qline/tst_qline.cpp
tests/auto/qstyle/tst_qstyle.cpp
tests/auto/qtextstream/tst_qtextstream.cpp
tests/auto/qtranslator/qtranslator.pro
tests/auto/qwaitcondition/tst_qwaitcondition.cpp
translations/qt_ja_JP.ts
|