equal
deleted
inserted
replaced
154 ~HgQtQuad() |
154 ~HgQtQuad() |
155 { |
155 { |
156 |
156 |
157 } |
157 } |
158 |
158 |
159 void draw(QPainter* painter, const QRectF& rect) |
159 void draw(QPainter* painter, const QRectF& rect, const QTransform& transform) |
160 { |
160 { |
161 if (!quad()->visible()) |
161 if (!quad()->visible()) |
162 return; |
162 return; |
163 |
163 |
164 HgQtImage* image = (HgQtImage*)quad()->image(); |
164 HgQtImage* image = (HgQtImage*)quad()->image(); |
169 return; |
169 return; |
170 |
170 |
171 if (image->pixmap().isNull()) |
171 if (image->pixmap().isNull()) |
172 image = mRenderer->defaultImage(); |
172 image = mRenderer->defaultImage(); |
173 |
173 |
174 drawImage(painter, image, rect); |
174 drawImage(painter, image, rect, transform); |
175 } |
175 } |
176 |
176 |
177 |
177 |
178 private: |
178 private: |
179 |
179 |
194 img.append(QPointF(0,0)); |
194 img.append(QPointF(0,0)); |
195 |
195 |
196 QTransform::quadToQuad(img, poly, tm); |
196 QTransform::quadToQuad(img, poly, tm); |
197 } |
197 } |
198 |
198 |
199 void drawImage(QPainter* painter, HgQtImage* image, const QRectF& rect) |
199 void drawImage(QPainter* painter, HgQtImage* image, const QRectF& rect, const QTransform& transform) |
200 { |
200 { |
201 const QPixmap& pixmap = image->pixmap(); |
201 const QPixmap& pixmap = image->pixmap(); |
202 |
202 |
203 if (pixmap.isNull()) |
203 if (pixmap.isNull()) |
204 return; |
204 return; |
217 return; |
217 return; |
218 } |
218 } |
219 |
219 |
220 computeWarpMatrix(mTransform, image->width(), image->height(), points); |
220 computeWarpMatrix(mTransform, image->width(), image->height(), points); |
221 |
221 |
222 QTransform base = painter->transform(); |
222 painter->setTransform(mTransform * transform); |
223 painter->setTransform(mTransform * base); |
|
224 painter->drawPixmap(QPointF(0,0), pixmap); |
223 painter->drawPixmap(QPointF(0,0), pixmap); |
225 painter->setTransform(base); |
|
226 } |
224 } |
227 |
225 |
228 HgQtQuadRenderer* mRenderer; |
226 HgQtQuadRenderer* mRenderer; |
229 QTransform mTransform; |
227 QTransform mTransform; |
230 QTransform mMirrorTransform; |
228 QTransform mMirrorTransform; |
265 |
263 |
266 if (mReflectionsEnabled) |
264 if (mReflectionsEnabled) |
267 { |
265 { |
268 mIsReflection = true; |
266 mIsReflection = true; |
269 |
267 |
270 drawTransformedQuads(painter, rect); |
268 drawTransformedQuads(painter, rect, temp); |
271 |
269 |
|
270 painter->setTransform(temp); |
272 drawFloor(painter, rect); |
271 drawFloor(painter, rect); |
273 } |
272 } |
274 |
273 |
275 mIsReflection = false; |
274 mIsReflection = false; |
276 |
275 |
277 drawTransformedQuads(painter, rect); |
276 drawTransformedQuads(painter, rect, temp); |
278 |
277 |
279 painter->setTransform(temp); |
278 painter->setTransform(temp); |
280 |
279 |
281 } |
280 } |
282 |
281 |