mirror of
https://github.com/tumic0/GPXSee.git
synced 2024-11-27 21:24:47 +01:00
Remove the qpainter/qimage draw workaround
Seems to be fixed in newer Qt versions and it did not properly work in older Qt versions anyway...
This commit is contained in:
parent
f952e02535
commit
7a53fb8e01
@ -11,26 +11,17 @@ void Image::draw(QPainter *painter, const QRectF &rect, Map::Flags flags)
|
||||
|
||||
/* When OpenGL is used, big images are rendered incredibly slow or not at
|
||||
all using the QPainter::drawImage() function with a source rect set. So
|
||||
we have to tile the image ourself before it can be drawn.
|
||||
|
||||
We have to use a list of dynamically allocated pixmaps as QPainter
|
||||
rendering is broken in yet another way with OpenGL and drawPixmap() does
|
||||
access already deleted image instances when reusing a single pixmap. */
|
||||
we have to tile the image ourself before it can be drawn. */
|
||||
if (flags & Map::OpenGL) {
|
||||
QList<QPixmap *> list;
|
||||
|
||||
for (int i = sr.left()/TILE_SIZE; i <= sr.right()/TILE_SIZE; i++) {
|
||||
for (int j = sr.top()/TILE_SIZE; j <= sr.bottom()/TILE_SIZE; j++) {
|
||||
QPoint tl(i * TILE_SIZE, j * TILE_SIZE);
|
||||
QRect tile(tl, QSize(TILE_SIZE, TILE_SIZE));
|
||||
QPixmap *pm = new QPixmap(QPixmap::fromImage(_img.copy(tile)));
|
||||
list.append(pm);
|
||||
pm->setDevicePixelRatio(ratio);
|
||||
painter->drawPixmap(tl/ratio, *pm);
|
||||
QPixmap pm(QPixmap::fromImage(_img.copy(tile)));
|
||||
pm.setDevicePixelRatio(ratio);
|
||||
painter->drawPixmap(tl/ratio, pm);
|
||||
}
|
||||
}
|
||||
|
||||
qDeleteAll(list);
|
||||
} else
|
||||
painter->drawImage(rect.topLeft(), _img, sr);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user