Compare commits

...

2 Commits

2 changed files with 3 additions and 1 deletions

View File

@ -114,7 +114,7 @@ void SimpleElement::paint(QPainter* painter, QTransform transform, const LayerSt
else else
maxScale = std::max(fabs(transform.m12() / sin(angle)), fabs(transform.m21() / sin(angle))); maxScale = std::max(fabs(transform.m12() / sin(angle)), fabs(transform.m21() / sin(angle)));
double pixelRatio = maxScale * QGuiApplication::primaryScreen()->devicePixelRatio(); double pixelRatio = maxScale * QGuiApplication::primaryScreen()->devicePixelRatio();
if (painterPath == painterPathPrev && styles.getHash() == stylesHashValue) if (painterPath == painterPathPrev && styles.getHash() == stylesHashValue && pixelRatio == pixelRatioPrev)
{ {
transform.translate(movPrev.x(), movPrev.y()); transform.translate(movPrev.x(), movPrev.y());
painter->setTransform(transform.scale(1 / pixelRatio, 1 / pixelRatio)); painter->setTransform(transform.scale(1 / pixelRatio, 1 / pixelRatio));
@ -130,6 +130,7 @@ void SimpleElement::paint(QPainter* painter, QTransform transform, const LayerSt
painterPathPrev = painterPath; painterPathPrev = painterPath;
imagePrev = img; imagePrev = img;
movPrev = mov; movPrev = mov;
pixelRatioPrev = pixelRatio;
} }
} }

View File

@ -27,6 +27,7 @@ public:
QPainterPath painterPathPrev; QPainterPath painterPathPrev;
QPointF movPrev; QPointF movPrev;
QImage imagePrev; QImage imagePrev;
double pixelRatioPrev;
int index; int index;
// TODO: 改为BitmapPath // TODO: 改为BitmapPath
virtual QJsonObject toJson() const = 0; virtual QJsonObject toJson() const = 0;