Commit graph

7699 commits

Author SHA1 Message Date
Ivailo Monev
1396f53698 benchmark painting on and of mono image formats
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-11 01:05:18 +02:00
Ivailo Monev
9b764b425d compiler warnings fixes
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-11 01:04:43 +02:00
Ivailo Monev
dc946d296e remove now unused constants
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-11 00:17:24 +02:00
Ivailo Monev
494734618e fix copying of QImage to XImage when the QImage format is QImage::Format_RGB16
even transparency is a thing on 16-bit depth X display but it is very slow

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-10 23:35:30 +02:00
Ivailo Monev
8a0d93ba94 replace QPixmapData::createCompatiblePixmapData() with its body
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-10 22:10:52 +02:00
Ivailo Monev
f7f8bdcdf8 remove now unused QPixmapData::resize() method
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-10 22:08:26 +02:00
Ivailo Monev
9ab504a739 allocate the ARGB visuals and colormaps only if XRender is to be used
they are null-checked in qt_cleanup() and used only when qt_x11Data->use_xrender
equals true

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-10 22:00:27 +02:00
Ivailo Monev
e35cd216a8 ensure the image is not constructed with zero width or height in QX11PaintEngine::drawPath()
must be rounding to zero somewhere

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-10 20:50:05 +02:00
Ivailo Monev
21bf23815a remove check for non-existing internal property
it was used by the designer tool to override the DPI

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-10 19:29:38 +02:00
Ivailo Monev
8c9142d956 convert QPixmapData::create() method to specialized constructor
now QPixmap::load() and QPixmap::loadFromData() will be slightly faster

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-10 18:14:06 +02:00
Ivailo Monev
c3892b017c pass the pixel type to makeBitmapCompliantIfNeeded() function
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-10 18:00:31 +02:00
Ivailo Monev
f025c85d0b remove redundant QPixmapData members
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-10 17:50:36 +02:00
Ivailo Monev
5f42f271ff replace qt_mask_image() function with its body
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-10 17:40:17 +02:00
Ivailo Monev
b1e54659ca remove unused lowest_bit() function
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-10 17:23:46 +02:00
Ivailo Monev
a5fa53dfff implement the missing QImage converter functions
that includes QImage::Format_ARGB32_Premultiplied to QImage::Format_RGB16,
QImage::Format_RGB16 to QImage::Format_Mono and QImage::Format_MonoLSB

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-10 16:37:14 +02:00
Ivailo Monev
3f66a84b1c inline QWidgetBackingStore::surface() method
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-10 06:14:28 +02:00
Ivailo Monev
9e32978cbf remove noop QWidgetBackingStore::updateList()
does nothing since Qt::WA_StaticContents was dropped

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-10 06:08:18 +02:00
Ivailo Monev
26072dc4e0 QETWidget and QWindowSurface do not have to be friends with QWidgetBackingStore
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-10 06:00:32 +02:00
Ivailo Monev
b3bbed21f4 remove unused QWidgetBackingStore::topLevelOffset() method
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-10 06:00:05 +02:00
Ivailo Monev
ef60fad9d7 X server running at 24-bit depth is alpha capable
now the optimization from the previous commit applies to the backing store
in more cases

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-10 04:17:28 +02:00
Ivailo Monev
761d9a1496 QImage::Format_ARGB32_Premultiplied to XImage copying optimization
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-10 03:27:36 +02:00
Ivailo Monev
8b86d478e4 QWindowSurface::beginPaint() optimization
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-10 03:29:01 +02:00
Ivailo Monev
980ce7a30b oops, fix build
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-10 02:38:09 +02:00
Ivailo Monev
de4885489c add note when QPixmap::toX11Pixmap() was introduced
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-09 23:28:05 +02:00
Ivailo Monev
f92053f381 QPixmap::grabWindow() optimization
TODO: replace WId with Qt::HANDLE or vice-versa, eventually

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-09 23:24:37 +02:00
Ivailo Monev
f91411694a merge QRasterPixmapData into QPixmapData
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-09 23:06:30 +02:00
Ivailo Monev
4c63add2e6 remove now unused XRender fills cache
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-09 22:21:43 +02:00
Ivailo Monev
2ba736e6ef QPixmap documentation update
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-10 00:18:47 +02:00
Ivailo Monev
96b700fdba QPixmap no longer requires GUI application or to be constructed in the application thread
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-10 00:08:54 +02:00
Ivailo Monev
9e1b6d48a6 remove unused and internal QTessellator class
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-10 00:02:31 +02:00
Ivailo Monev
e54ced79d7 QPixmap documentation update
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-10 00:01:44 +02:00
Ivailo Monev
7329edc8f6 drop internal X11 pixmap
TODO: merge QRasterPixmapData into QPixmapData

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-09 19:56:42 +02:00
Ivailo Monev
3e521ecaef account for undefined types in QScriptEnginePrivate::create() assert
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-08 17:39:13 +02:00
Ivailo Monev
f5f79c15d5 implement blend modes for X11 paint engine
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-07 10:42:23 +02:00
Ivailo Monev
65c13b6699 QX11PaintEngine::drawPixmap() optimization
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-07 10:06:25 +02:00
Ivailo Monev
04737582c4 remove redundant forward declarations of QMatrix and QTransform in qimage header
qtransform header is included from qimage header

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-07 09:50:57 +02:00
Ivailo Monev
4bbd8424d6 remove QImage friend declaration for now non-existing QX11AlphaDetector class
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-07 09:49:41 +02:00
Ivailo Monev
372a688cd8 explicitly create X11 pixmap data in QX11PixmapData::mask_to_bitmap()
QPixmap is raster by default which in turn means QBitmap also is

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-07 08:33:50 +02:00
Ivailo Monev
999061bc4a QX11PixmapData::mask() optimization
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-07 08:30:01 +02:00
Ivailo Monev
4ecb03bc6b plug memory leak in QX11PixmapData::toImage()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-07 08:00:07 +02:00
Ivailo Monev
cc330e7dd3 simplify alpha checking in QX11PixmapData::fromImage()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-07 06:39:32 +02:00
Ivailo Monev
d8564644f3 temporary fix for QPixmap::grabWindow()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-06 17:54:21 +02:00
Ivailo Monev
cc9c8f9fc3 effectively revert 3b2f367497 and cd5217cdbc
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-06 14:26:26 +02:00
Ivailo Monev
b7297b762e remove unused QString object in QTextStreamPrivate::putString()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-04 16:20:44 +02:00
Ivailo Monev
aa079429a1 fix regression since fabde51fe3
the important thing is to clean the fileName argument which may or may not
be clean

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-04 15:35:16 +02:00
Ivailo Monev
e9f970bbd2 build fix QDataStream test case
only that test case and QVariant::save() were using the char* operators
of QDataStream

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-03 17:05:26 +02:00
Ivailo Monev
35f05e0d94 ensure the type name is streamed as QByteArray in QVariant::save()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-03 16:44:09 +02:00
Ivailo Monev
7f04979b7e fetch the owner and group from the QFile file descriptor in QFileInof tests
much more reliable comparison

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-03 15:22:23 +02:00
Ivailo Monev
d8c00c3e71 verify that the group name is not empty in tst_QFileInfo::group()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-03 15:10:35 +02:00
Ivailo Monev
3f76b6db66 set the QDataStream byte order to big endian in tst_QVariant::loadBrokenUserType()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-03 15:02:56 +02:00