#include "currentselectedmetatilespixmapitem.h" #include "imageproviders.h" #include QPixmap drawMetatileSelection(MetatileSelection selection, Map *map) { int width = selection.dimensions.x() * 16; int height = selection.dimensions.y() * 16; QImage image(width, height, QImage::Format_RGBA8888); image.fill(QColor(0, 0, 0, 0)); QPainter painter(&image); for (int i = 0; i < selection.dimensions.x(); i++) { for (int j = 0; j < selection.dimensions.y(); j++) { int x = i * 16; int y = j * 16; QPoint metatile_origin = QPoint(x, y); int index = j * selection.dimensions.x() + i; MetatileSelectionItem item = selection.metatileItems.at(index); if (item.enabled) { QImage metatile_image = getMetatileImage( item.metatileId, map->layout->tileset_primary, map->layout->tileset_secondary, map->metatileLayerOrder, map->metatileLayerOpacity); painter.drawImage(metatile_origin, metatile_image); } } } painter.end(); return QPixmap::fromImage(image); } void CurrentSelectedMetatilesPixmapItem::draw() { MetatileSelection selection = metatileSelector->getMetatileSelection(); setPixmap(drawMetatileSelection(selection, this->map)); }