Ivailo Monev
3c257c0efb
assume fetch and store operators are valid in drawing functions
...
any attempt to paint on QImage (and in turn QPixmap) the format of which is
QImage::Format_Invalid (with no private data pointer) will fail due to
paint engine check in QPainter::begin(), in addition the operators should
be (and currently are) implemented for all QImage formats
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-11 01:09:16 +02:00
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